package ftp.impl;
import org.eclipse.emf.common.util.EList;
import ftp.ComposedComponent;
import ftp.CompositionElement;
import ftp.DigitalBattery;
import ftp.DigitalLamp;
import ftp.DigitalSwitch;
import ftp.FaultTree;
import ftp.Observation;
import ftp.PortValue;
import ftp.SignalConnection;
import ftp.SignalPort;
import ftp.SignalValue;
import ftp.SignalValues;
import ftp.TypedPortValue;
import ftp.VisualPort;
import ftp.VisualValue;
import ftp.VisualValues;
public class FTPTest {
@SuppressWarnings("unused")
public static void main(String[] args) {
// Build circuit4761A components in Java
ComposedComponent circuit = new ComposedComponentImpl();
circuit.setType("digital_circuit_4761A");
SignalPort pSW1 = new SignalPortImpl();
pSW1.setType("Switch1");
circuit.getPorts().add(pSW1);
SignalPort pSW2 = new SignalPortImpl();
pSW2.setType("Switch2");
circuit.getPorts().add(pSW2);
VisualPort pObs = new VisualPortImpl();
pObs.setType("Bulb");
circuit.getPorts().add(pObs);
EList<CompositionElement> graph = circuit.getComposition();
DigitalSwitch sw1 = new DigitalSwitchImpl();
DigitalSwitch sw2 = new DigitalSwitchImpl();
DigitalLamp lamp = new DigitalLampImpl();
DigitalBattery battery = new DigitalBatteryImpl();
SignalConnection edge1 = new SignalConnectionImpl();
edge1.setFromPort(battery.getOutPort());
edge1.setToPort(sw1.getInPort());
SignalConnection edge2 = new SignalConnectionImpl();
edge2.setFromPort(battery.getOutPort());
edge2.setToPort(sw2.getInPort());
SignalConnection edge3 = new SignalConnectionImpl();
edge3.setFromPort(sw1.getOutPort());
edge3.setToPort(lamp.getInPort());
SignalConnection edge4 = new SignalConnectionImpl();
edge4.setFromPort(sw2.getOutPort());
edge4.setToPort(lamp.getInPort());
SignalConnection edge5 = new SignalConnectionImpl();
edge5.setFromPort(pSW1);
edge5.setToPort(sw1.getSetPort());
SignalConnection edge6 = new SignalConnectionImpl();
edge6.setFromPort(pSW2);
edge6.setToPort(sw2.getSetPort());
SignalConnection edge7 = new SignalConnectionImpl();
edge7.setFromPort(lamp.getLightPort());
edge7.setToPort(pObs);
graph.add(sw1);
graph.add(sw2);
graph.add(lamp);
graph.add(battery);
graph.add(edge1);
graph.add(edge2);
graph.add(edge3);
graph.add(edge4);
graph.add(edge5);
graph.add(edge6);
graph.add(edge7);
// embed in an Observation
Observation obs = new ObservationImpl();
obs.setComponent(circuit);
PortValue pv = new PortValueImpl();
SignalValue sv = new SignalValueImpl();
sv.setSignal(SignalValues.ON);
pv.setValue((TypedPortValue) sv);
pv.setPort(circuit.getPorts().get(0));
obs.getPortValues().add(pv);
pv = new PortValueImpl();
sv = new SignalValueImpl();
sv.setSignal(SignalValues.ON);
pv.setValue((TypedPortValue) sv);
pv.setPort(circuit.getPorts().get(1));
obs.getPortValues().add(pv);
pv = new PortValueImpl();
VisualValue ov = new VisualValueImpl();
ov.setBulb(VisualValues.DARK);
pv.setValue((TypedPortValue) ov);
pv.setPort(circuit.getPorts().get(2));
obs.getPortValues().add(pv);
// getFaultTree()
FaultTree ft = obs.buildFaultTree();
}
}