Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## oracle.ifs.core.tools.script
Class ScriptDriver

    java.lang.Object
      oracle.ifs.common.BaseMain
          oracle.ifs.common.BaseApp
              oracle.ifs.core.tools.script.ScriptDriver

All Implemented Interfaces:
  java.lang.Runnable, Logger

Direct Known Subclasses:
  ScriptHandler.LocalScriptDriver, ScriptRunner

    public class ScriptDriver

extends BaseApp

A ScriptDriver provides framework for testing the business logic of ECM using a canonical output and diff approach.

(Published)

Field Summary

Fields inherited from class oracle.ifs.common.BaseApp
`m_currentuser, m_session`

Fields inherited from class oracle.ifs.common.BaseMain
`m_defaultWriter, m_logWriter, m_parametertable, m_timervalue`

Constructor Summary
`ScriptDriver(java.lang.String[] args)` Constructs a ScriptDriver.

Method Summary
`protected void` | `applyLogLevelOverride(java.lang.String logEntry)` Apply a log level overrides.
`protected void` | `applyLogLevelOverrides(java.lang.String[] logEntries)` Apply a set of log level overrides.
`protected boolean` | `businessObjectExists(java.lang.String tag)` Check whether a BusinessObject has been registered for the specified tag.
`protected LibraryObjectDefinition` | `cloneDefinition(LibrarySession sess, java.lang.String sourceDefTag, java.lang.String cloneDefTag)` Clone a LibraryObjectDefinition by the specified source tag.
`protected boolean` | `definitionExists(java.lang.String tag)` Check whether a definition has been registered for the specified tag.
`protected void` | `deregisterBusinessObject(java.lang.String tag)` De-register a BusinessObject by name.
`protected void` | `deregisterDefinition(java.lang.String tag)` De-register a LibraryObjectDefinition by name.
`protected void` | `deregisterObject(java.lang.String tag)` De-register a LibraryObject by name.
`protected void` | `deregisterSession(java.lang.String tag, LibrarySession sess)` De-register a session.
`protected Transaction` | `deregisterTransaction(java.lang.String trantag)` De-register a transaction.
`protected LibrarySession` | `getCurrentSession()` Get the current session.
`protected ScriptOperations` | `getDefaultScriptOperations(ScriptDriver driver)` Return a newly constructed instance of the ScriptOperations instance to use by default.
`protected java.io.PrintWriter` | `getLogWriter()` Return the log writer in use.
`protected boolean` | `getShowDates()` Return indication as to whether dates should be shown in the output.
`protected java.lang.String[]` | `getStringsFromArrayToken(java.lang.String token)` Get String array from a value of the form "{value1, value2, value3}".
`protected boolean` | `getStripNumbersFromAuditEventProperties()` Return indication as to whether numbers should be replaced in audit event properties in `ShowUtils.showAuditEvents`.
`protected void` | `initializeLogging(ParameterTable params)` Initialize logging context.
`void` | `log(java.lang.String msg)` Log the specified message to the logger's log.
`protected void` | `logToLogger(java.util.logging.Level level, java.lang.String msg)` Log the specified message to the logger's log.
`protected void` | `logToLogger(java.lang.String msg)` Log the specified message to the logger's log.
`protected void` | `logToOutput(java.lang.String msg)` Log the specified message to the configured output log.
`protected java.lang.Object` | `lookupBusinessObject(LibrarySession session, java.lang.String tag)` Lookup a BusinessObject by the specified tag.
`protected LibraryObjectDefinition` | `lookupDefinition(LibrarySession sess, java.lang.String tag)` Lookup a LibraryObjectDefinition by the specified tag.
`protected LibraryObjectDefinition` | `lookupDefinition(LibrarySession sess, java.lang.String tag, java.lang.String className)` Lookup a LibraryObjectDefinition by the specified tag and that is the appropriate instance for the specified classobject name.
`protected LibraryObject` | `lookupObject(LibrarySession sess, java.lang.String tag)` Lookup a LibraryObject by the specified tag.
`protected LibraryObject` | `lookupObject(LibrarySession sess, java.lang.String tag, java.lang.String className)` Lookup a LibraryObject by the specified tag and that is an instance of the specified class.
`protected java.lang.Long` | `lookupObjectId(LibrarySession sess, java.lang.String tag)` Lookup a LibraryObject's ID by the specified tag.
`protected LibrarySession` | `lookupSessionByTag(java.lang.String tag)` Lookup a session by the session tag that was used to register it.
`protected java.lang.String` | `lookupTagBySessionId(java.lang.Long sessid)` Lookup a session tag by the session ID.
`protected boolean` | `objectExists(java.lang.String tag)` Check whether an object has been registered for the specified tag.
`protected java.lang.String[]` | `parseTask(java.lang.String taskSpec)` Parse task line.
`protected void` | `registerBusinessObject(java.lang.String tag, java.lang.Object obj)` Register a BusinessObject by name.
`protected void` | `registerDefinition(java.lang.String tag, LibraryObjectDefinition def)` Register a LibraryObjectDefinition by name.
`protected void` | `registerNewSession(java.lang.String sesstag, LibrarySession sess)` Register a session.
`protected void` | `registerObject(java.lang.String tag, LibraryObject obj)` Register a LibraryObject by name.
`protected void` | `registerTransaction(java.lang.String trantag, Transaction tran)` Register a transaction.
`protected LibrarySession` | `replaceSession(java.lang.String tag, LibrarySession newSess)` Replace a previously registered session with a different session.
`void` | `run()` Run the driver.
`protected boolean` | `sessionExists(java.lang.String tag)` Check whether a session has been registered for the specified tag.
`protected void` | `setCurrentSession(LibrarySession session)` Make the specified session the default.
`void` | `setDefaultScriptOperations(ScriptOperations ops)` Sets the instance to use as the default script operations class.
`void` | `setDefaultScriptOperationsClass(java.lang.String className)` Sets the class name of the instance to use as the default script operations class.
`void` | `setMainSession(LibrarySession session)` Set the Main session, to avoid constructing a new one.
`protected void` | `setMainSessionAsCurrentSession()` Sets the main session as the current session.
`void` | `setMethodList(java.lang.String[] methods)` Set the method list, instead of picking this up from the ParameterTable.
`protected boolean` | `transactionExists(java.lang.String tag)` Check whether a Transaction has been registered for the specified tag.
`protected void` | `verifyBusinessObjectTagNotExists(java.lang.String defTag)` Verify that the specified BusinessObject tag does not already exist.
`protected void` | `verifyDefinitionTagNotExists(java.lang.String defTag)` Verify that the specified definition tag does not already exist.
`protected void` | `verifyDefinitionWriteable(LibrarySession sess, java.lang.String tag)` Verify that a LibraryObjectDefinition identified by the specified tag is writeable.
`protected void` | `verifyObjectTagNotExists(java.lang.String objTag)` Verify that the specified object tag does not already exist.

