|
Oracle™ Business Intelligence Beans Java API Reference | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
Methods and fields that are necessary for a view to manipulate data in the data provider.
| Field Summary | |
static int |
COLUMN_EDGEColumn edge. |
static int |
DATA_ELEMENT_EDGEData element edge. |
static int |
DRILL_REPLACEA flag indicating that a "replace-style" drill should be performed |
static int |
DRILLSTATE_DRILLABLEThe hierarchy for the member can be drilled, that is, expanded to provide more detail. |
static int |
DRILLSTATE_IS_DRILLEDThe hierarchy for the member cannot be drilled, that is, expanded further. |
static int |
DRILLSTATE_NOT_DRILLABLENot able to drill. |
static int |
GROUPSORT_ENDThe cell marks the end of a group sort in a table. |
static int |
GROUPSORT_MIDDLEThe cell is located in the middle of a group sort in a table. |
static int |
GROUPSORT_NONEThe cell is not involved in a group sort in a table. |
static int |
GROUPSORT_STARTThe cell marks the start of a group sort in a table. |
static int |
max_edgeMaximum edge that views will use when calling DataAccess and DataDirector. |
static int |
NA_SUPPRESSIONSuppress NA values. |
static int |
NA_ZERO_SUPPRESSIONSuppress zeros and NA values. |
static int |
NO_SUPPRESSIONDo not suppress any values. |
static int |
PAGE_EDGEPage edge. |
static int |
PIVOT_EDGESSwaps the specified edges. |
static int |
PIVOT_MOVE_AFTERMove the "from" layer after the "to" layer on the same or another edge. |
static int |
PIVOT_MOVE_BEFOREMove the "from" layer before the "to" layer on the same or another edge. |
static int |
PIVOT_MOVE_TOMove the "from" layer to the "to" layer on another edge. |
static int |
PIVOT_SWAPSwaps a layer from one location on an edge to another location on the same or another edge. |
static int |
ROW_EDGERow edge. |
static int |
ZERO_SUPPRESSIONSuppress zeros. |
| Method Summary | |
void |
addDataDirectorListener(DataDirectorListener l)Registers a listener to the data source for changes. |
boolean |
cancel()Cancels the current long-running operation, if possible. |
boolean |
changeEdgeCurrentHPos(int edge, int[] hPos, int maxLayerSpecified)Changes the slice of data, on the specified edge, that is designated as the current slice by using hierarchical addressing. |
boolean |
changeEdgeCurrentSlice(int edge, int slice)Changes the slice, on the specified edge, that is designated as the current slice of data. |
boolean |
deleteMemberCalc(int edge, int layer, int slice)Deletes a calculation from the display based on a member that is located at the specified edge, layer, and slice. |
boolean |
deleteValueCalc(int row, int column)Deletes a calculation at the specified row and column of the body of a data for a view. |
boolean |
drill(int edge, int layer, int[] slice, int flags)Drills in data based on multiple selected members. |
boolean |
drill(int edge, int layer, int slice, int flags)Drills in the data for a single member. |
boolean |
drillOK(int edge, int layer, int[] slice, int flags)Indicates whether the specified drill operation from multiple selected members would be a valid drill. |
boolean |
drillOK(int edge, int layer, int slice, int flags)Indicates whether a drill operation from a single selected member would be legal. |
DataMap |
getDataMap()Retrieves the list of types of data that can be retrieved or set for each location in the data cursor. |
MetadataMap |
getMetadataMap(int edge, int layer)Retrieves the list of all the types of metadata that callers have requested to be included in the cursors for the specified logical layer. |
DataMap |
getSupportedDataMap()Retrieves a Datamap object that contains all data map types that are available for the definition of a data map. |
LayerMetadataMap |
getSupportedLayerMetadataMap()Retrieves a LayerMetadataMap object that contains all the types of layer metadata that are available for the definition of a layer metadata map. |
MetadataMap |
getSupportedMetadataMap()Retrieves a MetadataMap object that contains all the types of metadata that are available for the definition of a metadata map. |
boolean |
insertMemberCalc(int edge, int layer, int slice, int flags, java.lang.Object calc)Inserts a calculation into a display based on the member at the specified edge, layer, and slice. |
boolean |
insertValueCalc(int row, int column, int flags, java.lang.Object calc)Inserts a calculation at a specified row and column in the body of a view's data. |
boolean |
isCancelable()Indicates whether this DataDirector implementor allows views to cancel an operation that takes a long time. |
boolean |
isOutline()Indicates whether data is provided in outline form or inline form. |
boolean |
pivot(int fromEdge, int toEdge, int fromLayer, int toLayer, int flags)Pivots or swaps data. |
boolean |
pivotOK(int fromEdge, int toEdge, int fromLayer, int toLayer, int flags)Indicates whether the specified pivot operation would be valid for the current data layout. |
boolean |
refresh()Refreshes data and fires a DataChangedEvent to all registered listeners. |
void |
removeDataDirectorListener(DataDirectorListener l)Removes a listener from the data source. |
boolean |
reorder(int edge, int fromLayer, int toLayer, int flags)Reorders the layers (that is, columns) of a Table object. |
boolean |
revalidate()Rebuilds (that is, reruns) a query, refreshes the data cache, and fires a DataChangedEvent. |
void |
setDataMap(DataMap map, int sizeRow, int sizeColumn)Specifies the types of data to provide in a data cursor. |
void |
setManualUpdate()Batches DataDirector operations. |
void |
setMetadataMap(int edge, int layer, MetadataMap map, int size)Specifies the types of metadata to provide in the cursors for the specified logical layer. |
void |
setOutline(boolean outline)Specifies whether data is provided to a view in outline form. |
void |
update()Processes batched DataDirector operations. |
| Field Detail |
public static final int COLUMN_EDGE
public static final int ROW_EDGE
public static final int PAGE_EDGE
public static final int DATA_ELEMENT_EDGE
public static final int PIVOT_EDGES
public static final int PIVOT_SWAP
public static final int PIVOT_MOVE_BEFORE
public static final int PIVOT_MOVE_AFTER
public static final int PIVOT_MOVE_TO
public static final int NO_SUPPRESSION
public static final int ZERO_SUPPRESSION
public static final int NA_SUPPRESSION
public static final int NA_ZERO_SUPPRESSION
public static final int DRILLSTATE_NOT_DRILLABLE
DataAccess.getMemberMetadata method is called with the parameter MetadataMap.METADATA_DRILLSTATE, which requests drill state information.DataAccess.getMemberMetadata(int, int, int, java.lang.String), MetadataMap.METADATA_DRILLSTATEpublic static final int DRILLSTATE_DRILLABLE
DataAccess.getMemberMetadata method is called with the parameter MetadataMap.METADATA_DRILLSTATE, which requests drill state information.DataAccess.getMemberMetadata(int, int, int, java.lang.String), MetadataMap.METADATA_DRILLSTATEpublic static final int DRILLSTATE_IS_DRILLED
DataAccess.getMemberMetadata method is called with the parameter MetadataMap.METADATA_DRILLSTATE, which requests drill state information.DataAccess.getMemberMetadata(int, int, int, java.lang.String), MetadataMap.METADATA_DRILLSTATEpublic static final int GROUPSORT_NONE
DataAccess.getValue method is called with a type parameter equal to DataMap.DATA_GROUPSORT, which requests group sort information.DataAccess.getValue(int, int, java.lang.String), DataMap.DATA_GROUPSORTpublic static final int GROUPSORT_START
DataAccess.getValue method is called with a type parameter equal to DataMap.DATA_GROUPSORT, which requests group sort information.DataAccess.getValue(int, int, java.lang.String), DataMap.DATA_GROUPSORTpublic static final int GROUPSORT_MIDDLE
DataAccess.getValue method is called with a type parameter equal to DataMap.DATA_GROUPSORT, which requests group sort information.DataAccess.getValue(int, int, java.lang.String), DataMap.DATA_GROUPSORTpublic static final int GROUPSORT_END
DataAccess.getValue method is called with a type parameter equal to DataMap.DATA_GROUPSORT, which requests group sort information.DataAccess.getValue(int, int, java.lang.String), DataMap.DATA_GROUPSORTpublic static final int max_edge
DataAccess and DataDirector. This constant is used by layout panels.
Typically, the maximum edge is PAGE_EDGE. Implementors can use edges with a value greater than this constant to "hide" qualifying logical layers from display by the views and, yet, keep these layers as part of their query for query manipulation.
public static final int DRILL_REPLACE
drill(int, int, int, int), drillOK(int, int, int, int)| Method Detail |
public boolean pivot(int fromEdge,
int toEdge,
int fromLayer,
int toLayer,
int flags)
throws EdgeOutOfRangeException,
LayerOutOfRangeException,
DataDirectorException
fromEdge - A constant that indicates the edge from which a layer should be pivoted. Valid constants end with _EDGE in this interface.toEdge - A constant that indicates the edge to which a layer should be pivoted. Valid constants end with _EDGE in this interface.fromLayer - The zero-based index of the physical layer on the fromEdge that should be pivoted or swapped. The outermost layer on the edge is 0. Note that a Table object will report columns as its layers.toLayer - The zero-based index of the physical layer on the toEdge that should be pivoted or swapped. The outermost layer on the edge is 0. Note that a Table object will report columns as its layers.flags - A constant that indicates the type of pivot to perform. The constants begin with PIVOT_ in this interface.true if the pivot is successful, false if not.EdgeOutOfRangeException - If either edge is not valid.LayerOutOfRangeException - If either layer is not valid.DataDirectorException - If an error occurs during the operation.COLUMN_EDGE, DATA_ELEMENT_EDGE, PAGE_EDGE, ROW_EDGE, PIVOT_EDGES, PIVOT_MOVE_AFTER, PIVOT_MOVE_BEFORE, PIVOT_MOVE_TO, PIVOT_SWAP
public boolean pivotOK(int fromEdge,
int toEdge,
int fromLayer,
int toLayer,
int flags)
throws EdgeOutOfRangeException,
LayerOutOfRangeException,
DataDirectorException
pivot method and does not perform the actual pivot. The data provider determines its own rules for valid pivot operations.fromEdge - A constant that indicates the edge from which a layer should be pivoted. Valid constants end with _EDGE in this interface.toEdge - A constant that indicates the edge to which a layer should be pivoted. Valid constants end with _EDGE in this interface.fromLayer - The zero-based index of the physical layer on the fromEdge that should be pivoted or swapped. The outermost layer on the edge is 0. Note that a Table object will report columns as its layers.toLayer - The zero-based index of the physical layer on the toEdge that should be pivoted or swapped. The outermost layer on the edge is 0. Note that a Table object will report columns as its layers.flags - A constant that indicates the type of pivot to perform. The constants begin with PIVOT_ in this interface.true if the pivot is legal according to the data provider's rules, false if the pivot is not legal according to the data provider's rules.EdgeOutOfRangeException - If either edge is too large.LayerOutOfRangeException - If either layer is negative or too large.DataDirectorException - If a data provider error occurs.COLUMN_EDGE, DATA_ELEMENT_EDGE, PAGE_EDGE, ROW_EDGE, PIVOT_EDGES, PIVOT_MOVE_AFTER, PIVOT_MOVE_BEFORE, PIVOT_MOVE_TO, PIVOT_SWAP
public boolean drill(int edge,
int layer,
int slice,
int flags)
throws EdgeOutOfRangeException,
LayerOutOfRangeException,
SliceOutOfRangeException,
DataDirectorException
edge - A constant that indicates the edge to drill. Valid constants end with _EDGE in this interface.layer - The zero-based index of the physical layer of the member to be drilled. The outermost layer on the edge is 0.slice - The zero-based index (along the specified edge) of the slice that represents the member that is to be drilled. Each member in the innermost layer has a unique slice. In outer layers, any slice that the member spans can be used.flags - Not yet defined.true if the drill operation is successful; false if the drill operation is not successful.EdgeOutOfRangeException - If edge is too large.LayerOutOfRangeException - If layer is negative or too large.SliceOutOfRangeException - If slice is negative or too large.DataDirectorException - If a data provider error occurs.COLUMN_EDGE, PAGE_EDGE, ROW_EDGE
public boolean drillOK(int edge,
int layer,
int slice,
int flags)
throws EdgeOutOfRangeException,
LayerOutOfRangeException,
SliceOutOfRangeException,
DataDirectorException
drill method and does not perform the actual drill.edge - A constant that indicates the edge to drill. Valid constants end with _EDGE in this interface.layer - The zero-based index of the physical layer of the member that is to be drilled. The outermost layer on the edge is 0.slice - The zero-based index (along the specified edge) of the slice that represents the members that are to be drilled. Each member in the innermost layer has a unique slice. In outer layers, any slice that the member spans can be used.flags - Not yet defined.true if the specified drilling operation is legal, false if the specified operation is not legal.EdgeOutOfRangeException - If edge is too large.LayerOutOfRangeException - If layer is negative or too large.SliceOutOfRangeException - If slice is negative or too large.DataDirectorException - If an error occurs during the drilling operation.COLUMN_EDGE, PAGE_EDGE, ROW_EDGE
public boolean drill(int edge,
int layer,
int[] slice,
int flags)
throws EdgeOutOfRangeException,
LayerOutOfRangeException,
SliceOutOfRangeException,
DataDirectorException
edge - A constant that indicates the edge to drill. Valid constants end with _EDGE in this interface.layer - The zero-based index of the physical layer of the members to be drilled. The outermost layer on the edge is 0.slice - A list of the zero-based indexes (along the specified edge) of the slices that represent the members that are to be drilled. Each member in the innermost layer has a unique slice. In outer layers, any slice that the member spans can be used.flags - Not yet defined.true if the drill operation is successful, false if the drill operation is not successful.EdgeOutOfRangeException - If edge is too large.LayerOutOfRangeException - If layer is negative or too large.SliceOutOfRangeException - If slice is negative or too large.DataDirectorException - If a data provider error occurs.COLUMN_EDGE, PAGE_EDGE, ROW_EDGE
public boolean drillOK(int edge,
int layer,
int[] slice,
int flags)
throws EdgeOutOfRangeException,
LayerOutOfRangeException,
SliceOutOfRangeException,
DataDirectorException
drill method and does not perform the actual drill.edge - A constant that indicates the edge to drill. Valid constants end with _EDGE in this interface.layer - The zero-based index of the physical layer of the member to be drilled. The outermost layer on the edge is 0.slice - A list of the zero-based indexes (along the specified edge) of the slices that represent the members that are to be drilled. Each member in the innermost layer has a unique slice. In outer layers, any slice that the member spans can be used.flags - Not yet defined.true if this drilling operation is legal, false if not.EdgeOutOfRangeException - If edge is too large.LayerOutOfRangeException - If layer is negative or too large.SliceOutOfRangeException - If slice is negative or too large.DataDirectorException - If a data provider error occurs.COLUMN_EDGE, PAGE_EDGE, ROW_EDGE
public boolean changeEdgeCurrentSlice(int edge,
int slice)
throws EdgeOutOfRangeException,
SliceOutOfRangeException,
DataDirectorException
slice parameter to indicate the new current slice.edge - A constant that indicates the edge on which to change the current slice. Valid constants end with _EDGE in this interface.slice - The zero-based index (along the specified edge) of the slice that is to become the current slice.true if the change is successful, false if the change is not successful.EdgeOutOfRangeException - If edge is too large.SliceOutOfRangeException - If slice is too large.DataDirectorException - If a data provider error occurs.COLUMN_EDGE, PAGE_EDGE, ROW_EDGE
public boolean changeEdgeCurrentHPos(int edge,
int[] hPos,
int maxLayerSpecified)
throws EdgeOutOfRangeException,
LayerOutOfRangeException,
SliceOutOfRangeException,
DataDirectorException
edge - A constant that indicates the edge on which to make the change. Valid constants end with _EDGE in this interface.hPos - An array of relative indexes starting with the outermost layer and working in at least to maxLayerSpecified. This array indicates the set of new values to give to the various layers that specify the new current slice.maxLayerSpecified - The maximum index into hPos (layer) that this method should use in making the change to the current slice.true if the current slice change is successful, false if the current slice change is not successful.EdgeOutOfRangeException - If edge is too large.LayerOutOfRangeException - If the number of layers in hPos is too large.SliceOutOfRangeException - If the indexes in the hPos are out of range.DataDirectorException - If an error occurs during the operation.COLUMN_EDGE, PAGE_EDGE, ROW_EDGE
public boolean reorder(int edge,
int fromLayer,
int toLayer,
int flags)
throws EdgeOutOfRangeException,
LayerOutOfRangeException,
DataDirectorException
Table object. The flags parameter uses the pivot constants from this interface to specify the operation that is to be performed. These constants are as follows:
PIVOT_SWAP -- Swaps fromLayer with toLayer.PIVOT_MOVE_BEFORE -- Moves fromLayer before toLayer.PIVOT_MOVE_AFTER -- Moves fromLayer after toLayer.edge - A constant that identifies the edge on which the reorder takes place. Valid constants end with _EDGE in this interface.fromLayer - The zero-based index of the physical layer (column) that the Table object wants to move. The outermost layer on the edge is 0.toLayer - The zero-based index of the physical layer (column) with which or to which the Table object is moving the fromLayer. The outermost layer on the edge is 0.flags - A constant that indicates the operation to be performed. The constants begin with PIVOT_ in this interface.true if reordering is successful, false if reordering is not successful.EdgeOutOfRangeException - If edge is too large.LayerOutOfRangeException - If layer is negative or too large.DataDirectorException - If an error occurs during the operation.COLUMN_EDGE, PAGE_EDGE, PIVOT_MOVE_AFTER, PIVOT_MOVE_BEFORE, PIVOT_SWAP, ROW_EDGE
public boolean insertValueCalc(int row,
int column,
int flags,
java.lang.Object calc)
throws RowOutOfRangeException,
ColumnOutOfRangeException,
DataDirectorException
row - The row at which to insert the calculation.column - The column at which to insert the calculation.flags - Not yet defined.calc - Not yet defined.true if the calculation is inserted, false if the calculation is not inserted.RowOutOfRangeException - If row is negative or too large.ColumnOutOfRangeException - If column is negative or too large.DataDirectorException - If an error occurs during the operation.
public boolean insertMemberCalc(int edge,
int layer,
int slice,
int flags,
java.lang.Object calc)
throws EdgeOutOfRangeException,
LayerOutOfRangeException,
SliceOutOfRangeException,
DataDirectorException
edge - A constant that specifies the edge that contains the member at which to insert the calculation. Valid constants end with _EDGE in this interface.layer - The zero-based index of the physical layer that contains the member at which to insert the calculation. The outermost layer on the edge is 0.slice - The zero-based index (along the specified edge) of the slice at which to insert the calculation.flags - Not yet defined.calc - Not yet defined.true if the calculation is inserted, false if the calculation is not inserted.EdgeOutOfRangeException - If edge is too large.LayerOutOfRangeException - If layer is negative or too large.SliceOutOfRangeException - If slice is negative or too large.DataDirectorException - If an error occurs during the operation.COLUMN_EDGE, PAGE_EDGE, ROW_EDGE
public boolean deleteValueCalc(int row,
int column)
throws RowOutOfRangeException,
ColumnOutOfRangeException,
DataDirectorException
row - The row at which to delete the calculation.column - The column at which to delete the calculation.true if the calculation is deleted, false if the calculation is not deleted.RowOutOfRangeException - If row is negative or too large.ColumnOutOfRangeException - If column is negative or too large.DataDirectorException - If an error occurs during the operation.
public boolean deleteMemberCalc(int edge,
int layer,
int slice)
throws EdgeOutOfRangeException,
LayerOutOfRangeException,
SliceOutOfRangeException,
DataDirectorException
edge - A constant that specifies the edge that contains the member for which to delete the calculation. Valid constants end with _EDGE in this interface.layer - The zero-based index of the physical layer that contains the member for which to delete the calculation. The outermost layer on the edge is 0.slice - The zero-based index (along the specified edge) of the slice at which to delete the calculation.true if the calculation is deleted, false if the calculation is not deleted.LayerOutOfRangeException - If layer is negative or too large.SliceOutOfRangeException - If slice is negative or too large.DataDirectorException - If an error occurs during the operation.COLUMN_EDGE, PAGE_EDGE, ROW_EDGEpublic void addDataDirectorListener(DataDirectorListener l)
l - The listener to add.public void removeDataDirectorListener(DataDirectorListener l)
l - The listener to remove.
public boolean refresh()
throws DataDirectorException
true if data will be refreshed, false if data will not be refreshed.DataDirectorException - If an error occurs during the operation.
public boolean revalidate()
throws DataDirectorException
true if data will be refreshed, false if data will not be refreshed.DataDirectorException - If an error occurs during the operation.
public void setOutline(boolean outline)
throws DataDirectorException
For example, if the row edge uses outline form, all layers appear in the same label column. If the row edge does not use outline form, then there is a separate column for each layer.
outline - true to specify outline form for data, false to use inline form for data.DataDirectorException - If a data provider error occurs.public boolean isOutline()
false if the implementor does not support outline form.
In a Crosstab, for example, if a row edge uses outline form, then all layers appear in the same label column. If a row edge does not use outline form, then there is a separate column for each layer.
true if the data is provided in outline form, false if the data is provided in inline form.
public void setMetadataMap(int edge,
int layer,
MetadataMap map,
int size)
throws EdgeOutOfRangeException,
LayerOutOfRangeException,
DataDirectorException
edge - A constant that indicates the edge that contains the logical layer of interest. Valid constants end with _EDGE in this interface. To set a default map for all edges, pass -1.layer - The index for the logical layer whose MetadataMap is to be set. To refer to all of the layers on an edge, use -1.map - A list of the metadata types that the implementor should fetch for the specified layer, if possible.size - A suggested number of metatdata values that the data provider should fetch at a time. This is a guide for the data provider about the size of metadata chunks. This parameter is ignored if the implementor does not support partial fetches.EdgeOutOfRangeException - If edge is out of range.LayerOutOfRangeException - If layer is out of range.DataDirectorException - If a data provider error occurs.COLUMN_EDGE, PAGE_EDGE, ROW_EDGE
public void setDataMap(DataMap map,
int sizeRow,
int sizeColumn)
throws DataDirectorException
map - A list of the data types that the caller expects in data cursors that the DataAccess implementation fetches.sizeRow - The suggested number of rows that the data provider should fetch at a time.sizeColumn - The suggested number of columns that the data provider should fetch at a time.DataDirectorException - If a data provider error occurs.
public MetadataMap getMetadataMap(int edge,
int layer)
throws EdgeOutOfRangeException,
LayerOutOfRangeException
layer. This list includes the types of metadata that have been specified in setMetadataMap requests by any views that use this data provider.edge - A constant that indicates the edge that contains the logical layer. Valid constants end with _EDGE in this interface. A value of -1 is a request for the default MetadataMap.layer - A zero-based index for the logical layer for which to retrieve the metadata map. The outermost layer on the specified edge is zero. A layer value of -1 indicates all of the layers on the specified edge.layer.EdgeOutOfRangeException - If edge is out of range.LayerOutOfRangeException - If layer is not valid.COLUMN_EDGE, PAGE_EDGE, ROW_EDGEpublic DataMap getDataMap()
public MetadataMap getSupportedMetadataMap()
MetadataMap object that contains all the types of metadata that are available for the definition of a metadata map. This is not meant to guarantee views that they can get all the supported types in every query.MetadataMap object that contains all possible supported metadata types.MetadataMappublic LayerMetadataMap getSupportedLayerMetadataMap()
LayerMetadataMap object that contains all the types of layer metadata that are available for the definition of a layer metadata map. This is not meant to guarantee views that they can get all the supported types in every query.LayerMetadataMap object that contains all possible supported layer metadata types.LayerMetadataMappublic DataMap getSupportedDataMap()
Datamap object that contains all data map types that are available for the definition of a data map. This is not meant to guarantee views that they can get all the supported types in every query.DataMap object that contains all possible supported data map types.DataMappublic boolean isCancelable()
DataDirector implementor allows views to cancel an operation that takes a long time.true if the data provider supports cancelation of long operations, false if not.
public boolean cancel()
throws DataDirectorException
true if the implementor canceled the operation, false if the implementor did not or could not cancel the operation.DataDirectorException - If a data provider error occurs.public void setManualUpdate()
update are batched.update()
public void update()
throws DataDirectorException
setManualUpdate and this method are batched. This method should also turn off manual update mode.DataDirectorException - If a data provider error occurs.setManualUpdate()
|
Oracle™ Business Intelligence Beans Java API Reference | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||