org.argouml.uml.cognitive.critics
Class CrMultipleShallowHistoryStates

java.lang.Object
  extended by java.util.Observable
      extended by org.argouml.cognitive.Critic
          extended by org.argouml.uml.cognitive.critics.CrUML
              extended by org.argouml.uml.cognitive.critics.CrMultipleShallowHistoryStates
All Implemented Interfaces:
java.io.Serializable, Poster

public class CrMultipleShallowHistoryStates
extends CrUML

UML 1.5 Well-formedness rule [3] for Composite States. Well-formedness rule [3] for CompositeState. See page 136 of UML 1.4 Semantics. OMG document UML 1.4.2 formal/04-07-02.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.argouml.cognitive.Critic
DEFAULT_CLARIFIER, KT_COMPLETENESS, KT_CONSISTENCY, KT_CORRECTNESS, KT_DESIGNERS, KT_EXPERIENCIAL, KT_OPTIMIZATION, KT_ORGANIZATIONAL, KT_PRESENTATION, KT_SEMANTICS, KT_SYNTAX, KT_TOOL, NO_PROBLEM, PROBLEM_FOUND
 
Constructor Summary
CrMultipleShallowHistoryStates()
          The constructor.
 
Method Summary
protected  ListSet computeOffenders(java.lang.Object ps)
           
 java.util.Set<java.lang.Object> getCriticizedDesignMaterials()
          Get the design materials to be criticized by this critic
 boolean predicate2(java.lang.Object dm, Designer dsgr)
          This is the decision routine for the critic.
 boolean stillValid(ToDoItem i, Designer dsgr)
          Return true iff the given ToDoItem is still valid and should be kept in the given designers ToDoList.
 ToDoItem toDoItem(java.lang.Object dm, Designer dsgr)
          Reply the ToDoItem that the designer should see iff predicate() returns true.
 
Methods inherited from class org.argouml.uml.cognitive.critics.CrUML
expand, getDefaultSuggestion, getInstructions, getLocalizedString, getLocalizedString, predicate, setResource, setupHeadAndDesc
 
Methods inherited from class org.argouml.cognitive.Critic
addControlRec, addKnowledgeType, addSupportedDecision, addSupportedGoal, addTrigger, beActive, beInactive, canFixIt, containsKnowledgeType, critique, defaultMoreInfoURL, fixIt, getClarifier, getControlRec, getCriticCategory, getCriticKey, getCriticName, getCriticType, getDecisionCategory, getDescription, getDescriptionTemplate, getHeadline, getHeadline, getHeadline, getKnowledgeTypes, getMoreInfoURL, getMoreInfoURL, getPriority, getPriority, getSupportedDecisions, getSupportedGoals, getTriggerMask, getWizardClass, initWizard, isActive, isEnabled, isRelevantToDecisions, isRelevantToGoals, isSnoozed, makeWizard, matchReason, postItem, reasonCodeFor, setDecisionCategory, setDescription, setEnabled, setHeadline, setKnowledgeTypes, setKnowledgeTypes, setKnowledgeTypes, setKnowledgeTypes, setMoreInfoURL, setPriority, snooze, snoozeOrder, supports, supports, toString, unsnooze
 
Methods inherited from class java.util.Observable
addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChanged
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

CrMultipleShallowHistoryStates

public CrMultipleShallowHistoryStates()
The constructor.

Method Detail

predicate2

public boolean predicate2(java.lang.Object dm,
                          Designer dsgr)
Description copied from class: CrUML
This is the decision routine for the critic.

Overrides:
predicate2 in class CrUML
Parameters:
dm - is the UML entity that is being checked.
dsgr - is for future development and can be ignored.
Returns:
boolean problem found

toDoItem

public ToDoItem toDoItem(java.lang.Object dm,
                         Designer dsgr)
Description copied from class: Critic
Reply the ToDoItem that the designer should see iff predicate() returns true. By default it just fills in the fields of the ToDoItem from accessor methods of this Critic. Critic Subclasses may override this method or the accessor methods to add computed fields to the ToDoItem. TODO: Critic's may want to add new fields to a ToDoItem to make stillValid more efficent.

Overrides:
toDoItem in class CrUML
Parameters:
dm - the offender
dsgr - the designer
Returns:
ToDoItem
See Also:
Critic.critique(java.lang.Object, org.argouml.cognitive.Designer)

computeOffenders

protected ListSet computeOffenders(java.lang.Object ps)
Parameters:
ps - the design material
Returns:
the offenders

stillValid

public boolean stillValid(ToDoItem i,
                          Designer dsgr)
Description copied from class: Critic
Return true iff the given ToDoItem is still valid and should be kept in the given designers ToDoList. Critics that are not enabled should always return false so that their ToDoItems will be removed. Subclasses of Critic that supply multiple offenders should always override this method.

By default this method basically asks the critic to again critique the offending Object and then it checks if the resulting ToDoItem is the same as the one already posted. This is simple and it works fine for light-weight critics. Critics that expend a lot of computational effort in making feedback that can be easily check to see if it still holds, should override this method.

TODO: Maybe ToDoItem should carry some data to make this method more efficient. Reply true if the given item should be kept on the Designer's ToDoList, false if it is no longer valid.

Specified by:
stillValid in interface Poster
Overrides:
stillValid in class Critic
Parameters:
i - the todo item
dsgr - the designer
Returns:
true if thisitem is still valid

getCriticizedDesignMaterials

public java.util.Set<java.lang.Object> getCriticizedDesignMaterials()
Description copied from class: Critic
Get the design materials to be criticized by this critic

Overrides:
getCriticizedDesignMaterials in class Critic
Returns:
the design materials


ArgoUML © 1996-2006ArgoUML HomepageArgoUML Developers' pageArgoUML Cookbook