package classes; import java.awt.Point; import java.util.LinkedList; public class HolonSwitch extends CpsObject { /* * manual state True, if this wire is working (capable of carrying * electricity), else false */ boolean manualActive; /* * active state True, if this wire is working (capable of carrying * electricity), else false */ boolean autoActive; /* * true if switch has to be used manually */ boolean manualMode; /* * Energy at each point of the graph with 50 predefined points. At the * beginning, it starts with all values at energy */ boolean[] activeAt = new boolean[100]; // Points on the UnitGraph LinkedList graphPoints = new LinkedList<>(); public HolonSwitch(String ObjName) { super(ObjName); setManualState(true); setAutoState(true); setActiveAt(true); setManualMode(false); } public HolonSwitch(String ObjName, String obj) { super(ObjName); super.setName(obj); setManualState(true); setAutoState(true); setActiveAt(true); setManualMode(false); } public HolonSwitch(CpsObject obj) { super(obj); super.setName(obj.getName()); setManualState(true); setAutoState(true); setActiveAt(true); setManualMode(false); } public void switchState() { if (manualMode) { if (this.manualActive == true) { setImage("/Images/switch-off.png"); } else { setImage("/Images/switch-on.png"); } this.manualActive = !manualActive; } } public boolean getState(int timeStep){ if(manualMode){ return this.manualActive; } else { return getActiveAt()[timeStep]; } } public boolean getState() { if (manualMode) { return this.manualActive; } else { return this.autoActive; } } public void setManualState(boolean state) { this.manualActive = state; setImage(); } public void setAutoState(boolean state) { this.autoActive = state; setImage(); } private void setImage() { if (manualMode) { if (this.manualActive == false) { setImage("/Images/switch-off.png"); } else { setImage("/Images/switch-on.png"); } } else { if (this.autoActive == false) { setImage("/Images/switch-off.png"); } else { setImage("/Images/switch-on.png"); } } } /** * @return the Graph Points */ public LinkedList getGraphPoints() { return graphPoints; } /** * @param points, * the Graph points */ public void setGraphPoints(LinkedList points) { this.graphPoints = points; } /** * get the activeAt Array */ public boolean[] getActiveAt() { return activeAt; } public boolean getActiveManual() { return this.manualActive; } /** * @param active, * the default value */ public void setActiveAt(boolean active) { for (int i = 0; i < activeAt.length; i++) { this.activeAt[i] = active; } } public void setManualMode(boolean mode) { manualMode = mode; } public boolean getManualMode() { return manualMode; } }