org.apache.batik.dom.svg
Class AbstractSVGList

java.lang.Object
  extended byorg.apache.batik.dom.svg.AbstractSVGList
Direct Known Subclasses:
AbstractSVGLengthList, AbstractSVGNumberList, AbstractSVGPathSegList, AbstractSVGPointList, AbstractSVGTransformList

public abstract class AbstractSVGList
extends java.lang.Object

This class is a base implementation for a live list representation of SVG attributes. This classe provides support for a SVG List representation of an attribute. It implements the basic functionnalities. For a specific attribute, it requires a attribute value, a parser, and the item creation Whenever the attribute changes outside of the control of the list, this list must be invalidated


Nested Class Summary
protected  class AbstractSVGList.ListBuilder
          Local list handler implementation.
 
Field Summary
protected  java.util.List itemList
          List of item
protected  boolean valid
          Whether this list is valid.
 
Constructor Summary
protected AbstractSVGList()
          Creates a new SVGList.
 
Method Summary
protected  SVGItem appendItemImpl(java.lang.Object newItem)
          Inserts a new item at the end of the list.
protected abstract  void checkItemType(java.lang.Object newItem)
          Check the type of the element added to the list.
 void clear()
          Clears all existing current items from the list, with the result being an empty list.
protected  void clear(java.util.List list)
          Clear the list and set the parent of the items to null.
protected abstract  org.w3c.dom.DOMException createDOMException(short type, java.lang.String key, java.lang.Object[] args)
          Create a DOM Exception.
protected abstract  SVGItem createSVGItem(java.lang.Object newItem)
          Return the item to be placed in the list.
protected abstract  void doParse(java.lang.String value, ListHandler builder)
          Parse the value of the attribute and build a list.
protected  SVGItem getItemImpl(int index)
          Returns the specified item from the list.
protected abstract  java.lang.String getItemSeparator()
          Return the separator for the item is the list.
 int getNumberOfItems()
          Return the number of items in the list.
protected abstract  java.lang.String getValueAsString()
          Return the String value associated to the attribute in the DOM.
protected  SVGItem initializeImpl(java.lang.Object newItem)
          Clears all existing current items from the list and re-initializes the list to hold the single item specified by the parameter.
protected  SVGItem insertItemBeforeImpl(java.lang.Object newItem, int index)
          Inserts a new item into the list at the specified position.
 void invalidate()
          Invalidates this list.
 void itemChanged()
           
protected  SVGItem removeIfNeeded(java.lang.Object newItem)
          If the itemis already in another list, then remove the item from its parent list.
protected  void removeItem(SVGItem item)
          Remove an item from the list.
protected  SVGItem removeItemImpl(int index)
          Removes an existing item from the list.
protected  SVGItem replaceItemImpl(java.lang.Object newItem, int index)
          Replaces an existing item in the list with a new item.
protected  void resetAttribute()
          Resets the value of the associated attribute.
protected  void resetAttribute(SVGItem item)
          Resets the value of the associated attribute.
protected  void revalidate()
          Initializes the list, if needed.
protected abstract  void setAttributeValue(java.lang.String value)
          Apply the changes of the list to the attribute this list represents.
protected  void setValueAsString(java.util.List value)
          Set the attribute value in the DOM.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

valid

protected boolean valid
Whether this list is valid.


itemList

protected java.util.List itemList
List of item

Constructor Detail

AbstractSVGList

protected AbstractSVGList()
Creates a new SVGList.

Method Detail

getItemSeparator

protected abstract java.lang.String getItemSeparator()
Return the separator for the item is the list.

Returns:
separator of items in the list

createSVGItem

protected abstract SVGItem createSVGItem(java.lang.Object newItem)
Return the item to be placed in the list. According to the parameter of the real SVGList represented here by an Object the implementation provide an item to be placed in the list.

Parameters:
newItem - paramter of the modification method of the list
Returns:
an item to be placed in the list.

doParse

protected abstract void doParse(java.lang.String value,
                                ListHandler builder)
                         throws ParseException
Parse the value of the attribute and build a list. Use a dedicated parser for the attribute and the list handler to build the list.

Parameters:
value - value of the attribute to be parsed
builder - list handler to create the list
Throws:
ParseException

checkItemType

protected abstract void checkItemType(java.lang.Object newItem)
                               throws SVGException
Check the type of the element added to the list.

Parameters:
newItem - object to test
Throws:
SVGException

getValueAsString

protected abstract java.lang.String getValueAsString()
Return the String value associated to the attribute in the DOM.

Returns:
value of the attribute

setAttributeValue

protected abstract void setAttributeValue(java.lang.String value)
Apply the changes of the list to the attribute this list represents.

