org.apache.openjpa.util
Class ProxyLinkedList

java.lang.Object
  extended by java.util.AbstractCollection<E>
      extended by java.util.AbstractList<E>
          extended by java.util.AbstractSequentialList<E>
              extended by java.util.LinkedList
                  extended by org.apache.openjpa.util.ProxyLinkedList
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.lang.Iterable, java.util.Collection, java.util.List, java.util.Queue, Proxy, ProxyCollection

public class ProxyLinkedList
extends java.util.LinkedList
implements ProxyCollection

Extension of the LinkedList type that dirties the persistent/transactional field it is assigned to on modification. The need to dirty the field on any modification mandates that this class must override all mutator methods of the base type. This may lead to multiple calls to dirty for one state change if one mutator method of the base type calls another.

Author:
Abe White
See Also:
Serialized Form

Field Summary
 
Fields inherited from class java.util.AbstractList
modCount
 
Constructor Summary
ProxyLinkedList()
           
ProxyLinkedList(java.lang.Class elementType, boolean trackChanges, OpenJPAConfiguration conf)
           
 
Method Summary
 void add(int index, java.lang.Object value)
           
 boolean add(java.lang.Object value)
           
 boolean addAll(java.util.Collection values)
           
 boolean addAll(int index, java.util.Collection values)
           
 void addFirst(java.lang.Object value)
           
 void addLast(java.lang.Object value)
           
 void clear()
           
 java.lang.Object copy(java.lang.Object orig)
          Return an unproxied copy of the given instance.
 ChangeTracker getChangeTracker()
          Return the change tracker for this proxy, or null if none.
 OpenJPAStateManager getOwner()
          Return the owning object.
 int getOwnerField()
          Return the owning field index.
 java.util.Iterator iterator()
           
 java.util.ListIterator listIterator()
           
 java.util.ListIterator listIterator(int index)
           
 ProxyCollection newInstance(java.lang.Class elementType, java.util.Comparator compare, boolean trackChanges, OpenJPAConfiguration conf)
          This method should return a new proxy of the same concrete type as the implementing class.
 java.lang.Object remove(int index)
           
 boolean remove(java.lang.Object o)
           
 boolean removeAll(java.util.Collection c)
           
 java.lang.Object removeFirst()
           
 java.lang.Object removeLast()
           
 boolean retainAll(java.util.Collection c)
           
 java.lang.Object set(int index, java.lang.Object element)
           
 void setOwner(OpenJPAStateManager sm, int field)
          Reset the state of the proxy, and set the owning instance of the proxy and the name of the field it is assigned to.
protected  java.lang.Object writeReplace()
           
 
Methods inherited from class java.util.LinkedList
clone, contains, element, get, getFirst, getLast, indexOf, lastIndexOf, offer, peek, poll, remove, size, toArray, toArray
 
Methods inherited from class java.util.AbstractList
equals, hashCode, removeRange, subList
 
Methods inherited from class java.util.AbstractCollection
containsAll, isEmpty, toString
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.List
containsAll, equals, hashCode, isEmpty, subList
 

Constructor Detail

ProxyLinkedList

public ProxyLinkedList()

ProxyLinkedList

public ProxyLinkedList(java.lang.Class elementType,
                       boolean trackChanges,
                       OpenJPAConfiguration conf)
Method Detail

setOwner

public void setOwner(OpenJPAStateManager sm,
                     int field)
Description copied from interface: Proxy
Reset the state of the proxy, and set the owning instance of the proxy and the name of the field it is assigned to. Set to null to indicate that the proxy is no longer managed.

Specified by:
setOwner in interface Proxy

getOwner

public OpenJPAStateManager getOwner()
Description copied from interface: Proxy
Return the owning object.

Specified by:
getOwner in interface Proxy

getOwnerField

public int getOwnerField()
Description copied from interface: Proxy
Return the owning field index.

Specified by:
getOwnerField in interface Proxy

