private static @CheckForNull String getSignatureOfOuterClass(JavaClass obj) { for (Field f : obj.getFields()) { if (f.getName().startsWith("this$")) { return f.getSignature(); } } return null; }
/** * Find a field with given name defined in given class. * * @param className * the name of the class * @param fieldName * the name of the field * @return the Field, or null if no such field could be found */ public static Field findField(String className, String fieldName) throws ClassNotFoundException { JavaClass jclass = Repository.lookupClass(className); while (jclass != null) { Field[] fieldList = jclass.getFields(); for (Field field : fieldList) { if (field.getName().equals(fieldName)) { return field; } } jclass = jclass.getSuperClass(); } return null; }
@Override public void visitClassContext(ClassContext classContext) { JavaClass javaClass = classContext.getJavaClass(); if (OBJECT_MAPPER_CLASSES.contains(javaClass.getClassName())) { return; } for (Field field : javaClass.getFields()) { analyzeField(field, javaClass); } for (Method m : javaClass.getMethods()) { try { analyzeMethod(m, classContext); } catch (CFGBuilderException | DataflowAnalysisException e) { } } }
public static boolean isJSP(JavaClass javaClass) { @DottedClassName String className = javaClass.getClassName(); if ( className.endsWith("_jsp") || className.endsWith("_tag")) { return true; } for(Method m : javaClass.getMethods()) { if (m.getName().startsWith("_jsp")) { return true; } } for(Field f : javaClass.getFields()) { if (f.getName().startsWith("_jsp")) { return true; } } return Subtypes2.instanceOf(className, "javax.servlet.jsp.JspPage") || Subtypes2.instanceOf(className, "org.apache.jasper.runtime.HttpJspBase") || Subtypes2.instanceOf(className, "javax.servlet.jsp.tagext.SimpleTagSupport") || Subtypes2.instanceOf(className, " org.apache.jasper.runtime.JspSourceDependent"); }
String fldsig; String tdef; for (org.apache.bcel.classfile.Field fld : c.getFields()) { out.write(TAB); fout.write(TAB);
public void addAllDefinitions(JavaClass obj) { String className2 = obj.getClassName(); defined.add(className2); for (Method m : obj.getMethods()) { if (!m.isPrivate()) { String name = getMemberName(obj, className2, m.getNameIndex(), m.getSignatureIndex()); defined.add(name); } } for (Field f : obj.getFields()) { if (!f.isPrivate()) { String name = getMemberName(obj, className2, f.getNameIndex(), f.getSignatureIndex()); defined.add(name); } } }
for (Field f : javaClass.getFields()) { if (f.isPrivate()) { XField xf = XFactory.getExactXField(classContext.getClassDescriptor().getClassName(), f);
@Override public void visit(JavaClass obj) { if (Subtypes2.instanceOf(obj, "java.util.Comparator") && !ClassName.isLocalOrAnonymous(getClassName()) && !Subtypes2.instanceOf(obj, "java.io.Serializable")) { int priority = NORMAL_PRIORITY; if (obj.isInterface() || obj.isAbstract()) { return; } double easilySerializable = 1.0; for (Field f : obj.getFields()) { try { if (f.getName().startsWith("this$")) { return; } String signature = f.getSignature(); char firstChar = signature.charAt(0); if (firstChar == 'L' || firstChar == '[') { easilySerializable *= DeepSubtypeAnalysis.isDeepSerializable(signature); } } catch (ClassNotFoundException e) { easilySerializable = 0.0; break; } } if (easilySerializable < 0.9) { priority = LOW_PRIORITY; } bugReporter.reportBug(new BugInstance(this, "SE_COMPARATOR_SHOULD_BE_SERIALIZABLE", priority).addClass(this)); } }
isAnonymousInnerClass = anonymousInnerClassNamePattern.matcher(getClassName()).matches(); innerClassHasOuterInstance = false; for (Field f : obj.getFields()) { if ("this$0".equals(f.getName())) { innerClassHasOuterInstance = true; for (Field f : obj.getFields()) { if (f.isTransient()) { seenTransientField = true;
classFields.clear(); Field[] fields = obj.getFields(); String fieldName; for (Field field : fields) {
for (Field field : outerClass.getFields()) { if ("this$0".equals(field.getName())) { outerClassIsInnerClass = true;
for (Field f : this.getThisClass().getFields()) { if (!f.isStatic()) { instanceMembers = true;
int nameIdx = ntc.getNameIndex(); Field[] flds = getClassContext().getJavaClass().getFields();
if (shouldVisit(obj)) { constantPool.accept(this); Field[] fields = obj.getFields(); Attribute[] attributes = obj.getAttributes(); for (Field field : fields) {
for (Field f : javaClass.getFields()) { if (f.getName().equals(lvName) && f.isStatic() == method.isStatic()) { shadowedField = f;
for (Field field : javaClass.getFields()) { if (!isSynthetic(field)) { addFeature(FIELD_NAME_KEY + field.getName() + ":" + transformSignature(field.getSignature()));
private static @CheckForNull String getSignatureOfOuterClass(JavaClass obj) { for (Field f : obj.getFields()) { if (f.getName().startsWith("this$")) { return f.getSignature(); } } return null; }
private void parseFieldsForHangingCandidates(ClassContext classContext) { JavaClass cls = classContext.getJavaClass(); Field[] fields = cls.getFields(); for (Field f : fields) { String sig = f.getSignature(); if (hangableSig.contains(sig)) { hangingFieldCandidates.put(XFactory.createXField(cls.getClassName(), f.getName(), f.getSignature(), f.isStatic()), new AnnotationPriority(FieldAnnotation.fromBCELField(cls, f), NORMAL_PRIORITY)); } } }