sb.append( "\n" ); //$NON-NLS-1$
// Generating LDIF for Attributes Types
for ( AttributeType at : schema.getAttributeTypes() )
{
AttributeTypeHolder holder = new AttributeTypeHolder( at.getOid() );
holder.setCollective( at.isCollective() );
holder.setDescription( at.getDescription() );
holder.setEquality( at.getEqualityOid() );
List<String> names = new ArrayList<String>();
for ( String name : at.getNames() )
{
names.add( name );
}
holder.setNames( names );
holder.setNoUserModification( !at.isUserModifiable() );
holder.setObsolete( at.isObsolete() );
holder.setOrdering( at.getOrderingOid() );
holder.setSingleValue( at.isSingleValued() );
holder.setSubstr( at.getSubstringOid() );
holder.setSuperior( at.getSuperiorOid() );
holder.setSyntax( at.getSyntaxOid() );
if ( at.getSyntaxLength() > 0 )
{
holder.setOidLen( at.getSyntaxLength() );
}
holder.setUsage( at.getUsage() );
sb.append( holder.toLdif( schema.getSchemaName() ) + "\n" ); //$NON-NLS-1$
}
// Generation the Comparators Node
sb.append( "dn: " + SchemaConstants.COMPARATORS_PATH + ", cn=" + Rdn.escapeValue( schema.getSchemaName() ) + ", ou=schema\n" ); //$NON-NLS-1$ //$NON-NLS-2$
sb.append( "objectclass: organizationalUnit\n" ); //$NON-NLS-1$
sb.append( "objectclass: top\n" ); //$NON-NLS-1$
sb.append( "ou: comparators\n" ); //$NON-NLS-1$
sb.append( "\n" ); //$NON-NLS-1$
// Generation the DIT Content Rules Node
sb.append( "dn: " + SchemaConstants.DIT_CONTENT_RULES_PATH + ", cn=" + Rdn.escapeValue( schema.getSchemaName() ) + ", ou=schema\n" ); //$NON-NLS-1$ //$NON-NLS-2$
sb.append( "objectclass: organizationalUnit\n" ); //$NON-NLS-1$
sb.append( "objectclass: top\n" ); //$NON-NLS-1$
sb.append( "ou: ditcontentrules\n" ); //$NON-NLS-1$
sb.append( "\n" ); //$NON-NLS-1$
// Generation the DIT Structure RulesNode
sb.append( "dn: " + SchemaConstants.DIT_STRUCTURE_RULES_PATH + ", cn=" + Rdn.escapeValue( schema.getSchemaName() ) + ", ou=schema\n" ); //$NON-NLS-1$ //$NON-NLS-2$
sb.append( "objectclass: organizationalUnit\n" ); //$NON-NLS-1$
sb.append( "objectclass: top\n" ); //$NON-NLS-1$
sb.append( "ou: ditstructurerules\n" ); //$NON-NLS-1$
sb.append( "\n" ); //$NON-NLS-1$
// Generation the Matching Rules Node
sb.append( "dn: " + SchemaConstants.MATCHING_RULES_PATH + ", cn=" + Rdn.escapeValue( schema.getSchemaName() ) + ", ou=schema\n" ); //$NON-NLS-1$ //$NON-NLS-2$
sb.append( "objectclass: organizationalUnit\n" ); //$NON-NLS-1$
sb.append( "objectclass: top\n" ); //$NON-NLS-1$
sb.append( "ou: matchingrules\n" ); //$NON-NLS-1$
sb.append( "\n" ); //$NON-NLS-1$
// Generation the Matching Rule Use Node
sb.append( "dn: " + SchemaConstants.MATCHING_RULE_USE_PATH + ", cn=" + Rdn.escapeValue( schema.getSchemaName() ) + ", ou=schema\n" ); //$NON-NLS-1$ //$NON-NLS-2$
sb.append( "objectclass: organizationalUnit\n" ); //$NON-NLS-1$
sb.append( "objectclass: top\n" ); //$NON-NLS-1$
sb.append( "ou: matchingruleuse\n" ); //$NON-NLS-1$
sb.append( "\n" ); //$NON-NLS-1$
// Generation the Name Forms Node
sb.append( "dn: " + SchemaConstants.NAME_FORMS_PATH + ", cn=" + Rdn.escapeValue( schema.getSchemaName() ) + ", ou=schema\n" ); //$NON-NLS-1$ //$NON-NLS-2$
sb.append( "objectclass: organizationalUnit\n" ); //$NON-NLS-1$
sb.append( "objectclass: top\n" ); //$NON-NLS-1$
sb.append( "ou: nameforms\n" ); //$NON-NLS-1$
sb.append( "\n" ); //$NON-NLS-1$
// Generation the Normalizers Node
sb.append( "dn: " + SchemaConstants.NORMALIZERS_PATH + ", cn=" + Rdn.escapeValue( schema.getSchemaName() ) + ", ou=schema\n" ); //$NON-NLS-1$ //$NON-NLS-2$
sb.append( "objectclass: organizationalUnit\n" ); //$NON-NLS-1$
sb.append( "objectclass: top\n" ); //$NON-NLS-1$
sb.append( "ou: normalizers\n" ); //$NON-NLS-1$
sb.append( "\n" ); //$NON-NLS-1$
// Generation the Object Classes Node
sb.append( "dn: " + SchemaConstants.OBJECT_CLASSES_PATH + ", cn=" + Rdn.escapeValue( schema.getSchemaName() ) + ", ou=schema\n" ); //$NON-NLS-1$ //$NON-NLS-2$
sb.append( "objectclass: organizationalUnit\n" ); //$NON-NLS-1$
sb.append( "objectclass: top\n" ); //$NON-NLS-1$
sb.append( "ou: objectClasses\n" ); //$NON-NLS-1$
sb.append( "\n" ); //$NON-NLS-1$
// Generating LDIF for Object Classes
List<MutableObjectClass> sortedObjectClasses = getSortedObjectClasses( schema.getObjectClasses() );
for ( ObjectClass oc : sortedObjectClasses )
{
ObjectClassHolder holder = new ObjectClassHolder( oc.getOid() );
holder.setClassType( oc.getType() );
holder.setDescription( oc.getDescription() );
List<String> mayList = new ArrayList<String>();
for ( String may : oc.getMayAttributeTypeOids() )
{
mayList.add( may );
}
holder.setMay( mayList );
List<String> mustList = new ArrayList<String>();
for ( String must : oc.getMustAttributeTypeOids() )
{
mustList.add( must );
}
holder.setMust( mustList );
List<String> names = new ArrayList<String>();
for ( String name : oc.getNames() )
{
names.add( name );
}
holder.setNames( names );
List<String> superiorList = new ArrayList<String>();
for ( String superior : oc.getSuperiorOids() )
{
superiorList.add( superior );
}
holder.setSuperiors( superiorList );
holder.setObsolete( oc.isObsolete() );
sb.append( holder.toLdif( schema.getSchemaName() ) + "\n" ); //$NON-NLS-1$
}
// Generation the Syntax Checkers Node
sb.append( "dn: " + SchemaConstants.SYNTAX_CHECKERS_PATH + ", cn=" + Rdn.escapeValue( schema.getSchemaName() ) + ", ou=schema\n" ); //$NON-NLS-1$ //$NON-NLS-2$
sb.append( "objectclass: organizationalUnit\n" ); //$NON-NLS-1$