Advertisement
Guest User

Untitled

a guest
Nov 15th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.76 KB | None | 0 0
  1. package serie08;
  2.  
  3. import java.util.Observable;
  4.  
  5. import util.Contract;
  6.  
  7. public class StdSpeedometerModel extends Observable implements SpeedometerModel {
  8.  
  9. // ATTRIBUTS
  10.  
  11. private double step;
  12.  
  13. private double maxSpeed;
  14.  
  15. private double speed;
  16.  
  17. private SpeedUnit unit;
  18.  
  19. private boolean isOn;
  20.  
  21. // CONSTRUCTEURS
  22.  
  23. public StdSpeedometerModel(double step, double max) {
  24. Contract.checkCondition(1 <= step, "step is too small");
  25. Contract.checkCondition(step <= max, "step is too big");
  26. maxSpeed = max;
  27. this.step = step;
  28. isOn = false;
  29. unit = SpeedUnit.KMH;
  30. speed = 0.0;
  31. }
  32.  
  33. // REQUETES
  34.  
  35. @Override
  36. public double getMaxSpeed() {
  37. return maxSpeed * unit.getUnitPerKm();
  38. }
  39.  
  40. @Override
  41. public double getSpeed() {
  42. return speed * unit.getUnitPerKm();
  43. }
  44.  
  45. @Override
  46. public double getStep() {
  47. return step * unit.getUnitPerKm();
  48. }
  49.  
  50. @Override
  51. public SpeedUnit getUnit() {
  52. return unit;
  53. }
  54.  
  55. @Override
  56. public boolean isOn() {
  57. return isOn ;
  58. }
  59.  
  60. // COMMANDES
  61.  
  62. @Override
  63. public void setUnit(SpeedUnit unit) {
  64. Contract.checkCondition(unit != null, "null unit");
  65. this.unit = unit;
  66. }
  67.  
  68. @Override
  69. public void slowDown() {
  70. Contract.checkCondition(isOn, "contact is off");
  71. if(speed < step) {
  72. speed = 0;
  73. }
  74. else {
  75. speed -= step;
  76. }
  77.  
  78. }
  79.  
  80. @Override
  81. public void speedUp() {
  82. Contract.checkCondition(isOn, "contact is off");
  83. if((speed + step ) > maxSpeed) {
  84. speed = maxSpeed;
  85. }
  86. else {
  87. speed += step;
  88. }
  89.  
  90. }
  91.  
  92. @Override
  93. public void turnOff() {
  94. Contract.checkCondition(isOn, "contact is already off");
  95. isOn = false;
  96. speed = 0;
  97. }
  98.  
  99. @Override
  100. public void turnOn() {
  101. Contract.checkCondition(!isOn, "contact is already on");
  102. isOn = true;
  103. }
  104.  
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement