org.argouml.uml.cognitive.critics
Class CrConstructorNeeded

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

public class CrConstructorNeeded
extends CrUML

A critic to detect when a class requires a constructor.

The critic will trigger whenever a class has instance variables that are uninitialised and there is no constructor. It will not trigger for certain stereotyped classes.

This critic is part of a compound critic.

See Also:
ArgoUML User Manual: Constructor Needed, 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
CrConstructorNeeded()
          Constructor for the critic.
 
Method Summary
 Class getWizardClass(ToDoItem item)
          Return the Class of wizard that can fix the problem identifed by this critic.
 void initWizard(Wizard w)
          Initialize a newly created wizard with information found by the critic.
 boolean predicate2(Object dm, Designer dsgr)
          The trigger for the critic.
 
Methods inherited from class org.argouml.uml.cognitive.critics.CrUML
expand, predicate, setHeadline, setResource, toDoItem
 
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, isActive, isEnabled, isRelevantToDecisions, isRelevantToGoals, makeWizard, matchReason, postItem, reasonCodeFor, setArg, setArgs, setDecisionCategory, setDescription, setEnabled, setExpertEmail, setKnowledgeTypes, setKnowledgeTypes, setKnowledgeTypes, setKnowledgeTypes, setMoreInfoURL, setPriority, snooze, snoozeOrder, stillValid, supports, supports, toString, unsnooze
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

CrConstructorNeeded

public CrConstructorNeeded()
Constructor for the critic.

Sets up the resource name, which will allow headline and description to found for the current locale. Provides a design issue category (STORAGE) and adds triggers for metaclasses "behaviouralFeature" and "structuralFeature".

Method Detail

predicate2

public boolean predicate2(Object dm,
                          Designer dsgr)
The trigger for the critic.

First see if we have any instance variables that are not initialised. If not there is no problem. If there are any uninitialised instance variables, then look for a constructor.

Overrides:
predicate2 in class CrUML
Parameters:
dm - the Object to be checked against the critic.
dsgr - the Designer creating the model. Not used, this is for future development of ArgoUML.
Returns:
PROBLEM_FOUND if the critic is triggered, otherwise NO_PROBLEM.

initWizard

public void initWizard(Wizard w)
Description copied from class: Critic
Initialize a newly created wizard with information found by the critic. This is called right after the wizard is made in makeWizard() and after the wizard's ToDoItem is set. Any critic that supports wizards should probably override this method, and call super initWizard() first.

Overrides:
initWizard in class Critic
Parameters:
w - the wizard
See Also:
Critic.initWizard( org.argouml.cognitive.ui.Wizard)

getWizardClass

public Class getWizardClass(ToDoItem item)
Description copied from class: Critic
Return the Class of wizard that can fix the problem identifed by this critic. This method returns null, subclasses with wizards should override it.

Overrides:
getWizardClass in class Critic
Parameters:
item - the todo item
Returns:
null if no wizard is defined.
See Also:
Critic.getWizardClass(org.argouml.cognitive.ToDoItem)


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