javax.lang.model.element.Element#getModifiers ( )源码实例Demo

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

源代码1 项目: litho   文件: FieldsExtractor.java
public static <T extends Element> ImmutableList<FieldModel> extractFields(T element) {
  final List<FieldModel> fields = new ArrayList<>();

  for (Element enclosedElement : element.getEnclosedElements()) {
    if (ElementKind.FIELD.equals(enclosedElement.getKind())) {
      Set<Modifier> modifiers = enclosedElement.getModifiers();
      fields.add(
          new FieldModel(
              FieldSpec.builder(
                      TypeName.get(enclosedElement.asType()),
                      enclosedElement.getSimpleName().toString(),
                      modifiers.toArray(new Modifier[modifiers.size()]))
                  .build(),
              enclosedElement));
    }
  }

  return ImmutableList.copyOf(fields);
}
 
源代码2 项目: netbeans   文件: MemberInfo.java
public static MemberInfo<TreePathHandle> create(TreePath tpath, CompilationInfo c) {
    String format = ElementHeaders.NAME;
    Group g = null;
    Element el = c.getTrees().getElement(tpath);
    if (el == null) {
        return null;
    }
    if (el.getKind() == ElementKind.FIELD) {
        format += " : " + ElementHeaders.TYPE; // NOI18N
        g=Group.FIELD;
    } else if (el.getKind() == ElementKind.METHOD) {
        format += ElementHeaders.PARAMETERS + " : " + ElementHeaders.TYPE; // NOI18N
        g=Group.METHOD;
    } else if (el.getKind().isInterface()) {
        g=Group.IMPLEMENTS;
        format = "implements " + format; // NOI18N
    }

    MemberInfo<TreePathHandle> mi = new MemberInfo<TreePathHandle>(TreePathHandle.create(tpath, c), el.getSimpleName().toString(), ElementHeaders.getHeader(el, c, format), ElementIcons.getElementIcon(el.getKind(), el.getModifiers()));
    mi.modifiers = el.getModifiers();
    mi.group = g;
    return mi;
}
 
源代码3 项目: Mixin   文件: TypeUtils.java
/**
 * Get the ordinal visibility for the specified element
 * 
 * @param element element to inspect
 * @return visibility level or null if element is null
 */
public static Visibility getVisibility(Element element) {
    if (element == null) {
        return null;
    }
    
    for (Modifier modifier : element.getModifiers()) {
        switch (modifier) {
            case PUBLIC: return Visibility.PUBLIC;
            case PROTECTED: return Visibility.PROTECTED;
            case PRIVATE: return Visibility.PRIVATE;
            default: break;
        }
    }
    
    return Visibility.PACKAGE;
}
 
源代码4 项目: pocketknife   文件: BindingProcessor.java
protected Access getAccess(Class<? extends Annotation> annotationClass, Element element, TypeElement enclosingElement) {
    Set<Modifier> modifiers = element.getModifiers();
    if (modifiers.contains(PROTECTED) || modifiers.contains(PRIVATE)) {
        String getter = findGetter(element);
        String setter = findSetter(element);
        if (getter == null || setter == null) {
            throw new IllegalStateException(String.format("@%s fields must have a Java Bean getter and a setter if it is private or protected. (%s.%s)",
                    annotationClass.getSimpleName(), enclosingElement.getQualifiedName(),
                    element.getSimpleName()));
        }
        return new Access(Access.Type.METHOD, getter, setter);
    }
    String name = element.getSimpleName().toString();
    return new Access(Access.Type.FIELD, name, name);

}
 
