Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

VIATRA/DSE/UserGuide/Strategy

< VIATRA‎ | DSE
Revision as of 17:36, 30 September 2014 by Nasz013.gmail.com (Talk | contribs) (Created page with "= Using the Strategy class = In this section the components of the '''Strategy''' class are explained including the following four interfaces and its built in implementataion...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Using the Strategy class

In this section the components of the Strategy class are explained including the following four interfaces and its built in implementataions:

  • ICheckConstraints
  • ICheckGoalState
  • ISolutionFound
  • INextTransition

Its only responsibility is the call delegation to the four interfaces. Implementation of these interfaces can be set via simple set methods. The only exception is the INextTransition interface which is a required parameter in the constructor.

ICheckConstraints

This interface has only one method and it is responsible for deciding whether the current state satisfies the global constraints returning true if the answer is yes:

boolean checkConstraints(ThreadContext context);

This method called every time a new state is traversed and if it returns false the current state will be marked as "shouldn't explore further" for the traversal strategy. Default implementation of this interface is the CheckAllConstraints class, which simply checks all the given constraints and return false if at least one constraint is failed to be satisfied.

Override this implementation if the "AND" logic between the constraints is not suitable or a global constraint cannot be defined using IncQuery.

ICheckGoalState

ISolutionFound

Solution store

INextTransition

Back to the top