@Override public void visitAfter(JavaClass obj) { int linesNCSS = 1 + methods + fields; if (sawLineNumbers) { linesNCSS += lines.cardinality(); } else { linesNCSS += classCodeSize / 10; } if (stats != null) { stats.addClass(getDottedClassName(), obj.getSourceFileName(), obj.isInterface(), linesNCSS); } totalCodeSize += classCodeSize; totalNCSS += linesNCSS; totalMethods += methods; totalFields += fields; }
@Override public void visitClassContext(ClassContext classContext) { JavaClass obj = classContext.getJavaClass(); if (!obj.isInterface()) { classContext.getJavaClass().accept(this); } }
double mapResult = Analyze.deepInstanceOf(x, map); if (x.isInterface() || x.isAbstract()) { result = Math.max(result, Math.max(mapResult, collectionResult) * 0.95); if (result >= 0.9) { if (x.isAbstract() || x.isInterface()) { confidence = 0.8; result = Math.max(result, 0.4);
if (type.isAbstract() || type.isInterface()) { priority++;
return 0.0; if (!x.isInterface() && !y.isInterface()) { return 0.0; if (x.isAbstract() || x.isInterface()) { return 0.2;
@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)); } }
if (obj.isInterface()) { return;
boolean completeInformation = (!castJavaClass.isInterface() && !refJavaClass.isInterface()) || refJavaClass.isFinal() || castJavaClass.isFinal(); if (DEBUG) { System.out.println(" priority b: " + priority); if (castJavaClass.isInterface() && !castToAbstractCollection) { priority++; && (refJavaClass.isInterface() || refJavaClass.isAbstract())) { priority++;
check = false; isFinal = obj.isFinal(); if (obj.isInterface()) { return;
priority--; if (type.isAbstract() || type.isInterface()) { priority++;
this.isInterface = javaClass.isInterface();
/** * @return true, if clazz is an implementation of interface inter */ public boolean implementationOf(JavaClass inter) { if(!inter.isInterface()) { throw new IllegalArgumentException(inter.getClassName() + " is no interface"); } if(this.equals(inter)) { return true; } JavaClass[] super_interfaces = getAllInterfaces(); for(int i=0; i < super_interfaces.length; i++) { if(super_interfaces[i].equals(inter)) { return true; } } return false; }
/** Equivalent to runtime "instanceof" operator. * * @return true if this JavaClass is derived from teh super class */ public final boolean instanceOf(JavaClass super_class) { if(this.equals(super_class)) return true; JavaClass[] super_classes = getSuperClasses(); for(int i=0; i < super_classes.length; i++) { if(super_classes[i].equals(super_class)) { return true; } } if(super_class.isInterface()) { return implementationOf(super_class); } return false; }
private boolean isConcreteClass(File file) throws Exception { ClassParser parser = new ClassParser(file.getAbsolutePath()); JavaClass javaClass = parser.parse(); return !javaClass.isAbstract() && !javaClass.isInterface(); }
@Override public void visitClassContext(ClassContext classContext) { try { stack = new OpcodeStack(); lastPCs = new int[4]; branchTargets = new HashMap<>(); trimLocations = new HashMap<>(); isInterface = classContext.getJavaClass().isInterface(); super.visitClassContext(classContext); } finally { stack = null; lastPCs = null; branchTargets = null; trimLocations = null; staticConstants = null; } }
@Override public void visitClassContext(ClassContext classContext) { try { stack = new OpcodeStack(); lastPCs = new int[4]; branchTargets = new HashMap<>(); trimLocations = new HashMap<>(); isInterface = classContext.getJavaClass().isInterface(); super.visitClassContext(classContext); } finally { stack = null; lastPCs = null; branchTargets = null; trimLocations = null; staticConstants = null; } }
@Override public void visitAfter(JavaClass obj) { int linesNCSS = 1 + methods + fields; if (sawLineNumbers) { linesNCSS += lines.cardinality(); } else { linesNCSS += classCodeSize / 10; } if (stats != null) { stats.addClass(getDottedClassName(), obj.getSourceFileName(), obj.isInterface(), linesNCSS); } totalCodeSize += classCodeSize; totalNCSS += linesNCSS; totalMethods += methods; totalFields += fields; }
@Override public void visitClassContext(ClassContext classContext) { JavaClass obj = classContext.getJavaClass(); if (!obj.isInterface()) { classContext.getJavaClass().accept(this); } }
/** * @return true, if this class is an implementation of interface inter * @throws ClassNotFoundException if superclasses or superinterfaces * of this class can't be found */ public boolean implementationOf( final JavaClass inter ) throws ClassNotFoundException { if (!inter.isInterface()) { throw new IllegalArgumentException(inter.getClassName() + " is no interface"); } if (this.equals(inter)) { return true; } final JavaClass[] super_interfaces = getAllInterfaces(); for (final JavaClass super_interface : super_interfaces) { if (super_interface.equals(inter)) { return true; } } return false; }
/** Equivalent to runtime "instanceof" operator. * * @return true if this JavaClass is derived from the super class * @throws ClassNotFoundException if superclasses or superinterfaces * of this object can't be found */ public final boolean instanceOf( final JavaClass super_class ) throws ClassNotFoundException { if (this.equals(super_class)) { return true; } final JavaClass[] super_classes = getSuperClasses(); for (final JavaClass super_classe : super_classes) { if (super_classe.equals(super_class)) { return true; } } if (super_class.isInterface()) { return implementationOf(super_class); } return false; }