abstractcollectionevent.java

来自「hibernate-distribution-3.3.1.GA-dist.zip」· Java 代码 · 共 139 行

JAVA
139
字号
/* * Hibernate, Relational Persistence for Idiomatic Java * * Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as * indicated by the @author tags or express copyright attribution * statements applied by the authors.  All third-party contributions are * distributed under license by Red Hat Middleware LLC. * * This copyrighted material is made available to anyone wishing to use, modify, * copy, or redistribute it subject to the terms and conditions of the GNU * Lesser General Public License, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License * for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this distribution; if not, write to: * Free Software Foundation, Inc. * 51 Franklin Street, Fifth Floor * Boston, MA  02110-1301  USA * */package org.hibernate.event;import java.io.Serializable;import org.hibernate.collection.PersistentCollection;import org.hibernate.engine.CollectionEntry;import org.hibernate.engine.EntityEntry;import org.hibernate.persister.collection.CollectionPersister;/** * Defines a base class for events involving collections. * * @author Gail Badner */public abstract class AbstractCollectionEvent extends AbstractEvent {	private final PersistentCollection collection;	private final Object affectedOwner;	private final Serializable affectedOwnerId;	private final String affectedOwnerEntityName;	/**	 * Constructs an AbstractCollectionEvent object.	 *	 * @param collection - the collection	 * @param source - the Session source	 * @param affectedOwner - the owner that is affected by this event;	 * can be null if unavailable	 * @param affectedOwnerId - the ID for the owner that is affected	 * by this event; can be null if unavailable	 * that is affected by this event; can be null if unavailable	 */	public AbstractCollectionEvent( CollectionPersister collectionPersister,					PersistentCollection collection,					EventSource source,					Object affectedOwner,					Serializable affectedOwnerId) {		super(source);		this.collection = collection;		this.affectedOwner = affectedOwner;		this.affectedOwnerId = affectedOwnerId;		this.affectedOwnerEntityName =				getAffectedOwnerEntityName( collectionPersister, affectedOwner, source );	}	protected static CollectionPersister getLoadedCollectionPersister( PersistentCollection collection, EventSource source ) {		CollectionEntry ce = source.getPersistenceContext().getCollectionEntry( collection );		return ( ce == null ? null : ce.getLoadedPersister() );			}	protected static Object getLoadedOwnerOrNull( PersistentCollection collection, EventSource source ) {		return source.getPersistenceContext().getLoadedCollectionOwnerOrNull( collection );	}	protected static Serializable getLoadedOwnerIdOrNull( PersistentCollection collection, EventSource source ) {		return source.getPersistenceContext().getLoadedCollectionOwnerIdOrNull( collection );	}	protected static Serializable getOwnerIdOrNull( Object owner, EventSource source ) {		EntityEntry ownerEntry = source.getPersistenceContext().getEntry( owner );		return ( ownerEntry == null ? null : ownerEntry.getId() );	}	protected static String getAffectedOwnerEntityName(CollectionPersister collectionPersister, Object affectedOwner, EventSource source ) {		// collectionPersister should not be null, but we don't want to throw		// an exception if it is null		String entityName =				( collectionPersister == null ? null : collectionPersister.getOwnerEntityPersister().getEntityName() );		if ( affectedOwner != null ) {			EntityEntry ee = source.getPersistenceContext().getEntry( affectedOwner );			if ( ee != null && ee.getEntityName() != null) {				entityName = ee.getEntityName();			}		}			return entityName;	}	public PersistentCollection getCollection() {		return collection;	}	/**	 * Get the collection owner entity that is affected by this event.	 *	 * @return the affected owner; returns null if the entity is not in the persistence context	 * (e.g., because the collection from a detached entity was moved to a new owner)	 */	public Object getAffectedOwnerOrNull() {		return affectedOwner;	}	/**	 * Get the ID for the collection owner entity that is affected by this event.	 *	 * @return the affected owner ID; returns null if the ID cannot be obtained	 * from the collection's loaded key (e.g., a property-ref is used for the	 * collection and does not include the entity's ID)	 */	public Serializable getAffectedOwnerIdOrNull() {		return affectedOwnerId;	}	/**	 * Get the entity name for the collection owner entity that is affected by this event.	 *	 * @return the entity name; if the owner is not in the PersistenceContext, the	 * returned value may be a superclass name, instead of the actual class name	 */	public String getAffectedOwnerEntityName() {		return affectedOwnerEntityName;	}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?