Methods inherited from class oracle.ifs.common.BaseApp
`connect, Connect, connect, Connect, Connect, Connect, connect, Connect, connect, Connect, Disconnect, getCachePerformanceString, getCleartextCredential, getCleartextCredential, getConnectionPoolPerformanceString, getConnectOptions, getConnectOptions, getConnectOptions, getLocale, showCachePerformance, showConnectionPoolPerformance`

Methods inherited from class oracle.ifs.common.BaseMain
`getElapsedTime, getParameterTable, initTrace, log, logCurrentTimestamp, printStackTrace, setTimer, showElapsedTime`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### ScriptDriver

    public ScriptDriver(java.lang.String[] args)

  Constructs a ScriptDriver.

  Parameters:
    `args` - commandline arguments
  (Published)

Method Detail

### getDefaultScriptOperations

    protected ScriptOperations getDefaultScriptOperations(ScriptDriver driver)

  Description copied from class: `ScriptDriver`
  Return a newly constructed instance of the ScriptOperations instance to use by default.

  Parameters:
    `driver` - ScriptDriver context
  (Published)

### setMainSession

    public void setMainSession(LibrarySession session)

  Description copied from class: `ScriptDriver`
  Set the Main session, to avoid constructing a new one.

  This session will NOT get automatically disconnected as part on `run`.

  Parameters:
    `session` - the main session
  (Published)

### setMethodList

    public void setMethodList(java.lang.String[] methods)

  Description copied from class: `ScriptDriver`
  Set the method list, instead of picking this up from the ParameterTable.

  Parameters:
    `methods` - the method list
  (Published)

### run

    public void run()

  Description copied from class: `ScriptDriver`
  Run the driver.

  This consumes any exception after reporting it in the log.

  (Published)

### parseTask

    protected java.lang.String[] parseTask(java.lang.String taskSpec)

  Description copied from class: `ScriptDriver`
  Parse task line.

  Returns null if the specified line is null, empty, or contains nothing but whitespace.

  Parameters:
    `taskSpec` - A line from the input file
  Returns:
    The set of tokens corresponding to the input line
  (Published)

### getStringsFromArrayToken

    protected java.lang.String[] getStringsFromArrayToken(java.lang.String token)
                                                   throws IfsException

  Description copied from class: `ScriptDriver`
  Get String array from a value of the form "{value1, value2, value3}".

  Parameters:
    `token` - the string token
  Returns:
    the corresponding array
  Throws:
    `IfsException` - if the operation fails
  (Published)

### getCurrentSession

    protected LibrarySession getCurrentSession()
                                        throws IfsException

  Description copied from class: `ScriptDriver`
  Get the current session.

  The current session starts out as a session tagged as "Main", and can be switched to any other connected session. I new session gets connected via the createSession() operation. The current session is the session specified in the last switchSession() or createSession() statement. If the current session is removed, the current session becomes "Main".

  Returns:
    the session
  Throws:
    `IfsException` - if the operation fails
  (Published)

### setCurrentSession

    protected void setCurrentSession(LibrarySession session)
                              throws IfsException

  Description copied from class: `ScriptDriver`
  Make the specified session the default.

  Parameters:
    `session` - the session
  Throws:
    `IfsException` - if the operation fails
  (Published)

### setMainSessionAsCurrentSession

    protected void setMainSessionAsCurrentSession()
                                           throws IfsException

  Description copied from class: `ScriptDriver`
  Sets the main session as the current session.

  Throws:
    `IfsException` - if the operation fails
  (Published)

### registerNewSession

    protected void registerNewSession(java.lang.String sesstag,
                                      LibrarySession sess)
                               throws IfsException

  Description copied from class: `ScriptDriver`
  Register a session.

  This registers a two-way lookup, enabling finding the session by the specified session tag, and the ability to determine the session tag from the LibrarySession.

  Parameters:
    `sesstag` - the session tag
    `sess` - the session
  Throws:
    `IfsException` - if the operation fails
  (Published)

### deregisterSession

    protected void deregisterSession(java.lang.String tag,
                                     LibrarySession sess)
                              throws IfsException

  Description copied from class: `ScriptDriver`
  De-register a session.

  This is called automatically as part of removeSession(). If the specified tag does not identify a currently registered session, the operation is a no-op (no exception is thrown).

  Parameters:
    `tag` - the session tag
    `sess` - the session context
  Throws:
    `IfsException` - if the operation fails
  (Published)

### replaceSession

    protected LibrarySession replaceSession(java.lang.String tag,
                                            LibrarySession newSess)
                                     throws IfsException

  Description copied from class: `ScriptDriver`
  Replace a previously registered session with a different session.

  Disconnects the previous session (if any).

  Parameters:
    `tag` - the session tag
    `newSess` - the new session context
  Returns:
    the old session
  Throws:
    `IfsException` - if the operation fails
  (Published)

### lookupSessionByTag

    protected LibrarySession lookupSessionByTag(java.lang.String tag)

  Description copied from class: `ScriptDriver`
  Lookup a session by the session tag that was used to register it.

  A RuntimeException is thrown if there is no session registered with the specified tag.

  Parameters:
    `tag` - the session tag
  Returns:
    the session
  (Published)

### sessionExists

    protected boolean sessionExists(java.lang.String tag)

  Description copied from class: `ScriptDriver`
  Check whether a session has been registered for the specified tag.

  Parameters:
    `tag` - the session tag
  Returns:
    true if a session has been registered with the specified tag; false otherwise
  (Published)

