javax.lang.model.element.TypeElement#getQualifiedName ( )源码实例Demo

下面列出了javax.lang.model.element.TypeElement#getQualifiedName ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: doma   文件: EntityPropertyMetaFactory.java
private void validateSequenceIdGenerator(
    EntityPropertyMeta propertyMeta, SequenceGeneratorAnnot sequenceGeneratorAnnot) {
  TypeElement typeElement =
      ctx.getMoreTypes().toTypeElement(sequenceGeneratorAnnot.getImplementerValue());
  if (typeElement == null) {
    throw new AptIllegalStateException("failed to convert to TypeElement");
  }
  if (typeElement.getModifiers().contains(Modifier.ABSTRACT)) {
    throw new AptException(
        Message.DOMA4170,
        fieldElement,
        sequenceGeneratorAnnot.getAnnotationMirror(),
        sequenceGeneratorAnnot.getImplementer(),
        new Object[] {typeElement.getQualifiedName()});
  }
  ExecutableElement constructor = ctx.getMoreElements().getNoArgConstructor(typeElement);
  if (constructor == null || !constructor.getModifiers().contains(Modifier.PUBLIC)) {
    throw new AptException(
        Message.DOMA4171,
        fieldElement,
        sequenceGeneratorAnnot.getAnnotationMirror(),
        sequenceGeneratorAnnot.getImplementer(),
        new Object[] {typeElement.getQualifiedName()});
  }
}
 
源代码2 项目: doma   文件: EntityMetaFactory.java
void validateFieldAnnotation(VariableElement fieldElement, EntityMeta entityMeta) {
  TypeElement foundAnnotationTypeElement = null;
  for (AnnotationMirror annotation : fieldElement.getAnnotationMirrors()) {
    DeclaredType declaredType = annotation.getAnnotationType();
    TypeElement typeElement = ctx.getMoreTypes().toTypeElement(declaredType);
    if (typeElement.getAnnotation(EntityField.class) != null) {
      if (foundAnnotationTypeElement != null) {
        throw new AptException(
            Message.DOMA4086,
            fieldElement,
            new Object[] {
              foundAnnotationTypeElement.getQualifiedName(), typeElement.getQualifiedName(),
            });
      }
      foundAnnotationTypeElement = typeElement;
    }
  }
}
 
源代码3 项目: SimpleWeibo   文件: GwtCompatibility.java
String gwtCompatibleAnnotationString() {
  if (gwtCompatibleAnnotation.isPresent()) {
    AnnotationMirror annotation = gwtCompatibleAnnotation.get();
    TypeElement annotationElement = (TypeElement) annotation.getAnnotationType().asElement();
    String annotationArguments;
    if (annotation.getElementValues().isEmpty()) {
      annotationArguments = "";
    } else {
      List<String> elements = Lists.newArrayList();
      for (Map.Entry<ExecutableElement, AnnotationValue> entry :
          Collections.unmodifiableMap(annotation.getElementValues()).entrySet()) {
        elements.add(entry.getKey().getSimpleName() + " = " + entry.getValue());
      }
      annotationArguments = "(" + Joiner.on(", ").join(elements) + ")";
    }
    return "@" + annotationElement.getQualifiedName() + annotationArguments;
  } else {
    return "";
  }
}
 
源代码4 项目: fragmentargs   文件: ArgProcessor.java
/**
 * Scans a fragment for a given {@link FragmentWithArgs} annotation
 *
 * @param env             The round environment
 * @param annotationClass The annotation (.class) to scan for
 * @param fragmentClasses The set of classes already scanned (containing annotations)
 * @throws ProcessingException
 */
private void scanForAnnotatedFragmentClasses(RoundEnvironment env,
                                             Class<? extends Annotation> annotationClass, Set<TypeElement> fragmentClasses,
                                             Element element)
        throws ProcessingException {

    if (element.getKind() != ElementKind.CLASS) {
        throw new ProcessingException(element, "%s can only be applied on Fragment classes",
                annotationClass.getSimpleName());
    }

    TypeElement classElement = (TypeElement) element;

    // Check if its a fragment
    if (!isFragmentClass(element)) {
        throw new ProcessingException(element,
                "%s can only be used on fragments, but %s is not a subclass of fragment",
                annotationClass.getSimpleName(), classElement.getQualifiedName());
    }

    // Skip abstract classes
    if (!classElement.getModifiers().contains(Modifier.ABSTRACT)) {
        fragmentClasses.add(classElement);
    }
}
 
