|
From: <tea...@us...> - 2007-07-31 15:55:23
|
Revision: 448
http://cishell.svn.sourceforge.net/cishell/?rev=448&view=rev
Author: teakettle22
Date: 2007-07-31 08:55:16 -0700 (Tue, 31 Jul 2007)
Log Message:
-----------
an initial to nwb file format of the converter graph.
Modified Paths:
--------------
trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/converter/ConverterLoaderImpl.java
trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/converter/graph/ConverterGraph.java
Modified: trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/converter/ConverterLoaderImpl.java
===================================================================
--- trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/converter/ConverterLoaderImpl.java 2007-07-30 18:00:47 UTC (rev 447)
+++ trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/converter/ConverterLoaderImpl.java 2007-07-31 15:55:16 UTC (rev 448)
@@ -59,9 +59,9 @@
ServiceReference[] refs = bContext.getServiceReferences(
AlgorithmFactory.class.getName(), filter);
- ConverterGraph g = new ConverterGraph(refs);
- System.out.println("Blah!");
- System.out.println(g);
+ // ConverterGraph g = new ConverterGraph(refs);
+ // System.out.println("Blah!");
+ // System.out.println(g);
if (refs != null) {
for (int i = 0; i < refs.length; ++i) {
//System.out.println(refs[i]);
Modified: trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/converter/graph/ConverterGraph.java
===================================================================
--- trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/converter/graph/ConverterGraph.java 2007-07-30 18:00:47 UTC (rev 447)
+++ trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/converter/graph/ConverterGraph.java 2007-07-31 15:55:16 UTC (rev 448)
@@ -1,8 +1,13 @@
package org.cishell.testing.convertertester.core.converter.graph;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
+import java.util.TreeSet;
import java.util.concurrent.ConcurrentHashMap;
import org.osgi.framework.ServiceReference;
@@ -94,16 +99,16 @@
String key = cp.getInData() + " " + ((ServiceReference)cp.getPath().get(0)).getProperty("out_data").toString();
if(this.fileExtensionCompareConverters.get(key) == null){
- System.out.println("Adding a new Comparison Path:\n" + cp);
+ // System.out.println("Adding a new Comparison Path:\n" + cp);
this.fileExtensionCompareConverters.put(key, new ConverterPath(cp));
}
else {
ConverterPath tempPath = (ConverterPath)this.fileExtensionCompareConverters.get(key);
int pathSize = tempPath.getPath().size();
if(pathSize > cp.getPath().size()){
- ConverterPath oldPath = (ConverterPath)this.fileExtensionCompareConverters.get(key);
- System.out.println("Replacing Comparision Path:\n" + oldPath + "with\n"
- + cp);
+ //ConverterPath oldPath = (ConverterPath)this.fileExtensionCompareConverters.get(key);
+ //System.out.println("Replacing Comparision Path:\n" + oldPath + "with\n"
+ // + cp);
this.fileExtensionCompareConverters.put(key, new ConverterPath(cp));
}
}
@@ -119,7 +124,7 @@
ServiceReference sr = (ServiceReference)srs.get(i);
String ss = sr.getProperty("out_data").toString();
if(ss.startsWith("file-ext") && (!ss.equals(cp.getInData()))){
- System.out.println(sr.getProperty("service.pid") + " yes");
+ //System.out.println(sr.getProperty("service.pid") + " yes");
forbidden.add(sr);
}
}
@@ -129,16 +134,16 @@
private void addPath(ConverterPath p){
if(this.fileExtensionTestConverters.get(p.getInData()) == null){
- System.out.println("Adding a new path");
+ //System.out.println("Adding a new path");
ArrayList paths = new ArrayList();
paths.add(p);
this.fileExtensionTestConverters.put(p.getInData(), paths);
- System.out.println("Successfully Added");
+ //System.out.println("Successfully Added");
}
else{
- System.out.println("Adding a path");
+ //System.out.println("Adding a path");
((ArrayList)this.fileExtensionTestConverters.get(p.getInData())).add(p);
- System.out.println("Successfully Added");
+ //System.out.println("Successfully Added");
}
}
@@ -173,7 +178,8 @@
public String printComparisonConverterPaths(){
StringBuffer sb = new StringBuffer();
- String[] keySet = (String[])this.fileExtensionTestConverters.keySet().toArray();
+ String[] keySet = new String[this.fileExtensionTestConverters.keySet().size()];
+ keySet = (String[])this.fileExtensionTestConverters.keySet().toArray(keySet);
for(int i = 0; i < keySet.length; i++){
String s = keySet[i];
sb.append(printTestConverterPath(s));
@@ -229,4 +235,129 @@
}
return (ConverterPath[])graphs.toArray();
}
+
+ public File asNWB(){
+ File f = getTempFile();
+ Map nodes = assembleNodesSet();
+ TreeSet output = assembleEdges(nodes);
+ try{
+ FileWriter out = new FileWriter(f);
+ BufferedWriter bw = new BufferedWriter(out);
+
+ writeNodes(bw,nodes);
+
+ }
+ catch(IOException ex){
+ System.out.println("Blurt!");
+ }
+ return f;
+ }
+
+ private void writeNodeHeader(BufferedWriter bw, int numNodes) throws IOException{
+ bw.flush();
+ bw.write("*Nodes " + numNodes);
+
+ }
+
+ private void writeNodes(BufferedWriter bw, Map nodes) throws IOException{
+ System.out.println("*Nodes " + nodes.size());
+ writeNodeHeader(bw, nodes.size());
+ String[] keySet = new String[nodes.keySet().size()];
+ keySet = (String[])nodes.keySet().toArray(keySet);
+
+ for(int i = 0; i < keySet.length; i++){
+ bw.flush();
+ bw.write(nodes.get(keySet[i]) + " " + keySet[i]);
+ }
+
+ }
+
+ private void writeEdgeHeader(BufferedWriter bw, int numEdges) throws IOException{
+ bw.flush();
+ bw.write("*DirectedEdges " + numEdges);
+ }
+
+
+ private void writeEdges(BufferedWriter bw, TreeSet edges) throws IOException{
+ System.out.println("*DirectedEdges " + edges.size());
+ writeEdgeHeader(bw,edges.size());
+
+ String[] edgeArray = new String[edges.size()];
+ edgeArray = (String[])edges.toArray(edgeArray);
+
+ for(int i = 0; i < edgeArray.length; i++){
+ System.out.println(edgeArray[i]);
+ bw.flush();
+ bw.write(edgeArray[i]);
+ }
+ }
+
+ private Map assembleNodesSet(){
+
+ Map nodesToInt = new ConcurrentHashMap();
+
+ //create a set of all the in_data, out_data, and algorithm names
+ String[] keySet = new String[this.inDataToAlgorithm.keySet().size()];
+ keySet = (String[])this.inDataToAlgorithm.keySet().toArray(keySet);
+ TreeSet nodeNames = new TreeSet();
+ for(int i = 0; i < keySet.length; i++){
+ String s = keySet[i];
+ nodeNames.add(s);
+ ArrayList paths = (ArrayList)this.inDataToAlgorithm.get(s);
+ ServiceReference[] references = new ServiceReference[paths.size()];
+ references = (ServiceReference[])paths.toArray(references);
+
+ for(int j = 0; j < references.length; j++){
+ nodeNames.add(s);
+ }
+ }
+
+ String[] names = new String[nodeNames.size()];
+ names = (String[])nodeNames.toArray(names);
+
+ for(int i = 0; i < names.length; i++){
+ nodesToInt.put(names[i], new Integer(i+1));
+ }
+
+ return nodesToInt;
+ }
+
+ private TreeSet assembleEdges(Map m){
+ TreeSet edges = new TreeSet();
+ String[] keySet = new String[m.size()];
+ keySet = (String[])m.keySet().toArray(keySet);
+ for(int i = 0; i < keySet.length; i++){
+ String s = keySet[i];
+
+ ArrayList paths = (ArrayList)this.inDataToAlgorithm.get(s);
+ ServiceReference[] references = new ServiceReference[paths.size()];
+ references = (ServiceReference[])paths.toArray(references);
+
+ for(int j = 0; j < references.length; j++){
+ String output = m.get(s).toString() + " ";
+ output += m.get(references[j].getProperty("service.pid")).toString();
+ edges.add(output);
+ }
+
+ }
+ return edges;
+ }
+
+ private File getTempFile(){
+ File tempFile;
+
+ String tempPath = System.getProperty("java.io.tmpdir");
+ File tempDir = new File(tempPath+File.separator+"temp");
+ if(!tempDir.exists())
+ tempDir.mkdir();
+ try{
+ tempFile = File.createTempFile("NWB-Session-", ".nwb", tempDir);
+
+ }catch (IOException e){
+
+ tempFile = new File (tempPath+File.separator+"nwbTemp"+File.separator+"temp.nwb");
+
+ }
+ return tempFile;
+ }
}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|