public class CodeItemArrayProp extends GProp<List<ICodeItem>> implements ICodeItemArrayContainer
setChanged
.GPDEBUG, PROP_ATTR_STRING_EDITOR_PROP, PROP_ATTR_STRING_ERRORED_NAME, PROP_ATTR_STRING_EXTENDS, PROP_ATTR_STRING_EXTENDS_FINAL, PROP_ATTR_STRING_EXTENDS_PRIVATE, PROP_ATTR_STRING_NULLABLE, PROP_ATTR_STRING_PRIVATE, PROP_ATTR_STRING_PRIVATE_CHANGE_EVENT, PROP_ATTR_STRING_READ_ONLY, PROP_USER_1, PROP_USER_2
EQC_ERROR_IGNORE_ALL, EQC_ERROR_IGNORE_REFERENCES, EQC_IGNORE_ARRAY, EQC_IGNORE_VOLATILE_OR_EDITOR, EQC_PRIVATE, EQC_SAVE_FILE, EXT_CONTAINER_EXTENDS, EXT_CONTAINER_EXTENDS_VALID, EXT_EXTENDED, EXT_FINAL, EXT_OVERRIDES, EXT_OVERRIDES_FINAL_ERR, EXT_PRIVATE
Modifier | Constructor and Description |
---|---|
protected |
CodeItemArrayProp()
Creates an string array with no name and an empty synchronized ArrayList<String> array.
|
|
CodeItemArrayProp(Atom propertyAtom)
Creates an string array property with the specified name with
an empty synchronized ArrayList<String> array.
|
Modifier and Type | Method and Description |
---|---|
void |
addItem(ICodeItem item)
Adds a new item.
|
void |
addItems(Collection<ICodeItem> items)
Adds a new items.
|
void |
addItems(ICodeItem... items)
Adds a new items.
|
void |
addItems(KString... items)
Adds a new items.
|
void |
addItems(String... items)
Adds a new items.
|
protected void |
appendPropValue(PropMgr propertyManager,
Transaction trans,
Object value)
Appends the string array to an outgoing transaction.
|
CodeItemArrayProp |
clone()
Creates a clone out of this property.
|
ICodeItem |
getItem(int index)
Gets the element at the specified index.
|
int |
getItemCount()
Gets the item count.
|
int |
getItemIndex(ICodeItem item)
Gets the index of of item.
|
ICodeItem[] |
getItems()
Gets the array of elements.
|
KString[] |
getItemsAsKStrings()
Gets the array of items as KStrings.
|
protected Object |
getPropValue0(Object value,
int index)
Gets the property value in another class form than the "native" one.
|
Class<?>[] |
getValueClasses()
Gets the list of possible native Java classes that can be used to set a value using
setPropertyValue , in order of importance. |
void |
initializeElement(Element element)
Called when the XML file for the property tree is serialized from properties.
|
void |
initializeProp(Element element)
Called to initialize the property from an
Element . |
boolean |
initializeValue(PropMgr propertyManager,
Transaction trans)
Initializes the property value from a transaction.
|
void |
insertItem(ICodeItem item,
int index)
Inserts an item at specified index.
|
boolean |
isHTMLKStringSupported()
Checks if KString's of HTML type are supported.
|
protected int |
modifyPropValue(Object oldValue,
Object newValue,
PropMgr propMgr)
Called when setting a new value for this property.
|
void |
removeAllItems(boolean keepSelection)
Removes all items but keeps the selection depending on the flag.
|
int |
removeItem(ICodeItem item)
Removes an item.
|
ICodeItem |
removeItem(int index)
Removes an item.
|
int |
removeItem(KString item)
Removes an item.
|
int |
removeItem(String item)
Removes an item.
|
ICodeItem |
setItem(ICodeItem item,
int index)
Sets an item at specified index.
|
void |
setOwner(ICodeItemsOwner owner)
Assigns the owner of this container.
|
void |
sortItems(Locale locale,
boolean isCaseInsensitive)
Sorts the list according to a locale.
|
protected Object |
toNativeValue0(Object value,
int index)
Tries conversion of possibly accepted properties values using the
setPropertyValue method
into the most preferred property value type. |
void |
validatePropType(Object newValue)
Validates that the value to set is of
List<?> instance. |
addPropError, addPropListener, convertPropError, dispose, equals, equals, equalsErrors, equalsObj, equalsPropValue, equalsTree, equalValues, extendsClone, finalize, fine, fine, finer, finer, finest, finest, fromElementString, getAliasName, getAppSessionGyro, getAppWorker, getAtomPath, getAttribute, getChildReferencePropName, getClientSessionGyro, getClientWorker, getConstraints, getEnvironment, getErroredPropItems, getErroredProps, getErrorsProp, getExtendsRootContainer, getFullPropName, getFullPropName, getFullPropNameDebug, getFullPropNameDebug, getListeners, getParent, getParent, getProjectName, getPropAtom, getPropBaseReference, getPropError, getPropError, getPropErroredName, getPropErrorSeverity, getPropExtendsFlags, getPropFromPath, getPropFromPath, getPropFromReference, getPropFromReference, getPropIndex, getPropName, getPropPath, getPropPath, getPropReferenceTarget, getPropRootPropMgr, getPropTreeErrorSeverity, getPropValue, getPropValue, getPropValueObject, getReferencePropName, getReferences, getRelativePropName, getRootFromName, getRootName, getRootParent, getRootParent, getTreeLock, getVSReference, hasChanged, hasPrivateChangeEventProp, hasPropError, hasPropTreeError, info, info, initializeGElement, initializeGProp, isDisposed, isPropChildOf, isPropClientCreated, isPropCommunicating, isPropCreateRequired, isPropExtended, isPropExtendsFinal, isPropExtendsPrivate, isPropExtendsPrivateInRoot, isPropExtendsPrivateInRoot, isPropFile, isPropFolder, isPropForEditor, isPropNullable, isPropPrivate, isPropPrivateAtCreation, isPropReadOnly, isPropReferenceTreeValid, isPropRoot, isPropUSER, isPropValueTreeLockNeeded, isPropVirtualized, isPropVirtualizing, isPropVolatile, isPropVolatileOrEditorOnly, isProxied, list, list, list, list, list, mapAliasToReference, mapAliasToReference, mapReferenceToAlias, mapReferenceToAlias, mapReferenceToProjectRelative, moveProp, moveProp, moveProp, onEvent, onEventSelf, onPrepare, onPropDispose, onPropInvalidateCache, onPropParentChanged, onPropTreeInitialized, onPropValueSet, onReferenceEvent, onRemoteEvent, onVirtualizationCompleted, onVirtualized, paramString, paramValue, post, post, removePropError, removePropListener, removePropUSER, renameProp, renameProp2, resetChangedTree, resolveRuntimeReferences, setChanged, setConstraints, setConstraints, setCreateRequiredProp, setParent, setPrivateChangeEventProp, setPrivateCreateRequiredProp, setPropError, setPropErroredName, setPropExtended, setPropExtendsFinal, setPropExtendsPrivate, setPropForEditor, setPropNullable, setPropPrivate, setPropReadOnly, setPropUSER, setPropValue, setPropValue, setPropValue, setPropValueIncognito, setPropVolatile, severe, severe, severe, shouldSerializeToXML, throwIfReadOnly, toElementString, toNativeValue, toString, toString, triggerRemoteEvent, triggerRemoteEvent, validateProp, validatePropValue, verify, verifyHasPropertyItem, virtualize, warning, warning, warning
getClass, hashCode, notify, notifyAll, wait, wait, wait
addItem, addItem, getCodeArrayArrayContainer, getItemKString, getItemString, insertItem, insertItem, removeAllItems, setItem, setItem, sortItems, sortItems, sortItems
getItemsAsStrings, getStringArrayContainer
getKStringArrayContainer
protected CodeItemArrayProp()
public CodeItemArrayProp(Atom propertyAtom)
propertyAtom
- the property atom.public void setOwner(ICodeItemsOwner owner)
owner
- The new owner, not null.public Class<?>[] getValueClasses()
setPropertyValue
, in order of importance. Note that loss of precision
in data if e.g. an Float property accepts a Double. However, the setPropertyValue
throws IllegalArgumentException
if the range in invalid, e.g. conversion
of a Integer to a Byte, and the value is not -127 to 128.getValueClasses
in interface IGProp<List<ICodeItem>>
getValueClasses
in class GProp<List<ICodeItem>>
setPropertyValue
method.
The first type is the "native" or most preferred type. The array is at least one item in length
and never null.public CodeItemArrayProp clone()
Cloning is used for "virtualization" of a property tree in the
server. Client property classes will therefore throw
CloneNotSupportedException
.
Once a tree has been cloned, the change-flag is reset, and the create-flag is set. All listeners are also removed! The new cloned property is an orphan, i.e. has no parent set.
Note that the cloning process is done WITHOUT thread synchronization for performance reasons, thus no modifications should be done to the tree!
The StringArrayProperty clones the ArrayList used for the items unless it is a read-only unmodifiable list in which case it is copied.
public void validatePropType(Object newValue) throws PropTypeException
List<?>
instance. Later, when setting
the property, the method modifyPropertyValue
will be called, and this
one will require the type List<String>
in order not to throw
PropertyException
.validatePropType
in interface IGProp<List<ICodeItem>>
validatePropType
in class GProp<List<ICodeItem>>
newValue
- The new value to set.PropTypeException
- if newValue
is not of List<?>
instance.protected int modifyPropValue(Object oldValue, Object newValue, PropMgr propMgr) throws PropException
modifyPropValue
in class GProp<List<ICodeItem>>
oldValue
- The old value.newValue
- The new value.propMgr
- The property manager for remote change, null for local.PropException
- when the new value doesn't validate correctly.protected void appendPropValue(PropMgr propertyManager, Transaction trans, Object value)
appendPropValue
in class GProp<List<ICodeItem>>
propertyManager
- the property manager instance.trans
- transaction to append the properties to.value
- the value to append to the transaction, a reference to the current property value.public boolean initializeValue(PropMgr propertyManager, Transaction trans)
initializeValue
in class GProp<List<ICodeItem>>
propertyManager
- the property manager.trans
- the transaction to initialize the property with.public void initializeProp(Element element) throws PropException
Element
.
The property should initialize itself from attributes and nodes
with appropriate information.initializeProp
in class GProp<List<ICodeItem>>
element
- The Element
.PropException
- when the initialization fails.public void initializeElement(Element element)
The attribute "sort" may be set to "client", "server" or not present, i.e. no sorting. The setting "server" indicates that the Server provides the sorting rule to use, settable for each client session programmatically.
After the element, elements "string" builds up all text entries containing the strings.
initializeElement
in class GProp<List<ICodeItem>>
element
- The Element
.protected Object getPropValue0(Object value, int index) throws Exception
getPropValue0
in class GProp<List<ICodeItem>>
value
- The property value.index
- The index in the Class array returned by getValueClasses()
.Exception
- Other exceptions that could occur.protected Object toNativeValue0(Object value, int index) throws Exception
setPropertyValue
method
into the most preferred property value type. If the input value already is of the preferred type, the
same object is returned.toNativeValue0
in class GProp<List<ICodeItem>>
value
- The input value to convert to native value.index
- The index in the array returned by getValueClasses()
, or -1 if not found.Exception
- For conversion exceptions.public boolean isHTMLKStringSupported()
isHTMLKStringSupported
in interface IKStringArrayContainer
public int getItemCount()
getItemCount
in interface ICodeItemArrayContainer
getItemCount
in interface IKStringArrayContainer
getItemCount
in interface IStringArrayContainer
public ICodeItem[] getItems()
getItems
in interface ICodeItemArrayContainer
public KString[] getItemsAsKStrings()
getItemsAsKStrings
in interface IKStringArrayContainer
public ICodeItem getItem(int index)
getItem
in interface ICodeItemArrayContainer
index
- The index.IndexOutOfBoundsException
- If the index is invalid.public int getItemIndex(ICodeItem item)
getItemIndex
in interface ICodeItemArrayContainer
item
- The item.public void sortItems(Locale locale, boolean isCaseInsensitive)
The selected index may change as a result of the sorting if selection is supported.
sortItems
in interface ICodeItemArrayContainer
sortItems
in interface IKStringArrayContainer
sortItems
in interface IStringArrayContainer
locale
- The locale to use for string sorting, null for default..isCaseInsensitive
- Flag for case insensitive.IllegalStateException
- If the container is read-only.public void addItem(ICodeItem item)
addItem
in interface ICodeItemArrayContainer
item
- The item to add.NullPointerException
- If the item is null.IllegalStateException
- If the container is read-only.public void addItems(ICodeItem... items)
addItems
in interface ICodeItemArrayContainer
items
- The items to add.NullPointerException
- If an item is null.IllegalStateException
- If the container is read-only.public void addItems(Collection<ICodeItem> items)
addItems
in interface ICodeItemArrayContainer
items
- The items to add.NullPointerException
- If an item is null.IllegalStateException
- If the container is read-only.public void addItems(String... items)
addItems
in interface IStringArrayContainer
items
- The items to add.NullPointerException
- If an item is null.IllegalStateException
- If the container is read-only.public void addItems(KString... items)
addItems
in interface IKStringArrayContainer
items
- The items to add.NullPointerException
- If an item is null.IllegalStateException
- If the container is read-only.public void insertItem(ICodeItem item, int index)
insertItem
in interface ICodeItemArrayContainer
item
- The item to add.index
- The index to insert the item before (-1 for last).NullPointerException
- If the item is null.IndexOutOfBoundsException
- If the index is in error.IllegalStateException
- If the container is read-only.public ICodeItem setItem(ICodeItem item, int index)
setItem
in interface ICodeItemArrayContainer
item
- The item to set.index
- The index of the item.NullPointerException
- If the item is null.IndexOutOfBoundsException
- If the index is in error.IllegalStateException
- If the container is read-only.public ICodeItem removeItem(int index)
removeItem
in interface ICodeItemArrayContainer
removeItem
in interface IKStringArrayContainer
removeItem
in interface IStringArrayContainer
index
- The index of the item to delete.IndexOutOfBoundsException
- If the index is in error.IllegalStateException
- If the container is read-only.public int removeItem(ICodeItem item)
removeItem
in interface ICodeItemArrayContainer
item
- The item to remove.IndexOutOfBoundsException
- If the index is in error.IllegalStateException
- If the container is read-only.public int removeItem(String item)
removeItem
in interface IStringArrayContainer
item
- The item to remove.IndexOutOfBoundsException
- If the index is in error.IllegalStateException
- If the container is read-only.public int removeItem(KString item)
removeItem
in interface IKStringArrayContainer
item
- The item to remove.IndexOutOfBoundsException
- If the index is in error.IllegalStateException
- If the container is read-only.public void removeAllItems(boolean keepSelection)
The selection may be changed (cleared) due to this operation if the owner support selection.
removeAllItems
in interface ICodeItemArrayContainer
removeAllItems
in interface IKStringArrayContainer
removeAllItems
in interface IStringArrayContainer
keepSelection
- The boolean to keep the selection.IllegalStateException
- If the container is read-only.iizi® is a registered trademark of Mindus SARL. © Copyright Mindus SARL, 2020. All rights reserved.