package unsw.blackout; import java.util.Optional; import unsw.utils.Angle; public class ElephantSatellite extends SatelliteBase { public ElephantSatellite(String satelliteID, double height, Angle position) { super(satelliteID, height, position); } @ Override final public double getVelocity() { return 2_500.0; } @ Override final public double getRange() { return 400_000.0; } @ Override final public boolean canTransient() { return true; } @ Override final protected boolean isSupportedDeviceType(String type) { if (type.equals(DesktopDevice.class.getSimpleName())) { return true; } else if (type.equals(LaptopDevice.class.getSimpleName())) { return true; } return false; } @ Override final protected Optional getFileStoreLimit() { return Optional.empty(); // Undefined in spec? } @ Override final protected Optional getByteStoreLimit() { return Optional.of(90); // Max of 90 bytes. } @ Override final protected Optional getByteDownloadSpeed() { return Optional.of(20); // 20 bytes per minute. } @ Override final protected Optional getByteUploadSpeed() { return Optional.of(20); // 20 bytes per minute. } }