com.sap.conn.jco
Interface JCoMetaData

All Superinterfaces:
java.lang.Cloneable, java.io.Serializable
All Known Subinterfaces:
JCoClassMetaData, JCoListMetaData, JCoRecordMetaData

public interface JCoMetaData
extends java.io.Serializable, java.lang.Cloneable

Encapsulates the metadata of JCo data containers. Each element of metadata describes a field of these data containers in terms of name, type, length, etc. JCoMetadata is the basis for the two important metadata interfaces of JCo, and includes their common functionality: JCoListMetaData and JCoRecordMetaData.
Moreover, it contains constants for all supported data types, where each JCo data type corresponds to one of the builtin types of ABAP.


Field Summary
static int TYPE_ABAPOBJECT
          ABAP object
static int TYPE_BCD
          Packed BCD number, any length between 1 and 16 bytes.
static int TYPE_BOX
          ABAP boxed component
static int TYPE_BYTE
          Raw data, binary, fixed length, zero padded.
static int TYPE_CHAR
          1-byte or multi-byte character.Fixed sized, blank padded.
static int TYPE_DATE
          Date ( YYYYYMMDD ).
static int TYPE_DECF16
          decimal floating point.
static int TYPE_DECF34
          decimal floating point.
static int TYPE_EXCEPTION
          ABAP exception.
static int TYPE_FLOAT
          Floating point,double precision.
static int TYPE_GENERIC_BOX
          ABAP boxed generic component
static int TYPE_INT
          4-byte integer .
static int TYPE_INT1
          1-byte integer .
static int TYPE_INT2
          2-byte integer .
static int TYPE_INVALID
          The field info does not contain a valid JCO type
static int TYPE_ITAB
          Internal table.
static int TYPE_NUM
          Digits, fixed size,'0' padded.
static int TYPE_STRING
          UTF8 encoded string of variable length.
static int TYPE_STRUCTURE
          A heterogeneous structure.
static int TYPE_TABLE
          A JCoTable.
static int TYPE_TIME
          Time (HHMMSS).
static int TYPE_XSTRING
          Byte array of variable length.
static int UNINITIALIZED
          The field info was not initialized yet
 
