+ PresetManager presets = null;
+
+ public JabaParamStore paramStore = null;
+
+ /**
+ * non thread safe - gets the presets for this service (blocks whilst it
+ * calls the service to get the preset set)
+ *
+ * @return service presets or null if exceptions were raised.
+ */
+ public PresetManager getPresets()
+ {
+ if (presets == null)
+ {
+ try
+ {
+ presets = service.getPresets();
+ } catch (Exception ex)
+ {
+ System.err
+ .println("Exception when retrieving presets for service "
+ + serviceType + " at " + hosturl);
+ }
+ }
+ return presets;
+ }
+
+ public String getHost()
+ {
+ return hosturl;
+ /*
+ * try { URL serviceurl = new URL(hosturl); if (serviceurl.getPort()!=80)
+ * { return serviceurl.getHost()+":"+serviceurl.getPort(); } return
+ * serviceurl.getHost(); } catch (Exception e) {
+ * System.err.println("Failed to parse service URL '" + hosturl +
+ * "' as a valid URL!"); } return null;
+ */
+ }
+
+ /**
+ * @return short description of what the service will do
+ */
+ public String getActionText()
+ {
+ return "Align with " + serviceType;
+ }
+
+ /**
+ * non-thread safe - blocks whilst accessing service to get complete set of
+ * available options and parameters
+ *
+ * @return
+ */
+ public RunnerConfig getRunnerConfig()
+ {
+ return service.getRunnerOptions();
+ }
+
+ @Override
+ protected void finalize() throws Throwable
+ {
+ if (service != null)
+ {
+ try
+ {
+ Closeable svc = (Closeable) service;
+ service = null;
+ svc.close();
+ } catch (Exception e)
+ {
+ }
+ ;
+ }
+ super.finalize();
+ }
+
+ public ParamDatastoreI getParamStore()
+ {
+ if (paramStore == null)
+ {
+ try
+ {
+ paramStore = new JabaParamStore(this,
+ (Desktop.instance != null ? Desktop
+ .getUserParameterStore() : null));
+ } catch (Exception ex)
+ {
+ }
+
+ }
+ return paramStore;
+ }
+
+ public String getUri()
+ {
+ // this is only valid for Jaba 1.0 - this formula might have to change!
+ return hosturl+(hosturl.lastIndexOf("/")==(hosturl.length()-1) ? "/" : "") +serviceType;
+ }
+ private boolean hasParams=false,lookedForParams=false;
+
+ public boolean hasParameters()
+ {
+ if (!lookedForParams)
+ {
+ lookedForParams=true;
+ try
+ {
+ hasParams = (getRunnerConfig().getArguments().size() > 0);
+ } catch (Exception e)
+ {
+
+ }
+ }
+ return hasParams;
+ }