package dfatool.strategy.elements;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.eclipse.core.runtime.IPath;

import patterns.Observer;
import patterns.Subject;
import dfatool.io.AtomIOXML;
import dfatool.io.ChannelIOXML;
import dfatool.io.DatatypeIOXML;
import dfatool.io.IAtomIO;
import dfatool.io.IChannelIO;
import dfatool.io.IDatatypeIO;
import dfatool.io.INetworkIO;
import dfatool.io.IVarIO;
import dfatool.io.NetworkIOXML;
import dfatool.io.VarIOXML;

public class Network extends Subject implements Observer{
	
	
	
	INetworkIO network;

	public Network(IPath projectPath){
		network = new NetworkIOXML(projectPath.append(ConfigurationConstants.NETWORK_FILE).toString());
	}

	
	public void updateElement(NetworkElement ne){
		network.updateElement(ne);
		System.out.println("Alerting");
		alertAll();
	}
	
	public void removeElement(NetworkElement ne){
		network.removeElement(new NetworkElement(ne.name, null));
		alertAll();
	}
	
	public List<NetworkElement> getList(){
		return new ArrayList<NetworkElement>(network.listElements());
	}

	

}
