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 Change Modifier and Type Class Description static classField.UnsupportedFieldException
-
Field Summary
Fields Change Modifier and Type Field Description NEW static Field[]EMPTY_ARRAY
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Change Modifier and Type Method Description NEW static booleancanIndex(Field field)Determine if a specified field instance may be indexedNEW abstract 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()NEW 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.REMOVED FieldnewField(Field fieldValue) (Removed)
-
-
-
Field Detail
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 NEW
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 NEW
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 NEW
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
-
-