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

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

?? referenceset.java

?? 一個(gè)關(guān)于java 的常用工具包
?? JAVA
字號(hào):
package org.jutil.relation;import org.jutil.java.collections.Visitor;import java.util.HashSet;import java.util.Set;import java.util.List;import java.util.ArrayList;import org.jutil.java.collections.ForAll;/** * <p>A class of Relation components for implementing a binding in which the object of * the Reference has a relation with N other objects. This component behaves as a set.</p> * * <center><img src="doc-files/ReferenceSet.png"/></center> * * <p>In UML this class is used for implementing multiplicity n:</p> * * <center><img src="doc-files/referenceset_uml.png"/></center> * * <p>In Java, you get the following situation.</p> * <center><img src="doc-files/referenceset_java.png"/></center> * * <p>Note that the question mark is represented by a <code>Relation</code> object since * we don't know its multiplicity. The double binding between the <code>ReferenceSet</code>  * object and <code>A</code> is made by passing <code>this</code> to the constructor of  * ReferenceSet.</p> * * <p>This is actually a lightweight version of the APSet class. * of the <a href="http://www.beedra.org">Beedra</a> framework of Jan Dockx.</p> * * <p>This class is typically using in the following way. * <pre><code> *public class A { * *  public A() { *    _b= new ReferenceSet(this); *  } * *  public List getBs() { *    return _b.getOtherEnds(); *  } * *  // public Set getBs() { *  //   return new TreeSet(_b.getOtherEnds()); *  // } * *  public void addB(B b) { *    _b.add(b.getALink()); *  } * *  public void removeB(B b) { *    _b.remove(b.getALink()); *  } * *  private ReferenceSet _b; *} * </code></pre> * * <p>The other class must have a method <code>getALink()</code>, which returns a  * <a href="Relation.html"><code>Relation</code></a> object that represents the other side * of the bi-directional binding. In case the two classes are not in the same package that means * that <code>getALink()</code> must be <code>public</code> there, but that is also the case when * not working with these components. Note that if the binding should not be mutable from class  * <code>A</code> the <code>addB()</code> may be removed. Similarly, <code>getBLink()</code> may  * be removed if the binding is not mutable from class <code>B</code>.</p> * * <p>If <code>getBs()</code> must return a Set, you should add the result of <code>_b.getOtherEnds()</code> * to a new Set (e.g. TreeSet). The general method <code>getOtherEnds()</code> must return a <code>List</code> * because in some bindings the order may be important.</p> * * @path    $Source: /cvsroot/org-jutil/jutil.org/src/org/jutil/relation/ReferenceSet.java,v $ * @version $Revision: 1.9 $ * @date    $Date: 2002/09/08 14:47:11 $ * @state   $State: Exp $ * @author  Marko van Dooren * @release $Name:  $ */public class ReferenceSet extends Relation {  	/* The revision of this class */	public final static String CVS_REVISION ="$Revision: 1.9 $"; //@ public invariant contains(null) == false; //@ public invariant getObject() != null;  /*@    @ public invariant (\forall Relation e; contains(e);   @                    e.contains(this));   @*/  /**   * Initialize an empty ReferenceSet for the given object.   *   * @param object   *        The object on this side of the binding   */ /*@   @ public behavior   @   @ pre object != null;   @   @ post getObject() == object;   @ post (\forall Relation r;; !contains(r));   @*/  public ReferenceSet(Object object) {    super(object);    _elements = new HashSet();  }    /**   * Remove the given Relation from this ReferenceSet.   *   * @param element   *        The Relation to be removed.   */ /*@   @ public behavior   @   @ pre other != null;   @   @ post unregistered(\old(getOtherRelations()), other);   @ post other.unregistered(\old(other.getOtherRelations()), this);   @*/    public void remove(Relation other) {    if (contains(other)) {      other.unregister(this);      unregister(other);    }  }  /**   * Add the given Relation to this ReferenceSet.   *   * @param element   *        The Relation to be added.   */ /*@   @ public behavior   @   @ pre element != null;   @   @ post registered(\old(getOtherRelations()), element);   @ post element.registered(\old(element.getOtherRelations()),this);   @*/    public void add(Relation element) {    element.register(this);    register(element);  }        /**   * Return a set containing the objects at the   * n side of the 1-n binding.   */ /*@   @ also public behavior   @   @ post (\forall Object o;;   @        \result.contains(o) <==>    @        (\exists Relation r; contains(r);   @          r.getObject().equals(o)));   @ post \result != null;   @*/  public List getOtherEnds() {    final List result = new ArrayList();    new Visitor() {      public void visit(Object element) {        result.add(((Relation)element).getObject());      }    }.applyTo(_elements);    return result;  }      /**   * Return a set containing the Relations at the   * other side of this binding.   */ /*@   @ also public behavior   @   @ post (\forall Relation s;;   @       contains(s) <==> \result.contains(s));   @ post \result != null;   @*/  public List getOtherRelations() {    return new ArrayList(_elements);  }    /**   * Remove the given Relation from this ReferenceSet   *   * @param element   *        The element to be removed.   */ /*@   @ also protected behavior   @   @ pre element != null;   @   @ post ! contains(element);   @*/  protected void unregister(Relation element) {    _elements.remove(element);  }        /**   * Add the given Relation to this ReferenceSet   *   * @param element   *        The element to be added.   */ /*@   @ also protected behavior   @   @ pre element != null;   @*/  protected void register(Relation element) {    _elements.add(element);  }   /*@   @ also public behavior   @   @ post \result == (contains(registered)) &&   @                 (\forall Relation r; r != registered;   @                   oldConnections.contains(r) == contains(r)   @                 );   @*/  public boolean registered(List oldConnections, Relation registered) {    return (oldConnections != null) &&           (contains(registered)) &&           new ForAll() {             public boolean criterion(Object o) {               return (o instanceof Relation) && ReferenceSet.this.contains((Relation)o);             }           }.in(_elements);  } /*@   @ also public behavior   @   @ post \result == (oldConnections.contains(unregistered)) &&   @                 (\forall Object o; oldConnections.contains(o); o instanceof Relation) &&   @                 (! contains(unregistered)) &&   @                 (\forall Relation r; r != unregistered;   @                   oldConnections.contains(r) == contains(r));   @*/  public boolean unregistered(List oldConnections, final Relation unregistered) {    // FIXME : implementation is not correct   return (oldConnections != null) &&          (oldConnections.contains(unregistered)) &&          new ForAll() {            public boolean criterion(Object o) {              return o instanceof Relation;            }          }.in(oldConnections) &&           (! contains(unregistered)) &&          new ForAll() {            public boolean criterion(Object o) {              return (o == unregistered) || contains((Relation)o);            }          }.in(oldConnections);  } /*@   @ also public behavior   @   @ post \result == (relation != null);   @*/  protected boolean isValidElement(Relation relation) {    return (relation != null);  }	/**	 * Return the size of the ReferenceSet	 */ /*@	 @ public behavior	 @	 @ post \result == getOtherRelations().size();	 @*/	public int size() {		return _elements.size();  }	  /**   * Check whether or not the given element is connected to   * this ReferenceSet.   *   * @param element   *        The element of which one wants to know if it is in   *        this ReferenceSet.   */  public boolean contains(Relation element) {    return _elements.contains(element);  }    /**   * The set containing the StructureElements at the n side of the 1-n binding.   */ /*@   @ private invariant ! _elements.contains(null);   @ private invariant (\forall Object o; _elements.contains(o);   @                      o instanceof Relation);   @*/  private HashSet _elements;}/*<copyright>Copyright (C) 1997-2001. This software is copyrighted by the people and entities mentioned after the "@author" tags above, on behalf of the JUTIL.ORG Project. The copyright is dated by the dates after the "@date" tags above. All rights reserved.This software is published under the terms of the JUTIL.ORG SoftwareLicense version 1.1 or later, a copy of which has been included withthis distribution in the LICENSE file, which can also be found athttp://org-jutil.sourceforge.net/LICENSE. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the JUTIL.ORG Software License for more details.For more information, please see http://org-jutil.sourceforge.net/</copyright>*/

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品成人一区二区三区四区| 欧美日韩国产综合一区二区| 91精品欧美一区二区三区综合在| 亚洲欧美日韩在线| 国产99久久久国产精品潘金| 欧美大片在线观看| 蜜臀av亚洲一区中文字幕| 91成人在线免费观看| 综合欧美亚洲日本| 在线精品视频小说1| 亚洲一区二区三区爽爽爽爽爽| 色偷偷久久人人79超碰人人澡| 亚洲精品国产视频| 欧美色爱综合网| 日韩电影在线免费看| 欧美精品第一页| 日本伦理一区二区| 大桥未久av一区二区三区中文| 久久尤物电影视频在线观看| 国产真实乱对白精彩久久| 2023国产精品自拍| 欧美精品一二三| 欧美系列日韩一区| 奇米色一区二区三区四区| 久久看人人爽人人| 色先锋资源久久综合| 成人禁用看黄a在线| 亚洲老妇xxxxxx| 国产精品久久福利| 色噜噜狠狠一区二区三区果冻| 国产69精品久久99不卡| 免费成人结看片| 日韩高清在线电影| 天堂蜜桃一区二区三区| 欧美国产精品中文字幕| 一本大道久久a久久综合婷婷| 国产成人精品三级| 一区二区三区成人在线视频| 日韩精品一区国产麻豆| 欧美精品久久一区| 欧美一区三区四区| 99免费精品视频| 午夜精品久久久久影视| 久久久久久久久久久久电影 | 亚洲成人av在线电影| 日韩亚洲欧美高清| aaa国产一区| 不卡视频免费播放| 色一情一伦一子一伦一区| 色婷婷精品久久二区二区蜜臂av| 色88888久久久久久影院按摩 | 一本一本久久a久久精品综合麻豆| 国产不卡高清在线观看视频| 国产成人午夜99999| 成人性视频网站| 91麻豆国产香蕉久久精品| 秋霞午夜鲁丝一区二区老狼| 久久99精品久久久久久动态图| 亚洲精品国产品国语在线app| 亚洲精品国产一区二区精华液| 午夜视频久久久久久| 男人操女人的视频在线观看欧美| 国内精品国产成人| 成人av免费在线| 欧美综合一区二区| 欧美一区二区黄| 国产女人18毛片水真多成人如厕| 制服丝袜国产精品| 久久亚洲精品小早川怜子| 国产精品乱人伦一区二区| 欧美α欧美αv大片| 欧美性做爰猛烈叫床潮| 欧美浪妇xxxx高跟鞋交| 337p日本欧洲亚洲大胆精品| 国产精品午夜在线| 亚洲国产成人精品视频| 中文字幕一区免费在线观看| 国产网站一区二区三区| 久久伊人中文字幕| 1024亚洲合集| 日本美女一区二区三区| 国产v综合v亚洲欧| 欧美一a一片一级一片| 精品国产免费久久 | 国产精品看片你懂得 | 国产裸体歌舞团一区二区| 六月婷婷色综合| 久久国内精品视频| av电影在线观看一区| 91精品国产综合久久久久| 欧美激情在线免费观看| 偷拍亚洲欧洲综合| 成人福利视频网站| 日韩欧美一级二级| 亚洲色欲色欲www| 韩国欧美国产1区| 欧美三区在线视频| 亚洲天堂成人在线观看| 久久99精品国产91久久来源| 色综合天天天天做夜夜夜夜做| 精品国产电影一区二区 | 国内精品免费**视频| 欧美亚洲综合网| 国产亚洲精久久久久久| 日韩经典中文字幕一区| 97久久超碰精品国产| 91国在线观看| 国产欧美精品一区| 久久精品国产精品亚洲红杏| 欧美在线看片a免费观看| 国产亚洲精品久| 蜜臀av在线播放一区二区三区 | 欧美体内she精高潮| 国产三级一区二区三区| 日韩国产精品久久久久久亚洲| 日本韩国欧美国产| 国产精品嫩草影院av蜜臀| 精品一区二区三区的国产在线播放 | 99久久综合精品| 久久嫩草精品久久久精品一| 看电视剧不卡顿的网站| 欧美精品成人一区二区三区四区| 亚洲精品国产a久久久久久| 国产成人在线影院| 欧美精品一区视频| 久久精品国产第一区二区三区| 制服丝袜国产精品| 日本不卡一区二区三区| 欧美日韩精品一区二区三区| 一区二区三区精密机械公司| 99国产精品久| 亚洲日本在线看| 一本色道久久综合亚洲精品按摩| 中文字幕日本不卡| 成人白浆超碰人人人人| 日本一区二区电影| 成a人片国产精品| 中文字幕一区二区三区在线播放| 成人av在线网站| 日本一区二区三区国色天香 | 日韩一级精品视频在线观看| 五月婷婷激情综合网| 欧美精品视频www在线观看| 偷窥少妇高潮呻吟av久久免费| 欧美调教femdomvk| 免费欧美日韩国产三级电影| 日韩精品一区二区三区中文不卡| 美女尤物国产一区| 国产亚洲制服色| 成人av一区二区三区| 亚洲激情男女视频| 欧美日韩另类一区| 蜜臀久久99精品久久久久久9| 精品国产污网站| 大尺度一区二区| 亚洲日本青草视频在线怡红院| 在线观看亚洲精品| 日本成人中文字幕在线视频| 精品国产一区二区三区久久影院 | 偷拍与自拍一区| 日韩欧美电影在线| 福利一区在线观看| 亚洲精品乱码久久久久久日本蜜臀| 欧美三级资源在线| 精品一区二区在线观看| 中文字幕精品三区| 91成人免费电影| 激情小说亚洲一区| 亚洲人成在线观看一区二区| 欧美精品乱码久久久久久按摩| 精品在线你懂的| 最新中文字幕一区二区三区 | 韩国毛片一区二区三区| 国产精品久久久久久户外露出| 欧美日韩在线播放| 国产在线精品一区在线观看麻豆| 亚洲欧洲精品天堂一级| 欧美精品一卡二卡| 成人av在线播放网站| 视频一区二区三区在线| 国产日韩精品一区| 欧美日韩一区三区| 国产成人aaa| 日本不卡的三区四区五区| 中文久久乱码一区二区| 欧美日韩在线播放三区| 国产xxx精品视频大全| 爽爽淫人综合网网站| 国产精品久久久久久妇女6080| 91精品国产一区二区| 成人精品视频一区二区三区尤物| 午夜精品国产更新| 国产精品不卡在线| 欧美mv日韩mv亚洲| 欧美色综合影院| av一区二区三区在线| 久久超碰97人人做人人爱| 亚洲最快最全在线视频| 欧美激情在线看| 精品久久久久久无|