master
wangbing 5 years ago
parent 078fb8d736
commit 1565ee2986

@ -7,6 +7,7 @@ import javax.tools.StandardJavaFileManager;
import javax.tools.ToolProvider; import javax.tools.ToolProvider;
import java.io.File; import java.io.File;
import java.io.FileFilter; import java.io.FileFilter;
import java.io.IOException;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.net.URI; import java.net.URI;
@ -19,7 +20,7 @@ import java.util.List;
import java.util.Stack; import java.util.Stack;
/** /**
* ClassUtil * ClassUtil
* *
* @author wangbing * @author wangbing
* @version 0.0.1 * @version 0.0.1
@ -28,28 +29,53 @@ import java.util.Stack;
public class ClassUtil { public class ClassUtil {
/** /**
* * ()
* *
* @param clazz * @param clazz
* @return
*/
public static Field[] getFields(Class clazz) {
return getFields(clazz, false);
}
/**
*
*
* @param clazz
* @param parentFirst * @param parentFirst
* @return * @return
*/ */
public static Field[] getFields(Class clazz, boolean parentFirst) { public static Field[] getFields(Class clazz, boolean parentFirst) {
Field[] fields = clazz.getDeclaredFields(); Field[] fields = clazz.getDeclaredFields();
if (parentFirst) { if (parentFirst) {
Field[] parentFields = getParentFields(clazz.getSuperclass()); Field[] parentFields = getParentFields(clazz.getSuperclass());
return concat(fields, parentFields); return ArrayUtil.merge(fields, parentFields);
} }
return fields; return fields;
} }
/** /**
* *
* *
* @param clazz * @param clazz
* @return * @return
*/ */
private static Field[] getParentFields(Class clazz) {
if (clazz != null && clazz.getSuperclass() != null) {
Field[] pfs = clazz.getSuperclass().getDeclaredFields();
Field[] ppfs = getParentFields(clazz.getSuperclass());
return ArrayUtil.merge(pfs, ppfs);
}
return new Field[0];
}
/**
*
*
* @param clazz
* @return
*/
public static boolean isCollection(Class<?> clazz) { public static boolean isCollection(Class<?> clazz) {
return Collection.class.isAssignableFrom(clazz); return Collection.class.isAssignableFrom(clazz);
} }
@ -58,8 +84,8 @@ public class ClassUtil {
* GET * GET
* *
* @param name * @param name
* @param pojoClass POJO * @param pojoClass
* @return * @return
*/ */
public static Method getMethod(String name, Class<?> pojoClass) { public static Method getMethod(String name, Class<?> pojoClass) {
String getMethodName = "get" + StringUtil.upperFirstWord(name); String getMethodName = "get" + StringUtil.upperFirstWord(name);
@ -80,7 +106,7 @@ public class ClassUtil {
* *
* @param name * @param name
* @param pojoClass POJO * @param pojoClass POJO
* @return * @return
*/ */
public static Method setMethod(String name, Class<?> pojoClass, Class<?> type) { public static Method setMethod(String name, Class<?> pojoClass, Class<?> type) {
String setMethodName = "set" + StringUtil.upperFirstWord(name); String setMethodName = "set" + StringUtil.upperFirstWord(name);
@ -91,6 +117,12 @@ public class ClassUtil {
} }
} }
/**
*
*
* @param field
* @return
*/
public static boolean isJavaClass(Field field) { public static boolean isJavaClass(Field field) {
Class<?> fieldType = field.getType(); Class<?> fieldType = field.getType();
boolean isBaseClass = false; boolean isBaseClass = false;
@ -106,30 +138,10 @@ public class ClassUtil {
return isBaseClass; return isBaseClass;
} }
public static Field[] getFields(Class clazz) {
return getFields(clazz, false);
}
private static Field[] getParentFields(Class parentClazz) {
if (parentClazz != null) {
Field[] fields = parentClazz.getDeclaredFields();
Field[] parentFields = getParentFields(parentClazz.getSuperclass());
return concat(fields, parentFields);
}
return new Field[0];
}
private static Field[] concat(Field[] f1, Field[] f2) {
Field[] fields = new Field[f1.length + f2.length];
System.arraycopy(f1, 0, fields, 0, f1.length);
System.arraycopy(f2, 0, fields, f1.length, f2.length);
return fields;
}
/** /**
* @param sourcePath * @param sourcePath
* @param classPath * @param classPath
* @return * @return
*/ */
public static boolean compile(String sourcePath, String classPath) { public static boolean compile(String sourcePath, String classPath) {
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
@ -147,7 +159,7 @@ public class ClassUtil {
* @param className * @param className
* @param classContent * @param classContent
* @param classPath * @param classPath
* @return * @return
*/ */
public static boolean compileStringJava(String className, String classContent, String classPath) { public static boolean compileStringJava(String className, String classContent, String classPath) {
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
@ -156,6 +168,10 @@ public class ClassUtil {
SimpleJavaFileObject simpleJavaFileObject = new SimpleJavaFileObject( SimpleJavaFileObject simpleJavaFileObject = new SimpleJavaFileObject(
URI.create("string:///" + className.replace('.', '/') + JavaFileObject.Kind.SOURCE.extension), URI.create("string:///" + className.replace('.', '/') + JavaFileObject.Kind.SOURCE.extension),
JavaFileObject.Kind.SOURCE) { JavaFileObject.Kind.SOURCE) {
@Override
public CharSequence getCharContent(boolean ignoreEncodingErrors) throws IOException {
return classContent;
}
}; };
Iterable<JavaFileObject> simpleJavaFileObjects = Arrays.asList(simpleJavaFileObject); Iterable<JavaFileObject> simpleJavaFileObjects = Arrays.asList(simpleJavaFileObject);
JavaCompiler.CompilationTask task = compiler.getTask(null, fileManager, null, options, null, simpleJavaFileObjects); JavaCompiler.CompilationTask task = compiler.getTask(null, fileManager, null, options, null, simpleJavaFileObjects);
@ -247,6 +263,7 @@ public class ClassUtil {
/** /**
* *
* {@link #loadClass(File)} * {@link #loadClass(File)}
* Class.forName()ClassClass.forName(name)
* *
* @param className (package,) * @param className (package,)
* @return * @return

@ -3,27 +3,30 @@ package ${domain};
import ${domain}.frame.auth.Token; import ${domain}.frame.auth.Token;
import ${domain}.frame.base.BaseResponse; import ${domain}.frame.base.BaseResponse;
import ${domain}.frame.utils.MapperUtil; import ${domain}.frame.utils.MapperUtil;
import ${domain}.frame.utils.Message; import ${domain}.module.wsys.ent.Res;
import ${domain}.module.wsys.mgr.DictItemManager; import ${domain}.module.wsys.mgr.DictItemManager;
import ${domain}.module.wsys.mgr.DictManager; import ${domain}.module.wsys.mgr.DictManager;
import ${domain}.module.wsys.req.DictCreateRequest;
import ${domain}.module.wsys.req.DictItemCreateRequest;
import ${domain}.module.wsys.rsp.DictCreateResponse;
import ${domain}.module.wsys.rsp.DictItemCreateResponse;
<#if project.frameValue() = 1>
import ${domain}.module.wsys.ent.Res;
import ${domain}.module.wsys.mgr.ResManager; import ${domain}.module.wsys.mgr.ResManager;
import ${domain}.module.wsys.mgr.RoleManager; import ${domain}.module.wsys.mgr.RoleManager;
import ${domain}.module.wsys.mgr.RoleResManager; import ${domain}.module.wsys.mgr.RoleResManager;
import ${domain}.module.wsys.req.DictCreateRequest;
import ${domain}.module.wsys.req.DictFindRequest;
import ${domain}.module.wsys.req.DictItemCreateRequest;
import ${domain}.module.wsys.req.DictItemFindRequest;
import ${domain}.module.wsys.req.ResCreateRequest; import ${domain}.module.wsys.req.ResCreateRequest;
import ${domain}.module.wsys.req.ResFindRequest; import ${domain}.module.wsys.req.ResFindRequest;
import ${domain}.module.wsys.req.RoleCreateRequest; import ${domain}.module.wsys.req.RoleCreateRequest;
import ${domain}.module.wsys.req.RoleFindRequest;
import ${domain}.module.wsys.req.RoleResCheckRequest; import ${domain}.module.wsys.req.RoleResCheckRequest;
import ${domain}.module.wsys.rsp.DictCreateResponse;
import ${domain}.module.wsys.rsp.DictFindResponse;
import ${domain}.module.wsys.rsp.DictItemCreateResponse;
import ${domain}.module.wsys.rsp.DictItemFindResponse;
import ${domain}.module.wsys.rsp.ResCreateResponse; import ${domain}.module.wsys.rsp.ResCreateResponse;
import ${domain}.module.wsys.rsp.ResFindResponse; import ${domain}.module.wsys.rsp.ResFindResponse;
import ${domain}.module.wsys.rsp.RoleCreateResponse; import ${domain}.module.wsys.rsp.RoleCreateResponse;
import ${domain}.module.wsys.rsp.RoleFindResponse;
import ${domain}.module.wsys.rsp.RoleResCheckResponse; import ${domain}.module.wsys.rsp.RoleResCheckResponse;
</#if>
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -50,14 +53,12 @@ public class DataInit {
private DictManager dictManager; private DictManager dictManager;
@Autowired @Autowired
private DictItemManager dictItemManager; private DictItemManager dictItemManager;
<#if project.frameValue() = 1>
@Autowired @Autowired
private ResManager resManager; private ResManager resManager;
@Autowired @Autowired
private RoleManager roleManager; private RoleManager roleManager;
@Autowired @Autowired
private RoleResManager roleCreateRequest; private RoleResManager roleCreateRequest;
</#if>
/** /**
* *
@ -85,7 +86,6 @@ public class DataInit {
} }
//endregion //endregion
<#if project.frameValue() = 1>
//region 管理员初始化 //region 管理员初始化
{ {
List<Res> forDev = new ArrayList<>(); List<Res> forDev = new ArrayList<>();
@ -298,9 +298,7 @@ public class DataInit {
} }
} }
//endregion //endregion
</#if>
} }
<#if project.frameValue() = 1>
private void createDict(String name, String comment, String[][] items) { private void createDict(String name, String comment, String[][] items) {
DictFindRequest dictFindRequest = new DictFindRequest(); DictFindRequest dictFindRequest = new DictFindRequest();
@ -407,5 +405,4 @@ public class DataInit {
System.err.println("==========>" + MapperUtil.toJson(response)); System.err.println("==========>" + MapperUtil.toJson(response));
} }
} }
</#if>
} }
Loading…
Cancel
Save

Powered by TurnKey Linux.