001: /*
002: * $RCSfile: Script.java,v $
003: *
004: * @(#)Script.java 1.18 98/11/05 20:41:14
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.Event;
043: import vrml.Field;
044: import vrml.InvalidEventInException;
045: import vrml.InvalidEventOutException;
046: import vrml.InvalidExposedFieldException;
047: import vrml.InvalidFieldException;
048:
049: /** This is the base class for VRML scripts. */
050: public class Script extends vrml.BaseNode {
051:
052: vrml.Browser browser;
053: org.jdesktop.j3d.loaders.vrml97.impl.Script impl;
054:
055: /**Constructor for the Script object */
056: public Script() {
057: super (null);
058: browser = null;
059: impl = null;
060: }
061:
062: /**
063: * This is the internal constructor, called only when the Script is
064: * being initialized by the Loader.
065: *
066: *@param init Description of the Parameter
067: */
068: public Script(org.jdesktop.j3d.loaders.vrml97.impl.Script init) {
069: super (init);
070: impl = init;
071: //
072: browser = new vrml.Browser(impl.getBrowser());
073: }
074:
075: /**
076: * Description of the Method
077: *
078: *@return Description of the Return Value
079: */
080: public Object clone() {
081: return new Script(
082: (org.jdesktop.j3d.loaders.vrml97.impl.Script) impl
083: .clone());
084: }
085:
086: /**
087: * Gets the type attribute of the Script object
088: *
089: *@return The type value
090: */
091: public String getType() {
092: return "Script";
093: }
094:
095: /**
096: * Gets the browser attribute of the Script object
097: *
098: *@return The browser value
099: */
100: public vrml.Browser getBrowser() {
101: return browser;
102: }
103:
104: /**
105: * This is an internal method, used to link the Script to its
106: * implementaton
107: *
108: *@param s Description of the Parameter
109: */
110: public synchronized void registerOwner(
111: org.jdesktop.j3d.loaders.vrml97.impl.Script s) {
112: impl = s;
113: browser = new vrml.Browser(impl.getBrowser());
114: }
115:
116: /**
117: * Returns the Field specified in the VRML which invokes the script
118: *
119: *@param fieldName Description of the Parameter
120: *@return The field value
121: *@exception InvalidFieldException Description of the Exception
122: */
123: protected final synchronized Field getField(String fieldName)
124: throws InvalidFieldException {
125: return impl.getField(fieldName).wrap();
126: }
127:
128: /**
129: * Returns the EventOut specified in the VRML which invokes the script
130: *
131: *@param eventOutName Description of the Parameter
132: *@return The eventOut value
133: *@exception InvalidEventOutException Description of the Exception
134: */
135: protected final synchronized Field getEventOut(String eventOutName)
136: throws InvalidEventOutException {
137: return impl.getEventOut(eventOutName).wrap();
138: }
139:
140: /**
141: * Returns the EventIn specified in the VRML which invokes the script
142: *
143: *@param eventInName Description of the Parameter
144: *@return The eventIn value
145: *@exception InvalidEventInException Description of the Exception
146: */
147: protected final synchronized Field getEventIn(String eventInName)
148: throws InvalidEventInException {
149: return impl.getEventIn(eventInName).wrap();
150: }
151:
152: /** Called before any event is generated */
153: public void initialize() {
154: ;
155: }// doesn't have to be abOutstract
156:
157: /**
158: * Called when there are Events to be processed
159: *
160: *@param count Description of the Parameter
161: *@param events Description of the Parameter
162: */
163: public void processEvents(int count, Event[] events) {
164: ;
165: }
166:
167: /**
168: * Called when there is an Event to be processed
169: *
170: *@param event Description of the Parameter
171: */
172: public void processEvent(Event event) {
173: ;
174: }
175:
176: /** Called after every invocation of processEvents() */
177: public void eventsProcessed() {
178: ;
179: }
180:
181: /** Called when the Script node is deleted */
182: public void shutdown() {
183: }
184: }
|