Parameters:
value - new value of the attribute the value can be null if no item are present in the list.

createDOMException

protected abstract org.w3c.dom.DOMException createDOMException(short type,
                                                               java.lang.String key,
                                                               java.lang.Object[] args)
Create a DOM Exception.


getNumberOfItems

public int getNumberOfItems()
Return the number of items in the list.

Returns:
number of items in the list

clear

public void clear()
           throws org.w3c.dom.DOMException
Clears all existing current items from the list, with the result being an empty list.

Throws:
org.w3c.dom.DOMException - NO_MODIFICATION_ALLOWED_ERR: Raised when the listcannot be modified.

initializeImpl

protected SVGItem initializeImpl(java.lang.Object newItem)
                          throws org.w3c.dom.DOMException,
                                 SVGException
Clears all existing current items from the list and re-initializes the list to hold the single item specified by the parameter.

Parameters:
newItem - The item which should become the only member of the list.
Returns:
The item being inserted into the list.
Throws:
org.w3c.dom.DOMException - NO_MODIFICATION_ALLOWED_ERR: Raised when the list cannot be modified.
SVGException - SVG_WRONG_TYPE_ERR: Raised if parameter newItem is the wrong type of object for the given list.

getItemImpl

protected SVGItem getItemImpl(int index)
                       throws org.w3c.dom.DOMException
Returns the specified item from the list.

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:
org.w3c.dom.DOMException - INDEX_SIZE_ERR: Raised if the index number is negative or greater than or equal to numberOfItems.

insertItemBeforeImpl

protected SVGItem insertItemBeforeImpl(java.lang.Object newItem,
                                       int index)
                                throws org.w3c.dom.DOMException,
                                       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 to numberOfItems, then the new item is appended to the end of the list.
Returns:
The inserted item.
Throws:
org.w3c.dom.DOMException - NO_MODIFICATION_ALLOWED_ERR: Raised when the list cannot be modified.
SVGException - SVG_WRONG_TYPE_ERR: Raised if parameter newItem is the wrong type of object for the given list.

replaceItemImpl

protected SVGItem replaceItemImpl(java.lang.Object newItem,
                                  int index)
                           throws org.w3c.dom.DOMException,
                                  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:
org.w3c.dom.DOMException - NO_MODIFICATION_ALLOWED_ERR: Raised when the list cannot be modified. INDEX_SIZE_ERR: Raised if the index number is negative or greater than or equal to numberOfItems.
SVGException - SVG_WRONG_TYPE_ERR: Raised if parameter newItem is the wrong type of object for the given list.

removeItemImpl

protected SVGItem removeItemImpl(int index)
                          throws org.w3c.dom.DOMException
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:
org.w3c.dom.DOMException - NO_MODIFICATION_ALLOWED_ERR: Raised when the list cannot be modified. INDEX_SIZE_ERR: Raised if the index number is negative or greater than or equal to numberOfItems.

appendItemImpl

protected SVGItem appendItemImpl(java.lang.Object newItem)
                          throws org.w3c.dom.DOMException,
                                 SVGException
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:
org.w3c.dom.DOMException - NO_MODIFICATION_ALLOWED_ERR: Raised when the list cannot be modified.
SVGException - SVG_WRONG_TYPE_ERR: Raised if parameter newItem is the wrong type of object for the given list.

removeIfNeeded

protected SVGItem removeIfNeeded(java.lang.Object newItem)
If the itemis already in another list, then remove the item from its parent list. If not, create a proper item for the object representing the type of item the list contains checkItemItem was preformed previously.

Parameters:
newItem - : item to be removed from its parent list potentially
Returns:
item to be inserted in the list.

revalidate

protected void revalidate()
Initializes the list, if needed.


setValueAsString

protected void setValueAsString(java.util.List value)
                         throws org.w3c.dom.DOMException
Set the attribute value in the DOM.

Parameters:
value - list of item to be used as the new attribute value.
Throws:
org.w3c.dom.DOMException

itemChanged

public void itemChanged()

resetAttribute

protected void resetAttribute()
Resets the value of the associated attribute.


resetAttribute

protected void resetAttribute(SVGItem item)
Resets the value of the associated attribute.

Parameters:
item - : last item appended

invalidate

public void invalidate()
Invalidates this list.


removeItem

protected void removeItem(SVGItem item)
Remove an item from the list. This operation takes place when an item was already in one list and is being added to another one.

Parameters:
item - the item to be removed from this list

clear

protected void clear(java.util.List list)
Clear the list and set the parent of the items to null.

Parameters:
list - to be cleared


Copyright © 2004 Apache Software Foundation. All Rights Reserved.