Package org.apache.batik.dom.svg
Class AbstractSVGList
java.lang.Object
org.apache.batik.dom.svg.AbstractSVGList
- Direct Known Subclasses:
AbstractSVGLengthList
,AbstractSVGNumberList
,AbstractSVGPathSegList
,AbstractSVGPointList
,AbstractSVGTransformList
This class is a base implementation for a live
list representation of SVG attributes.
This class provides support for an SVG list representation of an
attribute. It implements basic list functionality that is common to all
of the SVG*List
interfaces.
For a specific attribute, it requires an attribute value
, a parser
,
and a method to create items
.
Whenever the attribute changes outside of the control of the list, this
list must be invalidated
.
- Version:
- $Id: AbstractSVGList.java 1804130 2017-08-04 14:41:11Z ssteiner $
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected SVGItem
appendItemImpl
(Object newItem) Inserts a new item at the end of the list.protected abstract void
checkItemType
(Object newItem) Asserts that the given object is an appropriate SVG object for this list.void
clear()
Removes all items from the list.protected void
Clears the list and sets the parent of the former list items to null.protected abstract DOMException
createDOMException
(short type, String key, Object[] args) Create a DOM Exception.protected abstract SVGItem
createSVGItem
(Object newItem) Creates anSVGItem
object that has the same values as those in the specified SVG object.protected abstract void
doParse
(String value, ListHandler builder) Parses the given attribute value and informs the specifiedListHandler
of the parsed list items.protected SVGItem
getItemImpl
(int index) Returns the item from the list at the specified index.protected abstract String
Returns the separator string to use when constructing a string representation of the entire list.int
Returns the number of items in the list.protected abstract String
Returns the value of the DOM attribute containing the list.protected SVGItem
initializeImpl
(Object newItem) Removes all items from the list and adds the specified item to the list.protected SVGItem
insertItemBeforeImpl
(Object newItem, int index) Inserts a new item into the list at the specified position.void
Invalidates this list.void
Method to be called by a memberSVGItem
object when its value changes.protected SVGItem
removeIfNeeded
(Object newItem) Removes the specified object from its parent list if it is an item, or creates a new item if the specified object is not an item.protected void
removeItem
(SVGItem item) Removes an item from the list.protected SVGItem
removeItemImpl
(int index) Removes an existing item from the list.protected SVGItem
replaceItemImpl
(Object newItem, int index) Replaces an existing item in the list with a new item.protected void
Resets the value of the associated attribute.protected void
resetAttribute
(SVGItem item) Appends the string representation of the givenSVGItem
to the DOM attribute.protected void
Initializes the list, if needed.protected abstract void
setAttributeValue
(String value) Sets the DOM attribute value containing the number list.protected void
setValueAsString
(List value) Sets the DOM attribute value to be the string representation of the given list.
-
Field Details
-
valid
protected boolean validWhether this list is valid. -
itemList
The list of items.
-
-
Constructor Details
-
AbstractSVGList
public AbstractSVGList()
-
-
Method Details
-
getItemSeparator
Returns the separator string to use when constructing a string representation of the entire list. -
createSVGItem
Creates anSVGItem
object that has the same values as those in the specified SVG object.- Parameters:
newItem
- the SVG object- Returns:
- the newly created
SVGItem
object
-
doParse
Parses the given attribute value and informs the specifiedListHandler
of the parsed list items.- Parameters:
value
- the attribute value to be parsedbuilder
- the object to be informed of the parsed list items- Throws:
ParseException
-
checkItemType
Asserts that the given object is an appropriate SVG object for this list.- Throws:
org.w3c.dom.svg.SVGException
-
getValueAsString
Returns the value of the DOM attribute containing the list. -
setAttributeValue
Sets the DOM attribute value containing the number list.- Parameters:
value
- the String representation of the list, or null if the list contains no items
-
createDOMException
Create a DOM Exception. -
getNumberOfItems
public int getNumberOfItems()Returns the number of items in the list. -
clear
Removes all items from the list.- Throws:
DOMException
- NO_MODIFICATION_ALLOWED_ERR: Raised when the list cannot be modified.
-
initializeImpl
Removes all items from the list and adds the specified item to the list.- Parameters:
newItem
- the item which should become the only member of the list.- Returns:
- the item being inserted into the list.
- Throws:
DOMException
- NO_MODIFICATION_ALLOWED_ERR: Raised when the list cannot be modified.org.w3c.dom.svg.SVGException
- SVG_WRONG_TYPE_ERR: Raised if parameter newItem is the wrong type of object for the given list.
-
getItemImpl
Returns the item from the list at the specified index.- Parameters:
index
- The index of the item from the list which is to be returned. The first item is number 0.- Returns:
- The selected item.
- Throws:
DOMException
- INDEX_SIZE_ERR: Raised if the index number is negative or greater than or equal tonumberOfItems
.
-
insertItemBeforeImpl
protected SVGItem insertItemBeforeImpl(Object newItem, int index) throws DOMException, org.w3c.dom.svg.SVGException Inserts a new item into the list at the specified position.The first item is number 0. If
newItem
is already in a list, it is removed from its previous list before it is inserted into this list.- Parameters:
newItem
- The item which is to be inserted into the list.index
- The index of the item before which the new item is to be inserted. The first item is number 0. If the index is equal to 0, then the new item is inserted at the front of the list. If the index is greater than or equal tonumberOfItems
, then the new item is appended to the end of the list.- Returns:
- The inserted item.
- Throws:
DOMException
- NO_MODIFICATION_ALLOWED_ERR: Raised when the list cannot be modified.org.w3c.dom.svg.SVGException
- SVG_WRONG_TYPE_ERR: Raised if parameternewItem
is the wrong type of object for the given list.
-
replaceItemImpl
protected SVGItem replaceItemImpl(Object newItem, int index) throws DOMException, org.w3c.dom.svg.SVGException Replaces an existing item in the list with a new item.If
newItem
is already in a list, it is removed from its previous list before it is inserted into this list.- Parameters:
newItem
- The item which is to be inserted into the list.index
- The index of the item which is to be replaced. The first item is number 0.- Returns:
- The inserted item.
- Throws:
DOMException
- NO_MODIFICATION_ALLOWED_ERR: Raised when the list cannot be modified.DOMException
- INDEX_SIZE_ERR: Raised if the index number is negative or greater than or equal tonumberOfItems
.org.w3c.dom.svg.SVGException
- SVG_WRONG_TYPE_ERR: Raised if parameter newItem is the wrong type of object for the given list.
-
removeItemImpl
Removes an existing item from the list.- Parameters:
index
- The index of the item which is to be removed. The first item is number 0.- Returns:
- The removed item.
- Throws:
DOMException
- NO_MODIFICATION_ALLOWED_ERR: Raised when the list cannot be modified.DOMException
- INDEX_SIZE_ERR: Raised if the index number is negative or greater than or equal tonumberOfItems
.
-
appendItemImpl
Inserts a new item at the end of the list. If newItem is already in a list, it is removed from its previous list before it is inserted into this list.- Parameters:
newItem
- The item which is to be inserted into the list. The first item is number 0.- Returns:
- The inserted item.
- Throws:
DOMException
- NO_MODIFICATION_ALLOWED_ERR: Raised when the list cannot be modified.org.w3c.dom.svg.SVGException
- SVG_WRONG_TYPE_ERR: Raised if parameter newItem is the wrong type of object for the given list.
-
removeIfNeeded
Removes the specified object from its parent list if it is an item, or creates a new item if the specified object is not an item. -
revalidate
protected void revalidate()Initializes the list, if needed. -
setValueAsString
Sets the DOM attribute value to be the string representation of the given list.- Throws:
DOMException
-
itemChanged
public void itemChanged()Method to be called by a memberSVGItem
object when its value changes. This causes the DOM attribute to be reset. -
resetAttribute
protected void resetAttribute()Resets the value of the associated attribute. -
resetAttribute
Appends the string representation of the givenSVGItem
to the DOM attribute. This is called in response to an append to the list. -
invalidate
public void invalidate()Invalidates this list. -
removeItem
Removes an item from the list. This operation takes place when an item was already in one list and is being added to another one. -
clear
Clears the list and sets the parent of the former list items to null.
-