tuscany-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From rf...@apache.org
Subject svn commit: r1164133 [2/3] - in /tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src: main/java/org/apache/tuscany/sca/diagram/ main/java/org/apache/tuscany/sca/diagram/artifacts/ main/java/org/apache/tuscany/sca/diagram/gene...
Date Thu, 01 Sep 2011 16:22:39 GMT
Added: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/ComponentEntity.java
URL: http://svn.apache.org/viewvc/tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/ComponentEntity.java?rev=1164133&view=auto
==============================================================================
--- tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/ComponentEntity.java (added)
+++ tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/ComponentEntity.java Thu Sep  1 16:22:37 2011
@@ -0,0 +1,236 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package org.apache.tuscany.sca.diagram.layout;
+
+import java.util.HashMap;
+
+import org.apache.tuscany.sca.diagram.artifacts.Constant;
+
+/**
+ * Represents an unit (a component including its references, services, properties
+ * and adjacent units) in the diagram.
+ *
+ */
+public class ComponentEntity extends Entity {
+
+    //	private String componentName;
+    //	private int X, Y, level=-1, lane=-1, refHeight, serHeight, propLength;
+    //	private final int height= Component.DEFAULT_HEIGHT, width= Component.DEFAULT_WIDTH;
+    //	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 HashSet<String> connectedEntities = new HashSet<String>();
+
+    public ComponentEntity() {
+
+        setStartPosition(200);
+        setHeight(Constant.COMPONENT_DEFAULT_HEIGHT);
+        setWidth(Constant.COMPONENT_DEFAULT_WIDTH);
+
+        setDefaultNoOfSers(Constant.COMPONENT_DEFAULT_HEIGHT / (Constant.DEFAULT_MAXIMUM_HEIGHT_FOR_COMPONENT_OF_SERVICE + Constant.SPACING_FOR_COMPONENT_OF_SERVICE));
+        setDefaultNoOfRefs(Constant.COMPONENT_DEFAULT_HEIGHT / (Constant.DEFAULT_MAXIMUM_HEIGHT_FOR_COMPONENT_OF_REFERENCE + Constant.SPACING_FOR_COMPONENT_OF_REFERENCE));
+        setDefaultNoOfProps(Constant.COMPONENT_DEFAULT_WIDTH / (Constant.DEFAULT_MAXIMUM_HEIGHT_FOR_COMPONENT_OF_PROPERTY + Constant.SPACING_FOR_COMPONENT_OF_PROPERTY));
+    }
+
+    public void referenceHeight() {
+        if (getDefaultNoOfRefs() < getNoOfRefs()) {
+
+            setRefHeight((Constant.COMPONENT_DEFAULT_HEIGHT / getNoOfRefs()) - Constant.SPACING_FOR_COMPONENT_OF_REFERENCE);
+        } else
+            setRefHeight(Constant.DEFAULT_MAXIMUM_HEIGHT_FOR_COMPONENT_OF_REFERENCE);
+    }
+
+    public void serviceHeight() {
+        if (getDefaultNoOfSers() < getNoOfSers()) {
+
+            setSerHeight((Constant.COMPONENT_DEFAULT_HEIGHT / getNoOfSers()) - Constant.SPACING_FOR_COMPONENT_OF_SERVICE);
+        } else
+            setSerHeight(Constant.DEFAULT_MAXIMUM_HEIGHT_FOR_COMPONENT_OF_SERVICE);
+    }
+
+    public void propertyLength() {
+        if (getDefaultNoOfProps() < getNoOfProps()) {
+
+            setPropLength((Constant.COMPONENT_DEFAULT_WIDTH / getNoOfProps()) - Constant.SPACING_FOR_COMPONENT_OF_PROPERTY);
+        } else
+            setPropLength(Constant.DEFAULT_MAXIMUM_HEIGHT_FOR_COMPONENT_OF_PROPERTY);
+    }
+
+    /**
+     * 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 HashMap<String, String> getReferenceToServiceMap() {
+        return referenceToServiceMap;
+    }
+
+    public void setReferenceToServiceMap(HashMap<String, String> referenceToServiceMap) {
+        this.referenceToServiceMap = referenceToServiceMap;
+    }
+
+    //	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){
+    ////		System.out.println("eee "+x);
+    //		adjacentEntities.add(x);
+    //		
+    //	}
+    //	
+    //	public void addAnConnectedEntity(String x){
+    ////		System.out.println("eee "+x);
+    //		adjacentEntities.add(x);
+    //		
+    //	}
+    //	
+    //	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 ArrayList<String> getReferences() {
+    //		return references;
+    //	}
+
+    //	public void setConnectedEntities(HashSet<String> connectedEntities) {
+    //		this.connectedEntities = connectedEntities;
+    //	}
+    //
+    //	public HashSet<String> getConnectedEntities() {
+    //		return connectedEntities;
+    //	}
+
+}

Propchange: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/ComponentEntity.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/ComponentEntity.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/ComponentEntity.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/CompositeEntity.java
URL: http://svn.apache.org/viewvc/tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/CompositeEntity.java?rev=1164133&view=auto
==============================================================================
--- tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/CompositeEntity.java (added)
+++ tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/CompositeEntity.java Thu Sep  1 16:22:37 2011
@@ -0,0 +1,374 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package org.apache.tuscany.sca.diagram.layout;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+import org.apache.tuscany.sca.diagram.artifacts.Constant;
+
+/**
+ * Represents an unit (a component including its references, services, properties
+ * and adjacent units) in the diagram.
+ *
+ */
+public class CompositeEntity extends Entity {
+
+    //	private String componentName;
+    //	private int X, Y, level=-1, lane=-1, refHeight, serHeight, propLength;
+    //	private final int height= Component.DEFAULT_HEIGHT, width= Component.DEFAULT_WIDTH;
+    //	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 final String fileNameSuffix = "_diagram";
+    private int maxInternalLevel = 0;
+    private int maxInternalLane = 0;
+    private ComponentEntity[] componentList;
+    private int[][] connections;
+    private HashMap<String, String> promoteAService = new HashMap<String, String>();
+    private HashMap<String, ArrayList<String>> promoteAReference = new HashMap<String, ArrayList<String>>();
+    private ArrayList<String> includedComposites = new ArrayList<String>();
+
+    //private HashSet<String> connectedEntities = new HashSet<String>();
+
+    public CompositeEntity(String name) {
+
+        setStartPosition(200);
+        setLevel(0);
+        setLane(0);
+
+        setX(getStartPosition());
+        setY(getStartPosition() / 2);
+
+        setName(name);
+        //componentList = comps;
+        //setConnections(conns);
+
+    }
+
+    public void referenceHeight() {
+        //System.err.println(getDefaultNoOfRefs() + " kkkkkkk "+getNoOfRefs());
+
+        if (getDefaultNoOfRefs() < getNoOfRefs()) {
+
+            setRefHeight((getHeight() / getNoOfRefs()) - Constant.SPACING_FOR_COMPOSITE_OF_REFERENCE);
+        } else
+            setRefHeight(Constant.DEFAULT_MAXIMUM_HEIGHT_FOR_COMPOSITE_OF_REFERENCE);
+    }
+
+    public void serviceHeight() {
+        if (getDefaultNoOfSers() < getNoOfSers()) {
+            setSerHeight((getHeight() / getNoOfSers()) - Constant.SPACING_FOR_COMPOSITE_OF_SERVICE);
+        } else
+            setSerHeight(Constant.DEFAULT_MAXIMUM_HEIGHT_FOR_COMPOSITE_OF_SERVICE);
+    }
+
+    public void propertyLength() {
+        if (getDefaultNoOfProps() < getNoOfProps()) {
+
+            setPropLength((getWidth() / getNoOfProps()) - Constant.SPACING_FOR_COMPOSITE_OF_PROPERTY);
+        } else
+            setPropLength(Constant.DEFAULT_MAXIMUM_HEIGHT_FOR_COMPOSITE_OF_PROPERTY);
+    }
+
+    //	/**
+    //	 * 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 HashMap<String, String> getReferenceToServiceMap() {
+    //		return referenceToServiceMap;
+    //	}
+    //	
+    //	public void setReferenceToServiceMap(
+    //			HashMap<String, String> referenceToServiceMap) {
+    //		this.referenceToServiceMap = referenceToServiceMap;
+    //	}
+
+    public void calcHeight(int initPoint) {
+        setHeight((Constant.COMPONENT_DEFAULT_HEIGHT * getSpaceFactor()) * (maxInternalLevel + 1) + initPoint);
+    }
+
+    public void calcWidth(int initPoint) {
+        //System.err.println("maxInternalLane "+maxInternalLane);
+        setWidth((Constant.COMPONENT_DEFAULT_WIDTH * getSpaceFactor()) * (maxInternalLane + 1) + initPoint);
+    }
+
+    private int max(int a, int b) {
+        if (a >= b)
+            return a;
+        return b;
+    }
+
+    public void setMaxInternalProperties() {
+
+        for (ComponentEntity ent : componentList) {
+
+            maxInternalLevel = max(maxInternalLevel, ent.getLevel());
+            maxInternalLane = max(maxInternalLane, ent.getLane());
+
+        }
+        //System.out.println("++++++ "+maxInternalLevel+" +++++ "+maxInternalLane);
+    }
+
+    public int getMaxInternalLevel() {
+        return maxInternalLevel;
+    }
+
+    public int getMaxInternalLane() {
+        return maxInternalLane;
+    }
+
+    public boolean addToPromoteAService(String compositeSer, String componentSer) {
+        //ref = ref.toLowerCase();
+        //ser = ser.toLowerCase();
+
+        if (promoteAService.containsKey(compositeSer))
+            return false;
+
+        promoteAService.put(compositeSer, componentSer);
+        return true;
+    }
+
+    public void setPromoteAService(HashMap<String, String> promoteAService) {
+        this.promoteAService = promoteAService;
+    }
+
+    public HashMap<String, String> getPromoteAService() {
+        return promoteAService;
+    }
+
+    public boolean addToPromoteAReference(String compositeRef, String componentRef) {
+        ArrayList<String> list;
+
+        if (promoteAReference.containsKey(compositeRef)) {
+            list = promoteAReference.get(compositeRef);
+        } else {
+            list = new ArrayList<String>();
+        }
+
+        list.add(componentRef);
+        promoteAReference.put(compositeRef, list);
+        return true;
+    }
+
+    public boolean addToIncludedComposites(String composite) {
+
+        includedComposites.add(composite);
+
+        return true;
+    }
+
+    public void setPromoteAReference(HashMap<String, ArrayList<String>> promoteAReference) {
+        this.promoteAReference = promoteAReference;
+    }
+
+    public HashMap<String, ArrayList<String>> getPromoteAReference() {
+        return promoteAReference;
+    }
+
+    public ComponentEntity[] getComponentList() {
+        return componentList;
+    }
+
+    public void setComponentList(ComponentEntity[] componentList) {
+        this.componentList = componentList;
+    }
+
+    public void setConnections(int[][] connections) {
+        this.connections = connections;
+    }
+
+    public int[][] getConnections() {
+        return connections;
+    }
+
+    public void setAttributes() {
+
+        setMaxInternalProperties();
+
+        //System.out.println("++++++ "+this.maxInternalLevel);
+
+        calcHeight(getY());
+        calcWidth(getX());
+
+        setDefaultNoOfSers(getHeight() / (Constant.DEFAULT_MAXIMUM_HEIGHT_FOR_COMPOSITE_OF_SERVICE + Constant.SPACING_FOR_COMPOSITE_OF_SERVICE));
+        setDefaultNoOfRefs(getHeight() / (Constant.DEFAULT_MAXIMUM_HEIGHT_FOR_COMPOSITE_OF_REFERENCE + Constant.SPACING_FOR_COMPOSITE_OF_REFERENCE));
+        setDefaultNoOfProps(getWidth() / (Constant.DEFAULT_MAXIMUM_HEIGHT_FOR_COMPOSITE_OF_PROPERTY + Constant.SPACING_FOR_COMPOSITE_OF_PROPERTY));
+
+        referenceHeight();
+        serviceHeight();
+        propertyLength();
+    }
+
+    public ArrayList<String> getIncludedComposites() {
+        return includedComposites;
+    }
+
+    public String getFileNameSuffix() {
+        return fileNameSuffix;
+    }
+
+    //	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){
+    ////		System.out.println("eee "+x);
+    //		adjacentEntities.add(x);
+    //		
+    //	}
+    //	
+    //	public void addAnConnectedEntity(String x){
+    ////		System.out.println("eee "+x);
+    //		adjacentEntities.add(x);
+    //		
+    //	}
+    //	
+    //	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 ArrayList<String> getReferences() {
+    //		return references;
+    //	}
+
+    //	public void setConnectedEntities(HashSet<String> connectedEntities) {
+    //		this.connectedEntities = connectedEntities;
+    //	}
+    //
+    //	public HashSet<String> getConnectedEntities() {
+    //		return connectedEntities;
+    //	}
+
+}

Propchange: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/CompositeEntity.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/CompositeEntity.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/CompositeEntity.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/Entity.java
URL: http://svn.apache.org/viewvc/tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/Entity.java?rev=1164133&view=auto
==============================================================================
--- tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/Entity.java (added)
+++ tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/Entity.java Thu Sep  1 16:22:37 2011
@@ -0,0 +1,259 @@
+package org.apache.tuscany.sca.diagram.layout;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+
+public abstract class Entity {
+
+    private int id = -1; //a unique integer id (0..n)
+    private String name; // a unique name
+    private int spaceFactor = 2; //which determines the free space surrounded by this
+    private int x; // x coordinate
+    private int y; // y coordinate
+    private int level = -1; // corresponding row which this entity is placed
+    private int lane = -1; // corresponding column which this entity is placed
+    private boolean isPossitionSet = false;
+    private int height; // height of the entity
+    private int width; // width of the entity
+    private int refHeight; // height of a reference element
+    private int serHeight; // height of a service element
+    private int propLength; // length of a property element
+    private int defaultNoOfSers; // default # of service elements
+    private int defaultNoOfRefs; // default # of reference elements
+    private int defaultNoOfProps; // default # of property elements
+    private int startPosition = 0;
+    private Entity parent = null;
+
+    private ArrayList<String> references = new ArrayList<String>();
+
+    private ArrayList<String> services = new ArrayList<String>();
+
+    private ArrayList<String> properties = new ArrayList<String>();
+
+    private HashSet<String> adjacentEntities = new HashSet<String>();
+
+    public abstract void referenceHeight();
+
+    public abstract void serviceHeight();
+
+    public abstract void propertyLength();
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public int getX() {
+        return x;
+    }
+
+    public void setX(int init) {
+        this.x = init + width * spaceFactor * lane;
+    }
+
+    public int getY() {
+        return y;
+    }
+
+    public void setY(int init) {
+        this.y = init + height * spaceFactor * level;
+    }
+
+    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 int getHeight() {
+        return height;
+    }
+
+    public void setHeight(int height) {
+        this.height = height;
+    }
+
+    public int getWidth() {
+        return width;
+    }
+
+    public void setWidth(int width) {
+        this.width = width;
+    }
+
+    public int getRefHeight() {
+        return refHeight;
+    }
+
+    public void setRefHeight(int refHeight) {
+        this.refHeight = refHeight;
+    }
+
+    public int getSerHeight() {
+        return serHeight;
+    }
+
+    public void setSerHeight(int serHeight) {
+        this.serHeight = serHeight;
+    }
+
+    public int getPropLength() {
+        return propLength;
+    }
+
+    public void setPropLength(int propLength) {
+        this.propLength = propLength;
+    }
+
+    public int getDefaultNoOfSers() {
+        return defaultNoOfSers;
+    }
+
+    public void setDefaultNoOfSers(int defaultNoOfSers) {
+        this.defaultNoOfSers = defaultNoOfSers;
+    }
+
+    public int getDefaultNoOfRefs() {
+        return defaultNoOfRefs;
+    }
+
+    public void setDefaultNoOfRefs(int defaultNoOfRefs) {
+        this.defaultNoOfRefs = defaultNoOfRefs;
+    }
+
+    public int getDefaultNoOfProps() {
+        return defaultNoOfProps;
+    }
+
+    public void setDefaultNoOfProps(int defaultNoOfProps) {
+        this.defaultNoOfProps = defaultNoOfProps;
+    }
+
+    public int getNoOfRefs() {
+        return references.size();
+    }
+
+    public int getNoOfSers() {
+        return services.size();
+    }
+
+    public int getNoOfProps() {
+        return properties.size();
+    }
+
+    public int getNoOfAdjacentUnits() {
+        return adjacentEntities.size();
+    }
+
+    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) {
+        //		System.out.println("eee "+x);
+        adjacentEntities.add(x);
+
+    }
+
+    public void addAnConnectedEntity(String x) {
+        //		System.out.println("eee "+x);
+        adjacentEntities.add(x);
+
+    }
+
+    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 ArrayList<String> getReferences() {
+        return references;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public int getId() {
+        return id;
+    }
+
+    public void setPossitionSet(boolean isPossitionSet) {
+        this.isPossitionSet = isPossitionSet;
+    }
+
+    public boolean isPossitionSet() {
+        return isPossitionSet;
+    }
+
+    public int getSpaceFactor() {
+        return spaceFactor;
+    }
+
+    public void setSpaceFactor(int spaceFactor) {
+        this.spaceFactor = spaceFactor;
+    }
+
+    public void setStartPosition(int startPosition) {
+        this.startPosition = startPosition;
+    }
+
+    public int getStartPosition() {
+        return startPosition;
+    }
+
+    public void setParent(Entity parent) {
+        this.parent = parent;
+    }
+
+    public Entity getParent() {
+        return parent;
+    }
+
+}

Propchange: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/Entity.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/Entity.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/Entity.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/EntityBuilder.java
URL: http://svn.apache.org/viewvc/tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/EntityBuilder.java?rev=1164133&view=auto
==============================================================================
--- tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/EntityBuilder.java (added)
+++ tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/EntityBuilder.java Thu Sep  1 16:22:37 2011
@@ -0,0 +1,733 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package org.apache.tuscany.sca.diagram.layout;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+
+public class EntityBuilder {
+
+    private Document dom;
+
+    //components connected to each other are tracked using following map
+    private HashMap<String, ArrayList<String>> connectedEntities = new HashMap<String, ArrayList<String>>();
+    private int totalWidth = 0;
+    private int totalHeight = 0;
+
+    CompositeEntity composite = null;
+
+    /**
+     * Constructor which initiates the DOM document
+     * @param aDom DOM document
+     */
+    public EntityBuilder(Document aDom) {
+        dom = aDom;
+    }
+
+    public CompositeEntity buildCompositeEntity() {
+
+        //get the root element
+        Element docEle = dom.getDocumentElement();
+
+        String compositeName;
+        compositeName = docEle.getAttribute("name");
+        //System.out.println("compositeName "+compositeName);
+
+        ComponentEntity[] comps = buildComponentEntities(docEle);
+
+        composite = new CompositeEntity(compositeName);
+
+        setParent(comps);
+
+        //System.out.println("ComponentEntity "+comps[0].getLevel());
+        int[][] conns = buildConnectionMatrix(comps);
+
+        composite.setComponentList(comps);
+        composite.setConnections(conns);
+
+        LayoutBuilder buildLayout = new LayoutBuilder(comps, conns);
+        buildLayout.placeEntities();
+
+        //System.out.println("conns "+conns[0][0]);
+
+        buildCompositeService(docEle);
+        buildCompositeReference(docEle);
+        buildCompositeProperty(docEle);
+
+        addInclusions(docEle);
+
+        composite.setAttributes();
+
+        return composite;
+    }
+
+    //	private void assignCoordinates() {
+    //
+    //		for(Entity ent: elts){
+    //			ent.setX(ent.getParent().getX() + ent.getStartPosition());
+    //			ent.setY(ent.getParent().getY() + ent.getStartPosition()/2);
+    //		}
+    //	}
+
+    private void setParent(ComponentEntity[] comps) {
+
+        for (ComponentEntity comp : comps) {
+            comp.setParent(composite);
+        }
+    }
+
+    private void buildCompositeService(Element docEle) {
+
+        NodeList nl = docEle.getElementsByTagName("service");
+        //System.err.println("^^^^^^^^^ "+nl.getLength());
+        if (nl != null && nl.getLength() > 0) {
+
+            for (int i = 0; i < nl.getLength(); i++) {
+
+                Element elt = (Element)nl.item(i);
+
+                if (elt.getParentNode().getNodeName().equals("composite")) {
+                    String compositeSer = elt.getAttribute("name");
+                    composite.addAService(compositeSer);
+
+                    String target = elt.getAttribute("promote");
+
+                    String service, serviceComp;
+                    String[] arr1 = extractComp(target);
+                    serviceComp = arr1[0];
+                    service = arr1[1];
+
+                    if (service == null) {
+                        composite.addToPromoteAService(compositeSer, serviceComp);
+                    } else {
+                        composite.addToPromoteAService(compositeSer, service);
+                    }
+                }
+
+            }
+        }
+    }
+
+    private void buildCompositeReference(Element docEle) {
+
+        NodeList nl = docEle.getElementsByTagName("reference");
+        //System.out.println("^^^^^^^^^ "+nl.getLength());
+        if (nl != null && nl.getLength() > 0) {
+
+            for (int i = 0; i < nl.getLength(); i++) {
+
+                Element elt = (Element)nl.item(i);
+
+                if (elt.getParentNode().getNodeName().equals("composite")) {
+                    String compositeRef = elt.getAttribute("name");
+                    composite.addAReference(compositeRef);
+
+                    String targetStr = elt.getAttribute("promote");
+
+                    String[] targets = targetStr.split(" ");
+
+                    for (String target : targets) {
+
+                        String reference, referenceComp;
+                        String[] arr1 = extractComp(target);
+                        referenceComp = arr1[0];
+                        reference = arr1[1];
+
+                        if (reference == null) {
+                            composite.addToPromoteAReference(compositeRef, referenceComp);
+                        } else {
+                            composite.addToPromoteAReference(compositeRef, reference);
+                        }
+                    }
+
+                }
+            }
+        }
+    }
+
+    private void buildCompositeProperty(Element docEle) {
+
+        NodeList nl = docEle.getElementsByTagName("property");
+        //System.out.println("^^^^^^^^^ "+nl.getLength());
+        if (nl != null && nl.getLength() > 0) {
+
+            for (int i = 0; i < nl.getLength(); i++) {
+
+                Element elt = (Element)nl.item(i);
+
+                if (elt.getParentNode().getNodeName().equals("composite")) {
+                    String compositeProp = elt.getAttribute("name");
+                    composite.addAProperty(compositeProp);
+                }
+            }
+        }
+    }
+
+    private void addInclusions(Element docEle) {
+
+        NodeList nl = docEle.getElementsByTagName("include");
+        //System.out.println("^^^^^^^^^ "+nl.getLength());
+        if (nl != null && nl.getLength() > 0) {
+
+            for (int i = 0; i < nl.getLength(); i++) {
+
+                Element elt = (Element)nl.item(i);
+
+                if (elt.getParentNode().getNodeName().equals("composite")) {
+                    String compToBeIncluded = elt.getAttribute("name");
+                    composite.addToIncludedComposites(compToBeIncluded);
+                }
+            }
+        }
+    }
+
+    private int[][] buildConnectionMatrix(ComponentEntity[] comps) {
+
+        int[][] connections = new int[comps.length][comps.length];
+        connections = initConnections(connections);
+
+        //		//sec. 5.4 in the spec
+        //		NodeList nl = docEle.getElementsByTagName("wire");
+        //		//System.out.println("^^^^^^^^^ "+nl.getLength());
+        //		if(nl != null && nl.getLength() > 0 ) {
+        //			
+        //			for(int i = 0 ; i < nl.getLength();i++) {
+        //				
+        //				Element elt = (Element)nl.item(i);
+        //				
+        //				String source = elt.getAttribute("source");
+        //				String target = elt.getAttribute("target");
+        //				
+        //				String service, serviceComp, reference, referenceComp;
+        //				
+        //				String[] arr1 = extractComp(target);
+        //				serviceComp = arr1[0];
+        //				service = arr1[1];
+        //				
+        //				String[] arr2 = extractComp(source);
+        //				referenceComp = arr2[0];
+        //				reference = arr2[1];
+
+        //				//System.out.println("^^^^^^^^^ "+source+" ::: "+target);
+        //				if(target.contains("/")){
+        //					String[] arr = target.split("/");
+        //					serviceComp = arr[0];
+        //					service = arr[1];
+        //				}
+        //				else{
+        //					serviceComp = target;
+        //					service = null;
+        //				}
+        //				
+        //				if(source.contains("/")){
+        //					String[] arr = source.split("/");
+        //					referenceComp = arr[0];
+        //					reference = arr[1];
+        //				}
+        //				else{
+        //					referenceComp = source;
+        //					reference = null;
+        //				}
+        //				//sec. 5.4 in the spec
+        //		NodeList nl = docEle.getElementsByTagName("wire");
+        //		//System.out.println("^^^^^^^^^ "+nl.getLength());
+        //		if(nl != null && nl.getLength() > 0 ) {
+        //			
+        //			for(int i = 0 ; i < nl.getLength();i++) {
+        //				
+        //				Element elt = (Element)nl.item(i);
+        //				
+        //				String source = elt.getAttribute("source");
+        //				String target = elt.getAttribute("target");
+        //				
+        //				String service, serviceComp, reference, referenceComp;
+        //				
+        //				String[] arr1 = extractComp(target);
+        //				serviceComp = arr1[0];
+        //				service = arr1[1];
+        //				
+        //				String[] arr2 = extractComp(source);
+        //				referenceComp = arr2[0];
+        //				reference = arr2[1];
+
+        for (Entity ent : comps) {
+            for (String name : ent.getAdjacentEntities()) {
+                ComponentEntity e2 = findEntity(comps, name);
+                if (ent != null && e2 != null) {
+                    //System.out.println("^^^^^^^^^ "+e2.getName());
+                    connections[ent.getId()][e2.getId()] = 1;
+                }
+            }
+
+        }
+        //				ComponentEntity e1 = findEntity(comps, referenceComp);
+        //				ComponentEntity e2 = findEntity(comps, serviceComp);
+        //				
+        //				System.out.println("^^^^^^^^^ "+e1.getName());
+        //				if(e1 != null && e2 != null){
+        //					System.out.println("^^^^^^^^^ "+e1.getId());
+        //					connections[e1.getId()][e2.getId()] = 1;
+        //					createConnection(e1, reference, serviceComp, service);
+        //				}
+        //			}
+        //		}
+        //		
+        return connections;
+    }
+
+    private String[] extractComp(String str) {
+
+        String[] arr = new String[2];
+
+        if (str.contains("/")) {
+            arr = str.split("/");
+        } else {
+            arr[0] = str;
+            arr[1] = null;
+        }
+        return arr;
+    }
+
+    private int[][] initConnections(int[][] connections) {
+
+        for (int i = 0; i < connections.length; i++) {
+            for (int j = 0; j < connections.length; j++) {
+                connections[i][j] = 0;
+            }
+        }
+        return connections;
+    }
+
+    public ComponentEntity[] buildComponentEntities(Element docEle) {
+
+        ComponentEntity[] elts = null;
+
+        //		//get the root element
+        //		Element docEle = dom.getDocumentElement();
+        //		compositeName = docEle.getAttribute("name");
+        //		System.out.println("compositeName "+compositeName);
+
+        //get a nodelist of elements
+        NodeList nl = docEle.getElementsByTagName("component");
+        if (nl != null && nl.getLength() > 0) {
+            elts = new ComponentEntity[nl.getLength()];
+
+            for (int i = 0; i < nl.getLength(); i++) {
+                elts[i] = new ComponentEntity();
+                Element nVal = (Element)nl.item(i);
+                //System.out.println(nVal.hasAttribute("name"));
+                elts[i].setId(i);
+                elts[i].setName(nVal.getAttribute("name"));
+
+                setServices(nVal, elts[i]);
+                setReferences(nVal, elts[i]);
+                setProperties(nVal, elts[i]);
+
+                elts[i].referenceHeight();
+                elts[i].serviceHeight();
+                elts[i].propertyLength();
+            }
+        }
+
+        buildWires(docEle, elts);
+        //		//sec. 5.4 in the spec
+        //		nl = docEle.getElementsByTagName("wire");
+        //		System.out.println("^^^^^^^^^ "+nl.getLength());
+        //		if(nl != null && nl.getLength() > 0 ) {
+        //			for(int i = 0 ; i < nl.getLength();i++) {
+        //				Element elt = (Element)nl.item(i);
+        //				String source = elt.getAttribute("source");
+        //				String target = elt.getAttribute("target");
+        //				String service, serviceComp, reference, referenceComp;
+        //				
+        //				System.out.println("^^^^^^^^^ "+source+" ::: "+target);
+        //				if(target.contains("/")){
+        //					String[] arr = target.split("/");
+        //					serviceComp = arr[0];
+        //					service = arr[1];
+        //				}
+        //				else{
+        //					serviceComp = target;
+        //					service = null;
+        //				}
+        //				
+        //				if(source.contains("/")){
+        //					String[] arr = source.split("/");
+        //					referenceComp = arr[0];
+        //					reference = arr[1];
+        //				}
+        //				else{
+        //					referenceComp = source;
+        //					reference = null;
+        //				}
+        //				
+        //				ComponentEntity e = findEntity(referenceComp);
+        //				System.out.println("^^^^^^^^^ "+e.getName());
+        //				if(e != null){
+        //					createConnection(e, reference, serviceComp, service);
+        //				}
+        //			}
+        //		}
+        //
+        //		positionEntities(elts);
+        //
+        //		calculateProperties(elts);
+        //	print(elts);
+
+        return elts;
+
+    }
+
+    private void buildWires(Element docEle, ComponentEntity[] elts) {
+
+        //sec. 5.4 in the spec
+        NodeList nl = docEle.getElementsByTagName("wire");
+        //System.out.println("^^^^^^^^^ "+nl.getLength());
+        if (nl != null && nl.getLength() > 0) {
+
+            for (int i = 0; i < nl.getLength(); i++) {
+
+                Element elt = (Element)nl.item(i);
+
+                String source = elt.getAttribute("source");
+                String target = elt.getAttribute("target");
+
+                String service, serviceComp, reference, referenceComp;
+
+                String[] arr1 = extractComp(target);
+                serviceComp = arr1[0];
+                service = arr1[1];
+
+                String[] arr2 = extractComp(source);
+                referenceComp = arr2[0];
+                reference = arr2[1];
+
+                //				//System.out.println("^^^^^^^^^ "+source+" ::: "+target);
+                //				if(target.contains("/")){
+                //					String[] arr = target.split("/");
+                //					serviceComp = arr[0];
+                //					service = arr[1];
+                //				}
+                //				else{
+                //					serviceComp = target;
+                //					service = null;
+                //				}
+                //				
+                //				if(source.contains("/")){
+                //					String[] arr = source.split("/");
+                //					referenceComp = arr[0];
+                //					reference = arr[1];
+                //				}
+                //				else{
+                //					referenceComp = source;
+                //					reference = null;
+                //				}
+                //				
+                ComponentEntity e1 = findEntity(elts, referenceComp);
+                //ComponentEntity e2 = findEntity(comps, serviceComp);
+
+                //System.out.println("^^^^^^^^^ "+e1.getName());
+                if (e1 != null) {
+                    //System.out.println("^^^^^^^^^ "+e1.getId());
+                    //connections[e1.getId()][e2.getId()] = 1;
+                    createConnection(e1, reference, serviceComp, service);
+                }
+            }
+        }
+
+    }
+
+    private ComponentEntity findEntity(ComponentEntity[] elts, String componentName) {
+
+        for (ComponentEntity e : elts) {
+            if (e.getName().equals(componentName)) {
+                return e;
+            }
+        }
+        return null;
+    }
+
+    private void setReferences(Element nVal, ComponentEntity ent) {
+
+        NodeList nl = nVal.getElementsByTagName("reference");
+        if (nl != null && nl.getLength() > 0) {
+            for (int i = 0; i < nl.getLength(); i++) {
+                Element elt = (Element)nl.item(i);
+                String target = elt.getAttribute("target");
+                String ref = elt.getAttribute("name");
+                if (target.contains("/")) {
+                    String[] arr = target.split("/");
+                    createConnection(ent, ref, arr[0], arr[1]);
+                    //					ent.addToRefToSerMap(ref, arr[1]);
+                    //					ent.addAnAdjacentEntity(arr[0]);
+                    //					addToConnectedEntities(ent.getComponentName(), arr[0]);
+                    //					addToConnectedEntities(arr[0], ent.getComponentName());
+                } else if (!target.equals("")) {
+                    createConnection(ent, ref, target, null);
+                    //					ent.addToRefToSerMap(ref, target);
+                    //					ent.addAnAdjacentEntity(target);
+                    //					addToConnectedEntities(ent.getComponentName(), target);
+                    //					addToConnectedEntities(target, ent.getComponentName());
+                }
+
+                ent.addAReference(ref);
+
+            }
+        }
+    }
+
+    private void createConnection(ComponentEntity ent, String reference, String serviceComp, String service) {
+
+        String referenceComp = ent.getName();
+
+        if (reference != null && service != null) {
+
+            ent.addToRefToSerMap(reference, service);
+            ent.addAnAdjacentEntity(serviceComp);
+            addToConnectedEntities(referenceComp, serviceComp);
+            addToConnectedEntities(serviceComp, referenceComp);
+        } else if (reference == null && service != null) {
+            ent.addToRefToSerMap(referenceComp, service);
+            ent.addAnAdjacentEntity(serviceComp);
+            addToConnectedEntities(referenceComp, serviceComp);
+            addToConnectedEntities(serviceComp, referenceComp);
+        } else if (reference != null && service == null) {
+            ent.addToRefToSerMap(reference, serviceComp);
+            ent.addAnAdjacentEntity(serviceComp);
+            addToConnectedEntities(referenceComp, serviceComp);
+            addToConnectedEntities(serviceComp, referenceComp);
+        } else {
+            ent.addToRefToSerMap(referenceComp, serviceComp);
+            ent.addAnAdjacentEntity(serviceComp);
+            addToConnectedEntities(referenceComp, serviceComp);
+            addToConnectedEntities(serviceComp, referenceComp);
+        }
+    }
+
+    //	private void calculateProperties(ComponentEntity[] elts) {
+    //		int level=0, lane=0;
+    //
+    //		for(ComponentEntity ent: elts){
+    //			level = max(level, ent.getLevel());
+    //			lane = max(lane, ent.getLane());
+    //
+    //		}
+    //		totalHeight += spaceY*(level+1) + initPoint;
+    //		totalWidth += spaceX*(lane+1) + initPoint;
+    //		
+    //		System.err.println(totalHeight + " :: "+totalWidth);
+    //	}
+
+    //	private int max(int a, int b){
+    //		if(a>=b)
+    //			return a;
+    //		return b;
+    //	}
+
+    @SuppressWarnings("unused")
+    private void print(ComponentEntity[] elts) {
+
+        for (ComponentEntity ent : elts) {
+            System.out.println(ent.getName() + " : "
+                + ent.getLevel()
+                + " : "
+                + ent.getLane()
+                + " : "
+                + ent.getX()
+                + " : "
+                + ent.getY());
+        }
+    }
+
+    //	private void positionEntities(ComponentEntity[] ents){
+    //		
+    //		for(ComponentEntity ent: ents){
+    //			if(ent.getAdjacentEntities().size() != 0 || ents.length==1){
+    //				setPosition(ent, initPoint, initPoint, 0, 0);
+    //				levelCount.add(0, 1);
+    //				startEnt = ent;
+    //				System.err.println(ent.getName());
+    //				break;
+    //			}
+    //		}
+    //		
+    //
+    //		if(startEnt != null)
+    //			assignPositions(ents, startEnt);
+    //
+    //	}
+    //
+    //	private void assignPositions(ComponentEntity[] ents, ComponentEntity ent){
+    //		int i=0;
+    //		if(ent.getAdjacentEntities().size()>0){
+    //			
+    //			System.out.println(ent.getName());
+    //			for(String name: ent.getAdjacentEntities()){
+    //				//System.out.println("eee "+name);
+    //				for(ComponentEntity aEnt: ents){
+    //					i++;
+    //					if(name.equalsIgnoreCase(aEnt.getName())){
+    //						int lane = ent.getLane()+1;
+    //						if(levelCount.size()<= lane){
+    //							levelCount.add(lane, 1);
+    //							setPosition(aEnt, ent.getX()+spaceX, ent.getY(), 0, lane);
+    //						}
+    //						else{
+    //							int level = levelCount.get(lane);
+    //							levelCount.add(lane, level+1);
+    //							setPosition(aEnt, ent.getX()+spaceX, ent.getY()+spaceY*level, level, lane);
+    //						}
+    //						if(i<ents.length)
+    //							assignPositions(ents, aEnt);
+    ////						else
+    ////							System.out.println(i+ " <<<<< "+ents.length);
+    //						break;
+    //					}
+    //
+    //				}
+    //			}
+    //		}
+    //
+    //
+    //		else{
+    //			ArrayList<String> conns = connectedEntities.get(ent.getName());
+    //			System.err.println(conns.size());
+    //			if(conns.size()>0){
+    //
+    //				for(String conn: conns){
+    //					System.err.println("conn "+conn +" : "+ent.getName());
+    //					for(ComponentEntity e: ents){
+    //						if(e.getLane() == -1 && e.getName().equals(conn)){
+    //
+    //							int lane = ent.getLane()-1;
+    //							System.err.println(lane);
+    //							int level = levelCount.get(lane);
+    //							levelCount.add(lane, level+1);
+    //							setPosition(e, ent.getX()-spaceX, ent.getY()+spaceY*level, level, lane);
+    //
+    //							break;
+    //						}
+    //					}
+    //				}
+    //			}
+    //		}
+    //	}
+    //
+    //	private void setPosition(ComponentEntity ent, int x, int y, int level, int lane){
+    //		ent.setX(x);
+    //		ent.setY(y);
+    //		ent.setLevel(level);
+    //		ent.setLane(lane);
+    //	}
+    //
+    //
+    //	private String[] splitValues(String str){
+    //		return str.split("/");
+    //	}
+
+    private void addToConnectedEntities(String ent1, String ent2) {
+        //System.err.println(ent1+" : "+ent2);
+        ArrayList<String> list;
+        if (connectedEntities.containsKey(ent1)) {
+            list = connectedEntities.get(ent1);
+
+        } else {
+            list = new ArrayList<String>();
+
+        }
+        list.add(ent2);
+        connectedEntities.put(ent1, list);
+    }
+
+    private void setServices(Element nVal, ComponentEntity ent) {
+
+        NodeList nl = nVal.getElementsByTagName("service");
+        if (nl != null && nl.getLength() > 0) {
+            for (int i = 0; i < nl.getLength(); i++) {
+                Element elt = (Element)nl.item(i);
+                ent.addAService(elt.getAttribute("name"));
+            }
+        } else {
+
+            NodeList nl1 = nVal.getElementsByTagName("implementation.java");
+            if (nl1 != null && nl1.getLength() > 0) {
+                for (int i = 0; i < nl1.getLength(); i++) {
+                    Element elt = (Element)nl1.item(i);
+                    //System.out.println(elt.getAttribute("class"));
+                    String serName = extractServiceName(elt.getAttribute("class"));
+                    ent.addAService(serName);
+                }
+            }
+
+        }
+
+    }
+
+    /**
+     * 
+     * This will extract the service name part from the class attribute of 
+     * implementation.java element. 
+     * eg: if class = "NirmalServiceImpl", returning service name would be "NirmalService"
+     */
+    private String extractServiceName(String classAttr) {
+        if (classAttr != null) {
+            String[] x = classAttr.split("\\.");
+            String name = x[x.length - 1];
+            if (name.endsWith("Impl")) {
+                return name.substring(0, name.length() - 4);
+            } else {
+                return name;
+            }
+        }
+        return "";
+    }
+
+    private void setProperties(Element nVal, ComponentEntity ent) {
+
+        NodeList nl = nVal.getElementsByTagName("property");
+        if (nl != null && nl.getLength() > 0) {
+            for (int i = 0; i < nl.getLength(); i++) {
+                Element elt = (Element)nl.item(i);
+                ent.addAProperty(elt.getAttribute("name"));
+            }
+        }
+    }
+
+    //	public void setCompositeName(String compositeName) {
+    //		this.compositeName = compositeName;
+    //	}
+    //
+    //	public String getCompositeName() {
+    //		return compositeName;
+    //	}
+
+    public int getTotalWidth() {
+        return totalWidth;
+    }
+
+    public int getTotalHeight() {
+        return totalHeight;
+    }
+
+}

Propchange: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/EntityBuilder.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/EntityBuilder.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/EntityBuilder.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/LayoutBuilder.java
URL: http://svn.apache.org/viewvc/tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/LayoutBuilder.java?rev=1164133&view=auto
==============================================================================
--- tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/LayoutBuilder.java (added)
+++ tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/LayoutBuilder.java Thu Sep  1 16:22:37 2011
@@ -0,0 +1,183 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package org.apache.tuscany.sca.diagram.layout;
+
+public class LayoutBuilder {
+
+    private Entity[] elts = null;
+    private int[][] conns = null;
+    private Entity startEnt = null;
+    private int currentMaxLevel = 0;
+
+    /**
+     * Constructor which takes set of entities and their connection matrix
+     */
+    public LayoutBuilder(Entity[] entities, int[][] connections) {
+        elts = entities;
+        conns = connections;
+    }
+
+    /**
+     * Layout Building Algorithm
+     * ~~~~~~~~~~~~~~~~~~~~~~~~~
+     *
+     * Here we position (i.e. assigning a level and a lane) all Entities
+     * in a unique cell of a grid.
+     * 
+     * 		 	lane0	  lane1	  lane2	  lane3 ....
+     * 		 	 _______________________________
+     * level0	|		|		|		|		|
+     * 			|_______|_______|_______|_______|
+     * level1	|		|		|		|		|
+     * 			|_______|_______|_______|_______|
+     * level2	|		|		|		|		|     
+     * 
+     * 1) Determining the Entity at level0, lane0 (starting entity)
+     * 		-First Entity in the list of Entities which has one or more adjacent Entities
+     * 		-If there is only one Entity it will eventually chosen
+     * 
+     * 2) Get connected Entities of starting Entity. 
+     * 		* If there are connected entities;
+     * 			*For each connected Entity; 
+     * 				*We assign a corresponding level and a lane
+     * 				*Then recurse the procedure for connections of the assigned Entity
+     * 	
+     * 
+     */
+    public Entity[] placeEntities() {
+
+        /**
+         * Finding the starting entity
+         */
+        for (int i = 0; i < elts.length; i++) {
+            //System.out.println("ELts "+elts.length);
+            Entity ent = elts[i];
+            if (isConnected(ent.getId())) {
+                setPosition(ent, 0, 0);
+                startEnt = ent;
+                //System.out.println("startEnt "+ent.getId());
+                break;
+            }
+
+        }
+
+        if (startEnt != null) {
+            assignPositions(startEnt);
+        }
+
+        assignPositionsOfOtherConncetedEntities();//such as a different cluster of components
+        assignPositionsOfIdleEntities();
+        assignCoordinates();
+
+        return elts;
+
+    }
+
+    private void assignPositionsOfIdleEntities() {
+
+        for (Entity ent : elts) {
+            if (!ent.isPossitionSet()) {
+
+                setPosition(ent, currentMaxLevel++, 0);
+            }
+        }
+    }
+
+    private void assignPositionsOfOtherConncetedEntities() {
+
+        for (Entity ent : elts) {
+            if (!ent.isPossitionSet() && isConnected(ent.getId())) {
+                assignPositions(ent);
+            }
+        }
+    }
+
+    private void assignCoordinates() {
+
+        for (Entity ent : elts) {
+            ent.setX(ent.getParent().getX() + ent.getStartPosition());
+            ent.setY(ent.getParent().getY() + ent.getStartPosition() / 2);
+        }
+    }
+
+    private void assignPositions(Entity ent) {
+        int id = ent.getId();
+        int[] entConns = conns[id];
+
+        for (int i = 0; i < entConns.length; i++) {
+            if (entConns[i] == 1) {
+                Entity nextEnt = findEntity(i);
+
+                //				if(nextEnt.isPossitionSet()){
+                //					currentMaxLevel = nextEnt.getLevel()+1; // for diagram clearness purpose
+                //				}
+                if (nextEnt != null && !nextEnt.isPossitionSet()) {
+                    setPosition(nextEnt, currentMaxLevel, ent.getLane() + 1);
+                    assignPositions(nextEnt);
+                }
+            }
+
+        }
+        currentMaxLevel = ent.getLevel() + 1;
+    }
+
+    private Entity findEntity(int i) {
+
+        for (Entity ent : elts) {
+            if (ent.getId() == i) {
+                return ent;
+            }
+        }
+        return null;
+    }
+
+    /**
+     * If there's at least 1 connection, this will return true
+     */
+    private boolean isConnected(int id) {
+        int[] entConns = conns[id];
+
+        //System.out.println("entConns "+entConns.length);
+        for (int i = 0; i < entConns.length; i++) {
+
+            if (entConns[i] == 1) {
+                return true;
+            }
+
+        }
+
+        return false;
+    }
+
+    private void setPosition(Entity ent, int level, int lane) {
+        ent.setLevel(level);
+        ent.setLane(lane);
+        ent.setPossitionSet(true);
+    }
+
+    public Entity getStartEnt() {
+        return startEnt;
+    }
+
+    public void setStartEnt(Entity startEnt) {
+        this.startEnt = startEnt;
+    }
+
+}

Propchange: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/LayoutBuilder.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/LayoutBuilder.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/LayoutBuilder.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/TuscanyCompositeEntityBuilder.java
URL: http://svn.apache.org/viewvc/tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/TuscanyCompositeEntityBuilder.java?rev=1164133&view=auto
==============================================================================
--- tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/TuscanyCompositeEntityBuilder.java (added)
+++ tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/TuscanyCompositeEntityBuilder.java Thu Sep  1 16:22:37 2011
@@ -0,0 +1,359 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package org.apache.tuscany.sca.diagram.layout;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+import org.apache.tuscany.sca.assembly.Component;
+import org.apache.tuscany.sca.assembly.ComponentProperty;
+import org.apache.tuscany.sca.assembly.ComponentReference;
+import org.apache.tuscany.sca.assembly.ComponentService;
+import org.apache.tuscany.sca.assembly.Composite;
+import org.apache.tuscany.sca.assembly.CompositeReference;
+import org.apache.tuscany.sca.assembly.CompositeService;
+import org.apache.tuscany.sca.assembly.Property;
+import org.apache.tuscany.sca.assembly.Reference;
+import org.apache.tuscany.sca.assembly.Service;
+import org.apache.tuscany.sca.assembly.Wire;
+
+public class TuscanyCompositeEntityBuilder {
+
+    private Composite tuscanyComp;
+    //components connected to each other are tracked using following map
+    private HashMap<String, ArrayList<String>> connectedEntities = new HashMap<String, ArrayList<String>>();
+    private int totalWidth = 0;
+    private int totalHeight = 0;
+
+    CompositeEntity composite = null;
+
+    /**
+     * Constructor which initiates the DOM document
+     * @param aDom DOM document
+     */
+    public TuscanyCompositeEntityBuilder(Composite comp) {
+        tuscanyComp = comp;
+    }
+
+    public CompositeEntity buildCompositeEntity() {
+
+        String compositeName;
+        compositeName = tuscanyComp.getName().getLocalPart();
+        System.out.println("compositeName " + compositeName);
+
+        ComponentEntity[] comps = buildComponentEntities();
+
+        buildWires(tuscanyComp.getWires(), comps);
+
+        composite = new CompositeEntity(compositeName);
+
+        setParent(comps);
+
+        System.out.println("ComponentEntity " + comps[0].getId());
+        int[][] conns = buildConnectionMatrix(comps);
+        System.out.println("ComponentEntity " + conns[0][0]);
+
+        composite.setComponentList(comps);
+        composite.setConnections(conns);
+
+        LayoutBuilder buildLayout = new LayoutBuilder(comps, conns);
+        buildLayout.placeEntities();
+
+        System.out.println("conns " + conns[0][0]);
+
+        buildCompositeService();
+        buildCompositeReference();
+        buildCompositeProperty();
+
+        addInclusions();
+
+        composite.setAttributes();
+
+        return composite;
+    }
+
+    private void setParent(ComponentEntity[] comps) {
+
+        for (ComponentEntity comp : comps) {
+            comp.setParent(composite);
+        }
+    }
+
+    private void buildCompositeService() {
+
+        List<Service> sers = tuscanyComp.getServices();
+
+        for (int i = 0; i < sers.size(); i++) {
+            Service compositeSer = sers.get(i);
+            composite.addAService(compositeSer.getName());
+            String service = ((CompositeService)compositeSer).getPromotedService().getName();
+
+            composite.addToPromoteAService(compositeSer.getName(), service);
+        }
+
+    }
+
+    private void buildCompositeReference() {
+
+        List<Reference> refs = tuscanyComp.getReferences();
+
+        for (int i = 0; i < refs.size(); i++) {
+            Reference compositeRef = refs.get(i);
+            composite.addAReference(compositeRef.getName());
+
+            List<ComponentReference> promotedRefs = ((CompositeReference)compositeRef).getPromotedReferences();
+
+            for (ComponentReference ref : promotedRefs) {
+                String reference = ref.getName();
+
+                composite.addToPromoteAReference(compositeRef.getName(), reference);
+            }
+
+        }
+
+    }
+
+    private void buildCompositeProperty() {
+
+        List<Property> props = tuscanyComp.getProperties();
+
+        for (int i = 0; i < props.size(); i++) {
+            Property compositeProp = props.get(i);
+            composite.addAProperty(compositeProp.getName());
+        }
+
+    }
+
+    private void addInclusions() {
+
+        List<Composite> includes = tuscanyComp.getIncludes();
+
+        for (int i = 0; i < includes.size(); i++) {
+            Composite anInclude = includes.get(i);
+            composite.addToIncludedComposites(anInclude.getName().getLocalPart());
+        }
+
+    }
+
+    private int[][] buildConnectionMatrix(ComponentEntity[] comps) {
+
+        int[][] connections = new int[comps.length][comps.length];
+        connections = initConnections(connections);
+
+        for (Entity ent : comps) {
+            for (String name : ent.getAdjacentEntities()) {
+                ComponentEntity e2 = findEntity(comps, name);
+                if (ent != null && e2 != null) {
+                    //System.out.println("^^^^^^^^^ "+e2.getName());
+                    connections[ent.getId()][e2.getId()] = 1;
+                }
+            }
+
+        }
+
+        return connections;
+    }
+
+    private String extractComp(ComponentEntity[] elts, String str, boolean isReference) {
+
+        if (isReference) {
+            for (ComponentEntity elt : elts) {
+                for (String ref : elt.getReferences()) {
+                    if (ref.equals(str)) {
+                        return elt.getName();
+                    }
+                }
+            }
+        } else {
+            for (ComponentEntity elt : elts) {
+                for (String ser : elt.getServices()) {
+                    if (ser.equals(str)) {
+                        return elt.getName();
+                    }
+                }
+            }
+        }
+        return "";
+
+    }
+
+    private int[][] initConnections(int[][] connections) {
+
+        for (int i = 0; i < connections.length; i++) {
+            for (int j = 0; j < connections.length; j++) {
+                connections[i][j] = 0;
+            }
+        }
+        return connections;
+    }
+
+    public ComponentEntity[] buildComponentEntities() {
+
+        ComponentEntity[] elts = null;
+
+        List<Component> components = tuscanyComp.getComponents();
+
+        elts = new ComponentEntity[components.size()];
+
+        for (int i = 0; i < components.size(); i++) {
+            Component aComp = components.get(i);
+
+            elts[i] = new ComponentEntity();
+            elts[i].setId(i);
+            elts[i].setName(aComp.getName());
+
+            setServices(aComp.getServices(), elts[i]);
+            setReferences(aComp.getReferences(), elts[i]);
+            setProperties(aComp.getProperties(), elts[i]);
+
+            elts[i].referenceHeight();
+            elts[i].serviceHeight();
+            elts[i].propertyLength();
+        }
+
+        return elts;
+
+    }
+
+    private void buildWires(List<Wire> wires, ComponentEntity[] elts) {
+
+        for (int i = 0; i < wires.size(); i++) {
+            String service, serviceComp, reference, referenceComp;
+            Wire aWire = wires.get(i);
+
+            reference = aWire.getSource().getName();
+            service = aWire.getTarget().getName();
+
+            referenceComp = extractComp(elts, reference, true);
+            serviceComp = extractComp(elts, service, false);
+
+            ComponentEntity e1 = findEntity(elts, referenceComp);
+
+            //System.out.println("^^^^^^^^^ "+e1.getName());
+            if (e1 != null) {
+                //System.out.println("^^^^^^^^^ "+e1.getId());
+                //connections[e1.getId()][e2.getId()] = 1;
+                createConnection(e1, reference, serviceComp, service);
+            }
+        }
+
+    }
+
+    private ComponentEntity findEntity(ComponentEntity[] elts, String componentName) {
+
+        for (ComponentEntity e : elts) {
+            if (e.getName().equals(componentName)) {
+                return e;
+            }
+        }
+        return null;
+    }
+
+    private void setReferences(List<ComponentReference> refs, ComponentEntity ent) {
+
+        for (int i = 0; i < refs.size(); i++) {
+            ent.addAReference(refs.get(i).getName());
+        }
+
+    }
+
+    private void createConnection(ComponentEntity ent, String reference, String serviceComp, String service) {
+
+        String referenceComp = ent.getName();
+
+        if (reference != null && service != null) {
+
+            ent.addToRefToSerMap(reference, service);
+            ent.addAnAdjacentEntity(serviceComp);
+            addToConnectedEntities(referenceComp, serviceComp);
+            addToConnectedEntities(serviceComp, referenceComp);
+        } else if (reference == null && service != null) {
+            ent.addToRefToSerMap(referenceComp, service);
+            ent.addAnAdjacentEntity(serviceComp);
+            addToConnectedEntities(referenceComp, serviceComp);
+            addToConnectedEntities(serviceComp, referenceComp);
+        } else if (reference != null && service == null) {
+            ent.addToRefToSerMap(reference, serviceComp);
+            ent.addAnAdjacentEntity(serviceComp);
+            addToConnectedEntities(referenceComp, serviceComp);
+            addToConnectedEntities(serviceComp, referenceComp);
+        } else {
+            ent.addToRefToSerMap(referenceComp, serviceComp);
+            ent.addAnAdjacentEntity(serviceComp);
+            addToConnectedEntities(referenceComp, serviceComp);
+            addToConnectedEntities(serviceComp, referenceComp);
+        }
+    }
+
+    @SuppressWarnings("unused")
+    private void print(ComponentEntity[] elts) {
+
+        for (ComponentEntity ent : elts) {
+            System.out.println(ent.getName() + " : "
+                + ent.getLevel()
+                + " : "
+                + ent.getLane()
+                + " : "
+                + ent.getX()
+                + " : "
+                + ent.getY());
+        }
+    }
+
+    private void addToConnectedEntities(String ent1, String ent2) {
+        System.err.println(ent1 + " : " + ent2);
+        ArrayList<String> list;
+        if (connectedEntities.containsKey(ent1)) {
+            list = connectedEntities.get(ent1);
+
+        } else {
+            list = new ArrayList<String>();
+
+        }
+        list.add(ent2);
+        connectedEntities.put(ent1, list);
+    }
+
+    private void setServices(List<ComponentService> sers, ComponentEntity ent) {
+
+        for (int i = 0; i < sers.size(); i++) {
+            ent.addAService(sers.get(i).getName());
+        }
+
+    }
+
+    private void setProperties(List<ComponentProperty> props, ComponentEntity ent) {
+
+        for (int i = 0; i < props.size(); i++) {
+            ent.addAProperty(props.get(i).getName());
+        }
+
+    }
+
+    public int getTotalWidth() {
+        return totalWidth;
+    }
+
+    public int getTotalHeight() {
+        return totalHeight;
+    }
+
+}

Propchange: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/TuscanyCompositeEntityBuilder.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/TuscanyCompositeEntityBuilder.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/layout/TuscanyCompositeEntityBuilder.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/main/Main.java
URL: http://svn.apache.org/viewvc/tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/main/Main.java?rev=1164133&view=auto
==============================================================================
--- tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/main/Main.java (added)
+++ tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/main/Main.java Thu Sep  1 16:22:37 2011
@@ -0,0 +1,158 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package org.apache.tuscany.sca.diagram.main;
+
+import java.io.File;
+import java.io.StringWriter;
+
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import org.apache.tuscany.sca.diagram.generator.DiagramGenerator;
+import org.apache.tuscany.sca.diagram.html.HTMLWrapper;
+import org.apache.tuscany.sca.diagram.io.XMLReader;
+import org.apache.tuscany.sca.diagram.io.XMLWriter;
+import org.apache.tuscany.sca.diagram.layout.CompositeEntity;
+import org.apache.tuscany.sca.diagram.layout.EntityBuilder;
+import org.w3c.dom.Document;
+
+public class Main {
+    private static String outFileDir; //= System.getProperty("user.dir")+"/output/";
+    private static boolean isHtml = false;
+    private static boolean isSvg = false;
+
+    /**
+     * @param args
+     * @throws Exception 
+     */
+    public static void main(String[] args) throws Exception {
+
+        if (args.length == 0) {
+
+            String help =
+                "" + "----------Apache Tuscany Composite Diagram Generator----------\n"
+                    + "\n"
+                    + "Error: You have not specified an input \"Composite XML\" file.\n"
+                    + "\n"
+                    + "-----------------------------Help-----------------------------\n"
+                    + "You have 3 options:\n"
+                    + "---1) Default: Specify \"Composite XML\" file paths separated \n"
+                    + "---            by a space, with no arguments. This will"
+                    + "---            generate SVG and HTML output.\n"
+                    + "---     Eg: java -jar tuscany-composite-diagram-0.0.1.jar \n"
+                    + "---         //a//aa//a.composite //b//bb//b.composite \n"
+                    + "---\n"
+                    + "---2) SVG Only: Specify \"Composite XML\" file paths separated\n"
+                    + "---            by a space, with '-svg' argument.\n"
+                    + "---     Eg: java -jar tuscany-composite-diagram-0.0.1.jar -svg\n"
+                    + "---          //a//aa//a.composite //b//bb//b.composite \n"
+                    + "---\n"
+                    + "---3) HTML Only: Specify \"Composite XML\" file paths separated\n"
+                    + "---            by a space, with '-html' argument.\n"
+                    + "---     Eg: java -jar tuscany-composite-diagram-0.0.1.jar -html\n"
+                    + "---          //a//aa//a.composite //b//bb//b.composite \n"
+                    + "---\n";
+            System.out.println(help);
+        } else {
+
+            if (args[0].equalsIgnoreCase("-svg")) {
+                isSvg = true;
+                args[0] = null;
+            } else if (args[0].equalsIgnoreCase("-html")) {
+                isHtml = true;
+                args[0] = null;
+            } else {
+                isSvg = true;
+                isHtml = true;
+            }
+
+            for (String str : args) {
+
+                if (str != null) {
+
+                    File in = new File(str);
+                    outFileDir = in.getParent() + "//";
+                    XMLReader reader = new XMLReader();
+                    Document doc = reader.parseXMLFile(str);//composite1.xml composite_with_compositeService.xml");
+                    EntityBuilder eb = new EntityBuilder(doc);
+                    CompositeEntity comp = eb.buildCompositeEntity();
+
+                    DiagramGenerator dg = new DiagramGenerator(comp, isHtml);
+                    Document svg = dg.buildSVGDocument();
+
+                    String svgContent = extractSvg(svg);
+
+                    if (isSvg) {
+                        writeSVG(svgContent, comp);
+                    }
+
+                    if (isHtml) {
+                        writeHTML(svgContent, comp);
+                    }
+
+                }
+            }
+        }
+    }
+
+    private static void writeHTML(String svg, CompositeEntity comp) throws Exception {
+
+        File htmlFile = new File(outFileDir + comp.getName() + comp.getFileNameSuffix() + ".html");
+        HTMLWrapper html = new HTMLWrapper(svg, comp.getName(), htmlFile);
+        String content = html.buildHTML();
+
+        System.err.println("--------------HTML Output for " + comp.getName() + "--------------\n");
+        System.out.println(content);
+        System.err.println("--------------------------------------------------------------\n");
+
+    }
+
+    private static void writeSVG(String svg, CompositeEntity comp) throws Exception {
+
+        String svgFileName = comp.getName() + comp.getFileNameSuffix() + ".svg";
+        File svgFile = new File(outFileDir + svgFileName);
+        XMLWriter writer = new XMLWriter();
+        writer.fileWriter(svg, svgFile);
+
+        System.err.println("--------------SVG Output for " + comp.getName() + "--------------\n");
+        System.out.println(svg);
+        System.err.println("-------------------------------------------------------------\n");
+    }
+
+    private static String extractSvg(Document svg) throws Exception {
+
+        // Set up the output transformer
+        TransformerFactory transfac = TransformerFactory.newInstance();
+        Transformer trans = transfac.newTransformer();
+
+        // Print the DOM node
+
+        StringWriter sw = new StringWriter();
+        StreamResult result = new StreamResult(sw);
+        DOMSource source = new DOMSource(svg);
+        trans.transform(source, result);
+        String svgString = sw.toString();
+
+        return svgString;
+    }
+
+}

Propchange: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/main/Main.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/main/Main.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/diagram/main/Main.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date



Mime
View raw message