setRelaxed(); register( schemaObject ); associateWithSchema( schemaObject ); buildReference( schemaObject ); checkRefInteg(); setStrict();
/** * {@inheritDoc} */ @Override public Map<String, OidNormalizer> getNormalizerMapping() { return registries.getAttributeTypeRegistry().getNormalizerMapping(); }
/** * {@inheritDoc} */ @Override public SchemaObject unregisterObjectClass( String objectClassOid ) throws LdapException { return registries.getObjectClassRegistry().unregister( objectClassOid ); }
/** * {@inheritDoc} */ @Override public boolean loadWithDepsRelaxed( Schema... schemas ) throws LdapException { registries.setRelaxed(); // Load the schemas for ( Schema schema : schemas ) { loadDepsFirstRelaxed( schema ); } // Build the cross references registries.buildReferences(); // Check the registries now registries.checkRefInteg(); return true; }
/** * Remove the given SchemaObject from the registries * * @param schemaObject The SchemaObject to delete * @throws LdapException If the deletion failed */ public void delete( SchemaObject schemaObject ) throws LdapException { // Relax the registries boolean wasRelaxed = isRelaxed; setRelaxed(); // Remove the SchemaObject from the registries SchemaObject removed = unregister( schemaObject ); // Remove the SchemaObject from its schema dissociateFromSchema( removed ); // Unlink the SchemaObject references removeReference( removed ); if ( !errorHandler.wasError() ) { // Check the registries now checkRefInteg(); } // Restore the previous registries state if ( !wasRelaxed ) { setStrict(); } }
clonedRegistries.setRelaxed(); clonedRegistries.buildReferences(); clonedRegistries.checkRefInteg(); registries.setStrict(); loaded = true; clonedRegistries.clear(); registries.setRelaxed(); loaded = true;
if ( registries.isRelaxed() ) registries.delete( schemaObject ); Set<SchemaObjectWrapper> referencing = registries.getReferencing( toDelete ); clonedRegistries = registries.clone(); clonedRegistries.delete( toDelete ); clonedRegistries.clear(); registries.delete( toDelete ); registries.associateWithSchema( schemaObject );
/** * Check that the given OID exists in the globalOidRegistry. * * @param schemaObject The SchemaObject to check * @return <tt>true</tt> if the OID exists */ private boolean checkOidExist( SchemaObject schemaObject ) { if ( !( schemaObject instanceof LoadableSchemaObject ) ) { return registries.getGlobalOidRegistry().contains( schemaObject.getOid() ); } if ( schemaObject instanceof LdapComparator<?> ) { return registries.getComparatorRegistry().contains( schemaObject.getOid() ); } if ( schemaObject instanceof SyntaxChecker ) { return registries.getSyntaxCheckerRegistry().contains( schemaObject.getOid() ); } if ( schemaObject instanceof Normalizer ) { return registries.getNormalizerRegistry().contains( schemaObject.getOid() ); } return false; }
ldapComparator = registries.getComparatorRegistry().lookup( matchingRule.getOid() ); normalizer = registries.getNormalizerRegistry().lookup( matchingRule.getOid() ); ldapSyntax = registries.getLdapSyntaxRegistry().lookup( matchingRule.getSyntaxOid() ); registries.addReference( matchingRule, ldapComparator ); matchingRule.setLdapComparator( ldapComparator ); registries.addReference( matchingRule, normalizer ); matchingRule.setNormalizer( normalizer ); registries.addReference( matchingRule, ldapSyntax ); matchingRule.setSyntax( ldapSyntax );
/** * Clone the registries before doing any modification on it. Relax it * too so that we can update it. * * @return The cloned Registries * @throws LdapException If the Registries cannot be cloned */ private Registries cloneRegistries() throws LdapException { try { // Relax the controls at first // Clone the Registries Registries clonedRegistries = registries.clone(); // And update references. We may have errors, that may be fixed // by the new loaded schemas. clonedRegistries.checkRefInteg(); // Now, relax the cloned Registries if there is no error clonedRegistries.setRelaxed(); return clonedRegistries; } catch ( CloneNotSupportedException cnse ) { throw new LdapOtherException( cnse.getMessage(), cnse ); } }
AttributeTypeRegistry atRegistry = registries.getAttributeTypeRegistry(); ObjectClass structuralObjectClass = registries.getObjectClassRegistry().lookup( nameForm.getStructuralObjectClassOid() ); nameForm.setStructuralObjectClass( structuralObjectClass );
registries.buildReference( atType ); registries.getAttributeTypeRegistry().register( atType ); registries.buildReference( oc ); registries.getObjectClassRegistry().register( oc );
/** * Build the Comparator references */ private void buildComparatorReferences() { for ( LdapComparator<?> comparator : comparatorRegistry ) { buildReference( comparator ); } }
/** * {@inheritDoc} */ @Override public SchemaObject unregisterLdapSyntax( String ldapSyntaxOid ) throws LdapException { return registries.getLdapSyntaxRegistry().unregister( ldapSyntaxOid ); }
/** * {@inheritDoc} */ @Override public SchemaObject unregisterComparator( String comparatorOid ) throws LdapException { return registries.getComparatorRegistry().unregister( comparatorOid ); }
clonedRegistries.clear(); return false; clonedRegistries.checkRefInteg(); clonedRegistries.clear(); return false; clonedRegistries.clear(); return false; clonedRegistries.clear();
Set<SchemaObjectWrapper> schemaObjects = schemaManager.getRegistries().getObjectBySchemaName() .get( schemaName ); schemaObjects = schemaManager.getRegistries().addSchema( schemaName );
if ( schemaManager.getRegistries().contains( comparator ) ) schemaManager.getRegistries().dissociateFromSchema( comparator );
private void addSchemaObjects( Schema schema, Registries registries ) throws LdapException { // Create a content container for this schema registries.addSchema( schema.getSchemaName() ); schemaMap.put( schema.getSchemaName(), schema ); // And inject any existing SchemaObject into the registries try { addComparators( schema, registries ); addNormalizers( schema, registries ); addSyntaxCheckers( schema, registries ); addSyntaxes( schema, registries ); addMatchingRules( schema, registries ); addAttributeTypes( schema, registries ); addObjectClasses( schema, registries ); //addMatchingRuleUses( schema, registries ); //addDitContentRules( schema, registries ); //addNameForms( schema, registries ); //addDitStructureRules( schema, registries ); } catch ( IOException ioe ) { throw new LdapOtherException( ioe.getMessage(), ioe ); } }