iicm.vrml.pw
Class Node

java.lang.Object
  extended by iicm.vrml.pw.Node
Direct Known Subclasses:
AppearNode, Bindable, Color, Common, Coordinate, Geometry, GroupNode, Interpolator, Light, MetaNode, Normal, ProfileNode, ProtoInstance, RouteNode, Sensor, Texture, TextureCoordinate

public abstract class Node
extends java.lang.Object

Node - Node base class Copyright (c) 1996,97 IICM

Version:
0.5, latest change: 31 Jan 97
Author:
Michael Pichler, Karin Roschker

Field Summary
static java.lang.String DEF_KEYWORD
           
static java.lang.String EXTERNPROTO_KEYWORD
           
static java.lang.String fieldIScontent
           
static java.lang.String META_KEYWORD
           
static java.lang.String newISname
           
static int newISnum
           
 java.lang.String objname
          instance name for DEF/USE
static java.lang.String PROFILE_KEYWORD
           
static java.lang.String PROTO_KEYWORD
           
static java.lang.String ROUTE_KEYWORD
           
static java.lang.String SCRIPT_KEYWORD
           
 java.util.Hashtable subfields
          fields of the node
static java.lang.String USE_KEYWORD
           
 java.lang.Object userdata
          this allows for storage of user data
 
Constructor Summary
Node()
           
 
Method Summary
(package private)  void addField(java.lang.String name, Field field, int fclass)
          add an (exposed) field or event
static Node addRoute(java.lang.String fromNodeName, Node fromNode, java.lang.String fromEvent, java.lang.String toNodeName, Node toNode, java.lang.String toEvent, ParserOutput pout, StrTokenizer st, boolean mkroute)
          add route
(package private) static java.lang.String atCurrLine(StrTokenizer st)
          helper for error messages: " at line NN" (current line no.)
(package private) static Node createInstanceFromName(VRMLparser parser, java.lang.String name)
          create node instance from its name
static boolean deleteRoute(Node fromNode, java.lang.String fromEvent, Node toNode, java.lang.String toEvent)
          delete route
 Field getEvent(java.lang.String name, int fclass)
          get an event field of appropriate field class (Field.F_EVENTIN/OUT)
abstract  java.lang.String nodeName()
          the node's name
(package private)  void readFields(VRMLparser parser)
          read fields of this node instance (node body)
static Node readNode(VRMLparser parser)
          read a node instance
(package private)  void readNodeBody(VRMLparser parser, java.lang.String name)
          read node body (from "{" to "}") of node name
(package private)  void readNodeBody(VRMLparser parser, java.lang.String name, char openbrace, char closebrace)
          check for openbrace, readFields, read closebrace
(package private)  void tab(java.io.PrintStream os, int depth)
           
abstract  void traverse(Traverser t)
          must call appropriate method of Traverser for node traversal
static void traverseNode(Traverser t, Node node)
          traverse a node, if it is non-null
 void writeNode(java.io.PrintStream os, java.util.Hashtable writtenrefs)
          write node to output stream
 void writeSubfield(java.lang.String fname, Field field, java.io.PrintStream os, java.util.Hashtable writtenrefs)
          write one subfield
 void writeSubfields(java.io.PrintStream os, java.util.Hashtable writtenrefs)
          write subfields (inside {}) to outputstream
 void writeX3dISfields(VRMLparser parser, java.io.PrintStream os, java.util.Hashtable writtenrefs, int depth)
           
 void writeX3dNode(java.io.PrintStream os, java.util.Hashtable writtenrefs, int depth)
          write X3d node to output stream
 void writeX3dNode(VRMLparser parser, java.io.PrintStream os, java.util.Hashtable writtenrefs, int depth)
          write X3d node to output stream
 void writeX3dNode(VRMLparser parser, java.io.PrintStream os, java.util.Hashtable writtenrefs, int depth, int proto)
           
 void writeX3dSubfield(java.lang.String fname, Field field, java.io.PrintStream os, java.util.Hashtable writtenrefs)
          write one X3d subfield
 void writeX3dSubfields(java.io.PrintStream os, java.util.Hashtable writtenrefs, int depth)
          write X3d subfields (inside {}) to outputstream
 void writeX3dSubfields(VRMLparser parser, java.io.PrintStream os, java.util.Hashtable writtenrefs, int depth)
          write X3d subfields (inside {}) to outputstream
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEF_KEYWORD

public static final java.lang.String DEF_KEYWORD
See Also:
Constant Field Values

USE_KEYWORD

public static final java.lang.String USE_KEYWORD
See Also:
Constant Field Values

PROTO_KEYWORD

public static final java.lang.String PROTO_KEYWORD
See Also:
Constant Field Values

