public abstract class Field
extends java.lang.Object
The "kind" is a rough type of the field. Examples of kind are "scalar" and "unknown", and example of "detailed type" are "int", "float". The FieldKind interface provides definitions for the kinds of field. The detailed type of the field is just a String.
The name and detailed type of a field can be derived. How to calculate the derived name and type from the raw name and type is techno specific. There are abstract APIs to get/set the derived name and type in this class. There are also concrete APIs to get/set the raw, non-derived name and type.
A non-scalar kind of field can own child fields.
Modifier and Type | Method and Description |
---|---|
void |
addChildField(Field childField)
Adds one more child field.
|
abstract Field |
clone()
Clones this field to a new one.
|
java.util.List |
getAtomicFields()
Gets all scalar fields.
|
java.util.List |
getChildFields()
Gets the child fields.
|
java.util.List |
getChildFieldsWithXRef()
Gets all child field that refer to MapAttributes.
|
abstract java.lang.String |
getDisplayableType(java.lang.String indent)
Calculates a human readable string representing this field.
|
FieldKind |
getFieldKind()
Gets the kind of this field.
|
int |
getIndex()
Gets the index of this field.
|
java.lang.String |
getName()
Calculates the name for this field.
|
abstract java.lang.String |
getName(boolean asSourceName)
Calculates the name for this field.
|
Field |
getParentField()
Gets the parent field.
|
java.lang.String |
getPrefix()
Gets the prefix of this field.
|
java.lang.String |
getRawName()
Gets raw name of this field.
|
java.lang.String |
getRawType()
Gets the raw type.
|
Schema |
getSchema()
Gets the owner schema of this field.
|
SourceAttribute |
getSourceAttrSpec()
Gets the source attribute specification for this field.
|
abstract java.lang.String |
getType()
Calculates the type for this field.
|
void |
setChildFields(java.util.List childFields)
Sets the child fields.
|
void |
setFieldKind(FieldKind fieldKind)
Sets the kind for this field.
|
void |
setIndex(int index)
Sets the index for this field.
|
abstract void |
setName(java.lang.String name)
Sets the name of the field.
|
void |
setParentField(Field parentField)
Sets the parent field.
|
void |
setPrefix(java.lang.String prefix)
Sets the prefix for this field.
|
void |
setRawName(java.lang.String name)
Sets raw name for this field.
|
void |
setRawType(java.lang.String type)
Sets the raw type of this field.
|
void |
setSchema(Schema schema)
Sets the owner of this field.
|
void |
setSourceAttrSpec(SourceAttribute sourceAttrSpec)
Sets the source attribute specification for this field.
|
java.lang.String |
toString() |
public Schema getSchema()
public void setSchema(Schema schema)
schema
- the owner of this field to be set.public FieldKind getFieldKind()
public void setFieldKind(FieldKind fieldKind)
fieldKind
- the field kind to be set.public java.lang.String getRawName()
public void setRawName(java.lang.String name)
name
- the raw name to be set.public java.lang.String getName()
public abstract java.lang.String getName(boolean asSourceName)
asSourceName
- true - the name is calculated based on input schema; false - otherwise.public abstract void setName(java.lang.String name)
name
- the name to be set.public int getIndex()
public void setIndex(int index)
index
- the index to be set.public java.lang.String getPrefix()
public void setPrefix(java.lang.String prefix)
prefix
- the prefix to be set.public java.lang.String getRawType()
public void setRawType(java.lang.String type)
type
- the raw type.public abstract java.lang.String getType()
public SourceAttribute getSourceAttrSpec()
public void setSourceAttrSpec(SourceAttribute sourceAttrSpec)
sourceAttrSpec
- the source attr spec to be set.public java.util.List getChildFields()
public void setChildFields(java.util.List childFields)
childFields
- child fields to be set.public void addChildField(Field childField)
childField
- a new child field.public Field getParentField()
public void setParentField(Field parentField)
parentField
- the parent fieldpublic abstract Field clone()
clone
in class java.lang.Object
public java.util.List getAtomicFields()
public java.util.List getChildFieldsWithXRef()
public java.lang.String toString()
toString
in class java.lang.Object
public abstract java.lang.String getDisplayableType(java.lang.String indent)
indent
- the prefix to be placed on each line.