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