public MultivaluedHierarchicalFacet(MultivaluedHierarchicalFacet facet) { super(facet); this.displayValue = facet.getDisplayValue(); for (HierarchicalFacetNode node : facet.getFacetNodes()) { MultivaluedHierarchicalFacetNode newNode = new MultivaluedHierarchicalFacetNode(node.getFacetValue()); this.facetNodes.add(newNode); } }
public void setDisplayValues(MultivaluedHierarchicalFacet facet) { int startingCount = this.facetNodes.size(); String targetJoined = this.getLastNode().joinTiers(false); for (HierarchicalFacetNode node : facet.getFacetNodes()) { MultivaluedHierarchicalFacetNode targetNode = (MultivaluedHierarchicalFacetNode) this.getNodeBySearchValue(node.getSearchValue()); if (targetNode != null) { log.debug("Adding in display value " + node.getDisplayValue()); targetNode.setDisplayValue(node.getDisplayValue()); } else { String joined = ((MultivaluedHierarchicalFacetNode) node).joinTiers(false); if (targetJoined.indexOf(joined) == 0) { log.debug( "Adding in missing node " + node.getSearchValue() + "," + node.getDisplayValue()); this.facetNodes.add((HierarchicalFacetNode) node.clone()); } } } // If the number of nodes has changed, then resort if (this.facetNodes.size() != startingCount) { this.sortTiers(); } }