getChangeTracker

public ChangeTracker getChangeTracker()
Description copied from interface: Proxy
Return the change tracker for this proxy, or null if none.

Specified by:
getChangeTracker in interface Proxy

copy

public java.lang.Object copy(java.lang.Object orig)
Description copied from interface: Proxy
Return an unproxied copy of the given instance. This method is used by proxy managers to create backup values for use in rollback.

Specified by:
copy in interface Proxy

newInstance

public ProxyCollection newInstance(java.lang.Class elementType,
                                   java.util.Comparator compare,
                                   boolean trackChanges,
                                   OpenJPAConfiguration conf)
Description copied from interface: ProxyCollection
This method should return a new proxy of the same concrete type as the implementing class. Used by the ProxyManager factories: one template instance of each type is created for the purpose of producing new instances via this method. Overcomes the performance penalties of reflection.

Specified by:
newInstance in interface ProxyCollection

add

public void add(int index,
                java.lang.Object value)
Specified by:
add in interface java.util.List
Overrides:
add in class java.util.LinkedList

add

public boolean add(java.lang.Object value)
Specified by:
add in interface java.util.Collection
Specified by:
add in interface java.util.List
Overrides:
add in class java.util.LinkedList

addFirst

public void addFirst(java.lang.Object value)
Overrides:
addFirst in class java.util.LinkedList

addLast

public void addLast(java.lang.Object value)
Overrides:
addLast in class java.util.LinkedList

addAll

public boolean addAll(int index,
                      java.util.Collection values)
Specified by:
addAll in interface java.util.List
Overrides:
addAll in class java.util.LinkedList

addAll

public boolean addAll(java.util.Collection values)
Specified by:
addAll in interface java.util.Collection
Specified by:
addAll in interface java.util.List
Overrides:
addAll in class java.util.LinkedList

clear

public void clear()
Specified by:
clear in interface java.util.Collection
Specified by:
clear in interface java.util.List
Overrides:
clear in class java.util.LinkedList

iterator

public java.util.Iterator iterator()
Specified by:
iterator in interface java.lang.Iterable
Specified by:
iterator in interface java.util.Collection
Specified by:
iterator in interface java.util.List
Overrides:
iterator in class java.util.AbstractSequentialList

listIterator

public java.util.ListIterator listIterator()
Specified by:
listIterator in interface java.util.List
Overrides:
listIterator in class java.util.AbstractList

listIterator

public java.util.ListIterator listIterator(int index)
Specified by:
listIterator in interface java.util.List
Overrides:
listIterator in class java.util.LinkedList

remove

public java.lang.Object remove(int index)
Specified by:
remove in interface java.util.List
Overrides:
remove in class java.util.LinkedList

remove

public boolean remove(java.lang.Object o)
Specified by:
remove in interface java.util.Collection
Specified by:
remove in interface java.util.List
Overrides:
remove in class java.util.LinkedList

removeFirst

public java.lang.Object removeFirst()
Overrides:
removeFirst in class java.util.LinkedList

removeLast

public java.lang.Object removeLast()
Overrides:
removeLast in class java.util.LinkedList

removeAll

public boolean removeAll(java.util.Collection c)
Specified by:
removeAll in interface java.util.Collection
Specified by:
removeAll in interface java.util.List
Overrides:
removeAll in class java.util.AbstractCollection

retainAll

public boolean retainAll(java.util.Collection c)
Specified by:
retainAll in interface java.util.Collection
Specified by:
retainAll in interface java.util.List
Overrides:
retainAll in class java.util.AbstractCollection

set

public java.lang.Object set(int index,
                            java.lang.Object element)
Specified by:
set in interface java.util.List
Overrides:
set in class java.util.LinkedList

writeReplace

protected java.lang.Object writeReplace()
                                 throws java.io.ObjectStreamException
Throws:
java.io.ObjectStreamException


Copyright © 2006 Apache Software Foundation. All Rights Reserved.