源代码5 项目: netbeans   文件: BeanInstaller.java
public static String isDeclaredAsJavaBean(TypeElement clazz) {
    if (ElementKind.CLASS != clazz.getKind()) {
        return PaletteUtils.getBundleString("MSG_notAClass"); // NOI18N
    }

    Set<javax.lang.model.element.Modifier> mods = clazz.getModifiers();
    if (mods.contains(javax.lang.model.element.Modifier.ABSTRACT)) {
        return PaletteUtils.getBundleString("MSG_abstractClass"); // NOI18N
    }

    if (!mods.contains(javax.lang.model.element.Modifier.PUBLIC)) {
        return PaletteUtils.getBundleString("MSG_notPublic"); // NOI18N
    }
    
    for (Element member : clazz.getEnclosedElements()) {
        mods = member.getModifiers();
        if (ElementKind.CONSTRUCTOR == member.getKind() &&
                mods.contains(javax.lang.model.element.Modifier.PUBLIC) &&
                ((ExecutableElement) member).getParameters().isEmpty()) {
            return null;
        }
    }
    
    return PaletteUtils.getBundleString("MSG_noPublicConstructor"); // NOI18N
}
 
源代码6 项目: netbeans   文件: ScopedBeanAnalyzer.java
private void checkFinal( Element element, WebBeansModel model,
        Result result )
{
    if ( !( element instanceof TypeElement )){
        return;
    }
    Set<Modifier> modifiers = element.getModifiers();
    if ( modifiers.contains( Modifier.FINAL) ){
        result.addError( element, model,  
                NbBundle.getMessage(ScopedBeanAnalyzer.class, 
                        "ERR_FinalScopedClass"));
        return;
    }
    List<ExecutableElement> methods = ElementFilter.methodsIn(
            element.getEnclosedElements());
    for (ExecutableElement method : methods) {
        modifiers = method.getModifiers();
        if (modifiers.contains(Modifier.FINAL)) {
            result.addNotification( Severity.WARNING, method, model, 
                            NbBundle.getMessage(
                            ScopedBeanAnalyzer.class,
                            "WARN_FinalScopedClassMethod"));
        }
    }
}
 
源代码7 项目: reflection-no-reflection   文件: Processor.java
private void addFieldToAnnotationDatabase(Element fieldElement, int level) {
    Class fieldClass;
    //System.out.printf("Type: %s, injection: %s \n",typeElementName, fieldName);
    fieldClass = createClass(fieldElement.asType(), level);

    final Set<Modifier> modifiers = fieldElement.getModifiers();
    String fieldName = fieldElement.getSimpleName().toString();
    TypeElement declaringClassElement = (TypeElement) fieldElement.getEnclosingElement();
    String declaringClassName = declaringClassElement.getQualifiedName().toString();
    final List<Annotation> annotations = extractAnnotations(fieldElement, level);
    int modifiersInt = convertModifiersFromAnnotationProcessing(modifiers);
    final Class<?> enclosingClass = Class.forNameSafe(declaringClassName, level + 1);
    if (level == 0) {
        final Class<? extends Annotation> annotationType = annotations.get(0).rnrAnnotationType();
        Set<Class<?>> classes = mapAnnotationTypeToClassContainingAnnotation.get(annotationType);
        if (classes == null) {
            classes = new HashSet<>();
        }
        classes.add(enclosingClass);
        mapAnnotationTypeToClassContainingAnnotation.put(annotationType, classes);
    }
    final Field field = new Field(fieldName, fieldClass, enclosingClass, modifiersInt, annotations);
    enclosingClass.addField(field);
    annotatedClassSet.add(enclosingClass);
}
 
源代码8 项目: netbeans   文件: CheckSums.java
private static String getExtendedModifiers(Elements elements, Element el) {
    StringBuilder sb = new StringBuilder();
    for (Modifier m : el.getModifiers())
        sb.append(m.name());
    if (elements.isDeprecated(el))
        sb.append(DEPRECATED);
    if (el.getKind() == ElementKind.FIELD) {
        Object v = ((VariableElement) el).getConstantValue();
        if (v != null) {
            sb.append(v.getClass().getName());
            sb.append(String.valueOf(v));
        }
    }
    return sb.toString();
}
 
源代码9 项目: netbeans   文件: ElementDescription.java
public ElementDescription(CompilationInfo info, Element element, boolean overriddenFlag) {
    this.originalCPInfo = info.getClasspathInfo();
    this.handle = ElementHandle.create(element);
    if (METHOD.equals(element.getKind()) && null != element.getEnclosingElement()) {
        //when showing the implementors/overriders of a method, show the type icon (not the method icon)
        this.imageKind = element.getEnclosingElement().getKind();
    } else {
        this.imageKind = this.handle.getKind();
    }
    this.outtermostElement = ElementHandle.create(SourceUtils.getOutermostEnclosingTypeElement(element));
    this.modifiers = element.getModifiers();
    this.displayName = overriddenFlag ? computeDisplayNameIsOverridden(element) : computeDisplayNameOverrides(element);
    this.overriddenFlag = overriddenFlag;
}
 
