@Override public QName getName() { return nameMatchingRule.getName(); }
@Override public boolean isSupported(QName xsdType) { return nameMatchingRule.isSupported(xsdType); }
public boolean match(T realA, T realB) throws SchemaException { return matchingRule.match(realA, realB); }
<T> T getNormalizedAttributeValue(PrismPropertyValue<T> pval, RefinedAttributeDefinition rAttrDef) throws SchemaException { MatchingRule<T> matchingRule = matchingRuleRegistry.getMatchingRule(rAttrDef.getMatchingRuleQName(), rAttrDef.getTypeName()); if (matchingRule != null) { T normalizedRealValue = matchingRule.normalize(pval.getValue()); return normalizedRealValue; } else { return pval.getValue(); } }
@Test public void testPolyStringNorm() throws Exception { // GIVEN MatchingRule<PolyString> rule = matchingRuleRegistry.getMatchingRule(PrismConstants.POLY_STRING_NORM_MATCHING_RULE_NAME, PolyStringType.COMPLEX_TYPE); // WHEN, THEN assertMatch(rule, new PolyString("Bar", "bar"), new PolyString("Bar", "bar")); assertMatch(rule, new PolyString("BAR", "bar"), new PolyString("Foo", "bar")); assertMatch(rule, new PolyString("Bar", "bar"), new PolyString("bAR", "bar")); assertNoMatch(rule, new PolyString("Bar", "bar"), new PolyString("Bar", "barbar")); }
@Test public void testStringDefault() throws Exception { // GIVEN MatchingRule<String> rule = matchingRuleRegistry.getMatchingRule(null, DOMUtil.XSD_STRING); // WHEN, THEN assertMatch(rule, "foo", "foo"); assertNoMatch(rule, "foo", "bar"); assertNoMatch(rule, "foo", "Foo"); assertNoMatch(rule, "FOO", "Foo"); assertNormalized(rule, "Foo", "Foo"); assertNormalized(rule, "baR", "baR"); }
public static <T> ValueMatcher<T> createDefaultMatcher(QName type, MatchingRuleRegistry matchingRuleRegistry) throws SchemaException { MatchingRule<Object> matchingRule = matchingRuleRegistry.getMatchingRule(null, type); return new ValueMatcher<>((MatchingRule<T>) matchingRule); }
private <T> void normalizeValues(Collection<PrismPropertyValue<T>> values, MatchingRule<T> matchingRule) throws SchemaException { for (PrismPropertyValue<T> pval: values) { T normalizedRealValue = matchingRule.normalize(pval.getValue()); pval.setValue(normalizedRealValue); } }
public boolean matches(T realValue, String regex) throws SchemaException{ return matchingRule.matchRegex(realValue, regex); }
private <T> void normalizeAttribute(ResourceAttribute<T> attribute, RefinedAttributeDefinition rAttrDef) throws SchemaException { MatchingRule<T> matchingRule = matchingRuleRegistry.getMatchingRule(rAttrDef.getMatchingRuleQName(), rAttrDef.getTypeName()); if (matchingRule != null) { for (PrismPropertyValue<T> pval: attribute.getValues()) { T normalizedRealValue = matchingRule.normalize(pval.getValue()); pval.setValue(normalizedRealValue); } } }
@Test public void testPolyStringStrict() throws Exception { // GIVEN MatchingRule<PolyString> rule = matchingRuleRegistry.getMatchingRule(PrismConstants.POLY_STRING_STRICT_MATCHING_RULE_NAME, PolyStringType.COMPLEX_TYPE); // WHEN, THEN assertMatch(rule, new PolyString("Bar", "bar"), new PolyString("Bar", "bar")); assertNoMatch(rule, new PolyString("BAR", "bar"), new PolyString("Foo", "bar")); assertNoMatch(rule, new PolyString("Bar", "bar"), new PolyString("bAR", "bar")); assertNoMatch(rule, new PolyString("Bar", "bar"), new PolyString("Bar", "barbar")); }
@Test public void testStringCaseInsensitive() throws Exception { // GIVEN MatchingRule<String> rule = matchingRuleRegistry.getMatchingRule(PrismConstants.STRING_IGNORE_CASE_MATCHING_RULE_NAME, DOMUtil.XSD_STRING); // WHEN, THEN assertMatch(rule, "foo", "foo"); assertNoMatch(rule, "foo", "bar"); assertMatch(rule, "foo", "Foo"); assertMatch(rule, "FOO", "Foo"); assertNormalized(rule, "bar", "baR"); assertNormalized(rule, "foo", "FoO"); assertNormalized(rule, "foobar", "foobar"); }
@Override public void initSystem(Task initTask, OperationResult initResult) throws Exception { super.initSystem(initTask, initResult); uidMatchingRule = matchingRuleRegistry.getMatchingRule(PrismConstants.STRING_IGNORE_CASE_MATCHING_RULE_NAME, DOMUtil.XSD_STRING); }
private static <T> boolean equals(MatchingRule<T> matchingRule, T a, T b) throws SchemaException { if (a == null && b == null) { return true; } if (a == null || b == null) { return false; } if (matchingRule == null) { return a.equals(b); } else { return matchingRule.match(a, b); } }
@Override public PolyString normalize(PolyString original) throws SchemaException { return new PolyString(nameMatchingRule.normalize(original.getOrig())); }
@Override public boolean matchRegex(PolyString a, String regex) throws SchemaException { return nameMatchingRule.matchRegex(a.getOrig(), regex); }
@Override public QName getName() { return nameMatchingRule.getName(); }
@Override public boolean isSupported(QName xsdType) { return nameMatchingRule.isSupported(xsdType); }
@Test public void testPolyStringOrig() throws Exception { // GIVEN MatchingRule<PolyString> rule = matchingRuleRegistry.getMatchingRule(PrismConstants.POLY_STRING_ORIG_MATCHING_RULE_NAME, PolyStringType.COMPLEX_TYPE); // WHEN, THEN assertMatch(rule, new PolyString("Bar", "bar"), new PolyString("Bar", "bar")); assertNoMatch(rule, new PolyString("BAR", "bar"), new PolyString("Foo", "bar")); assertNoMatch(rule, new PolyString("Bar", "bar"), new PolyString("bAR", "bar")); assertMatch(rule, new PolyString("Bar", "bar"), new PolyString("Bar", "barbar")); }
@Override public boolean match(PolyString a, PolyString b) throws SchemaException { return nameMatchingRule.match(a.getOrig(), b.getOrig()); }