| | |
| | | import org.opends.server.types.SearchResultEntry; |
| | | import org.opends.server.types.SearchScope; |
| | | |
| | | import static org.opends.server.messages.ExtensionsMessages.*; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | import static org.opends.messages.ExtensionMessages.*; |
| | | import org.opends.messages.Message; |
| | | import static org.opends.server.util.StaticUtils.*; |
| | | |
| | | |
| | |
| | | { |
| | | matchPattern = Pattern.compile(currentConfig.getMatchPattern()); |
| | | } |
| | | catch (PatternSyntaxException pse) |
| | | { |
| | | int msgID = MSGID_REGEXMAP_INVALID_MATCH_PATTERN; |
| | | String message = getMessage(msgID, currentConfig.getMatchPattern(), |
| | | pse.getMessage()); |
| | | throw new ConfigException(msgID, message, pse); |
| | | catch (PatternSyntaxException pse) { |
| | | Message message = ERR_REGEXMAP_INVALID_MATCH_PATTERN.get( |
| | | currentConfig.getMatchPattern(), |
| | | pse.getMessage()); |
| | | throw new ConfigException(message, pse); |
| | | } |
| | | |
| | | replacePattern = currentConfig.getReplacePattern(); |
| | |
| | | false); |
| | | if (type == null) |
| | | { |
| | | int msgID = MSGID_REGEXMAP_UNKNOWN_ATTR; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN), |
| | | name); |
| | | throw new ConfigException(msgID, message); |
| | | Message message = ERR_REGEXMAP_UNKNOWN_ATTR.get( |
| | | String.valueOf(configEntryDN), name); |
| | | throw new ConfigException(message); |
| | | } |
| | | |
| | | attributeTypes[i++] = type; |
| | |
| | | |
| | | case SIZE_LIMIT_EXCEEDED: |
| | | // Multiple entries matched the filter. This is not acceptable. |
| | | int msgID = MSGID_REGEXMAP_MULTIPLE_MATCHING_ENTRIES; |
| | | String message = getMessage(msgID, String.valueOf(processedID)); |
| | | throw new DirectoryException(ResultCode.CONSTRAINT_VIOLATION, message, |
| | | msgID); |
| | | Message message = ERR_REGEXMAP_MULTIPLE_MATCHING_ENTRIES.get( |
| | | String.valueOf(processedID)); |
| | | throw new DirectoryException( |
| | | ResultCode.CONSTRAINT_VIOLATION, message); |
| | | |
| | | |
| | | case TIME_LIMIT_EXCEEDED: |
| | | case ADMIN_LIMIT_EXCEEDED: |
| | | // The search criteria was too inefficient. |
| | | msgID = MSGID_REGEXMAP_INEFFICIENT_SEARCH; |
| | | message = getMessage(msgID, String.valueOf(processedID), |
| | | message = ERR_REGEXMAP_INEFFICIENT_SEARCH.get( |
| | | String.valueOf(processedID), |
| | | String.valueOf(internalSearch.getErrorMessage())); |
| | | throw new DirectoryException(internalSearch.getResultCode(), message, |
| | | msgID); |
| | | throw new DirectoryException(internalSearch.getResultCode(), message); |
| | | |
| | | default: |
| | | // Just pass on the failure that was returned for this search. |
| | | msgID = MSGID_REGEXMAP_SEARCH_FAILED; |
| | | message = getMessage(msgID, String.valueOf(processedID), |
| | | message = ERR_REGEXMAP_SEARCH_FAILED.get( |
| | | String.valueOf(processedID), |
| | | String.valueOf(internalSearch.getErrorMessage())); |
| | | throw new DirectoryException(internalSearch.getResultCode(), message, |
| | | msgID); |
| | | throw new DirectoryException(internalSearch.getResultCode(), message); |
| | | } |
| | | |
| | | LinkedList<SearchResultEntry> searchEntries = |
| | |
| | | matchingEntry = iterator.next(); |
| | | if (iterator.hasNext()) |
| | | { |
| | | int msgID = MSGID_REGEXMAP_MULTIPLE_MATCHING_ENTRIES; |
| | | String message = getMessage(msgID, String.valueOf(processedID)); |
| | | Message message = ERR_REGEXMAP_MULTIPLE_MATCHING_ENTRIES.get( |
| | | String.valueOf(processedID)); |
| | | throw new DirectoryException(ResultCode.CONSTRAINT_VIOLATION, |
| | | message, msgID); |
| | | message); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | int msgID = MSGID_REGEXMAP_MULTIPLE_MATCHING_ENTRIES; |
| | | String message = getMessage(msgID, String.valueOf(processedID)); |
| | | throw new DirectoryException(ResultCode.CONSTRAINT_VIOLATION, message, |
| | | msgID); |
| | | Message message = ERR_REGEXMAP_MULTIPLE_MATCHING_ENTRIES.get( |
| | | String.valueOf(processedID)); |
| | | throw new DirectoryException( |
| | | ResultCode.CONSTRAINT_VIOLATION, message); |
| | | } |
| | | } |
| | | } |
| | |
| | | */ |
| | | @Override() |
| | | public boolean isConfigurationAcceptable(IdentityMapperCfg configuration, |
| | | List<String> unacceptableReasons) |
| | | List<Message> unacceptableReasons) |
| | | { |
| | | RegularExpressionIdentityMapperCfg config = |
| | | (RegularExpressionIdentityMapperCfg) configuration; |
| | |
| | | */ |
| | | public boolean isConfigurationChangeAcceptable( |
| | | RegularExpressionIdentityMapperCfg configuration, |
| | | List<String> unacceptableReasons) |
| | | List<Message> unacceptableReasons) |
| | | { |
| | | boolean configAcceptable = true; |
| | | |
| | |
| | | } |
| | | catch (PatternSyntaxException pse) |
| | | { |
| | | int msgID = MSGID_REGEXMAP_INVALID_MATCH_PATTERN; |
| | | String message = getMessage(msgID, configuration.getMatchPattern(), |
| | | Message message = ERR_REGEXMAP_INVALID_MATCH_PATTERN.get( |
| | | configuration.getMatchPattern(), |
| | | pse.getMessage()); |
| | | unacceptableReasons.add(message); |
| | | configAcceptable = false; |
| | |
| | | false); |
| | | if (t == null) |
| | | { |
| | | int msgID = MSGID_REGEXMAP_UNKNOWN_ATTR; |
| | | unacceptableReasons.add(getMessage(msgID, configuration.dn(), name)); |
| | | Message message = ERR_REGEXMAP_UNKNOWN_ATTR.get( |
| | | String.valueOf(configuration.dn()), name); |
| | | unacceptableReasons.add(message); |
| | | configAcceptable = false; |
| | | } |
| | | } |
| | |
| | | public ConfigChangeResult applyConfigurationChange( |
| | | RegularExpressionIdentityMapperCfg configuration) |
| | | { |
| | | ResultCode resultCode = ResultCode.SUCCESS; |
| | | boolean adminActionRequired = false; |
| | | ArrayList<String> messages = new ArrayList<String>(); |
| | | ResultCode resultCode = ResultCode.SUCCESS; |
| | | boolean adminActionRequired = false; |
| | | ArrayList<Message> messages = new ArrayList<Message>(); |
| | | |
| | | |
| | | Pattern newMatchPattern = null; |
| | |
| | | } |
| | | catch (PatternSyntaxException pse) |
| | | { |
| | | int msgID = MSGID_REGEXMAP_INVALID_MATCH_PATTERN; |
| | | String message = getMessage(msgID, configuration.getMatchPattern(), |
| | | Message message = ERR_REGEXMAP_INVALID_MATCH_PATTERN.get( |
| | | configuration.getMatchPattern(), |
| | | pse.getMessage()); |
| | | messages.add(message); |
| | | resultCode = ResultCode.CONSTRAINT_VIOLATION; |
| | |
| | | resultCode = ResultCode.NO_SUCH_ATTRIBUTE; |
| | | } |
| | | |
| | | int msgID = MSGID_REGEXMAP_UNKNOWN_ATTR; |
| | | messages.add(getMessage(msgID, String.valueOf(configEntryDN), name)); |
| | | Message message = ERR_REGEXMAP_UNKNOWN_ATTR.get( |
| | | String.valueOf(configEntryDN), name); |
| | | messages.add(message); |
| | | } |
| | | |
| | | newAttributeTypes[i++] = type; |