/** * List of items enclosed in brackets. * * @param rule Rule of a list item. * @return Bracket list definition rule. */ protected Rule bracketList(Rule rule) { return Sequence(openBracket(), list(rule), closedBracket()); }
/** * Uniform distribution definition. * * @return Uniform distribution definition rule. */ public Rule uniformDistribution() { return Sequence(function("uniform"), push(new UniformDistribution())); }
/** * UUID value definition. * * @return UUID value definition rule. */ public Rule uuidValue() { return Sequence(function("uuid"), push(new UUIDValue())); }
/** * Empty map value definition. * * @return Empty map value definition rule. */ @SuppressWarnings({ "rawtypes" }) public Rule emptyMapValue() { return Sequence(function("emptyMap"), push(new EmptyMapValue())); }
/** * Null value definition. * * @return Null value definition rule. */ public Rule nullValue() { return Sequence("null", openParenthesis(), closedParenthesis(), push(new NullValue())); }
/** * Boolean value definition. * * @return Boolean value definition rule. */ public Rule booleanLiteralValue() { return Sequence(booleanLiteral(), push(ConstantValue.of(pop()))); }
/** * Getter transformer definition. * * @return Getter transformer definition rule. */ @SuppressWarnings({ "rawtypes" }) public Rule getterTransformer() { return Sequence(function("get", Sequence(stringLiteral(), comma(), value())), push(new GetterTransformer<>((String) pop(1), Object.class, (Value) pop()))); }
/** * Comma definition. * * @return Comma definition rule. */ public Rule comma() { return Sequence(ZeroOrMore(whitespace()), ",", ZeroOrMore(whitespace())); }
/** * Open parenthesis definition. * * @return Open parenthesis definition rule. */ public Rule openParenthesis() { return Sequence(ZeroOrMore(whitespace()), "(", ZeroOrMore(whitespace())); }
/** * Number value definition. * * @return Number value definition rule. */ public Rule numberLiteralValue() { return Sequence(numberLiteral(), push(ConstantValue.of(pop()))); }
/** * Normal distribution definition. * * @return Normal distribution definition rule. */ public Rule normalDistribution() { return Sequence(function("normal", list(numberLiteral())), push(createNormalDistribution())); }
/** * JSON transformer definition. * * @return JSON transformer definition rule. */ public Rule jsonTransformer() { return Sequence(function("json", valueReference()), push(new JsonTransformer((Value<?>) pop()))); }
/** * String value definition. * * @return String value definition rule. */ public Rule stringLiteralValue() { return Sequence(FirstOf(stringLiteral(), nakedStringLiteral()), push(ConstantValue.of(pop()))); }
/** * Exact weighted value definition. * * @return Weighted value definition rule. */ @SuppressWarnings({ "unchecked", "rawtypes" }) public Rule exactWeightedValue() { return Sequence(function("exactly", bracketList(countValuePair())), push(new ExactWeightedValue<>((List) pop()))); }