private Set<Class<?>> getClasses(XML xml){
		HashSet<Class<?>> result = new HashSet<Class<?>>();
		
		// in case of override only the last global configuration must be analyzed
		Global global = null;
		
		for (Class<?> clazz : getAllsuperClasses(configuredClass)) {
			// only if global configuration is null will be searched global configuration on super classes
			if(isNull(global)){
				  
				global = xml.loadGlobals().get(clazz.getName());
				if(!isNull(global)){
					addClasses(global.getClasses(),result);
					if(global.getExcluded()!=null)
						for (Attribute attribute : xml.loadAttributes().get(clazz.getName()))
							for (String fieldName : global.getExcluded())
								if(attribute.getName().equals(fieldName))
									addClasses(attribute.getClasses(),result,attribute.getName());
				}
			}
			
			List<Attribute> attributes = xml.loadAttributes().get(clazz.getName());
			
			if(!isNull(attributes))
				for (Attribute attribute : attributes)
					if(    isNull(global) 
						|| isPresent(global.getExcluded(), attribute.getName())
					    || ( !isEmpty(global.getAttributes()) 
						     && !isPresent(global.getAttributes(), new SimplyAttribute(attribute.getName()))
						   )
					   )
					addClasses(attribute.getClasses(),result,attribute.getName());
		}
				
		return result;
	}
private Set < Class < ? > > getClasses ( XML xml ) { HashSet < Class < ? > > result = new HashSet < Class < ? > > ( ) ; Global global = null ; for ( Class < ? > clazz : getAllsuperClasses ( configuredClass ) ) { if ( isNull ( global ) ) { global = xml . loadGlobals ( ) . get ( clazz . getName ( ) ) ; if ( ! isNull ( global ) ) { addClasses ( global . getClasses ( ) , result ) ; if ( global . getExcluded ( ) != null ) for ( Attribute attribute : xml . loadAttributes ( ) . get ( clazz . getName ( ) ) ) for ( String fieldName : global . getExcluded ( ) ) if ( attribute . getName ( ) . equals ( fieldName ) ) addClasses ( attribute . getClasses ( ) , result , attribute . getName ( ) ) ; } } List < Attribute > attributes = xml . loadAttributes ( ) . get ( clazz . getName ( ) ) ; if ( ! isNull ( attributes ) ) for ( Attribute attribute : attributes ) if ( isNull ( global ) || isPresent ( global . getExcluded ( ) , attribute . getName ( ) ) || ( ! isEmpty ( global . getAttributes ( ) ) && ! isPresent ( global . getAttributes ( ) , new SimplyAttribute ( attribute . getName ( ) ) ) ) ) addClasses ( attribute . getClasses ( ) , result , attribute . getName ( ) ) ; } return result ; }
Returns all Target Classes contained in the XML.
@param xml xml to analyze
@return target classes