org.argouml.uml.cognitive.critics
Class CrCrossNamespaceAssoc

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

public class CrCrossNamespaceAssoc
extends CrUML

A critic to check that the classifiers associated with the ends of an association are in the same namespace as the association.

With hierarchical namespaces, this would appear to allow any association. However the intent would seem to be that, whilst association between packages is reasonable, association between sub-systems or models is not.

This is the fourth well-formedness rule for associations in the UML 1.3 standard (see section 2.5.3 of the standard).

Since ArgoUML currently only supports a single model, and no subsystems, there is no way to trigger the critic at present. Although a deleted classifier will appear in the separate "trash" namespace, this will also delete the association, so the critic will not trigger. However it will be useful for the future when multiple models and sub-systems are supported.

See Also:
ArgoUML User Manual: Classifier not in Namespace of its Association, Serialized Form

Field Summary
 
Fields inherited from class org.argouml.uml.cognitive.critics.CrUML
cat, decBEHAVIOR, decCLASS_SELECTION, decCODE_GEN, decCONTAINMENT, decEXPECTED_USAGE, decINHERITANCE, decINSTANCIATION, decMETHODS, decMODULARITY, decNAMING, decPATTERNS, decPLANNED_EXTENSIONS, decRELATIONSHIPS, decSTATE_MACHINES, decSTEREOTYPES, decSTORAGE
 
Fields inherited from class org.argouml.cognitive.critics.Critic
_clarifier, _knowledgeTypes, _numCriticsFired, _supportedDecisions, _supportedGoals, _triggerMask, DEFAULT_CLARIFIER, ENABLED, 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, SNOOZE_ORDER
 
Constructor Summary
CrCrossNamespaceAssoc()
          Constructor for the critic.
 
Method Summary
 boolean predicate2(java.lang.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, 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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

CrCrossNamespaceAssoc

public CrCrossNamespaceAssoc()

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 (MODULARITY) and a knowledge type (SYNTAX).

Method Detail

predicate2

public boolean predicate2(java.lang.Object dm,
                          Designer dsgr)

The trigger for the critic.

Get the association. Then loop through the association ends, checking that their associated classifiers are in the namespace, i.e. are part of the same model or subsystem.

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.


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