001: /*
002: * The contents of this file are subject to the terms of the Common Development
003: * and Distribution License (the License). You may not use this file except in
004: * compliance with the License.
005: *
006: * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
007: * or http://www.netbeans.org/cddl.txt.
008: *
009: * When distributing Covered Code, include this CDDL Header Notice in each file
010: * and include the License file at http://www.netbeans.org/cddl.txt.
011: * If applicable, add the following below the CDDL Header, with the fields
012: * enclosed by brackets [] replaced by your own identifying information:
013: * "Portions Copyrighted [year] [name of copyright owner]"
014: *
015: * The Original Software is NetBeans. The Initial Developer of the Original
016: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
017: * Microsystems, Inc. All Rights Reserved.
018: */
019:
020: package org.netbeans.modules.xslt.mapper.xpatheditor;
021:
022: import org.netbeans.modules.xslt.mapper.methoid.Constants;
023: import org.openide.filesystems.FileObject;
024:
025: /**
026: * XPATH Palette Item information, used to keep information and helper methods
027: * used by XPATH collaboration editor.
028: *
029: * @author Tientien Li
030: * @version
031: */
032: public class XpathPaletteItemInfo {
033:
034: private FileObject myFo;
035:
036: /**
037: * Creates a new instance of XpathPaletteItemInfo
038: *
039: * @param cat the category
040: * @param itm the item
041: */
042: public XpathPaletteItemInfo(FileObject itmFo) {
043: myFo = itmFo;
044: }
045:
046: /**
047: * get the maximum number of input.
048: *
049: * @return the max input count
050: */
051: public int getMaxInput() {
052: int val = 0;
053: Object o = myFo.getAttribute(Constants.XPATH_MAXINPUT);
054: if (o != null) {
055: try {
056: val = Integer.parseInt((String) o);
057: } catch (Exception ex) {
058: // OK.. it is not a valid integer, return 0 instead.
059: }
060: }
061: return val;
062: }
063:
064: /**
065: * is the palette an operator.
066: *
067: * @return true if it is an operator
068: */
069: public boolean isOperator() {
070: String s = (String) myFo.getAttribute(Constants.XPATH_OPERATOR);
071: return ((s != null) && !s.equals(""));
072: }
073:
074: /**
075: * is the palette an operator.
076: *
077: * @return true if it is an operator
078: */
079: public boolean isFunction() {
080: String s = (String) myFo.getAttribute(Constants.XPATH_FUNCTION);
081: return (s != null && !s.equals(""));
082: }
083:
084: /**
085: * is the palette an Number.
086: *
087: * @return true if it is an Number
088: */
089: public boolean isNumber() {
090: String s = (String) myFo.getAttribute(Constants.XPATH_NUMBER);
091: return (s != null && !s.equals(""));
092: }
093:
094: /**
095: * is the palette an Boolean.
096: *
097: * @return true if it is an Boolean
098: */
099: public boolean isBoolean() {
100: String s = (String) myFo.getAttribute(Constants.XPATH_BOOLEAN);
101: return (s != null && !s.equals(""));
102: }
103:
104: /**
105: * is the palette an String.
106: *
107: * @return true if it is an String
108: */
109: public boolean isString() {
110: String s = (String) myFo.getAttribute(Constants.XPATH_STRING);
111: return (s != null && !s.equals(""));
112: }
113:
114: /**
115: * Retrieve the value of the attribute from the IPaletteItem.
116: * (from layer.xml)
117: *
118: * @param attrbName name of the attribute whose value we return
119: * @return string
120: */
121: public String getItemAttribute(String attrbName) {
122:
123: return (String) myFo.getAttribute(attrbName);
124: }
125:
126: /**
127: * Retrieve the value of the attribute from the IPaletteItem.
128: * (from layer.xml)
129: *
130: * @return string
131: */
132: private String getOperator() {
133:
134: return isOperator() ? (String) myFo
135: .getAttribute(Constants.XPATH_OPERATOR) : null;
136: }
137:
138: /**
139: * Retrieve the value of the attribute from the IPaletteItem.
140: * (from layer.xml)
141: *
142: * @return string
143: */
144: private String getFunction() {
145:
146: return isFunction() ? (String) myFo
147: .getAttribute(Constants.XPATH_FUNCTION) : null;
148: }
149:
150: /**
151: * Retrieve the value of the attribute from the IPaletteItem.
152: * (from layer.xml)
153: *
154: * @return string
155: */
156: private String getNumber() {
157:
158: return isNumber() ? (String) myFo
159: .getAttribute(Constants.XPATH_NUMBER) : null;
160: }
161:
162: /**
163: * Retrieve the value of the attribute from the IPaletteItem.
164: * (from layer.xml)
165: *
166: * @return string
167: */
168: private String getBoolean() {
169:
170: return isBoolean() ? (String) myFo
171: .getAttribute(Constants.XPATH_BOOLEAN) : null;
172: }
173:
174: /**
175: * Retrieve the value of the attribute from the IPaletteItem.
176: * (from layer.xml)
177: *
178: * @return string
179: */
180: private String getString() {
181: return isString() ? (String) myFo
182: .getAttribute(Constants.XPATH_STRING) : null;
183: }
184:
185: /**
186: * Describe <code>getOperation</code> method here.
187: *
188: * @return a <code>String</code> value
189: */
190: public String getOperation() {
191:
192: if (isOperator()) {
193: return getOperator();
194:
195: } else if (isFunction()) {
196: return getFunction();
197:
198: } else if (isBoolean()) {
199: return getBoolean();
200:
201: } else if (isNumber()) {
202: return getNumber();
203:
204: } else if (isString()) {
205: return getString();
206:
207: }
208: return null;
209: }
210:
211: }
|