|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.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.
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 | |
CrNavFromInterface()
Constructor for the critic. |
Method Summary | |
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 java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
public CrNavFromInterface()
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(Object dm, Designer dsgr)
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:
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 ArgoUML
PROBLEM_FOUND
if the critic is
triggered, otherwise NO_PROBLEM
.
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
ArgoUML © 1996-2004 (20050222) | ArgoUML Homepage | ArgoUML Developers' page | ArgoUML Cookbook |