/** * Check if a syntax is used by an AT or a MR */ private List<SchemaObject> checkInUse( String oid ) { List<SchemaObject> dependees = new ArrayList<>(); for ( AttributeType attributeType : schemaManager.getAttributeTypeRegistry() ) { if ( oid.equals( attributeType.getSyntax().getOid() ) ) { dependees.add( attributeType ); } } for ( MatchingRule matchingRule : schemaManager.getMatchingRuleRegistry() ) { if ( oid.equals( matchingRule.getSyntax().getOid() ) ) { dependees.add( matchingRule ); } } return dependees; }
private static Attribute generateMatchingRules( SchemaManager schemaManager ) throws LdapException { Attribute attr = new DefaultAttribute( schemaManager.getAttributeType( SchemaConstants.MATCHING_RULES_AT ) ); for ( MatchingRule matchingRule : schemaManager.getMatchingRuleRegistry() ) { attr.add( SchemaObjectRenderer.SUBSCHEMA_SUBENTRY_RENDERER.render( matchingRule ) ); } return attr; }
/** * {@inheritDoc} */ @Override public void move( Dn oriChildName, Dn newParentName, Entry entry, boolean cascade ) throws LdapException { checkNewParent( newParentName ); String oid = getOid( entry ); if ( schemaManager.getMatchingRuleRegistry().contains( oid ) ) { throw new LdapUnwillingToPerformException( ResultCodeEnum.UNWILLING_TO_PERFORM, I18n.err( I18n.ERR_354, oid ) ); } String newSchemaName = getSchemaName( newParentName ); LdapComparator<?> comparator = factory.getLdapComparator( schemaManager, entry, schemaManager.getRegistries(), newSchemaName ); String oldSchemaName = getSchemaName( oriChildName ); if ( isSchemaEnabled( oldSchemaName ) ) { schemaManager.unregisterComparator( oid ); } if ( isSchemaEnabled( newSchemaName ) ) { schemaManager.add( comparator ); } }
/** * {@inheritDoc} */ @Override public void move( Dn oriChildName, Dn newParentName, Entry entry, boolean cascade ) throws LdapException { checkNewParent( newParentName ); String oid = getOid( entry ); String oldSchemaName = getSchemaName( oriChildName ); String newSchemaName = getSchemaName( newParentName ); if ( schemaManager.getMatchingRuleRegistry().contains( oid ) ) { throw new LdapUnwillingToPerformException( ResultCodeEnum.UNWILLING_TO_PERFORM, I18n.err( I18n.ERR_368, oid ) ); } Normalizer normalizer = factory.getNormalizer( schemaManager, entry, schemaManager.getRegistries(), newSchemaName ); if ( isSchemaEnabled( oldSchemaName ) ) { schemaManager.unregisterNormalizer( oid ); } if ( isSchemaEnabled( newSchemaName ) ) { schemaManager.add( normalizer ); } }
/** * {@inheritDoc} */ @Override public void moveAndRename( Dn oriChildName, Dn newParentName, Rdn newRdn, boolean deleteOldRn, Entry entry, boolean cascade ) throws LdapException { checkNewParent( newParentName ); String oldOid = getOid( entry ); if ( schemaManager.getMatchingRuleRegistry().contains( oldOid ) ) { throw new LdapUnwillingToPerformException( ResultCodeEnum.UNWILLING_TO_PERFORM, I18n.err( I18n.ERR_353, oldOid ) ); } String oid = newRdn.getValue(); checkOidIsUniqueForComparator( oid ); String newSchemaName = getSchemaName( newParentName ); LdapComparator<?> comparator = factory.getLdapComparator( schemaManager, entry, schemaManager.getRegistries(), newSchemaName ); String oldSchemaName = getSchemaName( oriChildName ); if ( isSchemaEnabled( oldSchemaName ) ) { schemaManager.unregisterComparator( oldOid ); } if ( isSchemaEnabled( newSchemaName ) ) { schemaManager.add( comparator ); } }
/** * {@inheritDoc} */ @Override public void moveAndRename( Dn oriChildName, Dn newParentName, Rdn newRdn, boolean deleteOldRn, Entry entry, boolean cascade ) throws LdapException { checkNewParent( newParentName ); String oldOid = getOid( entry ); String oldSchemaName = getSchemaName( oriChildName ); String newSchemaName = getSchemaName( newParentName ); if ( schemaManager.getMatchingRuleRegistry().contains( oldOid ) ) { throw new LdapUnwillingToPerformException( ResultCodeEnum.UNWILLING_TO_PERFORM, I18n.err( I18n.ERR_367, oldOid ) ); } String oid = newRdn.getValue(); checkOidIsUniqueForNormalizer( oid ); Normalizer normalizer = factory.getNormalizer( schemaManager, entry, schemaManager.getRegistries(), newSchemaName ); if ( isSchemaEnabled( oldSchemaName ) ) { schemaManager.unregisterNormalizer( oldOid ); } if ( isSchemaEnabled( newSchemaName ) ) { schemaManager.add( normalizer ); } }
&& !schemaManager.getMatchingRuleRegistry().contains( attributeType.getEqualityOid() ) ) && !schemaManager.getMatchingRuleRegistry().contains( attributeType.getOrderingOid() ) ) && !schemaManager.getMatchingRuleRegistry().contains( attributeType.getSubstringOid() ) )
/** * {@inheritDoc} */ @Override public void rename( Entry entry, Rdn newRdn, boolean cascade ) throws LdapException { String oldOid = getOid( entry ); String schemaName = getSchemaName( entry.getDn() ); if ( schemaManager.getMatchingRuleRegistry().contains( oldOid ) ) { throw new LdapUnwillingToPerformException( ResultCodeEnum.UNWILLING_TO_PERFORM, I18n.err( I18n.ERR_367, oldOid ) ); } String newOid = newRdn.getValue(); checkOidIsUniqueForNormalizer( newOid ); if ( isSchemaEnabled( schemaName ) ) { // Inject the new OID Entry targetEntry = entry.clone(); targetEntry.put( MetaSchemaConstants.M_OID_AT, newOid ); // Inject the new Dn Dn newDn = targetEntry.getDn().getParent(); newDn = newDn.add( newRdn ); targetEntry.setDn( newDn ); Normalizer normalizer = factory.getNormalizer( schemaManager, targetEntry, schemaManager.getRegistries(), schemaName ); schemaManager.unregisterNormalizer( oldOid ); schemaManager.add( normalizer ); } }
if ( schemaManager.getMatchingRuleRegistry().contains( oldOid ) )