/** * Returns a condition class for use <b>as an inline condition</b>, if this entry * applies to the given condition element. * * @param conditionBean a condition element from an add-on descriptor * @return the condition class or {@link Optional#empty()} */ public Optional<Class<? extends Condition>> getConditionClassForInline(SingleConditionBean conditionBean) { return getConditionClass(conditionBean, false, true); }
/** * Creates a builder for an entry with the given fields. * * @param conditionName the symbolic name of the condition * @param conditionClass the condition class * @return a resolver entry builder */ public static Builder newEntry(String conditionName, Class<? extends Condition> conditionClass) { return new Builder(conditionName, conditionClass); }
/** * Builds the resolver entry. * * @return the resolver entry */ public Entry build() { return new Entry(this); } }
@Override @SuppressWarnings("unchecked") public List<Entry> getEntries() { Predicate<Map<String, String>> predicate = parameters -> "addon".equals(parameters.get("entity")); return ImmutableList.of( newEntry("entity_property_equal_to", AddonEntityPropertyEqualToCondition.class) .contextFree() .withPredicates(predicate) .build(), newEntry("addon_property_equal_to", AddonEntityPropertyEqualToCondition.class) .contextFree() .build() ); } }
@Override public Optional<Class<? extends Condition>> getConditionClassForHostContext(SingleConditionBean conditionBean) { return getConditionClass(resolverEntry -> resolverEntry.getConditionClassForHostContext(conditionBean)); }
@Override public Optional<Class<? extends Condition>> getConditionClassForInline(SingleConditionBean conditionBean) { return getConditionClass(resolverEntry -> resolverEntry.getConditionClassForInline(conditionBean)); }
@Override public Optional<Class<? extends Condition>> getConditionClassForNoContext(SingleConditionBean conditionBean) { return getConditionClass(resolverEntry -> resolverEntry.getConditionClassForNoContext(conditionBean)); }
private Optional<Class<? extends Condition>> getConditionClass(SingleConditionBean conditionBean, boolean requireContextFree, boolean inline) { return conditionAppliesTo(conditionBean, requireContextFree, inline) ? Optional.of(conditionClass) : Optional.empty(); }
/** * Returns a condition class for use <b>where no context is available</b>, if this entry applies to the given * condition element. * * @param conditionBean a condition element from an add-on descriptor * @return the condition class or {@link Optional#empty()} */ public Optional<Class<? extends Condition>> getConditionClassForNoContext(SingleConditionBean conditionBean) { return getConditionClass(conditionBean, true); }
/** * Creates a builder for an entry with the given fields. * * @param conditionName the symbolic name of the condition * @param conditionClass the condition class * @return a resolver entry builder */ public static Builder newEntry(String conditionName, Class<? extends Condition> conditionClass) { return new Builder(conditionName, conditionClass); }
/** * Builds the resolver entry. * * @return the resolver entry */ public Entry build() { return new Entry(this); } }
@Override public Optional<Class<? extends Condition>> getConditionClassForHostContext(SingleConditionBean conditionBean) { return getConditionClass(conditionBean.getCondition(), resolverEntry -> resolverEntry.getConditionClassForHostContext(conditionBean)); }
/** * Returns a condition class for use <b>as an inline condition</b>, if this entry * applies to the given condition element. * * @param conditionBean a condition element from an add-on descriptor * @return the condition class or {@link Optional#empty()} */ public Optional<Class<? extends Condition>> getConditionClassForInline(SingleConditionBean conditionBean) { return getConditionClass(conditionBean, false, true); }
/** * Creates a builder for an entry with the given fields. * * @param conditionName the symbolic name of the condition * @param conditionClass the condition class * @return a resolver entry builder */ public static Builder newEntry(String conditionName, Class<? extends Condition> conditionClass) { return new Builder(conditionName, conditionClass); }
/** * Builds the resolver entry. * * @return the resolver entry */ public Entry build() { return new Entry(this); } }
/** * Returns a condition class for use <b>where no context is available</b>, if this entry applies to the given * condition element. * * @param conditionBean a condition element from an add-on descriptor * @return the condition class or {@link Optional#empty()} */ public Optional<Class<? extends Condition>> getConditionClassForNoContext(SingleConditionBean conditionBean) { return getConditionClass(conditionBean, true, false); }
/** * Returns a condition class for use <b>where the full host application context is available</b>, if this entry * applies to the given condition element. * * @param conditionBean a condition element from an add-on descriptor * @return the condition class or {@link Optional#empty()} */ public Optional<Class<? extends Condition>> getConditionClassForHostContext(SingleConditionBean conditionBean) { return getConditionClass(conditionBean, false, false); }
/** * Returns a condition class for use <b>where the full host application context is available</b>, if this entry * applies to the given condition element. * * @param conditionBean a condition element from an add-on descriptor * @return the condition class or {@link Optional#empty()} */ public Optional<Class<? extends Condition>> getConditionClassForHostContext(SingleConditionBean conditionBean) { return getConditionClass(conditionBean, false, false); }
/** * Returns a condition class for use <b>where the full host application context is available</b>, if this entry * applies to the given condition element. * * @param conditionBean a condition element from an add-on descriptor * @return the condition class or {@link Optional#empty()} */ public Optional<Class<? extends Condition>> getConditionClassForHostContext(SingleConditionBean conditionBean) { return getConditionClass(conditionBean, false); }
/** * Returns a condition class for use <b>where no context is available</b>, if this entry applies to the given * condition element. * * @param conditionBean a condition element from an add-on descriptor * @return the condition class or {@link Optional#empty()} */ public Optional<Class<? extends Condition>> getConditionClassForNoContext(SingleConditionBean conditionBean) { return getConditionClass(conditionBean, true, false); }