public class DataSet extends HandleChain implements ADMData, BufferCollection, CallbackProcedure, Clearable, CreateLike, DataSetChangeable, DataSetInterface, DataSourceModifiable, Dereferenceable, DynamicResource, Errorable, Fillable, JsonData, NamedSerializable, NamespaceURI, Rejectable, SerializeHiddenable, TempTableDuplicator, UniqueID, XmlData, XmlNode
DataSet
objects are collections of one or more related temp-tables. Each temp-table of
these can attach to a DataSource
object that allows filling of the temp-table from the
data source, or updating the data source from the temp-table. A DataSet
object can
optionally contain a set of data relations between the temp-tables.Modifier and Type | Class and Description |
---|---|
static class |
DataSet.Builder
Builder class that helps construct a
DataSet object statically, that is, using the
DEFINE DATASET statement. |
static class |
DataSet.FieldPair
Container immutable class that abstracts a field mapping between the parent and child
tables/buffers in a data relation.
|
Modifier and Type | Field and Description |
---|---|
private java.lang.String |
admData
The value of
ADM-DATA ABL attribute. |
static java.lang.String |
AFTER_FILL_EVENT
The
AFTER-FILL event string constant in upper case. |
static java.lang.String |
BEFORE_FILL_EVENT
The
BEFORE-FILL event string constant in upper case. |
private java.util.List<BufferImpl> |
buffers
The set of buffers contained in this
DataSet . |
private boolean |
buildInProgress
Flags the short period of time when the
Builder constructs the object. |
private java.util.Map<java.lang.String,CallbackData> |
callbacks
A map with all known callbacks.
|
private boolean |
dataSourceModified
Current value of the
DATA-SOURCE-MODIFIED attribute. |
private boolean |
defaultActive
The default value for active attribute for first
DataRelation . |
private boolean |
deleted
Marks the valid objects.
|
private boolean |
dynamic
Flags the dynamically constructed objects (using
CREATE as opposed to statically
defined objects, with DEFINE ). |
private boolean |
error
The current value of boolean
ERROR attribute: indicates whether an error occurred
during a FILL or SAVE-ROW-CHANGES operation, but can also be altered
programmatically (writable). |
private static boolean |
fullDebugString
Flag for debugging level.
|
private static java.util.logging.Logger |
log
Logger for objects of this type.
|
private java.lang.String |
name
The current value of
NAME attribute. |
private java.lang.String |
nsPrefix
The namespace prefix of this
DataSet . |
private java.lang.String |
nsUri
The value of
NAMESPACE-URI attribute of this DataSet . |
private java.util.Set<DataSetParameter> |
outputParams
Destination
DataSet parameters for output copy if necessary before scope closes. |
private boolean |
postponedDelete
Flag indicating the delete was explicitly called for a BY-REFERENCE handle.
|
private java.util.Set<StaticDataSet> |
refs
The list of references of this object.
|
private boolean |
rejected
The current value of boolean
REJECTED attribute: indicates whether a change to the
data of this DataSet is rejected. |
private java.util.List<DataRelation> |
relations
The list of
DataRelation s from this data set. |
private boolean |
serializeHidden
Flags a hidden (name is not written)
DataSet when serialized. |
private java.lang.String |
serializeName
The serialization name of this
DataSet . |
private java.util.Map<BufferImpl,QueryWrapper> |
topNavQueries
The current set of
TOP-NAV-QUERY values mapped by their buffers. |
private integer |
uuid
Corresponds to UNIQUE-ID attribute.
|
private java.lang.String |
xmlNodeName
The name of the XML node for serialized data of this
DataSet . |
nextSibling, prevSibling
instProc
Constructor and Description |
---|
DataSet()
Constructor to allow building a dataset with no linkage (used for the case of the surrogate
resource
StaticDataSet , which delegates the calls to either the default dataset
or the bound dataset. |
DataSet(java.lang.String legacyName,
boolean dynamic)
Initialize this resource by determining its type.
|
Modifier and Type | Method and Description |
---|---|
private boolean |
_areRelationsActive()
Checks whether AT LEAST one data-relation objects in this
DataSet
object is active. |
boolean |
_dynamic()
Returns
true if the buffer is dynamic. |
protected int |
_getNumTopBuffers()
Obtain the number of top-level buffers in this
DataSet object. |
private void |
_setTopBufferQuery(handle queryHandle,
BufferImpl topBuffer)
Low level implementation of
TOP-NAV-QUERY method. |
logical |
acceptChanges()
Accepts changes to the data in target object (a temp-table or all temp-tables in a
DataSet ). |
logical |
addBuffer(Buffer buf)
Adds one new buffer to a query object or dynamic
DataSet object, without affecting
the other buffers, if any. |
logical |
addBuffer(character bufName)
Adds one new buffer to a query object or dynamic
DataSet object, without affecting
the other buffers, if any. |
logical |
addBuffer(handle bufHandle)
Adds one new buffer to a query object or dynamic
DataSet object, without affecting
the other buffers, if any. |
logical |
addBuffer(java.lang.String bufName)
Adds one new buffer to a query object or dynamic
DataSet object, without affecting
the other buffers, if any. |
handle |
addParentIdRelation(handle parent,
handle child)
Creates a new data-relation object for a pair of parent and child buffers of this
DataSet based
on the RECID of the parent buffer to this DataSet object. |
handle |
addParentIdRelation(handle parent,
handle child,
Text parentIdField)
Creates a new data-relation object for a pair of parent and child buffers of this
DataSet based
on the RECID of the parent buffer to this DataSet object. |
handle |
addParentIdRelation(handle parent,
handle child,
Text parentIdField,
Text parentFieldsBefore)
Creates a new data-relation object for a pair of parent and child buffers of this
DataSet based
on the RECID of the parent buffer to this DataSet object. |
handle |
addParentIdRelation(handle parent,
handle child,
Text parentIdField,
Text parentFieldsBefore,
Text parentFieldsAfter)
Creates a new data-relation object for a pair of parent and child buffers of this
DataSet based
on the RECID of the parent buffer to this DataSet object. |
(package private) void |
addReference(StaticDataSet staticDataSet)
Adds a new reference to this dataset.
|
handle |
addRelation(handle parent,
handle child,
Text pairs)
Creates a new data-relation object for a pair of parent and child buffers of this
DataSet
object. |
handle |
addRelation(handle parent,
handle child,
Text pairs,
logical reposition)
Creates a new data-relation object for a pair of parent and child buffers of this
DataSet
object. |
handle |
addRelation(handle parent,
handle child,
Text pairs,
logical reposition,
logical nested)
Creates a new data-relation object for a pair of parent and child buffers of this
DataSet
object. |
handle |
addRelation(handle parent,
handle child,
Text pairs,
logical reposition,
logical nested,
logical active)
Creates a new data-relation object for a pair of parent and child buffers of this
DataSet
object. |
handle |
addRelation(handle parent,
handle child,
Text pairs,
logical reposition,
logical nested,
logical active,
logical recursive)
Creates a new data-relation object for a pair of parent and child buffers of this
DataSet
object. |
handle |
addRelation(handle parent,
handle child,
Text pairs,
logical reposition,
logical nested,
logical active,
logical recursive,
logical fkeyHidden)
Creates a new data-relation object for a pair of parent and child buffers of this
DataSet
object. |
handle |
addRelationImpl(handle parent,
handle child,
Text pairs,
logical reposition,
logical nested,
logical active,
logical recursive,
logical fkeyHidden,
boolean nullOnDuplicate)
Actual implementation of
addRelation . |
private handle |
addRelationWorker(java.lang.String relName,
Buffer parent,
Buffer child,
java.lang.String[] fields,
java.lang.String strPairs,
boolean reposition,
boolean nested,
boolean active,
boolean recursive,
boolean fkeyHidden,
boolean dynamic)
Adds a data-relation object for a pair of parent and child buffers to this
DataSet object. |
protected DataRelation |
allowsActiveChild(Buffer childBuffer)
Checks whether a buffer can be at this moment the child side in a relation of this
DataSet . |
logical |
applyCallback(java.lang.String eventName)
Applies a callback procedure, which allows execution of a defined event without duplicating
the event procedure definition.
|
logical |
areRelationsActive()
Checks whether AT LEAST one data-relation objects in this
DataSet object is active. |
handle |
asHandle()
Convert this dataset to a handle.
|
static void |
associate(DataSetParameter dsLocal,
DataSet dsTarget,
boolean input,
boolean output)
Associate two
DataSet with one another, such that all relevant records can be copied
between them at prescribed times. |
static void |
associate(DataSetParameter dsSrc,
DataSet dsTarget,
boolean input,
boolean output,
boolean append)
Associate two
DataSet with one another, such that all relevant records can be copied
between them at prescribed times. |
static void |
associate(DataSetParameter dsSrc,
DataSet dsTarget,
boolean input,
boolean output,
boolean append,
ParameterOption mode)
Associate two
DataSet with one another, such that all relevant records can be copied
between them at prescribed times. |
handle |
bufferHandle()
Obtain the handle to a particular buffer of this
DataSet . |
handle |
bufferHandle(character buffName)
Obtain the handle to a particular buffer of this
DataSet . |
handle |
bufferHandle(int bufIndex)
Obtain the handle to a particular buffer of this
DataSet . |
handle |
bufferHandle(int64 bufIndex)
Obtain the handle to a particular buffer of this
DataSet . |
handle |
bufferHandle(java.lang.String buffName)
Obtain the handle to a particular buffer of this
DataSet . |
logical |
clear()
Returns the resource to it's clear state.
|
private void |
clearImpl(boolean delete,
boolean resetProperties)
Clears the dataset.
|
logical |
copyDataset(handle srcDS)
Copies a source
DataSet object into this DataSet object. |
logical |
copyDataset(handle srcDS,
logical append)
Copies a source
DataSet object into this DataSet object. |
logical |
copyDataset(handle srcDS,
logical append,
logical replace)
Copies a source
DataSet object into this DataSet object. |
logical |
copyDataset(handle srcDS,
logical append,
logical replace,
logical looseCopy)
Copies a source
DataSet object into this DataSet object. |
logical |
copyDataset(handle srcDS,
logical append,
logical replace,
logical looseCopy,
Text pairList)
Copies a source
DataSet object into this DataSet object. |
logical |
copyDataset(handle srcDS,
logical append,
logical replace,
logical looseCopy,
Text pairList,
logical currentOnly)
Copies a source
DataSet object into this DataSet object. |
logical |
copyDataset(handle srcDS,
logical append,
logical replace,
logical looseCopy,
Text pairList,
logical currentOnly,
Text prefix)
Copies a source
DataSet object into this DataSet object. |
protected logical |
copyDatasetImpl(handle hSrcDS,
boolean append,
boolean replace,
boolean looseCopy,
java.lang.String pairList,
boolean currentOnly,
java.lang.String prefix)
The implementation of
COPY-DATASET method. |
logical |
copyTempTable(handle other)
Copies the other TEMP-TABLE.
|
logical |
copyTempTable(handle other,
boolean append)
Copies the other TEMP-TABLE.
|
logical |
copyTempTable(handle other,
boolean append,
boolean replace)
Copies the other TEMP-TABLE.
|
logical |
copyTempTable(handle other,
boolean append,
boolean replace,
boolean looseCopy)
Copies the other TEMP-TABLE.
|
logical |
copyTempTable(handle other,
boolean append,
boolean replace,
boolean looseCopy,
java.lang.String prefix)
Copies the other TEMP-TABLE.
|
logical |
copyTempTable(handle other,
logical append)
Copies the other TEMP-TABLE.
|
logical |
copyTempTable(handle other,
logical append,
logical replace)
Copies the other TEMP-TABLE.
|
logical |
copyTempTable(handle other,
logical append,
logical replace,
logical looseCopy)
Copies the other TEMP-TABLE.
|
logical |
copyTempTable(handle other,
logical append,
logical replace,
logical looseCopy,
character prefix)
Copies the other TEMP-TABLE.
|
static void |
create(handle dsHandle)
Factory method.
|
static void |
create(handle dsHandle,
character widgetPool)
Factory method.
|
static void |
create(handle dsHandle,
java.lang.String widgetPool)
Factory method.
|
static void |
createDynamicDataSet(DataSetParameter dsParam,
handle dsHandle,
boolean input,
boolean output)
Dynamically create a
DataSet from the DataSetParameter provided. |
static void |
createDynamicDataSet(DataSetParameter dsParam,
handle dsHandle,
boolean input,
boolean output,
boolean append,
ParameterOption mode)
Dynamically create a
DataSet from the DataSetParameter provided. |
logical |
createLike(character dsName)
Duplicates the structure of an existing
DataSet , copying its entire structure. |
logical |
createLike(character dsName,
character prefix)
Duplicates the structure of an existing
DataSet , copying its entire structure. |
logical |
createLike(handle hds)
Duplicates the structure of an existing
DataSet , copying its entire structure. |
logical |
createLike(handle hds,
character prefix)
Duplicates the structure of an existing
DataSet , copying its entire structure. |
logical |
createLike(handle hds,
java.lang.String prefix)
Duplicates the structure of an existing
DataSet , copying its entire structure. |
logical |
createLike(java.lang.String dsName)
Duplicates the structure of an existing
DataSet , copying its entire structure. |
logical |
createLike(java.lang.String dsName,
java.lang.String prefix)
Duplicates the structure of an existing
DataSet , copying its entire structure. |
private logical |
createLikeImpl(DataSet sourceDS,
java.lang.String prefix)
Actual implementation of
CREATE-LIKE method. |
<T extends BaseDataType> |
dereference(java.lang.Class<T> type,
java.lang.String memberName)
Dereference a named member from this collection.
|
BaseDataType |
dereference(java.lang.String memberName)
Dereference a named member from this collection.
|
void |
dereference(java.lang.String memberName,
java.lang.Object value)
This overloaded method is used when the dereference is the left-side of an assignment.
|
logical |
emptyDataset()
Empties this
DataSet object of all records in its associated temp-tables. |
logical |
error()
Returns the state of the ERROR attribute
|
void |
error(boolean value)
Setter for ERROR attribute.
|
void |
error(logical value)
Setter for ERROR attribute.
|
logical |
fill()
Fills a
DataSet object, recursively, based on its defined data sources, data
relations, and queries. |
character |
fillMode()
Obtain the mode in which the
fill() method fills a DataSet member buffer. |
void |
fillMode(java.lang.String mode)
Configures the mode in which the
fill() method fills a DataSet member buffer. |
void |
fillMode(Text mode)
Configures the mode in which the
fill() method fills a DataSet member buffer. |
private void |
finishBuild()
Declares this static
DataSet as build. |
character |
getADMData()
Get the value of the ADM-DATA attribute.
|
private BufferImpl |
getBufferByName(java.lang.String name)
Lookup a buffer by its name.
|
java.util.List<BufferImpl> |
getBuffers()
Get the list of
buffers for the runtime instance of this resource. |
handle |
getCallbackProcContext(java.lang.String eventName)
Retrieves the handle of the procedure that contains the internal procedure associated
with the ABL callback for the specified event
|
character |
getCallbackProcName(java.lang.String eventName)
Retrieves the name of the internal procedure associated with the ABL callback for the
specified event.
|
logical |
getChanges(handle original)
Loads the empty target (
DataSet or TempTable ) object with changed rows from
original (source) object. |
logical |
getChanges(handle original,
boolean parentMode)
Loads the empty target (
DataSet or TempTable ) object with changed rows from
original (source) object. |
logical |
getChanges(handle original,
logical parentMode)
Loads the empty target (
DataSet or TempTable ) object with changed rows from
original (source) object. |
private java.lang.String |
getDataAsJson()
Get the JSON representation of data of this DATASET.
|
int |
getIndexOf(BufferImpl buffer)
Searches whether a buffer is part of the dataset.
|
handle |
getNextSibling()
Get the
NEXT-SIBLING attribute of this DataSet. |
integer |
getNumReferences()
Obtain number of references to a
Buffer , DataSet , or TempTable
object that is defined as a parameter to which reference-only objects are bound. |
integer |
getNumRelations()
Get the number of data-relation objects of this
DataSet object. |
integer |
getNumTopBuffers()
Obtain the number of top-level buffers in this
DataSet object. |
handle |
getPrevSibling()
Get the
PREV-SIBLING attribute of this DataSet. |
handle |
getRelation()
Gets the handle of the specified data-relation object.
|
handle |
getRelation(long index)
Gets the handle of the specified data-relation object.
|
handle |
getRelation(NumberType index)
Gets the handle of the specified data-relation object.
|
handle |
getRelation(java.lang.String name)
Gets the handle of the specified data-relation object.
|
handle |
getRelation(Text name)
Gets the handle of the specified data-relation object.
|
java.util.List<DataRelation> |
getRelations(Buffer buffer,
boolean parent,
boolean child,
boolean active)
Queries the list of
DataRelation s for a buffer. |
private java.lang.String |
getSchema()
Obtain a short description of the dataset structure: buffers and relations between them.
|
logical |
getSerializeHidden()
Checks whether fields are written when the temp-table is serialized, for example into
JSON or XML.
|
character |
getSerializeName()
Implementation of the read access of the
SERIALIZE-NAME attribute. |
private java.lang.String |
getSqlData()
Get the SQL representation of data of this DATASET.
|
handle |
getTopBuffer()
Gets the top-level buffer of this
DataSet object at the specified index position. |
handle |
getTopBuffer(long index)
Gets the top-level buffer of this
DataSet object at the specified index position. |
handle |
getTopBuffer(NumberType index)
Gets the top-level buffer of this
DataSet object at the specified index position. |
private java.util.List<Buffer> |
getTopBufferList()
Obtain the list of top-buffers.
|
handle |
getTopNavQuery()
Obtain default navigation query for a top-level buffer of this
DataSet object. |
private handle |
getTopNavQuery(BufferImpl buffer)
Obtain the current
TOP-NAV-QUERY for a specified buffer. |
handle |
getTopNavQuery(long index)
Obtain default navigation query for a top-level buffer of this
DataSet object. |
handle |
getTopNavQuery(NumberType index)
Obtain default navigation query for a top-level buffer of this
DataSet object. |
handle |
getTopNavQuery(java.lang.String bufName)
Obtain default navigation query for a top-level buffer of this
DataSet object. |
handle |
getTopNavQuery(Text bufName)
Obtain default navigation query for a top-level buffer of this
DataSet object. |
integer |
getUniqueID()
Obtain an integer values that uniques identifies this resource.
|
character |
getXmlDataType()
Obtain the XML Schema data type for the buffer-field object.
|
character |
getXmlNodeName()
Obtain the name of the XML element or attribute representing the target object (a
DataSet ) name in an XML document. |
java.lang.String |
getXmlNodeNameInternal()
Obtain the name of the XML element or attribute representing the target object.
|
character |
getXmlNodeType()
Obtain the XML node type of this object.
|
protected boolean |
hasNameConstraints()
Allows each resource to declare whether it has some naming constraints.
|
private void |
invalidTopNavQuery(int errCode,
java.lang.String bufName)
Notifies the user about an attempt to set an invalid value for
TOP-NAV-QUERY attribute. |
protected boolean |
invokeCallback(handle self,
CallbackData cbd)
Invokes a callback procedure or a callback method.
|
private boolean |
isAlterable()
Checks whether this object can be altered (added buffers and relations).
|
protected boolean |
isBound()
Checks if this
REFERENCE-ONLY DataSet was bound to a real DataSet . |
private static boolean |
isCallbackName(java.lang.String someName)
Test whether a string is a valid CALLBACK name for
DataSet s. |
protected boolean |
isCompatibleWith(DataSet other)
Test the compatibility of two datasets.
|
logical |
isDataSourceModified()
Checks whether the data in the data source has been modified.
|
protected boolean |
isPostponedDelete()
Check if this dataset was attempted to be deleted, but was postponed because of the handle
being a DATASET-HANDLE BY-REFERENCE.
|
protected boolean |
isReferenceOnly()
Checks if this
DataSet was built with REFERENCE-ONLY attribute. |
logical |
mergeChanges(handle original)
Merges the changed rows of all temp-tables or a single temp-table in a source
DataSet object loaded with the GET-CHANGES() method into the corresponding
rows of all temp-tables or a single temp-table (respectively) in the original (target)
DataSet object. |
logical |
mergeChanges(handle original,
boolean allCopyMode)
Merges the changed rows of all temp-tables or a single temp-table in a source
DataSet object loaded with the GET-CHANGES() method into the corresponding
rows of all temp-tables or a single temp-table (respectively) in the original (target)
DataSet object. |
logical |
mergeChanges(handle original,
logical allCopyMode)
Merges the changed rows of all temp-tables or a single temp-table in a source
DataSet object loaded with the GET-CHANGES() method into the corresponding
rows of all temp-tables or a single temp-table (respectively) in the original (target)
DataSet object. |
character |
name()
Get the
name attribute of handle. |
void |
name(character name)
Sets the name of this handle.
|
void |
name(java.lang.String name)
Sets the
name attribute of the object referred by this handle. |
character |
namespacePrefix()
Returns the value of the the NAMESPACE-PREFIX attribute.
|
void |
namespacePrefix(character prefix)
Setter for NAMESPACE-PREFIX attribute.
|
void |
namespacePrefix(java.lang.String prefix)
Setter for NAMESPACE-PREFIX attribute.
|
character |
namespaceURI()
Returns the value of the the NAMESPACE-URI attribute.
|
void |
namespaceURI(character uri)
Setter for NAMESPACE-URI attribute.
|
void |
namespaceURI(java.lang.String uri)
Setter for NAMESPACE-URI attribute.
|
integer |
numBuffers()
Obtain the number of buffers in this
DataSet . |
protected void |
performOutputCopy(DataSetParameter outputParam)
Copy output data for the linked
DataSet parameter, if any. |
private int |
positionOf(java.lang.Object[] list,
java.lang.Object item)
Locates an object in a list.
|
private static void |
readFromXml(java.lang.String xmlDataset,
boolean append,
handle ds)
Read the DATASET from XML.
|
logical |
readJson(SourceData source)
Implementation of the READ-JSON method.
|
logical |
readJson(SourceData source,
character readMode)
Implementation of the READ-JSON method.
|
logical |
readXml(SourceData source,
character readMode,
character schemaLocation,
logical overrideDefaultMapping)
Implementation of the READ-XML method.
|
logical |
readXml(SourceData source,
character readMode,
character schemaLocation,
logical overrideDefaultMapping,
character fieldTypeMapping)
Implementation of the READ-XML method.
|
logical |
readXml(SourceData source,
character readMode,
character schemaLocation,
logical overrideDefaultMapping,
character strMapping,
character verifySchemaMode)
Implementation of the READ-XML method.
|
logical |
readXmlSchema(SourceData source,
logical override)
Reads XML Schema from an XML document and uses that schema to either create a schema for a
DataSet or TempTable or verify existing schema in a DataSet ,
TempTable or temp-table Buffer object. |
logical |
readXmlSchema(SourceData source,
logical override,
Text mapping)
Reads XML Schema from an XML document and uses that schema to either create a schema for a
DataSet or TempTable or verify existing schema in a DataSet ,
TempTable or temp-table Buffer object. |
logical |
readXmlSchema(SourceData source,
logical override,
Text strMapping,
Text verifyMode)
Reads XML Schema from an XML document and uses that schema to either create a schema for a
DataSet or TempTable or verify existing schema in a DataSet ,
TempTable or temp-table Buffer object. |
DataSet |
ref()
Obtains the original
DataSet definition. |
logical |
rejectChanges()
Rejects changes to the data in target object (a temp-table or all temp-tables in a
DataSet ). |
logical |
rejected()
Returns the state of the REJECTED attribute
|
void |
rejected(boolean value)
Setter for REJECTED attribute.
|
void |
rejected(logical value)
Setter for REJECTED attribute.
|
(package private) void |
removeReference(StaticDataSet staticDataSet)
Removes a reference to this dataset.
|
protected boolean |
resourceDelete()
Delete the resource.
|
void |
setADMData(character value)
Set the value of the ADM-DATA attribute.
|
void |
setADMData(java.lang.String value)
Set the value of the ADM-DATA attribute.
|
logical |
setBuffers(Buffer... bufs)
Binds all buffers for a dynamic
DataSet object at the same time. |
logical |
setBuffers(handle... hBuffers)
Binds all buffers for a dynamic
DataSet object at the same time. |
logical |
setBuffers(java.lang.Object... bufs)
Binds all buffers for a dynamic
DataSet object at the same time. |
logical |
setCallback(java.lang.String callbackName,
java.lang.String routineName,
object<?> context)
Configures a callback.
|
logical |
setCallbackProcedure(java.lang.String eventName,
java.lang.String callback,
handle context)
Associates an internal procedure with an ABL callback event.
|
void |
setDataSourceModified(boolean mod)
Manually mark the data in the target structure as modified.
|
void |
setDataSourceModified(logical mod)
Manually mark the data in the target structure as modified.
|
void |
setPostponedDelete(boolean postponed)
Set the
postponedDelete flag. |
void |
setRelationsActive(boolean active)
Configures whether all data-relation objects in this
DataSet object to be active or
inactive. |
void |
setRelationsActive(logical active)
Configures whether all data-relation objects in this
DataSet object to be active or
inactive. |
void |
setSerializeHidden(boolean val)
Allow to configure whether fields are written when the temp-table is serialized, for example
into JSON or XML.
|
void |
setSerializeHidden(logical val)
Allow to configure whether fields are written when the temp-table is serialized, for example
into JSON or XML.
|
void |
setSerializeName(java.lang.String sName)
Implementation of the write access of the
SERIALIZE-NAME attribute. |
void |
setSerializeName(Text sName)
Implementation of the write access of the
SERIALIZE-NAME attribute. |
void |
setTopNavQuery(handle queryHandle)
Configures the default navigation query for a top-level buffer of this
DataSet
object. |
void |
setTopNavQuery(long index,
handle queryHandle)
Configures the default navigation query for a top-level buffer of this
DataSet
object. |
void |
setTopNavQuery(NumberType index,
handle queryHandle)
Configures the default navigation query for a top-level buffer of this
DataSet
object. |
void |
setTopNavQuery(java.lang.String bufName,
handle queryHandle)
Configures the default navigation query for a top-level buffer of this
DataSet
object. |
void |
setTopNavQuery(Text bufName,
handle queryHandle)
Configures the default navigation query for a top-level buffer of this
DataSet
object. |
void |
setXmlDataType(java.lang.String newType)
Configures the XML Schema data type for the buffer-field object.
|
void |
setXmlDataType(Text newType)
Configures the XML Schema data type for the buffer-field object.
|
void |
setXmlNodeName(java.lang.String name)
Sets the name of the XML element or attribute representing the target object (either a
DataSet , a TempTable , a TemporaryBuffer , or a temp-table
BufferField ) name in an XML document. |
void |
setXmlNodeName(Text name)
Sets the name of the XML element or attribute representing the target object (either a
DataSet , a TempTable , a TemporaryBuffer , or a temp-table
BufferField ) name in an XML document. |
void |
setXmlNodeType(java.lang.String newType)
Allows to specify how a this object will be represented in XML and XML Schema.
|
void |
setXmlNodeType(Text newType)
Allows to specify how a this object will be represented in XML and XML Schema.
|
java.lang.String |
toString()
Obtain a short description of the dataset used for debugging.
|
boolean |
valid()
Reports if this object is valid for use.
|
logical |
writeJson(TargetData target)
Implementation of the WRITE-JSON method.
|
logical |
writeJson(TargetData target,
logical formatted)
Implementation of the WRITE-JSON method.
|
logical |
writeJson(TargetData target,
logical formatted,
character encoding)
Implementation of the WRITE-JSON method.
|
logical |
writeJson(TargetData target,
logical formatted,
character encoding,
logical omitInitials)
Implementation of the WRITE-JSON method.
|
logical |
writeJson(TargetData target,
logical formatted,
character encoding,
logical omitInitials,
logical omitOuterObject)
Implementation of the WRITE-JSON method.
|
logical |
writeJson(TargetData target,
logical formatted,
character encoding,
logical omitInitialValues,
logical omitOuterObject,
logical writeBeforeImage)
Implementation of the WRITE-JSON method.
|
(package private) static java.lang.String |
writeToXml(handle dsHandle,
boolean useBeforeImage,
boolean isHandle)
Write the specified DATASET handle to a XML.
|
logical |
writeXml(TargetData target)
Implementation of the WRITE-XML method.
|
logical |
writeXml(TargetData target,
logical formatted)
Implementation of the WRITE-XML method.
|
logical |
writeXml(TargetData target,
logical formatted,
character encoding)
Implementation of the WRITE-XML method.
|
logical |
writeXml(TargetData target,
logical formatted,
character encoding,
character schemaLocation)
Implementation of the WRITE-XML method.
|
logical |
writeXml(TargetData target,
logical formatted,
character encoding,
character schemaLocation,
logical writeXmlSchema)
Implementation of the WRITE-XML method.
|
logical |
writeXml(TargetData target,
logical formatted,
character encoding,
character schemaLocation,
logical writeXmlSchema,
logical minXmlSchema)
Implementation of the WRITE-XML method.
|
logical |
writeXml(TargetData target,
logical formatted,
character encoding,
character schemaLocation,
logical writeXmlSchema,
logical minXmlSchema,
logical writeBeforeImage)
Implementation of the WRITE-XML method.
|
logical |
writeXml(TargetData target,
logical formatted,
character encoding,
character schemaLocation,
logical writeXmlSchema,
logical minXmlSchema,
logical beforeImage,
logical noInitialVals)
Implementation of the WRITE-XML method.
|
logical |
writeXmlSchema(TargetData target)
Writes an XML representation of the definition of this
DataSet . |
logical |
writeXmlSchema(TargetData target,
logical formatted)
Writes an XML representation of the definition of this
DataSet . |
logical |
writeXmlSchema(TargetData target,
logical formatted,
Text encoding)
Writes an XML representation of the definition of this
DataSet . |
logical |
writeXmlSchema(TargetData target,
logical formatted,
Text encoding,
logical minXmlSchema)
Writes an XML representation of the definition of this
DataSet . |
logical |
writeXmlSchema(TargetData target,
logical formatted,
Text encoding,
logical minXmlSchema,
logical omitInitVal)
Writes an XML representation of the definition of this
DataSet . |
delete, firstResource, firstResource, getHead, getNextSibling, getPrevSibling, getPrivateData, getTail, hasName, hasNameReadOnly, hasNextSibling, hasParent, hasPrevSibling, hasPrivateData, interlink, isChained, lastResource, lastResource, moveInChain, readOnlyError, readOnlyError, setHead, setNextSibling, setNextSibling, setPrevSibling, setPrevSibling, setPrivateData, setPrivateData, setPrivateData, validateName
doDelete, getResourceType, id, id, implicitDeletion, incrementTrigger, instantiatingProcedure, invalidAttribute, processResource, registerResource, setInstantiatingProcedure, type, unableToAssignUnknown, unknown
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
applyCallback, getCallbackProcContext, getCallbackProcName, setCallback, setCallback, setCallback, setCallback, setCallback, setCallback, setCallbackProcedure, setCallbackProcedure, setCallbackProcedure, setCallbackProcedure, setCallbackProcedure, setCallbackProcedure, setCallbackProcedure
isDataSourceModified
dereference, dereference, dereference, dereference
dynamic
getResourceType
id, id, unknown
public static final java.lang.String BEFORE_FILL_EVENT
BEFORE-FILL
event string constant in upper case.public static final java.lang.String AFTER_FILL_EVENT
AFTER-FILL
event string constant in upper case.private final integer uuid
private static final java.util.logging.Logger log
private java.lang.String admData
ADM-DATA
ABL attribute.private java.lang.String nsUri
NAMESPACE-URI
attribute of this DataSet
.private java.lang.String nsPrefix
DataSet
.private java.lang.String xmlNodeName
DataSet
.private java.lang.String serializeName
DataSet
. The default is dataset's name.private boolean defaultActive
DataRelation
.private java.lang.String name
NAME
attribute. It can be modified for dynamic DataSet
s
but immutable for static DataSet
s.private boolean error
ERROR
attribute: indicates whether an error occurred
during a FILL
or SAVE-ROW-CHANGES
operation, but can also be altered
programmatically (writable).private boolean rejected
REJECTED
attribute: indicates whether a change to the
data of this DataSet
is rejected. The attribute is writable.private final java.util.Map<java.lang.String,CallbackData> callbacks
private final boolean dynamic
CREATE
as opposed to statically
defined objects, with DEFINE
).private boolean buildInProgress
Builder
constructs the object. During this
period, some setters are allowed for STATICally build DATASETs.private boolean postponedDelete
private boolean serializeHidden
DataSet
when serialized. This flag overlaps
with XML-NODE-TYPE
attribute. A value of false
is equivalent to
XML-NODE-TYPE
set to "ELEMENT" (the default) and false
means that the
XML-NODE-TYPE
is "HIDDEN".private boolean deleted
false
.private boolean dataSourceModified
DATA-SOURCE-MODIFIED
attribute.private final java.util.List<BufferImpl> buffers
DataSet
.private final java.util.Map<BufferImpl,QueryWrapper> topNavQueries
TOP-NAV-QUERY
values mapped by their buffers.private final java.util.List<DataRelation> relations
DataRelation
s from this data set.private java.util.Set<DataSetParameter> outputParams
DataSet
parameters for output copy if necessary before scope closes.private final java.util.Set<StaticDataSet> refs
private static boolean fullDebugString
true
the full dataset is returned at the expense of CPU clocks.
When false
only the essential dataset structure is returned. Intentionally this is defined as
non-final private here and has no accessors so that it can be r/w only at debug time.DataSet()
StaticDataSet
, which delegates the calls to either the default dataset
or the bound dataset.DataSet(java.lang.String legacyName, boolean dynamic)
legacyName
- The legacy name of the DataSet
. Used for lookup.dynamic
- Flag indicating if this is a static or dynamic resource.java.lang.IllegalStateException
- If the resource type could not be determined from a LegacyResource
annotation, after checking the interface hierarchy, or more than one interface is
annotated.public static void create(handle dsHandle)
CREATE DATASET
statement. Creates a new
DataSet
and stores the object in the supplied handle.dsHandle
- The destination handle.public static void create(handle dsHandle, java.lang.String widgetPool)
CREATE DATASET
statement. Creates a new
DataSet
and stores the object in the supplied handle.dsHandle
- The destination handle.widgetPool
- The widget pool to created the new DataSet
into.public static void create(handle dsHandle, character widgetPool)
CREATE DATASET
statement. Creates a new
DataSet
and stores the object in the supplied handle.dsHandle
- The destination handle.widgetPool
- The widget pool to created the new DataSet
into.public static void associate(DataSetParameter dsLocal, DataSet dsTarget, boolean input, boolean output)
DataSet
with one another, such that all relevant records can be copied
between them at prescribed times.dsLocal
- The local object relative to the current procedure. If this is an INPUT parameter
then this is the 'source'. This encapsulates the actual parameter sent by caller.dsTarget
- A dataset defined in current external procedure.input
- If true
, records are copied from source table to destination table
immediately upon invocation of this method, otherwise they are not.output
- When true
, the records are copied from destination table back to source
table when the current transaction or subtransaction is committed; otherwise they
are not.TemporaryBuffer.associate(TableParameter, Temporary, boolean, boolean)
public static void associate(DataSetParameter dsSrc, DataSet dsTarget, boolean input, boolean output, boolean append)
DataSet
with one another, such that all relevant records can be copied
between them at prescribed times.dsSrc
- The local object relative to the current procedure. If this is an INPUT parameter
then this is the 'source'. This encapsulates the actual parameter sent by caller.dsTarget
- A dataset defined in current external procedure.input
- If true
, records are copied from source table to destination table
immediately upon invocation of this method, otherwise they are not.output
- When true
, the records are copied from destination table back to source
table when the current transaction or subtransaction is committed; otherwise they
are not.append
- Use true
to add new records without affecting existing records.false
to remove all existing records before the copy takes place. This
option affects the input
copy only, not the output
copy.TemporaryBuffer.associate(TableParameter, Temporary, boolean, boolean)
public static void associate(DataSetParameter dsSrc, DataSet dsTarget, boolean input, boolean output, boolean append, ParameterOption mode)
DataSet
with one another, such that all relevant records can be copied
between them at prescribed times.dsSrc
- The local object relative to the current procedure. If this is an INPUT parameter
then this is the 'source'. This encapsulates the actual parameter sent by caller.dsTarget
- A dataset defined in current external procedure.input
- If true
, records are copied from source table to destination table
immediately upon invocation of this method, otherwise they are not.output
- When true
, the records are copied from destination table back to source
table when the current transaction or subtransaction is committed; otherwise they
are not.append
- Use true
to add new records without affecting existing records.false
to remove all existing records before the copy takes place. This
option affects the input
copy only, not the output
copy.mode
- Parameter passing mode BY-VALUE, BIND or BY-REFERENCE option.TemporaryBuffer.associate(TableParameter, Temporary, boolean, boolean)
public static void createDynamicDataSet(DataSetParameter dsParam, handle dsHandle, boolean input, boolean output)
DataSet
from the DataSetParameter
provided. The new
DataSet
will be stored in dsHandle
. This method is used at the beginning of
a method/function in order to properly convert the PARAMETER DATASET-HANDLE
constructs.dsParam
- The DataSetParameter
. This is the actual parameter for the routine.dsHandle
- A handle to store the reference to the new DataSet
during the scope of this
routine.input
- If true
then this is an INPUT
or INPUT-OUTPUT
parameter.output
- If true
then this is an OUTPUT
or INPUT-OUTPUT
parameter.public static void createDynamicDataSet(DataSetParameter dsParam, handle dsHandle, boolean input, boolean output, boolean append, ParameterOption mode)
DataSet
from the DataSetParameter
provided. The new
DataSet
will be stored in dsHandle
. This method is used at the beginning of
a method/function in order to properly convert the PARAMETER DATASET-HANDLE
constructs.dsParam
- The DataSetParameter
. This is the actual parameter for the routine (src).dsHandle
- A handle to store the reference to the new DataSet
during the scope of this
routine (target).input
- If true
then this is an INPUT
or INPUT-OUTPUT
parameter.output
- If true
then this is an OUTPUT
or INPUT-OUTPUT
parameter.append
- true
to add new records without affecting existing records;
false
to remove all existing records before the copy takes place. This
option affects the input
copy only, not the output
copy.mode
- Parameter passing mode BY-VALUE, BIND or BY-REFERENCE option.public handle asHandle()
public void name(character name)
name
in interface Nameable
name
in class HandleChain
name
- The new name to be set.public character name()
name
attribute of handle.name
in interface Nameable
name
in class HandleChain
public void name(java.lang.String name)
name
attribute of the object referred by this handle.name
in interface Nameable
name
in class HandleChain
name
- The new name to be set to target object.public BaseDataType dereference(java.lang.String memberName)
handle
to a named buffer, if the collection is a buffer
the returned value is the field value with the respective name. In the case that this
collection does not have a named member with the name specified memberName
the unknown value is returned.dereference
in interface Dereferenceable
memberName
- The name of the member to be extracted.public <T extends BaseDataType> T dereference(java.lang.Class<T> type, java.lang.String memberName)
handle
to a named buffer, if the collection is a buffer
the returned value is the field value with the respective name. In the case that this
collection does not have a named member with the name specified memberName
the unknown value is returned.dereference
in interface Dereferenceable
type
- The expected type of the returned value.memberName
- The name of the member to be extracted.public void dereference(java.lang.String memberName, java.lang.Object value)
dereference
in interface Dereferenceable
memberName
- The name of the member to be extracted.value
- The new value that will be assigned to the extracted field.public handle getPrevSibling()
PREV-SIBLING
attribute of this DataSet. Actually always returns null
because
this attribute is not supported by DataSets. Only NEXT-SIBLING
is supported.getPrevSibling
in interface CommonHandleChain
getPrevSibling
in class HandleChain
null
.public handle getNextSibling()
NEXT-SIBLING
attribute of this DataSet. Actually always returns the super's
getPrevSibling()
because DataSets are queued in reverse order(!).
TODO: investigate other handle resource that manifest the same from the point of NEXT/PREV-SIBLING.
getNextSibling
in interface CommonHandleChain
getNextSibling
in class HandleChain
null
.public logical clear()
private void clearImpl(boolean delete, boolean resetProperties)
After being invoked on a dynamic DataSet
the object gets ready to be repopulated.
In this case the method can be invoked multiple times.
In the case of a static DataSet
s, the method is called only once, when the object is
destroyed. It only makes it easy for GC to free the occupied resources.
delete
- The dataset will be deleted. If there are dynamic buffers associated with it having AUTO-DELETE
attribute set they will be also deleted.resetProperties
- If true
all attributes of the dataset are set to unknown values.public boolean _dynamic()
true
if the buffer is dynamic.
This is not emitted by conversion, is used internally by FWD.
_dynamic
in interface DynamicResource
true
if the resource is dynamic, false
otherwise.public logical getChanges(handle original)
DataSet
or TempTable
) object with changed rows from
original (source) object.getChanges
in interface DataSetChangeable
original
- Handle to original object (DataSet
or TempTable
) that contains the
changed rows to load into the target object.true
if operation is successful.public logical getChanges(handle original, logical parentMode)
DataSet
or TempTable
) object with changed rows from
original (source) object.getChanges
in interface DataSetChangeable
original
- Handle to original object (DataSet
or TempTable
) that contains the
changed rows to load into the target object.parentMode
- When TRUE
the target gets the changed parent rows of each changed child row.true
if operation is successful.public logical getChanges(handle original, boolean parentMode)
DataSet
or TempTable
) object with changed rows from
original (source) object.getChanges
in interface DataSetChangeable
original
- Handle to original object (DataSet
or TempTable
) that contains the
changed rows to load into the target object.parentMode
- When TRUE
the target gets the changed parent rows of each changed child row.true
if operation is successful.public logical mergeChanges(handle original)
DataSet
object loaded with the GET-CHANGES()
method into the corresponding
rows of all temp-tables or a single temp-table (respectively) in the original (target)
DataSet
object.mergeChanges
in interface DataSetChangeable
original
- A handle to the original (target) DataSet
object or the buffer object of a
single target DataSet
temp-table to merge with the changed rows from the
source object.true
if operation is successful.public logical mergeChanges(handle original, logical allCopyMode)
DataSet
object loaded with the GET-CHANGES()
method into the corresponding
rows of all temp-tables or a single temp-table (respectively) in the original (target)
DataSet
object.mergeChanges
in interface DataSetChangeable
original
- A handle to the original (target) DataSet
object or the buffer object of a
single target DataSet
temp-table to merge with the changed rows from the
source object.allCopyMode
- Use TRUE
to indicates that all rows of the source after-image table must be
merged.true
if operation is successful.public logical mergeChanges(handle original, boolean allCopyMode)
DataSet
object loaded with the GET-CHANGES()
method into the corresponding
rows of all temp-tables or a single temp-table (respectively) in the original (target)
DataSet
object.mergeChanges
in interface DataSetChangeable
original
- A handle to the original (target) DataSet
object or the buffer object of a
single target DataSet
temp-table to merge with the changed rows from the
source object.allCopyMode
- Use TRUE
to indicates that all rows of the source after-image table must be
merged.true
if operation is successful.public logical createLike(handle hds)
DataSet
, copying its entire structure.
This method is the P2J equivalent of CREATE-LIKE
method of Progress 4GL.createLike
in interface CreateLike
hds
- A handle to a DataSet
from which to copy the definitions.true
on success.public logical createLike(java.lang.String dsName)
DataSet
, copying its entire structure.
This method is the P2J equivalent of CREATE-LIKE
method of Progress 4GL.createLike
in interface CreateLike
dsName
- The name of DataSet
from which to copy the definitions.true
on success.public logical createLike(character dsName)
DataSet
, copying its entire structure.
This method is the P2J equivalent of CREATE-LIKE
method of Progress 4GL.createLike
in interface CreateLike
dsName
- The name of DataSet
from which to copy the definitions.true
on success.public logical createLike(handle hds, java.lang.String prefix)
DataSet
, copying its entire structure.
This method is the P2J equivalent of CREATE-LIKE
method of Progress 4GL.createLike
in interface CreateLike
hds
- A handle to a DataSet
from which to copy the definitions.prefix
- The prefix to prepend to each of the source DataSet
member buffer names,
which creates a new name for each new member buffer.true
on success.public logical createLike(handle hds, character prefix)
DataSet
, copying its entire structure.
This method is the P2J equivalent of CREATE-LIKE
method of Progress 4GL.createLike
in interface CreateLike
hds
- A handle to a DataSet
from which to copy the definitions.prefix
- The prefix to prepend to each of the source DataSet
member buffer names,
which creates a new name for each new member buffer.true
on success.public logical createLike(java.lang.String dsName, java.lang.String prefix)
DataSet
, copying its entire structure.
This method is the P2J equivalent of CREATE-LIKE
method of Progress 4GL.createLike
in interface CreateLike
dsName
- The name of DataSet
from which to copy the definitions.prefix
- The prefix to prepend to each of the source DataSet
member buffer names,
which creates a new name for each new member buffer.true
on success.public logical createLike(character dsName, character prefix)
DataSet
, copying its entire structure.
This method is the P2J equivalent of CREATE-LIKE
method of Progress 4GL.createLike
in interface CreateLike
dsName
- The name of DataSet
from which to copy the definitions.prefix
- The prefix to prepend to each of the source DataSet
member buffer names,
which creates a new name for each new member buffer.true
on success.public logical copyTempTable(handle other)
The only reason the TempTableDuplicator
is implemented by DataSet
is that
we found it static code (@code DATASET DSet:COPY-TEMP-TABLE()}). If the method was
referenced via handle interface, the handle
would automatically unwrap it to an
invalidAttrAccessProxy
. Because the method is accessed directly from the object,
however, makes it mandatory that the DataSet
to implement the interface.
copyTempTable
in interface TempTableDuplicator
other
- Some other temp-table to copy from.true
if operation is successful.public logical copyTempTable(handle other, logical append)
The only reason the TempTableDuplicator
is implemented by DataSet
is that
we found it static code (@code DATASET DSet:COPY-TEMP-TABLE()}). If the method was
referenced via handle interface, the handle
would automatically unwrap it to an
invalidAttrAccessProxy
. Because the method is accessed directly from the object,
however, makes it mandatory that the DataSet
to implement the interface.
copyTempTable
in interface TempTableDuplicator
other
- Some other temp-table to copy from.append
- Append mode.true
if operation is successful.public logical copyTempTable(handle other, logical append, logical replace)
The only reason the TempTableDuplicator
is implemented by DataSet
is that
we found it static code (@code DATASET DSet:COPY-TEMP-TABLE()}). If the method was
referenced via handle interface, the handle
would automatically unwrap it to an
invalidAttrAccessProxy
. Because the method is accessed directly from the object,
however, makes it mandatory that the DataSet
to implement the interface.
copyTempTable
in interface TempTableDuplicator
other
- Some other temp-table to copy from.append
- Append mode.replace
- Replace mode.true
if operation is successfulpublic logical copyTempTable(handle other, logical append, logical replace, logical looseCopy)
The only reason the TempTableDuplicator
is implemented by DataSet
is that
we found it static code (@code DATASET DSet:COPY-TEMP-TABLE()}). If the method was
referenced via handle interface, the handle
would automatically unwrap it to an
invalidAttrAccessProxy
. Because the method is accessed directly from the object,
however, makes it mandatory that the DataSet
to implement the interface.
copyTempTable
in interface TempTableDuplicator
other
- Some other temp-table to copy from.append
- Append mode.replace
- Replace mode.looseCopy
- Loose copy mode.true
if operation is successful.public logical copyTempTable(handle other, boolean append)
The only reason the TempTableDuplicator
is implemented by DataSet
is that
we found it static code (@code DATASET DSet:COPY-TEMP-TABLE()}). If the method was
referenced via handle interface, the handle
would automatically unwrap it to an
invalidAttrAccessProxy
. Because the method is accessed directly from the object,
however, makes it mandatory that the DataSet
to implement the interface.
copyTempTable
in interface TempTableDuplicator
other
- Some other temp-table to copy from.append
- Append mode.true
if operation is successful.public logical copyTempTable(handle other, boolean append, boolean replace)
The only reason the TempTableDuplicator
is implemented by DataSet
is that
we found it static code (@code DATASET DSet:COPY-TEMP-TABLE()}). If the method was
referenced via handle interface, the handle
would automatically unwrap it to an
invalidAttrAccessProxy
. Because the method is accessed directly from the object,
however, makes it mandatory that the DataSet
to implement the interface.
copyTempTable
in interface TempTableDuplicator
other
- Some other temp-table to copy from.append
- Append mode.replace
- Replace mode.true
if operation is successful.public logical copyTempTable(handle other, boolean append, boolean replace, boolean looseCopy)
The only reason the TempTableDuplicator
is implemented by DataSet
is that
we found it static code (@code DATASET DSet:COPY-TEMP-TABLE()}). If the method was
referenced via handle interface, the handle
would automatically unwrap it to an
invalidAttrAccessProxy
. Because the method is accessed directly from the object,
however, makes it mandatory that the DataSet
to implement the interface.
copyTempTable
in interface TempTableDuplicator
other
- Some other temp-table to copy from.append
- Append mode.replace
- Replace mode.looseCopy
- Loose copy mode.true
if operation is successful.public logical copyTempTable(handle other, logical append, logical replace, logical looseCopy, character prefix)
The only reason the TempTableDuplicator
is implemented by DataSet
is that
we found it static code (@code DATASET DSet:COPY-TEMP-TABLE()}). If the method was
referenced via handle interface, the handle
would automatically unwrap it to an
invalidAttrAccessProxy
. Because the method is accessed directly from the object,
however, makes it mandatory that the DataSet
to implement the interface.
copyTempTable
in interface TempTableDuplicator
other
- Some other temp-table to copy from.append
- Append mode.replace
- Replace mode.looseCopy
- Loose copy mode.prefix
- Prefix for naming the copied temp-table.true
if operation is successful.public logical copyTempTable(handle other, boolean append, boolean replace, boolean looseCopy, java.lang.String prefix)
The only reason the TempTableDuplicator
is implemented by DataSet
is that
we found it static code (@code DATASET DSet:COPY-TEMP-TABLE()}). If the method was
referenced via handle interface, the handle
would automatically unwrap it to an
invalidAttrAccessProxy
. Because the method is accessed directly from the object,
however, makes it mandatory that the DataSet
to implement the interface.
copyTempTable
in interface TempTableDuplicator
other
- Some other temp-table to copy from.append
- Append mode.replace
- Replace mode.looseCopy
- Loose copy mode.prefix
- Prefix for naming the copied temp-table.true
if operation is successful.public logical fill()
DataSet
object, recursively, based on its defined data sources, data
relations, and queries. When invoked on one of its member Buffer
objects a partial
fill is performed, by starting at the respective level.public character fillMode()
fill()
method fills a DataSet
member buffer. The
default mode is MERGE
.
Note: Undocumented feature: query all buffers and returns the common fill mode if one exist. Otherwise returns unknown value.
public void fillMode(java.lang.String mode)
fill()
method fills a DataSet
member buffer.
The allowed modes are: APPEND
, EMPTY
, MERGE
, NO-FILL
, and
REPLACE
.
Note: Undocumented feature: set the fill mode on all buffers.
public void fillMode(Text mode)
fill()
method fills a DataSet
member buffer.
The allowed modes are: APPEND
, EMPTY
, MERGE
, NO-FILL
,
and REPLACE
.
Note: Undocumented feature: set the fill mode on all buffers.
public integer getNumReferences()
Buffer
, DataSet
, or TempTable
object that is defined as a parameter to which reference-only objects are bound.
This corresponds to the read-only NUM-REFERENCES
attribute.getNumReferences
in interface DataSetInterface
public logical isDataSourceModified()
isDataSourceModified
in interface DataSourceModifiable
true
when the data has been modified.public void setDataSourceModified(logical mod)
setDataSourceModified
in interface DataSourceModifiable
mod
- true
when the data is marked as modified and false
otherwise.public void setDataSourceModified(boolean mod)
setDataSourceModified
in interface DataSourceModifiable
mod
- true
when the data is marked as modified and false
otherwise.public logical acceptChanges()
DataSet
).acceptChanges
in interface DataSetChangeable
true
if operation is successful.public logical rejectChanges()
DataSet
).rejectChanges
in interface DataSetChangeable
true
if operation is successful.public logical applyCallback(java.lang.String eventName)
applyCallback
in interface CallbackProcedure
eventName
- The event whose callback will be called.true
if operation is successful.public character getCallbackProcName(java.lang.String eventName)
getCallbackProcName
in interface CallbackProcedure
eventName
- The name of the event.public handle getCallbackProcContext(java.lang.String eventName)
getCallbackProcContext
in interface CallbackProcedure
eventName
- The name of the event.public logical setCallback(java.lang.String callbackName, java.lang.String routineName, object<?> context)
setCallback
in interface CallbackProcedure
callbackName
- The name of a callback.routineName
- The name of a method or an internal procedure to be associated.context
- The context in which the callback will be executed.true
if callbackName
is a correct callback name. The rest of
parameters are ignored (note: manual states otherwise).public logical setCallbackProcedure(java.lang.String eventName, java.lang.String callback, handle context)
setCallbackProcedure
in interface CallbackProcedure
eventName
- The eventName of the event.callback
- The eventName of the internal procedure associated with the callback event.context
- A handle to a procedure that contains the internal procedure specified by
callback
. If not specified, THIS-PROCEDURE
is used as the procedure
context.true
when the method ends with success.public character namespaceURI()
namespaceURI
in interface NamespaceURI
public void namespaceURI(java.lang.String uri)
namespaceURI
in interface NamespaceURI
uri
- The new value of the NAMESPACE-URI attribute.public void namespaceURI(character uri)
namespaceURI
in interface NamespaceURI
uri
- The new value of the NAMESPACE-URI attribute.public character getXmlNodeName()
DataSet
) name in an XML document. If not set the name
is returned. If the
name
is empty "ProDataSet"
is returned.getXmlNodeName
in interface XmlNode
public java.lang.String getXmlNodeNameInternal()
null
, unlike the getXmlNodeName()
attribute implementation.public void setXmlNodeName(java.lang.String name)
DataSet
, a TempTable
, a TemporaryBuffer
, or a temp-table
BufferField
) name in an XML document.setXmlNodeName
in interface XmlNode
name
- The new name of the XML element for this object.public void setXmlNodeName(Text name)
DataSet
, a TempTable
, a TemporaryBuffer
, or a temp-table
BufferField
) name in an XML document.setXmlNodeName
in interface XmlNode
name
- The new name of the XML element for this object.public character getSerializeName()
SERIALIZE-NAME
attribute.getSerializeName
in interface NamedSerializable
SERIALIZE-NAME
attribute.public void setSerializeName(Text sName)
SERIALIZE-NAME
attribute.setSerializeName
in interface NamedSerializable
sName
- the new value for the SERIALIZE-NAME
attribute.public void setSerializeName(java.lang.String sName)
SERIALIZE-NAME
attribute.setSerializeName
in interface NamedSerializable
sName
- the new value for the SERIALIZE-NAME
attribute.public logical error()
public void error(boolean value)
public void error(logical value)
public logical rejected()
rejected
in interface Rejectable
public void rejected(boolean value)
rejected
in interface Rejectable
value
- The new value of REJECTED attribute.public void rejected(logical value)
rejected
in interface Rejectable
value
- The new value of REJECTED attribute.public boolean valid()
DataSet
is validvalid
in interface WrappedResource
true
if we are valid (can be used).public character getADMData()
getADMData
in interface ADMData
public void setADMData(java.lang.String value)
setADMData
in interface ADMData
value
- The new value.public void setADMData(character value)
setADMData
in interface ADMData
value
- The new value.public logical emptyDataset()
DataSet
object of all records in its associated temp-tables.emptyDataset
in interface DataSetInterface
true
on success.public handle getRelation()
getRelation
in interface DataSetInterface
public handle getRelation(NumberType index)
getRelation
in interface DataSetInterface
index
- The index (1-based) of the data-relation to be returned.public handle getRelation(long index)
getRelation
in interface DataSetInterface
index
- The index (1-based) of the data-relation to be returned.public handle getRelation(Text name)
getRelation
in interface DataSetInterface
name
- The name of the data-relation to be returned.public handle getRelation(java.lang.String name)
getRelation
in interface DataSetInterface
name
- The name of the data-relation to be returned.public handle getTopBuffer()
DataSet
object at the specified index position.getTopBuffer
in interface DataSetInterface
public handle getTopBuffer(long index)
DataSet
object at the specified index position.getTopBuffer
in interface DataSetInterface
index
- The 1-based index of the top-level buffer.public handle getTopBuffer(NumberType index)
DataSet
object at the specified index position.getTopBuffer
in interface DataSetInterface
index
- The 1-based index of the top-level buffer.public handle getTopNavQuery()
DataSet
object.
This method correspond to the getter side of TOP-NAV-QUERY
ABL attribute.getTopNavQuery
in interface DataSetInterface
public handle getTopNavQuery(long index)
DataSet
object.
This method correspond to the getter side of TOP-NAV-QUERY
ABL attribute.getTopNavQuery
in interface DataSetInterface
index
- The 1-based index of the top-level buffer.public handle getTopNavQuery(NumberType index)
DataSet
object.
This method correspond to the getter side of TOP-NAV-QUERY
ABL attribute.getTopNavQuery
in interface DataSetInterface
index
- The 1-based index of the top-level buffer.public handle getTopNavQuery(java.lang.String bufName)
DataSet
object.
This method correspond to the getter side of TOP-NAV-QUERY
ABL attribute.getTopNavQuery
in interface DataSetInterface
bufName
- The name of the top-level buffer.public handle getTopNavQuery(Text bufName)
DataSet
object.
This method correspond to the getter side of TOP-NAV-QUERY
ABL attribute.getTopNavQuery
in interface DataSetInterface
bufName
- The name of the top-level buffer.public void setTopNavQuery(handle queryHandle)
DataSet
object. This method correspond to the setter side of TOP-NAV-QUERY
ABL attribute.setTopNavQuery
in interface DataSetInterface
queryHandle
- The new default navigation query for a top-level buffer.public void setTopNavQuery(long index, handle queryHandle)
DataSet
object. This method correspond to the setter side of TOP-NAV-QUERY
ABL attribute.setTopNavQuery
in interface DataSetInterface
index
- The 1-based index of the top-level buffer.queryHandle
- The new default navigation query for a top-level buffer.public void setTopNavQuery(NumberType index, handle queryHandle)
DataSet
object. This method correspond to the setter side of TOP-NAV-QUERY
ABL attribute.setTopNavQuery
in interface DataSetInterface
index
- The 1-based index of the top-level buffer.queryHandle
- The new default navigation query for a top-level buffer.public void setTopNavQuery(java.lang.String bufName, handle queryHandle)
DataSet
object. This method correspond to the setter side of TOP-NAV-QUERY
ABL attribute.setTopNavQuery
in interface DataSetInterface
bufName
- The name of the top-level buffer.queryHandle
- The new default navigation query for a top-level buffer.public void setTopNavQuery(Text bufName, handle queryHandle)
DataSet
object. This method correspond to the setter side of TOP-NAV-QUERY
ABL attribute.setTopNavQuery
in interface DataSetInterface
bufName
- The name of the top-level buffer.queryHandle
- The new default navigation query for a top-level buffer.public logical areRelationsActive()
DataSet
object is active. All data-relation objects in a DataSet
object are
active by default.areRelationsActive
in interface DataSetInterface
true
when all data-relation objects are active.public void setRelationsActive(logical active)
DataSet
object to be active or
inactive. Setting this attribute to TRUE
will activate all data-relation objects.
Setting it to FALSE
will deactivate all data-relation objects instead.setRelationsActive
in interface DataSetInterface
active
- The new value for RELATIONS-ACTIVE
attribute.public void setRelationsActive(boolean active)
DataSet
object to be active or
inactive. Setting this attribute to TRUE
will activate all data-relation objects.
Setting it to FALSE
will deactivate all data-relation objects instead.setRelationsActive
in interface DataSetInterface
active
- The new value for RELATIONS-ACTIVE
attribute.public integer getNumRelations()
DataSet
object.getNumRelations
in interface DataSetInterface
DataSet
object.public integer getNumTopBuffers()
DataSet
object.getNumTopBuffers
in interface DataSetInterface
DataSet
object.public handle addRelation(handle parent, handle child, Text pairs)
DataSet
object. This method applies only to DataSet
objects dynamically created.addRelation
in interface DataSetInterface
parent
- The handle to the parent buffer in the data-relation object.child
- The handle to the child buffer in the data-relation object.pairs
- A comma-delimited list of parent-field, child-field pairs describing the relationship between
parent and child buffers in the new data-relation object.handle
to the newly created DataRelation
.public handle addRelation(handle parent, handle child, Text pairs, logical reposition)
DataSet
object. This method applies only to DataSet
objects dynamically created.addRelation
in interface DataSetInterface
parent
- The handle to the parent buffer in the data-relation object.child
- The handle to the child buffer in the data-relation object.pairs
- A comma-delimited list of parent-field, child-field pairs describing the relationship between
parent and child buffers in the new data-relation object.reposition
- The reposition mode. If TRUE
, the relation mode is REPOSITION
.
Otherwise the relation mode is SELECTION
. The default value is SELECTION
.handle
to the newly created DataRelation
.public handle addRelation(handle parent, handle child, Text pairs, logical reposition, logical nested)
DataSet
object. This method applies only to DataSet
objects dynamically created.addRelation
in interface DataSetInterface
parent
- The handle to the parent buffer in the data-relation object.child
- The handle to the child buffer in the data-relation object.pairs
- A comma-delimited list of parent-field, child-field pairs describing the relationship between
parent and child buffers in the new data-relation object.reposition
- The reposition mode. If TRUE
, the relation mode is REPOSITION
.
Otherwise the relation mode is SELECTION
. The default value is SELECTION
.nested
- Use TRUE
to nest child rows of DataSet
buffers within their parent
rows when writing the XML representation of data. When FALSE
is passed, all
child rows are written after all parent rows are written. The default value is FALSE
.handle
to the newly created DataRelation
.public handle addRelation(handle parent, handle child, Text pairs, logical reposition, logical nested, logical active)
DataSet
object. This method applies only to DataSet
objects dynamically created.addRelation
in interface DataSetInterface
parent
- The handle to the parent buffer in the data-relation object.child
- The handle to the child buffer in the data-relation object.pairs
- A comma-delimited list of parent-field, child-field pairs describing the relationship between
parent and child buffers in the new data-relation object.reposition
- The reposition mode. If TRUE
, the relation mode is REPOSITION
.
Otherwise the relation mode is SELECTION
. The default value is SELECTION
.nested
- Use TRUE
to nest child rows of DataSet
buffers within their parent
rows when writing the XML representation of data. When FALSE
is passed, all
child rows are written after all parent rows are written. The default value is FALSE
.active
- Use false
to make the newly created relation inactive.handle
to the newly created DataRelation
.public handle addRelation(handle parent, handle child, Text pairs, logical reposition, logical nested, logical active, logical recursive)
DataSet
object. This method applies only to DataSet
objects dynamically created.addRelation
in interface DataSetInterface
parent
- The handle to the parent buffer in the data-relation object.child
- The handle to the child buffer in the data-relation object.pairs
- A comma-delimited list of parent-field, child-field pairs describing the relationship between
parent and child buffers in the new data-relation object.reposition
- The reposition mode. If TRUE
, the relation mode is REPOSITION
.
Otherwise the relation mode is SELECTION
. The default value is SELECTION
.nested
- Use TRUE
to nest child rows of DataSet
buffers within their parent
rows when writing the XML representation of data. When FALSE
is passed, all
child rows are written after all parent rows are written. The default value is FALSE
.active
- Use false
to make the newly created relation inactive.recursive
- Using TRUE
till causes the data-relation to be filled recursively.handle
to the newly created DataRelation
.public handle addRelation(handle parent, handle child, Text pairs, logical reposition, logical nested, logical active, logical recursive, logical fkeyHidden)
DataSet
object. This method applies only to DataSet
objects dynamically created.
Note:
There is a bug/quirk in OE when this is performed. If a relation (for same buffer pair) is added a
second time, it is accepted, leading to two "parallel" relations to be created. FWD will warn this in
log. When/if OE decides to fix the bug/quirk, the handling code should also be removed.
addRelation
in interface DataSetInterface
parent
- The handle to the parent buffer in the data-relation object.child
- The handle to the child buffer in the data-relation object.pairs
- A comma-delimited list of parent-field, child-field pairs describing the relationship between
parent and child buffers in the new data-relation object.reposition
- The reposition mode. If TRUE
, the relation mode is REPOSITION
.
Otherwise the relation mode is SELECTION
. The default value is SELECTION
.nested
- Use TRUE
to nest child rows of DataSet
buffers within their parent
rows when writing the XML representation of data. When FALSE
is passed, all
child rows are written after all parent rows are written. The default value is FALSE
.active
- Use false
to make the newly created relation inactive.recursive
- Using TRUE
till causes the data-relation to be filled recursively.fkeyHidden
- When set to TRUE
the foreign key fields in nested data-relations will be omitted when
writing the XML representation of data. If this option is used, the NESTED
argument
must be TRUE
.handle
to the newly created DataRelation
.public handle addRelationImpl(handle parent, handle child, Text pairs, logical reposition, logical nested, logical active, logical recursive, logical fkeyHidden, boolean nullOnDuplicate)
addRelation
.
Creates a new data-relation object for a pair of parent and child buffers of this DataSet
object. This method applies only to DataSet
objects dynamically created.
Note:
There is a bug/quirk in OE when this is performed. If a relation (for same buffer pair) is added a
second time, it is accepted, leading to two "parallel" relations to be created. FWD will warn this in
log. When/if OE decides to fix the bug/quirk, the handling code should also be removed.
parent
- The handle to the parent buffer in the data-relation object.child
- The handle to the child buffer in the data-relation object.pairs
- A comma-delimited list of parent-field, child-field pairs describing the relationship between
parent and child buffers in the new data-relation object.reposition
- The reposition mode. If TRUE
, the relation mode is REPOSITION
.
Otherwise the relation mode is SELECTION
. The default value is SELECTION
.nested
- Use TRUE
to nest child rows of DataSet
buffers within their parent
rows when writing the XML representation of data. When FALSE
is passed, all
child rows are written after all parent rows are written. The default value is FALSE
.active
- Use false
to make the newly created relation inactive.recursive
- Using TRUE
till causes the data-relation to be filled recursively.fkeyHidden
- When set to TRUE
the foreign key fields in nested data-relations will be omitted when
writing the XML representation of data. If this option is used, the NESTED
argument
must be TRUE
.nullOnDuplicate
- if true
the method will return null
if a duplicate relation is detected.
Otherwise it will throw error condition #11979, eventually returning invalid handle.handle
to the newly created DataRelation
.public handle addParentIdRelation(handle parent, handle child)
DataSet
based
on the RECID
of the parent buffer to this DataSet
object. This method applies only to
DataSet
objects dynamically created. The newly created object will have the
PARENT-ID-RELATION
attribute set to TRUE
.addParentIdRelation
in interface DataSetInterface
parent
- The handle to the parent buffer in the data-relation object.child
- The handle to the child buffer in the data-relation object.DataRelation
object.public handle addParentIdRelation(handle parent, handle child, Text parentIdField)
DataSet
based
on the RECID
of the parent buffer to this DataSet
object. This method applies only to
DataSet
objects dynamically created. The newly created object will have the
PARENT-ID-RELATION
attribute set to TRUE
.addParentIdRelation
in interface DataSetInterface
parent
- The handle to the parent buffer in the data-relation object.child
- The handle to the child buffer in the data-relation object.parentIdField
- Denotes the RECID
field in child-buffer-handle on which this
parent-id-relation object is based.DataRelation
object.public handle addParentIdRelation(handle parent, handle child, Text parentIdField, Text parentFieldsBefore)
DataSet
based
on the RECID
of the parent buffer to this DataSet
object. This method applies only to
DataSet
objects dynamically created. The newly created object will have the
PARENT-ID-RELATION
attribute set to TRUE
.addParentIdRelation
in interface DataSetInterface
parent
- The handle to the parent buffer in the data-relation object.child
- The handle to the child buffer in the data-relation object.parentIdField
- Denotes the RECID
field in child-buffer-handle on which this
parent-id-relation object is based.parentFieldsBefore
- A list of comma-separated fields from the parent record to be written to XML before
any nested child-buffer-handle records.DataRelation
object.public handle addParentIdRelation(handle parent, handle child, Text parentIdField, Text parentFieldsBefore, Text parentFieldsAfter)
DataSet
based
on the RECID
of the parent buffer to this DataSet
object. This method applies only to
DataSet
objects dynamically created. The newly created object will have the
PARENT-ID-RELATION
attribute set to TRUE
.addParentIdRelation
in interface DataSetInterface
parent
- The handle to the parent buffer in the data-relation object.child
- The handle to the child buffer in the data-relation object.parentIdField
- Denotes the RECID
field in child-buffer-handle on which this
parent-id-relation object is based. The default value is the name of the
parent-buffer-handle appended with _id
.parentFieldsBefore
- A list of comma-separated fields from the parent record to be written to XML before
any nested child-buffer-handle records.parentFieldsAfter
- A list of comma-separated fields from the parent record to be written to XML after
all nested child-buffer-handle records.DataRelation
object.public logical copyDataset(handle srcDS)
DataSet
object into this DataSet
object.copyDataset
in interface DataSetInterface
srcDS
- The source DataSet
.true
on success.public logical copyDataset(handle srcDS, logical append)
DataSet
object into this DataSet
object.copyDataset
in interface DataSetInterface
srcDS
- The source DataSet
.append
- When true
the source temp-tables are appended to current temp-tables.true
on success.public logical copyDataset(handle srcDS, logical append, logical replace)
DataSet
object into this DataSet
object.copyDataset
in interface DataSetInterface
srcDS
- The source DataSet
.append
- When true
the source temp-tables are appended to current temp-tables.replace
- When true
the records in this temp-tables are replaced with records from
the temp-tables of source DataSet
.true
on success.public logical copyDataset(handle srcDS, logical append, logical replace, logical looseCopy)
DataSet
object into this DataSet
object.copyDataset
in interface DataSetInterface
srcDS
- The source DataSet
.append
- When true
the source temp-tables are appended to current temp-tables.replace
- When true
the records in this temp-tables are replaced with records from
the temp-tables of source DataSet
.looseCopy
- When TRUE
, each temp-table in the source DataSet object is copied to
this DataSet
object based on a field mapping between the source and target
temp-table buffers.true
on success.public logical copyDataset(handle srcDS, logical append, logical replace, logical looseCopy, Text pairList)
DataSet
object into this DataSet
object.copyDataset
in interface DataSetInterface
srcDS
- The source DataSet
.append
- When true
the source temp-tables are appended to current temp-tables.replace
- When true
the records in this temp-tables are replaced with records from
the temp-tables of source DataSet
.looseCopy
- When TRUE
, each temp-table in the source DataSet object is copied to
this DataSet
object based on a field mapping between the source and target
temp-table buffers.pairList
- A list of the target and source temp-table PAIRS to be copied, comma-delimited.true
on success.public logical copyDataset(handle srcDS, logical append, logical replace, logical looseCopy, Text pairList, logical currentOnly)
DataSet
object into this DataSet
object.copyDataset
in interface DataSetInterface
srcDS
- The source DataSet
.append
- When true
the source temp-tables are appended to current temp-tables.replace
- When true
the records in this temp-tables are replaced with records from
the temp-tables of source DataSet
.looseCopy
- When TRUE
, each temp-table in the source DataSet object is copied to
this DataSet
object based on a field mapping between the source and target
temp-table buffers.pairList
- A list of the target and source temp-table PAIRS to be copied, comma-delimited.currentOnly
- Use TRUE
indicates that the AVM copy only the current record from each
temp-table at each level in the source DataSet
object to the target
DataSet
object. The default value is FALSE
.true
on success.public logical copyDataset(handle srcDS, logical append, logical replace, logical looseCopy, Text pairList, logical currentOnly, Text prefix)
DataSet
object into this DataSet
object.copyDataset
in interface DataSetInterface
srcDS
- The source DataSet
.append
- When true
the source temp-tables are appended to current temp-tables.replace
- When true
the records in this temp-tables are replaced with records from
the temp-tables of source DataSet
.looseCopy
- When TRUE
, each temp-table in the source DataSet object is copied to
this DataSet
object based on a field mapping between the source and target
temp-table buffers.pairList
- A list of the target and source temp-table PAIRS to be copied, comma-delimited.currentOnly
- Use TRUE
indicates that the AVM copy only the current record from each
temp-table at each level in the source DataSet
object to the target
DataSet
object. The default value is FALSE
.prefix
- An expression used as the prefix for (re-)naming the target DataSet
.true
on success.public logical setBuffers(handle... hBuffers)
DataSet
object at the same time. Any buffers
previously added to this DataSet
object are removed.setBuffers
in interface BufferCollection
hBuffers
- Variable argument list of buffer handles to be set. In 4GL, the maximum number of
buffers per query is 18.true
on success.public logical setBuffers(Buffer... bufs)
DataSet
object at the same time. Any buffers
previously added to this DataSet
object are removed.setBuffers
in interface BufferCollection
bufs
- Variable argument list of buffer handles to be set. In 4GL, the maximum number of
buffers per query is 18.true
on success.public logical setBuffers(java.lang.Object... bufs)
DataSet
object at the same time. Any buffers
previously added to this DataSet
object are removed.setBuffers
in interface BufferCollection
bufs
- Variable argument list of Buffer to be set, a mixed list of Buffer
,
handle
or character
instances.true
on successpublic logical addBuffer(handle bufHandle)
DataSet
object, without affecting
the other buffers, if any. Use the SET-BUFFERS( ) method to remove all prior buffers and set
all buffers for the object at the same time.addBuffer
in interface BufferCollection
bufHandle
- A buffer handle to add.public logical addBuffer(Buffer buf)
DataSet
object, without affecting
the other buffers, if any. Use the SET-BUFFERS( ) method to remove all prior buffers and set
all buffers for the object at the same time.addBuffer
in interface BufferCollection
buf
- A buffer to add.public logical addBuffer(java.lang.String bufName)
DataSet
object, without affecting
the other buffers, if any. Use the SET-BUFFERS( ) method to remove all prior buffers and set
all buffers for the object at the same time.addBuffer
in interface BufferCollection
bufName
- Legacy buffer name to add.public logical addBuffer(character bufName)
DataSet
object, without affecting
the other buffers, if any. Use the SET-BUFFERS( ) method to remove all prior buffers and set
all buffers for the object at the same time.addBuffer
in interface BufferCollection
bufName
- Legacy buffer name to add.public integer numBuffers()
DataSet
.numBuffers
in interface BufferCollection
DataSet
.public handle bufferHandle()
DataSet
.bufferHandle
in interface BufferCollection
DataSet
.public handle bufferHandle(int bufIndex)
DataSet
.bufferHandle
in interface BufferCollection
bufIndex
- The sequence number of the desired buffer.DataSet
.public handle bufferHandle(int64 bufIndex)
DataSet
.bufferHandle
in interface BufferCollection
bufIndex
- The sequence number of the desired buffer.DataSet
.public handle bufferHandle(java.lang.String buffName)
DataSet
.bufferHandle
in interface BufferCollection
buffName
- The name of the desired buffer.DataSet
.public handle bufferHandle(character buffName)
DataSet
.bufferHandle
in interface BufferCollection
buffName
- The name of the desired buffer.DataSet
.public logical getSerializeHidden()
SERIALIZE-HIDDEN
ABL attribute.getSerializeHidden
in interface SerializeHiddenable
true
when the fields are hidden.public void setSerializeHidden(logical val)
SERIALIZE-HIDDEN
ABL attribute.setSerializeHidden
in interface SerializeHiddenable
val
- true
when the fields are hidden.public void setSerializeHidden(boolean val)
SERIALIZE-HIDDEN
ABL attribute.setSerializeHidden
in interface SerializeHiddenable
val
- true
when the fields are hidden.public character namespacePrefix()
namespacePrefix
in interface NamespaceURI
public void namespacePrefix(java.lang.String prefix)
namespacePrefix
in interface NamespaceURI
prefix
- The new value of the NAMESPACE-PREFIX attribute.public void namespacePrefix(character prefix)
namespacePrefix
in interface NamespaceURI
prefix
- The new value of the NAMESPACE-PREFIX attribute.public logical readJson(SourceData source)
public logical readJson(SourceData source, character readMode)
public logical writeJson(TargetData target)
public logical writeJson(TargetData target, logical formatted)
public logical writeJson(TargetData target, logical formatted, character encoding)
writeJson
in interface JsonData
target
- Data target.formatted
- True
to format the JSON to make it more readable; false
to write it
as unformatted text. Unknown value is treated as false
.encoding
- Name of the character encoding to use.True
if the operation completed successfully, else false
.public logical writeJson(TargetData target, logical formatted, character encoding, logical omitInitials)
writeJson
in interface JsonData
target
- Data target.formatted
- True
to format the JSON to make it more readable; false
to write it
as unformatted text. Unknown value is treated as false
.encoding
- Name of the character encoding to use.omitInitials
- True
to omit data for fields whose values match their initial values.True
if the operation completed successfully, else false
.public logical writeJson(TargetData target, logical formatted, character encoding, logical omitInitials, logical omitOuterObject)
writeJson
in interface JsonData
target
- Data target.formatted
- True
to format the JSON to make it more readable; false
to write it
as unformatted text. Unknown value is treated as false
.encoding
- Name of the character encoding to use.omitInitials
- True
to omit data for fields whose values match their initial values.omitOuterObject
- True
to omit data for the outermost object from the output.True
if the operation completed successfully, else false
.public logical writeJson(TargetData target, logical formatted, character encoding, logical omitInitialValues, logical omitOuterObject, logical writeBeforeImage)
writeJson
in interface JsonData
target
- Data target.formatted
- True
to format the JSON to make it more readable; false
to write it
as unformatted text. Unknown value is treated as false
.encoding
- Name of the character encoding to use.omitInitialValues
- True
to omit data for fields whose values match their initial values.omitOuterObject
- True
to omit data for the outermost object from the output.writeBeforeImage
- True
to write before-image data and error information, else false
.True
if the operation completed successfully, else false
.public character getXmlDataType()
getXmlDataType
in interface XmlNode
public void setXmlDataType(java.lang.String newType)
setXmlDataType
in interface XmlNode
newType
- the new XML Schema data type for the buffer-field object.public void setXmlDataType(Text newType)
setXmlDataType
in interface XmlNode
newType
- the new XML Schema data type for the buffer-field object.public character getXmlNodeType()
XML-NODE-TYPE
ABL attribute.getXmlNodeType
in interface XmlNode
public void setXmlNodeType(Text newType)
SERIALIZE-HIDDEN
attribute.
This represents the setter for XML-NODE-TYPE
ABL attribute.setXmlNodeType
in interface XmlNode
newType
- The new type.public void setXmlNodeType(java.lang.String newType)
XML-NODE-TYPE
ABL attribute.setXmlNodeType
in interface XmlNode
newType
- The new type.public logical readXml(SourceData source, character readMode, character schemaLocation, logical overrideDefaultMapping)
Defaults applied:
readXml
in interface XmlData
source
- Data source.readMode
- Mode in which data is read into buffer. Must evaluate to APPEND
,
EMPTY
, MERGE
, or REPLACE
.schemaLocation
- Name of an external XML schema file, or empty string or unknown value to use the
xsi:noNamespaceSchemaLocation
value set in the XML data, if any.overrideDefaultMapping
- true
to override the default string-to-binary data type mappings when
creating a temp-table schema from an XML schema.true
if the operation completed successfully, else false
.public logical readXml(SourceData source, character readMode, character schemaLocation, logical overrideDefaultMapping, character fieldTypeMapping)
readXml
in interface XmlData
source
- Data source.readMode
- Mode in which data is read into buffer. Must evaluate to APPEND
, EMPTY
, MERGE
, or REPLACE
.schemaLocation
- Name of an external XML schema file, or empty string or unknown value to use the
xsi:noNamespaceSchemaLocation
value set in the XML data, if any.overrideDefaultMapping
- True
to override the default string-to-binary data type mappings when
creating a temp-table schema from an XML schema.fieldTypeMapping
- Comma-delimited list of field name and data type name pairs to use to override
data type mappings of specific fields. Specify unknown value to use default
mappings.True
if the operation completed successfully, else false
.public logical readXml(SourceData source, character readMode, character schemaLocation, logical overrideDefaultMapping, character strMapping, character verifySchemaMode)
readXml
in interface XmlData
source
- Data source.readMode
- Mode in which data is read into buffer. Must evaluate to APPEND
, EMPTY
, MERGE
, or REPLACE
.schemaLocation
- Name of an external XML schema file, or empty string or unknown value to use the
xsi:noNamespaceSchemaLocation
value set in the XML data, if any.overrideDefaultMapping
- True
to override the default string-to-binary data type mappings when
creating a temp-table schema from an XML schema.strMapping
- Comma-delimited list of field name and data type name pairs to use to override
data type mappings of specific fields. Specify unknown value to use default
mappings.verifySchemaMode
- Schema verification mode. Must evaluate to IGNORE
, LOOSE
, or
STRICT
. Default is LOOSE
.True
if the operation completed successfully, else false
.public logical writeXml(TargetData target)
public logical writeXml(TargetData target, logical formatted)
public logical writeXml(TargetData target, logical formatted, character encoding)
writeXml
in interface XmlData
target
- Data target.formatted
- True
to format the XML to make it more readable; false
to write it
as unformatted text. Unknown value is treated as false
.encoding
- Name of the character encoding to use.True
if the operation completed successfully, else false
.public logical writeXml(TargetData target, logical formatted, character encoding, character schemaLocation)
writeXml
in interface XmlData
target
- Data target.formatted
- True
to format the XML to make it more readable; false
to write it
as unformatted text. Unknown value is treated as false
.encoding
- Name of the character encoding to use.schemaLocation
- Name of an external XML schema file, or empty string or unknown value to set the
xsi:noNamespaceSchemaLocation
to empty string or unknown value.True
if the operation completed successfully, else false
.public logical writeXml(TargetData target, logical formatted, character encoding, character schemaLocation, logical writeXmlSchema)
writeXml
in interface XmlData
target
- Data target.formatted
- True
to format the XML to make it more readable; false
to write it
as unformatted text. Unknown value is treated as false
.encoding
- Name of the character encoding to use.schemaLocation
- Name of an external XML schema file, or empty string or unknown value to set the
xsi:noNamespaceSchemaLocation
to empty string or unknown value.writeXmlSchema
- True
to write XML schema information, else false
.True
if the operation completed successfully, else false
.public logical writeXml(TargetData target, logical formatted, character encoding, character schemaLocation, logical writeXmlSchema, logical minXmlSchema)
writeXml
in interface XmlData
target
- Data target.formatted
- True
to format the XML to make it more readable; false
to write it
as unformatted text. Unknown value is treated as false
.encoding
- Name of the character encoding to use.schemaLocation
- Name of an external XML schema file, or empty string or unknown value to set the
xsi:noNamespaceSchemaLocation
to empty string or unknown value.writeXmlSchema
- True
to write XML schema information, else false
.minXmlSchema
- True
to write minimal XML schema information, else false
. Must be
false
if writeXmlSchema
is false
.True
if the operation completed successfully, else false
.public logical writeXml(TargetData target, logical formatted, character encoding, character schemaLocation, logical writeXmlSchema, logical minXmlSchema, logical writeBeforeImage)
writeXml
in interface XmlData
target
- Data target.formatted
- True
to format the XML to make it more readable; false
to write it
as unformatted text. Unknown value is treated as false
.encoding
- Name of the character encoding to use.schemaLocation
- Name of an external XML schema file, or empty string or unknown value to set the
xsi:noNamespaceSchemaLocation
to empty string or unknown value.writeXmlSchema
- True
to write XML schema information, else false
.minXmlSchema
- True
to write minimal XML schema information, else false
. Must be
false
if writeXmlSchema
is false
.writeBeforeImage
- True
to write before-image data and error information, else false
.True
if the operation completed successfully, else false
.public logical writeXml(TargetData target, logical formatted, character encoding, character schemaLocation, logical writeXmlSchema, logical minXmlSchema, logical beforeImage, logical noInitialVals)
writeXml
in interface XmlData
target
- Data target.formatted
- True
to format the XML to make it more readable; false
to write it
as unformatted text. Unknown value is treated as false
.encoding
- Name of the character encoding to use.schemaLocation
- Name of an external XML schema file, or empty string or unknown value to set the
xsi:noNamespaceSchemaLocation
to empty string or unknown value.writeXmlSchema
- True
to write XML schema information, else false
.minXmlSchema
- True
to write minimal XML schema information, else false
. Must be
false
if writeXmlSchema
is false
.beforeImage
- True
to write before-image data and error information, else false
.noInitialVals
- True
to omit data for fields whose values match their initial values.True
if the operation completed successfully, else false
.public logical writeXmlSchema(TargetData target)
DataSet
.writeXmlSchema
in interface XmlData
target
- Data target.true
if operation is successful.public logical writeXmlSchema(TargetData target, logical formatted)
DataSet
.writeXmlSchema
in interface XmlData
target
- Data target.formatted
- Use true
for a more human-readable document.true
if operation is successful.public logical writeXmlSchema(TargetData target, logical formatted, Text encoding)
DataSet
.writeXmlSchema
in interface XmlData
target
- Data target.formatted
- Use true
for a more human-readable document.encoding
- The character encoding. The default is UTF-8.true
if operation is successful.public logical writeXmlSchema(TargetData target, logical formatted, Text encoding, logical minXmlSchema)
DataSet
.writeXmlSchema
in interface XmlData
target
- Data target.formatted
- Use true
for a more human-readable document.encoding
- The character encoding. The default is UTF-8.minXmlSchema
- If true
, the minimum amount of schema for the object will be written.true
if operation is successful.public logical writeXmlSchema(TargetData target, logical formatted, Text encoding, logical minXmlSchema, logical omitInitVal)
DataSet
.writeXmlSchema
in interface XmlData
target
- Data target.formatted
- Use true
for a more human-readable document.encoding
- The character encoding. The default is UTF-8.minXmlSchema
- If true
, the minimum amount of schema for the object will be written.omitInitVal
- Use true
to omit the initial values.true
if operation is successful.public logical readXmlSchema(SourceData source, logical override)
DataSet
or TempTable
or verify existing schema in a DataSet
,
TempTable
or temp-table Buffer
object.readXmlSchema
in interface XmlData
source
- Data source.override
- If true
the default mapping between XML Schema string and binary data types
and ABL data types when creating an ABL temp-table schema from an XML Schema will
be overwritten.true
if operation is successful.public logical readXmlSchema(SourceData source, logical override, Text mapping)
DataSet
or TempTable
or verify existing schema in a DataSet
,
TempTable
or temp-table Buffer
object.readXmlSchema
in interface XmlData
source
- Data source.override
- If true
the default mapping between XML Schema string and binary data types
and ABL data types when creating an ABL temp-table schema from an XML Schema will
be overwritten.mapping
- A comma-delimited list of field name, data type pairs. This allows to specify the
data type for a specific field.true
if operation is successful.public logical readXmlSchema(SourceData source, logical override, Text strMapping, Text verifyMode)
DataSet
or TempTable
or verify existing schema in a DataSet
,
TempTable
or temp-table Buffer
object.readXmlSchema
in interface XmlData
source
- Data source.override
- If true
the default mapping between XML Schema string and binary data types
and ABL data types when creating an ABL temp-table schema from an XML Schema will
be overwritten.strMapping
- A comma-delimited list of field name, data type pairs. This allows to specify the
data type for a specific field.verifyMode
- Specifies how the XML will be verified against the schema. Valid values: "LOOSE" or
"STRICT".true
if operation is successful.public integer getUniqueID()
getUniqueID
in interface UniqueID
public void setPostponedDelete(boolean postponed)
postponedDelete
flag.postponed
- Flag indicating that delete is postponed.public int getIndexOf(BufferImpl buffer)
buffer
- The BufferImpl
to be search.DataSet
and -1
otherwise.protected boolean resourceDelete()
resourceDelete
in class HandleResource
true
if the resource was deleted.protected boolean hasNameConstraints()
hasNameConstraints
in class HandleChain
false
, requiring that its name should be
validated before assignment.HandleChain.validateName(java.lang.String)
protected boolean isReferenceOnly()
DataSet
was built with REFERENCE-ONLY
attribute.false
.protected boolean isBound()
REFERENCE-ONLY
DataSet
was bound to a real DataSet
.true
(it is bound to itself).protected boolean isPostponedDelete()
postponedDelete
.protected boolean isCompatibleWith(DataSet other)
other
- The DataSet
to compare with this instance.true
if the two dataset are compatible (ie one can receive data from
another).public DataSet ref()
DataSet
definition. This is for internal usage, in cases when
those information are needed and the proxy interface will mask and make the information
unavailable.DataSet
definition.public java.util.List<BufferImpl> getBuffers()
buffers
for the runtime instance of this resource.protected void performOutputCopy(DataSetParameter outputParam)
DataSet
parameter, if any.outputParam
- The DataSet
parameter where to copy the data.protected int _getNumTopBuffers()
DataSet
object.DataSet
object.protected DataRelation allowsActiveChild(Buffer childBuffer)
DataSet
. When
an existing active relation is detected having the buffer as child the error 11979 is displayed before
returning false
.childBuffer
- The child buffer to test.null
if a the requested buffer can be a child buffer in a relation in this
DataSet
in current configuration or the DataRelation
that caused the conflict.public java.util.List<DataRelation> getRelations(Buffer buffer, boolean parent, boolean child, boolean active)
DataRelation
s for a buffer. Depending on the requests, only the
relations where the buffer is parent, child or any of them is returned.buffer
- The buffer to be queried on.parent
- If true
, all the relations where the buffer is parent are included.child
- If true
, all the relations where the buffer is child are included.active
- If true
, ONLY the active relations are included. Otherwise all relations
that match above constraints will be returned.protected boolean invokeCallback(handle self, CallbackData cbd)
INPUT
parameter of type DATASET
or DATASET-HANDLE
. The passed
parameter is this DataSet
object.cbd
- A CallbackData
object holding the data necessary for invocation. May be
null
, in which case this method will silently return yes
even
though nothing is performed.self
- The object on which the event is applied (buffer or dataset).true
if no errors were encountered during execution.protected logical copyDatasetImpl(handle hSrcDS, boolean append, boolean replace, boolean looseCopy, java.lang.String pairList, boolean currentOnly, java.lang.String prefix)
COPY-DATASET
method. Copies all records from all tables of a
source DataSet
object into this DataSet
object.hSrcDS
- The source DataSet
.append
- When true
the source temp-tables are appended to current temp-tables.replace
- When true
the records in this temp-tables are replaced with records from
the temp-tables of source DataSet
.looseCopy
- When TRUE
, each temp-table in the source DataSet object is copied to
this DataSet
object based on a field mapping between the source and target
temp-table buffers.pairList
- A list of the target and source temp-table PAIRS to be copied, comma-delimited.currentOnly
- Use TRUE
indicates that the AVM copy only the current record from each
temp-table at each level in the source DataSet
object to the target
DataSet
object. The default value is FALSE
.prefix
- An expression used as the prefix for (re-)naming the target DataSet
.true
on success.final void addReference(StaticDataSet staticDataSet)
NUM-REFERENCES
is updated if needed.staticDataSet
- The new DataSet
that references this object.final void removeReference(StaticDataSet staticDataSet)
NUM-REFERENCES
is updated if needed.staticDataSet
- The new DataSet
that does not references this object any more.static java.lang.String writeToXml(handle dsHandle, boolean useBeforeImage, boolean isHandle)
This is used when the remote call sent the DATASET as XML and it must receive it in the same format (used by SOAP callers).
dsHandle
- The handle referencing the dataset.useBeforeImage
- Flag indicating if the before table needs to be serialized.isHandle
- Flag indicating that this is used for a DATASET-HANDLE parameter.private static void readFromXml(java.lang.String xmlDataset, boolean append, handle ds)
This is used when the remote call sent the DATASET as XML and it must receive it in the same format (used by SOAP callers).
xmlDataset
- The XML serialized dataset.append
- Flag indicating if the read mode is 'append'. Otherwise, is 'empty.ds
- The handle where to read the dataset.private BufferImpl getBufferByName(java.lang.String name)
name
- The name to search among the list of buffers.null
when there is no match.private handle getTopNavQuery(BufferImpl buffer)
TOP-NAV-QUERY
for a specified buffer. Uses lazy initialization:
if not exist one is created (and prepared, but not open) now.buffer
- The buffer whose TOP-NAV-QUERY
is to be returned.handle
to TOP-NAV-QUERY
for specified buffer.private void invalidTopNavQuery(int errCode, java.lang.String bufName)
TOP-NAV-QUERY
attribute. Two
error messages will be issued, the former being 14293 and the latter the one specified as parameter.errCode
- The message code (4056 or 4061).bufName
- The buffer's name.private void _setTopBufferQuery(handle queryHandle, BufferImpl topBuffer)
TOP-NAV-QUERY
method. Does the final parameter checking before
mapping the query to the buffer.queryHandle
- The query to be set.topBuffer
- The top level buffer.private boolean _areRelationsActive()
DataSet
object is active. All data-relation objects in a DataSet
object are active by
default.true
when all data-relation objects are active.private handle addRelationWorker(java.lang.String relName, Buffer parent, Buffer child, java.lang.String[] fields, java.lang.String strPairs, boolean reposition, boolean nested, boolean active, boolean recursive, boolean fkeyHidden, boolean dynamic)
DataSet
object.relName
- The name of the relation.parent
- The handle to the parent buffer in the data-relation object.child
- The handle to the child buffer in the data-relation object.fields
- An array of (parent-field, child-field) pairs describing the relationship between
parent and child buffers in the new data-relation object.reposition
- The reposition mode. If TRUE
, the relation mode is REPOSITION
.
Otherwise the relation mode is SELECTION
. The default value is
SELECTION
.nested
- Use TRUE
to nest child rows of DataSet
buffers within their parent
rows when writing the XML representation of data. When FALSE
is passed, all
child rows are written after all parent rows are written. The default value is FALSE
.active
- Use true
to make the newly created relation active.recursive
- Using TRUE
will cause the data-relation to be filled recursively.fkeyHidden
- When set to TRUE
the foreign key fields in nested data-relations will be
omitted when writing the XML representation of data. If this option is used, the
NESTED
argument must be TRUE
.dynamic
- Use true
for dynamically created relations.handle
to the newly created DataRelation
.private boolean isAlterable()
DataSet
s are not alterable, but they can 'altered' by their
Builder
while the object is being constructed.true
if new buffers or relations can be added.private static boolean isCallbackName(java.lang.String someName)
DataSet
s. This method is responsible of
raising the 11950 error if the name specified is unknown or not a name of a known callback for
DataSet
.someName
- The name to test.true
only if someName
is equals to "BEFORE-FILL" or "AFTER-FILL",
in ignore-case mode.private java.util.List<Buffer> getTopBufferList()
private logical createLikeImpl(DataSet sourceDS, java.lang.String prefix)
CREATE-LIKE
method. The sourceDS
structure,
including TempTable
and DataRelation
definitions, is copied to the this
DataSet
; the source data, however, is not copied.sourceDS
- The source DataSet
.prefix
- The name prefix for the newly created DatSet
.true
on success (and this object is a copy of the sourceDS
), and
false
if the copy operation failed.private int positionOf(java.lang.Object[] list, java.lang.Object item)
list
- A list of items.item
- The item to be located.item
in the list
or -1 if not found.private void finishBuild()
DataSet
as build. This will prohibit some of the setters to be
called.public java.lang.String toString()
fullDebugString
is true
the full dataset (all rows of all buffers) is dumped as a JSON string. If only the dataset structure
is needed, set fullDebugString
to false
.toString
in class HandleResource
private java.lang.String getSchema()
private java.lang.String getDataAsJson()
private java.lang.String getSqlData()