亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? bag.java

?? 用Java實(shí)現(xiàn)的23個(gè)常用設(shè)計(jì)模式源代碼
?? JAVA
字號(hào):
//$Id: Bag.java,v 1.16.2.8 2003/11/21 08:53:04 oneovthafew Exp $package net.sf.hibernate.collection;import java.io.Serializable;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;import java.util.List;import java.util.ListIterator;import org.odmg.DBag;import net.sf.hibernate.HibernateException;import net.sf.hibernate.engine.SessionImplementor;import net.sf.hibernate.type.Type;/** * An unordered, unkeyed collection that can contain the same element * multiple times. The Java collections API, bizarrely, has no <tt>Bag</tt>. * Most developers seem to use <tt>List</tt>s to represent bag semantics, * so Hibernate follows this practice. *  * @author Gavin King */public class Bag extends ODMGCollection implements DBag, java.util.List {		private java.util.List bag;		public Bag(SessionImplementor session) {		super(session);	}		public Bag(SessionImplementor session, java.util.Collection coll) {		super(session);		if (coll instanceof java.util.List) {			bag = (java.util.List) coll;		}		else {			bag = new ArrayList();			Iterator iter = coll.iterator();			while ( iter.hasNext() ) {				bag.add( iter.next() );			}		}		setInitialized(true);		setDirectlyAccessible(true);	}		public Bag() {} //needed for SOAP libraries, etc	public boolean isWrapper(Object collection) {		return bag==collection;	}	public boolean empty() {		return bag.isEmpty();	}		/**	 * @see PersistentCollection#entries()	 */	public Iterator entries() {		return bag.iterator();	}			/**	 * @see PersistentCollection#readFrom(ResultSet, CollectionPersister, Object)	 */	public Object readFrom(ResultSet rs, CollectionPersister persister, Object owner) throws HibernateException, SQLException {		// note that if we load this collection from a cartesian product		// the multiplicity would be broken ... so use an idbag instead		Object element = persister.readElement( rs, owner, getSession() ) ;		bag.add(element);		return element;	}		/**	 * @see PersistentCollection#writeTo(PreparedStatement, CollectionPersister, Object, int, boolean)	 */	public void writeTo(PreparedStatement st, CollectionPersister persister, Object entry, int i, boolean writeOrder)	throws HibernateException, SQLException {		persister.writeElement( st, entry, writeOrder, getSession() );	}		/**	 * @see PersistentCollection#beforeInitialize(CollectionPersister persister)	 */	public void beforeInitialize(CollectionPersister persister) {		this.bag = new ArrayList();	}		/**	 * @see PersistentCollection#equalsSnapshot(Type elementType)	 */	public boolean equalsSnapshot(Type elementType) throws HibernateException {		java.util.List sn = (java.util.List) getSnapshot();		if ( sn.size()!=bag.size() ) return false;		Iterator iter = bag.iterator();		while ( iter.hasNext() ) {			Object elt = iter.next();			if ( countOccurrences(elt, bag, elementType)!=countOccurrences(elt, sn, elementType) ) return false;		}		return true;	}		private int countOccurrences(Object element, java.util.List list, Type elementType) throws HibernateException {		Iterator iter = list.iterator();		int result=0;		while ( iter.hasNext() ) {			if ( elementType.equals( element, iter.next() ) ) result++;		}		return result;	}			/**	 * @see PersistentCollection#snapshot(CollectionPersister persister)	 */	protected Serializable snapshot(CollectionPersister persister)	throws HibernateException {		ArrayList clonedList = new ArrayList( bag.size() );		Iterator iter = bag.iterator();		while ( iter.hasNext() ) {			clonedList.add( persister.getElementType().deepCopy( iter.next() ) );		}		return clonedList;	}		public Collection getOrphans(Serializable snapshot) throws HibernateException {		ArrayList result = new ArrayList( (java.util.List) snapshot );		PersistentCollection.identityRemoveAll( result, bag, getSession() );		return result;	}		/**	 * @see PersistentCollection#disassemble(CollectionPersister persister)	 */	public Serializable disassemble(CollectionPersister persister)	throws HibernateException {				int length = bag.size();		Serializable[] result = new Serializable[length];		for ( int i=0; i<length; i++ ) {			result[i] = persister.getElementType().disassemble( bag.get(i), getSession() );		}		return result;	}		public Bag(SessionImplementor session, CollectionPersister persister, Serializable disassembled, Object owner)	throws HibernateException {		super(session);		beforeInitialize(persister);		Serializable[] array = (Serializable[]) disassembled;		for ( int i=0; i<array.length; i++ ) {			bag.add( persister.getElementType().assemble( array[i], session, owner ) );		}		setInitialized(true);	}		public boolean needsRecreate(CollectionPersister persister) {		return !persister.isOneToMany();	}			// For a one-to-many, a <bag> is not really a bag;	// it is *really* a set, since it can't contain the	// same element twice. It could be considered a bug	// in the mapping dtd that <bag> allows <one-to-many>.			// Anyway, here we implement <set> semantics for a	// <one-to-many> <bag>!			public Iterator getDeletes(Type elemType) throws HibernateException {		//if ( !persister.isOneToMany() ) throw new AssertionFailure("Not implemented for Bags");		ArrayList deletes = new ArrayList();		java.util.List sn = (java.util.List) getSnapshot();		Iterator olditer = sn.iterator();		int i=0;		while ( olditer.hasNext() ) {			Object old = olditer.next();			Iterator newiter = bag.iterator();			boolean found = false;			if ( bag.size()>i && elemType.equals( old, bag.get(i++) ) ) {			//a shortcut if its location didn't change!				found = true; 			}			else {				//search for it				while ( newiter.hasNext() ) {					if ( elemType.equals( old, newiter.next() ) ) {						found = true;						break;					}				}			}			if (!found) deletes.add(old);		}		return deletes.iterator();	}		public boolean needsInserting(Object entry, int i, Type elemType) throws HibernateException {		//if ( !persister.isOneToMany() ) throw new AssertionFailure("Not implemented for Bags");		java.util.List sn = (java.util.List) getSnapshot();		if ( sn.size()>i && elemType.equals( sn.get(i), entry ) ) {		//a shortcut if its location didn't change!			return false;		}		else {			//search for it			Iterator olditer = sn.iterator();			while ( olditer.hasNext() ) {				Object old = olditer.next();				if ( elemType.equals(old, entry) ) return false;			}			return true;		}	}		public boolean needsUpdating(Object entry, int i, Type elemType) {		//if ( !persister.isOneToMany() ) throw new AssertionFailure("Not implemented for Bags");		return false;	}		/**	 * @see java.util.Collection#size()	 */	public int size() {		read();		return bag.size();	}		/**	 * @see java.util.Collection#isEmpty()	 */	public boolean isEmpty() {		read();		return bag.isEmpty();	}		/**	 * @see java.util.Collection#contains(Object)	 */	public boolean contains(Object o) {		read();		return bag.contains(o);	}		/**	 * @see java.util.Collection#iterator()	 */	public Iterator iterator() {		read();		return new IteratorProxy( bag.iterator() );	}		/**	 * @see java.util.Collection#toArray()	 */	public Object[] toArray() {		read();		return bag.toArray();	}		/**	 * @see java.util.Collection#toArray(Object[])	 */	public Object[] toArray(Object[] a) {		read();		return bag.toArray(a);	}		/**	 * @see java.util.Collection#add(Object)	 */	public boolean add(Object o) {		if ( !queueAdd(o) ) {			write();			return bag.add(o);		}		else {			return true;		}	}		/**	 * @see java.util.Collection#remove(Object)	 */	public boolean remove(Object o) {		write();		return bag.remove(o);	}		/**	 * @see java.util.Collection#containsAll(Collection)	 */	public boolean containsAll(Collection c) {		read();		return bag.containsAll(c);	}		/**	 * @see java.util.Collection#addAll(Collection)	 */	public boolean addAll(Collection c) {		if ( c.size()==0 ) return false;		if ( !queueAddAll(c) ) {			write();			return bag.addAll(c);		}		else {			return c.size()>0;		}	}		public void delayedAddAll(Collection c) {		bag.addAll(c);	}		/**	 * @see java.util.Collection#removeAll(Collection)	 */	public boolean removeAll(Collection c) {		if ( c.size()>0 ) {			write();			return bag.removeAll(c);		}		else {			return false;		}	}		/**	 * @see java.util.Collection#retainAll(Collection)	 */	public boolean retainAll(Collection c) {		write();		return bag.retainAll(c);	}		/**	 * @see java.util.Collection#clear()	 */	public void clear() {		write();		bag.clear();	}		/**	 * @see PersistentCollection#getIndex(Object, int)	 */	public Object getIndex(Object entry, int i) {		throw new UnsupportedOperationException("Bags don't have indexes");	}		public DBag difference(DBag otherBag) {		//TODO: perhaps not correct semantics - is it supposed to be symmetric?		read();		ArrayList list = new ArrayList( this.bag.size() );		list.addAll(bag);		list.removeAll(otherBag);		return new Bag(getSession(), list);	}		public DBag intersection(DBag otherBag) {		read();		ArrayList list = new ArrayList( this.bag.size() );		list.addAll(bag);		list.retainAll(otherBag);		return new Bag( getSession(), list );	}		public int occurrences(Object o) {		read();		Iterator iter = bag.iterator();		int result=0;		while ( iter.hasNext() ) {			if ( o.equals( iter.next() ) ) result++;		}		return result;	}		public DBag union(DBag otherBag) {		read();		ArrayList list = new ArrayList( this.bag.size() + otherBag.size() );		list.addAll(otherBag);		list.addAll(bag);		return new Bag( getSession(), list );	}		// List OPERATIONS:		/**	 * @see java.util.List#add(int, Object)	 */	public void add(int i, Object o) {		write();		bag.add(i, o);	}		/**	 * @see java.util.List#addAll(int, Collection)	 */	public boolean addAll(int i, Collection c) {		if ( c.size()>0 ) {			write();			return bag.addAll(i, c);		}		else {			return false;		}	}		/**	 * @see java.util.List#get(int)	 */	public Object get(int i) {		read();		return bag.get(i);	}		/**	 * @see java.util.List#indexOf(Object)	 */	public int indexOf(Object o) {		read();		return bag.indexOf(o);	}		/**	 * @see java.util.List#lastIndexOf(Object)	 */	public int lastIndexOf(Object o) {		read();		return bag.lastIndexOf(o);	}		/**	 * @see java.util.List#listIterator()	 */	public ListIterator listIterator() {		read();		return new ListIteratorProxy( bag.listIterator() );	}		/**	 * @see java.util.List#listIterator(int)	 */	public ListIterator listIterator(int i) {		read();		return new ListIteratorProxy( bag.listIterator(i) );	}		/**	 * @see java.util.List#remove(int)	 */	public Object remove(int i) {		write();		return bag.remove(i);	}		/**	 * @see java.util.List#set(int, Object)	 */	public Object set(int i, Object o) {		write();		return bag.set(i, o);	}		/**	 * @see java.util.List#subList(int, int)	 */	public List subList(int start, int end) {		read();		return new ListProxy( bag.subList(start, end) );	}		public String toString() {		read();		return bag.toString();	}		/*public boolean equals(Object other) {		read();		return bag.equals(other);	}		public int hashCode(Object other) {		read();		return bag.hashCode();	}*/		/**	 * @see PersistentCollection#entryExists(java.lang.Object, int)	 */	public boolean entryExists(Object entry, int i) {		return entry!=null;	}}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区三区日韩| 99久久久免费精品国产一区二区 | 国产成人综合在线播放| 在线亚洲精品福利网址导航| 亚洲欧美成人一区二区三区| 色婷婷国产精品综合在线观看| www.亚洲激情.com| 精品视频在线看| 一区二区三区在线高清| 国产欧美日本一区视频| 日韩一区二区三区免费看| 日韩欧美一级精品久久| 国产精品亲子伦对白| 亚洲欧洲日韩女同| 久久久精品一品道一区| 中文字幕欧美日韩一区| 亚洲成人av一区二区三区| 中文字幕一区二区三区在线观看| 成人av电影免费在线播放| 精品成人一区二区| 97se狠狠狠综合亚洲狠狠| www激情久久| 欧美性猛交xxxxxx富婆| 久久aⅴ国产欧美74aaa| 日韩你懂的在线观看| 亚洲国产乱码最新视频| 欧美一区二区视频免费观看| 亚洲成人7777| 亚洲综合一区在线| 欧美性一级生活| 5月丁香婷婷综合| 国产亚洲欧美日韩日本| 日本一区二区三区视频视频| 色综合天天做天天爱| 亚洲福利视频导航| 精品成人免费观看| 99re热视频精品| 免费在线视频一区| 中文字幕欧美区| 欧美挠脚心视频网站| 国产一区在线观看视频| 综合欧美一区二区三区| 在线综合视频播放| 成人福利电影精品一区二区在线观看 | 国产一区二区福利视频| 中文字幕在线不卡视频| 欧美一区二区三区免费观看视频| 成人精品视频.| 五月婷婷激情综合| 日本一区二区三区四区| 91精品国产色综合久久不卡电影 | 国产福利一区二区三区| 五月激情综合婷婷| 国产精品免费丝袜| 精品国产一区二区三区久久久蜜月| 色偷偷88欧美精品久久久| 韩国一区二区三区| 午夜在线成人av| 国产精品国产三级国产aⅴ中文 | 欧美不卡一区二区| 欧美亚洲精品一区| 国产大陆精品国产| 美女尤物国产一区| 一区二区三区 在线观看视频| 精品久久久久香蕉网| 自拍偷拍国产精品| 久久人人97超碰com| 欧美老肥妇做.爰bbww| 99久久综合狠狠综合久久| 久久成人免费网| 午夜精品一区二区三区三上悠亚| 日本一区二区成人在线| 日韩欧美www| 欧美三级一区二区| 色先锋久久av资源部| 粉嫩绯色av一区二区在线观看 | 国产乱码精品一区二区三区av| 欧美久久久久久久久久| 精品福利二区三区| 日韩激情一二三区| 色哟哟精品一区| 国产欧美日韩亚州综合| 久久成人av少妇免费| 色噜噜狠狠一区二区三区果冻| 久久精品在这里| 国产呦萝稀缺另类资源| 91麻豆精品91久久久久久清纯| 国产精品美日韩| 国产成人亚洲精品青草天美| 91精品国产欧美日韩| 亚洲va天堂va国产va久| 色天使色偷偷av一区二区| 欧美经典三级视频一区二区三区| 免费高清在线一区| 制服.丝袜.亚洲.中文.综合| 亚洲男同1069视频| 欧美日韩高清一区二区| 免费亚洲电影在线| 欧美精品免费视频| 国产麻豆日韩欧美久久| 国产欧美精品一区二区三区四区 | 老司机一区二区| 亚洲欧美日韩一区| 久久新电视剧免费观看| 91在线观看高清| 97se亚洲国产综合自在线不卡| 久久免费看少妇高潮| 日韩视频123| 欧美变态口味重另类| 欧美xxxxxxxx| 精品精品欲导航| 26uuu久久天堂性欧美| 久久久午夜精品理论片中文字幕| 精品免费国产一区二区三区四区| 一本久久a久久免费精品不卡| 亚洲免费视频中文字幕| 欧美群妇大交群的观看方式| 日韩二区三区四区| 久久久国产午夜精品| 国产91在线观看丝袜| 国产精品美女久久久久久| 成人综合婷婷国产精品久久免费| 18成人在线观看| 555www色欧美视频| 欧美日韩视频在线观看一区二区三区| gogo大胆日本视频一区| 99精品国产热久久91蜜凸| 北条麻妃一区二区三区| jizz一区二区| 在线视频国内一区二区| 欧美精品乱人伦久久久久久| 欧美草草影院在线视频| 欧美亚洲一区二区在线观看| 蜜臀精品久久久久久蜜臀| 欧美刺激脚交jootjob| 日韩免费高清av| 精品国产青草久久久久福利| 久久精品一区二区三区不卡 | 亚洲最新视频在线观看| 欧美成人精精品一区二区频| 日韩一区二区在线看| 欧美精品一区二区三区一线天视频| 欧美年轻男男videosbes| 91丨九色丨蝌蚪丨老版| 欧美色男人天堂| 欧美三级电影一区| 久久国产成人午夜av影院| 亚洲大尺度视频在线观看| 老司机精品视频一区二区三区| 亚洲三级在线免费观看| 亚洲图片有声小说| 国内国产精品久久| 成人av免费在线| 97精品久久久午夜一区二区三区 | 欧美日韩国产高清一区二区| 日韩精品一区二区三区在线播放| 久久婷婷成人综合色| 亚洲青青青在线视频| 热久久一区二区| aaa亚洲精品| 欧美一区二区三区视频在线观看| 国产网红主播福利一区二区| 一区二区三区在线免费视频| 九色综合狠狠综合久久| 91日韩在线专区| 日韩你懂的在线播放| 成人av电影免费观看| 欧美色视频在线| 欧美精彩视频一区二区三区| 午夜精彩视频在线观看不卡| 国产精品18久久久久久久久久久久 | 91网站在线观看视频| 69p69国产精品| 国产精品福利一区二区三区| 日韩精品亚洲专区| 不卡一卡二卡三乱码免费网站| 欧美放荡的少妇| 国产欧美久久久精品影院| 三级影片在线观看欧美日韩一区二区 | 成人av在线播放网址| 国产suv精品一区二区883| 国产在线播放一区二区三区 | 久久久亚洲欧洲日产国码αv| 久久婷婷一区二区三区| 国产日韩欧美精品在线| 亚洲欧美偷拍卡通变态| 亚洲精品免费视频| 视频一区在线播放| 另类专区欧美蜜桃臀第一页| 午夜精品久久久久影视| 亚洲国产sm捆绑调教视频| 亚洲电影一区二区三区| 爽爽淫人综合网网站| 久久精品国产77777蜜臀| 国产精品一区二区无线| 91网址在线看| 久久久久久电影| 国产精品免费久久| 国产成人免费xxxxxxxx| 欧美丝袜丝nylons|