EXTERNPROTO_KEYWORD

public static final java.lang.String EXTERNPROTO_KEYWORD
See Also:
Constant Field Values

META_KEYWORD

public static final java.lang.String META_KEYWORD
See Also:
Constant Field Values

PROFILE_KEYWORD

public static final java.lang.String PROFILE_KEYWORD
See Also:
Constant Field Values

ROUTE_KEYWORD

public static final java.lang.String ROUTE_KEYWORD
See Also:
Constant Field Values

SCRIPT_KEYWORD

public static final java.lang.String SCRIPT_KEYWORD
See Also:
Constant Field Values

userdata

public java.lang.Object userdata
this allows for storage of user data


fieldIScontent

public static java.lang.String fieldIScontent

newISname

public static java.lang.String newISname

newISnum

public static int newISnum

subfields

public java.util.Hashtable subfields
fields of the node


objname

public java.lang.String objname
instance name for DEF/USE

Constructor Detail

Node

public Node()
Method Detail

nodeName

public abstract java.lang.String nodeName()
the node's name


traverse

public abstract void traverse(Traverser t)
must call appropriate method of Traverser for node traversal


traverseNode

public static void traverseNode(Traverser t,
                                Node node)
traverse a node, if it is non-null


atCurrLine

static java.lang.String atCurrLine(StrTokenizer st)
helper for error messages: " at line NN" (current line no.)


addField

void addField(java.lang.String name,
              Field field,
              int fclass)
add an (exposed) field or event


getEvent

public Field getEvent(java.lang.String name,
                      int fclass)
get an event field of appropriate field class (Field.F_EVENTIN/OUT)


deleteRoute

public static boolean deleteRoute(Node fromNode,
                                  java.lang.String fromEvent,
                                  Node toNode,
                                  java.lang.String toEvent)
delete route

Returns:
true on success, otherwise false

addRoute

public static Node addRoute(java.lang.String fromNodeName,
                            Node fromNode,
                            java.lang.String fromEvent,
                            java.lang.String toNodeName,
                            Node toNode,
                            java.lang.String toEvent,
                            ParserOutput pout,
                            StrTokenizer st,
                            boolean mkroute)
add route

Returns:
RouteNode when mkroute flag is set, otherwise any non-null node on success

readNode

public static Node readNode(VRMLparser parser)
read a node instance


createInstanceFromName

static Node createInstanceFromName(VRMLparser parser,
                                   java.lang.String name)
create node instance from its name


readNodeBody

void readNodeBody(VRMLparser parser,
                  java.lang.String name)
read node body (from "{" to "}") of node name


readNodeBody

void readNodeBody(VRMLparser parser,
                  java.lang.String name,
                  char openbrace,
                  char closebrace)
check for openbrace, readFields, read closebrace


readFields

void readFields(VRMLparser parser)
read fields of this node instance (node body)


writeNode

public void writeNode(java.io.PrintStream os,
                      java.util.Hashtable writtenrefs)
write node to output stream


writeSubfields

public void writeSubfields(java.io.PrintStream os,
                           java.util.Hashtable writtenrefs)
write subfields (inside {}) to outputstream


writeSubfield

public void writeSubfield(java.lang.String fname,
                          Field field,
                          java.io.PrintStream os,
                          java.util.Hashtable writtenrefs)
write one subfield


writeX3dNode

public void writeX3dNode(VRMLparser parser,
                         java.io.PrintStream os,
                         java.util.Hashtable writtenrefs,
                         int depth,
                         int proto)

writeX3dNode

public void writeX3dNode(VRMLparser parser,
                         java.io.PrintStream os,
                         java.util.Hashtable writtenrefs,
                         int depth)
write X3d node to output stream


writeX3dNode

public void writeX3dNode(java.io.PrintStream os,
                         java.util.Hashtable writtenrefs,
                         int depth)
write X3d node to output stream


writeX3dSubfields

public void writeX3dSubfields(java.io.PrintStream os,
                              java.util.Hashtable writtenrefs,
                              int depth)
write X3d subfields (inside {}) to outputstream


writeX3dSubfields

public void writeX3dSubfields(VRMLparser parser,
                              java.io.PrintStream os,
                              java.util.Hashtable writtenrefs,
                              int depth)
write X3d subfields (inside {}) to outputstream


writeX3dISfields

public void writeX3dISfields(VRMLparser parser,
                             java.io.PrintStream os,
                             java.util.Hashtable writtenrefs,
                             int depth)

tab

void tab(java.io.PrintStream os,
         int depth)

writeX3dSubfield

public void writeX3dSubfield(java.lang.String fname,
                             Field field,
                             java.io.PrintStream os,
                             java.util.Hashtable writtenrefs)
write one X3d subfield