源代码5 项目: netbeans   文件: ReplaceBufferByString.java
@Override
public Boolean visitNewClass(NewClassTree node, Void p) {
    TypeMirror tm = ci.getTrees().getTypeMirror(getCurrentPath());
    if (tm == null || tm.getKind() != TypeKind.DECLARED) {
        return false;
    }
    TypeElement el = (TypeElement)((DeclaredType)tm).asElement();
    if (el == null) {
        return false;
    }
    Name n = el.getQualifiedName();
    boolean res = n.contentEquals("java.lang.StringBuilder") || n.contentEquals("java.lang.StringBuffer"); // NOI18N
    // check if there is some initial contents
    if (node.getArguments().size() == 1 && 
            Utilities.isJavaString(ci, ci.getTrees().getTypeMirror(new TreePath(getCurrentPath(), node.getArguments().get(0))))) {
        hasContents = true;
    }
    return res;
}
 
源代码6 项目: netbeans   文件: Utilities.java
/**
 * Determines if the element corresponds to never-returning, terminating method.
 * System.exit, Runtime.exit, Runtime.halt are checked. The passed element is
 * usually a result of {@code CompilationInfo.getTrees().getElement(path)}.
 * 
 * @param info context
 * @param e element to check
 * @return true, if the element corrresponds to a VM-exiting method
 */
public static boolean isSystemExit(CompilationInfo info, Element e) {
    if (e == null || e.getKind() != ElementKind.METHOD) {
        return false;
    }
    ExecutableElement ee = (ExecutableElement)e;
    Name n = ee.getSimpleName();
    if (n.contentEquals("exit") || n.contentEquals("halt")) { // NOI18N
        TypeElement tel = info.getElementUtilities().enclosingTypeElement(e);
        if (tel == null) {
            return false;
        }
        Name ofqn = tel.getQualifiedName();
        if (ofqn.contentEquals("java.lang.System") || ofqn.contentEquals("java.lang.Runtime")) { // NOI18N
            return true;
        }
    }
    return false;
}
 
源代码7 项目: RxPay   文件: ClassEntity.java
/**
 * @param elementUtils
 * @param typeUtils
 * @param element      current anntated class
 */
public ClassEntity(Elements elementUtils, Types typeUtils, TypeElement element) {
    elementWeakCache = new WeakReference<TypeElement>(element);
    this.classPackageName = elementUtils.getPackageOf(element).getQualifiedName().toString();
    this.modifierSet = element.getModifiers();
    this.className = element.toString();
    annotationMirrors = element.getAnnotationMirrors();
    this.classSimpleName = element.getSimpleName();
    this.classQualifiedName = element.getQualifiedName();
    if ("java.lang.Object".equals(element.getSuperclass().toString())){
        this.superclass = null;
    }else{
        this.superclass = element.getSuperclass().toString();
    }
    List<? extends TypeMirror> interfaces = element.getInterfaces();

    for (TypeMirror anInterface : interfaces){
        this.interfaces.add(typeUtils.asElement(anInterface).toString());
    }
}
 
源代码8 项目: j2objc   文件: MethodTranslator.java
private ExecutableElement findConstructor(TypeElement type, MethodReference methodDef) {
  String signature = methodDef.getSignature();
  String erasedSignature = methodDef.getErasedSignature();
  for (Element e : type.getEnclosedElements()) {
    if (e.getKind() == ElementKind.CONSTRUCTOR) {
      String sig = typeUtil.getReferenceSignature((ExecutableElement) e);
      if (sig.equals(signature) || sig.equals(erasedSignature)) {
        return (ExecutableElement) e;
      }
    }
  }
  throw new AssertionError("failed constructor lookup: " + type.getQualifiedName() + signature);
}
 
源代码9 项目: immutables   文件: ValueAttribute.java
private @Nullable NullabilityAnnotationInfo isAccessorNullableAccessor(Element element) {
  for (AnnotationMirror annotation : element.getAnnotationMirrors()) {
    TypeElement annotationElement = (TypeElement) annotation.getAnnotationType().asElement();
    Name simpleName = annotationElement.getSimpleName();
    Name qualifiedName = annotationElement.getQualifiedName();
    if (isNullableAnnotation(simpleName, qualifiedName)) {
      return ImmutableNullabilityAnnotationInfo.of(annotationElement);
    }
  }
  return null;
}
 
