diff --git a/country/src/main/java/ru/molokoin/Area.java b/country/src/main/java/ru/molokoin/Area.java index 1ddfc0a..c8ed629 100644 --- a/country/src/main/java/ru/molokoin/Area.java +++ b/country/src/main/java/ru/molokoin/Area.java @@ -6,16 +6,9 @@ public class Area { private int square; Area(){ - //TODO сделать инициализацию полей как объектов и последующий каст в нужный тип - //чтобы была возможность обрабатывать null поля - //this(null,null,null); - //Area (Object name, Object population, Object square){} - - } - Area(Object name, int population, int square){ - init(name, population, square); + this(null, null, null); } - public void init(Object name, int population, int square){ + Area(Object name, Object population, Object square){ setName(name); setPopulation(population); setSquare(square); @@ -33,34 +26,46 @@ public class Area { try { if (name == null) throw new NullPointerException(getName()); } catch (Exception e) { - System.out.println("Наименвание не должно быть пустым. "); e.printStackTrace(); this.name = ""; + } finally{ + if (name != null) this.name = (String)name; } - try { - if((String)name == "")throw new IllegalArgumentException((String)name); - } catch (IllegalArgumentException e) { - System.out.println("Наименвание не должно быть пустым. "); - e.printStackTrace(); - this.name = ""; - } - if (name != null) this.name = (String)name; } /** * @param population the population to set */ - public void setPopulation(int population) { - - //население не может быть отрицательным - if (population < 0) throw new IllegalArgumentException("Население не может быть отрицательным ..."); - this.population = population; + public void setPopulation(Object population) { + try { + if (population == null) throw new NullPointerException("Параметр {население} не задан ..."); + + } catch (NullPointerException e) { + e.printStackTrace(); + this.population = 0; + } finally{ + this.population = (Integer) population; + } } /** * @param square the square to set */ - public void setSquare(int square) { - if (square < 0) throw new IllegalArgumentException("площадь не может быть отрицательной ..."); - this.square = square; + public void setSquare(Object square) { + try { + if (square == null) throw new NullPointerException("Параметр {площадь} не задан ..."); + } catch (NullPointerException e) { + System.out.println("Наименвание не установлено ..."); + e.printStackTrace(); + this.square = 0; + } finally{ + this.square = (Integer) square; + } + try { + if (this.square < 0) throw new IllegalArgumentException("площадь не может быть отрицательной ..."); + + } catch (IllegalArgumentException e) { + e.printStackTrace(); + this.square = 0; + } } /** * @return the name diff --git a/country/src/main/java/ru/molokoin/Conversion.java b/country/src/main/java/ru/molokoin/Conversion.java deleted file mode 100644 index b2706d9..0000000 --- a/country/src/main/java/ru/molokoin/Conversion.java +++ /dev/null @@ -1,24 +0,0 @@ -package ru.molokoin; - -public class Conversion { - /** - * Проверяем содержимое объекта. - * - * @param object - * @return - */ - public static Object checknull(Object object){ - Object result = new Object(); - if (object == null)throw new NullPointerException("Обнаружено пустое поле данных ..."); - - return (Object)result; - } - public static int toint(Object object){ - String s = (String) object; - return Integer.parseInt(s); - } - public static String toString(Object object){ - - return ""; - } -} diff --git a/country/src/main/java/ru/molokoin/Country.java b/country/src/main/java/ru/molokoin/Country.java index cc83f37..47540b2 100644 --- a/country/src/main/java/ru/molokoin/Country.java +++ b/country/src/main/java/ru/molokoin/Country.java @@ -5,21 +5,22 @@ public class Country extends Area{ public Country() { } - Country(String name, int population, int square){ - //this(name, population, square, null, null, null); - //TODO исключить дублирование метода Area.init() - this.init(name, population, square); + Country(Object name, Object population, Object square){ + super(name, population, square); } Country(String name, int population, int square, String capitalName, int capitalPopulation, int capitalSquare){ //параметры страны - this.init(name - , population - , square); + super(name, population, square); //параметры столицы if (capitalName != null) setCapital(new Area(capitalName , capitalPopulation , capitalSquare)); + if (capitalName == null){ + setCapital(new Area(null + , 0 + , 0)); + } } public static void print(Country country){ System.out.println("-------------------------------------------"); diff --git a/country/src/main/java/ru/molokoin/Map.java b/country/src/main/java/ru/molokoin/Map.java index af12201..f3f5ab1 100644 --- a/country/src/main/java/ru/molokoin/Map.java +++ b/country/src/main/java/ru/molokoin/Map.java @@ -10,13 +10,13 @@ public class Map { //Финляндия map[1] = new Country("Finland", 5500000, 338000, "Helsinki", 655000, 0); //Франция - map[2] = new Country("France", 67800000, 643800, "Paris", 2100000, 0); + map[4] = new Country("France", 67800000, 643800, "Paris", 2100000, 0); //Андора map[3] = new Country("Andorra", 85000, 647, "Andorra la Vella", 22600, 0); //Сингапур - map[4] = new Country("Singapore", 5700000, 725, "", 0, 0); + map[2] = new Country("Singapore", 5700000, 725, null, 0, 0); } public static void printAll(Country[] map){ System.out.println("printAll"); diff --git a/country/target/classes/ru/molokoin/Area.class b/country/target/classes/ru/molokoin/Area.class index 513758e..539153d 100644 Binary files a/country/target/classes/ru/molokoin/Area.class and b/country/target/classes/ru/molokoin/Area.class differ diff --git a/country/target/classes/ru/molokoin/Conversion.class b/country/target/classes/ru/molokoin/Conversion.class deleted file mode 100644 index 4ff1b4f..0000000 Binary files a/country/target/classes/ru/molokoin/Conversion.class and /dev/null differ diff --git a/country/target/classes/ru/molokoin/Country.class b/country/target/classes/ru/molokoin/Country.class index 9d18c28..b5ce1b5 100644 Binary files a/country/target/classes/ru/molokoin/Country.class and b/country/target/classes/ru/molokoin/Country.class differ diff --git a/country/target/classes/ru/molokoin/Map.class b/country/target/classes/ru/molokoin/Map.class index 0e476c0..e6dbc04 100644 Binary files a/country/target/classes/ru/molokoin/Map.class and b/country/target/classes/ru/molokoin/Map.class differ