/* Soot - a J*va Optimization Framework
* Copyright (C) 2004 Jennifer Lhotak
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser 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, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
package ca.mcgill.sable.soot.cfg.model;
import java.util.*;
import org.eclipse.ui.*;
import org.eclipse.jface.resource.*;
import org.eclipse.core.runtime.*;
import org.eclipse.draw2d.graph.*;
import org.eclipse.core.resources.*;
public class CFGGraph extends CFGElement implements IEditorInput {
private String name;
private ArrayList children = new ArrayList();
private IResource resource;
public CFGGraph() {
}
public void addChild(CFGNode child){
children.add(child);
fireStructureChange(CHILDREN, child);
}
/**
* @return
*/
public String getName() {
return name;
}
/**
* @param string
*/
public void setName(String string) {
name = string;
}
public boolean exists(){
return false;
}
public ImageDescriptor getImageDescriptor(){
return null;
}
public IPersistableElement getPersistable(){
return null;
}
public String getToolTipText(){
return getName();
}
public Object getAdapter(Class c){
if (c == IResource.class){
return getResource();
}
return null;
}
/**
* @return
*/
public ArrayList getChildren() {
return children;
}
/**
* @param list
*/
public void setChildren(ArrayList list) {
children = list;
}
/**
* @return
*/
public IResource getResource() {
return resource;
}
/**
* @param resource
*/
public void setResource(IResource resource) {
this.resource = resource;
}
public void newFlowData(){
firePropertyChange(CFGElement.NEW_FLOW_DATA, null);
}
public void handleClickEvent(Object evt){
Iterator it = getChildren().iterator();
while (it.hasNext()){
CFGNode child = (CFGNode)it.next();
ArrayList list = child.getData().getText();
if (list.size() == 1){
if (list.get(0).equals(evt)){
child.handleClickEvent(evt);
}
}
}
}
}