org.eclipse.persistence.mappings.structures.ArrayCollectionMapping Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of eclipselink Show documentation
Show all versions of eclipselink Show documentation
EclipseLink build based upon Git transaction 346465e
/*******************************************************************************
* 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:
* Oracle - initial API and implementation from Oracle TopLink
******************************************************************************/
package org.eclipse.persistence.mappings.structures;
import org.eclipse.persistence.internal.sessions.AbstractSession;
import org.eclipse.persistence.internal.sessions.MergeManager;
import org.eclipse.persistence.internal.sessions.ObjectChangeSet;
import org.eclipse.persistence.mappings.ContainerMapping;
/**
* Interface used by the ArrayCollectionMappingHelper
to interact
* with the assorted array collection mappings.
* @see ArrayCollectionMappingHelper
*/
public interface ArrayCollectionMapping extends ContainerMapping{
/**
* Build and return a newly-added element based on the change set.
*/
Object buildAddedElementFromChangeSet(Object changeSet, MergeManager mergeManager, AbstractSession targetSession);
/**
* Build and return a change set for the specified element.
*/
Object buildChangeSet(Object element, ObjectChangeSet owner, AbstractSession session);
/**
* Build and return a new element based on the specified element.
*/
Object buildElementFromElement(Object element, MergeManager mergeManager, AbstractSession targetSession);
/**
* Build and return a recently-removed element based on the change set.
*/
Object buildRemovedElementFromChangeSet(Object changeSet, MergeManager mergeManager, AbstractSession targetSession);
/**
* Compare the non-null elements and return true if they are alike.
*/
boolean compareElements(Object element1, Object element2, AbstractSession session);
/**
* Compare the non-null elements and return true if they are alike.
* This is used to build a change record.
*/
boolean compareElementsForChange(Object element1, Object element2, AbstractSession session);
/**
* Return the mapping's attribute name.
*/
String getAttributeName();
/**
* Return the attribute value from the specified object,
* unwrapping the value holder if necessary.
* If the value is null, build a new container.
*/
Object getRealCollectionAttributeValueFromObject(Object object, AbstractSession session);
/**
* Return whether the element's user-defined Map key has changed
* since it was cloned from the original version.
*/
boolean mapKeyHasChanged(Object element, AbstractSession session);
/**
* Set the attribute value for the specified object,
* wrapping it in a value holder if necessary.
*/
void setRealAttributeValueInObject(Object object, Object attributeValue);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy