CPD Results

The following document contains the results of PMD's CPD 5.0.2.

Duplications

File Line
org\jadira\scanner\file\locator\MarkerFileClasspathUrlLocator.java 47
org\jadira\scanner\file\locator\PackagesClasspathUrlLocator.java 47
	public MarkerFileClasspathUrlLocator(List<String> markerFilePaths, ClassLoader... classLoaders) {
        this.paths = new ArrayList<String>(markerFilePaths.size());
        for (String next : markerFilePaths) {
            paths.add(asNormalizedName(next));
        }
        this.classLoaders = ClassLoaderUtils.getClassLoaders(classLoaders);
	}
	
	@Override
	public List<URL> locate() {

        List<URL> list = new ArrayList<URL>();
        
        for (ClassLoader classLoader : classLoaders) {
            try {
            	for (String nextPath : paths) {
    	            for (URL nextResourceMatchedUrl : new IterableEnumeration<URL>(classLoader.getResources(nextPath))) {
    	
    	                String deploymentArchiveRoot = determineClasspathRootForResource(nextPath, nextResourceMatchedUrl);
    	                
                        File fp = new File(deploymentArchiveRoot);
                        
                        if (!fp.exists()) {
                            throw new FileAccessException("File unexpectedly does not exist: " + fp);
                        }
                        
                        try {
                            list.add(fp.toURI().toURL());
                        } catch (MalformedURLException e) {
                        	throw new FileAccessException("Filepath unexpectedly malformed: " + fp.getPath(), e);
                        }
    	            }
            	}
            } catch (IOException e) {
            	throw new FileAccessException("Problem resolving deployment archives: " + e.getMessage(), e);
            }
        }
		
        return list;
    }
	
    private String determineClasspathRootForResource(String nextResource, URL nextResourceMatchedUrl) {

        String nextResourceMatchedPathName = nextResourceMatchedUrl.getFile();
        try {
            nextResourceMatchedPathName = URLDecoder.decode(nextResourceMatchedPathName, "UTF-8");
        } catch (UnsupportedEncodingException e) {
            // Never thrown for UTF-8
            throw new FileAccessException("Exception thrown for Encoding when not expected: " + e.getMessage(), e);
        }

        // Reformat file urls to remove file: prefix
        if (nextResourceMatchedPathName.startsWith("file:")) {
            nextResourceMatchedPathName = nextResourceMatchedPathName.substring(5);
        }

        // Chomp archive name if an archive
        if (nextResourceMatchedPathName.indexOf('!') > 0) {
            nextResourceMatchedPathName = nextResourceMatchedPathName.substring(0, nextResourceMatchedPathName.indexOf('!'));
        } else {
            File indicatedResource = new File(nextResourceMatchedPathName);

            // Traverse to classpath root relative to the original matching resource
            int pathDepth = nextResource.replaceAll("[^/]", "").length();
            for (int i = 0; i < pathDepth; i++) {
                indicatedResource = indicatedResource.getParentFile();
            }
            nextResourceMatchedPathName = indicatedResource.getParent();
        }

        return nextResourceMatchedPathName;
    }
    
    private static String asNormalizedName(String name) {
     
        String result = name;        
        if (result != null) {
            result = result.replace("\\", "/");
File Line
org\jadira\scanner\file\locator\ContainedClassClasspathUrlLocator.java 50
org\jadira\scanner\file\locator\MarkerFileClasspathUrlLocator.java 49
org\jadira\scanner\file\locator\PackagesClasspathUrlLocator.java 49
        for (Class<?> next : classes) {
            paths.add(asNormalizedName(next));
        }
        
        this.classLoaders = ClassLoaderUtils.getClassLoaders(classLoaders);
	}
	
	@Override
	public List<URL> locate() {

        List<URL> list = new ArrayList<URL>();
        
        for (ClassLoader classLoader : classLoaders) {
            try {
            	for (String nextPath : paths) {
    	            for (URL nextResourceMatchedUrl : new IterableEnumeration<URL>(classLoader.getResources(nextPath))) {
    	
    	                String deploymentArchiveRoot = determineClasspathRootForResource(nextPath, nextResourceMatchedUrl);
    	                
                        File fp = new File(deploymentArchiveRoot);
                        
                        if (!fp.exists()) {
                            throw new FileAccessException("File unexpectedly does not exist: " + fp);
                        }
                        
                        try {
                            list.add(fp.toURI().toURL());
                        } catch (MalformedURLException e) {
                        	throw new FileAccessException("Filepath unexpectedly malformed: " + fp.getPath(), e);
                        }
    	            }
            	}
            } catch (IOException e) {
            	throw new FileAccessException("Problem resolving deployment archives: " + e.getMessage(), e);
            }
        }
		
        return list;
    }
	
    private String determineClasspathRootForResource(String nextResource, URL nextResourceMatchedUrl) {

        String nextResourceMatchedPathName = nextResourceMatchedUrl.getFile();
        try {
            nextResourceMatchedPathName = URLDecoder.decode(nextResourceMatchedPathName, "UTF-8");
        } catch (UnsupportedEncodingException e) {
            // Never thrown for UTF-8
            throw new FileAccessException("Exception thrown for Encoding when not expected: " + e.getMessage(), e);
        }

        // Reformat file urls to remove file: prefix
        if (nextResourceMatchedPathName.startsWith("file:")) {
            nextResourceMatchedPathName = nextResourceMatchedPathName.substring(5);
        }

        // Chomp archive name if an archive
        if (nextResourceMatchedPathName.indexOf('!') > 0) {
            nextResourceMatchedPathName = nextResourceMatchedPathName.substring(0, nextResourceMatchedPathName.indexOf('!'));
        } else {
            File indicatedResource = new File(nextResourceMatchedPathName);

            // Traverse to classpath root relative to the original matching resource
            int pathDepth = nextResource.replaceAll("[^/]", "").length();
            for (int i = 0; i < pathDepth; i++) {
                indicatedResource = indicatedResource.getParentFile();
            }
            nextResourceMatchedPathName = indicatedResource.getParent();
        }

        return nextResourceMatchedPathName;
    }
    
    
    private static String asNormalizedName(Class<?> clazz) {
File Line
org\jadira\scanner\classpath\types\JClass.java 172
org\jadira\scanner\classpath\types\JInterface.java 105
    public Set<JAnnotation<?>> getAnnotations() {

        AnnotationsAttribute visible = (AnnotationsAttribute) getClassFile().getAttribute(AnnotationsAttribute.visibleTag);
        AnnotationsAttribute invisible = (AnnotationsAttribute) getClassFile().getAttribute(AnnotationsAttribute.invisibleTag);

        Set<JAnnotation<?>> annotations = new HashSet<JAnnotation<?>>();

        List<Annotation> annotationsList = new ArrayList<Annotation>();
        if (visible != null) {
            annotationsList.addAll(Arrays.asList(visible.getAnnotations()));
        }
        if (invisible != null) {
            annotationsList.addAll(Arrays.asList(invisible.getAnnotations()));
        }

        for (Annotation nextAnnotation : annotationsList) {
            annotations.add(JAnnotation.getJAnnotation(nextAnnotation, this, getResolver()));
        }

        return annotations;
    }

    @Override
    public JPackage getPackage() throws ClasspathAccessException {

        String fqClassName = getClassFile().getName();

        String packageName;
        if (fqClassName.contains(".")) {
            packageName = fqClassName.substring(0, fqClassName.lastIndexOf('.'));
        } else {
            packageName = "";
        }

        return JPackage.getJPackage(packageName, getResolver());
    }
File Line
org\jadira\scanner\classpath\types\JMethod.java 73
org\jadira\scanner\classpath\types\JStaticInitializer.java 33
        return AccessFlag.isPrivate(getMethodInfo().getAccessFlags());
    }
    
    @Override
    public void acceptVisitor(IntrospectionVisitor visitor) throws ClasspathAccessException {
        visitor.visit(this);

        for (JParameter next : getParameters()) {
            next.acceptVisitor(visitor);
        }
        for (JAnnotation<?> next : getAnnotations()) {
            next.acceptVisitor(visitor);
        }
    }
    
    @Override
	public boolean equals(Object obj) {
		if (obj == null) {
			return false;
		}
		if (obj == this) {
			return true;
		}
		if (obj.getClass() != getClass()) {
			return false;
		}
		// JMethod rhs = (JMethod) obj;
		return new EqualsBuilder()
			 	.appendSuper(super.equals(obj))
				.isEquals();
	}

    @Override
	public int hashCode() {
		return new HashCodeBuilder(11, 47).append(super.hashCode())
				.toHashCode();
	}
}
File Line
org\jadira\scanner\classpath\types\JOperation.java 179
org\jadira\scanner\classpath\types\JParameter.java 146
    }

    private Class<?> decodeFieldType(String componentType) {

        char type = componentType.charAt(0);
        String fieldContent = componentType.substring(1);

        switch (type) {
        // L<classname>; reference an instance of class <classname>
        case 'L': 
            return getResolver().loadClass(fieldContent.replace('/', '.'));
        // B byte signed byte
        case 'B': 
            return Byte.class;
        // C char Unicode character
        case 'C': 
            return Character.class;
        // D double double-precision floating-point value
        case 'D': 
            return Double.class;
        // F float single-precision floating-point value        
        case 'F': 
            return Float.class;
        // I int integer
        case 'I': 
            return Integer.class;
        // J long long integer
        case 'J': 
            return Long.class;
        // S short signed short
        case 'S': 
            return Short.class;
        // Z boolean true or false
        case 'Z': 
            return Boolean.class;
        // [ reference one array dimension
        case '[': 
            return Arrays.class;
        }
        return null;
    }
}
File Line
org\jadira\scanner\classpath\types\JClass.java 175
org\jadira\scanner\classpath\types\JField.java 123
org\jadira\scanner\classpath\types\JInterface.java 108
org\jadira\scanner\classpath\types\JOperation.java 56
        AnnotationsAttribute invisible = (AnnotationsAttribute) getClassFile().getAttribute(AnnotationsAttribute.invisibleTag);

        Set<JAnnotation<?>> annotations = new HashSet<JAnnotation<?>>();

        List<Annotation> annotationsList = new ArrayList<Annotation>();
        if (visible != null) {
            annotationsList.addAll(Arrays.asList(visible.getAnnotations()));
        }
        if (invisible != null) {
            annotationsList.addAll(Arrays.asList(invisible.getAnnotations()));
        }

        for (Annotation nextAnnotation : annotationsList) {
            annotations.add(JAnnotation.getJAnnotation(nextAnnotation, this, getResolver()));
        }

        return annotations;
    }

    @Override
    public JPackage getPackage() throws ClasspathAccessException {
File Line
org\jadira\scanner\classpath\types\JPackage.java 129
org\jadira\scanner\classpath\types\JVariable.java 40
    @Override
    public <A extends java.lang.annotation.Annotation> JAnnotation<A> getAnnotation(Class<A> annotation)  throws ClasspathAccessException {

        Set<JAnnotation<?>> inspAnnotations = getAnnotations();
        for (JAnnotation<?> next : inspAnnotations) {
            if (next.getName().equals(annotation.getName())
                    && (next.getActualAnnotation().getClass().equals(annotation.getClass()))) {
                @SuppressWarnings("unchecked") JAnnotation<A> retVal = (JAnnotation<A>) next;
                return retVal;
            }
        }
        return null;
    }
File Line
org\jadira\scanner\classpath\types\JPackage.java 218
org\jadira\scanner\classpath\types\JType.java 86
    	builder.append("name", this.getName());
    	
    	return builder.toString();
    }
    
    @Override
	public boolean equals(Object obj) {
		if (obj == null) {
			return false;
		}
		if (obj == this) {
			return true;
		}
		if (obj.getClass() != getClass()) {
			return false;
		}
		// JPackage rhs = (JPackage) obj;
		return new EqualsBuilder()
			 	.appendSuper(super.equals(obj))
				.isEquals();
	}

    @Override
	public int hashCode() {
		return new HashCodeBuilder(11, 47).append(super.hashCode())
				.toHashCode();
	}    
}
File Line
org\jadira\scanner\classpath\types\JPackage.java 218
org\jadira\scanner\classpath\types\JType.java 86
org\jadira\scanner\classpath\types\JVariable.java 60
    	builder.append("name", this.getName());
    	
    	return builder.toString();
    }
    
    @Override
	public boolean equals(Object obj) {
		if (obj == null) {
			return false;
		}
		if (obj == this) {
			return true;
		}
		if (obj.getClass() != getClass()) {
			return false;
		}
		// JPackage rhs = (JPackage) obj;
		return new EqualsBuilder()
			 	.appendSuper(super.equals(obj))
				.isEquals();
	}

    @Override
	public int hashCode() {
		return new HashCodeBuilder(11, 47).append(super.hashCode())
				.toHashCode();
	}    
}
File Line
org\jadira\scanner\classpath\types\JField.java 79
org\jadira\scanner\classpath\types\JOperation.java 181
org\jadira\scanner\classpath\types\JParameter.java 149
	public Class<?> decodeFieldType(String componentType) throws ClassNotFoundException {

		char type = componentType.charAt(0);
		String fieldContent = componentType.substring(1);

		switch (type) {
		// L<classname>; reference an instance of class <classname>		
		case 'L': 
			return getResolver().loadClass(fieldContent.replace('/', '.'));
		// B byte signed byte
		case 'B': 
			return Byte.class;
		// C char Unicode character
		case 'C': 
			return Character.class;
		// D double double-precision floating-point value
		case 'D': 
			return Double.class;
		// F float single-precision floating-point value
		case 'F': 
			return Float.class;
		// I int integer
		case 'I': 
			return Integer.class;
		// J long long integer
		case 'J': 
			return Long.class;
		// S short signed short
		case 'S': 
			return Short.class;
		// Z boolean true or false
		case 'Z': 
			return Boolean.class;
		// [ reference one array dimension
		case '[': 
		    return getResolver().loadClass(componentType.replace('/', '.') + ";");
File Line
org\jadira\scanner\classpath\types\JClass.java 283
org\jadira\scanner\classpath\types\JDefaultConstructor.java 74
org\jadira\scanner\classpath\types\JInterface.java 184
org\jadira\scanner\classpath\types\JPackage.java 220
org\jadira\scanner\classpath\types\JType.java 88
org\jadira\scanner\classpath\types\JVariable.java 62
		return getClassFile().isInterface();
	}
	
    @Override
	public boolean equals(Object obj) {
		if (obj == null) {
			return false;
		}
		if (obj == this) {
			return true;
		}
		if (obj.getClass() != getClass()) {
			return false;
		}
		// JClass rhs = (JClass) obj;
		return new EqualsBuilder()
			 	.appendSuper(super.equals(obj))
				.isEquals();
	}

    @Override
	public int hashCode() {
		return new HashCodeBuilder(11, 47).append(super.hashCode())
				.toHashCode();
	}
}
File Line
org\jadira\scanner\classpath\types\JClass.java 284
org\jadira\scanner\classpath\types\JDefaultConstructor.java 75
org\jadira\scanner\classpath\types\JInterface.java 185
org\jadira\scanner\classpath\types\JMethod.java 86
org\jadira\scanner\classpath\types\JPackage.java 221
org\jadira\scanner\classpath\types\JPrimitiveClass.java 77
org\jadira\scanner\classpath\types\JStaticInitializer.java 46
org\jadira\scanner\classpath\types\JType.java 89
org\jadira\scanner\classpath\types\JVariable.java 63
	}
	
    @Override
	public boolean equals(Object obj) {
		if (obj == null) {
			return false;
		}
		if (obj == this) {
			return true;
		}
		if (obj.getClass() != getClass()) {
			return false;
		}
		// JClass rhs = (JClass) obj;
		return new EqualsBuilder()
			 	.appendSuper(super.equals(obj))
				.isEquals();
	}

    @Override
	public int hashCode() {
		return new HashCodeBuilder(11, 47).append(super.hashCode())
				.toHashCode();
	}
}
File Line
org\jadira\scanner\classpath\types\JClass.java 207
org\jadira\scanner\classpath\types\JInterface.java 83
    }

    public List<JMethod> getMethods() {

        final List<JMethod> retVal = new ArrayList<JMethod>();
        @SuppressWarnings("unchecked")
        final List<MethodInfo> methods = (List<MethodInfo>) getClassFile().getMethods();

        for (MethodInfo next : methods) {
            if (next.isMethod()) {
                retVal.add(JMethod.getJMethod(next, this, getResolver()));
            }
        }
        return retVal;
    }

    public List<JStaticInitializer> getStaticInitializers() {
File Line
org\jadira\scanner\classpath\types\JConstructor.java 43
org\jadira\scanner\classpath\types\JMethod.java 56
    }

    public String getModifier() {
        return isPrivate() ? "private" :
               isProtected() ? "protected" :
               isPublic() ? "public" : "";
    }
    
    public boolean isPublic() {
        return AccessFlag.isPublic(getMethodInfo().getAccessFlags());
    }
    
    public boolean isProtected() {
        return AccessFlag.isProtected(getMethodInfo().getAccessFlags());
    }
     
    public boolean isPrivate() {
        return AccessFlag.isPrivate(getMethodInfo().getAccessFlags());
    }
