package jcircus.complementaryenvs; import java.util.HashMap; import java.util.LinkedHashMap; import net.sourceforge.czt.circus.ast.CircusFieldList; import net.sourceforge.czt.circus.ast.Communication; import net.sourceforge.czt.circus.ast.Field; import net.sourceforge.czt.circus.ast.InputField; public class ChanComplexCommEnv { private HashMap _map; public ChanComplexCommEnv () { this._map = new LinkedHashMap (); } public void update (String channelName, boolean b) { if (_map.containsKey (channelName)) { _map.remove (channelName); } this._map.put (channelName, b); } public boolean get (String channelName) { if (_map.containsKey (channelName)) return this._map.get (channelName); else { return false; } } public static boolean isComplexComm (Communication c) { CircusFieldList cfl = c.getCircusFieldList(); int size = cfl.size(); if (size > 1) { for (int i = 0; i < size - 1; i++) { Field field = cfl.get(i); if (field instanceof InputField) { return true; } } return false; } else { return false; } } }