code cleanup
This commit is contained in:
parent
f729548036
commit
b4c406a7e0
@ -8,7 +8,7 @@ import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
/**
|
||||
* @author shaun chyxion <br>
|
||||
* @author Shaun Chyxion <br>
|
||||
* chyxion@163.com <br>
|
||||
* 2017/1/23 16:58
|
||||
*/
|
||||
|
@ -19,7 +19,7 @@ public abstract class AbstractOnMissingCreateProcessor implements MapperXmlProce
|
||||
* @param xPathParser xpath parser
|
||||
* @return true if XPath Expression missing
|
||||
*/
|
||||
public boolean accept(Class<BaseMapper> mapperClass, XPathParser xPathParser) {
|
||||
public boolean accept(Class<BaseMapper<?, ?>> mapperClass, XPathParser xPathParser) {
|
||||
return xPathParser.evalNode(missingXPathExpression()) == null;
|
||||
}
|
||||
|
||||
@ -28,7 +28,7 @@ public abstract class AbstractOnMissingCreateProcessor implements MapperXmlProce
|
||||
* @param mapperClass mapper class
|
||||
* @param doc xml document
|
||||
*/
|
||||
public void process(Class<BaseMapper> mapperClass, Document doc) {
|
||||
public void process(Class<BaseMapper<?, ?>> mapperClass, Document doc) {
|
||||
doc.getDocumentElement().appendChild(elementToAppend(mapperClass, doc));
|
||||
}
|
||||
|
||||
@ -43,15 +43,17 @@ public abstract class AbstractOnMissingCreateProcessor implements MapperXmlProce
|
||||
* @param doc mapper xml document
|
||||
* @return element to append
|
||||
*/
|
||||
protected abstract Element elementToAppend(Class<BaseMapper> mapperClass, Document doc);
|
||||
protected abstract Element elementToAppend(Class<BaseMapper<?, ?>> mapperClass, Document doc);
|
||||
|
||||
/**
|
||||
* get model class from mapper class
|
||||
* @param mapperClass mapper class
|
||||
* @return model class
|
||||
*/
|
||||
protected Class<BaseModel> getModelClass(Class<BaseMapper> mapperClass) {
|
||||
return (Class<BaseModel>) GenericTypeResolver.resolveTypeArguments(mapperClass, BaseMapper.class)[1];
|
||||
@SuppressWarnings("unchecked")
|
||||
protected Class<BaseModel<?>> getModelClass(Class<BaseMapper<?, ?>> mapperClass) {
|
||||
return (Class<BaseModel<?>>) GenericTypeResolver.resolveTypeArguments(
|
||||
mapperClass, BaseMapper.class)[1];
|
||||
}
|
||||
|
||||
/**
|
||||
@ -59,7 +61,7 @@ public abstract class AbstractOnMissingCreateProcessor implements MapperXmlProce
|
||||
* @param modelClass model class
|
||||
* @return model object
|
||||
*/
|
||||
protected BaseModel newModelObj(Class<BaseModel> modelClass) {
|
||||
protected BaseModel<?> newModelObj(Class<BaseModel<?>> modelClass) {
|
||||
try {
|
||||
return modelClass.newInstance();
|
||||
}
|
||||
@ -90,7 +92,7 @@ public abstract class AbstractOnMissingCreateProcessor implements MapperXmlProce
|
||||
* @param id node id
|
||||
* @return element
|
||||
*/
|
||||
protected Element createSelectEl(Class<BaseMapper> mapperClass, Document doc, String id) {
|
||||
protected Element createSelectEl(Class<BaseMapper<?, ?>> mapperClass, Document doc, String id) {
|
||||
return createSelectEl(doc, id, getModelClass(mapperClass).getName());
|
||||
}
|
||||
|
||||
|
@ -18,6 +18,7 @@ import org.springframework.validation.annotation.Validated;
|
||||
* Oct 17, 2015 2:09:20 PM
|
||||
*/
|
||||
@Validated
|
||||
@SuppressWarnings("hiding")
|
||||
public interface BaseMapper<PrimaryKey, Model extends BaseModel<PrimaryKey>> {
|
||||
String PARAM_MODEL_KEY = "model";
|
||||
String PARAM_MODELS_KEY = "models";
|
||||
|
@ -23,7 +23,7 @@ public class ColsXmlProcessor extends AbstractOnMissingCreateProcessor {
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
protected Element elementToAppend(Class<BaseMapper> mapperClass, Document doc) {
|
||||
protected Element elementToAppend(Class<BaseMapper<?, ?>> mapperClass, Document doc) {
|
||||
Element colEl = doc.createElement("sql");
|
||||
colEl.setAttribute("id", "cols");
|
||||
colEl.setTextContent(
|
||||
|
@ -22,7 +22,7 @@ public class CountXmlProcessor extends AbstractOnMissingCreateProcessor {
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
protected Element elementToAppend(Class<BaseMapper> mapperClass, Document doc) {
|
||||
protected Element elementToAppend(Class<BaseMapper<?, ?>> mapperClass, Document doc) {
|
||||
return appendIncludeEl(doc, createSelectEl(doc, "count", "int"), "Tigon.count");
|
||||
}
|
||||
}
|
||||
|
@ -22,7 +22,7 @@ public class DeleteXmlProcessor extends AbstractOnMissingCreateProcessor {
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
protected Element elementToAppend(Class<BaseMapper> mapperClass, Document doc) {
|
||||
protected Element elementToAppend(Class<BaseMapper<?, ?>> mapperClass, Document doc) {
|
||||
Element deleteEl = doc.createElement("delete");
|
||||
deleteEl.setAttribute("id", "delete");
|
||||
return appendIncludeEl(doc, deleteEl, "Tigon.delete");
|
||||
|
@ -22,7 +22,7 @@ public class FindXmlProcessor extends AbstractOnMissingCreateProcessor {
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
protected Element elementToAppend(Class<BaseMapper> mapperClass, Document doc) {
|
||||
protected Element elementToAppend(Class<BaseMapper<?, ?>> mapperClass, Document doc) {
|
||||
return appendIncludeEl(doc,
|
||||
createSelectEl(mapperClass, doc, "find"), "Tigon.find");
|
||||
}
|
||||
|
@ -25,10 +25,10 @@ public class InsertXmlProcessor extends AbstractOnMissingCreateProcessor {
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
protected Element elementToAppend(Class<BaseMapper> mapperClass, Document doc) {
|
||||
protected Element elementToAppend(Class<BaseMapper<?, ?>> mapperClass, Document doc) {
|
||||
final Element insertEl = doc.createElement("insert");
|
||||
insertEl.setAttribute("id", "insert");
|
||||
Class<BaseModel> modelClass = getModelClass(mapperClass);
|
||||
Class<BaseModel<?>> modelClass = getModelClass(mapperClass);
|
||||
UseGeneratedKeys ugkAnnotation =
|
||||
AnnotationUtils.findAnnotation(modelClass, UseGeneratedKeys.class);
|
||||
if (ugkAnnotation != null) {
|
||||
|
@ -84,11 +84,14 @@ class KeyGenInterceptor implements Interceptor {
|
||||
BoundSql boundSql = (BoundSql) metaObjStatementHandler.getValue("boundSql");
|
||||
Object paramObj = boundSql.getParameterObject();
|
||||
if (paramObj instanceof MapperMethod.ParamMap) {
|
||||
MapperMethod.ParamMap paramMap = (MapperMethod.ParamMap) paramObj;
|
||||
@SuppressWarnings("unchecked")
|
||||
MapperMethod.ParamMap<Object> paramMap =
|
||||
(MapperMethod.ParamMap<Object>) paramObj;
|
||||
if (paramMap.containsKey(BaseMapper.PARAM_MODEL_KEY) ||
|
||||
paramMap.containsKey(BaseMapper.PARAM_MODELS_KEY)) {
|
||||
KeyGenerator keygen = mappedStatement.getKeyGenerator();
|
||||
if (keygen.getClass().equals(Jdbc3KeyGenerator.class)) {
|
||||
log.debug("Replace JDBC3 Key Generator.");
|
||||
SystemMetaObject.forObject(mappedStatement)
|
||||
.setValue("keyGenerator",
|
||||
new Jdbc3KeyGen(keygen));
|
||||
|
@ -22,7 +22,7 @@ public class ListXmlProcessor extends AbstractOnMissingCreateProcessor {
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
protected Element elementToAppend(Class<BaseMapper> mapperClass, Document doc) {
|
||||
protected Element elementToAppend(Class<BaseMapper<?, ?>> mapperClass, Document doc) {
|
||||
return appendIncludeEl(doc,
|
||||
createSelectEl(mapperClass, doc, "list"), "Tigon.list");
|
||||
}
|
||||
|
@ -16,12 +16,12 @@ public interface MapperXmlProcessor {
|
||||
* @param xPathParser xpath parser
|
||||
* @return true if accept process
|
||||
*/
|
||||
boolean accept(Class<BaseMapper> mapperClass, XPathParser xPathParser);
|
||||
boolean accept(Class<BaseMapper<?, ?>> mapperClass, XPathParser xPathParser);
|
||||
|
||||
/**
|
||||
* process document
|
||||
* @param mapperClass mapper class
|
||||
* @param document mapper xml document
|
||||
*/
|
||||
void process(Class<BaseMapper> mapperClass, Document document);
|
||||
void process(Class<BaseMapper<?, ?>> mapperClass, Document document);
|
||||
}
|
||||
|
@ -22,7 +22,7 @@ public class PrimaryKeyXmlProcessor extends AbstractOnMissingCreateProcessor {
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
protected Element elementToAppend(Class<BaseMapper> mapperClass, Document doc) {
|
||||
protected Element elementToAppend(Class<BaseMapper<?, ?>> mapperClass, Document doc) {
|
||||
Element primaryKeyEl = doc.createElement("sql");
|
||||
primaryKeyEl.setAttribute("id", "primaryKey");
|
||||
primaryKeyEl.setTextContent(newModelObj(getModelClass(mapperClass)).primaryKeyName());
|
||||
|
@ -22,7 +22,7 @@ public class SetNullXmlProcessor extends AbstractOnMissingCreateProcessor {
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
protected Element elementToAppend(Class<BaseMapper> mapperClass, Document doc) {
|
||||
protected Element elementToAppend(Class<BaseMapper<?, ?>> mapperClass, Document doc) {
|
||||
Element setNullEl = doc.createElement("update");
|
||||
setNullEl.setAttribute("id", "setNull");
|
||||
return appendIncludeEl(doc, setNullEl, "Tigon.setNull");
|
||||
|
@ -28,10 +28,10 @@ public class TableXmlProcessor extends AbstractOnMissingCreateProcessor {
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
protected Element elementToAppend(Class<BaseMapper> mapperClass, Document doc) {
|
||||
protected Element elementToAppend(Class<BaseMapper<?, ?>> mapperClass, Document doc) {
|
||||
Element tableEl = doc.createElement("sql");
|
||||
tableEl.setAttribute("id", "table");
|
||||
Class<BaseModel> modelClass = getModelClass(mapperClass);
|
||||
Class<BaseModel<?>> modelClass = getModelClass(mapperClass);
|
||||
|
||||
// find table from mapper annotation
|
||||
Table tableAnnotation =
|
||||
|
@ -125,13 +125,14 @@ public class TigonSqlSessionFactoryBean extends SqlSessionFactoryBean {
|
||||
return resource;
|
||||
}
|
||||
|
||||
private Class<BaseMapper> getMapperClass(String name) {
|
||||
Class<BaseMapper> mapperClassRtn = null;
|
||||
@SuppressWarnings("unchecked")
|
||||
private Class<BaseMapper<?, ?>> getMapperClass(String name) {
|
||||
Class<BaseMapper<?, ?>> mapperClassRtn = null;
|
||||
try {
|
||||
Class<?> classFound = ClassUtils.forName(name,
|
||||
ClassUtils.getDefaultClassLoader());
|
||||
if (BaseMapper.class.isAssignableFrom(classFound)) {
|
||||
mapperClassRtn = (Class<BaseMapper>) classFound;
|
||||
mapperClassRtn = (Class<BaseMapper<?, ?>>) classFound;
|
||||
}
|
||||
}
|
||||
catch (ClassNotFoundException e) {
|
||||
@ -164,7 +165,7 @@ public class TigonSqlSessionFactoryBean extends SqlSessionFactoryBean {
|
||||
xPathParser.evalString("/mapper/@namespace");
|
||||
|
||||
if (StringUtils.isNotBlank(mapperNamespace)) {
|
||||
final Class<BaseMapper> mapperClass =
|
||||
final Class<BaseMapper<?, ?>> mapperClass =
|
||||
getMapperClass(mapperNamespace);
|
||||
if (mapperClass != null) {
|
||||
MetaObject metaXpp = SystemMetaObject.forObject(xPathParser);
|
||||
|
@ -22,7 +22,7 @@ public class UpdateXmlProcessor extends AbstractOnMissingCreateProcessor {
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
protected Element elementToAppend(Class<BaseMapper> mapperClass, Document doc) {
|
||||
protected Element elementToAppend(Class<BaseMapper<?, ?>> mapperClass, Document doc) {
|
||||
Element updateEl = doc.createElement("update");
|
||||
updateEl.setAttribute("id", "update");
|
||||
return appendIncludeEl(doc, updateEl, "Tigon.update");
|
||||
|
Loading…
x
Reference in New Issue
Block a user