Method Summary
 int getByteLength(int index)
          Returns the byte length of the data field for non-Unicode layout at the specified index
 int getByteLength(java.lang.String fieldName)
          Returns the byte length of the field for non-Unicode layout with the specified name
 java.lang.String getClassNameOfField(int index)
          Returns the fully-qualified name of the Java class whose instances are manufactured if the methods getValue(int index) or getValue(String fieldName) are called to retrieve a calue from the field.
 java.lang.String getClassNameOfField(java.lang.String fieldName)
          Returns the fully-qualified name of the Java class whose instances are manufactured if the methods getValue(int index) or getValue(String fieldName) are called to retrieve a calue from the field.
 int getDecimals(int index)
          Returns the number of decimals of the data field at the specified index Decimals are only necessary for the JCO data types TYPE_BCD and TYPE_FLOAT, respectively.
 int getDecimals(java.lang.String fieldName)
          Returns the number of decimals for the field with the specified name Decimals are only necessary for the JCO data types TYPE_BCD and TYPE_FLOAT, respectively.
 java.lang.String getDescription(int index)
          Returns the descriptional text of the data field at the specified index
 java.lang.String getDescription(java.lang.String fieldName)
          Returns the descriptional text for the field with the specified name
 JCoExtendedFieldMetaData getExtendedFieldMetaData(int index)
          Returns the extended field metadata object at the specified index
 JCoExtendedFieldMetaData getExtendedFieldMetaData(java.lang.String fieldName)
          Returns the extended metadata object for the field with the specified name
 int getFieldCount()
          Returns the number of entries (fields)
 int getLength(int index)
          Returns the max length of the data field at the specified index.
 int getLength(java.lang.String fieldName)
          Returns the max length of the data field at the specified index.
 java.lang.String getName()
          Returns the name of the table/structure this meta-data describes
 java.lang.String getName(int index)
          Returns the field name of the data field at the specified index The field name is used for identfying a field in a structure or table row.
 JCoRecordMetaData getRecordMetaData(int index)
          Returns the meta data object for the field, if the specified field is a table or structure and was defined with a reference to a meta data object.
 JCoRecordMetaData getRecordMetaData(java.lang.String fieldName)
          Returns the meta data object for the field, if the specified field is a table or structure and was defined with a reference to a meta data object.
 java.lang.String getRecordTypeName(int index)
          Returns the table/structure name of the data field or null if no table name is available
 java.lang.String getRecordTypeName(java.lang.String fieldName)
          Returns the table/structure or data element name of the data field or null if no table name or data element name is available
 int getType(int index)
          Returns the JCo data type of the data field at the specified index.
 int getType(java.lang.String fieldName)
          Returns the JCo data type of the data for the field with the specified name
 java.lang.String getTypeAsString(int index)
          Returns a String representation of the JCo data type of the data field at the specified index
 java.lang.String getTypeAsString(java.lang.String fieldName)
          Returns a String representation of the JCo data type of the data field for the field with the specified name
 int getUnicodeByteLength(int index)
          Returns the length of the data field at the specified index for Unicode layout
 int getUnicodeByteLength(java.lang.String fieldName)
          Returns the length of the field with the specified name for Unicode layout
 boolean hasField(java.lang.String fieldName)
          Checks whether a named field exists
 int indexOf(java.lang.String fieldName)
          Returns the index of the named field info
 boolean isAbapObject(int index)
          Checks whether the field with the specified index is an ABAP object.
 boolean isAbapObject(java.lang.String fieldName)
          Checks whether the field with the specified name is an ABAP object.
 boolean isLocked()
          Returns whether this meta data instance is locked.
 boolean isNestedType1Structure(int index)
          Checks whether the field at the specified index is a nested TYPE1 structure, which is a structure with a fixed length in memory, but with a nested layout
 boolean isNestedType1Structure(java.lang.String fieldName)
          Checks whether the field with the specified name is a nested TYPE1 structure, which is a structure with a fixed length in memory, but with a nested layout
 boolean isStructure(int index)
          Checks whether the field at the specified index is a structure parameter
 boolean isStructure(java.lang.String fieldName)
          Checks whether the field with the specified name is a structure parameter
 boolean isTable(int index)
          Checks whether the field is a table parameter
 boolean isTable(java.lang.String fieldName)
          Checks whether the field with the specified name is a table parameter
 void lock()
          Locks the meta data to prevent further changes.
 void setName(java.lang.String name)
          Sets the name of the table/structure this meta data describes.
 

Field Detail

UNINITIALIZED

static final int UNINITIALIZED
The field info was not initialized yet

See Also:
Constant Field Values

TYPE_INVALID

static final int TYPE_INVALID
The field info does not contain a valid JCO type

See Also:
Constant Field Values

TYPE_CHAR

static final int TYPE_CHAR
1-byte or multi-byte character.Fixed sized, blank padded. Corresponds to ABAP type 'C'.

See Also:
Constant Field Values

TYPE_DATE

static final int TYPE_DATE
Date ( YYYYYMMDD ). Corresponds to ABAP type 'D'.

See Also:
Constant Field Values

TYPE_BCD

static final int TYPE_BCD
Packed BCD number, any length between 1 and 16 bytes. Corresponds to ABAP type 'P'.

See Also:
Constant Field Values

TYPE_TIME

static final int TYPE_TIME
Time (HHMMSS). Corresponds to ABAP type 'T'

See Also:
Constant Field Values

TYPE_BYTE

static final int TYPE_BYTE
Raw data, binary, fixed length, zero padded. Corresponds to ABAP type 'X'.

See Also:
Constant Field Values

TYPE_ITAB

static final int TYPE_ITAB
Internal table. (Deprecated! Not used)

See Also:
Constant Field Values

TYPE_NUM

static final int TYPE_NUM
Digits, fixed size,'0' padded. Corresponds to ABAP type 'N'.

See Also:
Constant Field Values

TYPE_FLOAT

static final int TYPE_FLOAT
Floating point,double precision. Corresponds to ABAP type 'F'.

See Also:
Constant Field Values

TYPE_INT

static final int TYPE_INT
4-byte integer . Corresponds to ABAP type 'I'.

See Also:
Constant Field Values

TYPE_INT2

static final int TYPE_INT2
2-byte integer . Corresponds to ABAP type 's'.

See Also:
Constant Field Values

