Package io.permazen.schema
Class SetSchemaField
- All Implemented Interfaces:
DiffGenerating<SetSchemaField>
,Cloneable
A set field in one version of a
SchemaObjectType
.-
Field Summary
Fields inherited from class io.permazen.schema.SchemaItem
NAME_PATTERN
Fields inherited from class io.permazen.util.AbstractXMLStreaming
log
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionclone()
Deep-clone this instance.Detect the differences of this instance when compared to the given instance.final ItemType
Get theItemType
corresponding to this instance.Get theSchemaObjectType
of which this field is a member.final SchemaId
Generate a uniqueSchemaId
corresponding to the type and encoding structure of this schema item.final boolean
isLockedDown
(boolean includingStorageIds) Determine whether this instance is locked down.final void
setObjectType
(SchemaObjectType objectType) Set theSchemaObjectType
of which this field is a member.toString()
<R> R
visit
(SchemaFieldSwitch<R> target) Apply visitor pattern.final <T extends SchemaItem>
voidvisitSchemaItems
(Class<T> nodeType, Consumer<? super T> visitor) Visit this schema item and all of its descendents matching the given type with the given visitor.Methods inherited from class io.permazen.schema.CollectionSchemaField
differencesFrom, getElementField, getSubFields, setElementField
Methods inherited from class io.permazen.schema.ComplexSchemaField
equals, hashCode, visitSchemaItems
Methods inherited from class io.permazen.schema.SchemaItem
differencesFrom, getName, getStorageId, setName, setStorageId
Methods inherited from class io.permazen.util.AbstractXMLStreaming
expect, expectClose, getAttr, getAttr, getBooleanAttr, getBooleanAttr, getIntAttr, getIntAttr, getLongAttr, newInvalidAttributeException, newInvalidInputException, newInvalidInputException, next, skip, writeAttr, writeCData, writeCharacters, writeElement, writeEmptyElement, writeStartElement
-
Field Details
-
ITEM_TYPE
TheItemType
that this class represents.
-
-
Constructor Details
-
SetSchemaField
public SetSchemaField()
-
-
Method Details
-
visit
Description copied from class:SchemaField
Apply visitor pattern.- Specified by:
visit
in classSchemaField
- Type Parameters:
R
- visitor return type- Parameters:
target
- target to invoke- Returns:
- value from the method of
target
corresponding to this instance's type
-
getItemType
Get theItemType
corresponding to this instance.- Returns:
- schema item type
-
differencesFrom
Description copied from interface:DiffGenerating
Detect the differences of this instance when compared to the given instance.- Specified by:
differencesFrom
in interfaceDiffGenerating<SetSchemaField>
- Parameters:
that
- other instance- Returns:
- differences; will be empty if there are none detected
-
toString
- Overrides:
toString
in classSchemaField
-
clone
Deep-clone this instance.The returned instance will not be locked down even if this one is.
- Overrides:
clone
in classCollectionSchemaField
-
getObjectType
Get theSchemaObjectType
of which this field is a member.- Returns:
- containing object type
-
setObjectType
Set theSchemaObjectType
of which this field is a member.Note: this field is considered derived information, and will be set automatically when a referrring
SchemaObjectType
is locked down.- Parameters:
objectType
- containing object type- Throws:
UnsupportedOperationException
- if this instance is locked down
-
visitSchemaItems
public final <T extends SchemaItem> void visitSchemaItems(Class<T> nodeType, Consumer<? super T> visitor) Visit this schema item and all of its descendents matching the given type with the given visitor.The traversal is depth first, post-order.
- Parameters:
nodeType
- node type to includevisitor
- visitor for schema items- Throws:
IllegalArgumentException
- if either parameter is null
-
isLockedDown
public final boolean isLockedDown(boolean includingStorageIds) Determine whether this instance is locked down.- Parameters:
includingStorageIds
- false to test all but storage ID's, true to require storage ID's to be locked down as well- Returns:
- true if instance is locked down, otherwise false
-
getSchemaId
Generate a uniqueSchemaId
corresponding to the type and encoding structure of this schema item.The
SchemaId
does not depend on the storage ID.This instance must be locked down except for storage ID's. Repeated invocations of this method will be very fast, just returning the cached previous result.
- Returns:
- schema ID
- Throws:
IllegalStateException
- if this instance is not locked down- See Also:
-