master
wangbing 4 years ago
parent 078fb8d736
commit 1565ee2986

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

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

Powered by TurnKey Linux.