源代码10 项目: auto   文件: AutoServiceProcessor.java
private void processAnnotations(Set<? extends TypeElement> annotations,
    RoundEnvironment roundEnv) {

  Set<? extends Element> elements = roundEnv.getElementsAnnotatedWith(AutoService.class);

  log(annotations.toString());
  log(elements.toString());

  for (Element e : elements) {
    // TODO(gak): check for error trees?
    TypeElement providerImplementer = (TypeElement) e;
    AnnotationMirror annotationMirror = getAnnotationMirror(e, AutoService.class).get();
    Set<DeclaredType> providerInterfaces = getValueFieldOfClasses(annotationMirror);
    if (providerInterfaces.isEmpty()) {
      error(MISSING_SERVICES_ERROR, e, annotationMirror);
      continue;
    }
    for (DeclaredType providerInterface : providerInterfaces) {
      TypeElement providerType = MoreTypes.asTypeElement(providerInterface);

      log("provider interface: " + providerType.getQualifiedName());
      log("provider implementer: " + providerImplementer.getQualifiedName());

      if (checkImplementer(providerImplementer, providerType)) {
        providers.put(getBinaryName(providerType), getBinaryName(providerImplementer));
      } else {
        String message = "ServiceProviders must implement their service provider interface. "
            + providerImplementer.getQualifiedName() + " does not implement "
            + providerType.getQualifiedName();
        error(message, e, annotationMirror);
      }
    }
  }
}
 
源代码11 项目: doma   文件: InternalDomainMetaFactory.java
void validateEnclosingElement(Element element) {
  TypeElement typeElement = ctx.getMoreElements().toTypeElement(element);
  if (typeElement == null) {
    return;
  }
  String simpleName = typeElement.getSimpleName().toString();
  if (simpleName.contains(Constants.BINARY_NAME_DELIMITER)
      || simpleName.contains(Constants.TYPE_NAME_DELIMITER)) {
    throw new AptException(
        Message.DOMA4277, typeElement, new Object[] {typeElement.getQualifiedName()});
  }
  NestingKind nestingKind = typeElement.getNestingKind();
  if (nestingKind == NestingKind.TOP_LEVEL) {
    return;
  } else if (nestingKind == NestingKind.MEMBER) {
    Set<Modifier> modifiers = typeElement.getModifiers();
    if (modifiers.containsAll(Arrays.asList(Modifier.STATIC, Modifier.PUBLIC))) {
      validateEnclosingElement(typeElement.getEnclosingElement());
    } else {
      throw new AptException(
          Message.DOMA4275, typeElement, new Object[] {typeElement.getQualifiedName()});
    }
  } else {
    throw new AptException(
        Message.DOMA4276, typeElement, new Object[] {typeElement.getQualifiedName()});
  }
}
 
源代码12 项目: preferencebinder   文件: BinderClassFactory.java
static void addDefault(String key, String defaultFieldName, String type, TypeElement enclosingElement) {
    if(defaultFieldMap.containsKey(key)){
        throw new IllegalArgumentException("Default value set more than once for \""+key);
    }

    final String qualifiedFieldCall = enclosingElement.getQualifiedName() + "." + defaultFieldName;

    defaultFieldMap.put(key, qualifiedFieldCall);
    defaultTypeMap.put(key, type);
}
 
源代码13 项目: bazel   文件: AutoCodecProcessor.java
private MethodSpec buildSerializeMethodWithInstantiator(
    TypeElement encodedType, List<? extends VariableElement> fields, AutoCodec annotation)
    throws SerializationProcessingFailedException {
  MethodSpec.Builder serializeBuilder =
      AutoCodecUtil.initializeSerializeMethodBuilder(encodedType, annotation, env);
  for (VariableElement parameter : fields) {
    Optional<FieldValueAndClass> hasField =
        getFieldByNameRecursive(encodedType, parameter.getSimpleName().toString());
    if (hasField.isPresent()) {
      if (findRelationWithGenerics(hasField.get().value.asType(), parameter.asType())
          == Relation.UNRELATED_TO) {
        throw new SerializationProcessingFailedException(
            parameter,
            "%s: parameter %s's type %s is unrelated to corresponding field type %s",
            encodedType.getQualifiedName(),
            parameter.getSimpleName(),
            parameter.asType(),
            hasField.get().value.asType());
      }
      TypeKind typeKind = parameter.asType().getKind();
      serializeBuilder.addStatement(
          "$T unsafe_$L = ($T) $T.getInstance().get$L(input, $L_offset)",
          sanitizeTypeParameter(parameter.asType(), env),
          parameter.getSimpleName(),
          sanitizeTypeParameter(parameter.asType(), env),
          UnsafeProvider.class,
          typeKind.isPrimitive() ? firstLetterUpper(typeKind.toString().toLowerCase()) : "Object",
          parameter.getSimpleName());
          marshallers.writeSerializationCode(
              new Marshaller.Context(
                  serializeBuilder, parameter.asType(), "unsafe_" + parameter.getSimpleName()));
    } else {
      addSerializeParameterWithGetter(encodedType, parameter, serializeBuilder);
    }
  }
  return serializeBuilder.build();
}
 