源代码10 项目: netbeans   文件: ElementNode.java
public static Description create(CompilationInfo info, Element element, List<Description> subs, boolean isSelectable, boolean isSelected ) {
    boolean deprecated = info.getElements().isDeprecated(element);
    String htmlHeader = null;
    switch (element.getKind()) {
        case ANNOTATION_TYPE:
        case CLASS:
        case ENUM:
        case INTERFACE:
            htmlHeader = createHtmlHeader(deprecated, (TypeElement)element);
            break;
        case ENUM_CONSTANT:
        case FIELD:
            htmlHeader = createHtmlHeader(deprecated, (VariableElement)element);
            break;
        case CONSTRUCTOR:
        case METHOD:
            htmlHeader = createHtmlHeader(deprecated, (ExecutableElement)element);
            break;                    
    }
    return new Description(element.getSimpleName().toString(), 
                           ElementHandle.create(element), 
                           element.getModifiers(), 
                           subs, 
                           htmlHeader,
                           isSelectable,
                           isSelected);
}
 
源代码11 项目: openjdk-jdk9   文件: ElementsTable.java
/**
 * Returns true if access is allowed.
 *
 * @param e the element in question
 * @return whether the modifiers pass this filter
 */
public boolean checkModifier(Element e) {
    Set<Modifier> modifiers = e.getModifiers();
    AccessKind fflag = AccessKind.PACKAGE;
    if (modifiers.contains(Modifier.PUBLIC)) {
        fflag = AccessKind.PUBLIC;
    } else if (modifiers.contains(Modifier.PROTECTED)) {
        fflag = AccessKind.PROTECTED;
    } else if (modifiers.contains(Modifier.PRIVATE)) {
        fflag = AccessKind.PRIVATE;
    }
    EnumSet<AccessKind> filterSet = filterMap.get(getAllowedKind(e.getKind()));
    return filterSet.contains(fflag);
}
 
源代码12 项目: openjdk-jdk9   文件: AbstractMemberWriter.java
/**
 * Add the modifier for the member. The modifiers are ordered as specified
 * by <em>The Java Language Specification</em>.
 *
 * @param member the member for which teh modifier will be added.
 * @param htmltree the content tree to which the modifier information will be added.
 */
protected void addModifiers(Element member, Content htmltree) {
    Set<Modifier> set = new TreeSet<>(member.getModifiers());

    // remove the ones we really don't need
    set.remove(NATIVE);
    set.remove(SYNCHRONIZED);
    set.remove(STRICTFP);

    // According to JLS, we should not be showing public modifier for
    // interface methods.
    if ((utils.isField(member) || utils.isMethod(member))
        && ((writer instanceof ClassWriterImpl
             && utils.isInterface(((ClassWriterImpl) writer).getTypeElement())  ||
             writer instanceof AnnotationTypeWriterImpl) )) {
        // Remove the implicit abstract and public modifiers
        if (utils.isMethod(member) &&
            (utils.isInterface(member.getEnclosingElement()) ||
             utils.isAnnotationType(member.getEnclosingElement()))) {
            set.remove(ABSTRACT);
            set.remove(PUBLIC);
        }
        if (!utils.isMethod(member)) {
            set.remove(PUBLIC);
        }
    }
    if (!set.isEmpty()) {
        String mods = set.stream().map(Modifier::toString).collect(Collectors.joining(" "));
        htmltree.addContent(mods);
        htmltree.addContent(Contents.SPACE);
    }
}
 
源代码13 项目: Akatsuki   文件: Configuration.java
public boolean fieldAllowed(Element element) {
	Set<Modifier> modifiers = element.getModifiers();

	if (!allowTransient() && modifiers.contains(Modifier.TRANSIENT))
		return false;

	if (!allowVolatile() && modifiers.contains(Modifier.VOLATILE))
		return false;

	return true;
}
 
