/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)
- * Copyright (C) 2011 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
*
* This file is part of Jalview.
*
* Jalview is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
- *
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
* Jalview is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
*/
package jalview.gui;
+import jalview.bin.Cache;
+import jalview.io.JalviewFileChooser;
+import jalview.io.JalviewFileView;
+import jalview.util.MessageManager;
+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.util.List;
import java.util.StringTokenizer;
-import javax.swing.JButton;
-import javax.swing.JOptionPane;
-
-import jalview.bin.Cache;
-import jalview.io.JalviewFileChooser;
-import jalview.ws.jws2.dm.JabaWsParamSet;
-import jalview.ws.params.ParamDatastoreI;
-import jalview.ws.params.ParamManager;
-import jalview.ws.params.WsParamSetI;
+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();
{
add = true;
}
- add &= (modifiable == p.isModifiable() || unmodifiable == !p
- .isModifiable());
+ add &= (modifiable == p.isModifiable()
+ || unmodifiable == !p.isModifiable());
add &= name == null || p.getName().equals(name);
if (add)
}
} catch (IOException e)
{
- Cache.log
- .info("Failed to parse parameter file "
- + pfile
- + " (Check that all JALVIEW_WSPARAMFILES entries are valid!)",
- e);
+ Cache.log.info("Failed to parse parameter file " + pfile
+ + " (Check that all JALVIEW_WSPARAMFILES entries are valid!)",
+ e);
}
}
return params.toArray(new WsParamSetI[0]);
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");
+ new FileInputStream(new File(filename)), "UTF-8");
- jalview.schemabinding.version2.WebServiceParameterSet wspset = new jalview.schemabinding.version2.WebServiceParameterSet();
-
- 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 (filename != null && !((outfile = new File(filename)).canWrite()))
{
- Cache.log.info("Can't write to " + filename
+ Cache.log.warn("Can't write to " + filename
+ " - Prompting for new file to write to.");
filename = null;
}
}
if (parser == null)
{
- throw new Error(
- "Implementation error: Can't find a marshaller for the parameter set");
+ throw new Error(MessageManager.getString(
+ "error.implementation_error_cannot_find_marshaller_for_param_set"));
}
if (filename == null)
{
- JalviewFileChooser chooser = new JalviewFileChooser(
- jalview.bin.Cache.getProperty("LAST_DIRECTORY"), new String[]
- { "wsparams" }, new String[]
- { "Web Service Parameter File" },
+ // TODO: JAL-3048 webservice - not required for Jalview-JS
+
+ JalviewFileChooser chooser = new JalviewFileChooser("wsparams",
"Web Service Parameter File");
- chooser.setFileView(new jalview.io.JalviewFileView());
- chooser.setDialogTitle("Choose a filename for this parameter file");
- chooser.setToolTipText("Save");
+ chooser.setFileView(new JalviewFileView());
+ chooser.setDialogTitle(MessageManager
+ .getString("label.choose_filename_for_param_file"));
+ chooser.setToolTipText(MessageManager.getString("action.save"));
int value = chooser.showSaveDialog(Desktop.instance);
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
{
- paramxml.setParameters(parser
- .generateServiceParameterFile(parameterSet));
+ paramxml.setParameters(
+ 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)
File pfile = new File(filename);
if (pfile.exists() && pfile.canWrite())
{
- if (JOptionPane.showConfirmDialog(Desktop.instance,
+ if (JvOptionPane.showConfirmDialog(Desktop.instance,
"Delete the preset's file, too ?", "Delete User Preset ?",
- JOptionPane.OK_CANCEL_OPTION) == JOptionPane.OK_OPTION)
+ JvOptionPane.OK_CANCEL_OPTION) == JvOptionPane.OK_OPTION)
{
pfile.delete();
}
}
} catch (Exception e)
{
- Cache.log
- .error("Exception when trying to delete webservice user preset: ",
- e);
+ Cache.log.error(
+ "Exception when trying to delete webservice user preset: ",
+ e);
}
}