|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.commons.dbcp.AbandonedTrace
org.apache.commons.dbcp.DelegatingDatabaseMetaData
public class DelegatingDatabaseMetaData
A base delegating implementation of DatabaseMetaData.
Those methods that create ResultSet objects, are wrapped to
create DelegatingResultSet objects and the remaining methods
simply call the corresponding method on the "delegate"
provided in my constructor.
Extends AbandonedTrace to implement DatabaseMetaData tracking and logging of code which created the DatabaseMetaData. Tracking the DatabaseMetaData ensures that the Connection which created it can close any associated ResultSets on Connection close.
| Field Summary | |
|---|---|
protected DelegatingConnection |
_conn
The connection that created me. |
protected DatabaseMetaData |
_meta
My delegate DatabaseMetaData |
| Constructor Summary | |
|---|---|
DelegatingDatabaseMetaData(DelegatingConnection c,
DatabaseMetaData m)
|
|
| Methods inherited from class org.apache.commons.dbcp.AbandonedTrace |
|---|
addTrace, clearTrace, getConfig, getLastUsed, getTrace, printStackTrace, removeTrace, setLastUsed, setLastUsed, setStackTrace |
| Methods inherited from class java.lang.Object |
|---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected DatabaseMetaData _meta
DatabaseMetaData
protected DelegatingConnection _conn
| Constructor Detail |
|---|
public DelegatingDatabaseMetaData(DelegatingConnection c,
DatabaseMetaData m)
| Method Detail |
|---|
public DatabaseMetaData getDelegate()
public boolean equals(Object obj)
equals in class Objectpublic int hashCode()
hashCode in class Objectpublic DatabaseMetaData getInnermostDelegate()
ResultSet is not a
DelegatingResultSet, returns it,
otherwise recursively invokes this method on
my delegate.
Hence this method will return the first delegate that is not a DelegatingResultSet, or null when no non-DelegatingResultSet delegate can be found by transversing this chain.
This method is useful when you may have nested
DelegatingResultSets, and you want to make
sure to obtain a "genuine" ResultSet.
protected void handleException(SQLException e)
throws SQLException
SQLException
public boolean allProceduresAreCallable()
throws SQLException
allProceduresAreCallable in interface DatabaseMetaDataSQLException
public boolean allTablesAreSelectable()
throws SQLException
allTablesAreSelectable in interface DatabaseMetaDataSQLException
public boolean dataDefinitionCausesTransactionCommit()
throws SQLException
dataDefinitionCausesTransactionCommit in interface DatabaseMetaDataSQLException
public boolean dataDefinitionIgnoredInTransactions()
throws SQLException
dataDefinitionIgnoredInTransactions in interface DatabaseMetaDataSQLException
public boolean deletesAreDetected(int type)
throws SQLException
deletesAreDetected in interface DatabaseMetaDataSQLException
public boolean doesMaxRowSizeIncludeBlobs()
throws SQLException
doesMaxRowSizeIncludeBlobs in interface DatabaseMetaDataSQLException
public ResultSet getAttributes(String catalog,
String schemaPattern,
String typeNamePattern,
String attributeNamePattern)
throws SQLException
getAttributes in interface DatabaseMetaDataSQLException
public ResultSet getBestRowIdentifier(String catalog,
String schema,
String table,
int scope,
boolean nullable)
throws SQLException
getBestRowIdentifier in interface DatabaseMetaDataSQLException
public String getCatalogSeparator()
throws SQLException
getCatalogSeparator in interface DatabaseMetaDataSQLException
public String getCatalogTerm()
throws SQLException
getCatalogTerm in interface DatabaseMetaDataSQLException
public ResultSet getCatalogs()
throws SQLException
getCatalogs in interface DatabaseMetaDataSQLException
public ResultSet getColumnPrivileges(String catalog,
String schema,
String table,
String columnNamePattern)
throws SQLException
getColumnPrivileges in interface DatabaseMetaDataSQLException
public ResultSet getColumns(String catalog,
String schemaPattern,
String tableNamePattern,
String columnNamePattern)
throws SQLException
getColumns in interface DatabaseMetaDataSQLException
public Connection getConnection()
throws SQLException
getConnection in interface DatabaseMetaDataSQLException
public ResultSet getCrossReference(String parentCatalog,
String parentSchema,
String parentTable,
String foreignCatalog,
String foreignSchema,
String foreignTable)
throws SQLException
getCrossReference in interface DatabaseMetaDataSQLException
public int getDatabaseMajorVersion()
throws SQLException
getDatabaseMajorVersion in interface DatabaseMetaDataSQLException
public int getDatabaseMinorVersion()
throws SQLException
getDatabaseMinorVersion in interface DatabaseMetaDataSQLException
public String getDatabaseProductName()
throws SQLException
getDatabaseProductName in interface DatabaseMetaDataSQLException
public String getDatabaseProductVersion()
throws SQLException
getDatabaseProductVersion in interface DatabaseMetaDataSQLException
public int getDefaultTransactionIsolation()
throws SQLException
getDefaultTransactionIsolation in interface DatabaseMetaDataSQLExceptionpublic int getDriverMajorVersion()
getDriverMajorVersion in interface DatabaseMetaDatapublic int getDriverMinorVersion()
getDriverMinorVersion in interface DatabaseMetaData
public String getDriverName()
throws SQLException
getDriverName in interface DatabaseMetaDataSQLException
public String getDriverVersion()
throws SQLException
getDriverVersion in interface DatabaseMetaDataSQLException
public ResultSet getExportedKeys(String catalog,
String schema,
String table)
throws SQLException
getExportedKeys in interface DatabaseMetaDataSQLException
public String getExtraNameCharacters()
throws SQLException
getExtraNameCharacters in interface DatabaseMetaDataSQLException
public String getIdentifierQuoteString()
throws SQLException
getIdentifierQuoteString in interface DatabaseMetaDataSQLException
public ResultSet getImportedKeys(String catalog,
String schema,
String table)
throws SQLException
getImportedKeys in interface DatabaseMetaDataSQLException
public ResultSet getIndexInfo(String catalog,
String schema,
String table,
boolean unique,
boolean approximate)
throws SQLException
getIndexInfo in interface DatabaseMetaDataSQLException
public int getJDBCMajorVersion()
throws SQLException
getJDBCMajorVersion in interface DatabaseMetaDataSQLException
public int getJDBCMinorVersion()
throws SQLException
getJDBCMinorVersion in interface DatabaseMetaDataSQLException
public int getMaxBinaryLiteralLength()
throws SQLException
getMaxBinaryLiteralLength in interface DatabaseMetaDataSQLException
public int getMaxCatalogNameLength()
throws SQLException
getMaxCatalogNameLength in interface DatabaseMetaDataSQLException
public int getMaxCharLiteralLength()
throws SQLException
getMaxCharLiteralLength in interface DatabaseMetaDataSQLException
public int getMaxColumnNameLength()
throws SQLException
getMaxColumnNameLength in interface DatabaseMetaDataSQLException
public int getMaxColumnsInGroupBy()
throws SQLException
getMaxColumnsInGroupBy in interface DatabaseMetaDataSQLException
public int getMaxColumnsInIndex()
throws SQLException
getMaxColumnsInIndex in interface DatabaseMetaDataSQLException
public int getMaxColumnsInOrderBy()
throws SQLException
getMaxColumnsInOrderBy in interface DatabaseMetaDataSQLException
public int getMaxColumnsInSelect()
throws SQLException
getMaxColumnsInSelect in interface DatabaseMetaDataSQLException
public int getMaxColumnsInTable()
throws SQLException
getMaxColumnsInTable in interface DatabaseMetaDataSQLException
public int getMaxConnections()
throws SQLException
getMaxConnections in interface DatabaseMetaDataSQLException
public int getMaxCursorNameLength()
throws SQLException
getMaxCursorNameLength in interface DatabaseMetaDataSQLException
public int getMaxIndexLength()
throws SQLException
getMaxIndexLength in interface DatabaseMetaDataSQLException
public int getMaxProcedureNameLength()
throws SQLException
getMaxProcedureNameLength in interface DatabaseMetaDataSQLException
public int getMaxRowSize()
throws SQLException
getMaxRowSize in interface DatabaseMetaDataSQLException
public int getMaxSchemaNameLength()
throws SQLException
getMaxSchemaNameLength in interface DatabaseMetaDataSQLException
public int getMaxStatementLength()
throws SQLException
getMaxStatementLength in interface DatabaseMetaDataSQLException
public int getMaxStatements()
throws SQLException
getMaxStatements in interface DatabaseMetaDataSQLException
public int getMaxTableNameLength()
throws SQLException
getMaxTableNameLength in interface DatabaseMetaDataSQLException
public int getMaxTablesInSelect()
throws SQLException
getMaxTablesInSelect in interface DatabaseMetaDataSQLException
public int getMaxUserNameLength()
throws SQLException
getMaxUserNameLength in interface DatabaseMetaDataSQLException
public String getNumericFunctions()
throws SQLException
getNumericFunctions in interface DatabaseMetaDataSQLException
public ResultSet getPrimaryKeys(String catalog,
String schema,
String table)
throws SQLException
getPrimaryKeys in interface DatabaseMetaDataSQLException
public ResultSet getProcedureColumns(String catalog,
String schemaPattern,
String procedureNamePattern,
String columnNamePattern)
throws SQLException
getProcedureColumns in interface DatabaseMetaDataSQLException
public String getProcedureTerm()
throws SQLException
getProcedureTerm in interface DatabaseMetaDataSQLException
public ResultSet getProcedures(String catalog,
String schemaPattern,
String procedureNamePattern)
throws SQLException
getProcedures in interface DatabaseMetaDataSQLException
public int getResultSetHoldability()
throws SQLException
getResultSetHoldability in interface DatabaseMetaDataSQLException
public String getSQLKeywords()
throws SQLException
getSQLKeywords in interface DatabaseMetaDataSQLException
public int getSQLStateType()
throws SQLException
getSQLStateType in interface DatabaseMetaDataSQLException
public String getSchemaTerm()
throws SQLException
getSchemaTerm in interface DatabaseMetaDataSQLException
public ResultSet getSchemas()
throws SQLException
getSchemas in interface DatabaseMetaDataSQLException
public String getSearchStringEscape()
throws SQLException
getSearchStringEscape in interface DatabaseMetaDataSQLException
public String getStringFunctions()
throws SQLException
getStringFunctions in interface DatabaseMetaDataSQLException
public ResultSet getSuperTables(String catalog,
String schemaPattern,
String tableNamePattern)
throws SQLException
getSuperTables in interface DatabaseMetaDataSQLException
public ResultSet getSuperTypes(String catalog,
String schemaPattern,
String typeNamePattern)
throws SQLException
getSuperTypes in interface DatabaseMetaDataSQLException
public String getSystemFunctions()
throws SQLException
getSystemFunctions in interface DatabaseMetaDataSQLException
public ResultSet getTablePrivileges(String catalog,
String schemaPattern,
String tableNamePattern)
throws SQLException
getTablePrivileges in interface DatabaseMetaDataSQLException
public ResultSet getTableTypes()
throws SQLException
getTableTypes in interface DatabaseMetaDataSQLException
public ResultSet getTables(String catalog,
String schemaPattern,
String tableNamePattern,
String[] types)
throws SQLException
getTables in interface DatabaseMetaDataSQLException
public String getTimeDateFunctions()
throws SQLException
getTimeDateFunctions in interface DatabaseMetaDataSQLException
public ResultSet getTypeInfo()
throws SQLException
getTypeInfo in interface DatabaseMetaDataSQLException
public ResultSet getUDTs(String catalog,
String schemaPattern,
String typeNamePattern,
int[] types)
throws SQLException
getUDTs in interface DatabaseMetaDataSQLException
public String getURL()
throws SQLException
getURL in interface DatabaseMetaDataSQLException
public String getUserName()
throws SQLException
getUserName in interface DatabaseMetaDataSQLException
public ResultSet getVersionColumns(String catalog,
String schema,
String table)
throws SQLException
getVersionColumns in interface DatabaseMetaDataSQLException
public boolean insertsAreDetected(int type)
throws SQLException
insertsAreDetected in interface DatabaseMetaDataSQLException
public boolean isCatalogAtStart()
throws SQLException
isCatalogAtStart in interface DatabaseMetaDataSQLException
public boolean isReadOnly()
throws SQLException
isReadOnly in interface DatabaseMetaDataSQLException
public boolean locatorsUpdateCopy()
throws SQLException
locatorsUpdateCopy in interface DatabaseMetaDataSQLException
public boolean nullPlusNonNullIsNull()
throws SQLException
nullPlusNonNullIsNull in interface DatabaseMetaDataSQLException
public boolean nullsAreSortedAtEnd()
throws SQLException
nullsAreSortedAtEnd in interface DatabaseMetaDataSQLException
public boolean nullsAreSortedAtStart()
throws SQLException
nullsAreSortedAtStart in interface DatabaseMetaDataSQLException
public boolean nullsAreSortedHigh()
throws SQLException
nullsAreSortedHigh in interface DatabaseMetaDataSQLException
public boolean nullsAreSortedLow()
throws SQLException
nullsAreSortedLow in interface DatabaseMetaDataSQLException
public boolean othersDeletesAreVisible(int type)
throws SQLException
othersDeletesAreVisible in interface DatabaseMetaDataSQLException
public boolean othersInsertsAreVisible(int type)
throws SQLException
othersInsertsAreVisible in interface DatabaseMetaDataSQLException
public boolean othersUpdatesAreVisible(int type)
throws SQLException
othersUpdatesAreVisible in interface DatabaseMetaDataSQLException
public boolean ownDeletesAreVisible(int type)
throws SQLException
ownDeletesAreVisible in interface DatabaseMetaDataSQLException
public boolean ownInsertsAreVisible(int type)
throws SQLException
ownInsertsAreVisible in interface DatabaseMetaDataSQLException
public boolean ownUpdatesAreVisible(int type)
throws SQLException
ownUpdatesAreVisible in interface DatabaseMetaDataSQLException
public boolean storesLowerCaseIdentifiers()
throws SQLException
storesLowerCaseIdentifiers in interface DatabaseMetaDataSQLException
public boolean storesLowerCaseQuotedIdentifiers()
throws SQLException
storesLowerCaseQuotedIdentifiers in interface DatabaseMetaDataSQLException
public boolean storesMixedCaseIdentifiers()
throws SQLException
storesMixedCaseIdentifiers in interface DatabaseMetaDataSQLException
public boolean storesMixedCaseQuotedIdentifiers()
throws SQLException
storesMixedCaseQuotedIdentifiers in interface DatabaseMetaDataSQLException
public boolean storesUpperCaseIdentifiers()
throws SQLException
storesUpperCaseIdentifiers in interface DatabaseMetaDataSQLException
public boolean storesUpperCaseQuotedIdentifiers()
throws SQLException
storesUpperCaseQuotedIdentifiers in interface DatabaseMetaDataSQLException
public boolean supportsANSI92EntryLevelSQL()
throws SQLException
supportsANSI92EntryLevelSQL in interface DatabaseMetaDataSQLException
public boolean supportsANSI92FullSQL()
throws SQLException
supportsANSI92FullSQL in interface DatabaseMetaDataSQLException
public boolean supportsANSI92IntermediateSQL()
throws SQLException
supportsANSI92IntermediateSQL in interface DatabaseMetaDataSQLException
public boolean supportsAlterTableWithAddColumn()
throws SQLException
supportsAlterTableWithAddColumn in interface DatabaseMetaDataSQLException
public boolean supportsAlterTableWithDropColumn()
throws SQLException
supportsAlterTableWithDropColumn in interface DatabaseMetaDataSQLException
public boolean supportsBatchUpdates()
throws SQLException
supportsBatchUpdates in interface DatabaseMetaDataSQLException
public boolean supportsCatalogsInDataManipulation()
throws SQLException
supportsCatalogsInDataManipulation in interface DatabaseMetaDataSQLException
public boolean supportsCatalogsInIndexDefinitions()
throws SQLException
supportsCatalogsInIndexDefinitions in interface DatabaseMetaDataSQLException
public boolean supportsCatalogsInPrivilegeDefinitions()
throws SQLException
supportsCatalogsInPrivilegeDefinitions in interface DatabaseMetaDataSQLException
public boolean supportsCatalogsInProcedureCalls()
throws SQLException
supportsCatalogsInProcedureCalls in interface DatabaseMetaDataSQLException
public boolean supportsCatalogsInTableDefinitions()
throws SQLException
supportsCatalogsInTableDefinitions in interface DatabaseMetaDataSQLException
public boolean supportsColumnAliasing()
throws SQLException
supportsColumnAliasing in interface DatabaseMetaDataSQLException
public boolean supportsConvert()
throws SQLException
supportsConvert in interface DatabaseMetaDataSQLException
public boolean supportsConvert(int fromType,
int toType)
throws SQLException
supportsConvert in interface DatabaseMetaDataSQLException
public boolean supportsCoreSQLGrammar()
throws SQLException
supportsCoreSQLGrammar in interface DatabaseMetaDataSQLException
public boolean supportsCorrelatedSubqueries()
throws SQLException
supportsCorrelatedSubqueries in interface DatabaseMetaDataSQLException
public boolean supportsDataDefinitionAndDataManipulationTransactions()
throws SQLException
supportsDataDefinitionAndDataManipulationTransactions in interface DatabaseMetaDataSQLException
public boolean supportsDataManipulationTransactionsOnly()
throws SQLException
supportsDataManipulationTransactionsOnly in interface DatabaseMetaDataSQLException
public boolean supportsDifferentTableCorrelationNames()
throws SQLException
supportsDifferentTableCorrelationNames in interface DatabaseMetaDataSQLException
public boolean supportsExpressionsInOrderBy()
throws SQLException
supportsExpressionsInOrderBy in interface DatabaseMetaDataSQLException
public boolean supportsExtendedSQLGrammar()
throws SQLException
supportsExtendedSQLGrammar in interface DatabaseMetaDataSQLException
public boolean supportsFullOuterJoins()
throws SQLException
supportsFullOuterJoins in interface DatabaseMetaDataSQLException
public boolean supportsGetGeneratedKeys()
throws SQLException
supportsGetGeneratedKeys in interface DatabaseMetaDataSQLException
public boolean supportsGroupBy()
throws SQLException
supportsGroupBy in interface DatabaseMetaDataSQLException
public boolean supportsGroupByBeyondSelect()
throws SQLException
supportsGroupByBeyondSelect in interface DatabaseMetaDataSQLException
public boolean supportsGroupByUnrelated()
throws SQLException
supportsGroupByUnrelated in interface DatabaseMetaDataSQLException
public boolean supportsIntegrityEnhancementFacility()
throws SQLException
supportsIntegrityEnhancementFacility in interface DatabaseMetaDataSQLException
public boolean supportsLikeEscapeClause()
throws SQLException
supportsLikeEscapeClause in interface DatabaseMetaDataSQLException
public boolean supportsLimitedOuterJoins()
throws SQLException
supportsLimitedOuterJoins in interface DatabaseMetaDataSQLException
public boolean supportsMinimumSQLGrammar()
throws SQLException
supportsMinimumSQLGrammar in interface DatabaseMetaDataSQLException
public boolean supportsMixedCaseIdentifiers()
throws SQLException
supportsMixedCaseIdentifiers in interface DatabaseMetaDataSQLException
public boolean supportsMixedCaseQuotedIdentifiers()
throws SQLException
supportsMixedCaseQuotedIdentifiers in interface DatabaseMetaDataSQLException
public boolean supportsMultipleOpenResults()
throws SQLException
supportsMultipleOpenResults in interface DatabaseMetaDataSQLException
public boolean supportsMultipleResultSets()
throws SQLException
supportsMultipleResultSets in interface DatabaseMetaDataSQLException
public boolean supportsMultipleTransactions()
throws SQLException
supportsMultipleTransactions in interface DatabaseMetaDataSQLException
public boolean supportsNamedParameters()
throws SQLException
supportsNamedParameters in interface DatabaseMetaDataSQLException
public boolean supportsNonNullableColumns()
throws SQLException
supportsNonNullableColumns in interface DatabaseMetaDataSQLException
public boolean supportsOpenCursorsAcrossCommit()
throws SQLException
supportsOpenCursorsAcrossCommit in interface DatabaseMetaDataSQLException
public boolean supportsOpenCursorsAcrossRollback()
throws SQLException
supportsOpenCursorsAcrossRollback in interface DatabaseMetaDataSQLException
public boolean supportsOpenStatementsAcrossCommit()
throws SQLException
supportsOpenStatementsAcrossCommit in interface DatabaseMetaDataSQLException
public boolean supportsOpenStatementsAcrossRollback()
throws SQLException
supportsOpenStatementsAcrossRollback in interface DatabaseMetaDataSQLException
public boolean supportsOrderByUnrelated()
throws SQLException
supportsOrderByUnrelated in interface DatabaseMetaDataSQLException
public boolean supportsOuterJoins()
throws SQLException
supportsOuterJoins in interface DatabaseMetaDataSQLException
public boolean supportsPositionedDelete()
throws SQLException
supportsPositionedDelete in interface DatabaseMetaDataSQLException
public boolean supportsPositionedUpdate()
throws SQLException
supportsPositionedUpdate in interface DatabaseMetaDataSQLException
public boolean supportsResultSetConcurrency(int type,
int concurrency)
throws SQLException
supportsResultSetConcurrency in interface DatabaseMetaDataSQLException
public boolean supportsResultSetHoldability(int holdability)
throws SQLException
supportsResultSetHoldability in interface DatabaseMetaDataSQLException
public boolean supportsResultSetType(int type)
throws SQLException
supportsResultSetType in interface DatabaseMetaDataSQLException
public boolean supportsSavepoints()
throws SQLException
supportsSavepoints in interface DatabaseMetaDataSQLException
public boolean supportsSchemasInDataManipulation()
throws SQLException
supportsSchemasInDataManipulation in interface DatabaseMetaDataSQLException
public boolean supportsSchemasInIndexDefinitions()
throws SQLException
supportsSchemasInIndexDefinitions in interface DatabaseMetaDataSQLException
public boolean supportsSchemasInPrivilegeDefinitions()
throws SQLException
supportsSchemasInPrivilegeDefinitions in interface DatabaseMetaDataSQLException
public boolean supportsSchemasInProcedureCalls()
throws SQLException
supportsSchemasInProcedureCalls in interface DatabaseMetaDataSQLException
public boolean supportsSchemasInTableDefinitions()
throws SQLException
supportsSchemasInTableDefinitions in interface DatabaseMetaDataSQLException
public boolean supportsSelectForUpdate()
throws SQLException
supportsSelectForUpdate in interface DatabaseMetaDataSQLException
public boolean supportsStatementPooling()
throws SQLException
supportsStatementPooling in interface DatabaseMetaDataSQLException
public boolean supportsStoredProcedures()
throws SQLException
supportsStoredProcedures in interface DatabaseMetaDataSQLException
public boolean supportsSubqueriesInComparisons()
throws SQLException
supportsSubqueriesInComparisons in interface DatabaseMetaDataSQLException
public boolean supportsSubqueriesInExists()
throws SQLException
supportsSubqueriesInExists in interface DatabaseMetaDataSQLException
public boolean supportsSubqueriesInIns()
throws SQLException
supportsSubqueriesInIns in interface DatabaseMetaDataSQLException
public boolean supportsSubqueriesInQuantifieds()
throws SQLException
supportsSubqueriesInQuantifieds in interface DatabaseMetaDataSQLException
public boolean supportsTableCorrelationNames()
throws SQLException
supportsTableCorrelationNames in interface DatabaseMetaDataSQLException
public boolean supportsTransactionIsolationLevel(int level)
throws SQLException
supportsTransactionIsolationLevel in interface DatabaseMetaDataSQLException
public boolean supportsTransactions()
throws SQLException
supportsTransactions in interface DatabaseMetaDataSQLException
public boolean supportsUnion()
throws SQLException
supportsUnion in interface DatabaseMetaDataSQLException
public boolean supportsUnionAll()
throws SQLException
supportsUnionAll in interface DatabaseMetaDataSQLException
public boolean updatesAreDetected(int type)
throws SQLException
updatesAreDetected in interface DatabaseMetaDataSQLException
public boolean usesLocalFilePerTable()
throws SQLException
usesLocalFilePerTable in interface DatabaseMetaDataSQLException
public boolean usesLocalFiles()
throws SQLException
usesLocalFiles in interface DatabaseMetaDataSQLException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||