+++ /dev/null
-package com.indexdata.mkjsf.pazpar2;\r
-\r
-import java.io.Serializable;\r
-\r
-import com.indexdata.mkjsf.controls.ResultsPager;\r
-\r
-public interface Pz2Interface extends Serializable {\r
- \r
- /**\r
- * Executes a Pazpar2 search using the given query string\r
- * \r
- * @param query\r
- */\r
- //public void doSearch(String query);\r
- \r
- /**\r
- * Executes a Pazpar2 search using the current query \r
- */\r
- // public void doSearch();\r
- \r
- /**\r
- * Executes a Pazpar2 record requests\r
- * @return Active clients for the record request\r
- */\r
- // public String doRecord();\r
- \r
- /**\r
- * Updates display data objects by issuing the following pazpar2 commands: \r
- * 'show', 'stat', 'termlist' and 'bytarget'.\r
- * \r
- * Returns a count of the remaining active clients from the most recent search.\r
- * \r
- * After refreshing the data from pazpar2 the UI components displaying those \r
- * data should be re-rendered.\r
- * \r
- * @return count of activeclients \r
- */\r
- public String update();\r
- \r
- /**\r
- * Updates the data objects given by a comma separated list of one or more commands - \r
- * i.e. "show,state,termlist,bytarget".\r
- * \r
- * May not be useful for the UI directly. \r
- * \r
- * @param commands Command separated list of pazpar2 commands.\r
- * @return count of activeclients \r
- * \r
- */\r
- public String update (String commands);\r
- \r
- /**\r
- * Will retrieve or remove the record with the given recid from memory.\r
- * \r
- * A pazpar2 'record' command will then be issued. The part of the UI \r
- * showing record data should thus be re-rendered.\r
- * \r
- * @param recid\r
- * @return\r
- */\r
- public String toggleRecord(String recid);\r
- \r
- /**\r
- * Resolves whether the backend has a record with the given recid in memory \r
- * \r
- * @return true if the bean currently holds the record with recid\r
- */ \r
- public boolean hasRecord (String recId);\r
- \r
- \r
- /**\r
- * Initiates a pager object, a component holding the data to draw a sequence\r
- * of page numbers to navigate by and mechanisms to navigate with\r
- * \r
- * @param pageRange number of pages to display in the pager\r
- * @return ResultsPager the initiated pager component\r
- */\r
- public ResultsPager setPager(int pageRange);\r
- \r
- /**\r
- * Gives a component for drawing a pager to navigate by.\r
- * @return ResultsPager pager component\r
- */\r
- public ResultsPager getPager();\r
- \r
- /**\r
- * Returns the current hash key used, as used for internal session state tracking\r
- * and potentially for browser history entries as well\r
- * \r
- * A UI author would not normally be concerned with retrieving this. It's used by the\r
- * framework internally\r
- * \r
- * @return string that can be used for browsers window.location.hash\r
- */\r
- public String getCurrentStateKey ();\r
- \r
- /**\r
- * Sets the current state key, i.e. when user clicks back or forward in browser history.\r
- * Would normally be automatically handled by the frameworks components.\r
- * \r
- * @param key corresponding to browsers hash string\r
- */\r
- public void setCurrentStateKey(String key);\r
- \r
- public boolean getAuthenticationRequired ();\r
-\r
- public String getCheckHistory ();\r
- public String getWatchActiveclients ();\r
- public String getWatchActiveclientsRecord ();\r
-\r
- public void setServiceTypePZ2 ();\r
- public void setServiceTypeSP ();\r
- public void setServiceTypeTBD ();\r
- public void setServiceUrl(String url);\r
- public String getServiceUrl();\r
- public String getServiceType();\r
- public boolean isPazpar2Service (); \r
- public boolean isServiceProxyService(); \r
- public boolean serviceIsToBeDecided ();\r
- public SearchClient getSearchClient();\r
-}\r
import com.indexdata.mkjsf.errors.ConfigurationException;\r
import com.indexdata.mkjsf.errors.ErrorCentral;\r
import com.indexdata.mkjsf.errors.ErrorHelper;\r
-import com.indexdata.mkjsf.pazpar2.commands.Pazpar2Command;\r
import com.indexdata.mkjsf.pazpar2.commands.Pazpar2Commands;\r
import com.indexdata.mkjsf.pazpar2.data.RecordResponse;\r
-import com.indexdata.mkjsf.pazpar2.data.ResponseDataObject;\r
import com.indexdata.mkjsf.pazpar2.data.Responses;\r
import com.indexdata.mkjsf.pazpar2.state.StateListener;\r
import com.indexdata.mkjsf.pazpar2.state.StateManager;\r
import com.indexdata.mkjsf.utils.Utils;\r
\r
@Named("pz2") @SessionScoped\r
-public class Pz2Service implements Pz2Interface, StateListener, Configurable, Serializable {\r
+public class Pz2Service implements StateListener, Configurable, Serializable {\r
\r
private static final String MODULE_NAME = "service";\r
private static String SERVICE_TYPE_TBD = "TBD", SERVICE_TYPE_PZ2 = "PZ2", SERVICE_TYPE_SP = "SP";\r
pzreq.getRecord().removeParametersInState();\r
pzreq.getSearch().removeParametersInState(); \r
}\r
- \r
+ \r
+ \r
/**\r
- * Refreshes 'show', 'stat', 'termlist', and 'bytarget' data object from pazpar2\r
+ * Updates display data objects by issuing the following pazpar2 commands: \r
+ * 'show', 'stat', 'termlist' and 'bytarget'.\r
* \r
- * @return Number of activeclients at the time of the 'show' command.\r
- */\r
+ * If there is an outstanding change to the search command, a search\r
+ * will be issued before the updates are performed. \r
+ * \r
+ * Returns a count of the remaining active clients from the most recent search.\r
+ * \r
+ * After refreshing the data from pazpar2 the UI components displaying those \r
+ * data should be re-rendered.\r
+ * \r
+ * @return count of activeclients \r
+ */ \r
public String update () {\r
logger.debug("Updating show,stat,termlist,bytarget from pazpar2");\r
if (errors.hasConfigurationErrors()) {\r
}\r
\r
}\r
- \r
+ \r
+ /**\r
+ * Will retrieve -- or alternatively remove -- the record with the given \r
+ * recid from memory.\r
+ * \r
+ * A pazpar2 'record' command will then be issued. The part of the UI \r
+ * showing record data should thus be re-rendered.\r
+ * \r
+ * @param recid\r
+ * @return\r
+ */\r
public String toggleRecord (String recId) {\r
if (hasRecord(recId)) {\r
pzreq.getRecord().removeParameters(); \r
return "";\r
} else {\r
pzreq.getRecord().setId(recId);\r
- doCommand("record");\r
+ pzreq.getRecord().run();\r
+ // doCommand("record");\r
return pzresp.getRecord().getActiveClients();\r
}\r
}\r
\r
- @Override\r
+ /**\r
+ * Resolves whether the backend has a record with the given recid in memory \r
+ * \r
+ * @return true if the bean currently holds the record with recid\r
+ */ \r
public boolean hasRecord (String recId) {\r
return pzreq.getCommand("record").hasParameters() && pzresp.getRecord().getRecId().equals(recId);\r
}\r
\r
+ /**\r
+ * Returns the current hash key, used for internal session state tracking\r
+ * and potentially for browser history entries\r
+ * \r
+ * A UI author would not normally be concerned with retrieving this. It's used by the\r
+ * framework internally\r
+ * \r
+ * @return string that can be used for browsers window.location.hash\r
+ */\r
public String getCurrentStateKey () { \r
return stateMgr.getCurrentState().getKey();\r
}\r
\r
+ /**\r
+ * Sets the current state key, i.e. when user clicks back or forward in browser history.\r
+ * Would normally be automatically handled by the frameworks components.\r
+ * \r
+ * @param key corresponding to browsers hash string\r
+ */\r
public void setCurrentStateKey(String key) { \r
stateMgr.setCurrentStateKey(key);\r
}\r
return pzreq.getCommand("search").hasParameterValue("query"); \r
}\r
\r
- \r
- @Override\r
+ /**\r
+ * Returns a component for drawing a pager to navigate by.\r
+ * @return ResultsPager pager component\r
+ */\r
public ResultsPager getPager () {\r
if (pager == null) {\r
pager = new ResultsPager(pzresp); \r
return pager; \r
}\r
\r
- @Override\r
+ /**\r
+ * Initiates a pager object, a component holding the data to draw a sequence\r
+ * of page numbers to navigate by and mechanisms to navigate with\r
+ * \r
+ * @param pageRange number of pages to display in the pager\r
+ * @return ResultsPager the initiated pager component\r
+ */\r
public ResultsPager setPager (int pageRange) {\r
pager = new ResultsPager(pzresp,pageRange,pzreq);\r
return pager;\r
* @param commandName The command to be executed\r
* @return An XML response parsed to form a response data object\r
*/\r
+ /*\r
protected ResponseDataObject doCommand(String commandName) {\r
Pazpar2Command command = pzreq.getCommand(commandName);\r
if (command.spOnly() && isPazpar2Service()) {\r
return responseObject;\r
}\r
}\r
+ */\r
\r
@Override\r
public void stateUpdated(String commandName) {\r
}\r
}\r
\r
- \r
- @Override\r
public void setServiceUrl(String url) {\r
if (url!=null && searchClient != null && !url.equals(searchClient.getServiceUrl())) {\r
pzreq.getRecord().removeParametersInState();\r
return spClient;\r
} \r
\r
- @Override\r
public boolean getAuthenticationRequired () {\r
return spClient.isAuthenticatingClient();\r
}\r
\r
- @Override\r
public String getCheckHistory () {\r
return ":pz2watch:stateForm:windowlocationhash";\r
}\r
\r
- @Override\r
public String getWatchActiveclients () {\r
return ":pz2watch:activeclientsForm:activeclientsField";\r
}\r
\r
- @Override\r
public String getWatchActiveclientsRecord () {\r
return ":pz2watch:activeclientsForm:activeclientsFieldRecord";\r
}\r
return new ArrayList<String>();\r
}\r
\r
- @Override\r
public void setServiceTypePZ2() {\r
setServiceType(SERVICE_TYPE_PZ2); \r
}\r
\r
- @Override\r
public void setServiceTypeSP() {\r
setServiceType(SERVICE_TYPE_SP); \r
}\r
\r
- @Override\r
public void setServiceTypeTBD() {\r
setServiceType(SERVICE_TYPE_TBD); \r
}\r
+++ /dev/null
-package com.indexdata.mkjsf.pazpar2.commands;\r
-\r
-import java.io.Serializable;\r
-\r
-import com.indexdata.mkjsf.pazpar2.commands.SingleTargetFilter;\r
-\r
-public class SingleTargetFilter implements Serializable {\r
-\r
- private static final long serialVersionUID = 2389085467202526537L;\r
-\r
- private String targetName = "";\r
- private String targetId = "";\r
- \r
- public SingleTargetFilter (String targetId, String targetName) {\r
- this.targetId = targetId;\r
- this.targetName = targetName;\r
- }\r
- \r
- public String getTargetName () {\r
- return targetName;\r
- }\r
- \r
- public String getTargetId () {\r
- return targetId; \r
- }\r
- \r
- public String getFilterExpression () {\r
- return "pz:id="+targetId;\r
- }\r
- \r
- @Override\r
- public boolean equals(Object o) {\r
- if (o instanceof SingleTargetFilter) {\r
- return targetName.equals(((SingleTargetFilter) o).getTargetName()) && \r
- targetId.equals(((SingleTargetFilter) o).getTargetId());\r
- } else {\r
- return false;\r
- }\r
- }\r
- \r
- @Override\r
- public int hashCode () {\r
- return (targetId+targetName).hashCode();\r
- }\r
- \r
- @Override\r
- public String toString () {\r
- return targetName + " (" + targetId + ")";\r
- }\r
- \r
-}\r