/** * Copyright 2007-2010 非也 * All rights reserved. * * This library is free software; you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License v3 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 General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License along * with this library; if not, see http://www.gnu.org/licenses/lgpl.html. * */ package org.fireflow.simulation.support; import java.util.ArrayList; import java.util.Collections; import java.util.List; import org.fireflow.pvm.kernel.Token; /** * * @author 非也 nychen2000@163.com * Fire Workflow 官方网站:www.firesoa.com 或者 www.fireflow.org * */ public class BreakPointContainer { private final List<BreakPoint> allBreakPoints = Collections.synchronizedList(new ArrayList<BreakPoint>()); public void addBreakPoint(BreakPoint breakPoint){ if (breakPoint==null || breakPoint.getElementId()==null || breakPoint.getProcessId()==null)return ;//不合法的BreakPoint,拒绝加入 if (isExist(breakPoint))return; allBreakPoints.add(breakPoint); } public List<BreakPoint> getAllBreakPoints(){ return allBreakPoints; } public void clearAllBreakPoints(){ allBreakPoints.clear(); } public void clearBreakPoint(BreakPoint breakpoint){ for (BreakPoint pnt : allBreakPoints){ if (pnt.equals(breakpoint)){ allBreakPoints.remove(pnt); break; } } } public boolean isExist(BreakPoint breakPoint){ if (breakPoint==null )return false; for (BreakPoint brkPnt : allBreakPoints){ if (breakPoint.equals(brkPnt))return true; } return false; } public boolean isExist(Token token){ for (BreakPoint brkPnt : allBreakPoints){ if (brkPnt.getProcessId().equals(token.getProcessId()) && brkPnt.getElementId().equals(token.getElementId())){ return true; } } return false; } public void addAllBreanPoints(List<BreakPoint> breakPoints){ for (BreakPoint breakPoint : breakPoints){ if (breakPoint==null || breakPoint.getElementId()==null || breakPoint.getProcessId()==null)continue ;//不合法的BreakPoint,拒绝加入 allBreakPoints.add(breakPoint); } } }