源代码14 项目: doma   文件: EntityMetaFactory.java
void validateInheritedEntityListener(
    TypeElement classElement, EntityMeta entityMeta, TypeElement inheritedListenerElement) {
  EntityAnnot entityAnnot = entityMeta.getEntityAnnot();
  List<? extends TypeParameterElement> typeParams =
      inheritedListenerElement.getTypeParameters();
  if (typeParams.size() == 0) {
    throw new AptException(
        Message.DOMA4230,
        classElement,
        entityAnnot.getAnnotationMirror(),
        new Object[] {
          inheritedListenerElement.getQualifiedName(), classElement.getQualifiedName()
        });
  }
  TypeParameterElement typeParam = typeParams.get(0);
  for (TypeMirror bound : typeParam.getBounds()) {
    if (!ctx.getMoreTypes().isAssignableWithErasure(classElement.asType(), bound)) {
      throw new AptException(
          Message.DOMA4231,
          classElement,
          entityAnnot.getAnnotationMirror(),
          new Object[] {
            inheritedListenerElement.getQualifiedName(),
            typeParam.getSimpleName(),
            bound,
            classElement.getQualifiedName()
          });
    }
  }
}
 
源代码15 项目: TencentKona-8   文件: JNIWriter.java
protected String defineForStatic(TypeElement c, VariableElement f) {
    CharSequence cnamedoc = c.getQualifiedName();
    CharSequence fnamedoc = f.getSimpleName();

    String cname = mangler.mangle(cnamedoc, Mangle.Type.CLASS);
    String fname = mangler.mangle(fnamedoc, Mangle.Type.FIELDSTUB);

    Assert.check(f.getModifiers().contains(Modifier.STATIC));

    if (f.getModifiers().contains(Modifier.FINAL)) {
        Object value = null;

        value = f.getConstantValue();

        if (value != null) { /* so it is a ConstantExpression */
            String constString = null;
            if ((value instanceof Integer)
                || (value instanceof Byte)
                || (value instanceof Short)) {
                /* covers byte, short, int */
                constString = value.toString() + "L";
            } else if (value instanceof Boolean) {
                constString = ((Boolean) value) ? "1L" : "0L";
            } else if (value instanceof Character) {
                Character ch = (Character) value;
                constString = String.valueOf(((int) ch) & 0xffff) + "L";
            } else if (value instanceof Long) {
                // Visual C++ supports the i64 suffix, not LL.
                if (isWindows)
                    constString = value.toString() + "i64";
                else
                    constString = value.toString() + "LL";
            } else if (value instanceof Float) {
                /* bug for bug */
                float fv = ((Float)value).floatValue();
                if (Float.isInfinite(fv))
                    constString = ((fv < 0) ? "-" : "") + "Inff";
                else
                    constString = value.toString() + "f";
            } else if (value instanceof Double) {
                /* bug for bug */
                double d = ((Double)value).doubleValue();
                if (Double.isInfinite(d))
                    constString = ((d < 0) ? "-" : "") + "InfD";
                else
                    constString = value.toString();
            }

            if (constString != null) {
                StringBuilder s = new StringBuilder("#undef ");
                s.append(cname); s.append("_"); s.append(fname); s.append(lineSep);
                s.append("#define "); s.append(cname); s.append("_");
                s.append(fname); s.append(" "); s.append(constString);
                return s.toString();
            }

        }
    }

    return null;
}
 
源代码16 项目: stitch   文件: ElementCheck.java
static void checkTopLevel(TypeElement e) {
    Element element = e.getEnclosingElement();
    if (element.getKind() != ElementKind.PACKAGE) {
        throw new IllegalStateException("@Component error: " + e.getQualifiedName() + " can not be inner class!");
    }
}
 
