001: /*
002: * Copyright 2003 Sun Microsystems, Inc. All rights reserved.
003: *
004: * Redistribution and use in source and binary forms, with or without
005: * modification, are permitted provided that the following conditions
006: * are met:
007: *
008: * - Redistributions of source code must retain the above copyright
009: * notice, this list of conditions and the following disclaimer.
010: *
011: * - Redistribution in binary form must reproduce the above copyright
012: * notice, this list of conditions and the following disclaimer in
013: * the documentation and/or other materials provided with the
014: * distribution.
015: *
016: * Neither the name of Sun Microsystems, Inc. or the names of
017: * contributors may be used to endorse or promote products derived
018: * from this software without specific prior written permission.
019: *
020: * This software is provided "AS IS," without a warranty of any
021: * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
022: * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
023: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY
024: * EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES
025: * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
026: * DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN
027: * OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR
028: * FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR
029: * PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF
030: * LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE,
031: * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
032: *
033: * You acknowledge that Software is not designed, licensed or intended
034: * for use in the design, construction, operation or maintenance of
035: * any nuclear facility.
036: */
037:
038: package com.sun.portal.portlet.samples.bookmarkportlet;
039:
040: import java.util.*;
041:
042: public class Target {
043:
044: //TBD: "=" should be replaced...
045: private static final char DELIMITER = '=';
046:
047: private static final int NAMES = 0;
048: private static final int VALUES = 1;
049:
050: public static final int INDEX_FIRST = 0;
051: public static final int INDEX_LAST = 1;
052:
053: private String name = null;
054: private String value = null;
055:
056: public Target(String t, char sep, int indexType) {
057: int index;
058: if (indexType == INDEX_FIRST) {
059: index = t.indexOf(sep);
060: } else {
061: index = t.lastIndexOf(sep);
062: }
063:
064: if (index != -1) {
065: name = t.substring(0, index);
066: value = t.substring(index + 1);
067: }
068: }
069:
070: //TBD: "=" should be replaced...
071: public Target(String t) {
072: this (t, DELIMITER, INDEX_FIRST);
073: }
074:
075: public Target(String n, String v) {
076: name = n;
077: value = v;
078: }
079:
080: //TBD: "=" should be replaced...
081: public String toString() {
082: return name + DELIMITER + value;
083: }
084:
085: public String getName() {
086: return name;
087: }
088:
089: public String getValue() {
090: return value;
091: }
092:
093: public void setName(String n) {
094: name = n;
095: }
096:
097: public void setValue(String v) {
098: value = v;
099: }
100:
101: private static List breakTargetList(List targetStrings, int type) {
102: List result = new ArrayList();
103:
104: Iterator i = targetStrings.iterator();
105: while (i.hasNext()) {
106: String s = (String) i.next();
107: Target t = new Target(s);
108:
109: String item = null;
110: if (type == NAMES) {
111: item = t.getName();
112: } else {
113: item = t.getValue();
114: }
115: result.add(item);
116: }
117:
118: return result;
119: }
120:
121: private static Vector breakTargetVector(Vector targetStrings,
122: int type) {
123: Vector result = new Vector();
124:
125: Enumeration e = targetStrings.elements();
126: while (e.hasMoreElements()) {
127: String s = (String) e.nextElement();
128: Target t = new Target(s);
129:
130: String item = null;
131: if (type == NAMES) {
132: item = t.getName();
133: } else {
134: item = t.getValue();
135: }
136: result.add(item);
137: }
138:
139: return result;
140: }
141:
142: public static List getNames(List targetStrings) {
143: List result = breakTargetList(targetStrings, NAMES);
144: return result;
145: }
146:
147: public static Vector getNamesVector(Vector targetStrings) {
148: Vector result = breakTargetVector(targetStrings, NAMES);
149: return result;
150: }
151:
152: public static List getValues(List targetStrings) {
153: List result = breakTargetList(targetStrings, VALUES);
154: return result;
155: }
156:
157: public static Vector getValuesVector(Vector targetStrings) {
158: Vector result = breakTargetVector(targetStrings, VALUES);
159: return result;
160: }
161:
162: }
|