Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
     Copyright (c) 2012 Albert zuendorf
  
     Permission is hereby granted, free of charge, to any person obtaining a copy of this software 
     and associated documentation files (the "Software"), to deal in the Software without restriction, 
     including without limitation the rights to use, copy, modify, merge, publish, distribute, 
     sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is 
     furnished to do so, subject to the following conditions:
  
    The above copyright notice and this permission notice shall be included in all copies or 
    substantial portions of the Software.
 
    The Software shall be used for Good, not Evil.
 
    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING 
    BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 
    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 
    DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
 
 package org.sdmlib.models.classes;
 
 
 
 public class Clazz extends SDMLibClass
 {
    public static final String PROPERTY_ATTRIBUTES = "attributes";
    public static final String PROPERTY_CLASSMODEL = "classModel";
    public static final String PROPERTY_SUPERCLAZZES = "superClazzes";
    public static final String PROPERTY_KIDCLAZZES = "kidClazzes";
    
    public static final String PROPERTY_METHODS = "methods";
    public static final String PROPERTY_ROLES = "roles";
    
    public static final String PROPERTY_INTERFAZE = "interface";
    public static final String PROPERTY_EXTERNAL = "external";
    public static final ClazzSet EMPTY_SET = new ClazzSet().withReadOnly(true);
 
    private AttributeSet attributes = null;
    private ClassModel classModel = null;  
    private ClazzSet superClazzes = null;
    private ClazzSet kidClazzes = null;
    private ArrayList<Stringimports=new ArrayList<String>(); 
    
    private MethodSet methods = null;
    private RoleSet roles = null;
    
    private boolean interfaze = false;
    private boolean external;
    
    Clazz(String name){
       setName(name);
    }
    
    public Clazz withAssoc(Clazz tgtClassString tgtRoleNameCard tgtCardString srcRoleNameCard srcCard)
    {      
       Association assoc = new Association()
       .withTarget(tgtClasstgtRoleNametgtCard)
       .withSource(thissrcRoleNamesrcCard);
 
       if (this.getClassModel() != null && this.getClassModel().getGenerator() != null)
       {
          this.getClassModel().getGenerator().addToAssociations(assoc);
       }
       
       return this;
    }
    
    public void withUniDirectionalAssoc(Clazz tgtClassString tgtRoleNameCard tgtCard)
    {
       this.withAssoc(tgtClasstgtRoleNametgtCard"".);
    }
 
    
    public String getFullName()
    {
       
       if(.indexOf('.') < 0 && getClassModel()!= null && getClassModel().getName() != null)
       {
          return getClassModel().getName()  + "." + .replace("$"".");
       }
       return .replace("$"".");
    }
 
    @Override
    public Clazz withName(String name)
    {
       setName(name);
       return this;
    }
 
 
   public Clazz getSuperClass()
   {
      if(==null){
         return null;
      }
      for(Clazz clazz : ){
         if(!clazz.isInterface()){
            return clazz;
         }
      }
      return null;
   }
   
   public ClazzSet getInterfaces()
   {
      ClazzSet interfaces =new ClazzSet();
      if(==null){
         return interfaces;
      }
      for(Clazz clazz : ){
         if(clazz.isInterface()){
            interfaces.add(clazz);
         }
      }
      return interfaces;
   }
   
   public ClazzSet getSuperClazzes()
   {
      if (this. == null)
      {
         return .;
      }
   
      return this.;
   }
   public Clazz withSuperClazz(Clazz... value)
   {
      if(value==null){
         return this;
      }
      if (this. == null)
      {
         this. = new ClazzSet();
      }
      for (Clazz item : value)
      {
         if (item != null)
         {
            if (this..add(item))
            {
               item.withKidClazzes(this);
               getPropertyChangeSupport().firePropertyChange(nullitem);
            }
         }
      }
      return this;
   }
   public ClazzSet getKidClazzes()
   {
      if (this. == null)
      {
         return .;
      }
   
      return this.;
   }
   
   {
      ClazzSet result = new ClazzSet().with(this);
      return result.getKidClazzesTransitive();
   }
   public Clazz withKidClazzes(Clazz... value)
   {
      if(value==null){
         return this;
      }
      if (this. == null)
      {
         this. = new ClazzSet();
      }
      for (Clazz item : value)
      {
         if (item != null)
         {
            if (this..add(item))
            {
               item.withSuperClazz(this);
               getPropertyChangeSupport().firePropertyChange(nullitem);
            }
         }
      }
      return this;
   }
   
   public ClassModel getClassModel()
   {
      return this.;
   }
   public boolean setClassModel(ClassModel value)
   {
      boolean changed = false;
      
      if (this. != value)
      {
         ClassModel oldValue = this.;
         
         if (this. != null)
         {
            this. = null;
            oldValue.without(this);
         }
         
         this. = value;
         
         if (value != null)
         {
            value.with(this);
         }
         
         getPropertyChangeSupport().firePropertyChange(oldValuevalue);
         changed = true;
      }
      
      return changed;
   }
   public Clazz with(ClassModel value)
   {
      setClassModel(value);
      return this;
   }
   
   
get All Attributes

Returns:
all Attributes of a Clazz /********************************************************************
              one                       many
 Clazz ----------------------------------- Attribute
              clazz                   attributes
 
   {
      if (this. == null)
      {
         return .;
      }
   
      return this.;
   }

   
get All Roles

Returns:
all Roles of a Clazz /********************************************************************
              one                       many
 Clazz ----------------------------------- Role
              clazz                   sourceRoles
 
   public RoleSet getRoles()
   {
      if (this. == null)
      {
         return .;
      }
      return this.;
   }
   
   public Clazz with(Attribute... value){
      if(value==null){
         return this;
      }
      if (this. == null)
      {
         this. = new AttributeSet();
      }
      //TODO MUST be check if the Attribute (Name exist)
      for (Attribute item : value)
      {
         if (item != null)
         {
            if (this..add(item))
            {
               item.with(this);
               getPropertyChangeSupport().firePropertyChange(nullitem);
            }
         }
      }
      return this;
   }
   
   
get All Methods

Returns:
all Methods of a Clazz /********************************************************************
              one                       many
 Clazz ----------------------------------- Method
              clazz                   methods
 
   public MethodSet getMethods()
   {
      if (this. == null)
      {
         return .;
      }
   
      return this.;
   }
   public Clazz withMethod(String name)
   {
      return with(new Method(name));
   }
   public Clazz withMethod(String nameDataType returnTypeParameter... parameters)
   {
      return with(new Method(namereturnTypeparameters));
   } 
   public Clazz withAttribute(String nameDataType type)
   {      
      return this.with(new Attribute(nametype));
   }
   public Clazz withAttribute(String nameDataType typeString initialization)
   {      
      this.with(new Attribute(nametype).withInitialization(initialization));
      return this;
   }
   //==========================================================================
   public void removeYou()
   {
      super.removeYou();
      setClassModel(null);
      without(this.getAttributes().toArray(new Attribute[this.getAttributes().size()]));
      without(this.getMethods().toArray(new Method[this.getMethods().size()]));
      without(this.getRoles().toArray(new Role[this.getRoles().size()]));
      withoutKidClazz(this.getKidClazzes().toArray(new Clazz[this.getKidClazzes().size()]));
      withoutKidClazzes(this.getKidClazzes().toArray(new Clazz[this.getKidClazzes().size()]));
      withoutMethods(this.getMethods().toArray(new Method[this.getMethods().size()]));
      withoutRoles(this.getRoles().toArray(new Role[this.getRoles().size()]));
      getPropertyChangeSupport().firePropertyChange("REMOVE_YOU"thisnull);
   }
   
   public boolean isWithNoObjects()
   {
      return this.isAbztract() || this.isInterfaze();
   }
   
   
   //==========================================================================
   public boolean isInterface()
   {
      return this.;
   }
   public boolean setInterface(boolean value)
   {
      if (this. != value)
      {
         boolean oldValue = this.;
         this. = value;
         getPropertyChangeSupport().firePropertyChange(oldValuevalue);
         return true;
      }
      return false;
   }
   public Attribute getOrCreateAttribute(String attrNameDataType attrType)
   {
      for (Attribute attrDecl : getAttributes())
      {
         if (attrDecl.getName().equals(attrName))
         {
            return attrDecl;
         }
      }
      return new Attribute(attrNameattrType).with(this);
   }
   //==========================================================================
   public boolean isExternal()
   {
      return this.;
   }
   public boolean setExternal(boolean value)
   {
      if (this. != value)
      {
         boolean oldValue = this.;
         this. = value;
         getPropertyChangeSupport().firePropertyChange(oldValuevalue);
         return true;
      }
      return false;
   }
   public Clazz withExternal(boolean value)
   {
      setExternal(value);
      return this;
   }
   public String toString()
   {
      StringBuilder result = new StringBuilder();
      result.append(" ").append(this.getName());
      return result.substring(1);
   }
   
   public Clazz withInterface(boolean value)
   {
      setInterface(value);
      return this;
   } 
   
   //==========================================================================
   
   public Clazz without(Attribute... value)
   {
      if (this. == null || value==null){
         return this;
      }
      for (Attribute item : value)
      {
         if (item != null)
         {
            if (this..remove(item))
            {
               item.setClazz(null);
               getPropertyChangeSupport().firePropertyChange(itemnull);
            }
         }
      }
      return this;
   }
   public Clazz with(Method... value)
   {
      if(value==null){
         return this;
      }
      if (this. == null)
      {
         this. = new MethodSet();
      }
      for (Method item : value)
      {
         if (item != null)
         {
            if (this..add(item))
            {
               item.with(this);
               getPropertyChangeSupport().firePropertyChange(nullitem);
            }
         }
      }
      return this;
   }
   public Clazz without(Method... value)
   {
      if (this. == null || value==null){
         return this;
      }
      for (Method item : value)
      {
         if (item != null)
         {
            if (this..remove(item))
            {
               item.setClazz(null);
               getPropertyChangeSupport().firePropertyChange(itemnull);
            }
         }
      }
      return this;
   }
   public Clazz with(Role... value)
   {
      if(value==null){
         return this;
      }
      for (Role item : value)
      {
         if (item != null)
         {
            if (this. == null)
            {
               this. = new RoleSet();
            }
            if (this..add (item))
            {
               item.with(this);
               getPropertyChangeSupport().firePropertyChange(nullvalue);
            }
         }
      }
      return this;
   }
   public Clazz without(Role... value)
   {
      if (this. == null || value==null){
         return this;
      }
      for (Role item : value)
      {
         if (item != null)
         {
            if (this..remove(item))
            {
               item.setClazz(null);
               getPropertyChangeSupport().firePropertyChange(itemnull);
            }
         }
      }
      return this;
   }
   {
      ClazzSet result = new ClazzSet().with(this);
      return result.getSuperClassTransitive();
   }
   {
      ClazzSet result = new ClazzSet().with(this);
      return result.getInterfacesTransitive();
   }
   
   public Method createMethod(String nameParameter... parameters)
   {
      return new Method().withName(name).with(parameters).with(this);     
   }
   
   public Method createMethod(String nameDataType returnValueParameter... parameters)
   {
      return new Method().withName(name).with(parameters).withReturnType(returnValue).with(this);     
   }
   public Attribute createAttribute(String nameDataType type)
   {
      Attribute attribute = new Attribute(nametype);
      with(attribute);
      return attribute;
   }
   {
      Method value = new Method();
      with(value);
      return value;
   } 
   public Clazz withoutKidClazz(Clazz... value)
   {
      if (this. == null || value==null){
         return this;
      }
      for (Clazz item : value)
      {
         if (item != null)
         {
            if (this..remove(item))
            {
               item.withoutSuperClazz(this);
               getPropertyChangeSupport().firePropertyChange(itemnull);
            }
         }
      }
      return this;
   }
   public Clazz createKidClazz(String name)
   {
      Clazz value = new Clazz(name);
      withKidClazzes(value);
      return value;
   } 
   
   {
      Clazz value = new Clazz(null);
      withKidClazzes(value);
      return value;
   } 
   {
      ClazzSet result = new ClazzSet().with(this);
      return result.getSuperClazzesTransitive();
   }
   public Clazz withoutSuperClazz(Clazz... value)
   {
      if (this. == null || value==null){
         return this;
      }
      for (Clazz item : value)
      {
         if (item != null)
         {
            if (this..remove(item))
            {
               item.withoutKidClazz(this);
               getPropertyChangeSupport().firePropertyChange(itemnull);
            }
         }
      }
      return this;
   }
   {
      Clazz value = new Clazz(null);
      withSuperClazz(value);
      return value;
   } 
   public Clazz withClassModel(ClassModel value)
   {
      setClassModel(value);
      return this;
   } 
   {
      ClassModel value = new ClassModel();
      withClassModel(value);
      return value;
   } 
   boolean addToKidClazzes(Clazz value)
   {
      boolean changed = false;
      
      if (value != null)
      {
         if (this. == null)
         {
            this. = new ClazzSet();
         }
         
         changed = this..add (value);
         
         if (changed)
         {
            value.withSuperClazzes(this);
            getPropertyChangeSupport().firePropertyChange(nullvalue);
         }
      }
         
      return changed;   
   }
   Clazz withoutKidClazzes(Clazz... value)
   {
      for (Clazz item : value)
      {
            if ((this. != null) && (item != null))
            {
               if ( this..remove(item))
               {
                  item.withoutSuperClazzes(this);
                  getPropertyChangeSupport().firePropertyChange(itemnull);
               }
            }
      }
      return this;
   }
   {
      Clazz value = new Clazz(null);
      withKidClazzes(value);
      return value;
   } 
   Clazz withSuperClazzes(Clazz... value)
   {
      return withSuperClazz(value);
   } 
   {
      return withoutSuperClazz(value);
   }
   {
      Clazz value = new Clazz(null);
      withSuperClazzes(value);
      return value;
   } 
   {
      return with(value);
   } 
   {
      return without(value);
   }
   {
      Attribute value = new Attribute(nullnull);
      withAttributes(value);
      return value;
   } 
   Clazz withMethods(Method... value)
   {
      return with(value);
   } 
   Clazz withoutMethods(Method... value)
   {
      return without(value);
   }
   {
      Method value = new Method();
      withMethods(value);
      return value;
   } 
   Clazz withRoles(Role... value)
   {
      return with(value);
   } 
   Clazz withoutRoles(Role... value)
   {
      return without(value);
   }
   {
      Role value = new Role();
      withRoles(value);
      return value;
   } 
   
   //==========================================================================
   
   boolean isInterfaze()
   {
      return this.;
   }
   
   void setInterfaze(boolean value)
   {
      if (this. != value)
      {
         boolean oldValue = this.;
         this. = value;
         getPropertyChangeSupport().firePropertyChange(oldValuevalue);
      }
   }
   
   Clazz withInterfaze(boolean value)
   {
      setInterfaze(value);
      return this;
   }
   public Clazz withImport(String value)
   {
      this..add(value);
      return this;
   } 
   public ArrayList<StringgetImports(){
      return ;
   }
   public boolean isEnumeration() {
      for (Enumeration enumeration : getClassModel().getEnumerations()) {
	     String enumName = enumeration.getFullName();
		 String clazzName = this.getFullName();
		 if (enumName.equals(clazzName))
		    return true;
	  }
      return false;
   }
   
   public boolean hasFeature(Feature feature) {
	   return getClassModel().hasFeature(featurethis);
   }


   
   
              one                       many
 Clazz ----------------------------------- Annotation
              clazz                   annotations
 
   
   public static final String PROPERTY_ANNOTATIONS = "annotations";
   private AnnotationSet annotations = null;
   private boolean abztract;
   
   {
      if (this. == null)
      {
         return .;
      }
   
      return this.;
   }
   public Clazz withAnnotations(Annotation... value)
   {
      if(value==null){
         return this;
      }
      for (Annotation item : value)
      {
         if (item != null)
         {
            if (this. == null)
            {
               this. = new AnnotationSet();
            }
            
            boolean changed = this..add (item);
            if (changed)
            {
               item.withClazz(this);
               getPropertyChangeSupport().firePropertyChange(nullitem);
            }
         }
      }
      return this;
   } 
   public Clazz withoutAnnotations(Annotation... value)
   {
      for (Annotation item : value)
      {
         if ((this. != null) && (item != null))
         {
            if (this..remove(item))
            {
               item.setClazz(null);
               getPropertyChangeSupport().firePropertyChange(itemnull);
            }
         }
      }
      return this;
   }
   {
      Annotation value = new Annotation();
      withAnnotations(value);
      return value;
   }
   public boolean isAbztract()
   {
      return ;
   } 
   
   //==========================================================================
   
   public static final String PROPERTY_ABZTRACT = "abztract";
   
   public void setAbztract(boolean value)
   {
      if (this. != value)
      {
         boolean oldValue = this.;
         this. = value;
         getPropertyChangeSupport().firePropertyChange(oldValuevalue);
      }
   }
   
   public Clazz withAbztract(boolean value)
   {
      setAbztract(value);
      return this;
   } 
New to GrepCode? Check out our FAQ X