protected EqualityEvaluator<String, Criterion, Object> compileEqual(final Equality eq) { if (eq.getIdentifier() instanceof Property) { propertyInQuery = true; final Property property = (Property) eq.getIdentifier(); return new EqualityEvaluator<String, Criterion, Object>() { public Criterion evaluate(Object paramValue) { Conjunction conj = Restrictions.conjunction(); if (!StringUtils.isEmpty(property.getNamespace())) { conj.add(Restrictions.eq(PROPERTY_NS_DB_FIELD, property.getNamespace())); } conj.add(Restrictions.eq(PROPERTY_NAME_DB_FIELD, property.getName())); conj.add(Restrictions.eq(PROPERTY_VALUE_DB_FIELD, eq.getValue().getValue())); return conj; }; public String getIdentifier() { return property.toString(); }; }; } else { final String fieldName = eq.getIdentifier().getName(); final Object value = eq.getValue().getValue(); final String dbField = getDBField(fieldName); if (INSTANCE_STATUS_FIELD.equals(fieldName)) { return new FieldValueEquality(INSTANCE_STATUS_FIELD) { /** @see org.apache.ode.ql.eval.skel.CommandEvaluator#evaluate(java.lang.Object) */ public Criterion evaluate(Object paramValue) { short noState = 200; // TODO move to constants Disjunction disj = Restrictions.disjunction(); if (STATUS_ACTIVE.equals(paramValue)) { disj.add(Restrictions.eq(dbField, ProcessState.STATE_NEW)); disj.add(Restrictions.eq(dbField, ProcessState.STATE_ACTIVE)); disj.add(Restrictions.eq(dbField, ProcessState.STATE_READY)); } else if (STATUS_SUSPENDED.equals(paramValue)) { disj.add(Restrictions.eq(dbField, ProcessState.STATE_SUSPENDED)); } else if (STATUS_ERROR.equals(value)) { disj.add(Restrictions.eq(dbField, noState)); // Error instance state doesn't exist yet } else if (STATUS_COMPLETED.equals(paramValue)) { disj.add(Restrictions.eq(dbField, ProcessState.STATE_COMPLETED_OK)); } else if (STATUS_TERMINATED.equals(paramValue)) { disj.add(Restrictions.eq(dbField, ProcessState.STATE_TERMINATED)); } else if (STATUS_FAULTED.equals(paramValue)) { disj.add(Restrictions.eq(dbField, ProcessState.STATE_COMPLETED_WITH_FAULT)); } else { disj.add(Restrictions.eq(dbField, noState)); // Non existent state } return disj; } }; } return new DBFieldValueEq(dbField, value); } }
/** Partially evaluate the right-hand side and the conditions of a specified rule. */ private static Rule evaluateRule(Rule rule, TermContext termContext) { try { // TODO(AndreiS): some evaluation is required in the LHS as well // TODO(YilongL): cannot simply uncomment the following code because it // may evaluate the LHS using the rule itself // Term leftHandSide = rule.leftHandSide().evaluate(termContext); Rule origRule = rule; Term rightHandSide = rule.rightHandSide().evaluate(termContext); List<Term> requires = new ArrayList<>(); for (Term term : rule.requires()) { requires.add(term.evaluate(termContext)); } List<Term> ensures = new ArrayList<>(); for (Term term : rule.ensures()) { ensures.add(term.evaluate(termContext)); } ConjunctiveFormula lookups = ConjunctiveFormula.of(termContext); for (Equality equality : rule.lookups().equalities()) { lookups = lookups.add( equality.leftHandSide().evaluate(termContext), equality.rightHandSide().evaluate(termContext)); } Map<CellLabel, Term> rhsOfWriteCell = null; if (rule.isCompiledForFastRewriting()) { rhsOfWriteCell = new HashMap<>(); for (Map.Entry<CellLabel, Term> entry : rule.rhsOfWriteCell().entrySet()) { rhsOfWriteCell.put(entry.getKey(), entry.getValue().evaluate(termContext)); } } Rule newRule = new Rule( rule.label(), rule.leftHandSide(), rightHandSide, requires, ensures, rule.freshConstants(), rule.freshVariables(), lookups, rule.isCompiledForFastRewriting(), rule.lhsOfReadCell(), rhsOfWriteCell, rule.cellsToCopy(), rule.matchingInstructions(), rule, termContext); return newRule.equals(rule) ? origRule : newRule; } catch (KEMException e) { e.exception.addTraceFrame( "while compiling rule at location " + rule.getSource() + rule.getLocation()); throw e; } }
/** * This function obtains from a list of Equality's objects the Equality object which is related * with an identifier of the specification. The Equality's objects are used for refine one * variable in the specification to more than one variable in the specification. * * @param implID The identifier of a variable in the implementation * @param equalities A list of Equality's objects * @return the related equality */ public static Equality getAssociatedEquality(String implID, List<Equality> equalities) { for (int i = 0; i < equalities.size(); i++) { Equality equality = equalities.get(i); String plCode = equality.getPLCodeEquality(); plCode = plCode.trim(); plCode = plCode.substring(0, plCode.length() - 1); if (plCode.equals(implID)) return equality; } return null; }
// Cuando evolucione el refinamiento esta funcion sera insuficiente porque voy a poder tener // codigo // ademas de identificadores. Posiblemente haya que agregar algo a TCRL public static String getRelatedImplID(Equality equality) { // No sera correcto en el futuro String implID = equality.getPLCodeEquality(); implID = implID.trim(); implID = implID.substring(0, implID.length() - 1); System.out.println("EL id es: " + implID); return implID.trim(); }
public static final SubLObject setup_hierarchical_visitor_file() { // CVS_ID("Id: hierarchical-visitor.lisp 127954 2009-06-04 20:08:55Z rck "); Structures.register_method( print_high.$print_object_method_table$.getGlobalValue(), $dtp_hierarchical_visitor$.getGlobalValue(), Symbols.symbol_function($sym8$HIERARCHICAL_VISITOR_PRINT_FUNCTION_TRAMPOLINE)); Structures.def_csetf($sym9$HIER_VISIT_BEGIN_PATH_FN, $sym10$_CSETF_HIER_VISIT_BEGIN_PATH_FN); Structures.def_csetf($sym11$HIER_VISIT_END_PATH_FN, $sym12$_CSETF_HIER_VISIT_END_PATH_FN); Structures.def_csetf($sym13$HIER_VISIT_ACCEPT_NODE_FN, $sym14$_CSETF_HIER_VISIT_ACCEPT_NODE_FN); Structures.def_csetf($sym15$HIER_VISIT_BEGIN_VISIT_FN, $sym16$_CSETF_HIER_VISIT_BEGIN_VISIT_FN); Structures.def_csetf($sym17$HIER_VISIT_END_VISIT_FN, $sym18$_CSETF_HIER_VISIT_END_VISIT_FN); Structures.def_csetf($sym19$HIER_VISIT_PARAM, $sym20$_CSETF_HIER_VISIT_PARAM); Equality.identity($sym1$HIERARCHICAL_VISITOR); return NIL; }
public static final SubLObject setup_bag_file() { // CVS_ID("Id: bag.lisp 126640 2008-12-04 13:39:36Z builder "); Structures.register_method( print_high.$print_object_method_table$.getGlobalValue(), $dtp_bag$.getGlobalValue(), Symbols.symbol_function($sym8$BAG_PRINT_FUNCTION_TRAMPOLINE)); Structures.def_csetf( $sym9$BAG_STRUCT_UNIQUE_CONTENTS, $sym10$_CSETF_BAG_STRUCT_UNIQUE_CONTENTS); Structures.def_csetf( $sym11$BAG_STRUCT_REPEAT_CONTENTS, $sym12$_CSETF_BAG_STRUCT_REPEAT_CONTENTS); Structures.def_csetf($sym13$BAG_STRUCT_REPEAT_SIZE, $sym14$_CSETF_BAG_STRUCT_REPEAT_SIZE); Structures.def_csetf($sym15$BAG_STRUCT_TEST, $sym16$_CSETF_BAG_STRUCT_TEST); Equality.identity($sym0$BAG); access_macros.register_macro_helper($sym54$DO_BAG_REPEAT_INTERNAL, $sym63$DO_BAG_UNIQUE); access_macros.register_macro_helper($sym58$DO_BAG_UNIQUE_INTERNAL, $sym63$DO_BAG_UNIQUE); cfasl.register_cfasl_input_function( $cfasl_opcode_bag$.getGlobalValue(), $sym65$CFASL_INPUT_BAG); Structures.register_method( cfasl.$cfasl_output_object_method_table$.getGlobalValue(), $dtp_bag$.getGlobalValue(), Symbols.symbol_function($sym66$CFASL_OUTPUT_OBJECT_BAG_METHOD)); generic_testing.define_test_case_table_int( $sym70$BAG_UNIT_TEST_KITCHEN_SINK, list( new SubLObject[] { $kw20$TEST, NIL, $kw71$OWNER, NIL, $kw72$CLASSES, NIL, $kw73$KB, $kw74$TINY, $kw75$WORKING_, T }), $list76); return NIL; }
public static final SubLObject setup_simple_lru_cache_strategy_file() { // CVS_ID("Id: simple-lru-cache-strategy.lisp 126880 2009-01-22 21:59:16Z tbrussea "); Structures.register_method( print_high.$print_object_method_table$.getGlobalValue(), $dtp_simple_lru_cache_strategy$.getGlobalValue(), Symbols.symbol_function($sym7$SIMPLE_LRU_CACHE_STRATEGY_PRINT_FUNCTION_TRAMPOLINE)); Structures.def_csetf($sym8$SLRU_CACHESTRAT_CAPACITY, $sym9$_CSETF_SLRU_CACHESTRAT_CAPACITY); Structures.def_csetf($sym10$SLRU_CACHESTRAT_INDEX, $sym11$_CSETF_SLRU_CACHESTRAT_INDEX); Structures.def_csetf($sym12$SLRU_CACHESTRAT_PAYLOAD, $sym13$_CSETF_SLRU_CACHESTRAT_PAYLOAD); Structures.def_csetf($sym14$SLRU_CACHESTRAT_HEAD, $sym15$_CSETF_SLRU_CACHESTRAT_HEAD); Structures.def_csetf($sym16$SLRU_CACHESTRAT_TAIL, $sym17$_CSETF_SLRU_CACHESTRAT_TAIL); Structures.def_csetf( $sym18$SLRU_CACHESTRAT_FREELIST_HEAD, $sym19$_CSETF_SLRU_CACHESTRAT_FREELIST_HEAD); Structures.def_csetf($sym20$SLRU_CACHESTRAT_METRICS, $sym21$_CSETF_SLRU_CACHESTRAT_METRICS); Equality.identity($sym0$SIMPLE_LRU_CACHE_STRATEGY); Structures.register_method( cache_utilities.$cache_strategy_object_p_method_table$.getGlobalValue(), $dtp_simple_lru_cache_strategy$.getGlobalValue(), Symbols.symbol_function($sym50$CACHE_STRATEGY_OBJECT_P_SIMPLE_LRU_CACHE_STRATEGY_METHOD)); Structures.register_method( cache_utilities.$cache_strategy_object_reset_method_table$.getGlobalValue(), $dtp_simple_lru_cache_strategy$.getGlobalValue(), Symbols.symbol_function( $sym51$CACHE_STRATEGY_OBJECT_RESET_SIMPLE_LRU_CACHE_STRATEGY_METHOD)); Structures.register_method( cache_utilities.$cache_strategy_object_cache_capacity_method_table$.getGlobalValue(), $dtp_simple_lru_cache_strategy$.getGlobalValue(), Symbols.symbol_function( $sym52$CACHE_STRATEGY_OBJECT_CACHE_CAPACITY_SIMPLE_LRU_CACHE_STRATEGY_ME)); Structures.register_method( cache_utilities.$cache_strategy_object_cache_size_method_table$.getGlobalValue(), $dtp_simple_lru_cache_strategy$.getGlobalValue(), Symbols.symbol_function( $sym53$CACHE_STRATEGY_OBJECT_CACHE_SIZE_SIMPLE_LRU_CACHE_STRATEGY_METHOD)); Structures.register_method( cache_utilities.$cache_strategy_object_track_method_table$.getGlobalValue(), $dtp_simple_lru_cache_strategy$.getGlobalValue(), Symbols.symbol_function( $sym54$CACHE_STRATEGY_OBJECT_TRACK_SIMPLE_LRU_CACHE_STRATEGY_METHOD)); Structures.register_method( cache_utilities.$cache_strategy_object_trackedP_method_table$.getGlobalValue(), $dtp_simple_lru_cache_strategy$.getGlobalValue(), Symbols.symbol_function( $sym55$CACHE_STRATEGY_OBJECT_TRACKED__SIMPLE_LRU_CACHE_STRATEGY_METHOD)); Structures.register_method( cache_utilities.$cache_strategy_object_untrack_method_table$.getGlobalValue(), $dtp_simple_lru_cache_strategy$.getGlobalValue(), Symbols.symbol_function( $sym56$CACHE_STRATEGY_OBJECT_UNTRACK_SIMPLE_LRU_CACHE_STRATEGY_METHOD)); Structures.register_method( cache_utilities.$cache_strategy_object_supports_parameter_p_method_table$.getGlobalValue(), $dtp_simple_lru_cache_strategy$.getGlobalValue(), Symbols.symbol_function( $sym57$CACHE_STRATEGY_OBJECT_SUPPORTS_PARAMETER_P_SIMPLE_LRU_CACHE_STRAT)); Structures.register_method( cache_utilities.$cache_strategy_object_get_parameter_method_table$.getGlobalValue(), $dtp_simple_lru_cache_strategy$.getGlobalValue(), Symbols.symbol_function( $sym58$CACHE_STRATEGY_OBJECT_GET_PARAMETER_SIMPLE_LRU_CACHE_STRATEGY_MET)); Structures.register_method( cache_utilities.$cache_strategy_object_set_parameter_method_table$.getGlobalValue(), $dtp_simple_lru_cache_strategy$.getGlobalValue(), Symbols.symbol_function( $sym59$CACHE_STRATEGY_OBJECT_SET_PARAMETER_SIMPLE_LRU_CACHE_STRATEGY_MET)); Structures.register_method( cache_utilities.$cache_strategy_object_note_reference_method_table$.getGlobalValue(), $dtp_simple_lru_cache_strategy$.getGlobalValue(), Symbols.symbol_function( $sym60$CACHE_STRATEGY_OBJECT_NOTE_REFERENCE_SIMPLE_LRU_CACHE_STRATEGY_ME)); Structures.register_method( cache_utilities.$cache_strategy_object_note_references_in_order_method_table$ .getGlobalValue(), $dtp_simple_lru_cache_strategy$.getGlobalValue(), Symbols.symbol_function( $sym61$CACHE_STRATEGY_OBJECT_NOTE_REFERENCES_IN_ORDER_SIMPLE_LRU_CACHE_S)); Structures.register_method( cache_utilities.$cache_strategy_object_get_metrics_method_table$.getGlobalValue(), $dtp_simple_lru_cache_strategy$.getGlobalValue(), Symbols.symbol_function( $sym62$CACHE_STRATEGY_OBJECT_GET_METRICS_SIMPLE_LRU_CACHE_STRATEGY_METHO)); Structures.register_method( cache_utilities.$cache_strategy_object_reset_metrics_method_table$.getGlobalValue(), $dtp_simple_lru_cache_strategy$.getGlobalValue(), Symbols.symbol_function( $sym63$CACHE_STRATEGY_OBJECT_RESET_METRICS_SIMPLE_LRU_CACHE_STRATEGY_MET)); Structures.register_method( cache_utilities.$cache_strategy_object_gather_metrics_method_table$.getGlobalValue(), $dtp_simple_lru_cache_strategy$.getGlobalValue(), Symbols.symbol_function( $sym64$CACHE_STRATEGY_OBJECT_GATHER_METRICS_SIMPLE_LRU_CACHE_STRATEGY_ME)); Structures.register_method( cache_utilities.$cache_strategy_object_dont_gather_metrics_method_table$.getGlobalValue(), $dtp_simple_lru_cache_strategy$.getGlobalValue(), Symbols.symbol_function( $sym65$CACHE_STRATEGY_OBJECT_DONT_GATHER_METRICS_SIMPLE_LRU_CACHE_STRATE)); Structures.register_method( cache_utilities.$cache_strategy_object_keeps_metrics_p_method_table$.getGlobalValue(), $dtp_simple_lru_cache_strategy$.getGlobalValue(), Symbols.symbol_function( $sym66$CACHE_STRATEGY_OBJECT_KEEPS_METRICS_P_SIMPLE_LRU_CACHE_STRATEGY_M)); Structures.register_method( cache_utilities.$new_cache_strategy_object_tracked_content_iterator_method_table$ .getGlobalValue(), $dtp_simple_lru_cache_strategy$.getGlobalValue(), Symbols.symbol_function( $sym67$NEW_CACHE_STRATEGY_OBJECT_TRACKED_CONTENT_ITERATOR_SIMPLE_LRU_CAC)); Structures.register_method( cache_utilities.$map_cache_strategy_object_tracked_content_method_table$.getGlobalValue(), $dtp_simple_lru_cache_strategy$.getGlobalValue(), Symbols.symbol_function( $sym68$MAP_CACHE_STRATEGY_OBJECT_TRACKED_CONTENT_SIMPLE_LRU_CACHE_STRATE)); Structures.register_method( cache_utilities.$cache_strategy_object_untrack_all_method_table$.getGlobalValue(), $dtp_simple_lru_cache_strategy$.getGlobalValue(), Symbols.symbol_function( $sym69$CACHE_STRATEGY_OBJECT_UNTRACK_ALL_SIMPLE_LRU_CACHE_STRATEGY_METHO)); generic_testing.define_test_case_table_int( $sym70$TEST_BASIC_SLRU_CACHE_STRATEGY, list( new SubLObject[] { $kw71$TEST, NIL, $kw72$OWNER, NIL, $kw73$CLASSES, NIL, $kw74$KB, $kw75$TINY, $kw76$WORKING_, T }), $list77); generic_testing.define_test_case_table_int( $sym90$COMPARE_SLRU_CACHE_STRATEGY_WITH_CACHE, list( new SubLObject[] { $kw71$TEST, NIL, $kw72$OWNER, NIL, $kw73$CLASSES, NIL, $kw74$KB, $kw75$TINY, $kw76$WORKING_, NIL }), $list91); generic_testing.define_test_case_table_int( $sym93$COMPARE_SLRU_CACHE_STRATEGY_SPEED_WITH_CACHE, list( new SubLObject[] { $kw71$TEST, NIL, $kw72$OWNER, NIL, $kw73$CLASSES, NIL, $kw74$KB, $kw75$TINY, $kw76$WORKING_, NIL }), $list94); return NIL; }