diff --git a/Lesson1/Task1/Converter/app/src/main/java/ru/geekbrains/converter/ConvertActivity.java b/Lesson1/Task1/Converter/app/src/main/java/ru/geekbrains/converter/ConvertActivity.java index 3b4068d..c231b66 100644 --- a/Lesson1/Task1/Converter/app/src/main/java/ru/geekbrains/converter/ConvertActivity.java +++ b/Lesson1/Task1/Converter/app/src/main/java/ru/geekbrains/converter/ConvertActivity.java @@ -1,6 +1,7 @@ package ru.geekbrains.converter; import android.os.Bundle; +import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.EditText; @@ -21,12 +22,18 @@ protected void onCreate(Bundle savedInstanceState) { // обработка нажатия public void onToFahrenheitClick(View view) { // получить входное значение - float sourceValue = Float.parseFloat(sourceText.getText().toString()); - // инстанцировать конвертер - Converter converter = new Converter(sourceValue); - // преобразовать, обратите внимание на параметр ConvertToFahrenheit - float destValue = converter.Convert(new ConvertToFahrenheit()).GetResult(); - // записать результат в элемент - destText.setText(String.format("%.02f", destValue)); + float sourceValue; + Converter converter; + try { + sourceValue = Float.parseFloat(sourceText.getText().toString()); + // инстанцировать конвертер + converter = new Converter(sourceValue); + // преобразовать, обратите внимание на параметр ConvertToFahrenheit + float destValue = converter.Convert(new ConvertToFahrenheit()).GetResult(); + // записать результат в элемент + destText.setText(String.format("%.02f", destValue)); + } catch (NumberFormatException ex){ + Snackbar.make(view, "Введите число!", Snackbar.LENGTH_SHORT).show(); + } } } diff --git a/Lesson1/Task1/Converter/app/src/main/java/ru/geekbrains/converter/ConvertToMetersPerSecond.java b/Lesson1/Task1/Converter/app/src/main/java/ru/geekbrains/converter/ConvertToMetersPerSecond.java new file mode 100644 index 0000000..2cd5a54 --- /dev/null +++ b/Lesson1/Task1/Converter/app/src/main/java/ru/geekbrains/converter/ConvertToMetersPerSecond.java @@ -0,0 +1,8 @@ +package ru.geekbrains.converter; + +public class ConvertToMetersPerSecond implements ConvertTo { + @Override + public float Do(float sourceValue) { + return (float) sourceValue * 1000 / 3600; + } +} diff --git a/Lesson1/Task1/Converter/app/src/test/java/ru/geekbrains/converter/ConverterTest.java b/Lesson1/Task1/Converter/app/src/test/java/ru/geekbrains/converter/ConverterTest.java index bfdba85..852cbd3 100644 --- a/Lesson1/Task1/Converter/app/src/test/java/ru/geekbrains/converter/ConverterTest.java +++ b/Lesson1/Task1/Converter/app/src/test/java/ru/geekbrains/converter/ConverterTest.java @@ -69,4 +69,11 @@ public void ConvertToMile_Do_UnitTest() throws Exception{ assertThat(actual, is(1.24274f)); } + @Test + public void ConvertToMetersPerSecond_Do_UnitTest() throws Exception{ + ConvertTo convertTo = new ConvertToMetersPerSecond(); + float actual = convertTo.Do(10); + assertThat(actual, is(2.777777777f)); + } + } diff --git a/Lesson2/HomeWork/Task1/MeteoStore.java b/Lesson2/HomeWork/Task1/MeteoDB.java similarity index 90% rename from Lesson2/HomeWork/Task1/MeteoStore.java rename to Lesson2/HomeWork/Task1/MeteoDB.java index 09aca6e..cd4aa7a 100644 --- a/Lesson2/HomeWork/Task1/MeteoStore.java +++ b/Lesson2/HomeWork/Task1/MeteoDB.java @@ -1,7 +1,7 @@ -class MeteoStore{ - // сохранение данных в базу - boolean save(MeteoSensor meteoSensor){ - System.out.format("Saving data from sensor [%d] at %s%n temperature - %f ; humidity - %f ; pressure - %f \n\r", meteoSensor.getId(), meteoSensor.getDateTime(), meteoSensor.getTemperature(), meteoSensor.getHumidity(), meteoSensor.getPressure()); - return true; - } +class MeteoDB implements MeteoStore{ + // сохранение данных в базу + boolean save(MeteoSensor meteoSensor){ + System.out.format("Saving data from sensor [%d] at %s%n temperature - %f ; humidity - %f ; pressure - %f \n\r", meteoSensor.getId(), meteoSensor.getDateTime(), meteoSensor.getTemperature(), meteoSensor.getHumidity(), meteoSensor.getPressure()); + return true; + } } \ No newline at end of file diff --git a/Lesson2/HomeWork/Task1/MeteoSensorAdapter b/Lesson2/HomeWork/Task1/MeteoSensorAdapter new file mode 100644 index 0000000..d26109a --- /dev/null +++ b/Lesson2/HomeWork/Task1/MeteoSensorAdapter @@ -0,0 +1,24 @@ +class MeteoSensorAdapter implements MeteoSensor{ + + SensorTemperature sensor; + + public MeteoSensorAdapter(SensorTemperature sensor){ + this.sensor = sensor; + } + + public int getId(){ + return sensor.identifier()+500; + } + public Float getTemperature(){ + return (float) sensor.temperature(); + } + public Float getHumidity(){ + return null; + } + public Float getPressure(){ + return null; + } + public LocalDateTime getDateTime(){ + return LocalDateTime.of(sensor.year(), 1, 1, 0, 0, 0).plusDays(sensor.day()-1).plusSeconds(sensor.second()); + } +} \ No newline at end of file diff --git a/Lesson2/HomeWork/Task1/MeteoStation.java b/Lesson2/HomeWork/Task1/MeteoStation.java index 822f885..e4d8371 100644 --- a/Lesson2/HomeWork/Task1/MeteoStation.java +++ b/Lesson2/HomeWork/Task1/MeteoStation.java @@ -1,9 +1,11 @@ public class MeteoStation{ public static void main(String[] args){ - MeteoStore meteoDb = new MeteoStore(); + MeteoStore meteoDb = new MeteoDB; MeteoSensor ms200_1 = new MS200(1); meteoDb.save(ms200_1); + + meteoDb.save(new MeteoSensorAdapter(new ST500Info.getData())); // Здесь надо вызвать метод getData у класса ST500Info. Полученные данные отправить в метод save объекта meteoDb } diff --git a/Lesson2/HomeWork/Task1/MeteoStore b/Lesson2/HomeWork/Task1/MeteoStore new file mode 100644 index 0000000..90f0018 --- /dev/null +++ b/Lesson2/HomeWork/Task1/MeteoStore @@ -0,0 +1,3 @@ +interface MeteoStore{ + boolean save(MeteoSensor meteoSensor); +} \ No newline at end of file diff --git a/Lesson2/HomeWork/Task2/DisplayReport b/Lesson2/HomeWork/Task2/DisplayReport new file mode 100644 index 0000000..121b9fa --- /dev/null +++ b/Lesson2/HomeWork/Task2/DisplayReport @@ -0,0 +1,8 @@ +class DisplayReport implements SendReport{ + public void output(List items){ + System.out.println("Output on display"); + for(ReportItem item : items){ + System.out.format("printer %s - %f \n\r", item.getDescription(), item.getAmount()); + } + } +} \ No newline at end of file diff --git a/Lesson2/HomeWork/Task2/ISendReport.java b/Lesson2/HomeWork/Task2/ISendReport.java new file mode 100644 index 0000000..fcf5e5d --- /dev/null +++ b/Lesson2/HomeWork/Task2/ISendReport.java @@ -0,0 +1,3 @@ +interface ISendReport{ + public void output(List items); +} \ No newline at end of file diff --git a/Lesson2/HomeWork/Task2/PrintReport.java b/Lesson2/HomeWork/Task2/PrintReport.java index 0946320..1fc1876 100644 --- a/Lesson2/HomeWork/Task2/PrintReport.java +++ b/Lesson2/HomeWork/Task2/PrintReport.java @@ -1,5 +1,5 @@ import java.util.*; -class PrintReport{ +class PrintReport implements SendReport{ public void output(List items){ System.out.println("Output to printer"); for(ReportItem item : items){ diff --git a/Lesson2/HomeWork/Task2/Programm.java b/Lesson2/HomeWork/Task2/Programm.java index e124be3..28b6cd0 100644 --- a/Lesson2/HomeWork/Task2/Programm.java +++ b/Lesson2/HomeWork/Task2/Programm.java @@ -1,7 +1,9 @@ class Programm{ public static void main(String[] args){ - Report report = new Report(); + Report report = new Report(new DisplayReport); report.calculate(); report.output(); + report.setSendReport(new PrintReport()); + report.output(); } } \ No newline at end of file diff --git a/Lesson2/HomeWork/Task2/Report.java b/Lesson2/HomeWork/Task2/Report.java index c6bf1ec..b253bce 100644 --- a/Lesson2/HomeWork/Task2/Report.java +++ b/Lesson2/HomeWork/Task2/Report.java @@ -1,6 +1,11 @@ import java.util.*; class Report{ private List items; // Отчетные данные + SendOutput sendOutput; + + Report(SendOutput sendOutput){ + this.sendOutput = sendOutput; + } // расчет отчетных данных public void calculate(){ @@ -8,9 +13,12 @@ public void calculate(){ items.add(new ReportItem("First", (float)5)); items.add(new ReportItem("Second", (float)6)); } - + + public void setSendOutput(SendOutput sendOutput) { + this.sendOutput = sendOutput; + } + public void output(){ - PrintReport reportPrint = new PrintReport(); - reportPrint.output(items); + sendOutput.output(items); } } \ No newline at end of file