/*******************************************************************************
* Copyright (c) 2007 IBM Corporation.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package com.ibm.wala.ipa.cfg;
import com.ibm.wala.cfg.IBasicBlock;
/**
* This class is used by the PrunedCFG to determine which edges in a given CFG should be kept in the pruned version.
*/
public interface EdgeFilter<T extends IBasicBlock> {
/**
* This method must return true if and only if a normal edge from src to dst exists in the original CFG and should be kept for the
* pruned version of that CFG. Note that this must _must_ return false for any normal edge that is not in the original CFG.
*/
boolean hasNormalEdge(T src, T dst);
/**
* This method must return true if and only if an exceptional edge from src to dst exists in the original CFG and should be kept
* for the pruned version of that CFG. Note that this must _must_ return false for any exceptional edge that is not in the
* original CFG.
*/
boolean hasExceptionalEdge(T src, T dst);
}