package seabedexplorer.submersible.equipment; import java.util.Collection; import seabedexplorer.data.Data; import seabedexplorer.submersible.Submersible; import seabedexplorer.submersible.equipment.datacollector.DataCollector; import seabedexplorer.submersible.equipment.locationtracking.GPS; import seabedexplorer.submersible.equipment.locationtracking.Location; import seabedexplorer.submersible.state.SubmersibleState; /** * Equipment * * @author JLScott1999 */ public abstract class Equipment extends Submersible { private Submersible submersible; private final DataCollector dataCollector; public Equipment(Submersible submersible, DataCollector dataCollector) { this.submersible = submersible; this.dataCollector = dataCollector; } protected void setSubmersible(Submersible submersible) { this.submersible = submersible; } @Override public Submersible getSubmersible() { return submersible; } @Override public String getSubmersibleType() { return submersible.getSubmersibleType(); } @Override public void addData(Data data) { submersible.addData(data); } @Override public void collectData() { addData(dataCollector.performReading()); } @Override public Collection getData() { return submersible.getData(); } public boolean collectWater() { return submersible.collectWater(); } public boolean collectMaterial() { return submersible.collectMaterial(); } public boolean collectMappingData() { return submersible.collectMappingData(); } @Override public void clearData() { submersible.clearData(); } @Override public void changeState(SubmersibleState state) { submersible.changeState(state); } @Override public SubmersibleState getState() { return submersible.getState(); } @Override public String getStateName() { return submersible.getStateName(); } @Override public void move(Location loc) { submersible.move(loc); } @Override public void stopMove() { submersible.stopMove(); } @Override public boolean canMove() { return submersible.canMove(); } @Override public boolean returnToVessel() { return submersible.returnToVessel(); } @Override public GPS getGPS() { return submersible.getGPS(); } @Override public void setGPS(GPS gps) { submersible.setGPS(gps); } @Override public boolean update(String cmd) { boolean result; if (cmd.equalsIgnoreCase("all")) { collectData(); result = true; submersible.update(cmd); } else if (cmd.equalsIgnoreCase("info")) { System.out.println(toString() + "\n"); result = true; } else { result = submersible.update(cmd); } return result; } @Override public String toString() { return submersible.toString() + "\n "; } }