### lookupTagBySessionId

    protected java.lang.String lookupTagBySessionId(java.lang.Long sessid)

  Description copied from class: `ScriptDriver`
  Lookup a session tag by the session ID.

  A RuntimeException is thrown if there is no session registered with the specified ID.

  Parameters:
    `sessid` - the session ID
  Returns:
    the session
  (Published)

### registerTransaction

    protected void registerTransaction(java.lang.String trantag,
                                       Transaction tran)

  Description copied from class: `ScriptDriver`
  Register a transaction.

  Parameters:
    `trantag` - the Transaction tag
    `tran` - the Transaction
  (Published)

### deregisterTransaction

    protected Transaction deregisterTransaction(java.lang.String trantag)

  Description copied from class: `ScriptDriver`
  De-register a transaction.

  Parameters:
    `trantag` - the Transaction tag
  Returns:
    the Transaction that was removed, or null if no no Transaction was registered with that tag
  (Published)

### transactionExists

    protected boolean transactionExists(java.lang.String tag)

  Description copied from class: `ScriptDriver`
  Check whether a Transaction has been registered for the specified tag.

  Parameters:
    `tag` - the Transaction tag
  Returns:
    true if a Transaction has been registered with the specified tag; false otherwise
  (Published)

### lookupObject

    protected LibraryObject lookupObject(LibrarySession sess,
                                         java.lang.String tag)
                                  throws IfsException

  Description copied from class: `ScriptDriver`
  Lookup a LibraryObject by the specified tag.

  A RuntimeException is thrown if there is no object registered with the specified tag, or if the object previously registered with that tag no longer exists.

  Parameters:
    `sess` - the session
    `tag` - the object tag
  Returns:
    the object
  Throws:
    `IfsException` - if the operation fails
  (Published)

### lookupObjectId

    protected java.lang.Long lookupObjectId(LibrarySession sess,
                                            java.lang.String tag)
                                     throws IfsException

  Description copied from class: `ScriptDriver`
  Lookup a LibraryObject's ID by the specified tag.

  A RuntimeException is thrown if there is no object registered with the specified tag.

  Parameters:
    `sess` - the session
    `tag` - the object tag
  Returns:
    the object ID
  Throws:
    `IfsException` - if the operation fails
  (Published)

### lookupObject

    protected LibraryObject lookupObject(LibrarySession sess,
                                         java.lang.String tag,
                                         java.lang.String className)
                                  throws IfsException

  Description copied from class: `ScriptDriver`
  Lookup a LibraryObject by the specified tag and that is an instance of the specified class.

  A RuntimeException is thrown if there is no object registered with the specified tag, or if the registered object is not an instance of the specified class.

  Parameters:
    `sess` - the session
    `tag` - the object tag
    `className` - the desired class
  Returns:
    the object
  Throws:
    `IfsException` - if the operation fails
  (Published)

### objectExists

    protected boolean objectExists(java.lang.String tag)

  Description copied from class: `ScriptDriver`
  Check whether an object has been registered for the specified tag.

  Parameters:
    `tag` - the object tag
  Returns:
    true if an object has been registered with the specified tag; false otherwise
  (Published)

### verifyObjectTagNotExists

    protected void verifyObjectTagNotExists(java.lang.String objTag)

  Description copied from class: `ScriptDriver`
  Verify that the specified object tag does not already exist. Throws a RuntimeException otherwise

  Parameters:
    `objTag` - the object tag
  (Published)

### registerObject

    protected void registerObject(java.lang.String tag,
                                  LibraryObject obj)
                           throws IfsException

  Description copied from class: `ScriptDriver`
  Register a LibraryObject by name.

  Parameters:
    `tag` - the object tag
    `obj` - the object
  Throws:
    `IfsException` - if the operation fails
  (Published)

### deregisterObject

    protected void deregisterObject(java.lang.String tag)
                             throws IfsException

  Description copied from class: `ScriptDriver`
  De-register a LibraryObject by name.

  Parameters:
    `tag` - the object tag
  Throws:
    `IfsException` - if the operation fails
  (Published)

### lookupDefinition

    protected LibraryObjectDefinition lookupDefinition(LibrarySession sess,
                                                       java.lang.String tag)
                                                throws IfsException

  Description copied from class: `ScriptDriver`
  Lookup a LibraryObjectDefinition by the specified tag.

  A RuntimeException is thrown if there is no definition registered with the specified tag.

  Parameters:
    `sess` - the session
    `tag` - the definition tag
  Returns:
    the definition
  Throws:
    `IfsException` - if the operation fails
  (Published)