File Line
org\jadira\scanner\classpath\types\JClass.java 253
org\jadira\scanner\classpath\types\JInnerClass.java 65
            next.acceptVisitor(visitor);
        }
        for (JConstructor next : getConstructors()) {
            next.acceptVisitor(visitor);
        }
        for (JMethod next : getMethods()) {
            next.acceptVisitor(visitor);
        }
        for (JStaticInitializer next : getStaticInitializers()) {
            next.acceptVisitor(visitor);
        }
        for (JAnnotation<?> next : getAnnotations()) {
            next.acceptVisitor(visitor);
        }
    }

    @Override
    public JElement getEnclosingElement() {
File Line
org\jadira\scanner\classpath\types\JType.java 43
org\jadira\scanner\classpath\types\JVariable.java 38
    public abstract Class<?> getActualClass() throws ClasspathAccessException;

    
    @Override
    public <A extends java.lang.annotation.Annotation>JAnnotation<A> getAnnotation(Class<A> annotation) throws ClasspathAccessException {

        Set<JAnnotation<?>> inspAnnotations = getAnnotations();
        for (JAnnotation<?> next : inspAnnotations) {
            if (next.getName().equals(annotation.getName())
                    && (next.getActualAnnotation().annotationType().getClass().equals(annotation.getClass()))) {
File Line
org\jadira\scanner\classpath\types\JPackage.java 129
org\jadira\scanner\classpath\types\JType.java 46
    @Override
    public <A extends java.lang.annotation.Annotation> JAnnotation<A> getAnnotation(Class<A> annotation)  throws ClasspathAccessException {

        Set<JAnnotation<?>> inspAnnotations = getAnnotations();
        for (JAnnotation<?> next : inspAnnotations) {
            if (next.getName().equals(annotation.getName())
                    && (next.getActualAnnotation().getClass().equals(annotation.getClass()))) {
File Line
org\jadira\scanner\classpath\projector\ClasspathProjector.java 128
org\jadira\scanner\classpath\projector\ClasspathProjector.java 151
                    JarEntry next = entries.nextElement();
                    if (next.getName().endsWith(".class")) {
                        files.add(new de.schlichtherle.io.File(segment.getPath() + System.getProperty("file.separator") + next.getName()));
                    }
                }
            } catch (IOException e) {
                throw new ClasspathAccessException("Could not open JarFile: " + e.getMessage(), e);
File Line
org\jadira\scanner\classpath\types\JConstructor.java 145
org\jadira\scanner\classpath\types\JOperation.java 131
    }

    @Override
    public String toString() {
    	
    	ToStringBuilder builder = new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE);
    	builder.append("name",this.getName());
    	builder.append("enclosingType",this.getEnclosingType());
    	builder.append("parameters",this.getParameters());
    	
    	return builder.toString();
    }
File Line
org\jadira\scanner\classpath\types\JClass.java 235
org\jadira\scanner\classpath\types\JInnerClass.java 52
    }

    @Override
    public void acceptVisitor(IntrospectionVisitor visitor) throws ClasspathAccessException {
        visitor.visit(this);

        for (JInterface next : getImplementedInterfaces()) {
            next.acceptVisitor(visitor);
        }
        for (JInnerClass next : getEnclosedClasses()) {
            next.acceptVisitor(visitor);
        }
        for (JField next : getFields()) {
File Line
org\jadira\scanner\classpath\types\JConstructor.java 75
org\jadira\scanner\classpath\types\JMethod.java 74
org\jadira\scanner\classpath\types\JStaticInitializer.java 34
    }

    @Override
    public void acceptVisitor(IntrospectionVisitor visitor) throws ClasspathAccessException {
        visitor.visit(this);

        for (JParameter next : getParameters()) {
            next.acceptVisitor(visitor);
        }
        for (JAnnotation<?> next : getAnnotations()) {
            next.acceptVisitor(visitor);
        }
    }

    @Override
    public JClass getEnclosingElement() {
File Line
org\jadira\scanner\classpath\types\JClass.java 179
org\jadira\scanner\classpath\types\JField.java 127
org\jadira\scanner\classpath\types\JInterface.java 112
org\jadira\scanner\classpath\types\JOperation.java 60
org\jadira\scanner\classpath\types\JOperation.java 81
        List<Annotation> annotationsList = new ArrayList<Annotation>();
        if (visible != null) {
            annotationsList.addAll(Arrays.asList(visible.getAnnotations()));
        }
        if (invisible != null) {
            annotationsList.addAll(Arrays.asList(invisible.getAnnotations()));
        }

        for (Annotation nextAnnotation : annotationsList) {
File Line
org\jadira\scanner\core\helper\JavassistAnnotationsHelper.java 42
org\jadira\scanner\core\helper\JavassistAnnotationsHelper.java 55
		AnnotationsAttribute invisible = (AnnotationsAttribute) classFile.getAttribute(AnnotationsAttribute.invisibleTag);

		Set<Annotation> retVal = new HashSet<Annotation>();

		retVal.addAll(findAnnotationsForAnnotationsAttribute(visible));
		retVal.addAll(findAnnotationsForAnnotationsAttribute(invisible));

		return retVal.toArray(new Annotation[retVal.size()]);
	}
	
	public static Annotation[] getAnnotationsForMethod(MethodInfo methodInfo) {
File Line
org\jadira\scanner\core\helper\JavassistClassFileHelper.java 38
org\jadira\scanner\core\helper\JavassistClassFileHelper.java 60
		ClassFile cachedClassFile = CLASSFILES_BY_NAME.get(className);
		if (cachedClassFile != null) {
			return cachedClassFile;
		}
    	
    	DataInputStream dstream = new DataInputStream(new BufferedInputStream(bits));
        ClassFile cf = null;
        try {
            cf = new ClassFile(dstream);
        } finally {
            dstream.close();
            bits.close();
        }
        
        if (cf != null) {
File Line
org\jadira\scanner\classpath\types\JAnnotation.java 129
org\jadira\scanner\classpath\types\JOperation.java 139
org\jadira\scanner\classpath\types\JPackage.java 218
org\jadira\scanner\classpath\types\JType.java 86
org\jadira\scanner\classpath\types\JVariable.java 60
    	builder.append("enclosingElement", getEnclosingElement());
    	
    	return builder.toString();
    }

    @Override
	public boolean equals(Object obj) {
		if (obj == null) {
			return false;
		}
		if (obj == this) {
			return true;
		}
		if (obj.getClass() != getClass()) {
			return false;
		}
File Line
org\jadira\scanner\classpath\types\JClass.java 294
org\jadira\scanner\classpath\types\JConstructor.java 102
org\jadira\scanner\classpath\types\JDefaultConstructor.java 85
org\jadira\scanner\classpath\types\JInterface.java 195
org\jadira\scanner\classpath\types\JMethod.java 96
org\jadira\scanner\classpath\types\JPackage.java 231
org\jadira\scanner\classpath\types\JPrimitiveClass.java 87
org\jadira\scanner\classpath\types\JStaticInitializer.java 56
org\jadira\scanner\classpath\types\JType.java 99
org\jadira\scanner\classpath\types\JVariable.java 73
		if (obj.getClass() != getClass()) {
			return false;
		}
		// JClass rhs = (JClass) obj;
		return new EqualsBuilder()
			 	.appendSuper(super.equals(obj))
				.isEquals();
	}

    @Override
	public int hashCode() {
		return new HashCodeBuilder(11, 47).append(super.hashCode())
				.toHashCode();
	}
File Line
org\jadira\scanner\classpath\types\JAnnotation.java 129
org\jadira\scanner\classpath\types\JElement.java 86
org\jadira\scanner\classpath\types\JOperation.java 139
org\jadira\scanner\classpath\types\JPackage.java 218
org\jadira\scanner\classpath\types\JType.java 86
org\jadira\scanner\classpath\types\JVariable.java 60
    	builder.append("enclosingElement", getEnclosingElement());
    	
    	return builder.toString();
    }

    @Override
	public boolean equals(Object obj) {
		if (obj == null) {
			return false;
		}
		if (obj == this) {
			return true;
		}
		if (obj.getClass() != getClass()) {
			return false;
		}
File Line
org\jadira\scanner\core\helper\JavassistAnnotationsHelper.java 42
org\jadira\scanner\core\helper\JavassistAnnotationsHelper.java 55
org\jadira\scanner\core\helper\JavassistAnnotationsHelper.java 81
		AnnotationsAttribute invisible = (AnnotationsAttribute) classFile.getAttribute(AnnotationsAttribute.invisibleTag);

		Set<Annotation> retVal = new HashSet<Annotation>();

		retVal.addAll(findAnnotationsForAnnotationsAttribute(visible));
		retVal.addAll(findAnnotationsForAnnotationsAttribute(invisible));

		return retVal.toArray(new Annotation[retVal.size()]);
	}
File Line
org\jadira\scanner\classpath\types\JAnnotation.java 131
org\jadira\scanner\classpath\types\JClass.java 283
org\jadira\scanner\classpath\types\JDefaultConstructor.java 74
org\jadira\scanner\classpath\types\JElement.java 88
org\jadira\scanner\classpath\types\JInnerClass.java 93
org\jadira\scanner\classpath\types\JInterface.java 184
org\jadira\scanner\classpath\types\JOperation.java 141
org\jadira\scanner\classpath\types\JPackage.java 220
org\jadira\scanner\classpath\types\JType.java 88
org\jadira\scanner\classpath\types\JVariable.java 62
    	return builder.toString();
    }

    @Override
	public boolean equals(Object obj) {
		if (obj == null) {
			return false;
		}
		if (obj == this) {
			return true;
		}
		if (obj.getClass() != getClass()) {
			return false;
		}
File Line
org\jadira\scanner\classpath\types\JDefaultConstructor.java 64
org\jadira\scanner\classpath\types\JOperation.java 116
            return getEnclosingType().getActualClass().getMethod(getName());
        } catch (SecurityException e) {
            throw new ClasspathAccessException("Problem obtaining method: " + e.getMessage(), e);
        } catch (NoSuchMethodException e) {
            throw new ClasspathAccessException("Problem finding method: " + e.getMessage(), e);
        }
    }
    
    @Override
    public Set<JAnnotation<?>> getAnnotations() {
File Line
org\jadira\scanner\classpath\types\JAnnotation.java 132
org\jadira\scanner\classpath\types\JArrayClass.java 111
org\jadira\scanner\classpath\types\JClass.java 284
org\jadira\scanner\classpath\types\JDefaultConstructor.java 75
org\jadira\scanner\classpath\types\JElement.java 89
org\jadira\scanner\classpath\types\JField.java 169
org\jadira\scanner\classpath\types\JInnerClass.java 94
org\jadira\scanner\classpath\types\JInterface.java 185
org\jadira\scanner\classpath\types\JMethod.java 86
org\jadira\scanner\classpath\types\JOperation.java 142
org\jadira\scanner\classpath\types\JPackage.java 221
org\jadira\scanner\classpath\types\JParameter.java 123
org\jadira\scanner\classpath\types\JPrimitiveClass.java 77
org\jadira\scanner\classpath\types\JStaticInitializer.java 46
org\jadira\scanner\classpath\types\JType.java 89
org\jadira\scanner\classpath\types\JVariable.java 63
    }

    @Override
	public boolean equals(Object obj) {
		if (obj == null) {
			return false;
		}
		if (obj == this) {
			return true;
		}
		if (obj.getClass() != getClass()) {
			return false;
		}
File Line
org\jadira\scanner\classfile\ClassFileResolver.java 69
org\jadira\scanner\classpath\ClasspathResolver.java 89
		this.classLoaders  = ClassLoaderUtils.getClassLoaders(classLoaders);
	}

	@Override
	public String toString() {

		ToStringBuilder builder = new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE);
		builder.append(getDriverData().toArray());

		return builder.toString();
	}

	@Override
	protected Allocator<ClassFile, File> getAssigner() {
File Line
org\jadira\scanner\classpath\types\JPackage.java 82
org\jadira\scanner\classpath\types\JPackage.java 95
        Set<JInterface> retVal = new HashSet<JInterface>();
        List<? extends ClassFile> classes = getResolver().getClassFileResolver().resolveAll(null, CLASSPATH_PROJECTOR, new PackageFileFilter(getName(), false), new PackageFilter(this), new JElementTypeFilter(JInterface.class));
File Line
org\jadira\scanner\classpath\types\JPackage.java 135
org\jadira\scanner\classpath\types\JType.java 52
                    && (next.getActualAnnotation().getClass().equals(annotation.getClass()))) {
                @SuppressWarnings("unchecked") JAnnotation<A> retVal = (JAnnotation<A>) next;
                return retVal;
            }
        }
        return null;
    }
    
    public JPackage getParentPackage() throws ClasspathAccessException {
File Line
org\jadira\scanner\classpath\types\JClass.java 97
org\jadira\scanner\classpath\types\JInterface.java 160
        List<? extends ClassFile> classes = getResolver().getClassFileResolver().resolveAll(null, CLASSPATH_PROJECTOR, new JTypeSubTypeOfFilter(this.getActualClass()), new JElementTypeFilter(JClass.class)); 
        for (ClassFile classFile : classes) {
            retVal.add(JClass.getJClass(classFile, getResolver()));
        }
        return retVal;
    }
