Package com.esri.gpt.catalog.search

Source Code of com.esri.gpt.catalog.search.SearchFilterHarvestSites

/* See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* Esri Inc. licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License.  You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.esri.gpt.catalog.search;

import java.net.URI;
import java.net.URISyntaxException;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

import com.esri.gpt.catalog.search.SearchParameterMap.Value;


import com.esri.gpt.framework.jsf.MessageBroker;
import com.esri.gpt.framework.util.Val;
import com.esri.gpt.server.csw.client.CswCatalog;
import com.esri.gpt.server.csw.client.CswCatalogCapabilities;


/**
*
*
* The Class SearchFilterHarvestSites. Class started out as connecting the
* harvesting sites to the search UI.  Over time has evolved to facilitate
* external search.
*
*/
@SuppressWarnings("serial")
public class SearchFilterHarvestSites implements ISearchFilterAuthURI {

// class variables =============================================================
/** The Constant KEY_HARVEST_SITES_URL. */
private static final String KEY_HARVEST_SITE_URL = "KEY_HARVEST_SITES_URL";

/** The Constant KEY_HARVEST_SITE_NAME. */
private static final String KEY_HARVEST_SITE_NAME = "KEY_HARVEST_SITE_NAME";

/** The Constant KEY_HARVEST_SITE_ID. */
private static final String KEY_HARVEST_SITE_ID = "KEY_HARVEST_SITE_ID";

private static final String REST_KEY_HARVEST_SITE_ID_1 = "id";

private static final String REST_KEY_HARVEST_SITE_ID_2 = "rid";

private static final String KEY_PANEL_OPEN = "KEY_PANEL_OPEN";

private static final String KEY_DISTRIBUTED_RIDS = "KEY_DISTRIBUTED_RIDS";

private static final String KEY_URL_TOSEARCH = "KEY_URL_TOSEARCH";

/** The filter name **/
private static final String KEY_FILTERNAME = "KEY_FILTER_NAME";

// instance variables ==========================================================
/** The selected harvest site url. */
private String selectedHarvestSiteUrl;

/** The selected harvest site name. */
private String selectedHarvestSiteName;

/** The selected harvest site profile. */
private String selectedHarvestSiteProfile;

/** The selected harvest site post url. */
private String selectedHarvestSitePostUrl;

/** The selected harvest site get record url. */
private String selectedHarvestSiteGetRecordUrl;

/** The selected harvest site supoorts sptl qury. */
private String selectedHarvestSiteSupoortsSptlQury;

/** The selected harvest site supoorts ctp qury. */
private String selectedHarvestSiteSupoortsCtpQury;

/** The selected harvest site supoorts spt bnds. */
private String selectedHarvestSiteSupoortsSptBnds;

/** The selected harvest site password. */
private String selectedHarvestSitePassword;

/** The selected harvest site username. */
private String selectedHarvestSiteUsername;

/** The selected harvest site id. */
private String selectedHarvestSiteId;

/** The selected search site ids. */
private String selectedDistributedIds;

/** The selected Distribbuted names. */
private String selectedDistributedNames;

private boolean selectedHarvestSiteUsesAuth;

private boolean distributedPanelOpen;

/** The last search. */
private String searchUrl;

// properties ==================================================================



/**
* Gets the search url.
*
* @return the current searchurl (never null, trimmed)
*/
public String getSearchUrl() {
  return Val.chkStr(searchUrl);
}

/**
* Sets the current search url.
*
* @param searchUrl Search url
*/
public void setSearchUrl(String searchUrl ) {
  this.searchUrl = searchUrl;
}

/**
* Gets the selected search site ids.
*
* @return the selected search site ids (trimmed, never null)
*/
public String getSelectedDistributedIds() {
 
  return Val.chkStr(selectedDistributedIds);
}

/**
* Sets the selected search site ids.
*
* @param selectedSearchSiteIds the new selected search site ids
*/
public void setSelectedDistributedIds(String selectedSearchSiteIds) {
  this.selectedDistributedIds = selectedSearchSiteIds;
}

/**
* Checks if is distributed panel open.
*
* @return true, if is distributed panel open
*/
public boolean isDistributedPanelOpen() {
  return distributedPanelOpen;
}

public void setDistributedPanelOpen(boolean distributedPanelOpen) {
  this.distributedPanelOpen = distributedPanelOpen;
}

/**
* Gets the selected distributed names.
*
* @return the selected distributed names (trimmed, never null)
*/
public String getSelectedDistributedNames() {
  return Val.chkStr(selectedDistributedNames);
}

/**
* Sets the selected distributed names.
*
* @param selectedDistributedNames the new selected distributed names
*/
public void setSelectedDistributedNames(String selectedDistributedNames) {
  this.selectedDistributedNames = selectedDistributedNames;
}

/**
* Gets the selected harvest site get record url.
*
* @return the selected harvest site get record url (never null)
*/
public String getSelectedHarvestSiteGetRecordUrl() {
  return Val.chkStr(selectedHarvestSiteGetRecordUrl);

}

/**
* Sets the selected harvest site get record url.
*
* @param selectedHarvestSiteGetRecordUrl the new selected harvest site get record url
*/
public void setSelectedHarvestSiteGetRecordUrl(
    String selectedHarvestSiteGetRecordUrl) {
  this.selectedHarvestSiteGetRecordUrl = selectedHarvestSiteGetRecordUrl;
}

/**
* Gets the selected harvest site post url.
*
* @return the selected harvest site post url
*
* @throws SearchException the search exception
*/
public String getSelectedHarvestSitePostUrl() throws SearchException {
  if(selectedHarvestSitePostUrl == null
      || "".equals(selectedHarvestSitePostUrl.trim())){
    this.writePostGetUrl();
  }
  return Val.chkStr(selectedHarvestSitePostUrl);
}

/**
* Sets the selected harvest site post url.
*
* @param selectedHarvestSitePostUrl the new selected harvest site post url
*/
public void setSelectedHarvestSitePostUrl(String selectedHarvestSitePostUrl) {
  this.selectedHarvestSitePostUrl = selectedHarvestSitePostUrl;
}

/**
* Gets the selected harvest site url.
*
* @return the selected harvest site url (never null, trimmed)
*/
public String getSelectedHarvestSiteUrl() {
  return Val.chkStr(selectedHarvestSiteUrl);
}

/**
* Sets the selected harvest site url.
*
* @param selectedHarvestSiteUrl the new selected harvest site url
*/
public void setSelectedHarvestSiteUrl(String selectedHarvestSiteUrl) {
  if(this.selectedHarvestSiteUrl == null ||
      !this.selectedHarvestSiteUrl.equals(selectedHarvestSiteUrl)) {
    // resetting the selected harvest site post url since we
    // changed endpoints
    this.setSelectedHarvestSitePostUrl(null);
    this.setSelectedHarvestSiteGetRecordUrl(null);
  }
  this.selectedHarvestSiteUrl = selectedHarvestSiteUrl;
}


/**
* Gets the selected harvest site name.
*
* @return the selected harvest site name (trimmed, never null)
*/
public String getSelectedHarvestSiteName() {
  String siteName = Val.chkStr(selectedHarvestSiteName);
  if("".equals(siteName) && (
      this.getSelectedHarvestSiteId().equals(SearchEngineLocal.ID) ||
      this.getSelectedHarvestSiteId().equals(""))) {
    Map<String, String> attribs =
      SearchConfig.getConfiguredInstance().getSearchFactoryRepos().get(
          SearchEngineLocal.ID);
    if(attribs == null) {
      return "";
    }
    siteName = attribs.get("labelResourceKey");
    com.esri.gpt.framework.jsf.MessageBroker bundle =
      new com.esri.gpt.framework.jsf.MessageBroker();
    bundle.setBundleBaseName(
        com.esri.gpt.framework.jsf.MessageBroker.DEFAULT_BUNDLE_BASE_NAME);
    siteName = bundle.retrieveMessage(siteName);
  }
  return Val.chkStr(siteName);
}

/**
* Sets the selected harvest site name.
*
* @param selectedHarvestSiteName the new selected harvest site name
*/
public void setSelectedHarvestSiteName(String selectedHarvestSiteName) {
  this.selectedHarvestSiteName = selectedHarvestSiteName;
}

/**
* Gets the selected harvest site profile.
*
* @return the selected harvest site profile
*/
public String getSelectedHarvestSiteProfile() {
  return Val.chkStr(selectedHarvestSiteProfile);
}

/**
* Sets the selected harvest site profile.
*
* @param selectedHarvestSiteProfile the new selected harvest site profile
*/
public void setSelectedHarvestSiteProfile(String selectedHarvestSiteProfile) {
  this.selectedHarvestSiteProfile = selectedHarvestSiteProfile;
}


/**
* Gets the selected harvest site supoorts sptl qury.
*
* @return the selected harvest site supoorts sptl qury
*/
public String getSelectedHarvestSiteSupoortsSptlQury() {
  return String.valueOf(Val.chkBool(selectedHarvestSiteSupoortsSptlQury, false));
}

/**
* Sets the selected harvest site supoorts sptl qury.
*
* @param selectedHarvestSiteSupoortsSptlQury the new selected harvest site supoorts sptl qury
*/
public void setSelectedHarvestSiteSupoortsSptlQury(
    String selectedHarvestSiteSupoortsSptlQury) {
  this.selectedHarvestSiteSupoortsSptlQury = selectedHarvestSiteSupoortsSptlQury;
}

/**
* Gets the selected harvest site supoorts ctp qury.
*
* @return the selected harvest site supoorts ctp qury
*/
public String getSelectedHarvestSiteSupoortsCtpQury() {
  return String.valueOf(Val.chkBool(selectedHarvestSiteSupoortsCtpQury, false));
}

/**
* Sets the selected harvest site supoorts ctp qury.
*
* @param selectedHarvestSiteSupoortsCtpQury the new selected harvest site supoorts ctp qury
*/
public void setSelectedHarvestSiteSupoortsCtpQury(
    String selectedHarvestSiteSupoortsCtpQury) {
  this.selectedHarvestSiteSupoortsCtpQury = selectedHarvestSiteSupoortsCtpQury;
}

/**
* Gets the selected harvest site supoorts spt bnds.
*
* @return the selected harvest site supoorts spt bnds
*/
public String getSelectedHarvestSiteSupoortsSptBnds() {
  return String.valueOf(Val.chkBool(selectedHarvestSiteSupoortsSptBnds, false));
}

/**
* Sets the selected harvest site supoorts spt bnds.
*
* @param selectedHarvestSiteSupoortsSptBnds the new selected harvest site supoorts spt bnds
*/
public void setSelectedHarvestSiteSupoortsSptBnds(
    String selectedHarvestSiteSupoortsSptBnds) {
  this.selectedHarvestSiteSupoortsSptBnds = selectedHarvestSiteSupoortsSptBnds;
}

/**
* Gets the selected harvest site password.
*
* @return the selected harvest site password
*/
public String getSelectedHarvestSitePassword() {
  return selectedHarvestSitePassword;
}

/**
* Sets the selected harvest site password.
*
* @param selectedHarvestSitePassword the new selected harvest site password
*/
public void setSelectedHarvestSitePassword(String selectedHarvestSitePassword) {
  this.selectedHarvestSitePassword = selectedHarvestSitePassword;
}

/**
* Gets the selected harvest site username.
*
* @return the selected harvest site username
*/
public String getSelectedHarvestSiteUsername() {
  return selectedHarvestSiteUsername;
}

/**
* Sets the selected harvest site username.
*
* @param selectedHarvestSiteUsername the new selected harvest site username
*/
public void setSelectedHarvestSiteUsername(String selectedHarvestSiteUsername) {
  this.selectedHarvestSiteUsername = selectedHarvestSiteUsername;
}

/**
* Checks if is selected harvest site uses auth.
*
* @return true, if is selected harvest site uses auth
*/
public boolean isSelectedHarvestSiteUsesAuth() {
  return selectedHarvestSiteUsesAuth;
}

/**
* Sets the selected harvest site uses auth.
*
* @param selectedHarvestSiteUsesAuth the new selected harvest site uses auth
*/
public void setSelectedHarvestSiteUsesAuth(boolean selectedHarvestSiteUsesAuth) {
  this.selectedHarvestSiteUsesAuth = selectedHarvestSiteUsesAuth;
}

/**
* Gets the selected harvest site id.
*
* @return the selected harvest site id (trimmed, never null, default = -1)
*/
public String getSelectedHarvestSiteId() {
  if(selectedHarvestSiteId == null || selectedHarvestSiteId.trim().equals("")) {
    this.setSelectedHarvestSiteId(SearchEngineLocal.ID);
  }
  return Val.chkStr(selectedHarvestSiteId);
}

/**
* Sets the selected harvest site id.
*
* @param selectedHarvestSiteId the new selected harvest site id
*/
public void setSelectedHarvestSiteId(String selectedHarvestSiteId) {
  if(this.selectedHarvestSiteId != selectedHarvestSiteId) {
   
    //this.setSelectedHarvestSiteName(null);
    //this.setSelectedHarvestSiteUrl(null);
    //this.setSelectedHarvestSitePostUrl(null);
    //this.setSelectedHarvestSiteId(null);
    //this.setSelectedHarvestSiteGetRecordUrl(null);
  }
  this.selectedHarvestSiteId = selectedHarvestSiteId;
}

/**
* Gets the parameters associated with the object
* @return Returns the parameter map (never null)
*/
public SearchParameterMap getParams() {
  SearchParameterMap paramMap = new SearchParameterMap();
  paramMap.put(KEY_HARVEST_SITE_NAME, paramMap.new Value(
      this.getSelectedHarvestSiteName()));
  paramMap.put(KEY_HARVEST_SITE_URL, paramMap.new Value(
      this.getSelectedHarvestSiteUrl()));
  paramMap.put(KEY_HARVEST_SITE_ID, paramMap.new Value(
      this.getSelectedHarvestSiteId()));
  paramMap.put(KEY_DISTRIBUTED_RIDS, paramMap.new Value(
      this.getSelectedDistributedIds()));
  paramMap.put(KEY_PANEL_OPEN, paramMap.new Value(
      String.valueOf(this.isDistributedPanelOpen())));
  paramMap.put(KEY_URL_TOSEARCH, paramMap.new Value(
      this.getSearchUrl()));
  return paramMap;
}

/**
* Checks for equality
* @param obj Object to check
* @return true if equals, false if not
*/
public boolean isEquals(Object obj) {
  if(!(obj instanceof SearchFilterHarvestSites)) {
    return false;
  }
  SearchFilterHarvestSites fObj = (SearchFilterHarvestSites) obj;
 
  return
    fObj.getSelectedHarvestSiteName().equals(this.getSelectedHarvestSiteName())
    && fObj.getSelectedHarvestSiteId().equals(this.getSelectedHarvestSiteId());
}

/**
*
*/
public void reset() {
 
  this.setSelectedHarvestSiteName(null);
  this.setSelectedHarvestSiteUrl(null);
  this.setSelectedHarvestSitePostUrl(null);
  this.setSelectedHarvestSiteId(null);
  this.setSelectedHarvestSiteGetRecordUrl(null);
  this.setSelectedDistributedIds(null);
  this.setDistributedPanelOpen(false);
}

/**
* @param parameterMap
* @throws SearchException
*/
public void setParams(SearchParameterMap parameterMap) throws SearchException {
 
  Value val = parameterMap.get(KEY_HARVEST_SITE_NAME);
  if(val != null) {
    this.setSelectedHarvestSiteName(val.getParamValue());
  }
  val = parameterMap.get(KEY_HARVEST_SITE_URL);
  if(val != null) {
    this.setSelectedHarvestSiteUrl(val.getParamValue());
  }
  val = parameterMap.get(KEY_HARVEST_SITE_ID);
  if(val != null) {
    this.setSelectedHarvestSiteId(val.getParamValue());
  } else {
    val = parameterMap.get(REST_KEY_HARVEST_SITE_ID_1);
    if(val != null) {
      this.setSelectedHarvestSiteId(val.getParamValue());
    } else {
      val = parameterMap.get(REST_KEY_HARVEST_SITE_ID_2);
      if(val != null) {
        this.setSelectedHarvestSiteId(val.getParamValue());
      }
    }
  }
  val = parameterMap.get(KEY_DISTRIBUTED_RIDS);
  if(val != null) {
    this.setSelectedDistributedIds(val.getParamValue());
  }
  val = parameterMap.get(KEY_PANEL_OPEN);
  if(val != null) {
    this.setDistributedPanelOpen(Val.chkBool(val.getParamValue(), false));
  }
  val = parameterMap.get(KEY_URL_TOSEARCH);
  if(val != null) {
    this.setSearchUrl(Val.chkStr(val.getParamValue()));
  }
 
 
}

/**
* @throws SearchException
*/
public void validate() throws SearchException {
    writePostGetUrl();
}

/**
* Write post get url.
*
* @throws SearchException the search exception
*/
protected void writePostGetUrl() throws SearchException {
 
  try {
    this.setSelectedHarvestSitePostUrl(null);
    CswCatalog cswCatalog = new CswCatalog(this.getSelectedHarvestSiteUrl(),
    this.getSelectedHarvestSiteName(), SearchConfig.getConfiguredInstance().getGptXslProfiles().getCswProfiles().getProfileById(this.getSelectedHarvestSiteProfile()));
    cswCatalog.connect();
    CswCatalogCapabilities cap = cswCatalog.getCapabilities();
    this.setSelectedHarvestSitePostUrl(cap.get_getRecordsPostURL());
    this.setSelectedHarvestSiteGetRecordUrl(cap.get_getRecordByIDGetURL());
   
  } catch (Exception e) {
    throw new SearchException("Could not get capabilties from url=: "
        + this.getSelectedHarvestSiteUrl() + " : "
        + e.getMessage(), e);
  }

}

/**
* Do get csw catalog.
*
* @param url the url
* @param name the name
* @param profile the profile
*
* @return the csw catalog
*/
protected CswCatalog doGetCswCatalog(String url, String name, String profile) throws SearchException {
  CswCatalog cswCatalog = new CswCatalog(this.getSelectedHarvestSiteUrl(),
      this.getSelectedHarvestSiteName(), SearchConfig.getConfiguredInstance().
             getGptXslProfiles().getCswProfiles().getProfileById(this.getSelectedHarvestSiteProfile()));
  return cswCatalog;
}

/**
* Gets A url fo rthe search end point
* @return The url associated with the search
* @throws URISyntaxException
*/
public URI getSearchURI() throws URISyntaxException {
  String url = null;
  try {
    url = this.getSelectedHarvestSitePostUrl();
   return new URI(url);
  } catch (Exception e) {
    throw new URISyntaxException(url, "Could not make URI from postURL" +
        " given: " + url + " : "
        + e.getMessage());
  }
}

/**
* Reads users's password
* @return the password
*/
public String readPassword() {
  return this.getSelectedHarvestSitePassword();
}

/**
* Reads user's username
* @return the username
*/
public String readUsername() {
  return this.getSelectedHarvestSiteUsername();
}

/**
* Gets the jscript foreign sites.
*
* @return the jscript foreign sites
*/
public String getJscriptForeignSites() {
 
  MessageBroker broker = new MessageBroker();
  broker.setBundleBaseName(MessageBroker.DEFAULT_BUNDLE_BASE_NAME);
  StringBuffer json = new StringBuffer("[");
  com.esri.gpt.catalog.search.SearchConfig sConfig =
    com.esri.gpt.catalog.search.SearchConfig.getConfiguredInstance();
  java.util.Map<String, java.util.Map<String, String>>
  sfRepos = sConfig.getSearchFactoryRepos();
  java.util.Iterator<String> iter = sfRepos.keySet().iterator();
  boolean firstIter = false;
  while(iter != null && iter.hasNext()) {
    String key = iter.next();
    if(key == null) {
      continue;
    }
    java.util.Map<String, String> attribs = sfRepos.get(key);
    if(attribs == null) {
      continue;
    }
    String label = attribs.get("RESOURCEKEY");
    if(label == null || "".equals(label)) {
      label = attribs.get("LABELRESOURCEKEY");
      if(label == null || "".equals(label)) {
        continue;
      }
    }
    if(iter.hasNext() && firstIter) {
      json.append(",");
    }
    firstIter = true;
    json.append("{");
    label = broker.retrieveMessage(label);
    json.append("uuid: '" +
        com.esri.gpt.framework.util.Val.escapeSingleQuotes(key) + "',");
    json.append("name: '" +
        com.esri.gpt.framework.util.Val.escapeSingleQuotes(label) + "'");
    json.append("}");
   
 
  json.append("]");
  return json.toString();
}

}
TOP

Related Classes of com.esri.gpt.catalog.search.SearchFilterHarvestSites

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.