|
|
@@ -20,11 +20,15 @@ import java.util.Set; |
|
|
|
import java.util.SortedSet; |
|
|
|
import java.util.TreeSet; |
|
|
|
|
|
|
|
// 目前仅仅处理@Data,且必须在lombok自己的processor之前执行,千万注意!!!!! |
|
|
|
/** |
|
|
|
* 目前仅仅处理@Data,且必须在lombok自己的processor之前执行,千万注意!!!!! |
|
|
|
* |
|
|
|
* @author outersky |
|
|
|
*/ |
|
|
|
|
|
|
|
@SupportedAnnotationTypes("lombok.Data") |
|
|
|
@SupportedSourceVersion(SourceVersion.RELEASE_7) |
|
|
|
public class GraalProcessor extends AbstractProcessor { |
|
|
|
|
|
|
|
private static final String REFLECTION_CONFIG_JSON = "reflection-config.json"; |
|
|
|
private static final String NATIVE_IMAGE_PROPERTIES = "native-image.properties"; |
|
|
|
|
|
|
@@ -40,10 +44,14 @@ public class GraalProcessor extends AbstractProcessor { |
|
|
|
} |
|
|
|
|
|
|
|
//只有最后一轮才可以写文件,否则文件会被重复打开,报错! |
|
|
|
if (!roundEnv.processingOver()) return false; |
|
|
|
if (!roundEnv.processingOver()) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
// 如果没有文件要写,跳过 |
|
|
|
if (classSet.isEmpty()) return false; |
|
|
|
if (classSet.isEmpty()) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
writeFiles(); |
|
|
|
|
|
|
@@ -72,7 +80,9 @@ public class GraalProcessor extends AbstractProcessor { |
|
|
|
*/ |
|
|
|
private String getPackageName(String fullClassName) { |
|
|
|
int last = fullClassName.lastIndexOf('.'); |
|
|
|
if (last == -1) return fullClassName; |
|
|
|
if (last == -1) { |
|
|
|
return fullClassName; |
|
|
|
} |
|
|
|
return fullClassName.substring(0, last); |
|
|
|
} |
|
|
|
|
|
|
@@ -158,7 +168,9 @@ public class GraalProcessor extends AbstractProcessor { |
|
|
|
TypeElement s = (TypeElement) ((DeclaredType) superclass).asElement(); |
|
|
|
String sName = s.toString(); |
|
|
|
// ignore java.**/javax.** |
|
|
|
if (sName.startsWith("java.") || sName.startsWith("javax.")) return; |
|
|
|
if (sName.startsWith("java.") || sName.startsWith("javax.")) { |
|
|
|
return; |
|
|
|
} |
|
|
|
registerClass(sName); |
|
|
|
handleSuperClass(s); |
|
|
|
} |
|
|
|