Author: maurelio1234
Date: 2008-11-07 00:48:46-0800
New Revision: 15972

Modified:
   trunk/src/argouml-app/src/org/argouml/cognitive/Agency.java
   
trunk/src/argouml-app/src/org/argouml/profile/internal/ProfileManagerImpl.java
   
trunk/src/argouml-app/src/org/argouml/uml/cognitive/critics/ProfileCodeGeneration.java
   
trunk/src/argouml-app/src/org/argouml/uml/cognitive/critics/ProfileGoodPractices.java

Log:
issue 5482 (implementation details in the issue)



Modified: trunk/src/argouml-app/src/org/argouml/cognitive/Agency.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/cognitive/Agency.java?view=diff&rev=15972&p1=trunk/src/argouml-app/src/org/argouml/cognitive/Agency.java&p2=trunk/src/argouml-app/src/org/argouml/cognitive/Agency.java&r1=15971&r2=15972
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/cognitive/Agency.java (original)
+++ trunk/src/argouml-app/src/org/argouml/cognitive/Agency.java 2008-11-07 
00:48:46-0800
@@ -220,11 +220,13 @@
             theCritics = new ArrayList<Critic>();
             criticRegistry.put(clazz, theCritics);
         }
-        theCritics.add(cr);
-        notifyStaticObservers(cr);
-        LOG.debug("Registered: " + theCritics.toString());
-        cachedCritics.remove(clazz);
-        addCritic(cr);
+        if (!theCritics.contains(cr)) {
+            theCritics.add(cr);
+            notifyStaticObservers(cr);
+            LOG.debug("Registered: " + theCritics.toString());
+            cachedCritics.remove(clazz);
+            addCritic(cr);
+        }
     }
 
     /**

Modified: 
trunk/src/argouml-app/src/org/argouml/profile/internal/ProfileManagerImpl.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/profile/internal/ProfileManagerImpl.java?view=diff&rev=15972&p1=trunk/src/argouml-app/src/org/argouml/profile/internal/ProfileManagerImpl.java&p2=trunk/src/argouml-app/src/org/argouml/profile/internal/ProfileManagerImpl.java&r1=15971&r2=15972
==============================================================================
--- 
trunk/src/argouml-app/src/org/argouml/profile/internal/ProfileManagerImpl.java  
    (original)
+++ 
trunk/src/argouml-app/src/org/argouml/profile/internal/ProfileManagerImpl.java  
    2008-11-07 00:48:46-0800
@@ -84,13 +84,13 @@
 
     private List<String> searchDirectories = new ArrayList<String>();
 
-    private Profile profileUML;
+    private ProfileUML profileUML;
     
-    private Profile profileJava;
+    private ProfileJava profileJava;
     
-    private Profile profileGoodPractices;
+    private ProfileGoodPractices profileGoodPractices;
     
-    private Profile profileCodeGeneration;
+    private ProfileCodeGeneration profileCodeGeneration;
 
 
     /**
@@ -103,7 +103,8 @@
             profileUML = new ProfileUML();
             profileJava = new ProfileJava(profileUML);
             profileGoodPractices = new ProfileGoodPractices();
-            profileCodeGeneration = new ProfileCodeGeneration();
+            profileCodeGeneration = new ProfileCodeGeneration(
+                    profileGoodPractices);
             
             registerProfile(profileUML);
             addToDefaultProfiles(profileUML); 

Modified: 
trunk/src/argouml-app/src/org/argouml/uml/cognitive/critics/ProfileCodeGeneration.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/cognitive/critics/ProfileCodeGeneration.java?view=diff&rev=15972&p1=trunk/src/argouml-app/src/org/argouml/uml/cognitive/critics/ProfileCodeGeneration.java&p2=trunk/src/argouml-app/src/org/argouml/uml/cognitive/critics/ProfileCodeGeneration.java&r1=15971&r2=15972
==============================================================================
--- 
trunk/src/argouml-app/src/org/argouml/uml/cognitive/critics/ProfileCodeGeneration.java
      (original)
+++ 
trunk/src/argouml-app/src/org/argouml/uml/cognitive/critics/ProfileCodeGeneration.java
      2008-11-07 00:48:46-0800
@@ -41,8 +41,8 @@
 
     private Set<Critic>  critics = new HashSet<Critic>();
 
-    private static Critic crMissingClassName = new CrMissingClassName();
-
+    private static Critic crMissingClassName;
+    
     private static Critic crDisambigClassName = new CrDisambigClassName();
 
     private static Critic crNoTransitions = new CrNoTransitions();
@@ -56,23 +56,31 @@
     // Compound critics
 
     // only classes with name need a constructor
-    private static CompoundCritic crCompoundConstructorNeeded =
-        new CompoundCritic(crMissingClassName, new CrConstructorNeeded());
+    private static CompoundCritic crCompoundConstructorNeeded;
 
-    private static CompoundCritic clsNaming =
-        new CompoundCritic(crMissingClassName, crDisambigClassName);
-        
+    private static CompoundCritic clsNaming;
+    
     private static CompoundCritic noTrans1 =
         new CompoundCritic(crNoTransitions, crNoIncomingTransitions);
 
     private static CompoundCritic noTrans2 =
         new CompoundCritic(crNoTransitions, crNoOutgoingTransitions);
-    
+        
     /**
      * Default Constructor 
+     * 
+     * @param profileGoodPractices the instance of the required profile 
      */
-    public ProfileCodeGeneration() {
+    public ProfileCodeGeneration(ProfileGoodPractices profileGoodPractices) {
         
+        crMissingClassName = profileGoodPractices.getCrMissingClassName();
+
+        crCompoundConstructorNeeded = new CompoundCritic(
+                crMissingClassName, new CrConstructorNeeded());
+
+        clsNaming = new CompoundCritic(crMissingClassName,
+                crDisambigClassName);
+            
         critics.add(crCompoundConstructorNeeded);
         
         // code generation

Modified: 
trunk/src/argouml-app/src/org/argouml/uml/cognitive/critics/ProfileGoodPractices.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/cognitive/critics/ProfileGoodPractices.java?view=diff&rev=15972&p1=trunk/src/argouml-app/src/org/argouml/uml/cognitive/critics/ProfileGoodPractices.java&p2=trunk/src/argouml-app/src/org/argouml/uml/cognitive/critics/ProfileGoodPractices.java&r1=15971&r2=15972
==============================================================================
--- 
trunk/src/argouml-app/src/org/argouml/uml/cognitive/critics/ProfileGoodPractices.java
       (original)
+++ 
trunk/src/argouml-app/src/org/argouml/uml/cognitive/critics/ProfileGoodPractices.java
       2008-11-07 00:48:46-0800
@@ -39,6 +39,8 @@
 public class ProfileGoodPractices extends Profile {
 
     private Set<Critic>  critics = new HashSet<Critic>();
+
+    private CrMissingClassName crMissingClassName = new CrMissingClassName();
     
     /**
      * Default Constructor 
@@ -51,7 +53,7 @@
         critics.add(new CrZeroLengthEdge());
         critics.add(new CrCircularComposition());
         critics.add(new CrMissingAttrName());
-        critics.add(new CrMissingClassName());
+        critics.add(crMissingClassName);
         critics.add(new CrMissingStateName());
         critics.add(new CrMissingOperName());
         critics.add(new CrNonAggDataType());
@@ -79,4 +81,11 @@
     public String getProfileIdentifier() {
         return "GoodPractices";
     }
+
+    /**
+     * @return the missing class name critic
+     */
+    public Critic getCrMissingClassName() {
+        return crMissingClassName;
+    }
 }

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to