|
From: <bh...@us...> - 2006-10-13 23:21:35
|
Revision: 276
http://svn.sourceforge.net/cishell/?rev=276&view=rev
Author: bh2
Date: 2006-10-13 16:21:31 -0700 (Fri, 13 Oct 2006)
Log Message:
-----------
fixed most problems with data conversion service, except for see line 190
Modified Paths:
--------------
trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java
Modified: trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java
===================================================================
--- trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java 2006-10-13 20:25:17 UTC (rev 275)
+++ trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java 2006-10-13 23:21:31 UTC (rev 276)
@@ -139,6 +139,10 @@
for (int i=0; i < converters.length; i++) {
String format = (String) converters[i].getProperties().get(OUT_DATA);
+ //tmp
+ String inFormat = (String) converters[i].getProperties().get(IN_DATA);
+ System.out.println("Converter:"+converters.length+":"+ inFormat + "->" + format + "->" + outFormat);
+
if (!formats.contains(format)) {
String filter = "(&("+ALGORITHM_TYPE+"="+TYPE_CONVERTER+")" +
"(!("+REMOTE+"=*))" +
@@ -153,7 +157,7 @@
for (int j=0; j < refs.length; j++) {
List chain = new ArrayList(Arrays.asList(
converters[i].getConverterChain()));
- chain.add(refs[i]);
+ chain.add(refs[j]);
ServiceReference[] newChain = (ServiceReference[])
chain.toArray(new ServiceReference[0]);
@@ -171,16 +175,22 @@
return (Converter[]) newConverters.toArray(new Converter[0]);
}
-
+
private Converter[] getConverters(String inFormat, String outFormat) {
String inFilter = "(&(" + ALGORITHM_TYPE + "=" + TYPE_CONVERTER + ")"
- + "(" + IN_DATA + "=" + inFormat + ") " + "(" + OUT_DATA
- + "=*)" + "(!("+IN_DATA+"=file-ext:*))" + "(!(" + REMOTE + "=*)))";
+ + "("+IN_DATA+"="+inFormat+") " + "("+OUT_DATA+"=*)" +
+ "(!("+IN_DATA+"=file-ext:*))" + "(!(" + REMOTE + "=*)))";
String outFilter = "(&(" + ALGORITHM_TYPE + "=" + TYPE_CONVERTER + ")"
- + "(" + IN_DATA + "=*) " + "(" + OUT_DATA + "=" + outFormat
- + ")" + "(!("+OUT_DATA+"=file-ext:*))" + "(!(" + REMOTE + "=*)))";
-
+ + "("+IN_DATA+"=*) " + "("+OUT_DATA+"="+outFormat+")"
+ + "(!(" + REMOTE + "=*)))";
+
+ Collection converterList = new HashSet();
+
+ //TODO: Check to see if inFormat matches the outFormat (for example:
+ //in=file:text/graphml out=file:* If so, need to add a null converter
+ //(w/ 0 sized servicereference array) to the converterList
+
try {
ServiceReference[] inRefs = bContext.getServiceReferences(
AlgorithmFactory.class.getName(), inFilter);
@@ -199,7 +209,7 @@
.getProperty(AlgorithmProperty.OUT_DATA));
}
- Collection converterList = new HashSet();
+
for (Iterator i = inFileTypeSet.iterator(); i.hasNext();) {
String srcDataType = (String) i.next();
for (Iterator j = outFileTypeSet.iterator(); j.hasNext();) {
@@ -209,12 +219,11 @@
converterList.add(converter);
}
}
- return (Converter[]) converterList.toArray(new Converter[0]);
}
} catch (InvalidSyntaxException e) {
e.printStackTrace();
}
- return new Converter[0];
+ return (Converter[]) converterList.toArray(new Converter[0]);
}
private Converter getConverter(String inType, String outType) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|