Package org.eigenbase.xom

## Class DefWalker

- java.lang.Object
- - org.eigenbase.xom.DefWalker

    public class DefWalker
    extends java.lang.Object

DefWalker is a class designed to help users of plugin elements and elements with content type ANY. It walks through an array of ElementDef, searching for and returning portions as the correct types.

### Constructor Summary

Constructors
`DefWalker​(NodeDef[] defs)` Construct a DefWalker, attaching it to a NodeDef array and specifying a PrintWriter to display error messages for later consumption.

### Method Summary

All Methods Instance Methods Concrete Methods
`NodeDef` `expect​(java.lang.Class elemType)` Returns the next node in the defs array, but only if it matches the provided class elemType.
`NodeDef[]` `expectArray​(java.lang.Class elemType)` Returns a portion of the remaining nodes in the defs array as an array.
`java.lang.Object` `expectTypeArray​(java.lang.Class elemType)` Returns a portion of the remaining nodes in the defs array as an array.

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

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

### Constructor Detail

#### DefWalker

    public DefWalker​(NodeDef[] defs)

Construct a DefWalker, attaching it to a NodeDef array and specifying a PrintWriter to display error messages for later consumption.

Parameters:
  `defs` - a NodeDef array to walk. All returned objects come from this array.

### Method Detail

#### expect

    public NodeDef expect​(java.lang.Class elemType)
                   throws XOMException

Returns the next node in the defs array, but only if it matches the provided class elemType.

Parameters:
  `elemType` - the Class of NodeDef to expect. This class will always be assignable from the returned object.
Throws:
  `XOMException` - if there are no more nodes in the defs array or if the next node is of an incorrect type.

#### expectArray

    public NodeDef[] expectArray​(java.lang.Class elemType)

Returns a portion of the remaining nodes in the defs array as an array. All nodes in the array will be of the specified class elemType. The nodes are returned as a generic NodeDef[] array and may need to be explicitly converted to an array of the appropriate type by the caller.

Parameters:
  `elemType` - the Class of NodeDef to expect and return. This class will always be assignable from each returned object in the array.

#### expectTypeArray

    public java.lang.Object expectTypeArray​(java.lang.Class elemType)

Returns a portion of the remaining nodes in the defs array as an array. All nodes in the array will be of the specified class elemType. The nodes are in an array of the specified type, which will be returned as an object (which must be cast to the appropriate array type by the caller when needed.

Parameters:
  `elemType` - the Class of NodeDef to expect and return. This class will always be assignable from each returned object in the array.