Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.radionurshat;
- public class EngineersCoffeeGrinder implements IEngineer {
- public boolean getStatus() {
- return status;
- }
- private boolean status = false;
- protected void Launch(){
- status = true;
- }
- protected void Stop(){
- status = false;
- }
- private double Voltage = GenericGrinderParameters.VOLTAGE.getValue();
- public EngineersCoffeeGrinder(double rotationTorque) {
- setRotationTorque(rotationTorque);
- }
- private void setVoltage(double voltage) {
- Voltage = voltage;
- }
- @Override
- public double getVoltage() {
- return this.Voltage;
- }
- private void setCurrent(double current) {
- this.Current = current;
- }
- private double Current = GenericGrinderParameters.CURRENT.getValue();
- @Override
- public double getCurrent() {
- return Current;
- }
- public void setRotatingSpeed(double rotatingSpeed) {
- this.rotatingSpeed = rotatingSpeed;
- }
- private double rotatingSpeed = 0;
- @Override
- public double getRotatingSpeed() {
- return rotatingSpeed;
- }
- private boolean isCaseClosed(){
- return true;
- }
- @Override
- public boolean checkCaseIntegrity() {
- return isCaseClosed();
- }
- @Override
- public boolean isReadyToStart() {
- return checkCaseIntegrity() && (getSpeedMode() == 0) && (getCurrent()<2) && (getVoltage()<250) && (getVoltage()>190); //Если кофемолка выключена и корпус закрыт
- }
- @Override
- public double getElectricPower() {
- return (getVoltage() * getCurrent());
- }
- private void setRotationTorque(double rotationTorque) {
- this.rotationTorque = rotationTorque;
- }
- private double rotationTorque = 0;
- @Override
- public double getRotationTorque() {
- return rotationTorque;
- }
- private IGrindable Containment = null;
- protected double getContainmentMass(){
- if(this.Containment == null){
- return 0;
- }
- return this.Containment.getMass();
- }
- public void Load(IGrindable product){
- System.out.println("Продукт засыпан.");
- this.Containment = product;
- }
- public void Empty(){
- if (status){
- status = false;
- setSpeedMode(0);
- System.out.println("Кофемолка экстренно остановлена. Внимание, не открывайте крышку кофемолки до полной остановки.");
- }
- System.out.println("Содержимое кофемолки опустошено.");
- this.Containment = null;
- }
- public String GetContainmentName(){
- return this.Containment.getName();
- }
- @Override
- public void on() {
- if(!getStatus()){
- if (checkCaseIntegrity()){
- if (getContainmentMass() > 0){
- System.out.println("Кофемолка запущена.");
- Launch();
- setSpeedMode(1);
- System.out.println("Режим скорости: 1");
- System.out.println("Скорость: " + getRotatingSpeed() + " об/мин.");
- System.out.println("Крышка закрыта.");
- System.out.println("Напражение: " + getVoltage() + "В, Ток: " + getCurrent() + "А.");
- System.out.println("Мощность: " + getElectricPower() + "Вт.");
- System.out.println("В кофемолку загружено кофе \""+GetContainmentName()+"\" массой " + getContainmentMass() + "кг.");
- }else{
- System.out.println("Кофемолка пуста! Запуск невозможен");
- }
- }else{
- System.out.println("Крышка кофемолки не закрыта! Запуск невозможен");
- }
- }else{
- System.out.println("Кофемолка уже запущена.");
- }
- }
- @Override
- public void off() {
- if(getStatus()){
- Stop();
- setSpeedMode(GenericGrinderParameters.MODE.getValue());
- System.out.println("Кофемолка выключена.");
- if(getContainmentMass() > 0){
- System.out.println("Теперь вы можете извлечь измельченный кофе.");
- }
- }else{
- System.out.println("Кофемолка уже выключена");
- }
- }
- @Override
- public void setSpeedMode(int speedMode) {
- if (status){
- this.speedMode = speedMode;
- setRotatingSpeed(speedMode*100);
- System.out.println("Из Инженера: Режим скорости установлен на "+speedMode);
- System.out.println("Скорость вращения составляет " + getRotatingSpeed());
- }else{
- System.out.println("Вы не можете изменить скорость кофемолки пока она выключена.");
- }
- }
- private int speedMode = GenericGrinderParameters.MODE.getValue();
- public int getSpeedMode() {
- return speedMode;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement