|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.argouml.cognitive.critics.Critic | +--org.argouml.uml.cognitive.critics.CrUML | +--org.argouml.uml.cognitive.critics.CrNavFromInterface
A critic to detect navigation from an Interface to a Class in an Association. This is not permitted in UML, since it would require the Interface to hold state to represent the association reference.
The critic will trigger whenever an association between an interface and a class is navigable from the interface.
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, RESOURCE_BUNDLE, SNOOZE_ORDER |
Constructor Summary | |
CrNavFromInterface()
Constructor for the critic. Sets up the resource name, which will allow headline and description to found for the current locale (replaces deprecated setHeadline and sd methods). |
Method Summary | |
boolean |
predicate2(java.lang.Object dm,
Designer dsgr)
The trigger for the critic. Applies to Associations only, not AssociationRoles. |
Methods inherited from class org.argouml.uml.cognitive.critics.CrUML |
expand, predicate, setHeadline, setResource |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
public CrNavFromInterface()
Constructor for the critic.
Sets up the resource name, which will allow headline and description to found for the current locale (replaces deprecated setHeadline and sd methods). Provides a design issue category (RELATIONSHIPS) and knowledge type (SYNTAX). Adds trigger "end_navigable".
Method Detail |
public boolean predicate2(java.lang.Object dm, Designer dsgr)
The trigger for the critic.
Applies to Associations only, not AssociationRoles. The reason is that an AssociationRole cannot have greater navigability than the Association it specializes, so if the critic has addressed the Association, the AssociationRole will effectively be addressed. There may of course be a need for a critic to check that Association Roles do match their parents in this respect!
As a consequence, we also don't need to check for associations with ClassifierRoles.
Iterate over all the AssociationEnds. We only have a problem if:
There is an end connected to an Interface; and
An end other than that end is navigable.
predicate2
in class CrUML
dm
- the object to be checked against the criticdsgr
- the designer creating the model. Not used, this is for
future development of ArgoUMLPROBLEM_FOUND
if the critic is
triggered, otherwise NO_PROBLEM
.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
ArgoUML (c) 1996-2002 |