/******************************************************************************* * Copyright (c) 1998, 2015 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.indirection; import java.util.Collection; /** * <b>Purpose</b>: * Common interface to indirect collections. * <p> * * @author James Sutherland * @since TopLink 10.1.3 */ public interface IndirectCollection extends IndirectContainer { /** * INTERNAL: * clear any changes that have been deferred to instantiation. * Indirect collections with change tracking avoid instantiation on add/remove. */ void clearDeferredChanges(); /** * INTERNAL: * Return if the collection has any changes that have been deferred to instantiation. * Indirect collections with change tracking avoid instantiation on add/remove. */ boolean hasDeferredChanges(); /** * INTERNAL: * Return if the collection has any elements added that have been deferred to instantiation. * Indirect collections with change tracking avoid instantiation on add/remove. */ Collection getAddedElements(); /** * INTERNAL: * Return if the collection has any elements removed that have been deferred to instantiation. * Indirect collections with change tracking avoid instantiation on add/remove. */ Collection getRemovedElements(); /** * INTERNAL: * Return the real collection object. * This will force instantiation. */ Object getDelegateObject(); /** * INTERNAL * Set whether this collection should attempt do deal with adds and removes without retrieving the * collection from the dB */ void setUseLazyInstantiation(boolean useLazyInstantiation); }