| | |
| | | import java.util.regex.Matcher; |
| | | import java.util.regex.Pattern; |
| | | |
| | | import org.opends.messages.Message; |
| | | import org.forgerock.i18n.LocalizableMessage; |
| | | import org.opends.server.types.AttributeType; |
| | | import org.opends.server.types.DN; |
| | | import org.opends.server.types.SearchScope; |
| | |
| | | while (targetMatcher.find()) |
| | | { |
| | | if (targetMatcher.groupCount() != targetElementCount) { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | WARN_ACI_SYNTAX_INVALID_TARGET_SYNTAX.get(input); |
| | | throw new AciException(message); |
| | | } |
| | |
| | | EnumTargetKeyword targetKeyword = |
| | | EnumTargetKeyword.createKeyword(keyword); |
| | | if (targetKeyword == null) { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | WARN_ACI_SYNTAX_INVALID_TARGET_KEYWORD.get(keyword); |
| | | throw new AciException(message); |
| | | } |
| | |
| | | EnumTargetOperator targetOperator = |
| | | EnumTargetOperator.createOperator(operator); |
| | | if (targetOperator == null) { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | WARN_ACI_SYNTAX_INVALID_TARGETS_OPERATOR.get(operator); |
| | | throw new AciException(message); |
| | | } |
| | |
| | | } |
| | | else |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | WARN_ACI_SYNTAX_INVALID_TARGET_DUPLICATE_KEYWORDS. |
| | | get("target", input); |
| | | throw new AciException(message); |
| | |
| | | } |
| | | else |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | WARN_ACI_SYNTAX_INVALID_TARGET_DUPLICATE_KEYWORDS. |
| | | get("targetcontrol", input); |
| | | throw new AciException(message); |
| | |
| | | } |
| | | else |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | WARN_ACI_SYNTAX_INVALID_TARGET_DUPLICATE_KEYWORDS. |
| | | get("extop", input); |
| | | throw new AciException(message); |
| | |
| | | expression); |
| | | } |
| | | else { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | WARN_ACI_SYNTAX_INVALID_TARGET_DUPLICATE_KEYWORDS. |
| | | get("targetattr", input); |
| | | throw new AciException(message); |
| | |
| | | { |
| | | // Check the operator for the targetscope is EQUALITY |
| | | if (targetOperator == EnumTargetOperator.NOT_EQUALITY) { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | WARN_ACI_SYNTAX_INVALID_TARGET_NOT_OPERATOR. |
| | | get(operator, targetKeyword.name()); |
| | | throw new AciException(message); |
| | |
| | | expression); |
| | | } |
| | | else { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | WARN_ACI_SYNTAX_INVALID_TARGET_DUPLICATE_KEYWORDS. |
| | | get("targetfilter", input); |
| | | throw new AciException(message); |
| | |
| | | if (targAttrFilters == null){ |
| | | // Check the operator for the targattrfilters is EQUALITY |
| | | if (targetOperator == EnumTargetOperator.NOT_EQUALITY) { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | WARN_ACI_SYNTAX_INVALID_TARGET_NOT_OPERATOR. |
| | | get(operator, targetKeyword.name()); |
| | | throw new AciException(message); |
| | |
| | | expression); |
| | | } |
| | | else { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | WARN_ACI_SYNTAX_INVALID_TARGET_DUPLICATE_KEYWORDS. |
| | | get("targattrfilters", input); |
| | | throw new AciException(message); |
| | |
| | | else if(expression.equalsIgnoreCase("subordinate")) |
| | | return SearchScope.SUBORDINATE_SUBTREE; |
| | | else { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | WARN_ACI_SYNTAX_INVALID_TARGETSCOPE_EXPRESSION.get(expression); |
| | | throw new AciException(message); |
| | | } |