cb.generator
Class Factory

java.lang.Object
  |
  +--cb.generator.Factory

public class Factory
extends java.lang.Object

Factory for classes, methods, etc., it also contains methods to add relationships, like uses/realize relationships. If you don't like the way the default factory works just subclass it, and call setInstance() (before creating the generator, of course).

Version:
$Id: Factory.java,v 1.6 2001/06/27 12:56:35 dahm Exp $
Author:
M. Dahm

Field Summary
protected  int counter
           
protected  java.util.HashMap quid_map
          Register created objects by the quid of the petal object
 
Constructor Summary
protected Factory()
           
 
Method Summary
 void addAssociation(Class class1, Role role1, Class class2, Role role2, Class assoc_class)
          Simply maps association to a newly generated class that maintains the connections.
 void addField(Class c, Field field)
           
 void addImplementedInterface(Class c, Class super_class)
           
 void addMethod(Class c, Method m)
           
 void addObject(java.lang.String quid, Node obj)
           
 void addRealizedClass(Class c, Class super_class)
          Alias for addImplementedInterface()
 void addSuperClass(Class c, Class super_class)
           
 void addUsedClass(Class c, Class used_class, UsesRelationship rel)
           
 Class createClass(Class clazz)
           
 Class createClass(Class clazz, java.lang.String name, java.lang.String pack, java.lang.String acc, boolean is_interface)
           
 Field createField(ClassAttribute attr)
           
 Field createField(ClassAttribute attr, java.lang.String name, java.lang.String type, java.lang.String acc, java.lang.String init)
           
 Method createMethod(Operation op)
           
 Method createMethod(Operation op, java.lang.String name, java.lang.String type, java.lang.String acc, java.util.List params)
           
 Parameter createParameter(Parameter p)
           
 Parameter createParameter(java.lang.String name, java.lang.String type)
           
 Method[] createSetGetMethods(java.lang.String name, java.lang.String type)
           
protected  java.awt.Dimension getCardinality(Role role)
           
protected  java.lang.String getClassName(Class clazz)
           
static Factory getInstance()
           
 Node getObject(java.lang.String quid)
           
 java.util.Collection getObjects()
           
protected  java.lang.String makeName(java.lang.String name)
          Convert Rose identifier to normal one.
protected  java.lang.String[] makeNames(java.lang.String qual)
          Convert fully qualified rose name (with "foo::bar")
 void removeObject(java.lang.String quid)
           
static void setInstance(Factory f)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

quid_map

protected java.util.HashMap quid_map
Register created objects by the quid of the petal object

counter

protected int counter
Constructor Detail

Factory

protected Factory()
Method Detail

addObject

public void addObject(java.lang.String quid,
                      Node obj)

removeObject

public void removeObject(java.lang.String quid)

getObject

public Node getObject(java.lang.String quid)

getObjects

public java.util.Collection getObjects()

getInstance

public static Factory getInstance()

setInstance

public static void setInstance(Factory f)

getClassName

protected java.lang.String getClassName(Class clazz)

makeName

protected java.lang.String makeName(java.lang.String name)
Convert Rose identifier to normal one.

makeNames

protected java.lang.String[] makeNames(java.lang.String qual)
Convert fully qualified rose name (with "foo::bar")
Returns:
tuple (class name, package name)

createClass

public Class createClass(Class clazz,
                         java.lang.String name,
                         java.lang.String pack,
                         java.lang.String acc,
                         boolean is_interface)

createClass

public Class createClass(Class clazz)

createMethod

public Method createMethod(Operation op,
                           java.lang.String name,
                           java.lang.String type,
                           java.lang.String acc,
                           java.util.List params)

createMethod

public Method createMethod(Operation op)

createParameter

public Parameter createParameter(java.lang.String name,
                                 java.lang.String type)

createParameter

public Parameter createParameter(Parameter p)

createField

public Field createField(ClassAttribute attr,
                         java.lang.String name,
                         java.lang.String type,
                         java.lang.String acc,
                         java.lang.String init)

createField

public Field createField(ClassAttribute attr)

addSuperClass

public void addSuperClass(Class c,
                          Class super_class)

addImplementedInterface

public final void addImplementedInterface(Class c,
                                          Class super_class)

addRealizedClass

public void addRealizedClass(Class c,
                             Class super_class)
Alias for addImplementedInterface()

createSetGetMethods

public Method[] createSetGetMethods(java.lang.String name,
                                    java.lang.String type)

getCardinality

protected java.awt.Dimension getCardinality(Role role)

addAssociation

public void addAssociation(Class class1,
                           Role role1,
                           Class class2,
                           Role role2,
                           Class assoc_class)
Simply maps association to a newly generated class that maintains the connections. If the association has an association class no new class is generated. Also adds access methods to the corresponding classes. TODO: Does not regard multiple associations between classes, cardinality currently not checked.

addUsedClass

public void addUsedClass(Class c,
                         Class used_class,
                         UsesRelationship rel)

addField

public void addField(Class c,
                     Field field)

addMethod

public void addMethod(Class c,
                      Method m)