| | |
| | | */ |
| | | private LinkedHashMap<AttributeType, SearchFilter> attrFiltMap = new LinkedHashMap<>(); |
| | | |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public final void initializePlugin(Set<PluginType> pluginTypes, |
| | | ReferentialIntegrityPluginCfg pluginCfg) |
| | |
| | | |
| | | applyConfigurationChange(pluginCfg); |
| | | |
| | | // Set up log file. Note: it is not allowed to change once the plugin is |
| | | // active. |
| | | // Set up log file. Note: it is not allowed to change once the plugin is active. |
| | | setUpLogFile(pluginCfg.getLogFile()); |
| | | interval=pluginCfg.getUpdateInterval(); |
| | | |
| | |
| | | |
| | | |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public ConfigChangeResult applyConfigurationChange( |
| | | ReferentialIntegrityPluginCfg newConfiguration) |
| | |
| | | new LinkedHashSet<>(newConfiguration.getAttributeType()); |
| | | |
| | | // Load the attribute-filter mapping |
| | | |
| | | LinkedHashMap<AttributeType, SearchFilter> newAttrFiltMap = new LinkedHashMap<>(); |
| | | |
| | | for (String attrFilt : newConfiguration.getCheckReferencesFilterCriteria()) |
| | |
| | | String attr = attrFilt.substring(0, sepInd); |
| | | String filtStr = attrFilt.substring(sepInd + 1); |
| | | |
| | | AttributeType attrType = DirectoryServer.getAttributeTypeOrNull(attr); |
| | | AttributeType attrType = DirectoryServer.getAttributeType(attr); |
| | | try |
| | | { |
| | | SearchFilter filter = SearchFilter.createFilterFromString(filtStr); |
| | | newAttrFiltMap.put(attrType, filter); |
| | | newAttrFiltMap.put(attrType, SearchFilter.createFilterFromString(filtStr)); |
| | | } |
| | | catch (DirectoryException de) |
| | | catch (DirectoryException unexpected) |
| | | { |
| | | /* This should never happen because the filter has already |
| | | * been verified. |
| | | */ |
| | | logger.error(de.getMessageObject()); |
| | | // This should never happen because the filter has already been verified. |
| | | logger.error(unexpected.getMessageObject()); |
| | | } |
| | | } |
| | | |
| | |
| | | return ccr; |
| | | } |
| | | |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public boolean isConfigurationAcceptable(PluginCfg configuration, |
| | | List<LocalizableMessage> unacceptableReasons) |
| | |
| | | return isAcceptable; |
| | | } |
| | | |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public boolean isConfigurationChangeAcceptable( |
| | | ReferentialIntegrityPluginCfg configuration, |
| | |
| | | return isConfigurationAcceptable(configuration, unacceptableReasons); |
| | | } |
| | | |
| | | |
| | | /** {@inheritDoc} */ |
| | | @SuppressWarnings("unchecked") |
| | | @Override |
| | | public PluginResult.PostOperation |
| | |
| | | return PluginResult.PostOperation.continueOperationProcessing(); |
| | | } |
| | | |
| | | |
| | | |
| | | /** {@inheritDoc} */ |
| | | @SuppressWarnings("unchecked") |
| | | @Override |
| | | public PluginResult.PostOperation doPostOperation( |
| | |
| | | return PluginResult.PostOperation.continueOperationProcessing(); |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @SuppressWarnings("unchecked") |
| | | @Override |
| | | public PluginResult.SubordinateModifyDN processSubordinateModifyDN( |
| | |
| | | return PluginResult.SubordinateModifyDN.continueOperationProcessing(); |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @SuppressWarnings("unchecked") |
| | | @Override |
| | | public PluginResult.SubordinateDelete processSubordinateDelete( |
| | |
| | | return name; |
| | | } |
| | | |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public final void finalizePlugin() { |
| | | currentConfiguration.removeReferentialIntegrityChangeListener(this); |
| | |
| | | } |
| | | } |
| | | |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public PluginResult.PreOperation doPreOperation( |
| | | PreOperationModifyOperation modifyOperation) |