import jalview.ws.params.ParamDatastoreI;
import jalview.ws.params.ParamManager;
import jalview.ws.params.WsParamSetI;
+import jalview.xml.binding.jalview.ObjectFactory;
+import jalview.xml.binding.jalview.WebServiceParameterSet;
import java.io.File;
+import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.List;
import java.util.StringTokenizer;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.Marshaller;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamReader;
+
/**
* store and retrieve web service parameter sets.
*
*/
public class WsParamSetManager implements ParamManager
{
- Hashtable<String, ParamDatastoreI> paramparsers = new Hashtable<String, ParamDatastoreI>();
+ Hashtable<String, ParamDatastoreI> paramparsers = new Hashtable<>();
@Override
public WsParamSetI[] getParameterSet(String name, String serviceUrl,
}
StringTokenizer st = new StringTokenizer(files, "|");
String pfile = null;
- ArrayList<WsParamSetI> params = new ArrayList<WsParamSetI>();
+ List<WsParamSetI> params = new ArrayList<>();
while (st.hasMoreTokens())
{
pfile = st.nextToken();
private WsParamSetI[] parseParamFile(String filename) throws IOException
{
- List<WsParamSetI> psets = new ArrayList<WsParamSetI>();
+ List<WsParamSetI> psets = new ArrayList<>();
InputStreamReader is = new InputStreamReader(
- new java.io.FileInputStream(new File(filename)), "UTF-8");
-
- jalview.schemabinding.version2.WebServiceParameterSet wspset = new jalview.schemabinding.version2.WebServiceParameterSet();
+ new FileInputStream(new File(filename)), "UTF-8");
- org.exolab.castor.xml.Unmarshaller unmar = new org.exolab.castor.xml.Unmarshaller(
- wspset);
- unmar.setWhitespacePreserve(true);
+ WebServiceParameterSet wspset = null;
try
{
- wspset = (jalview.schemabinding.version2.WebServiceParameterSet) unmar
- .unmarshal(is);
+ JAXBContext jc = JAXBContext
+ .newInstance("jalview.xml.binding.jalview");
+ javax.xml.bind.Unmarshaller um = jc.createUnmarshaller();
+ XMLStreamReader streamReader = XMLInputFactory.newInstance()
+ .createXMLStreamReader(is);
+ JAXBElement<WebServiceParameterSet> jbe = um.unmarshal(streamReader,
+ WebServiceParameterSet.class);
+ wspset = jbe.getValue();
} catch (Exception ex)
{
throw new IOException(ex);
}
+
if (wspset != null && wspset.getParameters().length() > 0)
{
- for (String url : wspset.getServiceURL())
+ List<String> urls = wspset.getServiceURL();
+ final String[] urlArray = urls.toArray(new String[urls.size()]);
+
+ for (String url : urls)
{
ParamDatastoreI parser = paramparsers.get(url);
if (parser != null)
{
WsParamSetI pset = parser.parseServiceParameterFile(
wspset.getName(), wspset.getDescription(),
- wspset.getServiceURL(), wspset.getParameters());
+ urlArray, wspset.getParameters());
if (pset != null)
{
pset.setSourceFile(filename);
if (value == JalviewFileChooser.APPROVE_OPTION)
{
outfile = chooser.getSelectedFile();
- jalview.bin.Cache.setProperty("LAST_DIRECTORY",
- outfile.getParent());
+ Cache.setProperty("LAST_DIRECTORY", outfile.getParent());
filename = outfile.getAbsolutePath();
if (!filename.endsWith(".wsparams"))
{
}
paramFiles = paramFiles.concat(filename);
}
- jalview.bin.Cache.setProperty("WS_PARAM_FILES", paramFiles);
+ Cache.setProperty("WS_PARAM_FILES", paramFiles);
- jalview.schemabinding.version2.WebServiceParameterSet paramxml = new jalview.schemabinding.version2.WebServiceParameterSet();
+ WebServiceParameterSet paramxml = new WebServiceParameterSet();
paramxml.setName(parameterSet.getName());
paramxml.setDescription(parameterSet.getDescription());
- paramxml.setServiceURL(parameterSet.getApplicableUrls().clone());
+ for (String url : parameterSet.getApplicableUrls())
+ {
+ paramxml.getServiceURL().add(url);
+ }
paramxml.setVersion("1.0");
try
{
parser.generateServiceParameterFile(parameterSet));
PrintWriter out = new PrintWriter(new OutputStreamWriter(
new FileOutputStream(outfile), "UTF-8"));
- paramxml.marshal(out);
+ JAXBContext jaxbContext = JAXBContext
+ .newInstance(WebServiceParameterSet.class);
+ Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
+ jaxbMarshaller.marshal(
+ new ObjectFactory().createWebServiceParameterSet(paramxml),
+ out);
out.close();
parameterSet.setSourceFile(filename);
} catch (Exception e)