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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? place.java

?? Rakiura JFern是一個非常輕型的帶有模擬器的Petri網絡框架
?? JAVA
字號:
// This is copyrighted source file, part of Rakiura JFern package. // See the file LICENSE for copyright information and the terms and conditions// for copying, distributing and modifications of Rakiura JFern package.// Copyright (C) 1999-2002 by Mariusz Nowostawski and others  [http://www.rakiura.org]package org.rakiura.cpn;/**/import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;import java.util.List;import org.rakiura.cpn.event.PlaceListener;import org.rakiura.cpn.event.TokensAddedEvent;import org.rakiura.cpn.event.TokensRemovedEvent;/** * Represents a Place in the JFern Petri Net. Place is one of the elementary  * nodes in the Petri Net graph. Place contains tokens which are kept * inside a single multiset structure. * *  *<br><br> * Place.java<br> * Created: Mon Sep 25 21:23:17 2000<br> * *@author  <a href="mariusz@rakiura.org">Mariusz Nowostawski</a> *@version 2.1.0 $Revision: 1.12 $ *@since 2.0 */public class Place extends Node {    /**/  private Multiset multiset;  /**/  private List listeners = new ArrayList();  private List fusionPlaces = new ArrayList();  /**/  private List inputs = new ArrayList(10);  /**/  private List outputs = new ArrayList(10);    /**   * Creates a new <code>Place</code> instance.   */  public Place() {    this.multiset = new Multiset();  }  /**   * Creates a new <code>Place</code> instance    * with a given Place name.   * @param aName this place name.   */  public Place(final String aName) {    super(aName);    this.multiset = new Multiset();  }  /**   * Creates a new <code>Place</code> instance,    * initialized with a given multiset.   * @param aMultiset an initial <code>multiset</code>   */  public Place(final Collection aMultiset) {    this.multiset = new Multiset(aMultiset);  }  /**   * Adds an input Arc. This method is not for the user to call   * directly, it is called by newly created arcs which plug   * themselves automatically to the appropriate place.    *@return this place.    */  public Place addInput(final InputArc anArc){    this.inputs.add(anArc);    return this;  }  /**   * Adds an output Arc. This method is not for the user to call   * directly, it is called by newly created arcs which plug   * themselves automatically to the appropriate place.    *@return this Place.    */  public Place addOutput(final OutputArc anArc){    this.outputs.add(anArc);    return this;  }  /**    * Returns list of all input arcs from this place.   * <b>Note:</b> input arcs go from this place to a given    * transition, so in a sense, from the place point of view   * could be treated as outgoing arcs.   *@return set of all input arcs from this place.   */  public List inputArcs(){ return this.inputs; }  /**    * Returns list of all output arcs to this place.   * <b>Note:</b> output arcs go from a given transition   * to this place, so in a sense, from the place point of view   * could be treated as incoming arcs.   *@return set of all output arcs to this place.   */  public List outputArcs(){ return this.outputs; }  /**   * Returns all the tokens for this place.   * Returned is the reference to the copy of this place multiset.    * Use this method with caution, do not manipulate tokens via   * the returned multiset, as it will have no effect on    * the actual state of this place - use token manipulation    * methods from the Place API.   *@return this place collection of tokens   *@see #addToken   *@see #removeToken   */  public Multiset getTokens() {    return new Multiset(this.multiset);  }  /**   * Adds given tokens to this place.   *@param aMultiset a <code>multiset</code> of tokens.   */  public void addTokens(final Collection aMultiset) {    addTokensQuietly(aMultiset);    notifyFusionAdded(new TokensAddedEvent(this, new Multiset(aMultiset)));  }  /**   * Adds given tokens to this place without firing the event.   *@param aMultiset a <code>multiset</code> of tokens.   */  void addTokensQuietly(final Collection aMultiset) {    this.multiset.addAll(aMultiset);    if (this.listeners.size() > 0) {      fireTokensAddedEvent(new TokensAddedEvent(this, new Multiset(aMultiset)));    }  }  /**   * Adds new token to this place.    * Adds a new token to the existing place multiset.   *@param aToken an additonal token for this place.    */  public void addToken(final Object aToken) {    this.multiset.add(aToken);    final TokensAddedEvent event = new TokensAddedEvent(this, new Multiset(aToken));    if (this.listeners.size() > 0) {      fireTokensAddedEvent(event);    }    if (this.fusionPlaces.size() > 0) {      notifyFusionAdded(event);    }  }    /**   * Removes all tokens from the given multiset from this place.   *@param aMultiset multiset containing tokens to be removed.      */  public void removeTokens(final Collection aMultiset) {    removeTokensQuietly(aMultiset);    notifyFusionRemoved(new TokensRemovedEvent(this, new Multiset(aMultiset)));  }  /**   * Removes all tokens from the given multiset from this place without   * firing the event.   *@param aMultiset multiset containing tokens to be removed.      */  void removeTokensQuietly(final Collection aMultiset) {    this.multiset.removeAll(aMultiset);    if (this.listeners.size() > 0) {      fireTokensRemovedEvent(new TokensRemovedEvent(this, new Multiset(aMultiset)));    }  }  /**   * Removes given token from the given multiset from this place.   *@param aToken token to be removed.   *@return <code>true</code> if the token was succesfully removed,   * <code>false</code> if the token was not present in the place and    * was not removed.   */  public boolean removeToken(final Object aToken) {    final boolean result = this.multiset.remove(aToken);    final TokensRemovedEvent event = new TokensRemovedEvent(this, new Multiset(aToken));    if (this.listeners.size() > 0) {      fireTokensRemovedEvent(event);    }        if (this.fusionPlaces.size() > 0) {      notifyFusionRemoved(event);    }    return result;  }  /**   * Removes all the tokens from this place.   */  public void clearTokens() {    final TokensRemovedEvent event = new TokensRemovedEvent(this, new Multiset(this.multiset));    this.multiset.clear();    if (this.listeners.size() > 0) {      fireTokensRemovedEvent(event);     }    if (this.fusionPlaces.size() > 0) {      notifyFusionRemoved(event);    }  }  /**   * Visitor pattern.   *@param aVisitor a <code>NetVisitor</code> value   *@return a <code>NetElement</code> value   */  public NetElement apply(final NetVisitor aVisitor) {    aVisitor.place(this);    return this;  }  /**   * Registers a given PlaceListener with this place.   *@param aListener a <code>PlaceListener</code> to    * be registered with this Place.   */  public void addPlaceListener(final PlaceListener aListener) {    this.listeners.add(aListener);  }  /**   * Deregisters a given PlaceListener from this place.   *@param aListener a <code>PlaceListener</code> to    * be removed with this Place.   */  public void removePlaceListener(final PlaceListener aListener) {    this.listeners.remove(aListener);  }  /**   * Notifies all listeners about tokens being removed from this place.   *@param anEvent a TokensRemovedEvent   */  protected void fireTokensRemovedEvent(final TokensRemovedEvent anEvent) {    final Iterator l = this.listeners.iterator();    while (l.hasNext()) {      ((PlaceListener) l.next()).notify(anEvent);    }  }  /**   * Notifies all listeners about tokens being added to this place.   *@param anEvent tokens added event   */  private void fireTokensAddedEvent(final TokensAddedEvent anEvent) {    final Iterator l = this.listeners.iterator();    while (l.hasNext()) {      ((PlaceListener) l.next()).notify(anEvent);    }  }  /**   * Notifies all listeners about tokens being removed from this place.   *@param anEvent a TokensRemovedEvent   */  void notifyFusionRemoved(final TokensRemovedEvent anEvent) {    final Iterator l = this.fusionPlaces.iterator();    while (l.hasNext()) {      ((FusionPlace) l.next()).notify(anEvent);    }  }  /**   * Notifies all listeners about tokens being added to this place.   *@param anEvent tokens added event   */  void notifyFusionAdded(final TokensAddedEvent anEvent) {    final Iterator l = this.fusionPlaces.iterator();    while (l.hasNext()) {      ((FusionPlace) l.next()).notify(anEvent);    }  }    void addFusionPlace(FusionPlace aPlace) {    this.fusionPlaces.add(aPlace);  }    void removeFusionPlace(final FusionPlace aPlace) {    this.fusionPlaces.remove(aPlace);  }  /**   * Returns human readable representiation of this place.   *@return a <code>String</code> value.   */  public String toString() {    final String res = "Place: " + getName() + " ";    return res + this.multiset.toString();  }} // Place//////////////////// end of file ////////////////////

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
高清成人在线观看| 午夜日韩在线观看| 91精品国产综合久久福利软件| 99久久精品免费看| 成人性生交大片免费看视频在线| 精品午夜久久福利影院| 国产精品一区二区在线看| 久久er99精品| 国产一区欧美二区| 国产精品影音先锋| 成人性生交大片免费看视频在线 | 亚洲精品中文在线影院| 国产精品女同一区二区三区| 国产精品进线69影院| 中文字幕的久久| 国产精品卡一卡二卡三| 亚洲精品精品亚洲| 亚洲成人av福利| 久久精品国产成人一区二区三区| 狠狠网亚洲精品| 成人毛片视频在线观看| 一本久道中文字幕精品亚洲嫩| 欧美在线观看视频一区二区三区| 91精品国模一区二区三区| 日韩美女天天操| 欧美国产亚洲另类动漫| 一个色综合av| 六月丁香综合在线视频| 成人h版在线观看| 欧洲生活片亚洲生活在线观看| 欧美一区永久视频免费观看| 精品国产乱码久久久久久影片| 中文成人综合网| 亚洲午夜久久久久久久久久久| 极品瑜伽女神91| 91美女福利视频| 欧美一级日韩不卡播放免费| 国产欧美日韩久久| 日本亚洲最大的色成网站www| 国产成人在线视频网站| 欧美裸体一区二区三区| 国产亚洲人成网站| 婷婷成人综合网| 成人三级伦理片| 欧美tickling网站挠脚心| 最新不卡av在线| 九九国产精品视频| 欧美亚洲综合另类| 久久精子c满五个校花| 亚洲va欧美va天堂v国产综合| 国产精品性做久久久久久| 欧美日本一区二区| 国产精品污污网站在线观看| 日本美女一区二区三区视频| 91麻豆自制传媒国产之光| 精品美女一区二区三区| 亚洲精品美国一| 成人在线一区二区三区| 欧美变态口味重另类| 午夜婷婷国产麻豆精品| 色综合久久久久久久久| 国产日韩在线不卡| 久久99最新地址| 91精品国产色综合久久不卡电影 | 一区二区三区在线观看动漫| 成人精品视频一区| 久久久精品免费网站| 久热成人在线视频| 7777精品伊人久久久大香线蕉完整版| 亚洲日本成人在线观看| 成人h动漫精品| 中文字幕日韩av资源站| 99精品1区2区| 国产精品成人免费| 北条麻妃一区二区三区| 日本一区二区综合亚洲| 国产精品77777竹菊影视小说| 久久视频一区二区| 国产在线播精品第三| 久久久久久免费毛片精品| 国产最新精品免费| 国产拍揄自揄精品视频麻豆| 成人永久免费视频| 国产精品视频yy9299一区| 国产不卡视频一区二区三区| 国产精品伦理在线| 色综合激情久久| 亚洲午夜免费视频| 欧美乱熟臀69xxxxxx| 日产精品久久久久久久性色 | 国产精品一区在线观看乱码 | 亚洲一区二区精品视频| 欧美色涩在线第一页| 午夜电影一区二区| 欧美成人综合网站| 国产成人夜色高潮福利影视| 国产精品国产成人国产三级| 91国偷自产一区二区使用方法| 亚洲乱码国产乱码精品精可以看 | 国产乱理伦片在线观看夜一区| 国产色产综合色产在线视频| 99re成人精品视频| 日本不卡一二三| 国产视频一区二区在线观看| 在线观看视频一区二区欧美日韩| 日韩制服丝袜先锋影音| 欧美sm美女调教| 成人一区在线看| 亚洲图片有声小说| 久久综合久久久久88| 99久久er热在这里只有精品15| 亚洲小说欧美激情另类| 久久久亚洲午夜电影| av综合在线播放| 奇米777欧美一区二区| 成人免费在线播放视频| 日韩午夜av一区| 91九色02白丝porn| 韩国精品久久久| 亚洲综合一区二区精品导航| 久久婷婷综合激情| 欧美精三区欧美精三区| 成人18视频日本| 秋霞电影一区二区| 亚洲天堂a在线| 国产情人综合久久777777| 制服丝袜亚洲网站| 91福利资源站| 国产经典欧美精品| 日本在线播放一区二区三区| 中文字幕一区二区三区四区 | 欧美精品一区二区三区高清aⅴ| 99久久综合国产精品| 久久精品国内一区二区三区| 亚洲一区视频在线| 亚洲美女视频一区| 国产精品视频yy9299一区| 久久久久久久综合日本| 精品少妇一区二区三区日产乱码| 欧美亚洲高清一区| 日本福利一区二区| 91黄色免费版| 日本精品一级二级| www.亚洲人| 波多野结衣中文字幕一区 | 国产日韩精品一区二区三区| 91精品国产高清一区二区三区 | 综合久久久久久久| 中文字幕一区二区三区不卡在线| 精品久久国产字幕高潮| 日韩精品一区二区三区视频在线观看 | 26uuu亚洲综合色| 日韩欧美国产1| 日韩午夜激情电影| 精品国产乱码91久久久久久网站| 日韩一级片在线观看| 欧美一级夜夜爽| 日韩一区二区免费在线观看| 日韩一卡二卡三卡国产欧美| 欧美成人vr18sexvr| 久久综合九色综合97婷婷女人| 精品国产一区二区三区久久影院| 久久久午夜精品理论片中文字幕| 国产丝袜在线精品| 18欧美亚洲精品| 亚洲精品乱码久久久久久日本蜜臀| 亚洲激情图片qvod| 日韩精品亚洲一区| 懂色av一区二区三区免费观看| 成人激情免费视频| 91一区在线观看| 欧美三级日韩三级| 日韩欧美国产精品一区| 国产网站一区二区三区| 亚洲天堂免费在线观看视频| 亚洲男同1069视频| 青青草97国产精品免费观看 | 色婷婷一区二区| 欧美性猛交xxxx黑人交| 欧美一区二区视频免费观看| 久久久一区二区三区| 亚洲最大成人网4388xx| 免费成人美女在线观看.| 国产91富婆露脸刺激对白| 91麻豆国产在线观看| 9191久久久久久久久久久| 久久久久久久久久久久久夜| 日本一区二区免费在线观看视频| 亚洲国产一区二区视频| 波多野结衣在线一区| 欧美日韩国产另类不卡| 国产欧美日韩激情| 亚洲一区二区三区在线看| 国产在线看一区| 日本高清成人免费播放| 久久亚洲精品国产精品紫薇| 亚洲综合一区二区| 成人网在线免费视频| 日韩美女天天操| 亚洲国产一区二区视频|