public Set<AsmClass> getDistinctUsedAsmClasses() { Set<AsmClass> distinctUsedAsmClasses = new HashSet<>(); for (AsmEdge usage : getOutgoingEdges()) { if (usage.getUsage() == SourceCodeEdgeUsage.USES) { distinctUsedAsmClasses.add((AsmClass) usage.getTo()); } } return distinctUsedAsmClasses; }
public List<AsmClass> getThrows() { ImmutableList.Builder<AsmClass> builder = ImmutableList.builder(); for (AsmEdge edge : getOutgoingEdges()) { if (edge.getUsage() == SourceCodeEdgeUsage.THROWS) { builder.add((AsmClass) edge.getTo()); } } return builder.build(); }
public List<AsmClass> getThrows() { ImmutableList.Builder<AsmClass> builder = ImmutableList.builder(); for (AsmEdge edge : getOutgoingEdges()) { if (edge.getUsage() == SourceCodeEdgeUsage.THROWS) { builder.add((AsmClass) edge.getTo()); } } return builder.build(); }
public List<AsmField> getCallsToField() { List<AsmField> callsToField = new ArrayList<>(); for (AsmEdge usage : getOutgoingEdges()) { if (usage.getUsage() == SourceCodeEdgeUsage.CALLS_FIELD) { callsToField.add((AsmField) usage.getTo()); } } return callsToField; }
public List<AsmField> getCallsToField() { List<AsmField> callsToField = new ArrayList<AsmField>(); for (AsmEdge usage : getOutgoingEdges()) { if (usage.getUsage() == SourceCodeEdgeUsage.CALLS_FIELD) { callsToField.add((AsmField) usage.getTo()); } } return callsToField; }
public Set<AsmClass> getImplementedInterfaces() { Set<AsmClass> implementedInterfaces = new HashSet<AsmClass>(); for (AsmEdge usage : getOutgoingEdges()) { if (usage.getUsage() == SourceCodeEdgeUsage.IMPLEMENTS) { implementedInterfaces.add((AsmClass) usage.getTo()); } } return implementedInterfaces; }
public Set<AsmClass> getImplementedInterfaces() { Set<AsmClass> implementedInterfaces = new HashSet<>(); for (AsmEdge usage : getOutgoingEdges()) { if (usage.getUsage() == SourceCodeEdgeUsage.IMPLEMENTS) { implementedInterfaces.add((AsmClass) usage.getTo()); } } return implementedInterfaces; }
public List<AsmMethod> getCallsToMethod() { List<AsmMethod> callsToMethod = new ArrayList<AsmMethod>(); for (AsmEdge usage : getOutgoingEdges()) { if (usage.getUsage() == SourceCodeEdgeUsage.CALLS_METHOD) { callsToMethod.add((AsmMethod) usage.getTo()); } } return callsToMethod; }
public Set<AsmClass> getDistinctUsedAsmClasses() { Set<AsmClass> distinctUsedAsmClasses = new HashSet<AsmClass>(); for (AsmEdge usage : getOutgoingEdges()) { if (usage.getUsage() == SourceCodeEdgeUsage.USES) { distinctUsedAsmClasses.add((AsmClass) usage.getTo()); } } return distinctUsedAsmClasses; }
public List<AsmMethod> getCallsToMethod() { List<AsmMethod> callsToMethod = new ArrayList<>(); for (AsmEdge usage : getOutgoingEdges()) { if (usage.getUsage() == SourceCodeEdgeUsage.CALLS_METHOD) { callsToMethod.add((AsmMethod) usage.getTo()); } } return callsToMethod; }
@Override public void visitEdge(AsmEdge edge) { if (edge.getTo().isDeprecated() && edge.getTo() instanceof AsmMethod) { AsmMethod targetMethod = (AsmMethod) edge.getTo(); SourceFile sourceFile = getSourceFile(asmClass); CheckMessage message = new CheckMessage(this, formatMessage(targetMethod)); message.setLine(edge.getSourceLineNumber()); sourceFile.log(message); } }
private void computeAccessedField() { if (!isConstructor()) { for (AsmEdge edge : getOutgoingEdges()) { if (isCallToNonStaticInternalField(edge)) { if (isFieldAccesingDifferentField((AsmField) edge.getTo())) { accessedField = null; break; } accessedField = (AsmField) edge.getTo(); } else if (isCallToNonStaticInternalMethod(edge)) { AsmMethod method = (AsmMethod) edge.getTo(); if (isMethodNotAccessorOrAccessingDifferentField(method)) { accessedField = null; break; } accessedField = method.getAccessedField(); } } } }
private void computeAccessedField() { if (!isConstructor()) { for (AsmEdge edge : getOutgoingEdges()) { if (isCallToNonStaticInternalField(edge)) { if (isFieldAccesingDifferentField((AsmField) edge.getTo())) { accessedField = null; break; } accessedField = (AsmField) edge.getTo(); } else if (isCallToNonStaticInternalMethod(edge)) { AsmMethod method = (AsmMethod) edge.getTo(); if (isMethodNotAccessorOrAccessingDifferentField(method)) { accessedField = null; break; } accessedField = method.getAccessedField(); } } } }
@Override public void visitEdge(AsmEdge edge) { if (edge.getTo() instanceof AsmMethod) { AsmMethod targetMethod = (AsmMethod) edge.getTo(); AsmClass targetClass = targetMethod.getParent(); if ("java/io/File".equals(targetClass.getInternalName()) && "deleteOnExit()V".equals(targetMethod.getKey())) { SourceFile sourceFile = getSourceFile(asmClass); CheckMessage message = new CheckMessage(this, "Do not use method 'File#deleteOnExit()'."); message.setLine(edge.getSourceLineNumber()); sourceFile.log(message); } } }
private boolean isCallToNonStaticInternalMethod(AsmEdge edge) { return edge.getTargetAsmClass() == getParent() && edge.getUsage() == SourceCodeEdgeUsage.CALLS_METHOD && !((AsmMethod) edge.getTo()).isStatic(); }
private boolean isCallToNonStaticInternalMethod(AsmEdge edge) { return edge.getTargetAsmClass() == getParent() && edge.getUsage() == SourceCodeEdgeUsage.CALLS_METHOD && !((AsmMethod) edge.getTo()).isStatic(); }
private boolean isCallToNonStaticInternalField(AsmEdge edge) { return edge.getTargetAsmClass() == getParent() && edge.getUsage() == SourceCodeEdgeUsage.CALLS_FIELD && !((AsmField) edge.getTo()).isStatic(); }
private boolean isCallToNonStaticInternalField(AsmEdge edge) { return edge.getTargetAsmClass() == getParent() && edge.getUsage() == SourceCodeEdgeUsage.CALLS_FIELD && !((AsmField) edge.getTo()).isStatic(); }