org.argouml.pattern.cognitive.critics
Class CrSingletonViolatedMissingStaticAttr
java.lang.Object
org.argouml.cognitive.critics.Critic
org.argouml.uml.cognitive.critics.CrUML
org.argouml.pattern.cognitive.critics.CrSingletonViolatedMissingStaticAttr
- All Implemented Interfaces:
- Poster, Serializable
- public class CrSingletonViolatedMissingStaticAttr
- extends CrUML
A critic to detect whether a class violates the conditions required for
using a Singleton Stereotype.
This stereotype is used to indicate a class which only ever has a single
instance. The critic will trigger whenever a class has stereotype
«Singleton» (or «singleton»), but does not
meet the requirements of a Singleton class. These are:
- An static variable to hold the sole instance of the class;
(This critic)
- only private constructors to create the sole instance; and
- At least one constructor to override the default constructor.
This version includes an implementation for the first test above!
- See Also:
-
ArgoUML User Manual: Singleton Violated
,
Serialized Form
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 |
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, stillValid, supports, supports, toString, unsnooze |
CrSingletonViolatedMissingStaticAttr
public CrSingletonViolatedMissingStaticAttr()
- Constructor for the critic.
Sets up the resource name, which will allow headline and description
to be found for the current locale. Provides a design issue category
(PATTERNS), sets a priority for any to-do items (LOW) and adds
triggers for metaclasses "stereotype", "structuralFeature" and
"associationEnd".
predicate2
public boolean predicate2(Object dm,
Designer dsgr)
- The trigger for the critic.
First check we are actually stereotyped "Singleton" (or we will
accept "singleton").
Then check for a static attribute with the same type as the Singleton
class that will hold the instance of the Singleton class when its
created.
- 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
.