org.argouml.uml.cognitive.critics
Class CrObjectWithoutClassifier

java.lang.Object
  extended byorg.argouml.cognitive.critics.Critic
      extended byorg.argouml.uml.cognitive.critics.CrUML
          extended byorg.argouml.uml.cognitive.critics.CrObjectWithoutClassifier
All Implemented Interfaces:
Poster, Serializable

public class CrObjectWithoutClassifier
extends CrUML

A critic to detect when an object in a deployment-diagram is not inside a component or a component-instance

See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.argouml.uml.cognitive.critics.CrUML
DEC_BEHAVIOR, DEC_CLASS_SELECTION, DEC_CODE_GEN, DEC_CONTAINMENT, DEC_EXPECTED_USAGE, DEC_INHERITANCE, DEC_INSTANCIATION, DEC_METHODS, DEC_MODULARITY, DEC_NAMING, DEC_PATTERNS, DEC_PLANNED_EXTENSIONS, DEC_RELATIONSHIPS, DEC_STATE_MACHINES, DEC_STEREOTYPES, DEC_STORAGE
 
Fields inherited from class org.argouml.cognitive.critics.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
CrObjectWithoutClassifier()
          The constructor.
 
Method Summary
 org.tigris.gef.util.VectorSet computeOffenders(UMLDeploymentDiagram dd)
          If there are objects that are not inside a component or a component-instance the returned vector-set is not null.
 boolean predicate2(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(Object dm, Designer dsgr)
          create a new UMLToDoItem.
 
Methods inherited from class org.argouml.uml.cognitive.critics.CrUML
expand, predicate, setHeadline, setResource
 
Methods inherited from class org.argouml.cognitive.critics.Critic
addControlRec, addKnowledgeType, addSupportedDecision, addSupportedGoal, addTrigger, beActive, beInactive, canFixIt, containsKnowledgeType, critique, defaultMoreInfoURL, fixIt, getArg, getArgs, getClarifier, getControlRec, getCriticCategory, getCriticKey, getCriticName, getCriticType, getDecisionCategory, getDescription, getDescriptionTemplate, getExpertEmail, getHeadline, getHeadline, getHeadline, getKnowledgeTypes, getMoreInfoURL, getMoreInfoURL, getPriority, getPriority, getSupportedDecisions, getSupportedGoals, getTriggerMask, getWizardClass, initWizard, isActive, isEnabled, isRelevantToDecisions, isRelevantToGoals, makeWizard, matchReason, postItem, reasonCodeFor, setArg, setArgs, setDecisionCategory, setDescription, setEnabled, setExpertEmail, setKnowledgeTypes, setKnowledgeTypes, setKnowledgeTypes, setKnowledgeTypes, setMoreInfoURL, setPriority, snooze, snoozeOrder, supports, supports, toString, unsnooze
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

CrObjectWithoutClassifier

public CrObjectWithoutClassifier()
The constructor.

Method Detail

predicate2

public boolean predicate2(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 (an NSUML object) that is being checked.
dsgr - is for future development and can be ignored.
Returns:
boolean problem found
See Also:
CrUML.predicate2( java.lang.Object, org.argouml.cognitive.Designer)

toDoItem

public ToDoItem toDoItem(Object dm,
                         Designer dsgr)
Description copied from class: CrUML
create a new UMLToDoItem.

Overrides:
toDoItem in class CrUML
See Also:
Critic.toDoItem( java.lang.Object, org.argouml.cognitive.Designer)

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.

Specified by:
stillValid in interface Poster
Overrides:
stillValid in class Critic
See Also:
Poster.stillValid( org.argouml.cognitive.ToDoItem, org.argouml.cognitive.Designer)

computeOffenders

public org.tigris.gef.util.VectorSet computeOffenders(UMLDeploymentDiagram dd)
If there are objects that are not inside a component or a component-instance the returned vector-set is not null. Then in the vector-set are the UMLDeploymentDiagram and all FigObjects with no enclosing FigComponent or FigComponentInstance

Parameters:
dd - the diagram to check
Returns:
the set of offenders


ArgoUML © 1996-2004 (20050222)ArgoUML HomepageArgoUML Developers' pageArgoUML Cookbook