if( configurationObject == null || rootNode == null ) {
throw new IllegalArgumentException( "null parameters received" );
}
if( metadata == null ) {
Configuration configuration = configurationObject.getClass().getAnnotation( Configuration.class );
validateConfiguration( configuration );
metadata = MetadataFactory.generateMetadata( configurationObject, configuration );
}