01: /*
02: * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
03: *
04: * Redistribution and use in source and binary forms, with or without
05: * modification, are permitted provided that the following conditions
06: * are met:
07: *
08: * - Redistributions of source code must retain the above copyright
09: * notice, this list of conditions and the following disclaimer.
10: *
11: * - Redistribution in binary form must reproduce the above copyright
12: * notice, this list of conditions and the following disclaimer in
13: * the documentation and/or other materials provided with the
14: * distribution.
15: *
16: * Neither the name of Sun Microsystems, Inc. or the names of
17: * contributors may be used to endorse or promote products derived
18: * from this software without specific prior written permission.
19: *
20: * This software is provided "AS IS," without a warranty of any
21: * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
22: * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
23: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY
24: * EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES
25: * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
26: * DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN
27: * OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR
28: * FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR
29: * PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF
30: * LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE,
31: * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
32: *
33: * You acknowledge that Software is not designed, licensed or intended
34: * any nuclear facility.
35: */
36:
37: package com.sun.portal.search.providers.faces;
38:
39: import com.sun.portal.search.soif.SOIF;
40:
41: public class CategoryHit extends SearchHit {
42: private String id;
43:
44: /** Creates a new instance of CategoryHit */
45: public CategoryHit() {
46: super ();
47: }
48:
49: public CategoryHit(SOIF soif) {
50: super (soif);
51: }
52:
53: private String getId() {
54: return soif.getValue("id");
55: }
56:
57: private String getRelativeID() {
58: String categoryRootID = this .getSourceDatabase()
59: .getCategoryRoot();
60: if (categoryRootID.equals("ROOT")) {
61: return getId();
62: } else {
63: return getId().substring(categoryRootID.length() + 1);
64: }
65: }
66:
67: public SearchHit createInstance(SOIF soif, String defaultType) {
68: SearchHit retValue = null;
69: if (SearchHitFactory.HIT_CATEGORY.equals(defaultType)) {
70: retValue = new CategoryHit(soif);
71: }
72: return retValue;
73: }
74:
75: public String gotoDocument() {
76: this .getSourceDatabase().getSearchHandler()
77: .setCurrentCategoryId(getId());
78: return getSourceDatabase().getSearchHandler().doBrowse();
79: }
80:
81: public String getTitle() {
82: return getRelativeID().replaceAll(":", " > ");
83: }
84:
85: }
|