/* * © Copyright IBM Corp. 2013 * * Licensed 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.ibm.sbt.services.client.connections.search; import com.ibm.commons.util.StringUtil; import com.ibm.commons.xml.DOMUtil; import com.ibm.commons.xml.XMLException; import com.ibm.commons.xml.xpath.XPathExpression; import com.ibm.sbt.services.client.base.datahandlers.FieldEntry; public enum FacetValueXPath implements FieldEntry{ entry("/ibmsc:facetValue"), uid("@id"), id("@id"), label("@label"), weight("@weight"), facetId("/a:feed/ibmsc:facets/ibmsc:facet[@id='{facet.id}']/ibmsc:facetValue"); private final XPathExpression path; private FacetValueXPath(String xpath) { this.path = compile(xpath); } private XPathExpression compile(String xpath){ XPathExpression xpathExpr = null; try { xpathExpr = DOMUtil.createXPath(xpath); } catch (XMLException e) { e.printStackTrace(); } return xpathExpr; } @Override public Object getPath() { return path; } public XPathExpression getFacetPath(String value) { return compile(StringUtil.replace(path.getExpression(), "{facet.id}", value)); } @Override public String getName() { return this.name(); } }