TYPE_INT1

static final int TYPE_INT1
1-byte integer . Corresponds to ABAP type 'b'.

See Also:
Constant Field Values

TYPE_STRUCTURE

static final int TYPE_STRUCTURE
A heterogeneous structure. Corresponds to ABAP type 'u' and 'v'.

See Also:
Constant Field Values

TYPE_DECF16

static final int TYPE_DECF16
decimal floating point. Corresponds to ABAP type 'a'.

See Also:
Constant Field Values

TYPE_DECF34

static final int TYPE_DECF34
decimal floating point. Corresponds to ABAP type 'e'.

See Also:
Constant Field Values

TYPE_STRING

static final int TYPE_STRING
UTF8 encoded string of variable length. Corresponds to ABAP type 'g'.

See Also:
Constant Field Values

TYPE_XSTRING

static final int TYPE_XSTRING
Byte array of variable length. Corresponds to ABAP type 'y'.

See Also:
Constant Field Values

TYPE_TABLE

static final int TYPE_TABLE
A JCoTable. Corresponds to ABAP type 'h'.

See Also:
Constant Field Values

TYPE_EXCEPTION

static final int TYPE_EXCEPTION
ABAP exception.

See Also:
Constant Field Values

TYPE_ABAPOBJECT

static final int TYPE_ABAPOBJECT
ABAP object

See Also:
Constant Field Values

TYPE_BOX

static final int TYPE_BOX
ABAP boxed component

See Also:
Constant Field Values

TYPE_GENERIC_BOX

static final int TYPE_GENERIC_BOX
ABAP boxed generic component

See Also:
Constant Field Values
Method Detail

indexOf

int indexOf(java.lang.String fieldName)
Returns the index of the named field info

Parameters:
fieldName - the name of the field for which the index is being returned
Returns:
the index of the named field in the fields list
Throws:
JCoRuntimeException - with group JCO_ERROR_FIELD_NOT_FOUND if a field with this name does not exist

hasField

boolean hasField(java.lang.String fieldName)
Checks whether a named field exists

Parameters:
fieldName - the name of the field to check for existence
Returns:
true if the field with the specified name exist, false otherwise

getName

java.lang.String getName()
Returns the name of the table/structure this meta-data describes

Returns:
The name of the underlying table/structure

setName

void setName(java.lang.String name)
Sets the name of the table/structure this meta data describes. This is in particular useful, when creating a similar instance from an existing metadata instance.

Parameters:
name - the name for the record meta data
Since:
JCo 3.0.7

getFieldCount

int getFieldCount()
Returns the number of entries (fields)

Returns:
the number of entries

getName

java.lang.String getName(int index)
Returns the field name of the data field at the specified index The field name is used for identfying a field in a structure or table row.

Parameters:
index - the index of the field
Returns:
The field name of the data field described by this meta information object.

getRecordTypeName

java.lang.String getRecordTypeName(int index)
Returns the table/structure name of the data field or null if no table name is available

Parameters:
index - the index of the field
Returns:
The table/structure name of the data field described by this meta information object.

getRecordTypeName

java.lang.String getRecordTypeName(java.lang.String fieldName)
Returns the table/structure or data element name of the data field or null if no table name or data element name is available

Parameters:
fieldName - the name of the field
Returns:
The table/structure name of the data field described by this meta information object.
Throws:
JCoRuntimeException - with group JCO_ERROR_FIELD_NOT_FOUND if a field with this name does not exist

getRecordMetaData

JCoRecordMetaData getRecordMetaData(int index)
Returns the meta data object for the field, if the specified field is a table or structure and was defined with a reference to a meta data object.
The method will return null if no meta data are available. This is the case if the definition was done with type name or the meta data object was not obtained from repository. Note: to get the proper meta data object for the field it is possible to call
                JCoRepository repository;
      ...
        repository.getRecordMetaData(metaDataInstance.getRecordTypeName(index));
 

Parameters:
index - the index of the field
Returns:
The table/structure metadata of the data field or null
See Also:
getRecordTypeName(int)

getRecordMetaData

