Y2S1-Seabed_Explorer/src/seabedexplorer/submersible/equipment/Equipment.java
2020-06-07 22:14:52 +01:00

166 lines
3.3 KiB
Java

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<Data> 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 ";
}
}