CompiledPatternContext(final PatternConstraint yangConstraint) { pattern = Pattern.compile(yangConstraint.getJavaPatternString()); errorMessage = yangConstraint.getErrorMessage().orElse(null); regEx = errorMessage == null ? yangConstraint.getRegularExpressionString() : null; final Optional<ModifierKind> optModifier = yangConstraint.getModifier(); if (optModifier.isPresent()) { final ModifierKind modifier = optModifier.get(); switch (modifier) { case INVERT_MATCH: invert = true; break; default: throw new IllegalStateException("Unhandled modifier " + modifier); } } else { invert = false; } }
private void emitPatternNode(final PatternConstraint pattern) { super.writer.startPatternNode(pattern.getRegularExpressionString()); pattern.getErrorMessage().ifPresent(this::emitErrorMessageNode); pattern.getErrorAppTag().ifPresent(this::emitErrorAppTagNode); emitDocumentedNode(pattern); pattern.getModifier().ifPresent(this::emitModifier); super.writer.endNode(); }
/** * Converts the pattern constraints to the list of * the strings which represents these constraints. * * @param patternConstraints * list of pattern constraints * @return list of strings which represents the constraint patterns */ @Override public Map<String, String> resolveRegExpressions(final List<PatternConstraint> patternConstraints) { if (patternConstraints.isEmpty()) { return ImmutableMap.of(); } final Map<String, String> regExps = Maps.newHashMapWithExpectedSize(patternConstraints.size()); for (PatternConstraint patternConstraint : patternConstraints) { String regEx = patternConstraint.getJavaPatternString(); // The pattern can be inverted final Optional<ModifierKind> optModifier = patternConstraint.getModifier(); if (optModifier.isPresent()) { regEx = applyModifier(optModifier.get(), regEx); } regExps.put(regEx, patternConstraint.getRegularExpressionString()); } return regExps; }
@Override protected PatternConstraint createConstraints(final PatternConstraint argument) { if (!isCustomizedStatement()) { return argument; } return new PatternConstraintImpl(argument.getJavaPatternString(), argument.getRegularExpressionString(), getDescription().orElse(null), getReference().orElse(null), getErrorAppTag().orElse(null), getErrorMessage().orElse(null), getModifier()); } }
/** * Converts the pattern constraints from <code>typedef</code> to the list of * the strings which represents these constraints. * * @param typedef * extended type in which are the pattern constraints sought * @return list of strings which represents the constraint patterns * @throws IllegalArgumentException * if <code>typedef</code> equals null * */ private List<String> resolveRegExpressionsFromTypedef(final ExtendedType typedef) { final List<String> regExps = new ArrayList<String>(); Preconditions.checkArgument(typedef != null, "typedef can't be null"); final TypeDefinition<?> strTypeDef = baseTypeDefForExtendedType(typedef); if (strTypeDef instanceof StringType) { final List<PatternConstraint> patternConstraints = typedef.getPatternConstraints(); if (!patternConstraints.isEmpty()) { String regEx; String modifiedRegEx; for (PatternConstraint patternConstraint : patternConstraints) { regEx = patternConstraint.getRegularExpression(); modifiedRegEx = StringEscapeUtils.escapeJava(regEx); regExps.add(modifiedRegEx); } } } return regExps; }
CompiledPatternContext(final PatternConstraint yangConstraint) { pattern = Pattern.compile(yangConstraint.getJavaPatternString()); errorMessage = yangConstraint.getErrorMessage().orElse(null); regEx = errorMessage == null ? yangConstraint.getRegularExpressionString() : null; final Optional<ModifierKind> optModifier = yangConstraint.getModifier(); if (optModifier.isPresent()) { final ModifierKind modifier = optModifier.get(); switch (modifier) { case INVERT_MATCH: invert = true; break; default: throw new IllegalStateException("Unhandled modifier " + modifier); } } else { invert = false; } }