JCoRecordMetaData getRecordMetaData(java.lang.String fieldName)
Returns the meta data object for the field, if the specified field is a table or structure and was defined with a reference to a meta data object.
The method will return null if no meta data are available. This is the case if the definition was done with type name or the meta data object was not obtained from repository. Note: to get the proper meta data object for the field it is possible to call
                JCoRepository repository;
      ...
        repository.getRecordMetaData(metaDataInstance.getRecordTypeName(index));
 

Parameters:
fieldName - the name of the field
Returns:
The table/structure metadata of the data field or null
Throws:
JCoRuntimeException - with group JCO_ERROR_FIELD_NOT_FOUND if a field with this name does not exist
See Also:
getRecordTypeName(String)

getExtendedFieldMetaData

JCoExtendedFieldMetaData getExtendedFieldMetaData(int index)
Returns the extended field metadata object at the specified index

Parameters:
index - the index of the field
Returns:
the extended field metadata object or null if not available

getExtendedFieldMetaData

JCoExtendedFieldMetaData getExtendedFieldMetaData(java.lang.String fieldName)
Returns the extended metadata object for the field with the specified name

Parameters:
fieldName - the name of the field
Returns:
the extended field metadata object or null if not available
Throws:
JCoRuntimeException - with group JCO_ERROR_FIELD_NOT_FOUND if a field with this name does not exist

getUnicodeByteLength

int getUnicodeByteLength(int index)
Returns the length of the data field at the specified index for Unicode layout

Parameters:
index - the index of the field
Returns:
data field length for Unicode layout

getUnicodeByteLength

int getUnicodeByteLength(java.lang.String fieldName)
Returns the length of the field with the specified name for Unicode layout

Parameters:
fieldName - the name of the field
Returns:
data field length for Unicode layout
Throws:
JCoRuntimeException - with group JCO_ERROR_FIELD_NOT_FOUND if a field with this name does not exist

getByteLength

int getByteLength(int index)
Returns the byte length of the data field for non-Unicode layout at the specified index

Parameters:
index - the index of the field
Returns:
data field length for non-Unicode layout

getByteLength

int getByteLength(java.lang.String fieldName)
Returns the byte length of the field for non-Unicode layout with the specified name

Parameters:
fieldName - the name of the field
Returns:
data field length for non-Unicode layout
Throws:
JCoRuntimeException - with group JCO_ERROR_FIELD_NOT_FOUND if a field with this name does not exist

getLength

int getLength(int index)
Returns the max length of the data field at the specified index. Note: in case of deep metadata the length for tables and structures can only be requested by their metadata directly.

Parameters:
index - the index of the field
Returns:
data field length

getLength

int getLength(java.lang.String fieldName)
Returns the max length of the data field at the specified index.

Parameters:
fieldName - the name of the field
Returns:
data field length
Throws:
JCoRuntimeException - with group JCO_ERROR_FIELD_NOT_FOUND if a field with this name does not exist

getType

int getType(int index)
Returns the JCo data type of the data field at the specified index.

Parameters:
index - the index of the field
Returns:
the JCo data type

getType

int getType(java.lang.String fieldName)
Returns the JCo data type of the data for the field with the specified name

Parameters:
fieldName - the name of the field
Returns:
the JCo data type
Throws:
JCoRuntimeException - with group JCO_ERROR_FIELD_NOT_FOUND if a field with this name does not exist

getTypeAsString

java.lang.String getTypeAsString(int index)
Returns a String representation of the JCo data type of the data field at the specified index

Parameters:
index - the index of the field
Returns:
a String description of the JCo data type

getTypeAsString

java.lang.String getTypeAsString(java.lang.String fieldName)
Returns a String representation of the JCo data type of the data field for the field with the specified name

Parameters:
fieldName - the name of the field
Returns:
a String description of the JCo data type
Throws:
JCoRuntimeException - with group JCO_ERROR_FIELD_NOT_FOUND if a field with this name does not exist

getClassNameOfField

java.lang.String getClassNameOfField(java.lang.String fieldName)
Returns the fully-qualified name of the Java class whose instances are manufactured if the methods getValue(int index) or getValue(String fieldName) are called to retrieve a calue from the field.

Parameters:
fieldName - the name of the field
Returns:
the fully-qualified class name of the value object
Throws:
JCoRuntimeException - with group JCO_ERROR_FIELD_NOT_FOUND if a field with this name does not exist

getClassNameOfField

java.lang.String getClassNameOfField(int index)
Returns the fully-qualified name of the Java class whose instances are manufactured if the methods getValue(int index) or getValue(String fieldName) are called to retrieve a calue from the field.

Parameters:
index - the field index
Returns:
the fully-qualified class name of the value object

getDecimals

int getDecimals(int index)
Returns the number of decimals of the data field at the specified index Decimals are only necessary for the JCO data types TYPE_BCD and TYPE_FLOAT, respectively.

Parameters:
index - the index of the field
Returns:
data field number of decimals.

getDecimals

int getDecimals(java.lang.String fieldName)
Returns the number of decimals for the field with the specified name Decimals are only necessary for the JCO data types TYPE_BCD and TYPE_FLOAT, respectively.

Parameters:
fieldName - the name of the field
Returns:
data field number of decimals.
Throws:
JCoRuntimeException - with group JCO_ERROR_FIELD_NOT_FOUND if a field with this name does not exist

getDescription

java.lang.String getDescription(int index)
Returns the descriptional text of the data field at the specified index

Parameters:
index - the index of the field
Returns:
A descriptional text of the data field

getDescription

java.lang.String getDescription(java.lang.String fieldName)
Returns the descriptional text for the field with the specified name

Parameters:
fieldName - the name of the field
Returns:
A descriptional text of the data field
Throws:
JCoRuntimeException - with group JCO_ERROR_FIELD_NOT_FOUND if a field with this name does not exist

isStructure

boolean isStructure(int index)
Checks whether the field at the specified index is a structure parameter

Parameters:
index - the index of the field
Returns:
true if the specified field is a structure parameter, false otherwise

isStructure

boolean isStructure(java.lang.String fieldName)
Checks whether the field with the specified name is a structure parameter

Parameters:
fieldName - the name of the field
Returns:
true if the specified field is a structure parameter, false otherwise
Throws:
JCoRuntimeException - with group JCO_ERROR_FIELD_NOT_FOUND if a field with this name does not exist

isNestedType1Structure

boolean isNestedType1Structure(int index)
Checks whether the field at the specified index is a nested TYPE1 structure, which is a structure with a fixed length in memory, but with a nested layout

Parameters:
index - the index of the field
Returns:
true if the specified field is a nested TYPE1 structure, false otherwise

isNestedType1Structure

boolean isNestedType1Structure(java.lang.String fieldName)
Checks whether the field with the specified name is a nested TYPE1 structure, which is a structure with a fixed length in memory, but with a nested layout

Parameters:
fieldName - the name of the field
Returns:
true if the specified field is a nested TYPE1 structure, false otherwise
Throws:
JCoRuntimeException - with group JCO_ERROR_FIELD_NOT_FOUND if a field with this name does not exist

isTable

boolean isTable(int index)
Checks whether the field is a table parameter

Parameters:
index - the index of the field
Returns:
true if the specified field is a table parameter, false otherwise

isTable

boolean isTable(java.lang.String fieldName)
Checks whether the field with the specified name is a table parameter

Parameters:
fieldName - the name of the field
Returns:
true if the specified field is a table parameter, false otherwise
Throws:
JCoRuntimeException - with group JCO_ERROR_FIELD_NOT_FOUND if a field with this name does not exist

isAbapObject

boolean isAbapObject(java.lang.String fieldName)
Checks whether the field with the specified name is an ABAP object.

Parameters:
fieldName - the name of the field
Returns:
true if the specified field is an ABAP object, false otherwise

isAbapObject

boolean isAbapObject(int index)
Checks whether the field with the specified index is an ABAP object.

Parameters:
index - the index of the field
Returns:
true if the specified field is an ABAP object, false otherwise

lock

void lock()
Locks the meta data to prevent further changes.
Any method that would change the metadata instance will throw an UnsupportedOperationException from then on.

See Also:
JCoListMetaData.add(String, int, int, int, int, String, String, int, Object, String, JCoExtendedFieldMetaData), JCoRecordMetaData.add(String, int, int, int, int, int, int, String, Object, JCoExtendedFieldMetaData)

isLocked

boolean isLocked()
Returns whether this meta data instance is locked.

Returns:
true if the meta data instance is locked, false otherwise.
See Also:
lock()


Copyright © 2008-2014 SAP AG. All Rights Reserved.