@Override public void visit(Field obj) { if (getFieldName().length() == 1) { return; } if (isEclipseNLS) { int flags = obj.getAccessFlags(); if ((flags & Const.ACC_STATIC) != 0 && ((flags & Const.ACC_PUBLIC) != 0) && "Ljava/lang/String;".equals(getFieldSig())) { // ignore "public statis String InstallIUCommandTooltip;" // messages from Eclipse NLS bundles return; } } if (badFieldName(obj)) { bugReporter.reportBug(new BugInstance(this, "NM_FIELD_NAMING_CONVENTION", classIsPublicOrProtected && (obj.isPublic() || obj.isProtected()) && !hasBadFieldNames ? NORMAL_PRIORITY : LOW_PRIORITY) .addClass(this).addVisitedField(this)); } }
private List<FieldOrMethod> getMembers(JavaClass javaClass, List<JavaClass> interfaces) { Set<String> methodNames = new HashSet<>(); ArrayList<FieldOrMethod> members = new ArrayList<>(); List<Method> allInterfacesMethods = getAllInterfacesMethods(interfaces); List<Method> methods = new ArrayList<>(); methods.addAll(Arrays.asList(javaClass.getMethods())); methods.addAll(allInterfacesMethods); for (Method m : methods) { if ((m.isPublic() || m.isProtected()) && !m.isSynthetic()) { members.add(m); methodNames.add(m.getName()); } } for (Field f : javaClass.getFields()) { if ((f.isPublic() || f.isProtected()) && !f.isSynthetic() && !methodNames.contains(f.getName())) { members.add(f); } } return members; }
@Override public void visit(Field obj) { if (getFieldName().length() == 1) { return; } if (isEclipseNLS) { int flags = obj.getAccessFlags(); if ((flags & ACC_STATIC) != 0 && ((flags & ACC_PUBLIC) != 0) && "Ljava/lang/String;".equals(getFieldSig())) { // ignore "public statis String InstallIUCommandTooltip;" // messages from Eclipse NLS bundles return; } } if (badFieldName(obj)) { bugReporter.reportBug(new BugInstance(this, "NM_FIELD_NAMING_CONVENTION", classIsPublicOrProtected && (obj.isPublic() || obj.isProtected()) && !hasBadFieldNames ? NORMAL_PRIORITY : LOW_PRIORITY) .addClass(this).addVisitedField(this)); } }
/** * implements the visitor to look for fields that are public static final and are the same type as the owning class. it collects these object names for * later * * @param obj * the context object of the currently parsed field */ @Override public void visitField(Field obj) { if (obj.isStatic() && obj.isPublic() && obj.isFinal()) { JavaClass cls = getClassContext().getJavaClass(); if (!obj.isEnum()) { String fieldClass = obj.getSignature(); if (fieldClass.startsWith(Values.SIG_QUALIFIED_CLASS_PREFIX)) { fieldClass = SignatureUtils.trimSignature(fieldClass); String clsClass = cls.getClassName(); if (fieldClass.equals(clsClass)) { enumConstNames.add(obj.getName()); super.visitField(obj); } } } } }
/** * implements the visitor to look for fields that are public static final and are the same type as the owning class. it collects these object names for * later * * @param obj * the context object of the currently parsed field */ @Override public void visitField(Field obj) { if (obj.isStatic() && obj.isPublic() && obj.isFinal()) { JavaClass cls = getClassContext().getJavaClass(); if (!obj.isEnum()) { String fieldClass = obj.getSignature(); if (fieldClass.startsWith(Values.SIG_QUALIFIED_CLASS_PREFIX)) { fieldClass = SignatureUtils.trimSignature(fieldClass); String clsClass = cls.getClassName(); if (fieldClass.equals(clsClass)) { enumConstNames.add(obj.getName()); super.visitField(obj); } } } } }
if (obj.isPrivate()) maxone++; if (obj.isProtected()) maxone++; if (obj.isPublic()) maxone++; if (maxone > 1){ throw new ClassConstraintException("Field '"+tostring(obj)+"' must only have at most one of its ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC modifiers set."); if (!obj.isPublic()){ throw new ClassConstraintException("Interface field '"+tostring(obj)+"' must have the ACC_PUBLIC modifier set but hasn't!");