@Override public void visit(Field obj) { int accessFlags = obj.getAccessFlags(); if ((accessFlags & Const.ACC_STATIC) != 0) { return; } if (!obj.getName().startsWith("this$") && !BCELUtil.isSynthetic(obj) && !obj.isTransient()) { hasFields = true; } }
@Override public void visit(Field obj) { super.visit(obj); int flags = obj.getAccessFlags(); boolean isStatic = (flags & Const.ACC_STATIC) != 0; if (!isStatic) { return; } boolean isVolatile = (flags & Const.ACC_VOLATILE) != 0; if (isVolatile) { return; } boolean isFinal = (flags & Const.ACC_FINAL) != 0; boolean isPublic = publicClass && (flags & Const.ACC_PUBLIC) != 0; boolean isProtected = publicClass && (flags & Const.ACC_PROTECTED) != 0; if (!isPublic && !isProtected) { return; } boolean isArray = getFieldSig().charAt(0) == '['; if (isFinal && !(isArray || isCollection(getFieldSig()))) { return; } if (isEclipseNLS && getFieldSig().equals("Ljava/lang/String;")) { return; } seen.add(getXField()); }
out.write(TAB); fout.write(TAB); aflgs = Utility.accessToString(fld.getAccessFlags()); if (aflgs != null && aflgs.length() > 0) { out.write(aflgs);
@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)); } }
} else if (fld.getAccessFlags() != maskingField.getAccessFlags()) { priority++;
@Override public void visit(Field obj) { int flags = obj.getAccessFlags(); String genericSignature = obj.getGenericSignature(); if (genericSignature != null && genericSignature.startsWith("T")) {
@Override public void visit(Field obj) { int accessFlags = obj.getAccessFlags(); if ((accessFlags & ACC_STATIC) != 0) { return; } if (!obj.getName().startsWith("this$") && !BCELUtil.isSynthetic(obj) && !obj.isTransient()) { hasFields = true; } }
@Override public void visitField( final Field field ) { _out.println(); _out.println(" field = new FieldGen(" + printFlags(field.getAccessFlags()) + ", " + printType(field.getSignature()) + ", \"" + field.getName() + "\", _cp);"); final ConstantValue cv = field.getConstantValue(); if (cv != null) { final String value = cv.toString(); _out.println(" field.setInitValue(" + value + ")"); } _out.println(" _cg.addField(field.getField());"); }
public void visitField(Field field) { _out.println("\n field = new FieldGen(" + printFlags(field.getAccessFlags()) + ", " + printType(field.getSignature()) + ", \"" + field.getName() + "\", _cp);"); ConstantValue cv = field.getConstantValue(); if(cv != null) { String value = cv.toString(); _out.println(" field.setInitValue(" + value + ")"); } _out.println(" _cg.addField(field.getField());"); }
private boolean looksLikeStaticFieldValue(String constant) { if (staticConstants == null) { staticConstants = new HashSet<>(); Field[] fields = getClassContext().getJavaClass().getFields(); for (Field f : fields) { if (((f.getAccessFlags() & (Constants.ACC_FINAL | Constants.ACC_STATIC)) == (Constants.ACC_FINAL | Constants.ACC_STATIC)) && Values.SIG_JAVA_LANG_STRING.equals(f.getSignature())) { ConstantValue cv = f.getConstantValue(); if (cv != null) { int cvIndex = cv.getConstantValueIndex(); staticConstants.add(getConstantPool().getConstantString(cvIndex, Constants.CONSTANT_String)); } } } } return staticConstants.contains(constant); }
private boolean looksLikeStaticFieldValue(String constant) { if (staticConstants == null) { staticConstants = new HashSet<>(); Field[] fields = getClassContext().getJavaClass().getFields(); for (Field f : fields) { if (((f.getAccessFlags() & (Const.ACC_FINAL | Const.ACC_STATIC)) == (Const.ACC_FINAL | Const.ACC_STATIC)) && Values.SIG_JAVA_LANG_STRING.equals(f.getSignature())) { ConstantValue cv = f.getConstantValue(); if (cv != null) { int cvIndex = cv.getConstantValueIndex(); staticConstants.add(getConstantPool().getConstantString(cvIndex, Const.CONSTANT_String)); } } } } return staticConstants.contains(constant); }
@Override public void visit(Field obj) { super.visit(obj); int flags = obj.getAccessFlags(); boolean isStatic = (flags & ACC_STATIC) != 0; if (!isStatic) { return; } boolean isVolatile = (flags & ACC_VOLATILE) != 0; if (isVolatile) { return; } boolean isFinal = (flags & ACC_FINAL) != 0; boolean isPublic = publicClass && (flags & ACC_PUBLIC) != 0; boolean isProtected = publicClass && (flags & ACC_PROTECTED) != 0; if (!isPublic && !isProtected) { return; } boolean isArray = getFieldSig().charAt(0) == '['; if (isFinal && !(isArray || isCollection(getFieldSig()))) { return; } if (isEclipseNLS && getFieldSig().equals("Ljava/lang/String;")) { return; } seen.add(getXField()); }
@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)); } }
String type = Utility.signatureToString(field.getSignature()); String name = field.getName(); String access = Utility.accessToString(field.getAccessFlags()); Attribute[] attributes;
final String type = Utility.signatureToString(field.getSignature()); final String name = field.getName(); String access = Utility.accessToString(field.getAccessFlags()); Attribute[] attributes; access = Utility.replace(access, " ", " ");
/** * Instantiate from existing field. * * @param field Field object * @param cp constant pool (must contain the same entries as the field's constant pool) */ public FieldGen(Field field, ConstantPoolGen cp) { this(field.getAccessFlags(), Type.getType(field.getSignature()), field.getName(), cp); Attribute[] attrs = field.getAttributes(); for(int i=0; i < attrs.length; i++) { if(attrs[i] instanceof ConstantValue) setValue(((ConstantValue)attrs[i]).getConstantValueIndex()); else addAttribute(attrs[i]); } }
final ClassModelField field = new ClassModelField(f, f.getAccessFlags(), f.getNameIndex(), f.getSignatureIndex(), i); fields.add(field); i += 1;
/** * Instantiate from existing field. * * @param field Field object * @param cp constant pool (must contain the same entries as the field's constant pool) */ public FieldGen(final Field field, final ConstantPoolGen cp) { this(field.getAccessFlags(), Type.getType(field.getSignature()), field.getName(), cp); final Attribute[] attrs = field.getAttributes(); for (final Attribute attr : attrs) { if (attr instanceof ConstantValue) { setValue(((ConstantValue) attr).getConstantValueIndex()); } else if (attr instanceof Annotations) { final Annotations runtimeAnnotations = (Annotations)attr; final AnnotationEntry[] annotationEntries = runtimeAnnotations.getAnnotationEntries(); for (final AnnotationEntry element : annotationEntries) { addAnnotationEntry(new AnnotationEntryGen(element,cp,false)); } } else { addAttribute(attr); } } }
/** * checks to see if the class is Serializable, then looks for fields that are both final and transient * * @param classContext * the context object of the currently parsed class */ @Override public void visitClassContext(ClassContext classContext) { try { JavaClass cls = classContext.getJavaClass(); if ((serializableClass != null) && (cls.implementationOf(serializableClass))) { Field[] fields = cls.getFields(); setupVisitorForClass(cls); for (Field f : fields) { if (!f.isStatic() && f.isFinal() && f.isTransient()) { bugReporter.reportBug(new BugInstance(this, BugType.NFF_NON_FUNCTIONAL_FIELD.name(), Priorities.NORMAL_PRIORITY).addClass(this) .addField(cls.getClassName(), f.getName(), f.getSignature(), f.getAccessFlags())); } } } } catch (ClassNotFoundException cnfe) { bugReporter.reportMissingClass(cnfe); } }
/** * checks to see if the class is Serializable, then looks for fields that are both final and transient * * @param classContext * the context object of the currently parsed class */ @Override public void visitClassContext(ClassContext classContext) { try { JavaClass cls = classContext.getJavaClass(); if ((serializableClass != null) && (cls.implementationOf(serializableClass))) { Field[] fields = cls.getFields(); setupVisitorForClass(cls); for (Field f : fields) { if (!f.isStatic() && f.isFinal() && f.isTransient()) { bugReporter.reportBug(new BugInstance(this, BugType.NFF_NON_FUNCTIONAL_FIELD.name(), Priorities.NORMAL_PRIORITY).addClass(this) .addField(cls.getClassName(), f.getName(), f.getSignature(), f.getAccessFlags())); } } } } catch (ClassNotFoundException cnfe) { bugReporter.reportMissingClass(cnfe); } }