Package org.firebirdsql.gds.ng.fields
Class FieldDescriptor
- java.lang.Object
-
- org.firebirdsql.gds.ng.fields.FieldDescriptor
-
public final class FieldDescriptor extends java.lang.Object
The classFieldDescriptor
contains the column metadata of the XSQLVAR server data structure used to describe one column for input or output.FieldDescriptor is an immutable type, the value of a field is maintained separately in
RowValue
.- Version:
- 3.0
- Author:
- Mark Rotteveel
-
-
Constructor Summary
Constructors Constructor Description FieldDescriptor(int position, DatatypeCoder datatypeCoder, int type, int subType, int scale, int length, java.lang.String fieldName, java.lang.String tableAlias, java.lang.String originalName, java.lang.String originalTableName, java.lang.String ownerName)
Constructor for metadata FieldDescriptor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(java.lang.Object obj)
int
getCharacterLength()
The length in characters of this field.DatatypeCoder
getDatatypeCoder()
IEncodingFactory
getEncodingFactory()
java.lang.String
getFieldName()
int
getLength()
java.lang.String
getOriginalName()
java.lang.String
getOriginalTableName()
java.lang.String
getOwnerName()
int
getPosition()
int
getScale()
int
getSubType()
java.lang.String
getTableAlias()
int
getType()
int
hashCode()
boolean
isDbKey()
Determines if this is a db-key (RDB$DB_KEY) of a table.boolean
isFbType(int fbType)
Check if the type of this field is the specified Firebird data type.boolean
isNullable()
boolean
isVarying()
java.lang.String
toString()
boolean
typeEquals(FieldDescriptor other)
Limited equals that only checks if the data type in the provided field descriptor is the same as this descriptor.
-
-
-
Constructor Detail
-
FieldDescriptor
public FieldDescriptor(int position, DatatypeCoder datatypeCoder, int type, int subType, int scale, int length, java.lang.String fieldName, java.lang.String tableAlias, java.lang.String originalName, java.lang.String originalTableName, java.lang.String ownerName)
Constructor for metadata FieldDescriptor.- Parameters:
position
- Position of this field (0-based), or-1
if position is not known (eg for test code)datatypeCoder
- Instance of DatatypeCoder to use when decoding column data (note that another instance may be derived internally, which then will be returned bygetDatatypeCoder()
)type
- Column SQL typesubType
- Column subtypescale
- Column scalelength
- Column defined lengthfieldName
- Column alias nametableAlias
- Column table aliasoriginalName
- Column original nameoriginalTableName
- Column original tableownerName
- Owner of the column/table
-
-
Method Detail
-
getPosition
public int getPosition()
- Returns:
- The 0-based position of this field (or
-1
)
-
getDatatypeCoder
public DatatypeCoder getDatatypeCoder()
- Returns:
- The
DatatypeCoder
to use when decoding field data.
-
getEncodingFactory
public IEncodingFactory getEncodingFactory()
- Returns:
- The
IEncodingFactory
for the associated connection.
-
getType
public int getType()
- Returns:
- The Firebird type of this field
-
getSubType
public int getSubType()
- Returns:
- The Firebird subtype of this field
-
getScale
public int getScale()
- Returns:
- The scale of this field
-
getLength
public int getLength()
- Returns:
- The declared (maximum) length of this field
-
getFieldName
public java.lang.String getFieldName()
- Returns:
- The (aliased) field name
-
getTableAlias
public java.lang.String getTableAlias()
- Returns:
- The (aliased) table name
-
getOriginalName
public java.lang.String getOriginalName()
- Returns:
- The original name of the field (eg the column name in the table)
-
getOriginalTableName
public java.lang.String getOriginalTableName()
- Returns:
- The original table name
-
getOwnerName
public java.lang.String getOwnerName()
- Returns:
- The owner
-
isVarying
public boolean isVarying()
- Returns:
true
if the type is variable length (ieISCConstants.SQL_VARYING
).
-
isFbType
public boolean isFbType(int fbType)
Check if the type of this field is the specified Firebird data type.This method assumes the not-nullable data type is passed, on checking the nullable bit of
getType()
is set to0
.- Parameters:
fbType
- One of theSQL_
data type identifier values- Returns:
true
if the type is the same as the type of this field
-
isNullable
public boolean isNullable()
- Returns:
true
if this field is nullable.
-
isDbKey
public boolean isDbKey()
Determines if this is a db-key (RDB$DB_KEY) of a table.NOTE: Technically it could also be a normal
CHAR CHARACTER SET OCTETS
column calledDB_KEY
.- Returns:
true
if the field is a RDB$DB_KEY- Since:
- 4.0
-
getCharacterLength
public int getCharacterLength()
The length in characters of this field.This takes into account the max bytes per character of the character set.
- Returns:
- Character length, or
-1
for non-character types (including blobs)
-
typeEquals
public boolean typeEquals(FieldDescriptor other)
Limited equals that only checks if the data type in the provided field descriptor is the same as this descriptor.The fields checked are:
- type
- subType
- scale
- length
- Parameters:
other
- Field descriptor to check- Returns:
true
whenother
is not null and has the same type definition as this instance,false
otherwise.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
-