Class TableTreeContentProvider
- All Implemented Interfaces:
IPageFlowScopeAdapter
,IAddressableTableContentProvider
,IContentProvider
,IFilterableTableContentProvider
,IRefreshable
,IRefreshableContentProvider
,ISelectableTableContentProvider
,ISortableTableContentProvider
,ITableContentProvider
,ITransactionalContentProvider
,IUpdateableContentProvider
,IUpdateableTableContentProvider
,ITreeContentProvider
IAddressableTableContentProvider
to an ITreeContentProvider
.
The table content provider must provide the rows in proper depth-first tree order
(contrast this with other tree providers, such as ListTreeContentProvider
,
which are able to automatically re-order rows into depth-first tree order).
For each of the following properties, either the getter method must be overriden,
or this instance must be supplied with the corresponding --FieldName
property:
- rootIds
- depth
- parentId
- childIds
- hasChildren
- firstChild
- lastChild
IRefreshableContentProvider
,
ISortableTableContentProvider
, ISelectableTableContentProvider
, ITransactionalContentProvider
,
IFilterableTableContentProvider
, or IUpdateableTableContentProvider
functionality, if used.-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected String
protected String
protected String
protected String
protected TreeContentProviderHelper
protected String
protected String
protected String
protected IAddressableTableContentProvider
Fields inherited from class com.webmethods.caf.faces.bean.PageFlowScopeAdapter
fExpireWithPageFlow
-
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor which doesn't do any intialization.Construct new instance and initialize table.TableTreeContentProvider
(IAddressableTableContentProvider table, String rootIdsFieldName, String depthFieldName, String parentIdFieldName, String childIdsFieldName, String hasChildrenFieldName, String firstChildFieldName, String lastChildFieldName) Construct new instance and initialize instance variables. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Commits changes back to the data source.void
Reverts all changes made since the lastITransactionalContentProvider.applyChanges()
call.void
Appends the template row to the table data.void
Deletes currently positioned rowboolean
True if provider can be put into template row state.String
ids of child rows, in order.Returns wrapped current row object.int
getDepth()
Depth of current row.Filter expression.boolean
True if current row has children.boolean[]
ITreeContentProvider.isLastChild()
value of ancestors to the current row, from the root to the current row's parent.boolean
Returnstrue
whenIRefreshable.isAutoRefresh()
is on and the result properties need to be refreshed from the data source by executingIRefreshable.refresh()
method.Collection ofString
ids of open rows.Id of parent row.Object[]
Returns list of properties supported by this content provider.String
ids of root rows, in order.int
Return the number of rows of data objects represented by this DataModel.getRowId()
Returns unique identifier for the current row.int
Return the zero-relative index of the currently selected row.int
Returns number of selected rows.Returns collection ofString
ids of the selected rows.Returns collection ofString
ids of the un-selected rows (all other rows are selected implicitly) May be empty or contain non-existent ids; never null, never contains null.Returns row variable name.getSort()
Returns current sort info.getTable()
Class<?>
Returns java type of the given propertyCollection ofString
ids of un-open rows (all other rows are open implicitly).boolean
True if it's more effecient to use the un-open model (ITreeContentProvider.getUnopenIds()
) rather than the open model (ITreeContentProvider.getOpenIds()
).boolean
Returns true if it's more effecient to use unselected model (ieISelectableTableContentProvider.getRowUnselectedIds()
rather thanISelectableTableContentProvider.getRowSelectedIds()
).Returns value of the given propertyboolean
hasProperty
(Object propertyKey) Checks if the given property is supported by this content providerboolean
Checks if this content provider truly is addressable.boolean
Returnstrue
if the provider is currenlty in auto-refresh modeboolean
True if this provider truely is filterable.boolean
True if current row is first child of parent (not whether or not current row is first row in tree).boolean
True if current row is last child of parent (not whether or not current row is last row in tree).boolean
isOpen()
True if current row is open.boolean
isReadOnly
(Object propertyKey) Returns true if the given property is readonly.boolean
Return a flag indicating whether there is rowData available at the current rowIndex.boolean
Returnstrue
if current row is selected.boolean
Is provider in state where it returns properties for template pseudo-row.boolean
True if ancestors of current row are all open.void
refresh()
(Re)loads data from the data source.void
setAutoRefresh
(boolean autorefresh) Sets auto refresh mode on.void
setCanTemplateRow
(boolean value) True if provider can be put into template row state.void
setChildIdsFieldName
(String childIdsFieldName) void
setCurrentRow
(Object row) Sets new current row objectvoid
setDepthFieldName
(String depthFieldName) void
Filter expression.void
setFirstChildFieldName
(String firstChildFieldName) void
setHasChildrenFieldName
(String hasChildrenFieldName) void
setLastChildFieldName
(String lastChildFieldName) void
setNeedRefresh
(boolean needRefresh) Tells the provider that the input parameters have changed and the output results need to be refreshed the next time any output property is requested viaIContentProvider.getValue(Object)
.void
setOpen
(boolean open) True if current row is open.void
setOpenIds
(Collection<String> ids) Collection ofString
ids of open rows.void
setParentIdFieldName
(String parentIdFieldName) void
setRootIdsFieldName
(String rootIdsFieldName) void
setRowById
(String id) Selects current row by its id.void
setRowIndex
(int rowIndex) Set the zero-relative index of the currently selected row, or -1 to indicate that we are not positioned on a row.void
setRowSelected
(boolean selected) Sets the selection status for the current row.void
Sets new selection using a collection ofString
ids of the rows to select.void
Unselects rows using a collection ofString
ids of the un-selected rows (all other rows are selected implicitly).void
setRowVariable
(String var) Sets row variable name to use for accessing row specific data.void
Sets new sort info, re-sorting the table (if necessary).void
void
Sets provider to state where it returns properties for template pseudo-row.void
setUnopenIds
(Collection<String> ids) Collection ofString
ids of un-open rows (all other rows are open implicitly).void
Sets new value of the given propertyboolean
Returns true if this content provider supports auto refresh feature.Methods inherited from class com.webmethods.caf.faces.bean.PageFlowScopeAdapter
getExpireWithPageFlow, setExpireWithPageFlow
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.webmethods.caf.faces.data.IContentProvider
toString
-
Field Details
-
m_table
-
m_helper
-
m_rootIdsFieldName
-
m_depthFieldName
-
m_parentIdFieldName
-
m_childIdsFieldName
-
m_hasChildrenFieldName
-
m_firstChildFieldName
-
m_lastChildFieldName
-
-
Constructor Details
-
TableTreeContentProvider
public TableTreeContentProvider()Default constructor which doesn't do any intialization. -
TableTreeContentProvider
Construct new instance and initialize table.- Parameters:
table
-
-
TableTreeContentProvider
public TableTreeContentProvider(IAddressableTableContentProvider table, String rootIdsFieldName, String depthFieldName, String parentIdFieldName, String childIdsFieldName, String hasChildrenFieldName, String firstChildFieldName, String lastChildFieldName) Construct new instance and initialize instance variables.- Parameters:
table
-rootIdsFieldName
-depthFieldName
-parentIdFieldName
-childIdsFieldName
-hasChildrenFieldName
-firstChildFieldName
-lastChildFieldName
-
-
-
Method Details
-
getPropertyKeys
Description copied from interface:IContentProvider
Returns list of properties supported by this content provider. Can returnObject[0]
, never null.- Specified by:
getPropertyKeys
in interfaceIContentProvider
- Returns:
- array of property keys which is typically of type
String
orInteger
-
getType
Description copied from interface:IContentProvider
Returns java type of the given property- Specified by:
getType
in interfaceIContentProvider
- Parameters:
propertyKey
- the property key of typeString
orInteger
- Returns:
- property java
Class
- Throws:
PropertyNotFoundException
- if property is not supported
-
getValue
Description copied from interface:IContentProvider
Returns value of the given property- Specified by:
getValue
in interfaceIContentProvider
- Parameters:
propertyKey
- the property key of typeString
orInteger
- Returns:
- value of the property, can be
null
- Throws:
PropertyNotFoundException
- if property is not supportedELException
-
hasProperty
Description copied from interface:IContentProvider
Checks if the given property is supported by this content provider- Specified by:
hasProperty
in interfaceIContentProvider
- Parameters:
propertyKey
- property key of typeString
orInteger
- Returns:
true
if property is supported
-
isReadOnly
Description copied from interface:IUpdateableContentProvider
Returns true if the given property is readonly. If it is readonly,
IUpdateableContentProvider.setValue(Object, Object)
will definitely fail.- Specified by:
isReadOnly
in interfaceIUpdateableContentProvider
- Parameters:
propertyKey
- property key of typeString
orInteger
- Returns:
- true if the property is readonly
- Throws:
PropertyNotFoundException
ELException
-
setValue
public void setValue(Object propertyKey, Object value) throws ELException, PropertyNotFoundException Description copied from interface:IUpdateableContentProvider
Sets new value of the given property
- Specified by:
setValue
in interfaceIUpdateableContentProvider
- Parameters:
propertyKey
- property key of typeString
orInteger
value
- new property value- Throws:
PropertyNotFoundException
- if property is not foundELException
-
applyChanges
Description copied from interface:ITransactionalContentProvider
Commits changes back to the data source.
- Specified by:
applyChanges
in interfaceITransactionalContentProvider
- Throws:
ContentProviderException
- if error happens during commit
-
cancelChanges
Description copied from interface:ITransactionalContentProvider
Reverts all changes made since the last
ITransactionalContentProvider.applyChanges()
call.- Specified by:
cancelChanges
in interfaceITransactionalContentProvider
- Throws:
ContentProviderException
-
isAutoRefresh
public boolean isAutoRefresh()Description copied from interface:IRefreshable
Returnstrue
if the provider is currenlty in auto-refresh mode- Specified by:
isAutoRefresh
in interfaceIRefreshable
- Returns:
- false if auto-refresh mode is off or not supported
-
getNeedRefresh
public boolean getNeedRefresh()Description copied from interface:IRefreshable
Returns
true
whenIRefreshable.isAutoRefresh()
is on and the result properties need to be refreshed from the data source by executingIRefreshable.refresh()
method.Implementations may return an accurate value from this method if they can track the changes to the input parameter properties or they may require the clients to call
IRefreshable.setNeedRefresh(boolean)
explicitely.- Specified by:
getNeedRefresh
in interfaceIRefreshable
- Returns:
true
when the output properties are not up-to-date with the current input parameters, i.e.IRefreshable.refresh()
needs to be executed manually or automatically.
-
setNeedRefresh
public void setNeedRefresh(boolean needRefresh) Description copied from interface:IRefreshable
Tells the provider that the input parameters have changed and the output results need to be refreshed the next time any output property is requested viaIContentProvider.getValue(Object)
.- Specified by:
setNeedRefresh
in interfaceIRefreshable
- Parameters:
needRefresh
-true
if the input parameters have changed
-
refresh
Description copied from interface:IRefreshable
(Re)loads data from the data source. Implementation specific meaning can be executing a SQL query or a web service call. All current data will be lost and updated with the new results if successful.- Specified by:
refresh
in interfaceIRefreshable
- Throws:
ContentProviderException
- if error loading data from the data source
-
setAutoRefresh
Description copied from interface:IRefreshable
Sets auto refresh mode on. When auto refresh mode is on, the provider calls
IRefreshable.getNeedRefresh()
to determine whether the refresh needs to be done before returning any result properties. If it returnstrue
, the provider callsIRefreshable.refresh()
method to updated the result properties.- Specified by:
setAutoRefresh
in interfaceIRefreshable
- Parameters:
autorefresh
- true to turn it on- Throws:
ContentProviderException
- if auto refresh mode is not supported- See Also:
-
supportsAutoRefresh
public boolean supportsAutoRefresh()Description copied from interface:IRefreshable
Returns true if this content provider supports auto refresh feature.- Specified by:
supportsAutoRefresh
in interfaceIRefreshable
- Returns:
- true when auto refresh is supported
- See Also:
-
getRowCount
public int getRowCount()Description copied from interface:ITableContentProvider
Return the number of rows of data objects represented by this DataModel.Return -1, if the number of rows is unknown, or no wrappedData is available.
- Specified by:
getRowCount
in interfaceITableContentProvider
- See Also:
-
getRowIndex
public int getRowIndex()Description copied from interface:ITableContentProvider
Return the zero-relative index of the currently selected row.If we are not currently positioned on a row, or no wrappedData is available, return -1.
- Specified by:
getRowIndex
in interfaceITableContentProvider
- See Also:
-
getRowVariable
Description copied from interface:ITableContentProvider
Returns row variable name.
If specified row variable can be used to access current row data for the provider internal needs, like sorting or addressing.
- Specified by:
getRowVariable
in interfaceITableContentProvider
- Returns:
- row variable name or null if not specified
- See Also:
-
isRowAvailable
public boolean isRowAvailable()Description copied from interface:ITableContentProvider
Return a flag indicating whether there is rowData available at the current rowIndex. If no wrappedData is available, return false.- Specified by:
isRowAvailable
in interfaceITableContentProvider
- See Also:
-
setRowIndex
public void setRowIndex(int rowIndex) Description copied from interface:ITableContentProvider
Set the zero-relative index of the currently selected row, or -1 to indicate that we are not positioned on a row.- Specified by:
setRowIndex
in interfaceITableContentProvider
- See Also:
-
setRowVariable
Description copied from interface:ITableContentProvider
Sets row variable name to use for accessing row specific data. For example, if the provider wrapps an array of a data objects with
id
property and the variable name isitem
, then the provider implementation can accessid
property of each record asitem.id
.This property should set only once at the provider initialization time
- Specified by:
setRowVariable
in interfaceITableContentProvider
- See Also:
-
getCurrentRow
Description copied from interface:ITableContentProvider
Returns wrapped current row object. Can be
null
if not data is available- Specified by:
getCurrentRow
in interfaceITableContentProvider
- Returns:
- current row object
- See Also:
-
isAddressable
public boolean isAddressable()Description copied from interface:IAddressableTableContentProvider
Checks if this content provider truly is addressable.- Specified by:
isAddressable
in interfaceIAddressableTableContentProvider
- Returns:
true
if addressable.- See Also:
-
getRowId
Description copied from interface:IAddressableTableContentProvider
Returns unique identifier for the current row. If no current row is avaiable, returns null.- Specified by:
getRowId
in interfaceIAddressableTableContentProvider
- Returns:
- current row id or null
- See Also:
-
setRowById
Description copied from interface:IAddressableTableContentProvider
Selects current row by its id. If id doesn't identify a row, makes no row current (equivalent tosetRowIndex(-1)
).- Specified by:
setRowById
in interfaceIAddressableTableContentProvider
- Parameters:
id
- row id to find and make current- See Also:
-
getCanTemplateRow
public boolean getCanTemplateRow()Description copied from interface:IUpdateableTableContentProvider
True if provider can be put into template row state.- Specified by:
getCanTemplateRow
in interfaceIUpdateableTableContentProvider
- See Also:
-
setCanTemplateRow
public void setCanTemplateRow(boolean value) Description copied from interface:IUpdateableTableContentProvider
True if provider can be put into template row state. Default: true- Specified by:
setCanTemplateRow
in interfaceIUpdateableTableContentProvider
- See Also:
-
isTemplateRow
public boolean isTemplateRow()Description copied from interface:IUpdateableTableContentProvider
Is provider in state where it returns properties for template pseudo-row. In this state, row index is -1 and row id is null;ITableContentProvider.isRowAvailable()
returns false. Setting the row index or id to any value removes provider from this state.- Specified by:
isTemplateRow
in interfaceIUpdateableTableContentProvider
- See Also:
-
setTemplateRow
public void setTemplateRow()Description copied from interface:IUpdateableTableContentProvider
Sets provider to state where it returns properties for template pseudo-row. In this state, row index is -1 and row id is null;ITableContentProvider.isRowAvailable()
returns false. Setting the row index or id to any value removes provider from this state.- Specified by:
setTemplateRow
in interfaceIUpdateableTableContentProvider
- See Also:
-
setCurrentRow
Description copied from interface:IUpdateableTableContentProvider
Sets new current row object- Specified by:
setCurrentRow
in interfaceIUpdateableTableContentProvider
- Parameters:
row
- new row object to replace object returned byITableContentProvider.getCurrentRow()
- See Also:
-
createRow
Description copied from interface:IUpdateableTableContentProvider
Appends the template row to the table data.
- Specified by:
createRow
in interfaceIUpdateableTableContentProvider
- Throws:
ContentProviderException
- if error happens during creation- See Also:
-
deleteRow
Description copied from interface:IUpdateableTableContentProvider
Deletes currently positioned row
- Specified by:
deleteRow
in interfaceIUpdateableTableContentProvider
- Throws:
ContentProviderException
- if error happens during deletion- See Also:
-
getSort
Description copied from interface:ISortableTableContentProvider
Returns current sort info. Never null.- Specified by:
getSort
in interfaceISortableTableContentProvider
- Returns:
- currenly set sort info
- See Also:
-
setSort
Description copied from interface:ISortableTableContentProvider
Sets new sort info, re-sorting the table (if necessary). This does not change the model's rowIndex property, even though it will probably now point to a different row.- Specified by:
setSort
in interfaceISortableTableContentProvider
- Parameters:
sort
- Sort info, must not be null.- See Also:
-
getRowSelectedCount
public int getRowSelectedCount()Description copied from interface:ISelectableTableContentProvider
Returns number of selected rows.- Specified by:
getRowSelectedCount
in interfaceISelectableTableContentProvider
- Returns:
- number of currently selection rows
- See Also:
-
getRowSelectedIds
Description copied from interface:ISelectableTableContentProvider
Returns collection ofString
ids of the selected rows. May be empty or contain non-existent ids; never null, never contains null.- Specified by:
getRowSelectedIds
in interfaceISelectableTableContentProvider
- Returns:
- collection of ids of selected rows
- See Also:
-
getRowUnselectedIds
Description copied from interface:ISelectableTableContentProvider
Returns collection ofString
ids of the un-selected rows (all other rows are selected implicitly) May be empty or contain non-existent ids; never null, never contains null.- Specified by:
getRowUnselectedIds
in interfaceISelectableTableContentProvider
- Returns:
- collection of ids of the un-selection rows
- See Also:
-
getUseUnselectedModel
public boolean getUseUnselectedModel()Description copied from interface:ISelectableTableContentProvider
Returns true if it's more effecient to use unselected model (ieISelectableTableContentProvider.getRowUnselectedIds()
rather thanISelectableTableContentProvider.getRowSelectedIds()
).- Specified by:
getUseUnselectedModel
in interfaceISelectableTableContentProvider
- Returns:
- true if it's more effecient to use unselected model
- See Also:
-
isRowSelected
public boolean isRowSelected()Description copied from interface:ISelectableTableContentProvider
Returnstrue
if current row is selected.- Specified by:
isRowSelected
in interfaceISelectableTableContentProvider
- Returns:
- true if current row is selection
- See Also:
-
setRowSelected
public void setRowSelected(boolean selected) Description copied from interface:ISelectableTableContentProvider
Sets the selection status for the current row.- Specified by:
setRowSelected
in interfaceISelectableTableContentProvider
- Parameters:
selected
-true
to select current row;false
to unselect.- See Also:
-
setRowSelectedIds
Description copied from interface:ISelectableTableContentProvider
Sets new selection using a collection ofString
ids of the rows to select. May be empty or contain non-existent ids; never null, never contains null.- Specified by:
setRowSelectedIds
in interfaceISelectableTableContentProvider
- Parameters:
ids
- the collection ofString
row ids- See Also:
-
setRowUnselectedIds
Description copied from interface:ISelectableTableContentProvider
Unselects rows using a collection ofString
ids of the un-selected rows (all other rows are selected implicitly). May be empty or contain non-existent ids; never null, never contains null.- Specified by:
setRowUnselectedIds
in interfaceISelectableTableContentProvider
- Parameters:
ids
- collection ofString
row ids- See Also:
-
isFilterable
public boolean isFilterable()Description copied from interface:IFilterableTableContentProvider
True if this provider truely is filterable.- Specified by:
isFilterable
in interfaceIFilterableTableContentProvider
-
getFilter
Description copied from interface:IFilterableTableContentProvider
Filter expression. Only rows matched by this filter should be exposed. Null or empty ("") signals expose the default set of rows.- Specified by:
getFilter
in interfaceIFilterableTableContentProvider
-
setFilter
Description copied from interface:IFilterableTableContentProvider
Filter expression. Only rows matched by this filter should be exposed. Null or empty ("") signals expose the default set of rows.- Specified by:
setFilter
in interfaceIFilterableTableContentProvider
-
getRootIds
Description copied from interface:ITreeContentProvider
String
ids of root rows, in order. Empty iterator (not null) if tree is empty.- Specified by:
getRootIds
in interfaceITreeContentProvider
-
getDepth
public int getDepth()Description copied from interface:ITreeContentProvider
Depth of current row. Zero (0) for root.- Specified by:
getDepth
in interfaceITreeContentProvider
-
getParentId
Description copied from interface:ITreeContentProvider
Id of parent row. Null for root. Parent depth must be exactly one less than current depth.- Specified by:
getParentId
in interfaceITreeContentProvider
-
getChildIds
Description copied from interface:ITreeContentProvider
String
ids of child rows, in order. Empty iterator (not null) if row has no children. Child depth must be exactly one more than current depth.- Specified by:
getChildIds
in interfaceITreeContentProvider
-
getHasChildren
public boolean getHasChildren()Description copied from interface:ITreeContentProvider
True if current row has children.- Specified by:
getHasChildren
in interfaceITreeContentProvider
-
isFirstChild
public boolean isFirstChild()Description copied from interface:ITreeContentProvider
True if current row is first child of parent (not whether or not current row is first row in tree). Also true for first root in tree (child with no parent is a root).- Specified by:
isFirstChild
in interfaceITreeContentProvider
-
isLastChild
public boolean isLastChild()Description copied from interface:ITreeContentProvider
True if current row is last child of parent (not whether or not current row is last row in tree). Also true for last root in tree (child with no parent is a root).- Specified by:
isLastChild
in interfaceITreeContentProvider
-
getLastChildAncestors
public boolean[] getLastChildAncestors()Description copied from interface:ITreeContentProvider
ITreeContentProvider.isLastChild()
value of ancestors to the current row, from the root to the current row's parent. Zero-length array (non-null) for root.- Specified by:
getLastChildAncestors
in interfaceITreeContentProvider
-
isOpen
public boolean isOpen()Description copied from interface:ITreeContentProvider
True if current row is open.- Specified by:
isOpen
in interfaceITreeContentProvider
-
setOpen
public void setOpen(boolean open) Description copied from interface:ITreeContentProvider
True if current row is open.- Specified by:
setOpen
in interfaceITreeContentProvider
-
isVisible
public boolean isVisible()Description copied from interface:ITreeContentProvider
True if ancestors of current row are all open. Root is always visible.- Specified by:
isVisible
in interfaceITreeContentProvider
-
getOpenIds
Description copied from interface:ITreeContentProvider
Collection ofString
ids of open rows. May be empty or contain non-existent ids; never null, never contains null.- Specified by:
getOpenIds
in interfaceITreeContentProvider
-
setOpenIds
Description copied from interface:ITreeContentProvider
Collection ofString
ids of open rows. May be empty or contain non-existent ids; never null, never contains null.- Specified by:
setOpenIds
in interfaceITreeContentProvider
-
getUseUnopenModel
public boolean getUseUnopenModel()Description copied from interface:ITreeContentProvider
True if it's more effecient to use the un-open model (ITreeContentProvider.getUnopenIds()
) rather than the open model (ITreeContentProvider.getOpenIds()
).- Specified by:
getUseUnopenModel
in interfaceITreeContentProvider
-
getUnopenIds
Description copied from interface:ITreeContentProvider
Collection ofString
ids of un-open rows (all other rows are open implicitly). May be empty or contain non-existent ids; never null, never contains null.- Specified by:
getUnopenIds
in interfaceITreeContentProvider
-
setUnopenIds
Description copied from interface:ITreeContentProvider
Collection ofString
ids of un-open rows (all other rows are open implicitly). May be empty or contain non-existent ids; never null, never contains null.- Specified by:
setUnopenIds
in interfaceITreeContentProvider
-
getTable
-
setTable
-
getRootIdsFieldName
-
setRootIdsFieldName
-
getChildIdsFieldName
-
setChildIdsFieldName
-
getDepthFieldName
-
setDepthFieldName
-
getFirstChildFieldName
-
setFirstChildFieldName
-
getHasChildrenFieldName
-
setHasChildrenFieldName
-
getLastChildFieldName
-
setLastChildFieldName
-
getParentIdFieldName
-
setParentIdFieldName
-