/** * Sets or replaces all elements for {@link Conditions#getConditions() conditions} list. * @param elements An iterable of conditions elements * @return {@code this} builder for use in a chained invocation */ @CanIgnoreReturnValue public final Builder conditions(Iterable<? extends Condition> elements) { this.conditions = ImmutableList.builder(); return addAllConditions(elements); }
/** * Builds a new {@link ImmutableConditions ImmutableConditions}. * @return An immutable instance of Conditions * @throws java.lang.IllegalStateException if any required attributes are missing */ public ImmutableConditions build() { if (initBits != 0) { throw new IllegalStateException(formatRequiredAttributesMessage()); } return new ImmutableConditions(matchType, conditions.build(), description); }
private Conditions readConditions(final SelectionstatementContext selectionstatementContext) { final ParseTree conditionTree = selectionstatementContext.getChild(2); final Element element = conditionTree.accept(new ConditionContextVisitor(visitor)); final Optional<String> conditionString = extractCondition(conditionTree); if(element == null){ visitor.readSupportedFunctionWithWarn(LR_METHOD_IF, selectionstatementContext.getParent(), "Condition not supported " + conditionString.orElse("")); } else { visitor.readSupportedFunction(LR_METHOD_IF, selectionstatementContext.getParent()); } final String operand1; if(element instanceof CustomAction){ operand1 = getVariableSyntax((CustomAction)element); } else { operand1 = extractBooleanCondition(conditionTree); } final Condition condition = ImmutableCondition.builder() .operand1(operand1) .operator(Condition.Operator.EQUALS) .operand2(conditionString.orElse("").startsWith("!") ? Boolean.FALSE.toString() : Boolean.TRUE.toString()) .build(); final ImmutableConditions.Builder conditionsBuilder = ImmutableConditions.builder(); conditionsBuilder.addConditions(condition); conditionsBuilder.description(conditionString); conditionsBuilder.matchType(Conditions.MatchType.ANY); return conditionsBuilder.build(); }
/** * Fill a builder with attribute values from the provided {@code Conditions} instance. * Regular attribute values will be replaced with those from the given instance. * Absent optional values will not replace present values. * Collection elements and entries will be added, not replaced. * @param instance The instance from which to copy values * @return {@code this} builder for use in a chained invocation */ @CanIgnoreReturnValue public final Builder from(Conditions instance) { Objects.requireNonNull(instance, "instance"); matchType(instance.getMatchType()); addAllConditions(instance.getConditions()); Optional<String> descriptionOptional = instance.getDescription(); if (descriptionOptional.isPresent()) { description(descriptionOptional); } return this; }
/** * Creates an immutable copy of a {@link Conditions} value. * Uses accessors to get values to initialize the new immutable instance. * If an instance is already immutable, it is returned as is. * @param instance The instance to copy * @return A copied immutable Conditions instance */ public static ImmutableConditions copyOf(Conditions instance) { if (instance instanceof ImmutableConditions) { return (ImmutableConditions) instance; } return ImmutableConditions.builder() .from(instance) .build(); }
/** * Creates a builder for {@link ImmutableConditions ImmutableConditions}. * @return A new ImmutableConditions builder */ public static ImmutableConditions.Builder builder() { return new ImmutableConditions.Builder(); }