blob: 730249398b56453d39d5364f3341359ecb947d6e [file] [log] [blame]
package org.codehaus.modello.test.model.io.registry;
import org.apache.archiva.redback.components.registry.Registry;
// Util imports
import java.util.*;
// Model class imports
import org.codehaus.modello.test.model.Model;
import org.codehaus.modello.test.model.Reference;
import org.codehaus.modello.test.model.EmptyReference;
/**
* Generate Plexus Registry output mechanism for model 'Model'.
*/
public class ModelRegistryWriter
{
public void write( Model model, Registry registry )
{
writeModel( "", model, registry );
}
private void writeModel( String prefix, Model value, Registry registry )
{
if ( value != null )
{
if ( value.getName() != null
)
{
String name = "name";
registry.setString( prefix + name, value.getName() );
}
if ( value.getRepository() != null
)
{
String name = "repository";
registry.setString( prefix + name, value.getRepository() );
}
if ( value.getNumeric() != 0
)
{
String name = "numeric";
registry.setInt( prefix + name, value.getNumeric() );
}
if ( value.getDefString() != null && !value.getDefString().equals( "def" )
)
{
String name = "defString";
registry.setString( prefix + name, value.getDefString() );
}
if ( value.getDefNumeric() != 8080
)
{
String name = "defNumeric";
registry.setInt( prefix + name, value.getDefNumeric() );
}
if ( value.isDefBoolean() != true
)
{
String name = "defBoolean";
registry.setBoolean( prefix + name, value.isDefBoolean() );
}
if ( value.getReference() != null
)
{
writeReference( prefix + "reference.", value.getReference(), registry );
}
if ( value.getMissingReference() != null
)
{
writeReference( prefix + "missingReference.", value.getMissingReference(), registry );
}
if ( value.getEmptyReference() != null
)
{
writeEmptyReference( prefix + "emptyReference.", value.getEmptyReference(), registry );
}
if ( value.getListReferences() != null && value.getListReferences().size() > 0
)
{
registry.removeSubset( prefix + "listReferences" );
int count = 0;
for ( Iterator iter = value.getListReferences().iterator(); iter.hasNext(); count++ )
{
String name = "listReferences.listReference(" + count + ")";
Reference o = ( Reference ) iter.next();
writeReference( prefix + name + ".", o, registry );
}
}
if ( value.getSetReferences() != null && value.getSetReferences().size() > 0
)
{
registry.removeSubset( prefix + "setReferences" );
int count = 0;
for ( Iterator iter = value.getSetReferences().iterator(); iter.hasNext(); count++ )
{
String name = "setReferences.setReference(" + count + ")";
Reference o = ( Reference ) iter.next();
writeReference( prefix + name + ".", o, registry );
}
}
if ( value.getStringReferences() != null && value.getStringReferences().size() > 0
)
{
registry.removeSubset( prefix + "stringReferences" );
int count = 0;
for ( Iterator iter = value.getStringReferences().iterator(); iter.hasNext(); count++ )
{
String name = "stringReferences.stringReference(" + count + ")";
String stringReference = ( String ) iter.next();
registry.setString( prefix + name, stringReference );
}
}
if ( value.getMap() != null && value.getMap().size() > 0
)
{
registry.removeSubset( prefix + "map" );
for ( Iterator iter = value.getMap().keySet().iterator(); iter.hasNext(); )
{
String key = (String) iter.next();
String v = (String) value.getMap().get( key );
registry.setString( prefix + "map." + key, v );
}
}
if ( value.getProperties() != null && value.getProperties().size() > 0
)
{
registry.removeSubset( prefix + "properties" );
for ( Iterator iter = value.getProperties().keySet().iterator(); iter.hasNext(); )
{
String key = (String) iter.next();
String v = (String) value.getProperties().get( key );
registry.setString( prefix + "properties." + key, v );
}
}
}
}
private void writeReference( String prefix, Reference value, Registry registry )
{
if ( value != null )
{
if ( value.getName() != null
)
{
String name = "name";
registry.setString( prefix + name, value.getName() );
}
}
}
private void writeEmptyReference( String prefix, EmptyReference value, Registry registry )
{
if ( value != null )
{
}
}
}