/* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License (the "License"). * You may not use this file except in compliance with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at usr/src/OPENSOLARIS.LICENSE. * If applicable, add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your own identifying * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END */ /* * * ident "%Z%%M% %I% %E% SMI" * * Copyright (c) 1999 by Sun Microsystems, Inc. * All rights reserved. * * BSTItem.java * Simple binary search tree implementation for help articles */ package com.sun.admin.pm.client; import java.lang.*; import com.sun.admin.pm.server.*; public class BSTItem extends Object { public String key; public Object data; public int handle = UNINITIALIZED; static int serial = 0; static final int UNINITIALIZED = -1; public BSTItem(String newKey) { this(newKey, null); } public BSTItem(String newKey, Object obj) { key = newKey.toLowerCase(); data = obj; handle = serial++; } public String toString() { return new String("Item " + key + " (" + handle + ")"); } public int compare(BSTItem otherItem, boolean exact) { return compare(otherItem.key, exact); } public int compare(BSTItem otherItem) { return compare(otherItem, true); } public int compare(String otherKey) { return compare(otherKey, true); } public int compare(String otherKey, boolean exact) { /* * System.out.println(this.toString() + " comparing " + * (exact ? "exact" : "partial") + " to " + otherKey); */ int rv = 0; if (otherKey != null && otherKey != "") rv = exact ? key.compareTo(otherKey) : compareSub(otherKey.toLowerCase()); /* * System.out.println( * "Compare: " + key + " to " + otherKey + " -> " + rv); */ return rv; } public int compareSub(String s) { Debug.info("HELP: compareSub: " + key + " to " + s); int rv = 0; try { rv = key.substring(0, s.length()).compareTo(s); } catch (Exception x) { Debug.info("HELP: compareSub caught: " + x); rv = -1; } return rv; } }