svn commit: r15972 - trunk/src/argouml-app/src/org/argouml: cognitive profile/internal uml/cognitive/critics

[email protected]
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
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;
+    }
 }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.