weblogic.wtc.jatmi
Class TypedFML
java.lang.Object
|
+--weblogic.wtc.jatmi.StandardTypes
|
+--weblogic.wtc.jatmi.TypedFML
- public final class TypedFML
- extends StandardTypes
- implements TypedBuffer, java.io.Serializable, FML
This implements FML in JAVA as a TypedBuffer. Fieldids are generated with
the tool mkfldclass, and then put into the buffer with the appropriate
FML methods. Note that in this implementation Fieldids must be combined
into a field key, which is a combination of the Fldid and the occurance
number. Any number of field tables can be loaded into any FML object
in order to do FldId to String conversions and String to FldId conversions.
- Author:
- Copyright © 2004 BEA Systems, Inc. All Rights Reserved.
- See Also:
FmlKey
,
FldTbl
,
TypedBuffer
,
FML
,
mkfldclass
, Serialized Form
Constructor Summary
|
TypedFML()
Default constructor. |
TypedFML(FldTbl table)
Constructor which provides a single FldTbl object for mapping FldIds
to Strings and Strings to FldIds
Note that it is not necesary to
provide FldTbls unless String/FldId mappings are required. |
TypedFML(FldTbl[] tables)
Constructor which provides a list FldTbl objects for mapping FldIds
to Strings and Strings to FldIds. |
TypedFML(TypedFML copyFrom)
This constructor copies the fields from the input FML buffer. |
Method Summary
|
void |
_tmpostrecv(java.io.DataInputStream decoder,
int recv_size)
XDR decodes the FML buffer |
void |
_tmpostrecv65(java.io.DataInputStream decoder)
XDR decodes the FML buffer |
void |
_tmpresend(java.io.DataOutputStream encoder)
This function presends and encodes the given TypedBuffer
object. |
void |
Fadd(int fldid,
java.lang.Object value)
Adds the given object. |
void |
Fchg(FmlKey key,
java.lang.Object value)
Adds the given object, whose field id is contained in key to the
fielded buffer. |
void |
Fchg(int fldid,
int occurance,
java.lang.Object value)
Adds the given object. |
void |
Fdel(FmlKey key)
Delete given key from fielded buffer. |
void |
Fdel(int fldid,
int occurance)
Delete given element from fielded buffer. |
java.lang.Object |
Fget(FmlKey key)
Retrieves a copy of the object stored in the FML buffer of the
given field id and occurance number. |
java.lang.Object |
Fget(int fldid,
int occurance)
Retrieves a copy of the object stored in the FML buffer of the
given field id and occurance number. |
java.util.Iterator |
Fiterator()
Returns an iterator for the start of the fielded FML buffer. |
int |
Fldid(java.lang.String name)
Returns the field id corresponding to the given name. |
int |
Fldno(int fldid)
Given a fieldid, this returns the field number |
int |
Fldtype(int fldid)
Given a fieldid, this returns the field type |
java.lang.String |
Fname(int fldid)
Returns the string that matches the given fieldid. |
int |
Foccur(int fldid)
Returns the number of occurences of the field specified by fldid |
int |
Fused()
Returns the amount of space that this FML buffer will take when present |
FldTbl[] |
getFieldTables()
gets the current list of FldTbls that are being used by this
TypedFML object to do FldId/String mappings. |
void |
setFieldTables(FldTbl[] tables)
This function sets the list of FldTbl objects that can be used for
FldId/String mappings |
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
TypedFML
public TypedFML()
- Default constructor. Initializes an empty FML buffer.
TypedFML
public TypedFML(FldTbl[] tables)
- Constructor which provides a list FldTbl objects for mapping FldIds
to Strings and Strings to FldIds. Note that it is not necesary to
provide FldTbls unless String/FldId mappings are required.
- Parameters:
tables
- A list of FldTbl objects that can be used to map FldIds
and strings
TypedFML
public TypedFML(FldTbl table)
- Constructor which provides a single FldTbl object for mapping FldIds
to Strings and Strings to FldIds
Note that it is not necesary to
provide FldTbls unless String/FldId mappings are required.
- Parameters:
table
- A FldTbl object that can be used to map FldIds
and strings
TypedFML
public TypedFML(TypedFML copyFrom)
- This constructor copies the fields from the input FML buffer.
- Parameters:
copyFrom
- The FML buffer to copy data from
setFieldTables
public void setFieldTables(FldTbl[] tables)
- This function sets the list of FldTbl objects that can be used for
FldId/String mappings
- Specified by:
- setFieldTables in interface FML
- Parameters:
tables
- The list of tables to use for FldId/String mappings- See Also:
FldTbl
getFieldTables
public FldTbl[] getFieldTables()
- gets the current list of FldTbls that are being used by this
TypedFML object to do FldId/String mappings.
- Specified by:
- getFieldTables in interface FML
- Returns:
- The list of FldTbl objects used for FldId/String mappings
Fldno
public int Fldno(int fldid)
- Given a fieldid, this returns the field number
- Specified by:
- Fldno in interface FML
- Parameters:
fldid
- The field id from which to extract the field number- Returns:
- The field number associated with this feild id
Fldtype
public int Fldtype(int fldid)
- Given a fieldid, this returns the field type
- Specified by:
- Fldtype in interface FML
- Parameters:
fldid
- The field id from which to extract the field type- Returns:
- The following field types:
- FLD_SHORT
- FLD_LONG
- FLD_CHAR
- FLD_FLOAT
- FLD_DOUBLE
- FLD_STRING
- FLD_CARRAY
- FLD_INT
- FLD_DECIMAL
- FLD_PTR
- FLD_FML32
- FLD_VIEW32
Fchg
public void Fchg(FmlKey key,
java.lang.Object value)
throws Ferror
- Adds the given object, whose field id is contained in key to the
fielded buffer. key also contains the occurance number of the
field to add to the buffer. If an entry of that field id and
occurance exists in the buffer, this object will take its place. If
there are no occurance numbers prior to this occurance number and field id
then the occurances prior to this one will be filled in with null
entries.
The following table gives the Field type and the associated object
expected by FML
- FLD_SHORT - Short
- FLD_LONG - Integer
- FLD_CHAR - Character
- FLD_FLOAT - Float
- FLD_DOUBLE - Double
- FLD_STRING - String
- FLD_CARRAY - byte[]
- FLD_INT - Not yet supported
- FLD_DECIMAL - Not yet supported
- FLD_PTR - TypedBuffer, not valid for FML type
- FLD_FML32 - TypedFML32, not valid for FML type
- FLD_VIEW32 - not valid for FML type
- Specified by:
- Fchg in interface FML
- Parameters:
key
- The fieldid and occurance to add to the buffervalue
- The element to add to the buffer. Note that this object
must match the type of object expected by the field type, or an
invalid cast exception will be thrown- Throws:
- Ferror - usually if space is low
- See Also:
FmlKey
Fchg
public void Fchg(int fldid,
int occurance,
java.lang.Object value)
throws Ferror
- Adds the given object. This version of Fchg takes the fieldid and
occurance number, and may be more conveinient than the other version of
Fchg which requires an FmlKey to be constructed by the caller.
If an entry of that field id and
occurance exists in the buffer, this object will take its place. If
there are no occurance numbers prior to this occurance number and field id
then the occurances prior to this one will be filled in with null
entries.
The following table gives the Field type and the associated object
expected by FML
- FLD_SHORT - Short
- FLD_LONG - Integer
- FLD_CHAR - Character
- FLD_FLOAT - Float
- FLD_DOUBLE - Double
- FLD_STRING - String
- FLD_CARRAY - byte[]
- FLD_INT - Not yet supported
- FLD_DECIMAL - Not yet supported
- FLD_PTR - TypedBuffer, not valid for FML type
- FLD_FML32 - TypedFML32, not valid for FML type
- FLD_VIEW32 - not valid for FML type
- Specified by:
- Fchg in interface FML
- Parameters:
fldid
- The fieldid to add to this bufferoccurance
- The occurance number of the field to addvalue
- The element to add to the buffer. Note that this object
must match the type of object expected by the field type, or an
invalid cast exception will be thrown- Throws:
- Ferror - usually if space is low
- See Also:
FmlKey
Fadd
public void Fadd(int fldid,
java.lang.Object value)
throws Ferror
- Adds the given object.
The following table gives the Field type and the associated object
expected by FML
- FLD_SHORT - Short
- FLD_LONG - Integer
- FLD_CHAR - Character
- FLD_FLOAT - Float
- FLD_DOUBLE - Double
- FLD_STRING - String
- FLD_CARRAY - byte[]
- FLD_INT - Not yet supported
- FLD_DECIMAL - Not yet supported
- Parameters:
fldid
- The fieldid to add to this buffervalue
- The element to add to the buffer. Note that this object
must match the type of object expected by the field type, or an
invalid cast exception will be thrown- Throws:
- Ferror - usually if space is low
- See Also:
FmlKey
Fget
public java.lang.Object Fget(FmlKey key)
throws Ferror
- Retrieves a copy of the object stored in the FML buffer of the
given field id and occurance number.
Notice that changing the object returned will NOT change the
value in the FML buffer. The value returned is a COPY
of the value in the FML buffer.
The following table gives the Field type and the associated object
returned by FML
- FLD_SHORT - Short
- FLD_LONG - Integer
- FLD_CHAR - Character
- FLD_FLOAT - Float
- FLD_DOUBLE - Double
- FLD_STRING - String
- FLD_CARRAY - byte[]
- FLD_INT - Not yet supported
- FLD_DECIMAL - Not yet supported
- FLD_PTR - TypedBuffer, not valid for FML type
- FLD_FML32 - TypedFML32, not valid for FML type
- FLD_VIEW32 - Not valid for FML type
- Specified by:
- Fget in interface FML
- Parameters:
key
- the field id and occurance number of the element to retrieve- Returns:
- the field object stored at that occurance number
- Throws:
- Ferror - if the object is not found in the buffer among other reasons
Fget
public java.lang.Object Fget(int fldid,
int occurance)
throws Ferror
- Retrieves a copy of the object stored in the FML buffer of the
given field id and occurance number. This version of the API takes the
fieldid and occurance number rather than the FmlKey
Notice that changing the object returned will NOT change the
value in the FML buffer. The value returned is a COPY
of the value in the FML buffer.
The following table gives the Field type and the associated object
returned by FML
- FLD_SHORT - Short
- FLD_LONG - Integer
- FLD_CHAR - Character
- FLD_FLOAT - Float
- FLD_DOUBLE - Double
- FLD_STRING - String
- FLD_CARRAY - byte[]
- FLD_INT - Not yet supported
- FLD_DECIMAL - Not yet supported
- FLD_PTR - TypedBuffer, not valid for FML
- FLD_FML32 - TypedFML32, not valid for FML
- FLD_VIEW32 - Not valid for FML
- Specified by:
- Fget in interface FML
- Parameters:
fldid
- The field id of the element to retrieveoccurance
- The occurance number of the element to retrieve- Returns:
- the field object stored at that occurance number
- Throws:
- Ferror - if the object is not found in the buffer among other reasons
Fiterator
public java.util.Iterator Fiterator()
- Returns an iterator for the start of the fielded FML buffer.
An example usage may be as follows.
fmliter = fmlobj.Fiterator();
while(fmliter.hasNext()) {
entry = (Map.Entry)fmliter.next();
fmlkey = (FmlKey) entry.getKey();
switch(Fldtype(fmlkey.get_fldid())) {
case FLD_SHORT:
value_short = (Short) entry.getValue();
}
}
- Specified by:
- Fiterator in interface FML
- Returns:
- the Iterator for the fielded FML buffer
Foccur
public int Foccur(int fldid)
- Returns the number of occurences of the field specified by fldid
- Specified by:
- Foccur in interface FML
- Parameters:
fldid
- the field id to look for in the fielded FML buffer- Returns:
- the number of occurences of a fldid in the fielded FML buffer
Fdel
public void Fdel(FmlKey key)
throws Ferror
- Delete given key from fielded buffer. The object with the given
field id and the given occurance will be removed from the buffer
- Specified by:
- Fdel in interface FML
- Parameters:
key
- The field id and occurance of the element to be removed- Throws:
- Ferror - if the element is not in the buffer among other reasons
Fdel
public void Fdel(int fldid,
int occurance)
throws Ferror
- Delete given element from fielded buffer. The object with the given
field id and the given occurance will be removed from the buffer. This
differs from the other version in that it takes the field id and occurance
number rather than a constructed key
- Specified by:
- Fdel in interface FML
- Parameters:
fldid
- The field id of the element to be removedoccurance
- The occurance of the element to be removed- Throws:
- Ferror - if the element is not in the buffer among other reasons
Fname
public java.lang.String Fname(int fldid)
throws Ferror
- Returns the string that matches the given fieldid. For this mapping a list
of FldTbl objects should be loaded into this FML object.
- Specified by:
- Fname in interface FML
- Parameters:
fldid
- The field id to map to a string- Returns:
- The name of the fiels
- Throws:
- Ferror - if the name cannot be found
Fldid
public int Fldid(java.lang.String name)
throws Ferror
- Returns the field id corresponding to the given name. A table
of FldTbl objects should be loaded into this FML object in order to
map the name to a field id.
- Specified by:
- Fldid in interface FML
- Parameters:
name
- the name of the field we are trying to find- Returns:
- The
integer
field id - Throws:
- Ferror - if the field id cannot be found
Fused
public int Fused()
- Returns the amount of space that this FML buffer will take when present
- Specified by:
- Fused in interface FML
- Parameters:
The
- size of this buffer when present
_tmpresend
public void _tmpresend(java.io.DataOutputStream encoder)
throws TPException,
java.io.IOException
- This function presends and encodes the given TypedBuffer
object. It is equivalent to the combination of _tmpresend
and _tmencdec functions from the buffer(3i) TUXEDO manual
page.
XDR encodes the FML buffer
- Specified by:
- _tmpresend in interface TypedBuffer
- Parameters:
encoder
- The output stream to encode this type to. Should
not be padded.- Throws:
- TPException -
- TPEINVAL - If there was some problem with the state of the
TypedBuffer.
- Any other errno is considered a fatal error
- java.io.IOException - If there was an error writing to the
DataOutputStream
_tmpostrecv
public void _tmpostrecv(java.io.DataInputStream decoder,
int recv_size)
throws TPException,
java.io.IOException
- XDR decodes the FML buffer
- Specified by:
- _tmpostrecv in interface TypedBuffer
- Parameters:
decoder
- A stream that starts with the encoded data
for this buffer type. Only recv_size bytes should
be read from the stream (though at the time this function
is called all bytes necessary to decode this type should
be available)recv_size
- The total size of encoded data from the
start position (note that encoded may be larger than
the actual recieved size)- Throws:
- TPException - TPEINVAL if this stream could not be
decoded for any reason
_tmpostrecv65
public void _tmpostrecv65(java.io.DataInputStream decoder)
throws java.io.IOException,
TPException
- XDR decodes the FML buffer
- Parameters:
decoder
- The object to use to decode this buffer- Throws:
- TPException - TPEINVAL if this stream could not be
decoded for any reason
- java.io.IOException - if there was an IO Error reading the FML buffer