001: /*
002: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
003: *
004: * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
005: *
006: * The contents of this file are subject to the terms of either the GNU
007: * General Public License Version 2 only ("GPL") or the Common
008: * Development and Distribution License("CDDL") (collectively, the
009: * "License"). You may not use this file except in compliance with the
010: * License. You can obtain a copy of the License at
011: * http://www.netbeans.org/cddl-gplv2.html
012: * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
013: * specific language governing permissions and limitations under the
014: * License. When distributing the software, include this License Header
015: * Notice in each file and include the License file at
016: * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
017: * particular file as subject to the "Classpath" exception as provided
018: * by Sun in the GPL Version 2 section of the License file that
019: * accompanied this code. If applicable, add the following below the
020: * License Header, with the fields enclosed by brackets [] replaced by
021: * your own identifying information:
022: * "Portions Copyrighted [year] [name of copyright owner]"
023: *
024: * Contributor(s):
025: *
026: * The Original Software is NetBeans. The Initial Developer of the Original
027: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
028: * Microsystems, Inc. All Rights Reserved.
029: *
030: * If you wish your version of this file to be governed by only the CDDL
031: * or only the GPL Version 2, indicate your decision by adding
032: * "[Contributor] elects to include this software in this distribution
033: * under the [CDDL or GPL Version 2] license." If you do not indicate a
034: * single choice of license, a recipient has the option to distribute
035: * your version of this file under either the CDDL, the GPL Version 2 or
036: * to extend the choice of license to its licensees as provided above.
037: * However, if you add GPL Version 2 code and therefore, elected the GPL
038: * Version 2 license, then the option applies only if the new code is
039: * made subject to such option by the copyright holder.
040: */
041: package org.netbeans.modules.sql.framework.model.impl;
042:
043: import org.netbeans.modules.sql.framework.model.GUIInfo;
044: import org.netbeans.modules.sql.framework.model.SQLConstants;
045: import org.netbeans.modules.sql.framework.model.VisibleSQLLiteral;
046: import org.w3c.dom.Element;
047: import org.w3c.dom.NodeList;
048:
049: import com.sun.sql.framework.exception.BaseException;
050:
051: /**
052: * Represents a string or number literal value.
053: *
054: * @author Ritesh Adval, Sudhi Seshachala
055: * @version $Revision$
056: */
057: public class VisibleSQLLiteralImpl extends SQLLiteralImpl implements
058: VisibleSQLLiteral {
059:
060: /* GUI state info */
061: private GUIInfo guiInfo = new GUIInfo();
062:
063: /** Creates a new instance of SQLLiteral */
064: public VisibleSQLLiteralImpl() {
065: type = SQLConstants.VISIBLE_LITERAL;
066: }
067:
068: public VisibleSQLLiteralImpl(String aDisplayName, String value,
069: int jdbcType) throws BaseException {
070: super (aDisplayName, value, jdbcType);
071: type = SQLConstants.VISIBLE_LITERAL;
072: }
073:
074: public VisibleSQLLiteralImpl(VisibleSQLLiteral src) {
075: this ();
076:
077: if (src == null) {
078: throw new IllegalArgumentException(
079: "can not create VisibleSQLLiteral using copy constructor src is null");
080: }
081:
082: super .copyFrom(src);
083:
084: // copy gui info
085: GUIInfo gInfo = src.getGUIInfo();
086: this .guiInfo = gInfo != null ? (GUIInfo) gInfo.clone() : null;
087:
088: }
089:
090: public Object clone() {
091: return new VisibleSQLLiteralImpl(this );
092: }
093:
094: /**
095: * Gets GUI-related attributes for this instance in the form of a GuiInfo instance.
096: *
097: * @return associated GuiInfo instance
098: * @see GUIInfo
099: */
100: public GUIInfo getGUIInfo() {
101: return guiInfo;
102: }
103:
104: /**
105: * Parses the given xmlElement
106: *
107: * @exception BaseException while parsing
108: * @param xmlElement to be parsed
109: */
110: public void parseXML(Element xmlElement) throws BaseException {
111: super .parseXML(xmlElement);
112:
113: NodeList guiInfoList = xmlElement
114: .getElementsByTagName(GUIInfo.TAG_GUIINFO);
115: if (guiInfoList != null && guiInfoList.getLength() != 0) {
116: Element elem = (Element) guiInfoList.item(0);
117: guiInfo = new GUIInfo(elem);
118: }
119: }
120:
121: /**
122: * Overrides parent implementation to append UI state information.
123: *
124: * @param prefix String to append to each new line of the XML representation
125: * @return XML representation of this SQLObject instance
126: */
127: public String toXMLString(String prefix) {
128: StringBuilder buf = new StringBuilder(200);
129:
130: buf.append(prefix).append(getHeader());
131: buf.append(toXMLAttributeTags(prefix));
132: buf.append(guiInfo.toXMLString(prefix + "\t"));
133: buf.append(prefix).append(getFooter());
134:
135: return buf.toString();
136: }
137: }
|