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. |