|
From: <tan...@us...> - 2009-07-24 18:09:46
|
Revision: 900
http://cishell.svn.sourceforge.net/cishell/?rev=900&view=rev
Author: tankchintan
Date: 2009-07-24 18:09:35 +0000 (Fri, 24 Jul 2009)
Log Message:
-----------
Initial Import. Converter Graph plugin. For outputting a graph of all the converters in the tool. Code reviewed by Micah.
Added Paths:
-----------
trunk/core/org.cishell.algorithm.convertergraph/.classpath
trunk/core/org.cishell.algorithm.convertergraph/.project
trunk/core/org.cishell.algorithm.convertergraph/.settings/
trunk/core/org.cishell.algorithm.convertergraph/.settings/org.eclipse.pde.core.prefs
trunk/core/org.cishell.algorithm.convertergraph/META-INF/
trunk/core/org.cishell.algorithm.convertergraph/META-INF/MANIFEST.MF
trunk/core/org.cishell.algorithm.convertergraph/OSGI-INF/
trunk/core/org.cishell.algorithm.convertergraph/OSGI-INF/algorithm.properties
trunk/core/org.cishell.algorithm.convertergraph/OSGI-INF/component.xml
trunk/core/org.cishell.algorithm.convertergraph/OSGI-INF/l10n/
trunk/core/org.cishell.algorithm.convertergraph/OSGI-INF/l10n/bundle_en.properties
trunk/core/org.cishell.algorithm.convertergraph/OSGI-INF/metatype/
trunk/core/org.cishell.algorithm.convertergraph/OSGI-INF/metatype/METADATA.XML
trunk/core/org.cishell.algorithm.convertergraph/build/
trunk/core/org.cishell.algorithm.convertergraph/build.properties
trunk/core/org.cishell.algorithm.convertergraph/src/
trunk/core/org.cishell.algorithm.convertergraph/src/org/
trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/
trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/
trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/
trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/ConverterGraphAlgorithm.java
trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/ConverterGraphAlgorithmFactory.java
trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/ConverterGraphComputation.java
trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/ConverterGraphOutputGenerator.java
trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/Edge.java
trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/Node.java
Added: trunk/core/org.cishell.algorithm.convertergraph/.classpath
===================================================================
--- trunk/core/org.cishell.algorithm.convertergraph/.classpath (rev 0)
+++ trunk/core/org.cishell.algorithm.convertergraph/.classpath 2009-07-24 18:09:35 UTC (rev 900)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="build"/>
+</classpath>
Added: trunk/core/org.cishell.algorithm.convertergraph/.project
===================================================================
--- trunk/core/org.cishell.algorithm.convertergraph/.project (rev 0)
+++ trunk/core/org.cishell.algorithm.convertergraph/.project 2009-07-24 18:09:35 UTC (rev 900)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.cishell.algorithm.convertergraph</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
Added: trunk/core/org.cishell.algorithm.convertergraph/.settings/org.eclipse.pde.core.prefs
===================================================================
--- trunk/core/org.cishell.algorithm.convertergraph/.settings/org.eclipse.pde.core.prefs (rev 0)
+++ trunk/core/org.cishell.algorithm.convertergraph/.settings/org.eclipse.pde.core.prefs 2009-07-24 18:09:35 UTC (rev 900)
@@ -0,0 +1,4 @@
+#Thu Nov 30 13:33:03 EST 2006
+eclipse.preferences.version=1
+pluginProject.equinox=false
+pluginProject.extensions=false
Added: trunk/core/org.cishell.algorithm.convertergraph/META-INF/MANIFEST.MF
===================================================================
--- trunk/core/org.cishell.algorithm.convertergraph/META-INF/MANIFEST.MF (rev 0)
+++ trunk/core/org.cishell.algorithm.convertergraph/META-INF/MANIFEST.MF 2009-07-24 18:09:35 UTC (rev 900)
@@ -0,0 +1,20 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Converter Graph
+Bundle-SymbolicName: org.cishell.algorithm.convertergraph
+Bundle-Version: 1.0.0
+Bundle-ClassPath: .
+Bundle-Localization: plugin
+Import-Package: edu.iu.nwb.converter.nwb.common,
+ edu.iu.nwb.util.nwbfile,
+ org.cishell.framework,
+ org.cishell.framework.algorithm,
+ org.cishell.framework.data,
+ org.cishell.reference.service.metatype,
+ org.osgi.framework;version="1.3.0",
+ org.osgi.service.component;version="1.0.0",
+ org.osgi.service.log;version="1.3.0",
+ org.osgi.service.metatype,
+ org.osgi.service.prefs;version="1.1.0"
+X-AutoStart: true
+Service-Component: OSGI-INF/component.xml
Added: trunk/core/org.cishell.algorithm.convertergraph/OSGI-INF/algorithm.properties
===================================================================
--- trunk/core/org.cishell.algorithm.convertergraph/OSGI-INF/algorithm.properties (rev 0)
+++ trunk/core/org.cishell.algorithm.convertergraph/OSGI-INF/algorithm.properties 2009-07-24 18:09:35 UTC (rev 900)
@@ -0,0 +1,12 @@
+menu_path=File/additions
+label=Converter Graph
+description=Provides graph of all the converters in the tool.
+in_data=null
+out_data=file:text/nwb
+service.pid=org.cishell.algorithm.convertergraph.ConverterGraphAlgorithm
+remoteable=true
+written_in=Java
+author=Chintan Tank
+implementers=Chintan Tank
+integrators=Chintan Tank
+documentation_url=https://nwb.slis.indiana.edu/community/?n=File.ConverterGraph
\ No newline at end of file
Added: trunk/core/org.cishell.algorithm.convertergraph/OSGI-INF/component.xml
===================================================================
--- trunk/core/org.cishell.algorithm.convertergraph/OSGI-INF/component.xml (rev 0)
+++ trunk/core/org.cishell.algorithm.convertergraph/OSGI-INF/component.xml 2009-07-24 18:09:35 UTC (rev 900)
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component name="org.cishell.algorithm.convertergraph.ConverterGraphAlgorithm.component" immediate="false">
+ <implementation class="org.cishell.algorithm.convertergraph.ConverterGraphAlgorithmFactory"/>
+ <properties entry="OSGI-INF/algorithm.properties"/>
+ <reference name="LOG" interface="org.osgi.service.log.LogService"/>
+ <reference name="MTS" interface="org.osgi.service.metatype.MetaTypeService"/>
+
+ <service>
+ <provide interface=
+ "org.cishell.framework.algorithm.AlgorithmFactory"/>
+ </service>
+</component>
\ No newline at end of file
Added: trunk/core/org.cishell.algorithm.convertergraph/OSGI-INF/l10n/bundle_en.properties
===================================================================
--- trunk/core/org.cishell.algorithm.convertergraph/OSGI-INF/l10n/bundle_en.properties (rev 0)
+++ trunk/core/org.cishell.algorithm.convertergraph/OSGI-INF/l10n/bundle_en.properties 2009-07-24 18:09:35 UTC (rev 900)
@@ -0,0 +1,7 @@
+#Localization variables for OSGI-INF/metatatype/METADATA.XML
+#
+#Samples:
+#input=Input
+#desc=Enter an integer (that will be converted to a string)
+#name=Input->String
+#name_desc=Converts inputted integer to string
Added: trunk/core/org.cishell.algorithm.convertergraph/OSGI-INF/metatype/METADATA.XML
===================================================================
--- trunk/core/org.cishell.algorithm.convertergraph/OSGI-INF/metatype/METADATA.XML (rev 0)
+++ trunk/core/org.cishell.algorithm.convertergraph/OSGI-INF/metatype/METADATA.XML 2009-07-24 18:09:35 UTC (rev 900)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metatype:MetaData xmlns:metatype="http://www.osgi.org/xmlns/metatype/v1.0.0">
+ <OCD name="Converter Graph" id="org.cishell.algorithm.convertergraph.ConverterGraphAlgorithm.OCD"
+ description="Provides Graph of all the converters in the tool.">
+ </OCD>
+ <Designate pid="org.cishell.algorithm.convertergraph.ConverterGraphAlgorithm">
+ <Object ocdref="org.cishell.algorithm.convertergraph.ConverterGraphAlgorithm.OCD" />
+ </Designate>
+</metatype:MetaData>
Added: trunk/core/org.cishell.algorithm.convertergraph/build.properties
===================================================================
--- trunk/core/org.cishell.algorithm.convertergraph/build.properties (rev 0)
+++ trunk/core/org.cishell.algorithm.convertergraph/build.properties 2009-07-24 18:09:35 UTC (rev 900)
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = build/
+bin.includes = META-INF/,\
+ .,\
+ OSGI-INF/
Added: trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/ConverterGraphAlgorithm.java
===================================================================
--- trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/ConverterGraphAlgorithm.java (rev 0)
+++ trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/ConverterGraphAlgorithm.java 2009-07-24 18:09:35 UTC (rev 900)
@@ -0,0 +1,214 @@
+package org.cishell.algorithm.convertergraph;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Dictionary;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.cishell.framework.CIShellContext;
+import org.cishell.framework.algorithm.Algorithm;
+import org.cishell.framework.algorithm.AlgorithmExecutionException;
+import org.cishell.framework.algorithm.AlgorithmFactory;
+import org.cishell.framework.data.BasicData;
+import org.cishell.framework.data.Data;
+import org.cishell.framework.data.DataProperty;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.log.LogService;
+
+/**
+ * This plugin collects information about all the active converters in the tool and
+ * outputs a NWB file having this Directed network. Also nodes corresponding to each
+ * MIME/TYPE are weighted depending upon how many times they participate in a converter
+ * relationship.
+ *
+ * @author Chintan Tank
+ */
+
+public class ConverterGraphAlgorithm implements Algorithm{
+
+ private static final int NODE_STRENGTH_INDEX = 1;
+ private static final int NODEID_INDEX = 0;
+ private static final int CONVERTER_SERVICE_PID_INDEX = 3;
+ private static final int CONVERTER_NAME_INDEX = 2;
+ private static final int EDGE_TARGETID_INDEX = 1;
+ private static final int EDGE_SOURCEID_INDEX = 0;
+
+ private LogService logger;
+ private BundleContext bundleContext;
+
+ private int nodeCount, edgeCount;
+
+ /**
+ * Construct with the appropriate parameters
+ * @param ciShellContext
+ * @param bundleContext
+ * @throws AlgorithmExecutionException
+ */
+ public ConverterGraphAlgorithm(Data[] data, Dictionary parameters,
+ CIShellContext ciShellContext, BundleContext bundleContext) {
+ this.bundleContext = bundleContext;
+ this.logger = (LogService) ciShellContext.getService(LogService.class.getName());
+ }
+
+ public Data[] execute() throws AlgorithmExecutionException{
+
+ try {
+
+ /*
+ * Get all the converter service references currently in service.
+ * */
+ ServiceReference[] allConverterServices = getAllConverters();
+
+ /*
+ * Process the references to create a network of weighted nodes & directed edges.
+ * */
+ ConverterGraphComputation converterGraphComputation =
+ new ConverterGraphComputation(allConverterServices, logger);
+
+ /*
+ * Used to generate the output file containing the network.
+ * */
+ File outputNWBFile = createOutputGraphFile(converterGraphComputation);
+
+ return prepareOutputMetadata(new BasicData(outputNWBFile,"file:text/nwb"));
+
+ } catch (IOException e) {
+ throw new AlgorithmExecutionException(e);
+ }
+ }
+
+ /**
+ * Call all the NWB File Handler processes in order to create a NWB file.
+ * @param converterGraphComputation
+ * @return
+ * @throws IOException
+ */
+ private File createOutputGraphFile(
+ ConverterGraphComputation converterGraphComputation)
+ throws IOException {
+
+ File outputNWBFile = File.createTempFile("nwb-", ".nwb");
+
+ ConverterGraphOutputGenerator outputGenerator = new ConverterGraphOutputGenerator(
+ converterGraphComputation, outputNWBFile);
+
+ outputGenerator.addComment("Graph of all Converters in the Tool.");
+
+ nodeCount = converterGraphComputation.nodes.size();
+ outputGenerator.setNodeCount(nodeCount);
+
+ outputGenerator.setNodeSchema(converterGraphComputation.nodeSchema);
+
+ /*
+ * Print all the node rows to the output file.
+ * */
+ setNodeTuples(converterGraphComputation, outputGenerator);
+
+ edgeCount = converterGraphComputation.edges.size();
+ outputGenerator.setDirectedEdgeCount(edgeCount);
+
+ outputGenerator.setDirectedEdgeSchema(converterGraphComputation.edgeSchema);
+
+ /*
+ * Print all the edge rows to the output file.
+ * */
+ setDirectedEdgeTuples(converterGraphComputation, outputGenerator);
+
+ outputGenerator.finishedParsing();
+ outputGenerator.haltParsingNow();
+ return outputNWBFile;
+ }
+
+ /**
+ * Iterate through the nodes and print it into the output file.
+ * @param converterGraphComputation
+ * @param outputGenerator
+ */
+ private void setDirectedEdgeTuples(
+ ConverterGraphComputation converterGraphComputation,
+ ConverterGraphOutputGenerator outputGenerator) {
+
+ for(Iterator edgeIterator = converterGraphComputation.edges.iterator();
+ edgeIterator.hasNext(); ) {
+
+ Edge edge = (Edge) edgeIterator.next();
+ int sourceNode = edge.source;
+ int targetNode = edge.target;
+ final String converterName = edge.serviceShortPID;
+ final String servicePID = edge.serviceCompletePID;
+
+ outputGenerator.addDirectedEdge(sourceNode, targetNode, new HashMap(){{
+ put("converter_name", converterName);
+ put("service_pid", servicePID);
+ }});
+ }
+ }
+
+ /**
+ * @param converterGraphComputation
+ * @param outputGenerator
+ */
+ private void setNodeTuples(
+ ConverterGraphComputation converterGraphComputation,
+ ConverterGraphOutputGenerator outputGenerator) {
+
+ for(Iterator nodeIterator = converterGraphComputation.nodes.entrySet().iterator();
+ nodeIterator.hasNext(); ) {
+
+ Map.Entry node = (Entry) nodeIterator.next();
+
+ int nodeID = ((Node)node.getValue()).id;
+ final int strength = ((Node)node.getValue()).strength;
+ String label = node.getKey().toString();
+
+ outputGenerator.addNode(nodeID, label, new HashMap(){{
+ put("strength", strength);
+ }});
+ }
+ }
+
+
+ /**
+ * Gets all the converter service references based on the LDAP query.
+ * @return
+ */
+ private ServiceReference[] getAllConverters() {
+ try {
+ ServiceReference[] allConverters =
+ bundleContext.getAllServiceReferences(
+ AlgorithmFactory.class.getName(),
+ "(&(type=converter))");
+
+ if (allConverters == null) {
+ /*
+ * better to return a list of length zero than null
+ * */
+
+ allConverters = new ServiceReference[]{};
+ }
+
+ return allConverters;
+
+ } catch (InvalidSyntaxException e) {
+ e.printStackTrace();
+ return new ServiceReference[]{};
+ }
+ }
+
+ /**
+ * Prepares output metadata to be displayed to the user.
+ * @param outNWBData
+ */
+ private Data[] prepareOutputMetadata(Data outNWBData) {
+ outNWBData.getMetadata().put(DataProperty.LABEL, "Converter Graph having "
+ + nodeCount + " nodes & " + edgeCount + " edges.");
+ outNWBData.getMetadata().put(DataProperty.TYPE, DataProperty.NETWORK_TYPE);
+ return new Data[]{outNWBData};
+ }
+}
Added: trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/ConverterGraphAlgorithmFactory.java
===================================================================
--- trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/ConverterGraphAlgorithmFactory.java (rev 0)
+++ trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/ConverterGraphAlgorithmFactory.java 2009-07-24 18:09:35 UTC (rev 900)
@@ -0,0 +1,28 @@
+package org.cishell.algorithm.convertergraph;
+
+import java.util.Dictionary;
+
+import org.cishell.framework.CIShellContext;
+import org.cishell.framework.algorithm.Algorithm;
+import org.cishell.framework.algorithm.AlgorithmFactory;
+import org.cishell.framework.data.Data;
+import org.osgi.framework.BundleContext;
+import org.osgi.service.component.ComponentContext;
+
+/**
+ * @author cdtank
+ *
+ */
+
+public class ConverterGraphAlgorithmFactory implements AlgorithmFactory{
+
+ private BundleContext bundleContext;
+
+ protected void activate(ComponentContext ctxt) {
+ bundleContext = ctxt.getBundleContext();
+ }
+
+ public Algorithm createAlgorithm(Data[] data, Dictionary parameters, CIShellContext context) {
+ return new ConverterGraphAlgorithm(data, parameters, context, bundleContext);
+ }
+}
\ No newline at end of file
Added: trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/ConverterGraphComputation.java
===================================================================
--- trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/ConverterGraphComputation.java (rev 0)
+++ trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/ConverterGraphComputation.java 2009-07-24 18:09:35 UTC (rev 900)
@@ -0,0 +1,176 @@
+/**
+ *
+ */
+package org.cishell.algorithm.convertergraph;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.log.LogService;
+
+import edu.iu.nwb.util.nwbfile.NWBFileProperty;
+
+/**
+ * The algorithm is used for getting information about current converters is,
+ * 1. Get all the service references for converters in the system.
+ * 2. Create Node Schema to be used when constructing the NWB file. In this case
+ * it will be,
+ * id*int, label*string, strength*int
+ * 3. Create Edge Schema to be used when constructing the NWB file. In this case
+ * it will be,
+ * source*int, target*int, converter_name*string, service_pid*string
+ * 4. Iterate over all the converter service reference one at a time.
+ * 5. For collecting information for Nodes do,
+ * (a). Get node label using service properties in_data & out_data.
+ * (b). Check to see if this node is already present in the nodes map.
+ * (c). If it is present then just update the strength of node by incrementing
+ * that node's strength by 1.
+ * (d). Else create a new node. Provide it a default strength of 1 and update
+ * the node count.
+ * 6. For collecting information about Edges do,
+ * (a). Get the respective source & target node ids from the recently updates
+ * respective nodes.
+ * (b). Get the service_pid by using service property service.pid.
+ * (c). Get the converter_name by extracting the last block from service_pid.
+ * 7. These information is then passed on to {@link ConverterGraphOutputGenerator}
+ * for printing it into a NWB file.
+ *
+ * @author cdtank
+ *
+ */
+public class ConverterGraphComputation {
+
+ private LogService logger;
+ private ServiceReference[] allConverterServices;
+
+ public Map nodes = new HashMap();
+ public LinkedHashMap nodeSchema = new LinkedHashMap();
+
+ public List edges = new ArrayList();
+ public LinkedHashMap edgeSchema = new LinkedHashMap();
+
+ private int nodeCount;
+
+ public ConverterGraphComputation(ServiceReference[] allConverterServices,
+ LogService logger) {
+
+ this.nodeCount = 0;
+ this.logger = logger;
+ this.allConverterServices = allConverterServices;
+
+ /*
+ * Side affects nodeSchema
+ * */
+ createNodeSchema();
+
+ /*
+ * Side affects edgeSchema
+ * */
+ createEdgeSchema();
+
+ /*
+ * Side affects nodes & edges
+ * */
+ processServiceReferences();
+ }
+
+ private void createNodeSchema() {
+ nodeSchema.put("id", NWBFileProperty.TYPE_INT);
+ nodeSchema.put("label", NWBFileProperty.TYPE_STRING);
+ nodeSchema.put("strength", NWBFileProperty.TYPE_INT);
+ }
+
+ private void createEdgeSchema() {
+ edgeSchema.put("source", NWBFileProperty.TYPE_INT);
+ edgeSchema.put("target", NWBFileProperty.TYPE_INT);
+ edgeSchema.put("converter_name", NWBFileProperty.TYPE_STRING);
+ edgeSchema.put("service_pid", NWBFileProperty.TYPE_STRING);
+ }
+
+
+
+ /*
+ * Iterate over all the converter service references and process the
+ * information to get nodes & edges.
+ * */
+ private void processServiceReferences() {
+
+ for(int converterCount = 0; converterCount < allConverterServices.length; converterCount++) {
+
+ int sourceNodeID, targetNodeID;
+
+ ServiceReference currentConverterServiceReference = allConverterServices[converterCount];
+
+ String sourceNodeKey = (String)currentConverterServiceReference.getProperty("in_data");
+ String targetNodeKey = (String)currentConverterServiceReference.getProperty("out_data");
+
+ if(nodes.containsKey(sourceNodeKey)) {
+ sourceNodeID = updateNode(sourceNodeKey);
+ }
+ else {
+ sourceNodeID = createNode(sourceNodeKey);
+ }
+
+ if(nodes.containsKey(targetNodeKey)) {
+ targetNodeID = updateNode(targetNodeKey);
+ }
+ else {
+ targetNodeID = createNode(targetNodeKey);
+ }
+
+ createEdge(sourceNodeID, targetNodeID, currentConverterServiceReference);
+ }
+ }
+
+ private int updateNode(String currentNodeKey) {
+ int sourceNodeID;
+ Node sourceNodeValue = (Node) nodes.get(currentNodeKey);
+ sourceNodeID = sourceNodeValue.id;
+ sourceNodeValue.strength += 1;
+ return sourceNodeID;
+ }
+
+ private int createNode(String nodeKey) {
+ nodeCount++;
+ Node nodeValue = new Node();
+ nodeValue.id = nodeCount;
+ nodeValue.strength = 1;
+
+ nodes.put(nodeKey, nodeValue);
+ return nodeCount;
+ }
+
+ /**
+ * Create an edge based on source id, target id & other information.
+ * @param sourceNodeID
+ * @param targetNodeID
+ * @param currentConverterServiceReference
+ */
+ private void createEdge(int sourceNodeID, int targetNodeID,
+ ServiceReference currentConverterServiceReference) {
+ String serviceCompletePID = (String)currentConverterServiceReference.getProperty("service.pid");
+
+ /*
+ * Converter name is placed in the last block of service.pid. This is used
+ * to extract it.
+ * */
+ int startIndexForConverterName = serviceCompletePID.lastIndexOf(".") + 1;
+ String serviceShortPID = serviceCompletePID.substring(startIndexForConverterName);
+
+ /*
+ * Build the actual edge tuple.
+ * */
+ Edge edge = new Edge();
+ edge.source = sourceNodeID;
+ edge.target = targetNodeID;
+ edge.serviceShortPID = serviceShortPID;
+ edge.serviceCompletePID = serviceCompletePID;
+
+ edges.add(edge);
+ }
+
+}
Added: trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/ConverterGraphOutputGenerator.java
===================================================================
--- trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/ConverterGraphOutputGenerator.java (rev 0)
+++ trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/ConverterGraphOutputGenerator.java 2009-07-24 18:09:35 UTC (rev 900)
@@ -0,0 +1,62 @@
+package org.cishell.algorithm.convertergraph;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import edu.iu.nwb.util.nwbfile.NWBFileParserHandler;
+import edu.iu.nwb.util.nwbfile.NWBFileWriter;
+
+public class ConverterGraphOutputGenerator implements NWBFileParserHandler {
+
+ private NWBFileWriter output;
+
+ public ConverterGraphOutputGenerator(ConverterGraphComputation converterGraphComputation,
+ File outputNWBFile) throws IOException {
+ output = new NWBFileWriter(outputNWBFile);
+ }
+
+ public void setNodeCount(int numberOfNodes) {
+ output.setNodeCount(numberOfNodes);
+ }
+
+ public void setNodeSchema(LinkedHashMap schema) {
+ output.setNodeSchema(schema);
+ }
+
+ public void addNode(int id, String label, Map attributes) {
+ output.addNode(id, label, attributes);
+ }
+
+ public void addDirectedEdge(int sourceNode, int targetNode, Map attributes) {
+ output.addDirectedEdge(sourceNode, targetNode, attributes);
+ }
+ public void addUndirectedEdge(int node1, int node2, Map attributes) {
+ output.addUndirectedEdge(node1, node2, attributes);
+ }
+ public void setDirectedEdgeCount(int numberOfEdges) {
+ output.setDirectedEdgeCount(numberOfEdges);
+ }
+ public void setDirectedEdgeSchema(LinkedHashMap schema) {
+ output.setDirectedEdgeSchema(schema);
+ }
+ public void setUndirectedEdgeCount(int numberOfEdges) {
+ output.setUndirectedEdgeCount(numberOfEdges);
+ }
+ public void setUndirectedEdgeSchema(LinkedHashMap schema) {
+ output.setUndirectedEdgeSchema(schema);
+ }
+
+ public void addComment(String comment) {
+ output.addComment(comment);
+ }
+
+ public void finishedParsing() {
+ output.finishedParsing();
+ }
+
+ public boolean haltParsingNow() {
+ return false;
+ }
+}
Added: trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/Edge.java
===================================================================
--- trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/Edge.java (rev 0)
+++ trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/Edge.java 2009-07-24 18:09:35 UTC (rev 900)
@@ -0,0 +1,8 @@
+package org.cishell.algorithm.convertergraph;
+
+public class Edge {
+ public int source;
+ public int target;
+ public String serviceShortPID;
+ public String serviceCompletePID;
+}
\ No newline at end of file
Added: trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/Node.java
===================================================================
--- trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/Node.java (rev 0)
+++ trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/Node.java 2009-07-24 18:09:35 UTC (rev 900)
@@ -0,0 +1,13 @@
+/**
+ *
+ */
+package org.cishell.algorithm.convertergraph;
+
+/**
+ * @author cdtank
+ *
+ */
+public class Node {
+ public int id;
+ public int strength;
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tan...@us...> - 2009-07-30 16:57:13
|
Revision: 907
http://cishell.svn.sourceforge.net/cishell/?rev=907&view=rev
Author: tankchintan
Date: 2009-07-30 16:57:02 +0000 (Thu, 30 Jul 2009)
Log Message:
-----------
Converted the plugin to use jung/graph instead of nwb to resolve the dependency issue, since converter graph is inside the org.cishell package.
Modified Paths:
--------------
trunk/core/org.cishell.algorithm.convertergraph/META-INF/MANIFEST.MF
trunk/core/org.cishell.algorithm.convertergraph/OSGI-INF/algorithm.properties
trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/ConverterGraphAlgorithm.java
trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/ConverterGraphComputation.java
Removed Paths:
-------------
trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/ConverterGraphOutputGenerator.java
trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/Edge.java
trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/Node.java
Modified: trunk/core/org.cishell.algorithm.convertergraph/META-INF/MANIFEST.MF
===================================================================
--- trunk/core/org.cishell.algorithm.convertergraph/META-INF/MANIFEST.MF 2009-07-30 14:48:59 UTC (rev 906)
+++ trunk/core/org.cishell.algorithm.convertergraph/META-INF/MANIFEST.MF 2009-07-30 16:57:02 UTC (rev 907)
@@ -5,8 +5,14 @@
Bundle-Version: 1.0.0
Bundle-ClassPath: .
Bundle-Localization: plugin
-Import-Package: edu.iu.nwb.converter.nwb.common,
- edu.iu.nwb.util.nwbfile,
+Import-Package: edu.uci.ics.jung.graph,
+ edu.uci.ics.jung.graph.decorators,
+ edu.uci.ics.jung.graph.event,
+ edu.uci.ics.jung.graph.filters,
+ edu.uci.ics.jung.graph.filters.impl,
+ edu.uci.ics.jung.graph.impl,
+ edu.uci.ics.jung.graph.predicates,
+ edu.uci.ics.jung.utils,
org.cishell.framework,
org.cishell.framework.algorithm,
org.cishell.framework.data,
Modified: trunk/core/org.cishell.algorithm.convertergraph/OSGI-INF/algorithm.properties
===================================================================
--- trunk/core/org.cishell.algorithm.convertergraph/OSGI-INF/algorithm.properties 2009-07-30 14:48:59 UTC (rev 906)
+++ trunk/core/org.cishell.algorithm.convertergraph/OSGI-INF/algorithm.properties 2009-07-30 16:57:02 UTC (rev 907)
@@ -2,7 +2,7 @@
label=Converter Graph
description=Provides graph of all the converters in the tool.
in_data=null
-out_data=file:text/nwb
+out_data=edu.uci.ics.jung.graph.Graph
service.pid=org.cishell.algorithm.convertergraph.ConverterGraphAlgorithm
remoteable=true
written_in=Java
Modified: trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/ConverterGraphAlgorithm.java
===================================================================
--- trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/ConverterGraphAlgorithm.java 2009-07-30 14:48:59 UTC (rev 906)
+++ trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/ConverterGraphAlgorithm.java 2009-07-30 16:57:02 UTC (rev 907)
@@ -1,13 +1,6 @@
package org.cishell.algorithm.convertergraph;
-import java.io.File;
-import java.io.IOException;
import java.util.Dictionary;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
import org.cishell.framework.CIShellContext;
import org.cishell.framework.algorithm.Algorithm;
@@ -21,9 +14,11 @@
import org.osgi.framework.ServiceReference;
import org.osgi.service.log.LogService;
+import edu.uci.ics.jung.graph.Graph;
+
/**
* This plugin collects information about all the active converters in the tool and
- * outputs a NWB file having this Directed network. Also nodes corresponding to each
+ * outputs a JUNG Graph having this Directed network. Also nodes corresponding to each
* MIME/TYPE are weighted depending upon how many times they participate in a converter
* relationship.
*
@@ -35,7 +30,9 @@
private LogService logger;
private BundleContext bundleContext;
- private int nodeCount, edgeCount;
+ private Graph outputGraph;
+
+ private int nodeCount = 0, edgeCount = 0;
/**
* Construct with the appropriate parameters.
@@ -51,123 +48,25 @@
public Data[] execute() throws AlgorithmExecutionException {
- try {
-
- /*
- * Get all the converter service references currently in service.
- * */
- ServiceReference[] allConverterServices = getAllConverters();
-
- /*
- * Process the references to create a network of weighted nodes & directed edges.
- * */
- ConverterGraphComputation converterGraphComputation =
- new ConverterGraphComputation(allConverterServices, logger);
-
- /*
- * Used to generate the output file containing the network.
- * */
- File outputNWBFile = createOutputGraphFile(converterGraphComputation);
-
- return prepareOutputMetadata(new BasicData(outputNWBFile, "file:text/nwb"));
+ /*
+ * Get all the converter service references currently in service.
+ * */
+ ServiceReference[] allConverterServices = getAllConverters();
- } catch (IOException e) {
- throw new AlgorithmExecutionException(e);
- }
- }
-
- /**
- * Call all the NWB File Handler processes in order to create a NWB file.
- * @param converterGraphComputation
- * @return
- * @throws IOException
- */
- private File createOutputGraphFile(
- ConverterGraphComputation converterGraphComputation)
- throws IOException {
-
- File outputNWBFile = File.createTempFile("nwb-", ".nwb");
-
- ConverterGraphOutputGenerator outputGenerator = new ConverterGraphOutputGenerator(
- converterGraphComputation, outputNWBFile);
-
- outputGenerator.addComment("Graph of all Converters in the Tool.");
-
- nodeCount = converterGraphComputation.nodes.size();
- outputGenerator.setNodeCount(nodeCount);
-
- outputGenerator.setNodeSchema(converterGraphComputation.nodeSchema);
-
- /*
- * Print all the node rows to the output file.
- * */
- setNodeTuples(converterGraphComputation, outputGenerator);
-
- edgeCount = converterGraphComputation.edges.size();
- outputGenerator.setDirectedEdgeCount(edgeCount);
-
- outputGenerator.setDirectedEdgeSchema(converterGraphComputation.edgeSchema);
-
- /*
- * Print all the edge rows to the output file.
- * */
- setDirectedEdgeTuples(converterGraphComputation, outputGenerator);
-
- outputGenerator.finishedParsing();
- outputGenerator.haltParsingNow();
- return outputNWBFile;
- }
-
- /**
- * Iterate through the nodes and print it into the output file.
- * @param converterGraphComputation
- * @param outputGenerator
- */
- private void setDirectedEdgeTuples(
- ConverterGraphComputation converterGraphComputation,
- ConverterGraphOutputGenerator outputGenerator) {
-
- for (Iterator edgeIterator = converterGraphComputation.edges.iterator();
- edgeIterator.hasNext();) {
+ /*
+ * Process the references to create a network of weighted nodes & directed edges.
+ * */
+ ConverterGraphComputation converterGraphComputation =
+ new ConverterGraphComputation(allConverterServices, logger);
- Edge edge = (Edge) edgeIterator.next();
- int sourceNode = edge.source;
- int targetNode = edge.target;
- final String converterName = edge.serviceShortPID;
- final String servicePID = edge.serviceCompletePID;
-
- outputGenerator.addDirectedEdge(sourceNode, targetNode, new HashMap() {{
- put("converter_name", converterName);
- put("service_pid", servicePID);
- }});
- }
+ /*
+ * Used to generate the output reference for graph containing the network.
+ * */
+ return prepareOutputMetadata(new BasicData(converterGraphComputation.getOutputGraph(),
+ Graph.class.getName()));
}
/**
- * @param converterGraphComputation
- * @param outputGenerator
- */
- private void setNodeTuples(
- ConverterGraphComputation converterGraphComputation,
- ConverterGraphOutputGenerator outputGenerator) {
-
- for (Iterator nodeIterator = converterGraphComputation.nodes.entrySet().iterator();
- nodeIterator.hasNext();) {
-
- Map.Entry node = (Entry) nodeIterator.next();
-
- int nodeID = ((Node) node.getValue()).id;
- final int strength = ((Node) node.getValue()).strength;
- String label = node.getKey().toString();
-
- outputGenerator.addNode(nodeID, label, new HashMap() {{
- put("strength", strength);
- }});
- }
- }
-
-
- /**
* Gets all the converter service references based on the LDAP query.
* @return
*/
@@ -199,8 +98,10 @@
* @param outNWBData
*/
private Data[] prepareOutputMetadata(Data outNWBData) {
+
outNWBData.getMetadata().put(DataProperty.LABEL, "Converter Graph having "
- + nodeCount + " nodes & " + edgeCount + " edges.");
+ + ((Graph) outNWBData.getData()).numVertices() + " nodes & "
+ + ((Graph) outNWBData.getData()).numEdges() + " edges.");
outNWBData.getMetadata().put(DataProperty.TYPE, DataProperty.NETWORK_TYPE);
return new Data[]{outNWBData};
}
Modified: trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/ConverterGraphComputation.java
===================================================================
--- trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/ConverterGraphComputation.java 2009-07-30 14:48:59 UTC (rev 906)
+++ trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/ConverterGraphComputation.java 2009-07-30 16:57:02 UTC (rev 907)
@@ -3,41 +3,44 @@
*/
package org.cishell.algorithm.convertergraph;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Set;
import org.osgi.framework.ServiceReference;
import org.osgi.service.log.LogService;
-import edu.iu.nwb.util.nwbfile.NWBFileProperty;
+import edu.uci.ics.jung.graph.Edge;
+import edu.uci.ics.jung.graph.Graph;
+import edu.uci.ics.jung.graph.Vertex;
+import edu.uci.ics.jung.graph.impl.DirectedSparseEdge;
+import edu.uci.ics.jung.graph.impl.DirectedSparseGraph;
+import edu.uci.ics.jung.graph.impl.DirectedSparseVertex;
+import edu.uci.ics.jung.utils.UserDataContainer;
/**
* The algorithm is used for getting information about current converters is,
* 1. Get all the service references for converters in the system.
- * 2. Create Node Schema to be used when constructing the NWB file. In this case
- * it will be,
+ * 2. Node Schema to be used is,
* id*int, label*string, strength*int
- * 3. Create Edge Schema to be used when constructing the NWB file. In this case
- * it will be,
+ * 3. Edge Schema to be used is,
* source*int, target*int, converter_name*string, service_pid*string
* 4. Iterate over all the converter service reference one at a time.
* 5. For collecting information for Nodes do,
* (a). Get node label using service properties in_data & out_data.
- * (b). Check to see if this node is already present in the nodes map.
+ * (b). Check to see if this node is already present in the nodeLabels set.
* (c). If it is present then just update the strength of node by incrementing
* that node's strength by 1.
* (d). Else create a new node. Provide it a default strength of 1 and update
- * the node count.
+ * the node count. Also create an entry in the nodeLabels for future
+ * reference.
* 6. For collecting information about Edges do,
- * (a). Get the respective source & target node ids from the recently updates
- * respective nodes.
+ * (a). Get the respective source & target node references from the recently updated
+ * nodes.
* (b). Get the service_pid by using service property service.pid.
* (c). Get the converter_name by extracting the last block from service_pid.
- * 7. These information is then passed on to {@link ConverterGraphOutputGenerator}
- * for printing it into a NWB file.
+ * 7. Since the graph is being created during the processing of each node & edge
+ * it just needs to be referenced on the UI. This is done by outputting the metadata.
*
* @author cdtank
*
@@ -47,12 +50,17 @@
private LogService logger;
private ServiceReference[] allConverterServices;
- public Map nodes = new HashMap();
- public LinkedHashMap nodeSchema = new LinkedHashMap();
+ private Set nodeLabels = new HashSet();
- public List edges = new ArrayList();
- public LinkedHashMap edgeSchema = new LinkedHashMap();
+ private Graph outputGraph;
+ /**
+ * @return the outputGraph
+ */
+ public Graph getOutputGraph() {
+ return outputGraph;
+ }
+
private int nodeCount;
public ConverterGraphComputation(ServiceReference[] allConverterServices,
@@ -61,38 +69,14 @@
this.nodeCount = 0;
this.logger = logger;
this.allConverterServices = allConverterServices;
+ this.outputGraph = new DirectedSparseGraph();
/*
- * Side affects nodeSchema
- * */
- createNodeSchema();
-
- /*
- * Side affects edgeSchema
- * */
- createEdgeSchema();
-
- /*
* Side affects nodes & edges
* */
processServiceReferences();
}
- private void createNodeSchema() {
- nodeSchema.put("id", NWBFileProperty.TYPE_INT);
- nodeSchema.put("label", NWBFileProperty.TYPE_STRING);
- nodeSchema.put("strength", NWBFileProperty.TYPE_INT);
- }
-
- private void createEdgeSchema() {
- edgeSchema.put("source", NWBFileProperty.TYPE_INT);
- edgeSchema.put("target", NWBFileProperty.TYPE_INT);
- edgeSchema.put("converter_name", NWBFileProperty.TYPE_STRING);
- edgeSchema.put("service_pid", NWBFileProperty.TYPE_STRING);
- }
-
-
-
/*
* Iterate over all the converter service references and process the
* information to get nodes & edges.
@@ -103,7 +87,7 @@
converterCount < allConverterServices.length;
converterCount++) {
- int sourceNodeID, targetNodeID;
+ Vertex sourceNode, targetNode;
ServiceReference currentConverterServiceReference =
allConverterServices[converterCount];
@@ -113,47 +97,61 @@
String targetNodeKey =
(String) currentConverterServiceReference.getProperty("out_data");
- if (nodes.containsKey(sourceNodeKey)) {
- sourceNodeID = updateNode(sourceNodeKey);
+ if (nodeLabels.contains(sourceNodeKey)) {
+ sourceNode = updateNode(sourceNodeKey);
} else {
- sourceNodeID = createNode(sourceNodeKey);
+ sourceNode = createNode(sourceNodeKey);
}
- if (nodes.containsKey(targetNodeKey)) {
- targetNodeID = updateNode(targetNodeKey);
+ if (nodeLabels.contains(targetNodeKey)) {
+ targetNode = updateNode(targetNodeKey);
} else {
- targetNodeID = createNode(targetNodeKey);
+ targetNode = createNode(targetNodeKey);
}
- createEdge(sourceNodeID, targetNodeID, currentConverterServiceReference);
+ createEdge(sourceNode, targetNode, currentConverterServiceReference);
}
}
- private int updateNode(String currentNodeKey) {
- int sourceNodeID;
- Node sourceNodeValue = (Node) nodes.get(currentNodeKey);
- sourceNodeID = sourceNodeValue.id;
- sourceNodeValue.strength += 1;
- return sourceNodeID;
+ private Vertex updateNode(String currentNodeKey) {
+
+ for (Iterator nodeIterator = outputGraph.getVertices().iterator();
+ nodeIterator.hasNext();) {
+ Vertex currentVertex = (Vertex) nodeIterator.next();
+ if (currentVertex.getUserDatum("label").toString()
+ .equalsIgnoreCase(currentNodeKey)) {
+ int currentVertexStrength =
+ ((Integer) currentVertex.getUserDatum("strength")).intValue();
+ currentVertex.setUserDatum("strength", ++currentVertexStrength,
+ new UserDataContainer.CopyAction.Shared());
+ return currentVertex;
+ }
+ }
+ return new DirectedSparseVertex();
}
- private int createNode(String nodeKey) {
+ private Vertex createNode(String nodeKey) {
nodeCount++;
- Node nodeValue = new Node();
- nodeValue.id = nodeCount;
- nodeValue.strength = 1;
- nodes.put(nodeKey, nodeValue);
- return nodeCount;
+ Vertex node = new DirectedSparseVertex();
+
+ node.addUserDatum("id", nodeCount, new UserDataContainer.CopyAction.Shared());
+ node.addUserDatum("strength", 1, new UserDataContainer.CopyAction.Shared());
+ node.addUserDatum("label", nodeKey, new UserDataContainer.CopyAction.Shared());
+
+ outputGraph.addVertex(node);
+ nodeLabels.add(nodeKey);
+
+ return node;
}
/**
* Create an edge based on source id, target id & other information.
- * @param sourceNodeID
- * @param targetNodeID
+ * @param sourceNode
+ * @param targetNode
* @param currentConverterServiceReference
*/
- private void createEdge(int sourceNodeID, int targetNodeID,
+ private void createEdge(Vertex sourceNode, Vertex targetNode,
ServiceReference currentConverterServiceReference) {
String serviceCompletePID =
(String) currentConverterServiceReference.getProperty("service.pid");
@@ -166,15 +164,16 @@
String serviceShortPID = serviceCompletePID.substring(startIndexForConverterName);
/*
- * Build the actual edge tuple.
+ * Build the actual edge & attach it to the graph.
* */
- Edge edge = new Edge();
- edge.source = sourceNodeID;
- edge.target = targetNodeID;
- edge.serviceShortPID = serviceShortPID;
- edge.serviceCompletePID = serviceCompletePID;
+ Edge edge = new DirectedSparseEdge(sourceNode, targetNode);
- edges.add(edge);
+ edge.addUserDatum("converter_name", serviceShortPID,
+ new UserDataContainer.CopyAction.Shared());
+ edge.addUserDatum("service_pid", serviceCompletePID,
+ new UserDataContainer.CopyAction.Shared());
+
+ outputGraph.addEdge(edge);
}
}
Deleted: trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/ConverterGraphOutputGenerator.java
===================================================================
--- trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/ConverterGraphOutputGenerator.java 2009-07-30 14:48:59 UTC (rev 906)
+++ trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/ConverterGraphOutputGenerator.java 2009-07-30 16:57:02 UTC (rev 907)
@@ -1,62 +0,0 @@
-package org.cishell.algorithm.convertergraph;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-import edu.iu.nwb.util.nwbfile.NWBFileParserHandler;
-import edu.iu.nwb.util.nwbfile.NWBFileWriter;
-
-public class ConverterGraphOutputGenerator implements NWBFileParserHandler {
-
- private NWBFileWriter output;
-
- public ConverterGraphOutputGenerator(ConverterGraphComputation converterGraphComputation,
- File outputNWBFile) throws IOException {
- output = new NWBFileWriter(outputNWBFile);
- }
-
- public void setNodeCount(int numberOfNodes) {
- output.setNodeCount(numberOfNodes);
- }
-
- public void setNodeSchema(LinkedHashMap schema) {
- output.setNodeSchema(schema);
- }
-
- public void addNode(int id, String label, Map attributes) {
- output.addNode(id, label, attributes);
- }
-
- public void addDirectedEdge(int sourceNode, int targetNode, Map attributes) {
- output.addDirectedEdge(sourceNode, targetNode, attributes);
- }
- public void addUndirectedEdge(int node1, int node2, Map attributes) {
- output.addUndirectedEdge(node1, node2, attributes);
- }
- public void setDirectedEdgeCount(int numberOfEdges) {
- output.setDirectedEdgeCount(numberOfEdges);
- }
- public void setDirectedEdgeSchema(LinkedHashMap schema) {
- output.setDirectedEdgeSchema(schema);
- }
- public void setUndirectedEdgeCount(int numberOfEdges) {
- output.setUndirectedEdgeCount(numberOfEdges);
- }
- public void setUndirectedEdgeSchema(LinkedHashMap schema) {
- output.setUndirectedEdgeSchema(schema);
- }
-
- public void addComment(String comment) {
- output.addComment(comment);
- }
-
- public void finishedParsing() {
- output.finishedParsing();
- }
-
- public boolean haltParsingNow() {
- return false;
- }
-}
Deleted: trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/Edge.java
===================================================================
--- trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/Edge.java 2009-07-30 14:48:59 UTC (rev 906)
+++ trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/Edge.java 2009-07-30 16:57:02 UTC (rev 907)
@@ -1,8 +0,0 @@
-package org.cishell.algorithm.convertergraph;
-
-public class Edge {
- public int source;
- public int target;
- public String serviceShortPID;
- public String serviceCompletePID;
-}
\ No newline at end of file
Deleted: trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/Node.java
===================================================================
--- trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/Node.java 2009-07-30 14:48:59 UTC (rev 906)
+++ trunk/core/org.cishell.algorithm.convertergraph/src/org/cishell/algorithm/convertergraph/Node.java 2009-07-30 16:57:02 UTC (rev 907)
@@ -1,13 +0,0 @@
-/**
- *
- */
-package org.cishell.algorithm.convertergraph;
-
-/**
- * @author cdtank
- *
- */
-public class Node {
- public int id;
- public int strength;
-}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|