001: /*
002: * $RCSfile: Node.java,v $
003: *
004: * @(#)Node.java 1.19 98/11/05 20:41:20
005: *
006: * Copyright (c) 1996-1998 Sun Microsystems, Inc. All Rights Reserved.
007: *
008: * Sun grants you ("Licensee") a non-exclusive, royalty free, license to use,
009: * modify and redistribute this software in source and binary code form,
010: * provided that i) this copyright notice and license appear on all copies of
011: * the software; and ii) Licensee does not utilize the software in a manner
012: * which is disparaging to Sun.
013: *
014: * This software is provided "AS IS," without a warranty of any kind. ALL
015: * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
016: * IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
017: * NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE
018: * LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING
019: * OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS
020: * LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT,
021: * INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
022: * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF
023: * OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE
024: * POSSIBILITY OF SUCH DAMAGES.
025: *
026: * This software is not designed or intended for use in on-line control of
027: * aircraft, air traffic, aircraft navigation or aircraft communications; or in
028: * the design, construction, operation or maintenance of any nuclear
029: * facility. Licensee represents and warrants that it will not use or
030: * redistribute the Software for such purposes.
031: *
032: * $Revision: 1.2 $
033: * $Date: 2005/02/03 23:07:16 $
034: * $State: Exp $
035: */
036: /*
037: * @Author: Rick Goldberg
038: * @Author: Doug Gehringer
039: */
040: package vrml.node;
041:
042: import vrml.*;
043:
044: /**
045: * This is the basic interface for all VRML nodes. All VRML fields are
046: * accessed through the field methods. New nodes are created through the
047: * Browser using the load and create methods.
048: * <p>
049: * Subclasses of Node exist only when the subclass give additional
050: * functionality, such as exposing additional parts of the Java3D implemenation
051: * for the node.
052: *
053: *@see vrml.Browser
054: */
055: public class Node extends vrml.BaseNode {
056: /** Description of the Field */
057: protected org.jdesktop.j3d.loaders.vrml97.impl.Node implNode;
058:
059: /**
060: * This is an internal constructor. Nodes are only created by the
061: * Browser or Loader.
062: *
063: *@param init Description of the Parameter
064: */
065: public Node(org.jdesktop.j3d.loaders.vrml97.impl.Node init) {
066: super (init);
067: implNode = init;
068: }
069:
070: /**
071: * Returns an ExposedField field
072: *
073: *@param fieldName Description of the Parameter
074: *@return The exposedField value
075: *@exception InvalidExposedFieldException Description of the Exception
076: */
077: public final Field getExposedField(String fieldName)
078: throws InvalidExposedFieldException {
079: org.jdesktop.j3d.loaders.vrml97.impl.Field implField = implNode
080: .getExposedField(fieldName);
081: return implField.wrap();
082: }
083:
084: /**
085: * Returns an EventIn field
086: *
087: *@param eventInName Description of the Parameter
088: *@return The eventIn value
089: *@exception InvalidEventInException Description of the Exception
090: */
091: public final Field getEventIn(String eventInName)
092: throws InvalidEventInException {
093: org.jdesktop.j3d.loaders.vrml97.impl.Field implField = implNode
094: .getEventIn(eventInName);
095: return implField.wrap();
096: }
097:
098: /**
099: * Returns an EventOut field
100: *
101: *@param eventOutName Description of the Parameter
102: *@return The eventOut value
103: *@exception InvalidEventOutException Description of the Exception
104: */
105: public ConstField getEventOut(String eventOutName)
106: throws InvalidEventOutException {
107: org.jdesktop.j3d.loaders.vrml97.impl.ConstField implField = implNode
108: .getEventOut(eventOutName);
109: return (ConstField) implField.wrap();
110: }
111:
112: /**
113: * Returns the VRML class type for the node.
114: *
115: *@return The type value
116: */
117: public String getType() {
118: return implNode.getType();
119: }
120:
121: /**
122: * Description of the Method
123: *
124: *@return Description of the Return Value
125: */
126: public Object clone() {
127: return ((org.jdesktop.j3d.loaders.vrml97.impl.Node) implNode
128: .clone()).wrap();
129: }
130:
131: /**
132: * Returns the Browser which created this node.
133: *
134: *@return The browser value
135: */
136: public vrml.Browser getBrowser() {
137: return new Browser(implNode.getBrowser());
138: }
139:
140: /**
141: * Gets the impl attribute of the Node object
142: *
143: *@return The impl value
144: */
145: protected org.jdesktop.j3d.loaders.vrml97.impl.BaseNode getImpl() {
146: return implNode;
147: }
148:
149: }
|