Author: tfmorris Date: 2010-04-13 10:59:19-0700 New Revision: 18258 Modified: 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: Lazy load critics 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&pathrev=18258&r1=18257&r2=18258 ============================================================================== --- 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 2010-04-13 10:59:19-0700 @@ -53,7 +53,7 @@ */ public class ProfileCodeGeneration extends Profile { - private Set<Critic> critics = new HashSet<Critic>(); + private Set<Critic> critics = null; private static Critic crMissingClassName; @@ -86,9 +86,14 @@ * @param profileGoodPractices the instance of the required profile */ public ProfileCodeGeneration(ProfileGoodPractices profileGoodPractices) { - crMissingClassName = profileGoodPractices.getCrMissingClassName(); + addProfileDependency("GoodPractices"); + } + private void loadCritics() { + + critics = new HashSet<Critic>(); + crCompoundConstructorNeeded = new CompoundCritic( crMissingClassName, new CrConstructorNeeded()); @@ -133,8 +138,14 @@ critics.add(noTrans2); this.setCritics(critics); - - addProfileDependency("GoodPractices"); + } + + @Override + public Set<Critic> getCritics() { + if (critics == null) { + loadCritics(); + } + return super.getCritics(); } @Override 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&pathrev=18258&r1=18257&r2=18258 ============================================================================== --- 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 2010-04-13 10:59:19-0700 @@ -52,16 +52,20 @@ */ public class ProfileGoodPractices extends Profile { - private Set<Critic> critics = new HashSet<Critic>(); + private Set<Critic> critics = null; private CrMissingClassName crMissingClassName = new CrMissingClassName(); - + /** * Default Constructor */ public ProfileGoodPractices() { - + super(); + } + + private void loadCritics() { // general + critics = new HashSet<Critic>(); critics.add(new CrEmptyPackage()); critics.add(new CrNodesOverlap()); critics.add(new CrZeroLengthEdge()); @@ -85,13 +89,20 @@ } @Override + public Set<Critic> getCritics() { + if (critics == null ) { + loadCritics(); + } + return super.getCritics(); + } + + @Override public String getDisplayName() { return "Critics for Good Practices"; } - /* - * @see org.argouml.profile.Profile#getProfileIdentifier() - */ + + @Override public String getProfileIdentifier() { return "GoodPractices"; } ------------------------------------------------------ http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2581075 To unsubscribe from this discussion, e-mail: [[email protected]].