private void checkModifiers(final Element element, final Class<? extends Annotation> annotation, final String scope, final Modifier... modifiers) throws OnActivityResultProcessingException {
    final Set<Modifier> elementModifiers = element.getModifiers();

    for (final Modifier modifier : modifiers) {
        if (elementModifiers.contains(modifier)) {
            throw new OnActivityResultProcessingException(element, "@%s " + scope + " must not be %s", annotation.getSimpleName(), StringUtils.getList(" or ", modifiers));
        }
    }
}
 
private boolean isAccessibleAndStatic(Class<? extends Annotation> annotationClass, Element element){
    boolean hasError = false;
    TypeElement enclosingElement = (TypeElement) element.getEnclosingElement();

    // Verify method modifiers.
    Set<Modifier> modifiers = element.getModifiers();
    if (!modifiers.contains(PUBLIC) || !modifiers.contains(STATIC)) {
        error(element, "@%s annotated elements must have public and static modifiers. (%s.%s)",
                annotationClass.getSimpleName(), enclosingElement.getQualifiedName(),
                element.getSimpleName());
        hasError = true;
    }

    // Verify containing type.
    if (enclosingElement.getKind() != CLASS) {
        error(enclosingElement, "@%s annotated elements may only be contained in classes. (%s.%s)",
                annotationClass.getSimpleName(), enclosingElement.getQualifiedName(),
                element.getSimpleName());
        hasError = true;
    }

    // Verify containing class visibility is not private.
    if (enclosingElement.getModifiers().contains(PRIVATE)) {
        error(enclosingElement, "@%s annotated elements may not be contained in private classes. (%s.%s)",
                annotationClass.getSimpleName(), enclosingElement.getQualifiedName(),
                element.getSimpleName());
        hasError = true;
    }

    return hasError;
}
 
@TriggerTreeKind(Tree.Kind.METHOD_INVOCATION)
public static ErrorDescription hint(HintContext ctx) {
    MethodInvocationTree mit = (MethodInvocationTree) ctx.getPath().getLeaf();
    CompilationInfo info = ctx.getInfo();
    TreePath enclosingMethod = Utilities.findOwningExecutable(ctx, ctx.getPath(), false);

    if (enclosingMethod == null) {
        return null;
    }

    Element enclosingMethodElement = ctx.getInfo().getTrees().getElement(enclosingMethod);
    
    if (enclosingMethodElement == null || enclosingMethodElement.getKind() != ElementKind.CONSTRUCTOR) {
        return null;
    }

    Element methodInvocationElement = info.getTrees().getElement(new TreePath(ctx.getPath(), mit.getMethodSelect()));
    if (methodInvocationElement == null || methodInvocationElement.getKind() != ElementKind.METHOD) {
        return null;
    }
    Element classElement = methodInvocationElement.getEnclosingElement();
    if (classElement == null || classElement.getKind() != ElementKind.CLASS) {
        return null;
    }
    Element classEl = enclosingMethodElement.getEnclosingElement();
    if (classEl == null || classEl.getKind() != ElementKind.CLASS) {
        return null;
    }
    boolean sameClass = classElement.equals(enclosingMethodElement.getEnclosingElement());
    if (!info.getTypes().isSubtype(classEl.asType(), classElement.asType())) {
        return null;
    }
    // classEl exts classElemenet - either classElement == classEl, or classElement cannot be final anyway
    if (classEl.getModifiers().contains(Modifier.FINAL)) {
        return null;
    }

    Set<Modifier> modifiers = methodInvocationElement.getModifiers();
    if (modifiers.contains(Modifier.PRIVATE) || 
        modifiers.contains(Modifier.FINAL) || 
        modifiers.contains(Modifier.STATIC)) {
        return null;
    }

    if (!invocationOnThis(mit)) {
        return null;
    }

    TreePath methodDeclaration = ctx.getInfo().getTrees().getPath(methodInvocationElement);

    if (methodDeclaration == null || ctx.getInfo().getTreeUtilities().isSynthetic(methodDeclaration)) return null;

    return ErrorDescriptionFactory.forName(ctx, mit,
            NbBundle.getMessage(
                OverridableMethodCallInConstructor.class,
                "MSG_org.netbeans.modules.java.hints.OverridableMethodCallInConstructor"),
                sameClass ? computeFixes((MethodTree) methodDeclaration.getLeaf(),
                    classElement, ctx) : null);
}
 
