/** * Returns the number of "Not"s that have been evaluated in the current evaluation process. * * For example, when(Not.any(MyCondition)) would have a "NotCount" of "1" during the evaluation of "MyCondition". * * when(Not.any(Not.any(MyCondition))) would have a "NotCount" of "2" during the evaluation of "MyCondition". * * This is useful for conditions that may have side effects, as they will know whether or not their condition is being * negated. */ public static int getNegationCount(final EvaluationContext context) { if (context == null) return 0; Integer count = (Integer)context.get(NEGATION_COUNT_KEY); return count == null ? 0 : count; }
@Override public Object submit(final Rewrite event, final EvaluationContext context, final Object value) { String unconvertedName = getParameterUnconvertedName(property); if (!context.containsKey(property)) { if (value.getClass().isArray()) storeValue(event, context, unconvertedName, value); else storeValue(event, context, unconvertedName, new Object[] { value }); } else { Object[] values = (Object[]) context.get(unconvertedName); List<Object> list = Arrays.asList(values); if (value.getClass().isArray()) list.addAll(Arrays.asList((Object[]) value)); else list.add(value); storeValue(event, context, unconvertedName, list.toArray()); } return null; }
private void storeValue(final Rewrite event, final EvaluationContext context, final String key, final Object value) { context.put(key, value); }
/** * Extract bound values from configured {@link Binding} instances. Return a {@link Map} of the extracted key-value * pairs. Before storing the values in the map, this method applies the supplied {@link Transposition} instance. */ private Map<String, Object> extractBoundValues(final Rewrite event, final EvaluationContext context, Transposition<String> transposition) { Map<String, Object> result = new LinkedHashMap<String, Object>(); for (RegexGroup group : groups) { Parameter<?> parameter = store.get(group.getName()); Object value = null; // TODO TEST ME!!! if (context.getState().isEvaluating()) value = ((ParameterValueStore) context.get(ParameterValueStore.class)).retrieve(parameter); if (value == null || context.getState().isPerforming()) { Object retrieved = ParameterUtils.performRetrieval(event, context, parameter); if (retrieved != null) value = retrieved; } if (value == null) throw new ParameterizationException("The value of required parameter [" + group.getName() + "] was null."); if (transposition != null) value = transposition.transpose(event, context, value.toString()); result.put(group.getName(), value); } return result; }
@Override public String transpose(Rewrite event, EvaluationContext context, String value) { // Retrieve the value of lang from the context String targetLang = (String) Parameters.retrieve(context, this.languageParam); String transposedValue = translate(targetLang, value); if (transposedValue == null) { if (onFailureOperation != null) { context.addPreOperation(onFailureOperation); } // if language is not defined, do not translate and keep original value. transposedValue = value; } return transposedValue; }
@Override public boolean containsKey(Object key) { boolean result = super.containsKey(key); if (result == false && parent != null) result = parent.containsKey(key); return result; }
/** * Extract bound values from configured {@link Binding} instances. Return a {@link Map} of the extracted key-value * pairs. Before storing the values in the map, this method applies the supplied {@link Transposition} instance. */ private Map<String, Object> extractBoundValues(final Rewrite event, final EvaluationContext context, Transposition<String> transposition) { Map<String, Object> result = new LinkedHashMap<String, Object>(); for (RegexGroup group : groups) { Parameter<?> parameter = store.get(group.getName()); Object value = null; // TODO TEST ME!!! if (context.getState().isEvaluating()) value = ((ParameterValueStore) context.get(ParameterValueStore.class)).retrieve(parameter); if (value == null || context.getState().isPerforming()) { Object retrieved = ParameterUtils.performRetrieval(event, context, parameter); if (retrieved != null) value = retrieved; } if (value == null) throw new ParameterizationException("The value of required parameter [" + group.getName() + "] was null."); if (transposition != null) value = transposition.transpose(event, context, value.toString()); result.put(group.getName(), value); } return result; }
@Override public String transpose(Rewrite event, EvaluationContext context, String value) { // Retrieve the value of lang from the context String targetLang = (String) Parameters.retrieve(context, this.languageParam); String transposedValue = translate(targetLang, value); if (transposedValue == null) { if (onFailureOperation != null) { context.addPreOperation(onFailureOperation); } // if language is not defined, do not translate and keep original value. transposedValue = value; } return transposedValue; }
@Override public boolean containsKey(Object key) { boolean result = super.containsKey(key); if (result == false && parent != null) result = parent.containsKey(key); return result; }
/** * Returns the number of "Not"s that have been evaluated in the current evaluation process. * * For example, when(Not.any(MyCondition)) would have a "NotCount" of "1" during the evaluation of "MyCondition". * * when(Not.any(Not.any(MyCondition))) would have a "NotCount" of "2" during the evaluation of "MyCondition". * * This is useful for conditions that may have side effects, as they will know whether or not their condition is being * negated. */ public static int getNegationCount(final EvaluationContext context) { if (context == null) return 0; Integer count = (Integer)context.get(NEGATION_COUNT_KEY); return count == null ? 0 : count; }
@Override public Object submit(final Rewrite event, final EvaluationContext context, final Object value) { String unconvertedName = getParameterUnconvertedName(property); if (!context.containsKey(property)) { if (value.getClass().isArray()) storeValue(event, context, unconvertedName, value); else storeValue(event, context, unconvertedName, new Object[] { value }); } else { Object[] values = (Object[]) context.get(unconvertedName); List<Object> list = Arrays.asList(values); if (value.getClass().isArray()) list.addAll(Arrays.asList((Object[]) value)); else list.add(value); storeValue(event, context, unconvertedName, list.toArray()); } return null; }
private void storeValue(final Rewrite event, final EvaluationContext context, final String key, final Object value) { context.put(key, value); }
context.addPreOperation(operation);
@SuppressWarnings("unchecked") static Map<WindupVertexFrame, ParameterValueStore> getResultValueStoreMap(EvaluationContext context) { Map<WindupVertexFrame, ParameterValueStore> result = (Map<WindupVertexFrame, ParameterValueStore>) context .get(RESULT_VALUE_STORE_MAP_KEY); if (result == null) { result = new LinkedHashMap<>(); } return result; }
public Object submitConverted(final Rewrite event, final EvaluationContext context, final Object value) { String convertedName = getParameterConvertedName(property); if (!context.containsKey(property)) { if (value != null && value.getClass().isArray()) storeValue(event, context, convertedName, value); else storeValue(event, context, convertedName, new Object[] { value }); } else { Object[] values = (Object[]) context.get(convertedName); List<Object> list = Arrays.asList(values); if (value.getClass().isArray()) list.addAll(Arrays.asList((Object[]) value)); else list.add(value); storeValue(event, context, convertedName, list.toArray()); } return null; }
/** * This increments the number of negations, allowing us to determine (during evaluation) whether the results of a particular * {@link Condition} will be negated. */ static void incrementNegationCount(final EvaluationContext context, int adjustment) { if (context == null) return; Integer count = Conditions.getNegationCount(context); count += adjustment; context.put(NEGATION_COUNT_KEY, count); }
context.addPreOperation(operation);
@SuppressWarnings("unchecked") static Map<ParameterValueStore, Map<String, Iterable<? extends WindupVertexFrame>>> getParameterValueStoreMap( final EvaluationContext context) { Map<ParameterValueStore, Map<String, Iterable<? extends WindupVertexFrame>>> cachedStores = (Map<ParameterValueStore, Map<String, Iterable<? extends WindupVertexFrame>>>) context .get(PARAM_VALUE_STORE_MAP_KEY); Map<ParameterValueStore, Map<String, Iterable<? extends WindupVertexFrame>>> valueStores = cachedStores; if (valueStores == null) valueStores = new ConcurrentHashMap<>(); return valueStores; }
public Object submitConverted(final Rewrite event, final EvaluationContext context, final Object value) { String convertedName = getParameterConvertedName(property); if (!context.containsKey(property)) { if (value != null && value.getClass().isArray()) storeValue(event, context, convertedName, value); else storeValue(event, context, convertedName, new Object[] { value }); } else { Object[] values = (Object[]) context.get(convertedName); List<Object> list = Arrays.asList(values); if (value.getClass().isArray()) list.addAll(Arrays.asList((Object[]) value)); else list.add(value); storeValue(event, context, convertedName, list.toArray()); } return null; }
/** * This increments the number of negations, allowing us to determine (during evaluation) whether the results of a particular * {@link Condition} will be negated. */ static void incrementNegationCount(final EvaluationContext context, int adjustment) { if (context == null) return; Integer count = Conditions.getNegationCount(context); count += adjustment; context.put(NEGATION_COUNT_KEY, count); }