CodeReviewResource resource = getCurrentResource(history);
List list = resource.getTypedNodeList(resource
.getResourceCompUnit(), ASTNode.TYPE_DECLARATION);
for (Object obj : list) {
TypeDeclaration type = (TypeDeclaration) obj;
ITypeBinding binding = type.resolveBinding();
if (binding == null) {
continue;
}
ImplementationArtifactDefinition artifactDef = qualifiedNames.
get(binding.getQualifiedName());
if (artifactDef == null) {
// The information could also be contained in
// annotations or classNamePatterns
artifactDef = mappingHelper.getClassInformation(binding);
}
if (artifactDef != null) {
// We have found the artifact
artifactsNotPresent.remove(artifactDef);
if (artifactDef instanceof InterfaceDefinition &&
!binding.isInterface()) {
generateResultsForASTNode(history, type, resource,
"The type "+ binding.getQualifiedName() + " is a class"+
", but should be an interface according to the definition in "+
artifactDef.getParent().getName());
continue;
}
if (artifactDef instanceof ClassDefinition &&
binding.isInterface()) {
generateResultsForASTNode(history, type, resource,
"The type "+ binding.getQualifiedName() + " is "+
"an interface, but should be a class according to the definition in "+
artifactDef.getParent().getName());
continue;
}
if (binding.getSuperclass() != null &&
binding.getSuperclass() != type.getAST().resolveWellKnownType("java.lang.Object")) {
// Check Restriction.noSuperClass
ImplementationArtifactType artifactType = mappingHelper.getTypeOf(artifactDef);
if (artifactType != null && artifactType instanceof ClassType) {
ClassType classType = (ClassType) artifactType;
if (classType.getRestrictions().contains(ClassTypeRestriction.noSuperclass)) {