### verifyDefinitionWriteable

    protected void verifyDefinitionWriteable(LibrarySession sess,
                                             java.lang.String tag)
                                      throws IfsException

  Description copied from class: `ScriptDriver`
  Verify that a LibraryObjectDefinition identified by the specified tag is writeable.

  A RuntimeException is thrown if there is no definition registered with the specified tag, or if it is not writeable.

  Parameters:
    `sess` - the session
    `tag` - the definition tag
  Throws:
    `IfsException` - if the operation fails
  (Published)

### lookupDefinition

    protected LibraryObjectDefinition lookupDefinition(LibrarySession sess,
                                                       java.lang.String tag,
                                                       java.lang.String className)
                                                throws IfsException

  Description copied from class: `ScriptDriver`
  Lookup a LibraryObjectDefinition by the specified tag and that is the appropriate instance for the specified classobject name.

  A RuntimeException is thrown if there is no definition registered with the specified tag, or if the registered definition is not compatible with the specified class.

  Parameters:
    `sess` - the session
    `tag` - the definition tag
    `className` - the desired class
  Returns:
    the definition
  Throws:
    `IfsException` - if the operation fails
  (Published)

### cloneDefinition

    protected LibraryObjectDefinition cloneDefinition(LibrarySession sess,
                                                      java.lang.String sourceDefTag,
                                                      java.lang.String cloneDefTag)
                                               throws IfsException

  Description copied from class: `ScriptDriver`
  Clone a LibraryObjectDefinition by the specified source tag.

  A RuntimeException is thrown if there is no definition registered with the specified source tag.

  Parameters:
    `sess` - the session
    `sourceDefTag` - the source definition tag
    `cloneDefTag` - the tag for the cloned definition
  Returns:
    the cloned definition
  Throws:
    `IfsException` - if the operation fails
  (Published)

### definitionExists

    protected boolean definitionExists(java.lang.String tag)

  Description copied from class: `ScriptDriver`
  Check whether a definition has been registered for the specified tag.

  Parameters:
    `tag` - the definition tag
  Returns:
    true if a definition has been registered with the specified tag; false otherwise
  (Published)

### verifyDefinitionTagNotExists

    protected void verifyDefinitionTagNotExists(java.lang.String defTag)

  Description copied from class: `ScriptDriver`
  Verify that the specified definition tag does not already exist. Throws a RuntimeException otherwise

  Parameters:
    `defTag` - the definition tag
  (Published)

### registerDefinition

    protected void registerDefinition(java.lang.String tag,
                                      LibraryObjectDefinition def)
                               throws IfsException

  Description copied from class: `ScriptDriver`
  Register a LibraryObjectDefinition by name.

  Parameters:
    `tag` - the definition tag
    `def` - the definition
  Throws:
    `IfsException` - if the operation fails
  (Published)

### deregisterDefinition

    protected void deregisterDefinition(java.lang.String tag)
                                 throws IfsException

  Description copied from class: `ScriptDriver`
  De-register a LibraryObjectDefinition by name.

  Parameters:
    `tag` - the definition tag
  Throws:
    `IfsException` - if the operation fails
  (Published)

### lookupBusinessObject

    protected java.lang.Object lookupBusinessObject(LibrarySession session,
                                                    java.lang.String tag)
                                             throws IfsException

  Description copied from class: `ScriptDriver`
  Lookup a BusinessObject by the specified tag.

  A RuntimeException is thrown if there is no BusinessObject registered with the specified tag.

  Parameters:
    `session` - the LibrarySession
    `tag` - the BusinessObject tag
  Returns:
    the BusinessObject
  Throws:
    `IfsException` - if the operation fails
  (Published)

### businessObjectExists

    protected boolean businessObjectExists(java.lang.String tag)

  Description copied from class: `ScriptDriver`
  Check whether a BusinessObject has been registered for the specified tag.

  Parameters:
    `tag` - the BusinessObject tag
  Returns:
    true if a BusinessObject has been registered with the specified tag; false otherwise
  (Published)