File Line
org\jadira\scanner\classpath\types\JType.java 52
org\jadira\scanner\classpath\types\JVariable.java 46
                    && (next.getActualAnnotation().annotationType().getClass().equals(annotation.getClass()))) {
                @SuppressWarnings("unchecked") JAnnotation<A> retVal = (JAnnotation<A>)next;
                return retVal;
            }
        }
        return null;
    }
File Line
org\jadira\scanner\file\locator\MarkerFileClasspathUrlLocator.java 41
org\jadira\scanner\file\locator\PackagesClasspathUrlLocator.java 41
	public MarkerFileClasspathUrlLocator(String markerFilePath, ClassLoader... classLoaders) {
		this.paths = new ArrayList<String>(1);
		paths.add(asNormalizedName(markerFilePath));
		this.classLoaders = ClassLoaderUtils.getClassLoaders(classLoaders);
	}
	
	public MarkerFileClasspathUrlLocator(List<String> markerFilePaths, ClassLoader... classLoaders) {
File Line
org\jadira\scanner\classpath\types\JClass.java 261
org\jadira\scanner\classpath\types\JPackage.java 176
        for (JStaticInitializer next : getStaticInitializers()) {
            next.acceptVisitor(visitor);
        }
        for (JAnnotation<?> next : getAnnotations()) {
            next.acceptVisitor(visitor);
        }
    }

    @Override
    public JElement getEnclosingElement() {
        return getPackage();
File Line
org\jadira\scanner\classpath\types\JClass.java 154
org\jadira\scanner\classpath\types\JClass.java 211
org\jadira\scanner\classpath\types\JClass.java 225
org\jadira\scanner\classpath\types\JInterface.java 87
        final List<JConstructor> retVal = new ArrayList<JConstructor>();
        @SuppressWarnings("unchecked")
        final List<MethodInfo> methods = (List<MethodInfo>) getClassFile().getMethods();

        for (MethodInfo next : methods) {
            if (next.isConstructor()) {
File Line
org\jadira\scanner\classpath\filter\JTypeSubTypeOfFilter.java 51
org\jadira\scanner\classpath\filter\JTypeSubTypeOfFilter.java 61
            JType superType = ((JAnnotation<?>)type).getSuperType();
            if (superType == null) {
                return false;
            }
            if (types.contains(superType.getActualClass())) {
                return true;
            }
        } 
        
        if (type instanceof JClass) {
File Line
org\jadira\scanner\classpath\types\JClass.java 80
org\jadira\scanner\classpath\types\JInterface.java 68
        final String[] interfaces = getClassFile().getInterfaces();

        for (String next : interfaces) {
            retVal.add(JInterface.getJInterface(next, getResolver()));
        }
        return retVal;
    }
File Line
org\jadira\scanner\classpath\types\JClass.java 94
org\jadira\scanner\classpath\types\JInterface.java 157
    public Set<JClass> getSubClasses() {
        
        Set<JClass> retVal = new HashSet<JClass>();
        List<? extends ClassFile> classes = getResolver().getClassFileResolver().resolveAll(null, CLASSPATH_PROJECTOR, new JTypeSubTypeOfFilter(this.getActualClass()), new JElementTypeFilter(JClass.class)); 
File Line
org\jadira\scanner\classpath\types\JConstructor.java 43
org\jadira\scanner\classpath\types\JMethod.java 56
org\jadira\scanner\classpath\types\JType.java 58
    }

    public String getModifier() {
        return isPrivate() ? "private" :
               isProtected() ? "protected" :
               isPublic() ? "public" : "";
    }
    
    public boolean isPublic() {
        return AccessFlag.isPublic(getMethodInfo().getAccessFlags());
File Line
org\jadira\scanner\classpath\types\JClass.java 96
org\jadira\scanner\classpath\types\JInterface.java 149
        Set<JClass> retVal = new HashSet<JClass>();
        List<? extends ClassFile> classes = getResolver().getClassFileResolver().resolveAll(null, CLASSPATH_PROJECTOR, new JTypeSubTypeOfFilter(this.getActualClass()), new JElementTypeFilter(JClass.class)); 
File Line
org\jadira\scanner\classpath\types\JClass.java 94
org\jadira\scanner\classpath\types\JInterface.java 157
org\jadira\scanner\classpath\types\JPackage.java 65
    public Set<JClass> getSubClasses() {
        
        Set<JClass> retVal = new HashSet<JClass>();
        List<? extends ClassFile> classes = getResolver().getClassFileResolver().resolveAll(null, CLASSPATH_PROJECTOR, new JTypeSubTypeOfFilter(this.getActualClass()), new JElementTypeFilter(JClass.class)); 
File Line
org\jadira\scanner\classpath\types\JConstructor.java 69
org\jadira\scanner\classpath\types\JDefaultConstructor.java 48
            return clazz.getDeclaredConstructor(methodParams);
        } catch (SecurityException e) {
            throw new ClasspathAccessException("Could not access constructor: " + e, e);
        } catch (NoSuchMethodException e) {
            throw new ClasspathAccessException("Could not find constructor: " + e, e);
        }
    }
File Line
org\jadira\scanner\classpath\types\JConstructor.java 145
org\jadira\scanner\classpath\types\JOperation.java 131
org\jadira\scanner\classpath\types\JVariable.java 52
    }

    @Override
    public String toString() {
    	
    	ToStringBuilder builder = new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE);
    	builder.append("name",this.getName());
    	builder.append("enclosingType",this.getEnclosingType());
File Line
org\jadira\scanner\classpath\types\JInterface.java 147
org\jadira\scanner\classpath\types\JPackage.java 80
    public Set<JInterface> getSubInterfaces() {
        
        Set<JInterface> retVal = new HashSet<JInterface>();
        List<? extends ClassFile> classes = getResolver().getClassFileResolver().resolveAll(null, CLASSPATH_PROJECTOR, new JTypeSubTypeOfFilter(this.getActualClass()), new JElementTypeFilter(JInterface.class)); 
File Line
org\jadira\scanner\classpath\filter\JClassImplementsFilter.java 39
org\jadira\scanner\classpath\filter\JTypeSubTypeOfFilter.java 41
	public JClassImplementsFilter(Collection<Class<?>> types) {
		for (Class<?> next : types) {
			types.add(next);
		}
	}
	
	@Override
	public boolean accept(JClass clazz) {
File Line
org\jadira\scanner\classpath\types\JAnnotation.java 88
org\jadira\scanner\classpath\types\JPackage.java 90
    }

    @Override
    public Set<JAnnotation<?>> getAnnotations() throws ClasspathAccessException {

        Set<JAnnotation<?>> retVal = new HashSet<JAnnotation<?>>();
File Line
org\jadira\scanner\classpath\types\JPackage.java 67
org\jadira\scanner\classpath\types\JPackage.java 82
org\jadira\scanner\classpath\types\JPackage.java 95
        Set<JClass> retVal = new HashSet<JClass>();
        List<? extends ClassFile> classes = getResolver().getClassFileResolver().resolveAll(null, CLASSPATH_PROJECTOR, new PackageFileFilter(getName(), false), new PackagePrefixFilter(this), new JElementTypeFilter(JClass.class)); 
File Line
org\jadira\scanner\classpath\types\JAnnotation.java 122
org\jadira\scanner\classpath\types\JInnerClass.java 79
    }
    
    @Override
    public String toString() {
    	
    	ToStringBuilder builder = new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE);
    	builder.append("name", getName());
    	builder.append("enclosingElement", getEnclosingElement());
File Line
org\jadira\scanner\classpath\types\JAnnotation.java 131
org\jadira\scanner\classpath\types\JClass.java 283
org\jadira\scanner\classpath\types\JConstructor.java 91
org\jadira\scanner\classpath\types\JDefaultConstructor.java 74
org\jadira\scanner\classpath\types\JElement.java 88
org\jadira\scanner\classpath\types\JInnerClass.java 93
org\jadira\scanner\classpath\types\JInterface.java 184
org\jadira\scanner\classpath\types\JOperation.java 141
org\jadira\scanner\classpath\types\JPackage.java 220
org\jadira\scanner\classpath\types\JType.java 88
org\jadira\scanner\classpath\types\JVariable.java 62
    	return builder.toString();
    }

    @Override
	public boolean equals(Object obj) {
		if (obj == null) {
			return false;
		}
		if (obj == this) {
			return true;
		}
		if (obj.getClass() != getClass()) {
File Line
org\jadira\scanner\classpath\types\JClass.java 261
org\jadira\scanner\classpath\types\JConstructor.java 81
org\jadira\scanner\classpath\types\JInnerClass.java 73
org\jadira\scanner\classpath\types\JInterface.java 174
org\jadira\scanner\classpath\types\JMethod.java 80
org\jadira\scanner\classpath\types\JPackage.java 176
org\jadira\scanner\classpath\types\JStaticInitializer.java 40
        for (JStaticInitializer next : getStaticInitializers()) {
            next.acceptVisitor(visitor);
        }
        for (JAnnotation<?> next : getAnnotations()) {
            next.acceptVisitor(visitor);
        }
    }

    @Override
    public JElement getEnclosingElement() {
File Line
org\jadira\scanner\classpath\types\JPackage.java 189
org\jadira\scanner\classpath\types\JVariable.java 51
        return null;
    }

//	private static List<Package> findChildPackagesForPackage(String name, ClasspathResolver resolver) throws ClasspathAccessException {
//
//		List<Package> retVal = new ArrayList<Package>();
//
//		for (URL url : resolver.getClasspaths()) {
//
//			File nextFile = FileUtils.getFileForPathName(name, url);
//
//			if (nextFile != null) {
//
//				File[] files = nextFile.listFiles();
//
//				for (int i = 0; i < files.length; i++) {
//					if (files[i].isDirectory()) {
//						retVal.add(findPackage(name + "." + files[i].getName(), resolver));
//					}
//				}
//			}
//		}
//		return retVal;
//	}

    @Override
    public String toString() {
    	
    	ToStringBuilder builder = new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE);
    	builder.append("name", this.getName());
File Line
org\jadira\scanner\classpath\types\JAnnotation.java 148
org\jadira\scanner\classpath\types\JArrayClass.java 127
org\jadira\scanner\classpath\types\JField.java 185
org\jadira\scanner\classpath\types\JInnerClass.java 110
org\jadira\scanner\classpath\types\JOperation.java 158
org\jadira\scanner\classpath\types\JParameter.java 139
				.append(enclosingElement, rhs.enclosingElement).isEquals();
	}

    @Override
	public int hashCode() {
		return new HashCodeBuilder(11, 47).append(super.hashCode())
				.append(enclosingElement).toHashCode();
File Line
org\jadira\scanner\file\locator\MarkerFileClasspathUrlLocator.java 124
org\jadira\scanner\file\locator\PackagesClasspathUrlLocator.java 125
            result = result.replace("\\", "/");
            if (result.startsWith("/")) {
                result = result.substring(1);
            }
        }
        return result;
    }
}
File Line
org\jadira\scanner\classfile\filter\ClassFileFilter.java 26
org\jadira\scanner\classfile\filter\PackageFileFilter.java 26
public class ClassFileFilter extends AbstractFilter<File> implements Filter<File> {
	
	private static final char FILE_SEPARATOR = System.getProperty("file.separator").charAt(0);
	
	private final String name;

	public ClassFileFilter(String name) {
File Line
org\jadira\scanner\classpath\types\JAnnotation.java 44
org\jadira\scanner\classpath\types\JClass.java 69
    }
    
    public JClass getSuperType() throws ClasspathAccessException {

        final String superClassFile = getClassFile().getSuperclass();
        return JClass.getJClass(superClassFile, getResolver());
    }
    
    public Class<?> getActualSuperType() throws ClasspathAccessException {
File Line
org\jadira\scanner\classpath\types\JArrayClass.java 111
org\jadira\scanner\classpath\types\JConstructor.java 92
org\jadira\scanner\classpath\types\JField.java 169
org\jadira\scanner\classpath\types\JMethod.java 86
org\jadira\scanner\classpath\types\JParameter.java 123
org\jadira\scanner\classpath\types\JPrimitiveClass.java 77
org\jadira\scanner\classpath\types\JStaticInitializer.java 46
    }

    @Override
	public boolean equals(Object obj) {
		if (obj == null) {
			return false;
		}
		if (obj == this) {
			return true;
		}
		if (obj.getClass() != getClass()) {
File Line
org\jadira\scanner\classpath\types\JConstructor.java 145
org\jadira\scanner\classpath\types\JOperation.java 131
org\jadira\scanner\classpath\types\JPackage.java 190
    }

    @Override
    public String toString() {
    	
    	ToStringBuilder builder = new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE);
    	builder.append("name",this.getName());
File Line
org\jadira\scanner\classpath\types\JAnnotation.java 148
org\jadira\scanner\classpath\types\JArrayClass.java 127
org\jadira\scanner\classpath\types\JClass.java 299
org\jadira\scanner\classpath\types\JConstructor.java 107
org\jadira\scanner\classpath\types\JDefaultConstructor.java 90
org\jadira\scanner\classpath\types\JField.java 185
org\jadira\scanner\classpath\types\JInnerClass.java 110
org\jadira\scanner\classpath\types\JInterface.java 200
org\jadira\scanner\classpath\types\JMethod.java 101
org\jadira\scanner\classpath\types\JOperation.java 158
org\jadira\scanner\classpath\types\JPackage.java 236
org\jadira\scanner\classpath\types\JParameter.java 139
org\jadira\scanner\classpath\types\JPrimitiveClass.java 92
org\jadira\scanner\classpath\types\JStaticInitializer.java 61
org\jadira\scanner\classpath\types\JType.java 104
org\jadira\scanner\classpath\types\JVariable.java 78
				.append(enclosingElement, rhs.enclosingElement).isEquals();
	}

    @Override
	public int hashCode() {
		return new HashCodeBuilder(11, 47).append(super.hashCode())
				.append(enclosingElement).toHashCode();
File Line
org\jadira\scanner\classpath\types\JField.java 120
org\jadira\scanner\core\helper\JavassistAnnotationsHelper.java 78
    public Set<JAnnotation<?>> getAnnotations() {

        AnnotationsAttribute visible = (AnnotationsAttribute) fieldInfo.getAttribute(AnnotationsAttribute.visibleTag);
        AnnotationsAttribute invisible = (AnnotationsAttribute) fieldInfo.getAttribute(AnnotationsAttribute.invisibleTag);

        Set<JAnnotation<?>> annotations = new HashSet<JAnnotation<?>>();
File Line
org\jadira\scanner\classpath\types\JOperation.java 53
org\jadira\scanner\core\helper\JavassistAnnotationsHelper.java 52
    public Set<JAnnotation<?>> getAnnotations() {

        AnnotationsAttribute visible = (AnnotationsAttribute) methodInfo.getAttribute(AnnotationsAttribute.visibleTag);
        AnnotationsAttribute invisible = (AnnotationsAttribute) methodInfo.getAttribute(AnnotationsAttribute.invisibleTag);

        Set<JAnnotation<?>> annotations = new HashSet<JAnnotation<?>>();
File Line
org\jadira\scanner\classpath\types\JAnnotation.java 122
org\jadira\scanner\classpath\types\JInnerClass.java 79
org\jadira\scanner\classpath\types\JType.java 80
    }
    
    @Override
    public String toString() {
    	
    	ToStringBuilder builder = new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE);
    	builder.append("name", getName());
File Line
org\jadira\scanner\classpath\types\JClass.java 255
org\jadira\scanner\classpath\types\JInnerClass.java 67
org\jadira\scanner\classpath\types\JInterface.java 171
        for (JConstructor next : getConstructors()) {
            next.acceptVisitor(visitor);
        }
        for (JMethod next : getMethods()) {
            next.acceptVisitor(visitor);
        }
        for (JStaticInitializer next : getStaticInitializers()) {
File Line
org\jadira\scanner\classpath\types\JOperation.java 53
org\jadira\scanner\classpath\types\JOperation.java 76
org\jadira\scanner\core\helper\JavassistAnnotationsHelper.java 52
    public Set<JAnnotation<?>> getAnnotations() {

        AnnotationsAttribute visible = (AnnotationsAttribute) methodInfo.getAttribute(AnnotationsAttribute.visibleTag);
        AnnotationsAttribute invisible = (AnnotationsAttribute) methodInfo.getAttribute(AnnotationsAttribute.invisibleTag);
File Line
org\jadira\scanner\classpath\types\JConstructor.java 143
org\jadira\scanner\classpath\types\JInnerClass.java 77
        	return super.getParameters();
        }
    }

    @Override
    public String toString() {
    	
    	ToStringBuilder builder = new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE);
    	builder.append("name",this.getName());
File Line
org\jadira\scanner\core\concurrent\AllocatorTask.java 20
org\jadira\scanner\core\concurrent\FilterTask.java 20
org\jadira\scanner\core\concurrent\ProjectorTask.java 20
		this.inputs = inputs;
	} 
	
	@Override
	public List<T> compute() {
		
		List<T> result = inputs.stream()
			.map( a -> allocator.allocate(a) )
File Line
org\jadira\scanner\file\locator\ContainedClassClasspathUrlLocator.java 72
org\jadira\scanner\file\locator\JavaClasspathUrlLocator.java 47
org\jadira\scanner\file\locator\MarkerFileClasspathUrlLocator.java 70
org\jadira\scanner\file\locator\PackagesClasspathUrlLocator.java 70
                            throw new FileAccessException("File unexpectedly does not exist: " + fp);
                        }
                        
                        try {
                            list.add(fp.toURI().toURL());
                        } catch (MalformedURLException e) {
                        	throw new FileAccessException("Filepath unexpectedly malformed: " + fp.getPath(), e);
File Line
org\jadira\scanner\classpath\types\JConstructor.java 125
org\jadira\scanner\classpath\types\JOperation.java 73
    }

    @Override
    public <A extends java.lang.annotation.Annotation> JAnnotation<A> getAnnotation(Class<A> annotation) {
File Line
org\jadira\scanner\classpath\types\JField.java 143
org\jadira\scanner\classpath\types\JParameter.java 112
    public void acceptVisitor(IntrospectionVisitor visitor) {
        visitor.visit(this);

        for (JAnnotation<?> next : getAnnotations()) {
            next.acceptVisitor(visitor);
        }
    }
File Line
org\jadira\scanner\classpath\types\JParameter.java 65
org\jadira\scanner\classpath\types\JParameter.java 70
            for (Annotation anns : paramsVisible.getAnnotations()[index]) {
                retVal.add(JAnnotation.getJAnnotation(anns, this, getResolver()));
            }
        }
File Line
org\jadira\scanner\core\api\Resolver.java 24
org\jadira\scanner\core\spi\AbstractResolver.java 105
	List<? extends T> resolve(Integer limit, Locator<A> locator, Projector<E> projector, Filter<?>... filter);
File Line
org\jadira\scanner\classpath\types\JAnnotation.java 122
org\jadira\scanner\classpath\types\JConstructor.java 145
org\jadira\scanner\classpath\types\JInnerClass.java 79
org\jadira\scanner\classpath\types\JOperation.java 131
org\jadira\scanner\classpath\types\JPackage.java 190
org\jadira\scanner\classpath\types\JType.java 80
org\jadira\scanner\classpath\types\JVariable.java 52
    }
    
    @Override
    public String toString() {
    	
    	ToStringBuilder builder = new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE);
    	builder.append("name", getName());
File Line
org\jadira\scanner\classpath\types\JClass.java 233
org\jadira\scanner\classpath\types\JInterface.java 163
        }
        return retVal;
    }

    @Override
    public void acceptVisitor(IntrospectionVisitor visitor) throws ClasspathAccessException {
        visitor.visit(this);

        for (JInterface next : getImplementedInterfaces()) {
File Line
org\jadira\scanner\classpath\types\JConstructor.java 125
org\jadira\scanner\classpath\types\JOperation.java 73
org\jadira\scanner\classpath\types\JPackage.java 127
    }

    @Override
    public <A extends java.lang.annotation.Annotation> JAnnotation<A> getAnnotation(Class<A> annotation) {
File Line
org\jadira\scanner\classpath\types\JClass.java 96
org\jadira\scanner\classpath\types\JPackage.java 82
org\jadira\scanner\classpath\types\JPackage.java 95
        Set<JClass> retVal = new HashSet<JClass>();
        List<? extends ClassFile> classes = getResolver().getClassFileResolver().resolveAll(null, CLASSPATH_PROJECTOR, new JTypeSubTypeOfFilter(this.getActualClass()), new JElementTypeFilter(JClass.class)); 
File Line
org\jadira\scanner\classpath\types\JConstructor.java 127
org\jadira\scanner\classpath\types\JOperation.java 75
org\jadira\scanner\classpath\types\JType.java 46
org\jadira\scanner\classpath\types\JVariable.java 40
    @Override
    public <A extends java.lang.annotation.Annotation> JAnnotation<A> getAnnotation(Class<A> annotation) {
File Line
org\jadira\scanner\classpath\types\JInterface.java 149
org\jadira\scanner\classpath\types\JInterface.java 159
org\jadira\scanner\classpath\types\JPackage.java 67
        Set<JInterface> retVal = new HashSet<JInterface>();
        List<? extends ClassFile> classes = getResolver().getClassFileResolver().resolveAll(null, CLASSPATH_PROJECTOR, new JTypeSubTypeOfFilter(this.getActualClass()), new JElementTypeFilter(JInterface.class)); 
File Line
org\jadira\scanner\classfile\ClassFileResolver.java 70
org\jadira\scanner\classpath\ClasspathResolver.java 90
org\jadira\scanner\classpath\types\JAnnotation.java 122
org\jadira\scanner\classpath\types\JConstructor.java 145
org\jadira\scanner\classpath\types\JElement.java 80
org\jadira\scanner\classpath\types\JInnerClass.java 79
org\jadira\scanner\classpath\types\JOperation.java 131
org\jadira\scanner\classpath\types\JPackage.java 190
org\jadira\scanner\classpath\types\JType.java 80
org\jadira\scanner\classpath\types\JVariable.java 52
	}

	@Override
	public String toString() {

		ToStringBuilder builder = new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE);
		builder.append(getDriverData().toArray());
File Line
org\jadira\scanner\classpath\types\JAnnotation.java 148
org\jadira\scanner\classpath\types\JArrayClass.java 127
org\jadira\scanner\classpath\types\JClass.java 299
org\jadira\scanner\classpath\types\JConstructor.java 107
org\jadira\scanner\classpath\types\JDefaultConstructor.java 90
org\jadira\scanner\classpath\types\JElement.java 104
org\jadira\scanner\classpath\types\JField.java 185
org\jadira\scanner\classpath\types\JInnerClass.java 110
org\jadira\scanner\classpath\types\JInterface.java 200
org\jadira\scanner\classpath\types\JMethod.java 101
org\jadira\scanner\classpath\types\JOperation.java 158
org\jadira\scanner\classpath\types\JPackage.java 236
org\jadira\scanner\classpath\types\JParameter.java 139
org\jadira\scanner\classpath\types\JPrimitiveClass.java 92
org\jadira\scanner\classpath\types\JStaticInitializer.java 61
org\jadira\scanner\classpath\types\JType.java 104
org\jadira\scanner\classpath\types\JVariable.java 78
				.append(enclosingElement, rhs.enclosingElement).isEquals();
	}

    @Override
	public int hashCode() {
		return new HashCodeBuilder(11, 47).append(super.hashCode())
File Line
org\jadira\scanner\classpath\types\JArrayClass.java 76
org\jadira\scanner\classpath\types\JDefaultConstructor.java 70
    }

    @Override
    public Set<JAnnotation<?>> getAnnotations() {

        return Collections.emptySet();
    }

    @Override
    public JPackage getPackage() throws ClasspathAccessException {
File Line
org\jadira\scanner\classpath\types\JDefaultConstructor.java 59
org\jadira\scanner\classpath\types\JOperation.java 111
    }

    public Method getActualMethod() throws ClasspathAccessException {

        try {
            return getEnclosingType().getActualClass().getMethod(getName());
File Line
org\jadira\scanner\classpath\types\JInnerClass.java 51
org\jadira\scanner\classpath\types\JPackage.java 166
        return getEnclosingClass();
    }
     
    @Override
    public void acceptVisitor(IntrospectionVisitor visitor) throws ClasspathAccessException {
        visitor.visit(this);

        for (JInterface next : getImplementedInterfaces()) {
File Line
org\jadira\scanner\core\api\Resolver.java 14
org\jadira\scanner\core\api\Resolver.java 24
	T resolveFirst(Locator<A> locator, Projector<E> projector, Filter<?>... filter);
	
	/**
	 * Resolve all matches up to limit
	 * @param limit The maximum number of results to match
	 * @param locator Locator to be used
	 * @param projector Projector to be used
	 * @param filter Zero or more filters to be used
	 * @return The first match
	 */
	List<? extends T> resolve(Integer limit, Locator<A> locator, Projector<E> projector, Filter<?>... filter);
File Line
org\jadira\scanner\core\api\Resolver.java 33
org\jadira\scanner\core\spi\AbstractResolver.java 145
	List<? extends T> resolveAll(Locator<A> locator, Projector<E> projector, Filter<?>... filter);
File Line
org\jadira\scanner\file\locator\ContainedClassClasspathUrlLocator.java 55
org\jadira\scanner\file\locator\MarkerFileClasspathUrlLocator.java 53
org\jadira\scanner\file\locator\PackagesClasspathUrlLocator.java 53
org\jadira\scanner\file\locator\WebappClasspathUrlLocator.java 39
	}
	
	@Override
	public List<URL> locate() {

        List<URL> list = new ArrayList<URL>();
File Line
org\jadira\scanner\classpath\ClasspathResolver.java 67
org\jadira\scanner\classpath\ClasspathResolver.java 80
		this.classLoaders = ClassLoaderUtils.getClassLoaders();
		classFileResolver = new ClassFileResolver(classpaths, this.classLoaders);
		getDriverData().addAll(classpaths);
	}
	
    public ClasspathResolver(ClassLoader... classLoaders) {
File Line
org\jadira\scanner\classpath\filter\JClassImplementsFilter.java 33
org\jadira\scanner\classpath\filter\JTypeSubTypeOfFilter.java 35
	public JClassImplementsFilter(Class<?> type) {
		if (type != null) {
			types.add(type);
		}
	}
	
	public JClassImplementsFilter(Collection<Class<?>> types) {
File Line
org\jadira\scanner\classpath\types\JClass.java 235
org\jadira\scanner\classpath\types\JPackage.java 167
    }

    @Override
    public void acceptVisitor(IntrospectionVisitor visitor) throws ClasspathAccessException {
        visitor.visit(this);

        for (JInterface next : getImplementedInterfaces()) {
File Line
org\jadira\scanner\classpath\types\JClass.java 264
org\jadira\scanner\classpath\types\JConstructor.java 84
org\jadira\scanner\classpath\types\JInnerClass.java 76
org\jadira\scanner\classpath\types\JInterface.java 177
org\jadira\scanner\classpath\types\JMethod.java 83
org\jadira\scanner\classpath\types\JPackage.java 179
org\jadira\scanner\classpath\types\JParameter.java 115
org\jadira\scanner\classpath\types\JStaticInitializer.java 43
        for (JAnnotation<?> next : getAnnotations()) {
            next.acceptVisitor(visitor);
        }
    }

    @Override
    public JElement getEnclosingElement() {
File Line
org\jadira\scanner\classpath\types\JInnerClass.java 52
org\jadira\scanner\classpath\types\JInterface.java 165
    }
     
    @Override
    public void acceptVisitor(IntrospectionVisitor visitor) throws ClasspathAccessException {
        visitor.visit(this);

        for (JInterface next : getImplementedInterfaces()) {
File Line
org\jadira\scanner\file\locator\ContainedClassClasspathUrlLocator.java 41
org\jadira\scanner\file\locator\MarkerFileClasspathUrlLocator.java 41
org\jadira\scanner\file\locator\PackagesClasspathUrlLocator.java 41
	public ContainedClassClasspathUrlLocator(Class<?> clazz, ClassLoader... classLoaders) {
		this.paths = new ArrayList<String>(1);
		paths.add(asNormalizedName(clazz));
File Line
org\jadira\scanner\file\locator\ContainedClassClasspathUrlLocator.java 57
org\jadira\scanner\file\locator\JavaClasspathUrlLocator.java 34
org\jadira\scanner\file\locator\MarkerFileClasspathUrlLocator.java 55
org\jadira\scanner\file\locator\PackagesClasspathUrlLocator.java 55
org\jadira\scanner\file\locator\WebappClasspathUrlLocator.java 41
	@Override
	public List<URL> locate() {

        List<URL> list = new ArrayList<URL>();
File Line
org\jadira\scanner\classfile\filter\NameFilter.java 23
org\jadira\scanner\classpath\filter\NameFilter.java 22
public class NameFilter extends AbstractFilter<ClassFile> implements Filter<ClassFile> {
	
	private String name;

	public NameFilter(String name) {
		this.name = name;
	}
	
	@Override
	public boolean accept(ClassFile element) {
File Line
org\jadira\scanner\classpath\filter\JClassImplementsFilter.java 26
org\jadira\scanner\classpath\filter\JTypeSubTypeOfFilter.java 28
public class JClassImplementsFilter extends AbstractFilter<JClass> {

	private Set<Class<?>> types = new HashSet<Class<?>>();
	
	public JClassImplementsFilter() {
File Line
org\jadira\scanner\classpath\types\JClass.java 47
org\jadira\scanner\classpath\types\JInterface.java 45
    protected JClass(String name, ClasspathResolver resolver) throws ClasspathAccessException {
    	this(findClassFile(name, resolver), resolver);
    }

    protected JClass(Class<?> clazz, ClasspathResolver resolver) throws ClasspathAccessException {
File Line
org\jadira\scanner\classpath\types\JConstructor.java 67
org\jadira\scanner\classpath\types\JDefaultConstructor.java 46
        try {
            Class<?> clazz = ((JClass) getEnclosingType()).getActualClass();
            return clazz.getDeclaredConstructor(methodParams);
File Line
org\jadira\scanner\ConfigurationBuilder.java 149
org\jadira\scanner\ConfigurationBuilder.java 162
        for (Locator<URL> next : locators) {
            this.locators.add(next);
        }
        return this;
    }
File Line
org\jadira\scanner\ConfigurationBuilder.java 210
org\jadira\scanner\ConfigurationBuilder.java 222
        for (Filter<?> next : filters) {
            this.filters.add(next);
        }
        return this;
    }
File Line
org\jadira\scanner\core\helper\JavassistAnnotationsHelper.java 47
org\jadira\scanner\core\helper\JavassistAnnotationsHelper.java 60
org\jadira\scanner\core\helper\JavassistAnnotationsHelper.java 73
		retVal.addAll(findAnnotationsForAnnotationsAttribute(invisible));

		return retVal.toArray(new Annotation[retVal.size()]);
	}
	
	public static Annotation[] getAnnotationsForMethod(MethodInfo methodInfo) {
File Line
org\jadira\scanner\Scanner.java 73
org\jadira\scanner\Scanner.java 79
        Class<? extends T>[] result = (Class<? extends T>[]) jtypeToClass(classpathResolver.resolveAll(null, ClasspathProjector.SINGLETON, assembleFilters(new JElementTypeFilter(JType.class), new JTypeSubTypeOfFilter(type))));
File Line
org\jadira\scanner\classpath\types\JConstructor.java 37
org\jadira\scanner\classpath\types\JDefaultConstructor.java 35
    protected JConstructor(MethodInfo methodInfo, JClass jClass, ClasspathResolver resolver) {
        super(methodInfo, jClass, resolver);
    }

    public static JConstructor getJConstructor(MethodInfo methodInfo, JClass jClass, ClasspathResolver resolver) {
File Line
org\jadira\scanner\classpath\types\JInnerClass.java 51
org\jadira\scanner\classpath\types\JMethod.java 73
org\jadira\scanner\classpath\types\JPackage.java 166
org\jadira\scanner\classpath\types\JStaticInitializer.java 33
        return getEnclosingClass();
    }
     
    @Override
    public void acceptVisitor(IntrospectionVisitor visitor) throws ClasspathAccessException {
        visitor.visit(this);

        for (JInterface next : getImplementedInterfaces()) {
File Line
org\jadira\scanner\classpath\types\JMethod.java 32
org\jadira\scanner\classpath\types\JStaticInitializer.java 28
    protected JMethod(MethodInfo methodInfo, JType enclosingType, ClasspathResolver resolver) {
        super(methodInfo, enclosingType, resolver);
    }

    public static JMethod getJMethod(MethodInfo methodInfo, JType enclosingType, ClasspathResolver resolver) {
File Line
org\jadira\scanner\classpath\ClasspathResolver.java 67
org\jadira\scanner\classpath\ClasspathResolver.java 80
org\jadira\scanner\classpath\ClasspathResolver.java 87
		this.classLoaders = ClassLoaderUtils.getClassLoaders();
		classFileResolver = new ClassFileResolver(classpaths, this.classLoaders);
		getDriverData().addAll(classpaths);
	}
File Line
org\jadira\scanner\classpath\projector\ClasspathProjector.java 100
org\jadira\scanner\classpath\projector\ClasspathProjector.java 112
    		File[] dirs = segment.listFiles(new FileFilter() {
    			
    			@Override
    			public boolean accept(File file) {
    				return file.isDirectory();
File Line
org\jadira\scanner\classpath\types\JClass.java 89
org\jadira\scanner\classpath\types\JInterface.java 99
    public Class<?> getActualClass() throws ClasspathAccessException {

        return getResolver().loadClass(getClassFile().getName());
    }
File Line
org\jadira\scanner\classpath\types\JClass.java 169
org\jadira\scanner\classpath\types\JField.java 117
org\jadira\scanner\classpath\types\JOperation.java 50
    }

    @Override
    public Set<JAnnotation<?>> getAnnotations() {

        AnnotationsAttribute visible = (AnnotationsAttribute) getClassFile().getAttribute(AnnotationsAttribute.visibleTag);
File Line
org\jadira\scanner\classpath\types\JClass.java 235
org\jadira\scanner\classpath\types\JConstructor.java 75
org\jadira\scanner\classpath\types\JInnerClass.java 52
org\jadira\scanner\classpath\types\JInterface.java 165
org\jadira\scanner\classpath\types\JMethod.java 74
org\jadira\scanner\classpath\types\JPackage.java 167
org\jadira\scanner\classpath\types\JParameter.java 109
org\jadira\scanner\classpath\types\JStaticInitializer.java 34
    }

    @Override
    public void acceptVisitor(IntrospectionVisitor visitor) throws ClasspathAccessException {
        visitor.visit(this);

        for (JInterface next : getImplementedInterfaces()) {
File Line
org\jadira\scanner\classpath\types\JClass.java 264
org\jadira\scanner\classpath\types\JConstructor.java 84
org\jadira\scanner\classpath\types\JField.java 146
org\jadira\scanner\classpath\types\JInnerClass.java 76
org\jadira\scanner\classpath\types\JInterface.java 177
org\jadira\scanner\classpath\types\JMethod.java 83
org\jadira\scanner\classpath\types\JPackage.java 179
org\jadira\scanner\classpath\types\JStaticInitializer.java 43
        for (JAnnotation<?> next : getAnnotations()) {
            next.acceptVisitor(visitor);
        }
    }
File Line
org\jadira\scanner\classpath\types\JOperation.java 90
org\jadira\scanner\classpath\types\JPackage.java 135
org\jadira\scanner\classpath\types\JType.java 52
org\jadira\scanner\classpath\types\JVariable.java 46
            if (annotation.getName().equals(nextAnnotation.getTypeName())) {
                @SuppressWarnings("unchecked") JAnnotation<A> retVal = (JAnnotation<A>) JAnnotation.getJAnnotation(nextAnnotation, this, getResolver());
File Line
org\jadira\scanner\classpath\types\JPackage.java 83
org\jadira\scanner\classpath\types\JPackage.java 96
        List<? extends ClassFile> classes = getResolver().getClassFileResolver().resolveAll(null, CLASSPATH_PROJECTOR, new PackageFileFilter(getName(), false), new PackageFilter(this), new JElementTypeFilter(JInterface.class));
        for (ClassFile classFile : classes) {
            if (classFile.isInterface() && (!classFile.getSuperclass().equals("java.lang.annotation.Annotation"))) {
File Line
org\jadira\scanner\ConfigurationBuilder.java 81
org\jadira\scanner\ConfigurationBuilder.java 88
                        for (Object nextEntry : (Object[]) param) {
                            if (nextEntry != null) {
                                paramsList.add(nextEntry); 
                            }
                        }
                    }
                    else if (param instanceof Iterable) {
File Line
org\jadira\scanner\core\spi\AbstractResolver.java 99
org\jadira\scanner\core\spi\AbstractResolver.java 145
	public T resolveFirst(Locator<A> locator, Projector<E> projector, Filter<?>... filters) {
File Line
org\jadira\scanner\core\spi\AbstractResolver.java 149
org\jadira\scanner\core\spi\AbstractResolver.java 153
	protected Class<?> getSourceType() {
		return TypeHelper.getTypeArguments(AbstractResolver.class, this.getClass()).get(1);
File Line
org\jadira\scanner\classfile\ClassFileResolver.java 61
org\jadira\scanner\classpath\ClasspathResolver.java 72
    public ClassFileResolver(ClassLoader... classLoaders) {    	
        super(JDK_BASE_CLASSPATH_JARS);
        this.classLoaders  = ClassLoaderUtils.getClassLoaders(classLoaders);
File Line
org\jadira\scanner\classpath\filter\JElementTypeFilter.java 25
org\jadira\scanner\classpath\filter\PackageFilter.java 47
			elementTypes.add(next);
		}
	}
	
	@Override
	public boolean accept(JElement element) {
		
		final boolean shouldAccept = elementTypes.contains(element.getClass());
File Line
org\jadira\scanner\classpath\filter\PackageFilter.java 34
org\jadira\scanner\classpath\filter\PackageFilter.java 40
		for (Package next : packages) {
			packageNames.add(next.getName());
		}
	}
	
	public PackageFilter(JPackage... packages) {
File Line
org\jadira\scanner\classpath\projector\ClasspathProjector.java 116
org\jadira\scanner\classpath\projector\ClasspathProjector.java 173
    				return !file.isDirectory() && file.getName().endsWith(".class");
    			}
    		});
    		files.addAll(Arrays.asList(classes));
    		
	    } else if (segment.getPath().endsWith("jar")) { // else if ("jar".equals(((de.schlichtherle.io.File)segment).getArchiveDetector().getScheme(segment.getPath()).toString())) {
File Line
org\jadira\scanner\classpath\types\JAnnotation.java 145
org\jadira\scanner\classpath\types\JArrayClass.java 124
org\jadira\scanner\classpath\types\JField.java 182
org\jadira\scanner\classpath\types\JInnerClass.java 107
org\jadira\scanner\classpath\types\JOperation.java 155
org\jadira\scanner\classpath\types\JParameter.java 136
		JAnnotation<?> rhs = (JAnnotation<?>) obj;
		return new EqualsBuilder()
			 	.appendSuper(super.equals(obj))
				.append(enclosingElement, rhs.enclosingElement).isEquals();
File Line
org\jadira\scanner\classpath\types\JDefaultConstructor.java 66
org\jadira\scanner\classpath\types\JMethod.java 52
org\jadira\scanner\classpath\types\JOperation.java 118
            throw new ClasspathAccessException("Problem obtaining method: " + e.getMessage(), e);
        } catch (NoSuchMethodException e) {
            throw new ClasspathAccessException("Problem finding method: " + e.getMessage(), e);
File Line
org\jadira\scanner\classpath\types\JElement.java 61
org\jadira\scanner\classpath\types\JPrimitiveClass.java 54
			retVal = JClass.findClassFile("java.lang.Boolean", resolver);
		} else if ("byte".equals(name)) {
File Line
org\jadira\scanner\classpath\types\JElement.java 63
org\jadira\scanner\classpath\types\JPrimitiveClass.java 56
			retVal = JClass.findClassFile("java.lang.Byte", resolver);
		} else if ("char".equals(name)) {
File Line
org\jadira\scanner\classpath\types\JElement.java 65
org\jadira\scanner\classpath\types\JPrimitiveClass.java 58
			retVal = JClass.findClassFile("java.lang.Character", resolver);
		} else if ("short".equals(name)) {
File Line
org\jadira\scanner\classpath\types\JElement.java 67
org\jadira\scanner\classpath\types\JPrimitiveClass.java 60
			retVal = JClass.findClassFile("java.lang.Short", resolver);
		} else if ("int".equals(name)) {
File Line
org\jadira\scanner\classpath\types\JElement.java 69
org\jadira\scanner\classpath\types\JPrimitiveClass.java 62
			retVal = JClass.findClassFile("java.lang.Integer", resolver);
		} else if ("long".equals(name)) {
File Line
org\jadira\scanner\classpath\types\JElement.java 71
org\jadira\scanner\classpath\types\JPrimitiveClass.java 64
			retVal = JClass.findClassFile("java.lang.Long", resolver);
		} else if ("float".equals(name)) {
File Line
org\jadira\scanner\classpath\types\JElement.java 73
org\jadira\scanner\classpath\types\JPrimitiveClass.java 66
			retVal = JClass.findClassFile("java.lang.Float", resolver);
		} else if ("double".equals(name)) {
File Line
org\jadira\scanner\classpath\types\JPackage.java 105
org\jadira\scanner\classpath\types\JParameter.java 95
                    throw new ClasspathAccessException("Cannot instantiate annotation: " + e.getMessage(), e);
                } catch (IllegalAccessException e) {
                    throw new ClasspathAccessException("Cannot access annotation: " + e.getMessage(), e);
File Line
org\jadira\scanner\ConfigurationBuilder.java 118
org\jadira\scanner\ConfigurationBuilder.java 130
        for(URL next : urls) {
            this.urls.add(next);
        }
        return this;
    }
File Line
org\jadira\scanner\ConfigurationBuilder.java 180
org\jadira\scanner\ConfigurationBuilder.java 192
        for (ClassLoader next : classLoaders) {
            this.classLoaders.add(next);
        }
        return this;
    }
File Line
org\jadira\scanner\core\api\Resolver.java 14
org\jadira\scanner\core\spi\AbstractResolver.java 99
	T resolveFirst(Locator<A> locator, Projector<E> projector, Filter<?>... filter);
File Line
org\jadira\scanner\core\api\Resolver.java 14
org\jadira\scanner\core\api\Resolver.java 33
	T resolveFirst(Locator<A> locator, Projector<E> projector, Filter<?>... filter);
File Line
org\jadira\scanner\core\concurrent\AllocatorTask.java 10
org\jadira\scanner\core\concurrent\ProjectorTask.java 10
public class AllocatorTask<T,A> extends RecursiveTask<List<T>> {
	
	private static final long serialVersionUID = -5338937563634945167L;
	
	private final Allocator<T,A> allocator;
File Line
org\jadira\scanner\core\helper\JavassistAnnotationsHelper.java 42
org\jadira\scanner\core\helper\JavassistAnnotationsHelper.java 55
org\jadira\scanner\core\helper\JavassistAnnotationsHelper.java 68
org\jadira\scanner\core\helper\JavassistAnnotationsHelper.java 81
		AnnotationsAttribute invisible = (AnnotationsAttribute) classFile.getAttribute(AnnotationsAttribute.invisibleTag);

		Set<Annotation> retVal = new HashSet<Annotation>();

		retVal.addAll(findAnnotationsForAnnotationsAttribute(visible));
File Line
org\jadira\scanner\core\spi\AbstractResolver.java 99
org\jadira\scanner\core\spi\AbstractResolver.java 105
org\jadira\scanner\core\spi\AbstractResolver.java 145
	public T resolveFirst(Locator<A> locator, Projector<E> projector, Filter<?>... filters) {