List of usage examples for javax.lang.model.element TypeElement getQualifiedName
Name getQualifiedName();
From source file:fr.xebia.extras.selma.codegen.CustomMapperWrapper.java
void emitCustomMappersFields(JavaWriter writer, boolean assign) throws IOException { for (TypeElement customMapperField : customMapperFields) { final String field = String.format(CUSTOM_MAPPER_FIELD_TPL, customMapperField.getSimpleName().toString()); if (assign) { if (customMapperField.getKind() != ElementKind.INTERFACE && !(customMapperField.getKind() == ElementKind.CLASS && customMapperField.getModifiers().contains(ABSTRACT))) { TypeConstructorWrapper constructorWrapper = new TypeConstructorWrapper(context, customMapperField); // assign the customMapper field to a newly created instance passing to it the declared source params writer.emitStatement("this.%s = new %s(%s)", field, customMapperField.getQualifiedName().toString(), constructorWrapper.hasMatchingSourcesConstructor ? context.newParams() : ""); }/*from w ww . ja v a 2 s. c om*/ } else { writer.emitEmptyLine(); writer.emitJavadoc("This field is used for custom Mapping"); if (ioC == IoC.SPRING) { writer.emitAnnotation("org.springframework.beans.factory.annotation.Autowired"); } writer.emitField(customMapperField.asType().toString(), String.format(CUSTOM_MAPPER_FIELD_TPL, customMapperField.getSimpleName().toString()), EnumSet.of(PRIVATE)); writer.emitEmptyLine(); writer.emitJavadoc("Custom Mapper setter for " + field); EnumSet<Modifier> modifiers = EnumSet.of(PUBLIC, FINAL); if (ioC == IoC.CDI) { modifiers = EnumSet.of(PUBLIC); } writer.beginMethod("void", "setCustomMapper" + customMapperField.getSimpleName(), modifiers, customMapperField.asType().toString(), "mapper"); writer.emitStatement("this.%s = mapper", field); writer.endMethod(); writer.emitEmptyLine(); } } }
From source file:org.kie.workbench.common.stunner.core.processors.MainProcessor.java
private TypeElement getAnnotationInTypeInheritance(final TypeElement classElement, final String annotation) { TypeElement c = classElement; while (null != c && !hasAnnotation(c, annotation) && !classElement.getQualifiedName().toString().equals(Object.class.getName())) { c = getParent(c);// w ww . j a v a2 s. com } return c; }
From source file:android.databinding.tool.store.SetterStore.java
public void addUntaggableTypes(String[] typeNames, TypeElement declaredOn) { L.d("STORE addUntaggableTypes %s %s", Arrays.toString(typeNames), declaredOn); String declaredType = declaredOn.getQualifiedName().toString(); for (String type : typeNames) { mStore.untaggableTypes.put(type, declaredType); }// w w w . j a v a 2 s.c o m }
From source file:org.kie.workbench.common.forms.adf.processors.FormDefinitionGenerator.java
private List<FormDefinitionFieldData> extracFormFields(TypeElement type, FieldPolicy policy, I18nSettings i18nSettings, Map<String, String> defaultParams) throws Exception { final Types typeUtils = context.getProcessingEnvironment().getTypeUtils(); Collection<FieldInfo> fieldInfos = FormGenerationUtils.extractFieldInfos(type, fieldElement -> filter(fieldElement, policy)); List<FormDefinitionFieldData> fieldSettings = new ArrayList<>(); for (FieldInfo fieldInfo : fieldInfos) { if (fieldInfo.getSetter() != null && fieldInfo.getGetter() != null) { String fieldName = fieldInfo.getFieldElement().getSimpleName().toString(); FormDefinitionFieldData fieldData = new FormDefinitionFieldData(type.getQualifiedName().toString(), fieldName);/*from ww w .j a va2s. c o m*/ fieldData.setLabel(fieldName); fieldData.setBinding(fieldName); fieldData.setMethodName("getFormElement_" + fieldName); boolean isList = false; org.kie.workbench.common.forms.model.TypeKind typeKind = org.kie.workbench.common.forms.model.TypeKind.BASE; boolean overrideI18n = false; TypeMirror finalType = fieldInfo.getFieldElement().asType(); TypeElement finalTypeElement = (TypeElement) typeUtils.asElement(finalType); String fieldModifier = ""; if (finalTypeElement.getKind().equals(ElementKind.CLASS)) { FieldDefinition fieldDefinitionAnnotation = finalTypeElement .getAnnotation(FieldDefinition.class); if (fieldDefinitionAnnotation != null) { // Override the using the i18n mechanism if (fieldDefinitionAnnotation.i18nMode().equals(I18nMode.OVERRIDE_I18N_KEY)) { fieldData.setLabel(finalType.toString() + i18nSettings.separator() + fieldDefinitionAnnotation.labelKeySuffix()); Collection<FieldInfo> labelInfos = FormGenerationUtils.extractFieldInfos( finalTypeElement, fieldElement -> fieldElement.getAnnotation(FieldLabel.class) != null); if (labelInfos != null && labelInfos.size() == 1) { FieldInfo labelInfo = labelInfos.iterator().next(); fieldData.setLabel(finalType.toString() + i18nSettings.separator() + labelInfo.getFieldElement().getSimpleName()); } fieldData.setHelpMessage(finalType.toString() + i18nSettings.separator() + fieldDefinitionAnnotation.helpMessageKeySuffix()); Collection<FieldInfo> helpMessages = FormGenerationUtils.extractFieldInfos( finalTypeElement, fieldElement -> fieldElement.getAnnotation(FieldHelp.class) != null); if (helpMessages != null && helpMessages.size() == 1) { FieldInfo helpInfo = helpMessages.iterator().next(); fieldData.setHelpMessage(finalType.toString() + i18nSettings.separator() + helpInfo.getFieldElement().getSimpleName()); } } Collection<FieldInfo> fieldValue = FormGenerationUtils.extractFieldInfos(finalTypeElement, fieldElement -> fieldElement.getAnnotation(FieldValue.class) != null); if (fieldValue == null || fieldValue.size() != 1) { throw new Exception("Problem processing FieldDefinition [" + finalType + "]: it should have one field marked as @FieldValue"); } FieldInfo valueInfo = fieldValue.iterator().next(); fieldData.setBinding( fieldData.getBinding() + "." + valueInfo.getFieldElement().getSimpleName()); fieldModifier = FormGenerationUtils.fixClassName(finalType.toString()) + "_FieldStatusModifier"; finalType = valueInfo.getFieldElement().asType(); finalTypeElement = (TypeElement) typeUtils.asElement(finalType); overrideI18n = !fieldDefinitionAnnotation.i18nMode().equals(I18nMode.DONT_OVERRIDE); } else { FormDefinition formDefinitionAnnotation = finalTypeElement .getAnnotation(FormDefinition.class); if (formDefinitionAnnotation != null) { fieldData.setLabel( finalType.toString() + i18nSettings.separator() + FieldDefinition.LABEL); Collection<FieldInfo> labelInfos = FormGenerationUtils.extractFieldInfos( finalTypeElement, fieldElement -> fieldElement.getAnnotation(FieldLabel.class) != null); if (labelInfos != null && labelInfos.size() == 1) { FieldInfo labelInfo = labelInfos.iterator().next(); fieldData.setLabel(finalType.toString() + i18nSettings.separator() + labelInfo.getFieldElement().getSimpleName()); overrideI18n = true; } fieldData.setHelpMessage( finalType.toString() + i18nSettings.separator() + FieldDefinition.HELP_MESSAGE); Collection<FieldInfo> helpMessages = FormGenerationUtils.extractFieldInfos( finalTypeElement, fieldElement -> fieldElement.getAnnotation(FieldHelp.class) != null); if (helpMessages != null && helpMessages.size() == 1) { FieldInfo helpInfo = helpMessages.iterator().next(); fieldData.setHelpMessage(finalType.toString() + i18nSettings.separator() + helpInfo.getFieldElement().getSimpleName()); overrideI18n = true; } typeKind = org.kie.workbench.common.forms.model.TypeKind.OBJECT; } } } DeclaredType fieldType = (DeclaredType) finalType; if (typeUtils.isAssignable(finalTypeElement.asType(), listType)) { if (fieldType.getTypeArguments().size() != 1) { throw new IllegalArgumentException("Impossible to generate a field for type " + fieldType.toString() + ". Type should have one and only one Type arguments."); } isList = true; finalType = fieldType.getTypeArguments().get(0); finalTypeElement = (TypeElement) typeUtils.asElement(finalType); if (FormModelPropertiesUtil.isBaseType(finalTypeElement.getQualifiedName().toString())) { typeKind = org.kie.workbench.common.forms.model.TypeKind.BASE; } else if (typeUtils.isAssignable(finalTypeElement.asType(), enumType)) { typeKind = org.kie.workbench.common.forms.model.TypeKind.ENUM; } else { typeKind = org.kie.workbench.common.forms.model.TypeKind.OBJECT; } } else if (typeUtils.isAssignable(finalTypeElement.asType(), enumType)) { typeKind = org.kie.workbench.common.forms.model.TypeKind.ENUM; } fieldData.setType(typeKind.toString()); fieldData.setClassName(finalTypeElement.getQualifiedName().toString()); fieldData.setList(String.valueOf(isList)); fieldData.setFieldModifier(fieldModifier); fieldData.getParams().putAll(defaultParams); FormField settings = fieldInfo.getFieldElement().getAnnotation(FormField.class); if (settings != null) { try { fieldData.setPreferredType(settings.type().getName()); } catch (MirroredTypeException exception) { fieldData.setPreferredType(exception.getTypeMirror().toString()); } fieldData.setAfterElement(settings.afterElement()); if (!overrideI18n && !isEmpty(settings.labelKey())) { fieldData.setLabel(settings.labelKey()); } if (!overrideI18n && !isEmpty(settings.helpMessageKey())) { fieldData.setHelpMessage(settings.helpMessageKey()); } fieldData.setRequired(Boolean.valueOf(settings.required()).toString()); fieldData.setReadOnly(Boolean.valueOf(settings.readonly()).toString()); for (FieldParam fieldParam : settings.settings()) { fieldData.getParams().put(fieldParam.name(), fieldParam.value()); } fieldData.setWrap(Boolean.valueOf(settings.layoutSettings().wrap()).toString()); fieldData.setHorizontalSpan(String.valueOf(settings.layoutSettings().horizontalSpan())); fieldData.setVerticalSpan(String.valueOf(settings.layoutSettings().verticalSpan())); } if (!overrideI18n) { if (!isEmpty(i18nSettings.keyPreffix())) { fieldData.setLabel( i18nSettings.keyPreffix() + i18nSettings.separator() + fieldData.getLabel()); if (!isEmpty(fieldData.getHelpMessage())) { fieldData.setHelpMessage(i18nSettings.keyPreffix() + i18nSettings.separator() + fieldData.getHelpMessage()); } } } extractFieldExtraSettings(fieldData, fieldInfo.getFieldElement()); fieldSettings.add(fieldData); } } return fieldSettings; }
From source file:com.googlecode.androidannotations.helper.ValidatorHelper.java
public void applicationRegistered(Element element, AndroidManifest manifest, IsValid valid) { if (manifest.isLibraryProject()) { return;//www . java 2 s . c om } String applicationClassName = manifest.getApplicationClassName(); if (applicationClassName != null) { TypeElement typeElement = (TypeElement) element; String componentQualifiedName = typeElement.getQualifiedName().toString(); String generatedComponentQualifiedName = componentQualifiedName + ModelConstants.GENERATION_SUFFIX; if (!applicationClassName.equals(generatedComponentQualifiedName)) { if (applicationClassName.equals(componentQualifiedName)) { valid.invalidate(); annotationHelper.printAnnotationError(element, "The AndroidManifest.xml file contains the original component, and not the AndroidAnnotations generated component. Please register " + generatedComponentQualifiedName + " instead of " + componentQualifiedName); } else { annotationHelper.printAnnotationWarning(element, "The component " + generatedComponentQualifiedName + " is not registered in the AndroidManifest.xml file."); } } } else { valid.invalidate(); annotationHelper.printAnnotationError(element, "No application class registered in the AndroidManifest.xml"); } }
From source file:com.googlecode.androidannotations.helper.ValidatorHelper.java
public void isSharedPreference(Element element, AnnotationElements validatedElements, IsValid valid) { TypeMirror type = element.asType(); /*//from ww w . j a v a 2s .c om * The type is not available yet because it has just been generated */ if (type instanceof ErrorType) { String elementTypeName = type.toString(); boolean sharedPrefValidatedInRound = false; if (elementTypeName.endsWith(GENERATION_SUFFIX)) { String prefTypeName = elementTypeName.substring(0, elementTypeName.length() - GENERATION_SUFFIX.length()); Set<? extends Element> sharedPrefElements = validatedElements .getRootAnnotatedElements(SharedPref.class.getName()); for (Element sharedPrefElement : sharedPrefElements) { TypeElement sharedPrefTypeElement = (TypeElement) sharedPrefElement; String sharedPrefQualifiedName = sharedPrefTypeElement.getQualifiedName().toString(); if (sharedPrefQualifiedName.endsWith(prefTypeName)) { sharedPrefValidatedInRound = true; break; } } } if (!sharedPrefValidatedInRound) { valid.invalidate(); } } else { extendsType(element, SharedPreferencesHelper.class.getName(), valid); } }
From source file:co.touchlab.squeaky.processor.AnnotationProcessor.java
private DataType findFieldDataType(List<DatabaseTableHolder> databaseTableHolders, TypeElement fieldElement, FieldTypeGen config) {//from w w w . j a v a 2 s .c om DataType dataType = null; if (config.foreign) { for (DatabaseTableHolder databaseTableHolder : databaseTableHolders) { System.out.println("Find foreign: " + databaseTableHolder.typeElement.getQualifiedName() + "/" + fieldElement.getQualifiedName()); if (databaseTableHolder.typeElement.getQualifiedName().toString() .equals(config.dataTypeClassname)) { for (FieldTypeGen fieldTypeGen : databaseTableHolder.fieldTypeGens) { if (fieldTypeGen.isId || fieldTypeGen.isGeneratedId) { dataType = fieldTypeGen.dataType; } } } } } else { dataType = config.dataType; } return dataType; }
From source file:android.databinding.tool.store.SetterStore.java
public void addRenamedMethod(String attribute, String declaringClass, String method, TypeElement declaredOn) { attribute = stripNamespace(attribute); HashMap<String, MethodDescription> renamed = mStore.renamedMethods.get(attribute); if (renamed == null) { renamed = new HashMap<String, MethodDescription>(); mStore.renamedMethods.put(attribute, renamed); }//from w w w .jav a 2 s .c om MethodDescription methodDescription = new MethodDescription(declaredOn.getQualifiedName().toString(), method); L.d("STORE addmethod desc %s", methodDescription); renamed.put(declaringClass, methodDescription); }
From source file:com.googlecode.androidannotations.helper.ValidatorHelper.java
public void componentRegistered(Element element, AndroidManifest androidManifest, boolean printWarning, IsValid valid) {//from w w w . j ava 2 s . c om TypeElement typeElement = (TypeElement) element; if (typeElement.getModifiers().contains(Modifier.ABSTRACT)) { return; } if (androidManifest.isLibraryProject()) { return; } String componentQualifiedName = typeElement.getQualifiedName().toString(); String generatedComponentQualifiedName = componentQualifiedName + ModelConstants.GENERATION_SUFFIX; List<String> componentQualifiedNames = androidManifest.getComponentQualifiedNames(); if (!componentQualifiedNames.contains(generatedComponentQualifiedName)) { String simpleName = typeElement.getSimpleName().toString(); String generatedSimpleName = simpleName + ModelConstants.GENERATION_SUFFIX; if (componentQualifiedNames.contains(componentQualifiedName)) { valid.invalidate(); annotationHelper.printAnnotationError(element, "The AndroidManifest.xml file contains the original component, and not the AndroidAnnotations generated component. Please register " + generatedSimpleName + " instead of " + simpleName); } else { if (printWarning) { annotationHelper.printAnnotationWarning(element, "The component " + generatedSimpleName + " is not registered in the AndroidManifest.xml file."); } } } }
From source file:com.mastfrog.parameters.processor.Processor.java
@Override public boolean process(Set<? extends TypeElement> set, RoundEnvironment re) { SourceVersion sv = processingEnv.getSourceVersion(); if (sv.ordinal() > SourceVersion.RELEASE_7.ordinal()) { optionalType = "java.util.Optional"; } else {// w ww . ja v a 2s .c o m TypeElement el = processingEnv.getElementUtils().getTypeElement(optionalType); if (el == null) { optionalType = "com.mastfrog.util.Optional"; } else { optionalType = "com.google.common.base.Optional"; fromNullable = "fromNullable"; } } Set<? extends Element> all = re.getElementsAnnotatedWith(Params.class); List<GeneratedParamsClass> interfaces = new LinkedList<>(); outer: for (Element e : all) { TypeElement te = (TypeElement) e; if (te.getSimpleName().toString().endsWith("__GenPage")) { continue; } PackageElement pkg = findPackage(e); if (pkg == null) { processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "@Params may not be used in the default package", e); continue; } if (!isPageSubtype(te)) { processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "@Params must be used on a subclass of org.apache.wicket.Page", e); continue; } String className = te.getQualifiedName().toString(); Params params = te.getAnnotation(Params.class); Map<String, List<String>> validators = validatorsForParam(e); GeneratedParamsClass inf = new GeneratedParamsClass(className, te, pkg, params, validators); if (!params.useRequestBody()) { checkConstructor(te, inf); } interfaces.add(inf); Set<String> names = new HashSet<>(); for (Param param : params.value()) { // if (param.required() && !param.defaultValue().isEmpty()) { // processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "Don't set required to " // + "true if you are providing a default value - required makes it an error not " // + "to have a value, and if there is a default value, that error is an impossibility " // + "because it will always have a value.", e); // continue outer; // } if (param.value().trim().isEmpty()) { processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "Empty parameter name", e); continue outer; } if (!isJavaIdentifier(param.value())) { processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "Not a valid Java identifier: " + param.value(), e); continue outer; } if (!names.add(param.value())) { processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "Duplicate parameter name '" + param.value() + "'", e); continue outer; } for (char c : ";,./*!@&^/\\<>?'\"[]{}-=+)(".toCharArray()) { if (param.value().contains("" + c)) { processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "Param name may not contain the character '" + c + "'", e); } } inf.add(param); } } Filer filer = processingEnv.getFiler(); StringBuilder listBuilder = new StringBuilder(); for (GeneratedParamsClass inf : interfaces) { try { String pth = inf.packageAsPath() + '/' + inf.className; pth = pth.replace('/', '.'); JavaFileObject obj = filer.createSourceFile(pth, inf.el); try (OutputStream out = obj.openOutputStream()) { out.write(inf.toString().getBytes("UTF-8")); } listBuilder.append(inf.className).append('\n'); } catch (Exception ex) { ex.printStackTrace(); processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "Error processing annotation: " + ex.getMessage(), inf.el); Logger.getLogger(Processor.class.getName()).log(Level.SEVERE, null, ex); } } if (re.processingOver()) { try { FileObject list = filer.createResource(StandardLocation.CLASS_OUTPUT, "", "META-INF/paramanos/bind.list", all.toArray(new Element[0])); try (OutputStream out = list.openOutputStream()) { out.write(listBuilder.toString().getBytes("UTF-8")); } } catch (FilerException ex) { Logger.getLogger(Processor.class.getName()).log(Level.INFO, null, ex); } catch (IOException ex) { Logger.getLogger(Processor.class.getName()).log(Level.SEVERE, null, ex); } } return true; }