diff options
Diffstat (limited to '')
-rwxr-xr-x | collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/layout/Entity.java | 246 |
1 files changed, 246 insertions, 0 deletions
diff --git a/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/layout/Entity.java b/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/layout/Entity.java new file mode 100755 index 0000000000..34c750bbce --- /dev/null +++ b/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/layout/Entity.java @@ -0,0 +1,246 @@ +package org.apache.tuscany.sca.impl.layout; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; + +import org.apache.tuscany.sca.impl.artifacts.Component; +import org.apache.tuscany.sca.impl.artifacts.Property; +import org.apache.tuscany.sca.impl.artifacts.Reference; +import org.apache.tuscany.sca.impl.artifacts.Service; + +/** + * Represents an unit (a component including its references, services, properties + * and adjacent units) in the diagram. + * @author nirmal + * + */ +public class Entity { + + private String componentName; + private int X, Y, level, lane, refHeight, serHeight, propLength; + + public static final int defaultNoOfSers= Component.DEFAULT_HEIGHT / (Service.MAXIMUM_HEIGHT+Service.SPACING); + public static final int defaultNoOfRefs= Component.DEFAULT_HEIGHT / (Reference.MAXIMUM_HEIGHT+Reference.SPACING); //same value for defaultNoOfSers + public static final int defaultNoOfProps= Component.DEFAULT_WIDTH / (Property.MAXIMUM_HEIGHT+Property.SPACING); + + private HashMap<String, String> referenceToServiceMap = new HashMap<String, String>(); + + private ArrayList<String> references = new ArrayList<String>(); + private ArrayList<String> refProperties = new ArrayList<String>(); + + private ArrayList<String> services = new ArrayList<String>(); + private ArrayList<String> serProperties = new ArrayList<String>(); + + private ArrayList<String> properties = new ArrayList<String>(); + private ArrayList<String> propProperties = new ArrayList<String>(); + + private HashSet<String> adjacentEntities = new HashSet<String>(); + + + public Entity(){ + + + } + + public void referenceHeight(){ + if(Entity.defaultNoOfRefs < getNoOfRefs()){ + + refHeight = (Component.DEFAULT_HEIGHT / getNoOfRefs()) - Reference.SPACING; + } + else + refHeight = Reference.MAXIMUM_HEIGHT; + } + + public void serviceHeight(){ + if(Entity.defaultNoOfSers < getNoOfSers()){ + + serHeight = (Component.DEFAULT_HEIGHT / getNoOfSers()) - Service.SPACING; + } + else + serHeight = Service.MAXIMUM_HEIGHT; + } + + public void propertyLength(){ + if(Entity.defaultNoOfProps < getNoOfProps()){ + + propLength = (Component.DEFAULT_WIDTH / getNoOfProps()) - Property.SPACING; + } + else + propLength = Property.MAXIMUM_HEIGHT; + } + + public int getNoOfRefs(){ + return references.size(); + } + + public int getNoOfSers(){ + return services.size(); + } + + public int getNoOfProps(){ + return properties.size(); + } + + public int getNoOfAdjacentUnits(){ + return adjacentEntities.size(); + } + + /** + * Put a value to referenceToServiceMap + * @param ref + * @param ser + * @return successfully added or not + */ + //assumption there can not be two services for the same reference + public boolean addToRefToSerMap(String ref, String ser){ + ref = ref.toLowerCase(); + ser = ser.toLowerCase(); + + if (referenceToServiceMap.containsKey(ref)) + return false; + + referenceToServiceMap.put(ref, ser); + return true; + } + + /** + * Retrieve a service name for a given reference + * @param ref + * @return service name + */ + public String getSerOfRef(String ref){ + ref = ref.toLowerCase(); + + if (!referenceToServiceMap.containsKey(ref)) + return null; + + return referenceToServiceMap.get(ref); + } + + public void addAService(String serName){ + serName = serName.toLowerCase(); + services.add(serName); + + } + + public void addAReference(String refName){ + refName = refName.toLowerCase(); + references.add(refName); + + } + + public void addAProperty(String propName){ + propName = propName.toLowerCase(); + properties.add(propName); + + } + + public void addAnAdjacentEntity(String x){ + + adjacentEntities.add(x); + + } + + public void setComponentName(String componentName) { + this.componentName = componentName; + } + public String getComponentName() { + return componentName; + } + + public HashMap<String, String> getReferenceToServiceMap() { + return referenceToServiceMap; + } + public void setReferenceToServiceMap( + HashMap<String, String> referenceToServiceMap) { + this.referenceToServiceMap = referenceToServiceMap; + } + public ArrayList<String> getProperties() { + return properties; + } + public void setProperties(ArrayList<String> properties) { + this.properties = properties; + } + public HashSet<String> getAdjacentEntities() { + return adjacentEntities; + } + public void setAdjacentEntities(HashSet<String> adjacentEntities) { + this.adjacentEntities = adjacentEntities; + } + public void setServices(ArrayList<String> services) { + this.services = services; + } + public ArrayList<String> getServices() { + return services; + } + + public int getX() { + return X; + } + + public void setX(int x) { + X = x; + } + + public int getY() { + return Y; + } + + public void setY(int y) { + Y = y; + } + + public int getLevel() { + return level; + } + + public void setLevel(int level) { + this.level = level; + } + + public int getLane() { + return lane; + } + + public void setLane(int lane) { + this.lane = lane; + } + + public ArrayList<String> getRefProperties() { + return refProperties; + } + + public void setRefProperties(ArrayList<String> refProperties) { + this.refProperties = refProperties; + } + + public ArrayList<String> getSerProperties() { + return serProperties; + } + + public void setSerProperties(ArrayList<String> serProperties) { + this.serProperties = serProperties; + } + + public ArrayList<String> getPropProperties() { + return propProperties; + } + + public void setPropProperties(ArrayList<String> propProperties) { + this.propProperties = propProperties; + } + + public int getRefHeight() { + return refHeight; + } + + public int getSerHeight() { + return serHeight; + } + + public int getPropLength() { + return propLength; + } + +} |