/******************************************************************************* | |
* Copyright (c) 1998, 2013 Oracle and/or its affiliates. All rights reserved. | |
* This program and the accompanying materials are made available under the | |
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 | |
* which accompanies this distribution. | |
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html | |
* and the Eclipse Distribution License is available at | |
* http://www.eclipse.org/org/documents/edl-v10.php. | |
* | |
* Contributors: | |
* * 08/15/2008-1.0.1 Chris Delahunt | |
* - 237545: List attribute types on OneToMany using @OrderBy does not work with attribute change tracking | |
******************************************************************************/ | |
package org.eclipse.persistence.internal.sessions; | |
import java.io.Serializable; | |
/** | |
* INTERNAL: | |
* This is used to keep information on a single collection change for attribute change tracking on ordered lists. | |
* They are referenced by CollectionChangeRecords to keep track of all collection changes, the type of change and the index | |
* in the order they occur. | |
* | |
* @author Chris Delahunt | |
* @since EclipseLink 1.0.1 | |
*/ | |
public class OrderedChangeObject implements Serializable{ | |
int changeType; | |
Integer index; | |
ObjectChangeSet changeSet; | |
transient Object addedOrRemovedObject; | |
public OrderedChangeObject(int changeType, Integer index, ObjectChangeSet changeSet) { | |
this(changeType, index, changeSet, null); | |
} | |
public OrderedChangeObject(int changeType, Integer index, ObjectChangeSet changeSet, Object addedOrRemovedObject) { | |
this.changeType = changeType; | |
this.index = index; | |
this.changeSet = changeSet; | |
this.addedOrRemovedObject = addedOrRemovedObject; | |
} | |
public Object getAddedOrRemovedObject() { | |
return this.addedOrRemovedObject; | |
} | |
/** | |
* INTERNAL: | |
* Return the type of collection change operation (CollectionChangeEvent.REMOVE or CollectionChangeEvent.ADD) | |
*/ | |
public int getChangeType(){ | |
return changeType; | |
} | |
/** | |
* INTERNAL: | |
* Set the type of collection change operation this object represents (CollectionChangeEvent.REMOVE or CollectionChangeEvent.ADD) | |
*/ | |
public void setChangeType(int changeType){ | |
this.changeType = changeType; | |
} | |
/** | |
* INTERNAL: | |
* Return the index the change was made to the collection. Null represents a non indexed | |
* add/remove operation. | |
*/ | |
public Integer getIndex(){ | |
return index; | |
} | |
/** | |
* INTERNAL: | |
* Set the index the change was made to the collection. Null represents a non indexed | |
* add/remove operation. | |
*/ | |
public void setIndex(Integer index){ | |
this.index = index; | |
} | |
/** | |
* INTERNAL: | |
* Return the ObjectChangeSet representing the change made to the collection | |
*/ | |
public ObjectChangeSet getChangeSet(){ | |
return changeSet; | |
} | |
/** | |
* INTERNAL: | |
* Set the ObjectChangeSet representing the change made to the collection | |
*/ | |
public void setChangeSet(ObjectChangeSet changeSet){ | |
this.changeSet = changeSet; | |
} | |
} |