源代码17 项目: openjdk-jdk8u   文件: JNIWriter.java
protected String defineForStatic(TypeElement c, VariableElement f) {
    CharSequence cnamedoc = c.getQualifiedName();
    CharSequence fnamedoc = f.getSimpleName();

    String cname = mangler.mangle(cnamedoc, Mangle.Type.CLASS);
    String fname = mangler.mangle(fnamedoc, Mangle.Type.FIELDSTUB);

    Assert.check(f.getModifiers().contains(Modifier.STATIC));

    if (f.getModifiers().contains(Modifier.FINAL)) {
        Object value = null;

        value = f.getConstantValue();

        if (value != null) { /* so it is a ConstantExpression */
            String constString = null;
            if ((value instanceof Integer)
                || (value instanceof Byte)
                || (value instanceof Short)) {
                /* covers byte, short, int */
                constString = value.toString() + "L";
            } else if (value instanceof Boolean) {
                constString = ((Boolean) value) ? "1L" : "0L";
            } else if (value instanceof Character) {
                Character ch = (Character) value;
                constString = String.valueOf(((int) ch) & 0xffff) + "L";
            } else if (value instanceof Long) {
                // Visual C++ supports the i64 suffix, not LL.
                if (isWindows)
                    constString = value.toString() + "i64";
                else
                    constString = value.toString() + "LL";
            } else if (value instanceof Float) {
                /* bug for bug */
                float fv = ((Float)value).floatValue();
                if (Float.isInfinite(fv))
                    constString = ((fv < 0) ? "-" : "") + "Inff";
                else
                    constString = value.toString() + "f";
            } else if (value instanceof Double) {
                /* bug for bug */
                double d = ((Double)value).doubleValue();
                if (Double.isInfinite(d))
                    constString = ((d < 0) ? "-" : "") + "InfD";
                else
                    constString = value.toString();
            }

            if (constString != null) {
                StringBuilder s = new StringBuilder("#undef ");
                s.append(cname); s.append("_"); s.append(fname); s.append(lineSep);
                s.append("#define "); s.append(cname); s.append("_");
                s.append(fname); s.append(" "); s.append(constString);
                return s.toString();
            }

        }
    }

    return null;
}
 
源代码18 项目: hottub   文件: JNIWriter.java
protected String defineForStatic(TypeElement c, VariableElement f) {
    CharSequence cnamedoc = c.getQualifiedName();
    CharSequence fnamedoc = f.getSimpleName();

    String cname = mangler.mangle(cnamedoc, Mangle.Type.CLASS);
    String fname = mangler.mangle(fnamedoc, Mangle.Type.FIELDSTUB);

    Assert.check(f.getModifiers().contains(Modifier.STATIC));

    if (f.getModifiers().contains(Modifier.FINAL)) {
        Object value = null;

        value = f.getConstantValue();

        if (value != null) { /* so it is a ConstantExpression */
            String constString = null;
            if ((value instanceof Integer)
                || (value instanceof Byte)
                || (value instanceof Short)) {
                /* covers byte, short, int */
                constString = value.toString() + "L";
            } else if (value instanceof Boolean) {
                constString = ((Boolean) value) ? "1L" : "0L";
            } else if (value instanceof Character) {
                Character ch = (Character) value;
                constString = String.valueOf(((int) ch) & 0xffff) + "L";
            } else if (value instanceof Long) {
                // Visual C++ supports the i64 suffix, not LL.
                if (isWindows)
                    constString = value.toString() + "i64";
                else
                    constString = value.toString() + "LL";
            } else if (value instanceof Float) {
                /* bug for bug */
                float fv = ((Float)value).floatValue();
                if (Float.isInfinite(fv))
                    constString = ((fv < 0) ? "-" : "") + "Inff";
                else
                    constString = value.toString() + "f";
            } else if (value instanceof Double) {
                /* bug for bug */
                double d = ((Double)value).doubleValue();
                if (Double.isInfinite(d))
                    constString = ((d < 0) ? "-" : "") + "InfD";
                else
                    constString = value.toString();
            }

            if (constString != null) {
                StringBuilder s = new StringBuilder("#undef ");
                s.append(cname); s.append("_"); s.append(fname); s.append(lineSep);
                s.append("#define "); s.append(cname); s.append("_");
                s.append(fname); s.append(" "); s.append(constString);
                return s.toString();
            }

        }
    }

    return null;
}
 
private void checkThatIsNotAbstract(TypeElement classElement) throws ProcessingException {
	if (classElement.getModifiers().contains(Modifier.ABSTRACT)) {
		throw new ProcessingException(classElement, "The class %s is abstract. You can't annotate abstract classes with @RegisterScreen.", classElement.getQualifiedName());
	}
}
 
源代码20 项目: RADL   文件: AbstractRestProcessor.java
private boolean isBasicType(TypeElement type) {
  Name qualifiedName = type.getQualifiedName();
  return isBasicType(qualifiedName, "Object") || isBasicType(qualifiedName, "Enum");
}