Package db
Class Field
- java.lang.Object
-
- db.Field
-
- All Implemented Interfaces:
java.lang.Comparable<Field>
- Direct Known Subclasses:
BinaryField,BooleanField,ByteField,IntField,LongField,ShortField,StringField
public abstract class Field extends java.lang.Object implements java.lang.Comparable<Field>
Fieldis an abstract data wrapper for use with Records. Note that when comparing two Field instances both must be of the same class.Stored Schema Field Type Encoding:
8-bit Legacy Field Type Encoding (I....FFF)
Supported encodings: 0x00..0x06 and 0x80..0x86, where:FFF - indexed field type (0..6) I - index field indicator (only long primary keys were supported)8-bit Field Type Encoding (PPPPFFFF)
(Reserved for future field extensions: 0x88 and 0xf0..0xff)0xff - seewhere:Schema.FIELD_EXTENSION_INDICATORFFFF - normal/indexed field type PPPP - indexed table primary key type (1000b: LegacyIndexField)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classField.UnsupportedFieldException
-
Field Summary
Fields Modifier and Type Field Description static Field[]EMPTY_ARRAY
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description static booleancanIndex(Field field)Determine if a specified field instance may be indexedabstract FieldcopyField()Create new instance of this field with the same value.abstract booleanequals(java.lang.Object obj)abstract byte[]getBinaryData()Get data as a byte array.booleangetBooleanValue()Get field as a boolean value.bytegetByteValue()Get field as a byte value.intgetIntValue()Get field as an integer value.longgetLongValue()Get field as a long value.shortgetShortValue()Get field as a short value.java.lang.StringgetString()Get field as a String value.abstract java.lang.StringgetValueAsString()Get field value as a formatted stringabstract inthashCode()booleanisSameType(Field field)Determine if specified field is same type as this fieldbooleanisVariableLength()abstract FieldnewField()Create new instance of this field type.abstract voidsetBinaryData(byte[] bytes)Set data from binary byte array.voidsetBooleanValue(boolean value)Set field's boolean value.voidsetByteValue(byte value)Set field's byte value.voidsetIntValue(int value)Set field's integer value.voidsetLongValue(long value)Set field's long value.voidsetShortValue(short value)Set field's short value.voidsetString(java.lang.String str)Set field's String value.
-
-
-
Field Detail
-
EMPTY_ARRAY
public static final Field[] EMPTY_ARRAY
-
-
Method Detail
-
getLongValue
public long getLongValue()
Get field as a long value. All fixed-length field objects must implement this method- Returns:
- long value
- Throws:
IllegalFieldAccessException- thrown if method is not supported by specific Field instance.
-
setLongValue
public void setLongValue(long value)
Set field's long value. All fixed-length field objects must implement this method- Parameters:
value- long value- Throws:
IllegalFieldAccessException- thrown if method is not supported by specific Field instance.
-
getIntValue
public int getIntValue()
Get field as an integer value.- Returns:
- integer value
- Throws:
IllegalFieldAccessException- thrown if method is not supported by specific Field instance.
-
setIntValue
public void setIntValue(int value)
Set field's integer value.- Parameters:
value- integer value- Throws:
IllegalFieldAccessException- thrown if method is not supported by specific Field instance.
-
getShortValue
public short getShortValue()
Get field as a short value.- Returns:
- short value
- Throws:
IllegalFieldAccessException- thrown if method is not supported by specific Field instance.
-
setShortValue
public void setShortValue(short value)
Set field's short value.- Parameters:
value- short value- Throws:
IllegalFieldAccessException- thrown if method is not supported by specific Field instance.
-
getByteValue
public byte getByteValue()
Get field as a byte value.- Returns:
- byte value
- Throws:
IllegalFieldAccessException- thrown if method is not supported by specific Field instance.
-
setByteValue
public void setByteValue(byte value)
Set field's byte value.- Parameters:
value- byte value- Throws:
IllegalFieldAccessException- thrown if method is not supported by specific Field instance.
-
getBooleanValue
public boolean getBooleanValue()
Get field as a boolean value.- Returns:
- boolean value
- Throws:
IllegalFieldAccessException- thrown if method is not supported by specific Field instance.
-
setBooleanValue
public void setBooleanValue(boolean value)
Set field's boolean value.- Parameters:
value- boolean value- Throws:
IllegalFieldAccessException- thrown if method is not supported by specific Field instance.
-
getBinaryData
public abstract byte[] getBinaryData()
Get data as a byte array.- Returns:
- byte[]
-
setBinaryData
public abstract void setBinaryData(byte[] bytes)
Set data from binary byte array. All variable-length fields must implement this method.- Parameters:
bytes- field data- Throws:
IllegalFieldAccessException- if error occurs while reading bytes into field which will generally be caused by the incorrect number of bytes provided to a fixed-length field.
-
getString
public java.lang.String getString()
Get field as a String value.- Returns:
- String value
- Throws:
IllegalFieldAccessException- thrown if method is not supported by specific Field instance.
-
setString
public void setString(java.lang.String str)
Set field's String value.- Parameters:
str- String value- Throws:
IllegalFieldAccessException- thrown if method is not supported by specific Field instance.
-
isVariableLength
public boolean isVariableLength()
- Returns:
- true if a Field instance is variable length, else false.
-
isSameType
public boolean isSameType(Field field)
Determine if specified field is same type as this field- Parameters:
field- a Field instance- Returns:
- true if field is same type as this field
-
copyField
public abstract Field copyField()
Create new instance of this field with the same value.- Returns:
- new field instance with same value
-
newField
public abstract Field newField()
Create new instance of this field type.- Returns:
- new field instance with undefined initial value
-
equals
public abstract boolean equals(java.lang.Object obj)
- Overrides:
equalsin classjava.lang.Object
-
hashCode
public abstract int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
getValueAsString
public abstract java.lang.String getValueAsString()
Get field value as a formatted string- Returns:
- field value string
-
canIndex
public static boolean canIndex(Field field)
Determine if a specified field instance may be indexed- Parameters:
field- field to be checked- Returns:
- true if field can be indexed
-
-