com.sun.j3d.utils.scenegraph.io

## Class SceneGraphFileReader

- java.lang.Object
- - com.sun.j3d.utils.scenegraph.io.SceneGraphFileReader

-     public class SceneGraphFileReader
      extends java.lang.Object

  Read Java3D BranchGraphs and/or Universe from a file. Individual branchgraphs or an entire Universe can be read and references (shared nodes and components) between the graphs are handled correctly.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `SceneGraphFileReader(java.io.File file)` Creates new SceneGraphFileReader.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()` Close the file and cleanup internal data structures
    `void` | `dereferenceBranchGraph(BranchGroup graph)` Remove the IO system's reference to this branchgraph and all its nodes.
    `int` | `getBranchGraphCount()` Return the number of BranchGraphs in the file
    `int` | `getBranchGraphPosition(BranchGroup graph)` Given a BranchGraph that has been loaded return the index of the graph in the file.
    `java.lang.ClassLoader` | `getClassLoader()` Get the ClassLoader used to load the scene graph objects and deserialize user data
    `SceneGraphObject` | `getNamedObject(java.lang.String name)` Return the named object.
    `java.lang.String[]` | `getNames()` Return the names of all the named objects
    `BranchGroup[]` | `readAllBranchGraphs()` Read and return all the branchgraphs in the file
    `BranchGroup[]` | `readBranchGraph(int index)` Read the BranchGraph at index in the file.
    `java.lang.Object` | `readBranchGraphUserData(int index)` Read the userdata for the branchgraph at 'index' in the file
    `java.lang.String` | `readDescription()` Get the Description of this file's contents
    `ConfiguredUniverse` | `readUniverse(boolean attachBranchGraphs)` Create and return a ConfiguredUniverse with the PlatformGeometry, ViewerAvatar, and Locales saved in the file.
    `ConfiguredUniverse` | `readUniverse(boolean attachBranchGraphs, Canvas3D canvas)` Create and return a ConfiguredUniverse with the PlatformGeometry, ViewerAvatar, and Locales saved in the file.
    `java.lang.Object` | `readUserData()` Get the UserData in the File header
    `void` | `setClassLoader(java.lang.ClassLoader classLoader)` Set the ClassLoader used to load the scene graph objects and deserialize user data

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### SceneGraphFileReader

          public SceneGraphFileReader(java.io.File file)
                               throws java.io.IOException

      Creates new SceneGraphFileReader.
      Throws:
        `java.io.IOException`

  - ### Method Detail

    - #### readUniverse

          public ConfiguredUniverse readUniverse(boolean attachBranchGraphs)
                                          throws java.io.IOException

      Create and return a ConfiguredUniverse with the PlatformGeometry, ViewerAvatar, and Locales saved in the file. The MultiTransformGroup between the ViewingPlatform and the View is also restored. Universe configuration information is retrieved via `ConfiguredUniverse.getConfigURL()`.

      If the file does not contain universe information, null is returned.

      Parameters:
        `attachBranchGraphs` - load and attach all the branchgraphs to the universe.
      Throws:
        `java.io.IOException`
      See Also:
        `ConfiguredUniverse.getConfigURL()`

    - #### setClassLoader

          public void setClassLoader(java.lang.ClassLoader classLoader)

      Set the ClassLoader used to load the scene graph objects and deserialize user data

    - #### getClassLoader

          public java.lang.ClassLoader getClassLoader()

      Get the ClassLoader used to load the scene graph objects and deserialize user data

    - #### readUniverse

          public ConfiguredUniverse readUniverse(boolean attachBranchGraphs,
                                        Canvas3D canvas)
                                          throws java.io.IOException

      Create and return a ConfiguredUniverse with the PlatformGeometry, ViewerAvatar, and Locales saved in the file. The MultiTransformGroup between the ViewingPlatform and the View is also restored.

      If the file does not contain universe information, null is returned.

      Parameters:
        `attachBranchGraphs` - load and attach all the branchgraphs to the universe.
        `canvas` - The canvas to be associated with the Universe.
      Throws:
        `java.io.IOException`

    - #### readUserData

          public java.lang.Object readUserData()
                                        throws java.io.IOException

      Get the UserData in the File header
      Throws:
        `java.io.IOException`

    - #### readDescription

          public java.lang.String readDescription()
                                           throws java.io.IOException

      Get the Description of this file's contents
      Throws:
        `java.io.IOException`

    - #### getBranchGraphCount

          public int getBranchGraphCount()

      Return the number of BranchGraphs in the file

    - #### readBranchGraph

          public BranchGroup[] readBranchGraph(int index)
                                        throws java.io.IOException

      Read the BranchGraph at index in the file. If the graph contains references to nodes in other BranchGraphs that have not already been loaded, they will also be loaded and returned.

      The requested graph will always be the first element in the array.

      The file index of all the Graphs can be discovered using `getBranchGraphPosition`.

      Parameters:
        `index` - The index of the Graph in the file. First graph is at index 0
      Throws:
        `java.io.IOException`
      See Also:
        `getBranchGraphPosition( BranchGroup graph )`

    - #### readAllBranchGraphs

          public BranchGroup[] readAllBranchGraphs()
                                            throws java.io.IOException

      Read and return all the branchgraphs in the file
      Throws:
        `java.io.IOException`

    - #### dereferenceBranchGraph

          public void dereferenceBranchGraph(BranchGroup graph)

      Remove the IO system's reference to this branchgraph and all its nodes.

      References to all loaded graphs are maintained by the IO system in order to facilitate node and component sharing between the graphs.

      This call removes the references to graph `index`

      NOT CURRENTLY IMPLEMENTED

    - #### getBranchGraphPosition

          public int getBranchGraphPosition(BranchGroup graph)

      Given a BranchGraph that has been loaded return the index of the graph in the file. The the Branchgroup isn't found, -1 is returned.

    - #### readBranchGraphUserData

          public java.lang.Object readBranchGraphUserData(int index)
                                                   throws java.io.IOException

      Read the userdata for the branchgraph at 'index' in the file
      Parameters:
        `index` - the index of the graph in the file
      Throws:
        `java.io.IOException`

    - #### getNames

          public java.lang.String[] getNames()

      Return the names of all the named objects

    - #### getNamedObject

          public SceneGraphObject getNamedObject(java.lang.String name)
                                          throws NamedObjectException,
                                                 ObjectNotLoadedException

      Return the named object.
      Parameters:
        `name` - The name of the object
      Throws:
        `NamedObjectException` - is thrown if the name is not known to the system
        `ObjectNotLoadedException` - is thrown if the named object has not been loaded yet

    - #### close

          public void close()
                     throws java.io.IOException

      Close the file and cleanup internal data structures
      Throws:
        `java.io.IOException`

Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. Use is subject to license terms.