static void importAttributeConverter(String classHandle, AtomicBoolean validated, ModelerFile modelerFile) {
if(StringUtils.isBlank(classHandle)){
validated.set(true);
return;
}
FileObject pkg = SourceGroupSupport.findSourceGroupForFile(modelerFile.getFileObject()).getRootFolder();
try {
JavaSource javaSource = JavaSource.create(ClasspathInfo.create(pkg));
javaSource.runUserActionTask(controller -> {
try {
controller.toPhase(JavaSource.Phase.ELEMENTS_RESOLVED);
TypeElement jc = controller.getElements().getTypeElement(classHandle);
EntityMappings entityMappings = (EntityMappings)modelerFile.getDefinitionElement();
Optional<Converter> converter = entityMappings.findConverter(classHandle);
if (jc != null) {
DeclaredType attributeConverterType = null;
if (!jc.getInterfaces().isEmpty()) { //fetch interface info
for (TypeMirror interfaceType : jc.getInterfaces()) {
if (interfaceType.getKind() == TypeKind.DECLARED
&& AttributeConverter.class.getName().equals(((DeclaredType) interfaceType).asElement().toString())) {
attributeConverterType = (DeclaredType) interfaceType;
}
}
}
if (attributeConverterType != null && attributeConverterType.getTypeArguments().size() == 2) {
TypeMirror attributeType = attributeConverterType.getTypeArguments().get(0);
TypeMirror dbFieldType = attributeConverterType.getTypeArguments().get(1);
if (!entityMappings.addConverter(classHandle, attributeType.toString(), dbFieldType.toString())) {
message("MSG_ATTRIBUTE_CONVERTER_TYPE_CONFLICT", classHandle);
} else {
if(!converter.isPresent()) {
message("MSG_ATTRIBUTE_CONVERTER_TYPE_REGISTERED", classHandle, attributeType.toString(), dbFieldType.toString());
}
validated.set(true);
}
} else {
message("MSG_ATTRIBUTE_CONVERTER_NOT_IMPLEMENTED", classHandle);
}
} else {
if(converter.isPresent()){
validated.set(true);
} else {
message("MSG_ARTIFACT_NOT_FOUND", classHandle, pkg.getPath());
}
}
} catch (IOException t) {
ExceptionUtils.printStackTrace(t);
}
}, true);
} catch (IOException ex) {
Exceptions.printStackTrace(ex);
}
}
ConvertPanel.java 文件源码
java
阅读 26
收藏 0
点赞 0
评论 0
项目:jeddict
作者:
评论列表
文章目录