|
What this is
Other links
The source code
// $Id: Init.java,v 1.33 2004/09/21 19:03:26 mvw Exp $
// Copyright (c) 1996-2004 The Regents of the University of California. All
// Rights Reserved. Permission to use, copy, modify, and distribute this
// software and its documentation without fee, and without a written
// agreement is hereby granted, provided that the above copyright notice
// and this paragraph appear in all copies. This software program and
// documentation are copyrighted by The Regents of the University of
// California. The software program and documentation are supplied "AS
// IS", without any accompanying services from The Regents. The Regents
// does not warrant that the operation of the program will be
// uninterrupted or error-free. The end-user understands that the program
// was developed for research purposes and is advised not to rely
// exclusively on the program for any reason. IN NO EVENT SHALL THE
// UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
// SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS,
// ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
// THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF
// SUCH DAMAGE. THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
// PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
// CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT,
// UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
// File: Init.java
// Classes: Init
// Original Author: jrobbins@ics.uci.edu
package org.argouml.uml.cognitive.critics;
import org.argouml.cognitive.critics.Agency;
import org.argouml.cognitive.critics.CompoundCritic;
import org.argouml.cognitive.critics.CrNodesOverlap;
import org.argouml.cognitive.critics.CrZeroLengthEdge;
import org.argouml.cognitive.critics.Critic;
import org.argouml.language.java.cognitive.critics.CrMultipleInheritance;
import org.argouml.language.java.cognitive.critics.CrMultipleRealization;
import org.argouml.pattern.cognitive.critics.CrConsiderSingleton;
import org.argouml.pattern.cognitive.critics.CrSingletonViolatedMissingStaticAttr;
import org.argouml.pattern.cognitive.critics.CrSingletonViolatedOnlyPrivateConstructors;
import org.argouml.uml.diagram.deployment.ui.UMLDeploymentDiagram;
// import org.argouml.uml.diagram.sequence.ui.UMLSequenceDiagram;
// import org.argouml.uml.diagram.state.ui.UMLStateDiagram;
import org.argouml.uml.diagram.static_structure.ui.UMLClassDiagram;
import org.argouml.uml.diagram.ui.FigEdgeModelElement;
// import org.argouml.uml.diagram.ui.FigNodeModelElement;
import org.argouml.uml.diagram.ui.UMLDiagram;
// import org.argouml.uml.diagram.use_case.ui.UMLUseCaseDiagram;
import org.argouml.model.ModelFacade;
/** Registers critics for use in ArgoUML. This class is called at
* system startup time. If you add a new critic, you need to add a
* line here.
*
* @see org.argouml.cognitive.critics.Agency */
public class Init {
// UML specific
private static Critic crAssocNameConflict = new CrAssocNameConflict();
private static Critic crAttrNameConflict = new CrAttrNameConflict();
private static Critic crOperNameConflict = new CrOperNameConflict();
private static Critic crCircularAssocClass = new CrCircularAssocClass();
private static Critic crCircularInheritance = new CrCircularInheritance();
private static Critic crCircularComposition = new CrCircularComposition();
private static Critic crCrossNamespaceAssoc = new CrCrossNamespaceAssoc();
private static Critic crDupParamName = new CrDupParamName();
private static Critic crDupRoleNames = new CrDupRoleNames();
private static Critic crFinalSubclassed = new CrFinalSubclassed();
private static Critic crIllegalGeneralization =
new CrIllegalGeneralization();
private static Critic crAlreadyRealizes = new CrAlreadyRealizes();
private static Critic crInterfaceAllPublic = new CrInterfaceAllPublic();
private static Critic crInterfaceOperOnly = new CrInterfaceOperOnly();
private static Critic crMultipleAgg = new CrMultipleAgg();
private static Critic crNWayAgg = new CrNWayAgg();
private static Critic crNavFromInterface = new CrNavFromInterface();
private static Critic crUnnavigableAssoc = new CrUnnavigableAssoc();
private static Critic crNameConflictAC = new CrNameConflictAC();
private static Critic crMissingClassName = new CrMissingClassName();
private static Critic crMissingAttrName = new CrMissingAttrName();
private static Critic crMissingOperName = new CrMissingOperName();
private static Critic crMissingStateName = new CrMissingStateName();
private static Critic crNoInstanceVariables = new CrNoInstanceVariables();
private static Critic crNoAssociations = new CrNoAssociations();
private static Critic crNonAggDataType = new CrNonAggDataType();
private static Critic crOppEndConflict = new CrOppEndConflict();
private static Critic crUselessAbstract = new CrUselessAbstract();
private static Critic crUselessInterface = new CrUselessInterface();
private static Critic crDisambigClassName = new CrDisambigClassName();
private static Critic crDisambigStateName = new CrDisambigStateName();
private static Critic crConflictingComposites =
new CrConflictingComposites();
private static Critic crTooManyAssoc = new CrTooManyAssoc();
private static Critic crTooManyAttr = new CrTooManyAttr();
private static Critic crTooManyOper = new CrTooManyOper();
private static Critic crTooManyStates = new CrTooManyStates();
private static Critic crTooManyTransitions = new CrTooManyTransitions();
private static Critic crTooManyClasses = new CrTooManyClasses();
private static Critic crNoTransitions = new CrNoTransitions();
private static Critic crNoIncomingTransitions =
new CrNoIncomingTransitions();
private static Critic crNoOutgoingTransitions =
new CrNoOutgoingTransitions();
private static Critic crMultipleInitialStates =
new CrMultipleInitialStates();
private static Critic crNoInitialState = new CrNoInitialState();
private static Critic crNoTriggerOrGuard = new CrNoTriggerOrGuard();
private static Critic crNoGuard = new CrNoGuard();
private static Critic crInvalidFork = new CrInvalidFork();
private static Critic crInvalidJoin = new CrInvalidJoin();
private static Critic crInvalidBranch = new CrInvalidBranch();
private static Critic crEmptyPackage = new CrEmptyPackage();
private static Critic crNoOperations = new CrNoOperations();
private static Critic crConstructorNeeded = new CrConstructorNeeded();
private static Critic crNameConfusion = new CrNameConfusion();
private static Critic crMergeClasses = new CrMergeClasses();
private static Critic crSubclassReference = new CrSubclassReference();
private static Critic crComponentWithoutNode = new CrComponentWithoutNode();
private static Critic crCompInstanceWithoutNode =
new CrCompInstanceWithoutNode();
private static Critic crClassWithoutComponent =
new CrClassWithoutComponent();
private static Critic crInterfaceWithoutComponent =
new CrInterfaceWithoutComponent();
private static Critic crObjectWithoutComponent =
new CrObjectWithoutComponent();
private static Critic crNodeInsideElement = new CrNodeInsideElement();
private static Critic crNodeInstanceInsideElement =
new CrNodeInstanceInsideElement();
private static Critic crWrongLinkEnds = new CrWrongLinkEnds();
private static Critic crInstanceWithoutClassifier =
new CrInstanceWithoutClassifier();
// private static Critic crCallWithoutReturn = new CrCallWithoutReturn();
// private static Critic crReturnWithoutCall = new CrReturnWithoutCall();
// private static Critic crSeqInstanceWithoutClassifier =
// new CrSeqInstanceWithoutClassifier();
// private static Critic crStimulusWithWrongPosition =
// new CrStimulusWithWrongPosition();
// from UML 1.1 Semantics spec
// common coding conventions
private static Critic
crUnconventionalOperName = new CrUnconventionalOperName();
private static Critic
crUnconventionalAttrName = new CrUnconventionalAttrName();
private static Critic
crUnconventionalClassName = new CrUnconventionalClassName();
private static Critic
crUnconventionalPackName = new CrUnconventionalPackName();
// Java specific
private static Critic crClassMustBeAbstract = new CrClassMustBeAbstract();
private static Critic crReservedName = new CrReservedName();
private static Critic crMultiInherit = new CrMultipleInheritance();
private static Critic crMultiRealization = new CrMultipleRealization();
// code generation
private static Critic crIllegalName = new CrIllegalName();
// Pattern specific
private static Critic crConsiderSingleton = new CrConsiderSingleton();
private static Critic crSingletonViolatedMSA =
new CrSingletonViolatedMissingStaticAttr();
private static Critic crSingletonViolatedOPC =
new CrSingletonViolatedOnlyPrivateConstructors();
// Presentation critics
private static Critic crNodesOverlap = new CrNodesOverlap();
private static Critic crZeroLengthEdge = new CrZeroLengthEdge();
// Compound critics
private static CompoundCritic clsNaming =
new CompoundCritic(crMissingClassName, crDisambigClassName);
private static CompoundCritic noTrans1 =
new CompoundCritic(crNoTransitions, crNoIncomingTransitions);
private static CompoundCritic noTrans2 =
new CompoundCritic(crNoTransitions, crNoOutgoingTransitions);
// only classes with name need a constructor
private static CompoundCritic crCompoundConstructorNeeded =
new CompoundCritic(crMissingClassName, crConstructorNeeded);
/** static initializer, register all appropriate critics */
public static void init() {
java.lang.Class modelCls = (Class) ModelFacade.MODEL;
java.lang.Class packageCls = (Class) ModelFacade.PACKAGE;
java.lang.Class modelElementCls = (Class) ModelFacade.MODELELEMENT;
java.lang.Class classCls = (Class) ModelFacade.CLASS;
java.lang.Class classifierCls = (Class) ModelFacade.CLASSIFIER;
java.lang.Class interfaceCls = (Class) ModelFacade.INTERFACE;
java.lang.Class attrCls = (Class) ModelFacade.ATTRIBUTE;
java.lang.Class paramCls = (Class) ModelFacade.PARAMETER;
java.lang.Class operCls = (Class) ModelFacade.OPERATION;
java.lang.Class assocCls = (Class) ModelFacade.ASSOCIATION;
java.lang.Class assocEndCls = (Class) ModelFacade.ASSOCIATION_END;
java.lang.Class assocClassCls = (Class) ModelFacade.ASSOCIATION_CLASS;
java.lang.Class namespaceCls = (Class) ModelFacade.NAMESPACE;
java.lang.Class genElementCls =
(Class) ModelFacade.GENERALAIZABLE_ELEMENT;
java.lang.Class genCls = (Class) ModelFacade.GENERALIZATION;
java.lang.Class datatypeCls = (Class) ModelFacade.DATATYPE;
java.lang.Class useCaseCls = (Class) ModelFacade.USE_CASE;
java.lang.Class actorCls = (Class) ModelFacade.ACTOR;
java.lang.Class stateVertexCls = (Class) ModelFacade.STATEVERTEX;
java.lang.Class stateCls = (Class) ModelFacade.STATE;
java.lang.Class compositieStateCls = (Class) ModelFacade.COMPOSITESTATE;
// java.lang.Class stateDiagramCls = UMLStateDiagram.class;
// java.lang.Class useCaseDiagramCls = UMLUseCaseDiagram.class;
// TODO: Agency should allow registration by interface
// useful for MAssociation.
Agency.register(crAssocNameConflict, namespaceCls);
Agency.register(crAttrNameConflict, classifierCls);
Agency.register(crOperNameConflict, classifierCls);
Agency.register(crCircularAssocClass, assocClassCls);
Agency.register(crCircularInheritance, genElementCls);
Agency.register(crCircularComposition, classCls);
Agency.register(crClassMustBeAbstract, classCls);
Agency.register(crCrossNamespaceAssoc, assocCls);
Agency.register(crDupParamName, operCls);
Agency.register(crDupRoleNames, assocCls);
Agency.register(crFinalSubclassed, classCls);
Agency.register(crFinalSubclassed, interfaceCls);
Agency.register(crIllegalGeneralization, genCls);
Agency.register(crAlreadyRealizes, classCls);
Agency.register(crInterfaceAllPublic, interfaceCls);
Agency.register(crInterfaceOperOnly, interfaceCls);
Agency.register(crMultipleAgg, assocCls);
Agency.register(crUnnavigableAssoc, assocCls);
Agency.register(crNWayAgg, assocCls);
Agency.register(crNavFromInterface, assocCls);
Agency.register(crNameConflictAC, assocClassCls);
Agency.register(clsNaming, classCls);
Agency.register(clsNaming, actorCls);
Agency.register(clsNaming, useCaseCls);
// TODO: should be just CrMissingName with a
// customized description
Agency.register(crMissingClassName, modelCls);
Agency.register(crMissingAttrName, attrCls);
Agency.register(crMissingOperName, operCls);
Agency.register(crMissingStateName, stateVertexCls);
Agency.register(crNoInstanceVariables, classCls);
Agency.register(crNoAssociations, classCls);
Agency.register(crNoAssociations, actorCls);
Agency.register(crNoAssociations, useCaseCls);
Agency.register(crNoOperations, classCls);
Agency.register(crNoOperations, interfaceCls);
Agency.register(crCompoundConstructorNeeded, classCls);
Agency.register(crEmptyPackage, packageCls);
Agency.register(crNonAggDataType, datatypeCls);
Agency.register(crUselessAbstract, classCls);
Agency.register(crUselessInterface, interfaceCls);
Agency.register(crDisambigStateName, stateCls);
Agency.register(crNameConfusion, classifierCls);
Agency.register(crNameConfusion, stateCls);
Agency.register(crMergeClasses, classCls);
Agency.register(crSubclassReference, classCls);
Agency.register(crIllegalName, classCls);
Agency.register(crIllegalName, interfaceCls);
Agency.register(crIllegalName, assocCls);
Agency.register(crIllegalName, operCls);
Agency.register(crIllegalName, attrCls);
Agency.register(crIllegalName, paramCls);
Agency.register(crIllegalName, stateCls);
Agency.register(crReservedName, classifierCls);
Agency.register(crReservedName, operCls);
Agency.register(crReservedName, attrCls);
Agency.register(crReservedName, stateCls);
Agency.register(crReservedName, assocCls);
Agency.register(crMultiInherit, classCls);
Agency.register(crMultiRealization, interfaceCls);
Agency.register(crTooManyAssoc, classCls);
Agency.register(crTooManyAttr, classCls);
Agency.register(crTooManyOper, classCls);
Agency.register(crTooManyTransitions, stateVertexCls);
Agency.register(crTooManyStates, compositieStateCls);
java.lang.Class classDiagramCls = UMLClassDiagram.class;
Agency.register(crTooManyClasses, classDiagramCls);
java.lang.Class pseudostateCls = (Class) ModelFacade.PSEUDOSTATE;
java.lang.Class transitionCls = (Class) ModelFacade.TRANSITION;
Agency.register(noTrans1, stateVertexCls);
Agency.register(noTrans2, stateVertexCls);
Agency.register(crMultipleInitialStates, pseudostateCls);
Agency.register(crNoInitialState, compositieStateCls);
Agency.register(crNoTriggerOrGuard, transitionCls);
Agency.register(crInvalidJoin, pseudostateCls);
Agency.register(crInvalidFork, pseudostateCls);
Agency.register(crInvalidBranch, pseudostateCls);
Agency.register(crNoGuard, transitionCls);
Agency.register(crUnconventionalOperName, operCls);
Agency.register(crUnconventionalAttrName, attrCls);
Agency.register(crUnconventionalClassName, classCls);
Agency.register(crUnconventionalPackName, packageCls);
Agency.register(crConsiderSingleton, classCls);
Agency.register(crSingletonViolatedMSA, classCls);
Agency.register(crSingletonViolatedOPC, classCls);
java.lang.Class deploymentDiagramCls = UMLDeploymentDiagram.class;
Agency.register(crNodeInsideElement, deploymentDiagramCls);
Agency.register(crNodeInstanceInsideElement, deploymentDiagramCls);
Agency.register(crComponentWithoutNode, deploymentDiagramCls);
Agency.register(crCompInstanceWithoutNode, deploymentDiagramCls);
Agency.register(crClassWithoutComponent, deploymentDiagramCls);
Agency.register(crInterfaceWithoutComponent, deploymentDiagramCls);
Agency.register(crObjectWithoutComponent, deploymentDiagramCls);
Agency.register(crWrongLinkEnds, deploymentDiagramCls);
Agency.register(crInstanceWithoutClassifier, deploymentDiagramCls);
// java.lang.Class sequenceDiagramCls = UMLSequenceDiagram.class;
// Agency.register(crCallWithoutReturn, sequenceDiagramCls);
// Agency.register(crReturnWithoutCall, sequenceDiagramCls);
// Agency.register(crLinkWithoutStimulus, sequenceDiagramCls);
// Agency.register(crSeqInstanceWithoutClassifier, sequenceDiagramCls);
// Agency.register(crStimulusWithWrongPosition, sequenceDiagramCls);
// java.lang.Class nodeCls = FigNodeModelElement.class;
java.lang.Class edgeCls = FigEdgeModelElement.class;
java.lang.Class diagramCls = UMLDiagram.class;
Agency.register(crNodesOverlap, diagramCls);
Agency.register(crZeroLengthEdge, edgeCls);
Agency.register(crOppEndConflict, assocEndCls);
Agency.register(new CrMultiComposite(), assocEndCls);
Agency.register(new CrNameConflict(), namespaceCls);
Agency.register(crAlreadyRealizes, classCls);
Agency.register(new CrUtilityViolated(), classifierCls);
Agency.register(new CrOppEndVsAttr(), classifierCls);
}
} /* end class Init */
|
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.