源代码17 项目: courier   文件: DataMapProcessor.java
private void writeUnpackImplMethod(StringBuilder builder, TypeElement element, String parentClass) {
    if(parentClass!=null) {
        builder.append(INDENT).append("@Override\n");
    }
    builder.append(INDENT).append("protected void unpack(Context context, DataMap map, T target) {\n");
    if(parentClass!=null) {
        builder.append(INDENT_2).append("super.unpack(context, map, target);\n");
    }

    for(Element subElement:element.getEnclosedElements()) {
        final Set<Modifier> modifiers = subElement.getModifiers();
        final String name = subElement.getSimpleName().toString();

        if(subElement.getKind()==ElementKind.FIELD
                && !modifiers.contains(Modifier.PRIVATE)
                && !modifiers.contains(Modifier.STATIC)
                && !modifiers.contains(Modifier.FINAL)
                ) {

            final DataMapElementType elementType = DataMapElementType.getElementType(subElement);
            if(elementType==null) {
                final String fieldType = subElement.asType().toString();

                if(targetClassNames.contains(fieldType)) {
                    builder.append(INDENT_2).append("target.").append(name).append(" = ");
                    builder.append("Packager.unpack(context, ")
                            .append("map.getDataMap(\"").append(name)
                            .append("\"), ")
                            .append(fieldType).append(".class);\n");
                } else if (fieldType.equals(BITMAP)) {
                    builder.append(INDENT_2).append("final Asset ").append(name).append("Asset = map.getAsset(\"").append(name).append("\");\n");
                    builder.append(INDENT_2).append("if(").append(name).append("Asset!=null && context!=null) {\n");
                    builder.append(INDENT_3).append("final InputStream in = Courier.getAssetInputStream(context, ").append(name).append("Asset);\n");
                    builder.append(INDENT_3).append("target.").append(name).append(" = BitmapFactory.decodeStream(in);\n");
                    builder.append(INDENT_2).append("}\n");
                } else if (fieldType.startsWith("java.util.ArrayList")) {
                    if(fieldType.endsWith(">")) {
                        final String itemType = fieldType.substring(20, fieldType.length() - 1);

                        if(itemType.isEmpty() || itemType.startsWith("?")) {
                            // We need the item type to unpack
                            processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "Wildcard generic types are not allowed", subElement);
                        } else {
                            builder.append(INDENT_2).append("target.").append(name).append(" = ");
                            builder.append("Packager.unpack(context, ")
                                    .append("map.getDataMapArrayList(\"").append(name)
                                    .append("\"), ")
                                    .append(itemType).append(".class);\n");
                        }
                    } else {
                        // We need the item type to unpack
                        processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "Generic type must be specified for ArrayLists.", subElement);
                    }
                } else {
                    // Bad field type, show an error linking to this specific element
                    processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "Field type not supported ("+fieldType+").", subElement);
                }
            } else {
                builder.append(INDENT_2).append("target.").append(name).append(" = ");
                builder.append("map.").append(elementType.getMethod)
                        .append("(\"").append(name).append("\");\n");
            }
        }
    }

    builder.append(INDENT).append("}\n\n");
}
 
源代码18 项目: Witch-Android   文件: ProcessorUtils.java
private static boolean notPrivateOrProtected(Element e) {
    Set<Modifier> modifiers = e.getModifiers();
    return !modifiers.contains(Modifier.PRIVATE) && !modifiers.contains(Modifier.PROTECTED);
}
 
源代码19 项目: EasyRouter   文件: Validator.java
static Set<Modifier> getModifiers(Element element) {
    return element.getModifiers();
}
 
源代码20 项目: EasyMVP   文件: Validator.java
static Set<Modifier> getModifiers(Element element) {
    return element.getModifiers();
}