public class ListProperty extends AbstractProperty implements List<Property>
| Modifier and Type | Field and Description |
|---|---|
protected List<Property> |
children |
protected Field |
field
The corresponding field.
|
flags, forceDirty, IS_READONLY, parentDIRTY_MASK, IS_DIRTY, IS_MODIFIED, IS_MOVED, IS_NEW, IS_PHANTOM, IS_REMOVED, NONE| Constructor and Description |
|---|
ListProperty(Property parent,
Field field) |
ListProperty(Property parent,
Field field,
int flags) |
| Modifier and Type | Method and Description |
|---|---|
void |
accept(PropertyVisitor visitor,
Object arg)
Method that implement the visitor pattern.
|
void |
add(int index,
Property element)
Throws UnsupportedOperationException, added to implement List
|
boolean |
add(Property o)
Throws UnsupportedOperationException, added to implement List
|
boolean |
addAll(Collection<? extends Property> c)
Throws UnsupportedOperationException, added to implement List
|
boolean |
addAll(int index,
Collection<? extends Property> c)
Throws UnsupportedOperationException, added to implement List
|
Property |
addEmpty()
Creates an empty child property and adds it as a property to the list container.
|
Property |
addValue(int index,
Object value)
Inserts at the given position a new value to the list.
|
Property |
addValue(Object value)
Appends a new value to the list.
|
void |
applyListDiff(ListDiff ld)
Supports ListDiff for compatibility.
|
static ArrayList<?> |
arrayToList(Object obj) |
void |
clear() |
void |
clearDirtyFlags()
Notify the property that its changes was stored so it can safely remove dirty flags.
|
Object |
clone() |
boolean |
contains(Object o)
Throws UnsupportedOperationException, added to implement List
|
boolean |
containsAll(Collection<?> c)
Throws UnsupportedOperationException, added to implement List
|
<T> T |
convertTo(Serializable value,
Class<T> toType)
Converts the given normalized value to the given type.
|
Property |
get(int index)
Get the child property given it's index.
|
Property |
get(String name)
Gets the child property having the given name.
|
Collection<Property> |
getChildren()
Get a collection over the children properties.
|
protected Serializable |
getDefaultValue() |
Iterator<Property> |
getDirtyChildren()
Gets an iterator over the dirty children properties.
|
Field |
getField()
Gets the field corresponding to this property.
|
String |
getName()
Gets the property name.
|
ListType |
getType()
Get the type of the field corresponding to this property.
|
Serializable |
getValueForWrite()
Gets the property normalized value for write.
|
int |
indexOf(Object o)
Throws UnsupportedOperationException, added to implement List
|
int |
indexOf(Property property) |
void |
init(Serializable value)
Initializes the property with the given normalized value.
|
Serializable |
internalGetValue() |
void |
internalSetValue(Serializable value)
Sets the given normalized value.
|
boolean |
isContainer()
TODO FIXME XXX uncommented
return true; see NXP-1653. |
boolean |
isEmpty() |
boolean |
isNormalized(Object value)
Checks if the given value is a normalized one.
|
boolean |
isSameAs(Property property)
Compare the two properties by content.
|
int |
lastIndexOf(Object o)
Throws UnsupportedOperationException, added to implement List
|
ListIterator<Property> |
listIterator()
Throws UnsupportedOperationException, added to implement List
|
ListIterator<Property> |
listIterator(int index)
Throws UnsupportedOperationException, added to implement List
|
Serializable |
normalize(Object value)
Normalizes the given value as dictated by the property type.
|
Property |
remove(int index) |
boolean |
remove(Object o)
Throws UnsupportedOperationException, added to implement List
|
boolean |
remove(Property property) |
boolean |
removeAll(Collection<?> c)
Throws UnsupportedOperationException, added to implement List
|
boolean |
retainAll(Collection<?> c)
Throws UnsupportedOperationException, added to implement List
|
Property |
set(int index,
Property element)
Throws UnsupportedOperationException, added to implement List
|
void |
setValue(Object value)
Sets this property value.
|
List<Property> |
subList(int fromIndex,
int toIndex)
Throws UnsupportedOperationException, added to implement List
|
Object[] |
toArray() |
<T> T[] |
toArray(T[] a) |
appendDirtyFlags, areFlagsSet, clearFlags, collectPath, getDirtyFlags, getObjectResolver, getParent, getPath, getRoot, getSchema, getValue, getValue, getValue, getValue, isComplex, isDirty, isForceDirty, isList, isModified, isMoved, isNew, isPhantom, isReadOnly, isRemoved, isSameValue, isScalar, iterator, moveTo, newInstance, remove, removePhantomFlag, resolvePath, resolvePath, setDirtyFlags, setFlags, setForceDirty, setIsModified, setIsMoved, setIsNew, setIsRemoved, setReadOnly, setValue, setValue, size, toString, validateTypeequals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitequals, hashCode, iterator, replaceAll, size, sort, spliteratorparallelStream, removeIf, streampublic ListProperty(Property parent, Field field)
public ListProperty(Property parent, Field field, int flags)
public void internalSetValue(Serializable value) throws PropertyException
AbstractPropertyThis applies only for nodes that physically store a value (that means non container nodes). Container nodes does nothing.
internalSetValue in class AbstractPropertyPropertyExceptionpublic boolean isContainer()
return true; see NXP-1653.isContainer in interface Propertyline 216,
ListProperty#getValue},
ListProperty#accept}public Property addValue(int index, Object value) throws PropertyException
Property
The created property will be marked as Property.isNew().
addValue in interface Propertyindex - the position to insert the valuePropertyExceptionpublic Property addValue(Object value) throws PropertyException
Property
The created property will be marked as Property.isNew().
addValue in interface PropertyPropertyExceptionpublic Property addEmpty()
PropertyThis method is useful to construct lists.
public Collection<Property> getChildren()
PropertyThe returned collection is ordered for list properties, and unordered for complex properties
Be aware that this method is creating phantom child properties for all schema fields that are not yet set.
getChildren in interface Propertypublic ListType getType()
Propertypublic Property get(String name)
PropertyIf the property is a scalar, this will return always null.
The given name should be the full name (i.e. prefixed name if any prefix exists).
If a non prefixed name is given, the first child property having the given local name will be returned.
Relative paths are not resolved. THis method is intended to lookup direct children. For path lookups use
Property.resolvePath(String) instead.
public Property get(int index)
Property
If this method is not supported an UnsupportedOperationException must be thrown
Relative paths are not resolved. THis method is intended to lookup direct chilren. For path lookups, use
Property.resolvePath(String) instead.
protected Serializable getDefaultValue()
getDefaultValue in class AbstractPropertypublic Serializable internalGetValue() throws PropertyException
internalGetValue in class AbstractPropertyPropertyExceptionpublic Serializable getValueForWrite() throws PropertyException
Property
Can be different fropm Property.getValue() in cases where the property adapts the value it is given to store.
getValueForWrite in interface PropertygetValueForWrite in class AbstractPropertyPropertyExceptionpublic void init(Serializable value) throws PropertyException
PropertyThe given value must be normalized - note that no check is done on that.
The phantom flag is unset by this operation.
This method should be used to initialize properties.
init in interface Propertyinit in class AbstractPropertyvalue - the normalized value to setPropertyExceptionpublic void setValue(Object value) throws PropertyException
PropertyFor complex or list properties the value will be set recursively (as a map or list value).
setValue in interface PropertysetValue in class AbstractPropertyvalue - the value to setPropertyExceptionpublic void clear()
public Field getField()
PropertyThe field is the object defining the property. You can see the field as a java class and the property as a class instance
public Object clone() throws CloneNotSupportedException
clone in class ObjectCloneNotSupportedExceptionpublic void accept(PropertyVisitor visitor, Object arg) throws PropertyException
PropertyThe visitor must return null to stop visiting children otherwise a context object that will be passed as the arg argument to children
accept in interface Propertyvisitor - the visitor to acceptarg - an argument passed to the visitor. This should be used by the visitor to carry on the visiting
context.PropertyExceptionpublic boolean isNormalized(Object value)
PropertyNull values are considered as normalized.
isNormalized in interface PropertyisNormalized in class AbstractPropertyvalue - the value to checkpublic Serializable normalize(Object value) throws PropertyConversionException
PropertyNormalized values are the ones that are used for transportation over the net and that are given to the storage implementation to be stored in the repository
Normalized values must be Serializable
If the given value is already normalized it will be returned back.
normalize in interface Propertynormalize in class AbstractPropertyvalue - the value to normalize according to the property typePropertyConversionExceptionpublic <T> T convertTo(Serializable value, Class<T> toType) throws PropertyConversionException
PropertyIf the value has already the given type it will be returned back.
convertTo in interface PropertyconvertTo in class AbstractPropertyvalue - the normalized value to converttoType - the conversion typePropertyConversionException - if the conversion cannot be made because of type incompatibilitiespublic static ArrayList<?> arrayToList(Object obj)
public void applyListDiff(ListDiff ld) throws PropertyException
ld - PropertyExceptionpublic boolean isSameAs(Property property) throws PropertyException
PropertyisSameAs in interface PropertyPropertyExceptionPropertyExceptionpublic Iterator<Property> getDirtyChildren()
PropertygetDirtyChildren in interface Propertypublic void add(int index, Property element)
public boolean add(Property o)
public boolean addAll(Collection<? extends Property> c)
public boolean addAll(int index, Collection<? extends Property> c)
public boolean contains(Object o)
public boolean containsAll(Collection<?> c)
containsAll in interface Collection<Property>containsAll in interface List<Property>public int indexOf(Object o)
public boolean isEmpty()
public int lastIndexOf(Object o)
lastIndexOf in interface List<Property>public ListIterator<Property> listIterator()
listIterator in interface List<Property>public ListIterator<Property> listIterator(int index)
listIterator in interface List<Property>public boolean remove(Object o)
public boolean removeAll(Collection<?> c)
public boolean retainAll(Collection<?> c)
public Property set(int index, Property element)
public List<Property> subList(int fromIndex, int toIndex)
public <T> T[] toArray(T[] a)
public void clearDirtyFlags()
PropertyDirty flags are removed according to the type of the modifications. This way if the property was REMOVED it becomes a PHANTOM otherwise all dirty flags are cleared.
This method should be used by storage implementors to notify the property it should reset its dirty flags. Note that clearing dirty flags is not propagated to the parent property or to children. You need to clear dirty flags explicitly for each property.
clearDirtyFlags in interface PropertyclearDirtyFlags in class AbstractPropertyCopyright © 2016 Nuxeo SA. All rights reserved.