### verifyBusinessObjectTagNotExists

    protected void verifyBusinessObjectTagNotExists(java.lang.String defTag)

  Description copied from class: `ScriptDriver`
  Verify that the specified BusinessObject tag does not already exist. Throws a RuntimeException otherwise

  Parameters:
    `defTag` - the BusinessObject tag
  (Published)

### registerBusinessObject

    protected void registerBusinessObject(java.lang.String tag,
                                          java.lang.Object obj)
                                   throws IfsException

  Description copied from class: `ScriptDriver`
  Register a BusinessObject by name.

  Parameters:
    `tag` - the BusinessObject tag
    `obj` - the BusinessObject
  Throws:
    `IfsException` - if the operation fails
  (Published)

### deregisterBusinessObject

    protected void deregisterBusinessObject(java.lang.String tag)
                                     throws IfsException

  Description copied from class: `ScriptDriver`
  De-register a BusinessObject by name.

  Parameters:
    `tag` - the BusinessObject tag
  Throws:
    `IfsException` - if the operation fails
  (Published)

### initializeLogging

    protected void initializeLogging(ParameterTable params)
                              throws IfsException

  Description copied from class: `ScriptDriver`
  Initialize logging context.

  Parameters:
    `params` - ParameterTable containing the parameters (LogLevel and LogFileName parameters used here).
  Throws:
    `IfsException` - if the operation fails
  (Published)

### applyLogLevelOverrides

    protected void applyLogLevelOverrides(java.lang.String[] logEntries)

  Description copied from class: `ScriptDriver`
  Apply a set of log level overrides.

  Parameters:
    `logEntries` - the log override entries
  (Published)

### applyLogLevelOverride

    protected void applyLogLevelOverride(java.lang.String logEntry)

  Description copied from class: `ScriptDriver`
  Apply a log level overrides.

  Parameters:
    `logEntry` - the log override entry
  (Published)

### getLogWriter

    protected java.io.PrintWriter getLogWriter()

  Description copied from class: `ScriptDriver`
  Return the log writer in use.

  Returns:
    the writer used for logging the output
  (Published)

### getShowDates

    protected boolean getShowDates()

  Description copied from class: `ScriptDriver`
  Return indication as to whether dates should be shown in the output.

  Returns:
    true if date values should be shown in the output; false otherwise
  (Published)

### getStripNumbersFromAuditEventProperties

    protected boolean getStripNumbersFromAuditEventProperties()

  Description copied from class: `ScriptDriver`
  Return indication as to whether numbers should be replaced in audit event properties in `ShowUtils.showAuditEvents`.

  Returns:
    true if numbers should be replaced in the output; false otherwise
  (Published)

### log

    public void log(java.lang.String msg)

  Description copied from class: `ScriptDriver`
  Log the specified message to the logger's log.

  Specified by:
    `log` in interface `Logger`
  Overrides:
    `log` in class `BaseMain`
  Parameters:
    `msg` - The log message
  (Published)

### logToLogger

    protected void logToLogger(java.lang.String msg)

  Description copied from class: `ScriptDriver`
  Log the specified message to the logger's log.

  Parameters:
    `msg` - The log message
  (Published)

### logToLogger

    protected void logToLogger(java.util.logging.Level level,
                               java.lang.String msg)

  Description copied from class: `ScriptDriver`
  Log the specified message to the logger's log.

  Parameters:
    `level` - The log level
    `msg` - The log message
  (Published)

### logToOutput

    protected void logToOutput(java.lang.String msg)

  Description copied from class: `ScriptDriver`
  Log the specified message to the configured output log.

  Parameters:
    `msg` - The log message
  (Published)

### setDefaultScriptOperationsClass

    public void setDefaultScriptOperationsClass(java.lang.String className)

  Description copied from class: `ScriptDriver`
  Sets the class name of the instance to use as the default script operations class.

  Parameters:
    `className` - the name of the default ops class to use
  (Published)

### setDefaultScriptOperations

    public void setDefaultScriptOperations(ScriptOperations ops)

  Description copied from class: `ScriptDriver`
  Sets the instance to use as the default script operations class.

  Parameters:
    `ops` - the default ops class to use
  (Published)

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD