From 5e65056529632f3c0077855c0943ae77bb8a9094 Mon Sep 17 00:00:00 2001 From: Rishat Date: Thu, 29 Sep 2016 14:49:16 +0300 Subject: [PATCH 1/8] Added OWNER --- OWNER.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 OWNER.md diff --git a/OWNER.md b/OWNER.md new file mode 100644 index 00000000..3edabe6a --- /dev/null +++ b/OWNER.md @@ -0,0 +1 @@ +Fazlytdinov Rishat From 186071623b85c2a864122cd4e7ca434ddeef7103 Mon Sep 17 00:00:00 2001 From: Rishat Date: Sat, 22 Oct 2016 17:39:30 +0300 Subject: [PATCH 2/8] container --- config.json | 37 ++++ messenger.iml | 34 ++++ src/main/java/track/container/Container.java | 58 +++++- .../track/container/JsonConfigReader.java | 22 ++- src/main/java/track/container/Main.java | 26 ++- .../java/track/container/config/Bean.java | 13 +- .../track/container/config/ConfigReader.java | 3 +- .../java/track/container/config/Property.java | 29 +-- src/main/resources/google_checkstyle.xml | 140 ++++++------- src/main/resources/log4j.xml | 14 +- .../java/track/container/ContainerTest.java | 3 +- .../dim/lections/reflection/Reflect.class | Bin 0 -> 5405 bytes .../dim/lections/reflection/Test.class | Bin 0 -> 1260 bytes target/classes/config.json | 38 ++++ target/classes/google_checkstyle.xml | 185 ++++++++++++++++++ target/classes/log4j.xml | 29 +++ .../classes/track/container/Container.class | Bin 0 -> 3720 bytes .../track/container/JsonConfigReader.class | Bin 0 -> 1284 bytes target/classes/track/container/Main.class | Bin 0 -> 1471 bytes .../classes/track/container/beans/Car.class | Bin 0 -> 1750 bytes .../track/container/beans/Engine.class | Bin 0 -> 1333 bytes .../classes/track/container/beans/Gear.class | Bin 0 -> 1323 bytes .../classes/track/container/config/Bean.class | Bin 0 -> 1927 bytes .../track/container/config/ConfigReader.class | Bin 0 -> 378 bytes .../InvalidConfigurationException.class | Bin 0 -> 425 bytes .../track/container/config/Property.class | Bin 0 -> 1605 bytes .../classes/track/container/config/Root.class | Bin 0 -> 765 bytes .../track/container/config/ValueType.class | Bin 0 -> 1005 bytes .../track/lections/l2objects/Complex.class | Bin 0 -> 1815 bytes .../track/lections/l2objects/Sample.class | Bin 0 -> 1692 bytes .../track/lections/l3oop/AServer.class | Bin 0 -> 1063 bytes .../lections/l3oop/AbstractExample$1.class | Bin 0 -> 675 bytes .../lections/l3oop/AbstractExample.class | Bin 0 -> 932 bytes .../track/lections/l3oop/Account.class | Bin 0 -> 1017 bytes .../classes/track/lections/l3oop/Auto.class | Bin 0 -> 1781 bytes .../track/lections/l3oop/AutoGear.class | Bin 0 -> 444 bytes .../classes/track/lections/l3oop/Button.class | Bin 0 -> 810 bytes .../track/lections/l3oop/ClickListener.class | Bin 0 -> 364 bytes .../classes/track/lections/l3oop/Di$1.class | Bin 0 -> 510 bytes target/classes/track/lections/l3oop/Di.class | Bin 0 -> 871 bytes .../classes/track/lections/l3oop/Engine.class | Bin 0 -> 341 bytes .../track/lections/l3oop/ExtAccount.class | Bin 0 -> 574 bytes .../classes/track/lections/l3oop/Gear.class | Bin 0 -> 133 bytes .../track/lections/l3oop/ImageServer.class | Bin 0 -> 854 bytes .../lections/l3oop/LinkageTest$Child.class | Bin 0 -> 655 bytes .../lections/l3oop/LinkageTest$Parent.class | Bin 0 -> 619 bytes .../track/lections/l3oop/LinkageTest.class | Bin 0 -> 1141 bytes .../lections/l3oop/ListenerDemo$Canvas.class | Bin 0 -> 680 bytes .../l3oop/ListenerDemo$Pentagon.class | Bin 0 -> 749 bytes .../lections/l3oop/ListenerDemo$Ussr.class | Bin 0 -> 786 bytes .../track/lections/l3oop/ListenerDemo.class | Bin 0 -> 1033 bytes .../classes/track/lections/l3oop/Loader.class | Bin 0 -> 183 bytes .../track/lections/l3oop/LoaderDemo.class | Bin 0 -> 809 bytes .../track/lections/l3oop/NetLoader.class | Bin 0 -> 524 bytes .../track/lections/l3oop/Polimorf$Child.class | Bin 0 -> 746 bytes .../lections/l3oop/Polimorf$Parent.class | Bin 0 -> 715 bytes .../track/lections/l3oop/Polimorf.class | Bin 0 -> 1592 bytes .../track/lections/l3oop/Resource.class | Bin 0 -> 293 bytes .../track/lections/l3oop/StaticDemo.class | Bin 0 -> 1192 bytes .../track/lections/l3oop/XmlLoader.class | Bin 0 -> 524 bytes .../track/lessons/lesson1/HelloWorld.class | Bin 0 -> 886 bytes .../track/lessons/lesson2/Document.class | Bin 0 -> 638 bytes .../track/lessons/lesson2/Parser.class | Bin 0 -> 838 bytes .../track/lessons/lesson3/DynamicList.class | Bin 0 -> 302 bytes .../track/lessons/lesson3/LinkedList.class | Bin 0 -> 299 bytes .../classes/track/lessons/lesson3/List.class | Bin 0 -> 281 bytes .../track/lessons/lesson3/ListMain.class | Bin 0 -> 411 bytes 67 files changed, 521 insertions(+), 110 deletions(-) create mode 100644 config.json create mode 100644 messenger.iml create mode 100644 target/classes/arhangel/dim/lections/reflection/Reflect.class create mode 100644 target/classes/arhangel/dim/lections/reflection/Test.class create mode 100644 target/classes/config.json create mode 100644 target/classes/google_checkstyle.xml create mode 100644 target/classes/log4j.xml create mode 100644 target/classes/track/container/Container.class create mode 100644 target/classes/track/container/JsonConfigReader.class create mode 100644 target/classes/track/container/Main.class create mode 100644 target/classes/track/container/beans/Car.class create mode 100644 target/classes/track/container/beans/Engine.class create mode 100644 target/classes/track/container/beans/Gear.class create mode 100644 target/classes/track/container/config/Bean.class create mode 100644 target/classes/track/container/config/ConfigReader.class create mode 100644 target/classes/track/container/config/InvalidConfigurationException.class create mode 100644 target/classes/track/container/config/Property.class create mode 100644 target/classes/track/container/config/Root.class create mode 100644 target/classes/track/container/config/ValueType.class create mode 100644 target/classes/track/lections/l2objects/Complex.class create mode 100644 target/classes/track/lections/l2objects/Sample.class create mode 100644 target/classes/track/lections/l3oop/AServer.class create mode 100644 target/classes/track/lections/l3oop/AbstractExample$1.class create mode 100644 target/classes/track/lections/l3oop/AbstractExample.class create mode 100644 target/classes/track/lections/l3oop/Account.class create mode 100644 target/classes/track/lections/l3oop/Auto.class create mode 100644 target/classes/track/lections/l3oop/AutoGear.class create mode 100644 target/classes/track/lections/l3oop/Button.class create mode 100644 target/classes/track/lections/l3oop/ClickListener.class create mode 100644 target/classes/track/lections/l3oop/Di$1.class create mode 100644 target/classes/track/lections/l3oop/Di.class create mode 100644 target/classes/track/lections/l3oop/Engine.class create mode 100644 target/classes/track/lections/l3oop/ExtAccount.class create mode 100644 target/classes/track/lections/l3oop/Gear.class create mode 100644 target/classes/track/lections/l3oop/ImageServer.class create mode 100644 target/classes/track/lections/l3oop/LinkageTest$Child.class create mode 100644 target/classes/track/lections/l3oop/LinkageTest$Parent.class create mode 100644 target/classes/track/lections/l3oop/LinkageTest.class create mode 100644 target/classes/track/lections/l3oop/ListenerDemo$Canvas.class create mode 100644 target/classes/track/lections/l3oop/ListenerDemo$Pentagon.class create mode 100644 target/classes/track/lections/l3oop/ListenerDemo$Ussr.class create mode 100644 target/classes/track/lections/l3oop/ListenerDemo.class create mode 100644 target/classes/track/lections/l3oop/Loader.class create mode 100644 target/classes/track/lections/l3oop/LoaderDemo.class create mode 100644 target/classes/track/lections/l3oop/NetLoader.class create mode 100644 target/classes/track/lections/l3oop/Polimorf$Child.class create mode 100644 target/classes/track/lections/l3oop/Polimorf$Parent.class create mode 100644 target/classes/track/lections/l3oop/Polimorf.class create mode 100644 target/classes/track/lections/l3oop/Resource.class create mode 100644 target/classes/track/lections/l3oop/StaticDemo.class create mode 100644 target/classes/track/lections/l3oop/XmlLoader.class create mode 100644 target/classes/track/lessons/lesson1/HelloWorld.class create mode 100644 target/classes/track/lessons/lesson2/Document.class create mode 100644 target/classes/track/lessons/lesson2/Parser.class create mode 100644 target/classes/track/lessons/lesson3/DynamicList.class create mode 100644 target/classes/track/lessons/lesson3/LinkedList.class create mode 100644 target/classes/track/lessons/lesson3/List.class create mode 100644 target/classes/track/lessons/lesson3/ListMain.class diff --git a/config.json b/config.json new file mode 100644 index 00000000..f7b4d66d --- /dev/null +++ b/config.json @@ -0,0 +1,37 @@ +{"beans": [ + { + "id": "carBean", + "className": "track.container.beans.Car", + "properties": [ + { + "name": "gear", + "ref": "gearBean" + }, + { + "name": "engine", + "ref": "engineBean" + } + ] + }, + { + "id": "gearBean", + "className": "track.container.beans.Gear", + "properties": [ + { + "name": "count", + "val": "6" + } + ] + }, + { + "id": "engineBean", + "className": "track.container.beans.Engine", + "properties": [ + { + "name": "power", + "val": "200" + } + ] + } + ] +} diff --git a/messenger.iml b/messenger.iml new file mode 100644 index 00000000..be35709c --- /dev/null +++ b/messenger.iml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/track/container/Container.java b/src/main/java/track/container/Container.java index 36c4bd9d..a13e4da5 100644 --- a/src/main/java/track/container/Container.java +++ b/src/main/java/track/container/Container.java @@ -1,8 +1,14 @@ package track.container; +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Type; import java.util.List; +import track.container.beans.Car; import track.container.config.Bean; +import track.container.config.Property; +import track.container.config.ValueType; /** * Основной класс контейнера @@ -10,10 +16,11 @@ */ public class Container { + private List beans; // Реализуйте этот конструктор, используется в тестах! public Container(List beans) { - + this.beans = beans; } /** @@ -21,6 +28,11 @@ public Container(List beans) { * Например, Car car = (Car) container.getById("carBean") */ public Object getById(String id) { + + for (Bean bean: beans) + if (bean.getId().equals(id)) { + return makeRequeredObject(bean); + } return null; } @@ -29,6 +41,50 @@ public Object getById(String id) { * Например, Car car = (Car) container.getByClass("track.container.beans.Car") */ public Object getByClass(String className) { + for (Bean bean: beans) + if (bean.getClassName().equals(className)) { + return makeRequeredObject(bean); + } + return null; + } + + public Object makeRequeredObject(Bean bean){ + try { + Class beanClass = Class.forName(bean.getClassName()); + Object object = beanClass.getConstructor().newInstance(); + for (Property property: bean.getProperties()){ + Object propertyValue = null; + if (property.getType().equals(ValueType.VAL)){ + propertyValue = property.getVal(); + } + if (property.getType().equals(ValueType.REF)){ + propertyValue = getById(property.getVal()); + } + for (Field field: object.getClass().getDeclaredFields()){ + if (field.getName().equals(property.getName())){ + if (field.getType().getName().equals("int")){ + propertyValue = Integer.parseInt((String) propertyValue); + } + field.setAccessible(true); + field.set(object,propertyValue); + } + } + } + + return object; + + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } catch (NoSuchMethodException e) { + e.printStackTrace(); + } catch (InstantiationException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } catch (InvocationTargetException e) { + e.printStackTrace(); + } return null; } + } diff --git a/src/main/java/track/container/JsonConfigReader.java b/src/main/java/track/container/JsonConfigReader.java index 76eb69ff..c01c079e 100644 --- a/src/main/java/track/container/JsonConfigReader.java +++ b/src/main/java/track/container/JsonConfigReader.java @@ -1,11 +1,13 @@ package track.container; import java.io.File; -import java.util.List; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.*; -import track.container.config.Bean; -import track.container.config.ConfigReader; -import track.container.config.InvalidConfigurationException; +import com.fasterxml.jackson.databind.ObjectMapper; +import track.container.config.*; /** * TODO: Реализовать @@ -13,7 +15,15 @@ public class JsonConfigReader implements ConfigReader { @Override - public List parseBeans(File configFile) throws InvalidConfigurationException { - return null; + public List parseBeans(File configFile) throws InvalidConfigurationException, IOException { + ObjectMapper mapper = new ObjectMapper(); + Root root; + try { + root = mapper.readValue(configFile,Root.class); + } catch (IOException e) { + throw new InvalidConfigurationException(e.getMessage()); + } + + return root.getBeans(); } } diff --git a/src/main/java/track/container/Main.java b/src/main/java/track/container/Main.java index 8fdc23e6..9f934fa9 100644 --- a/src/main/java/track/container/Main.java +++ b/src/main/java/track/container/Main.java @@ -1,11 +1,20 @@ package track.container; +import track.container.beans.Car; +import track.container.config.Bean; +import track.container.config.ConfigReader; +import track.container.config.InvalidConfigurationException; + +import java.io.File; +import java.io.IOException; +import java.util.List; + /** * */ public class Main { - public static void main(String[] args) { + public static void main(String[] args) throws InvalidConfigurationException, IOException { /* @@ -14,13 +23,14 @@ public static void main(String[] args) { */ // // При чтении нужно обработать исключение -// ConfigReader reader = new JsonReader(); -// List beans = reader.parseBeans("config.json"); -// Container container = new Container(beans); -// -// Car car = (Car) container.getByClass("track.container.beans.Car"); -// car = (Car) container.getById("carBean"); - + ConfigReader reader = new JsonConfigReader(); + List beans = reader.parseBeans(new File("config.json")); + Container container = new Container(beans); + + Car car = (Car) container.getByClass("track.container.beans.Car"); + System.out.println(car.toString()); + car = (Car) container.getById("carBean"); + System.out.println(car.toString()); } } diff --git a/src/main/java/track/container/config/Bean.java b/src/main/java/track/container/config/Bean.java index b7948199..83c45e27 100644 --- a/src/main/java/track/container/config/Bean.java +++ b/src/main/java/track/container/config/Bean.java @@ -1,5 +1,6 @@ package track.container.config; +import java.util.List; import java.util.Map; /** @@ -7,6 +8,9 @@ */ public class Bean { + public Bean() { + } + private String id; // Уникальный ID бина private String className; // Класс бина @@ -17,19 +21,20 @@ public class Bean { put(key, value) - поместить значение с заданным ключом get(key) - получить значение по ключу (или null, если не найдено) */ - private Map properties; // Набор полей бина ИмяПоля-Значение + private List properties; // Набор полей бина ИмяПоля-Значение + - public Bean(String id, String className, Map properties) { + public Bean(String id, String className, List properties) { this.id = id; this.className = className; this.properties = properties; } - public Map getProperties() { + public List getProperties() { return properties; } - public void setProperties(Map properties) { + public void setProperties(List properties) { this.properties = properties; } diff --git a/src/main/java/track/container/config/ConfigReader.java b/src/main/java/track/container/config/ConfigReader.java index 70e43623..16c14072 100644 --- a/src/main/java/track/container/config/ConfigReader.java +++ b/src/main/java/track/container/config/ConfigReader.java @@ -1,6 +1,7 @@ package track.container.config; import java.io.File; +import java.io.IOException; import java.util.List; /** @@ -15,6 +16,6 @@ public interface ConfigReader { * @param configFile - Файл конфигурации (Сигнатуру не менять, используется в тестах) * @return - список бинов */ - List parseBeans(File configFile) throws InvalidConfigurationException; + List parseBeans(File configFile) throws InvalidConfigurationException, IOException; } diff --git a/src/main/java/track/container/config/Property.java b/src/main/java/track/container/config/Property.java index af06fc5b..eea7021c 100644 --- a/src/main/java/track/container/config/Property.java +++ b/src/main/java/track/container/config/Property.java @@ -5,16 +5,15 @@ * Тег описывает поля определенного бина */ public class Property { - private String name; // Имя поля - private String value; // Значение поля - private ValueType type; // Метка ссылочное значение или примитив - public Property(String name, String value, ValueType type) { - this.name = name; - this.value = value; - this.type = type; + + public Property() { } + private String name; // Имя поля + private String val; // Значение поля + private ValueType type; // Метка ссылочное значение или примитив + public String getName() { return name; } @@ -23,12 +22,18 @@ public void setName(String name) { this.name = name; } - public String getValue() { - return value; + public String getVal() { + return val; + } + + public void setVal(String val) { + this.val = val; + setType(ValueType.VAL); } - public void setValue(String value) { - this.value = value; + public void setRef(String ref){ + this.val = ref; + setType(ValueType.REF); } public ValueType getType() { @@ -43,7 +48,7 @@ public void setType(ValueType type) { public String toString() { return "Property{" + "name='" + name + '\'' + - ", value='" + value + '\'' + + ", val='" + val + '\'' + ", type=" + type + '}'; } diff --git a/src/main/resources/google_checkstyle.xml b/src/main/resources/google_checkstyle.xml index 7b90865d..3625170e 100644 --- a/src/main/resources/google_checkstyle.xml +++ b/src/main/resources/google_checkstyle.xml @@ -16,56 +16,56 @@ --> - + - + - + - + - - - + + + - - - + + + - - + + - - + + - + - - + + - - - - + + + + + val="WhitespaceAround: ''{0}'' is not followed by whitespace. Empty blocks may only be represented as '{}' when not part of a multi-block statement (4.1.3)"/> + val="WhitespaceAround: ''{0}'' is not preceded with whitespace."/> @@ -75,111 +75,111 @@ - + - - + + - - + + - + + val="Package name ''{0}'' must match pattern ''{1}''."/> + val="Type name ''{0}'' must match pattern ''{1}''."/> - + + val="Member name ''{0}'' must match pattern ''{1}''."/> - + + val="Parameter name ''{0}'' must match pattern ''{1}''."/> - - - + + + + val="Local variable name ''{0}'' must match pattern ''{1}''."/> - + + val="Class type name ''{0}'' must match pattern ''{1}''."/> - + + val="Method type name ''{0}'' must match pattern ''{1}''."/> - + + val="Interface type name ''{0}'' must match pattern ''{1}''."/> + val="GenericWhitespace ''{0}'' is followed by whitespace."/> + val="GenericWhitespace ''{0}'' is preceded with whitespace."/> + val="GenericWhitespace ''{0}'' should followed by whitespace."/> + val="GenericWhitespace ''{0}'' is not preceded with whitespace."/> - - - - - - + + + + + + - - + + - - - + + + - - + + - + - - + + - - + + - + + val="Method name ''{0}'' must match pattern ''{1}''."/> - + diff --git a/src/main/resources/log4j.xml b/src/main/resources/log4j.xml index 4331de10..5e0d3056 100644 --- a/src/main/resources/log4j.xml +++ b/src/main/resources/log4j.xml @@ -5,23 +5,23 @@ + val="%d{ISO8601} [%-5p][%-8.16t][%16.32c{3}] - %m%n"/> - - - - + + + + + val="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" /> - + diff --git a/src/test/java/track/container/ContainerTest.java b/src/test/java/track/container/ContainerTest.java index 2123f183..05bda752 100644 --- a/src/test/java/track/container/ContainerTest.java +++ b/src/test/java/track/container/ContainerTest.java @@ -1,6 +1,7 @@ package track.container; import java.io.File; +import java.io.IOException; import org.junit.Assert; import org.junit.BeforeClass; @@ -25,7 +26,7 @@ public class ContainerTest { private static Engine expectedEngine; @BeforeClass - public static void init() { + public static void init() throws IOException { try { ClassLoader classLoader = Container.class.getClassLoader(); File file = new File(classLoader.getResource("config.json").getFile()); diff --git a/target/classes/arhangel/dim/lections/reflection/Reflect.class b/target/classes/arhangel/dim/lections/reflection/Reflect.class new file mode 100644 index 0000000000000000000000000000000000000000..051fbce3fc96dab90592a2a11a4f33442f8e1a22 GIT binary patch literal 5405 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 Nz-(G_9eEV&dmHQ5Vj=(l literal 0 HcmV?d00001 diff --git a/target/classes/arhangel/dim/lections/reflection/Test.class b/target/classes/arhangel/dim/lections/reflection/Test.class new file mode 100644 index 0000000000000000000000000000000000000000..a5ca8561043b7f3953d805f51d53eb096255504c GIT binary patch literal 1260 zcma)5YflqF6g@*9+m==6%-Lrp@xK{5km=y@zc-_Fk~Oic59->|D?v0 zL=%62KgxJ#XJuE=#1DIC=FYk2-gEElkDp(^16V}0gp06>n8r*2vnAZYoPqfgatX3@X{0}l->8F<8yJCMR@GO#U%{HpY1_=F*2P46*etA0~3^wp#% zUUb}j5$y7Phdkw)-{8(352QNB&TM!j+YD1R9vpG+P&jr|y0#-4q4d4B9f*T?Z|{nB zxWX`O)sFcaZaajwxA%_;xuVjR&%3EKSA<7C)j49lPTkkTKzfH!SiZ#r?otJVe*rL* zo{Lr>8axz4GPcw4Lg|V<*_NbW-ShmAM|Dzy6nzpy^=1xypP>-?Iw`}DHJ!r7rBJ52 z-w7IGQ>s>(J6iX=l4@cQLk5;jJcc6N+}<{@YGMu4^UTM{`;; z@f6QY44|xb>&k4HxP?iE$^U9RLw}M;cb$|(F6rBKK{IvaJ3Z&Y1X*=_PiSu{zW%ly z3YV1losb5qyFoNBX(}P95Zoo5n&wY8gV9nT$2;>7;x?*>kms$I@Mv6f>6h{waIW=n zzbIkF+B!d(^mX;$*O;JR<|2B~hkh_xsnztiD*$d+gY zg=HyZly;^D;S$E^qzEpPRRqhlD(o48d=xMg1&?Sz9IPrBz&PETsNf1R5zTBwOVmjX znqoASpW!O55paS&;5vN@bAwifo2QbND4mj2{EVJ*ri*Mssb!6$K$#O+#Zy`I`Y2S% u+Kfpm-;jHCf_&NNqA>FX#V$(yAG+x6!u&`$-7a0~M2fR=%6U6NP5lDeF$>%P literal 0 HcmV?d00001 diff --git a/target/classes/config.json b/target/classes/config.json new file mode 100644 index 00000000..2dcc13ff --- /dev/null +++ b/target/classes/config.json @@ -0,0 +1,38 @@ +{ + "beans": [ + { + "id": "carBean", + "className": "track.container.beans.Car", + "properties": [ + { + "name": "gear", + "ref": "gearBean" + }, + { + "name": "engine", + "ref": "engineBean" + } + ] + }, + { + "id": "gearBean", + "className": "track.container.beans.Gear", + "properties": [ + { + "name": "count", + "val": "6" + } + ] + }, + { + "id": "engineBean", + "className": "track.container.beans.Engine", + "properties": [ + { + "name": "power", + "val": "200" + } + ] + } + ] +} \ No newline at end of file diff --git a/target/classes/google_checkstyle.xml b/target/classes/google_checkstyle.xml new file mode 100644 index 00000000..3625170e --- /dev/null +++ b/target/classes/google_checkstyle.xml @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/log4j.xml b/target/classes/log4j.xml new file mode 100644 index 00000000..5e0d3056 --- /dev/null +++ b/target/classes/log4j.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/track/container/Container.class b/target/classes/track/container/Container.class new file mode 100644 index 0000000000000000000000000000000000000000..42caff7eadde0e120855f7c31e4309b67f954941 GIT binary patch literal 3720 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 LTb-ub5H9`()C%}S literal 0 HcmV?d00001 diff --git a/target/classes/track/container/config/Bean.class b/target/classes/track/container/config/Bean.class new file mode 100644 index 0000000000000000000000000000000000000000..0a0bb7dab894071ef5ce1e9ea3c6b545ad3f68df GIT binary patch literal 1927 zcmbVMYflqV5Iwtn(3VB8)S?3NP-!WTB2TqY6%rGZ21zg^`fVv|SuAa{-I@@izey7w zi6;I4f0Xge?n2w8O^9FS-a9*U=FGWs_s`#-zX2>`GlqUFL~#pG#4L(g>cMghAuL3& zBI~M{wFsU@@JzPP#pHUh-h&MVs(GLwUO3V}>)EniDP?zU%dC`g3ZlibUaxQK$A*Gf z&8pT6%QlU=f&n+WVVmV_!K~X7yK9yzy4|oCyX5=4Ua&2__$gbgR&3p@7?$ilnx*WH zi+PgE6Cu2AR!lpuAdsHkQxM#$9uTX)z=Z9_@xEcb)A!5t#0%A;Uf$C!Q_h|Rd_;`BSr!AXWx#qkH zJi+Vj;DcT#?TxScy*B|D?jdr2!_i7y(rX{C5Ub1QJ00|sbdBj-&H2+9-g1oCRd-A| znY-17RWx3kG8|F4=y{oC4MVuAVF0%^#KjCEp+(d|+5!<`?r|Bc&ma7h+yg zquKGRN3fA{&drCgAwjP+%pt8{xXX+SA-$RFup#pQA6u35(9#P)+ zNP5egf)+)apWEQvV!7_|nBWhipTCj-R1u3iRrGRJN(SDLvri(*JvF7hN6!*hg=;8t z0p*7ia-TNFbf6bOXc*>BbAvE~QJw_g0V4$98`mJ$gaBk_&Y)&y&k)GWogpZA0SI1_ zzbX(ZNQ5XcZZUrlV-9x4&G)d05-kBq8@stTFCgF5*ejt1CJ5yALMA&goc4){2dC2dN@Yn;{;VPxW(o{<;t~66@DCHm}-KZ=2VTY>HLRCCT zV!KtQxJw~TEAq8cRsB>m9jGdpM#f9dw^CI7w>M9U*)9}iL`0*Rjzj`}B8we~%yuRc z@Do`jk+m*FWJZMuA0MqKa>%CS^76kBdVhg%yyqN|%qdhZ1F3UF<1yC}xN`Kmj^H`8 Xfv=1>N1wlgTuTS}t1+Hu9TnMs15AC6 literal 0 HcmV?d00001 diff --git a/target/classes/track/container/config/ConfigReader.class b/target/classes/track/container/config/ConfigReader.class new file mode 100644 index 0000000000000000000000000000000000000000..4c9f2077f434e0fe4e33fed597fb40075130de16 GIT binary patch literal 378 zcmah_%Sr=55Uh@I$HZ5}9}v9g#ku6RqF_)6ECkFKw3Bw3xXgyx+2FT%@B{oPab|1{{bVc2uQ#*}w$g=dLLT*x z??zU^)~-=FQ8*JcFL33lK|98nq>JYiJ4YeNG7_LNbqav>UGtp#Ym7 DmBek3 literal 0 HcmV?d00001 diff --git a/target/classes/track/container/config/Property.class b/target/classes/track/container/config/Property.class new file mode 100644 index 0000000000000000000000000000000000000000..2504b691739e6289c833792d5700930b2142336e GIT binary patch literal 1605 zcma)5YflqV5Iwh#-L`C{RvwC|M;T{!w_7ON=$DzU5b(*X#RK+Fzpl zt>*EbZtZG&HK$#@qSeZpW$?Fm7_kqH6M?Z_jow-HhHlws)JLxB_Lf6@K%EYvE}yg$ z2Gy(onVUoqM4bXk^@DBwfXG{Hxd+P1ykz3^O-};uDin)NbJ;`Rz=@5 zcs$9r)Op^Df}6Od;06X13}QgWO9iVKRxpj6f;EnYFf1_Ky~4GoQQOxoT0k4`BX7Hq zRj`g%Y&J;dY=+ic$T|_Py1+j+70e(baIc5%HlRSN)AjA%kzTO{GChj?n?fTlua?Me zZ*0;6v_?ZW_XXyHR&`~2o+`Qpqw4zA<#&Exf^)eo_s+){y`3~YvM@qCYl=cVZpYJn z$;Tmh6=X-~YmvMlAI+UZd~wollTA<=+X(tFN|E9w;STQ77floyvJ8+X?*e>7=rbLJ zzyOkSm<}u+!?;&mq-<^^?x@J3+9M1UuCO_P!@I3)LIj z#hJ_9Qq@4I^vb;AOEZ@{8r_x85}CORL?mCI#P5?Z1ivW{>yXCA%P;;!?EN|7=|l^C sIl2hsQrQ-ibkaQt`v=$D1G$C%)F;YlA=Ry5;evvqf8}PWPY82=0rbfrZU6uP literal 0 HcmV?d00001 diff --git a/target/classes/track/container/config/Root.class b/target/classes/track/container/config/Root.class new file mode 100644 index 0000000000000000000000000000000000000000..2c187a6f900100dbed91d66adf33ba8b22464270 GIT binary patch literal 765 zcmah`%Sr=55Ukm3OtQvT)c8JliwZ72ZV?X(o)!fa@j6-8I5F>E5iirzJ=Im!(;uI2?*O*3=)uKo1qIBNFkixgLa`O;_)cLw=;(Xx_pIsqfw{9y zh02L($J+MNNWmX?-U)1~!)rfGVyjIYrEluU4=qpcyJyJtEzlJ|?Qy)rbl^q0zUl8D2}#(=G+NY#HbKHPq@ZVtl# zn?l&i?a0bdv{P%W4C*Ot{3`y(s^Fa@y)=vtjC?>vhFO>2uc894iXw&-7XJ8O0drf~ zvbs8M`$w%#6k05EsV(qe9bC{JaM#WfMeT90;AXT0op&-~LbcDBR z4#FtLmpOpV-d jjkifm_0@c4x!q?tk8E)=A(;=f^xJAqGR^mThMxHXI4+&f literal 0 HcmV?d00001 diff --git a/target/classes/track/container/config/ValueType.class b/target/classes/track/container/config/ValueType.class new file mode 100644 index 0000000000000000000000000000000000000000..66b87a5cfb38d1c0cdcdd1692df2c60aff9f1395 GIT binary patch literal 1005 zcma)4?@!ZE6g_Y4+OCuhrcOZw>p*kuUlY56ZV?C*Z1zZ=bU@r`~BzpF921%$U(-Mj&(dyF{|RK4g;o`EDh5- z1ucOnYbc0yL&Y-&sr|aiu+oep?tHMFFo?MqxRLlf@w#@K`-yw>>7!dC=wV}*L0zMa zH;op<>f1@OlrurmXIM9_i4x?U@SV$0Xp)cpq}OqyBi`}pL`|6vP8eR9%~O8HZJ!5S zyA?-X(5+dMm?<_xhx=_Fd4h7pD+jzs^u>QU8I-ygc<~lP=|7TtR+~YN-+NSDuH|(D z9w!koNu~&Bb;lniSI4LuLDH+=?sbbAuD8M@a@<`{RG+`Pii)V+z>K)#Sp&~eVOYNH z{tT308+eEX1JlSGC?HRy*KHKO7_yEZ2Bdb^w8lIibWU9-CPy#FyRhT)e!n&bySj;+ zthMb;dTs{2QE7Wlhy%2eJ}@&c%Akmh9E!LDQl{Mstzzf{u&>BmLi$WQhI=$CX-pw} z3HL|%Dl+M*UX;ttx1@I(Ii6+!`52r z&-Hm+OM|6VK7fzo18jNv&L}}xv#CnozCAss`<&Y|^YPzz9{`-eLjwiOWMN`f%$YRK z8tB4I2IpiwFXpEVF39?`n7K6O4Q5`<;u0=PujwvsHmYv$(5coL$(Q|_Q(txhPxf)JD_rw7 z6pod{z^Oeh*4oxvTrEaXW+t7L6@@jcGiv9I@y;m}qBbpNMq%uK6crLFKU{MI%GGeZrb5B`eK!#; zrxUDFp#D8BOT}3tty7Co!C3M)gPL3NL~Jvb?X;+4;t+;S9Keu?gBVgc@U3RoHof|a zw6ib1?`hy(H1R8LiMh=plOtY3N6IFS;kd#`rxTN^qiNhRv530@bB{w~q;cQG11y;+ zN>3+Xi5XMqGwhu|hPKMdp)QE-XE}YcDfWn-jCoDL?G4^j{Dsm3nl`p^|6E_j~4!L@@ zER*QL6v0ln6&e02)iB0&kt}RX#6><)U=jL-5HL+PTo$jVhu)o6=#6!oXd##Hqh6DA zs8b93-y%Q3U4Q4Kw-{Lbk1UNj^%Zmb_-)P-aF+HQ25=tJxWI4G9PK=o`CX~t3jV-V z{EeHMs~xexB>Br6KGV|jg^oZ=n_%`S>LTNlkyk~`e@sgZWZ7VTkhG)))i%txnO-MX5Ph?|*6L#&OY3hTVkLG!vf~I_2232=L3T`RvBT&Gb#$<-Dc<@?;6XD!Lfi*tu-vy=R=TET@Vmk(pi)yFU^v`V96zoU90KQ(@~@_ zjFz3c)q3#v?O2mV-GUb+uS`Lf7Y={hRH5EJrdJTq%WbE2Xtx9=`xqDeBiUBfs<<-C zc6LV~T57ag6?@B(ipBiiugG={jAO#UoHQ3Pp<~y;E!;LZ<=4s6z#Y6NF#b z>cZ-3b@6K2z#dA{+%@n%_T|NU@;J}qC3$=q^YZuua!Svyr3I$`XEp-yUfJ8;*f<6+ z&s-t^S*En}Avm<2=S^Oy=Q--PO&nWs=rq5cRh9zDfC2ccdj6B=(tiHtFy zfdmH6WHpf{HJO!3!16_LvP3>T?gL54W zneiKDeCrG_LEy}#exRhKdJUe3PCvn&Nm|3mQlHCIC`WDfNJTb2OByQQtdAg7cdmoe%ak)KkK@Ox5KiM$?2T8!(f zsc$hnmrQ-8ecr+Fy)TvS!|ty=E$2Lm4ReH&CJFEr?+NKwo<^853{jv-u2XDtosviq z)2tW62(C~pMOMaZSl}AQG8U01FDab?MYcIvmulQG`eu8Po@N$#DwbMHC#+?nq`zkUO79}jYHQFpMM!!`DD?*BlF|>9ou-g5Y0M~cmqC`sj^Yl{rf~NcERMzu literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l3oop/AbstractExample$1.class b/target/classes/track/lections/l3oop/AbstractExample$1.class new file mode 100644 index 0000000000000000000000000000000000000000..e136a619561d3d35517dfb41c547ef93d3d3c1d0 GIT binary patch literal 675 zcma)3O-}+b5PgM35K$Bq{5p6r1~qXt8ZR0XLo_i#FBlGbDoX>^(vof^{wOb=Og#7l z{87d!65|IZ?qS}{bY9=c0Yj$Gm27cG0;S4z?S}VxsJL#2b!Vk+AFN-I!ydQ1OZOH>3@}Xf ztcgS%SB-W;JBDoC+}TK+N^g7ihw7G>p!c2VNST-<&V}okRvHUAEMh5#04avG|2=?V zdGugi*uJm~tD}#B(fd;mbpg-n6AITtSDU^kTj4-wF1olWt0%?k4gJu~S z%5xtB7{>%v0o9Y#@#KBN1Ysii;NutO;(%HDI2|(m#1!(x2{8R>V3U~Mz%TKYFXC)? XMG`Xup#qA80cJ6WEM?iD5g_vp!{m-g literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l3oop/AbstractExample.class b/target/classes/track/lections/l3oop/AbstractExample.class new file mode 100644 index 0000000000000000000000000000000000000000..e7b1882747ee4a142a2b5d49b01b391dc990d3f3 GIT binary patch literal 932 zcma)4ZBNrs6n^eD)~!^)jiF8)+nhK+sR-%^jEPw^SyEq;8I1AMUA@_geOcO$=+Dv* zkVxVW@JAV+u9yLtiEVmM&vTypoO92)zkdJt31AOTbQq{~y1{4+2Y4;^Z(TX87u&!(&F*a`f|ba#VbWIpdl2_C=rBE6BT_Nnek z#}`;>f3yzeku+WD56oU1I{sjPl3j)a>Xm1N1?C-34pdKtM=BJk{Uc`@XRds7#?*Vk zIJDJECppIQrJ}ZzIt(meQJ_Ba6y0f74fhP(PpDbhw>4}VF!4acj)8~R)v#ya5gxN2 zGlec?ZtV!P{)Z^AG;P+K{vn$zusVC^-|j4o!oXHh)Cv4p`Q)FINc$~N7|Ljvj+?XZ zUgUg@V&(Ci!I+yX>9m}{e9KYA6j0J*i_4R`F2VxZC?UC=bESQ5%xUEuGa8uZy-l7B zMACY$OY}@yK|8m30`YAUzREQ}0rM#F-$)54W0_tN6|4|RHpdjp(l$?#`EY`)wRMbK zY3>;L_urw>DV(Cnfc|Q#T%|TxOo6(|9Vk)h2ClKd<|JD^RU~qqyaK9>R++EC?coq*ed zM1S|_M1*}L|Wl*@&3Wk2Plmm&8$P$X9x-}5uq|)T3c09LG8et%1BS(R6k7Hx({t^J2mZkH)`FmKZrQeY z-6q479lBQJrUXOTsQynPM?ohFxqrYgN8N|kYs>U3|G-RG8Y(w!FZHf=f?;U8J6t%O z=|on2ITSUVgRWr~x`f*r*04^Esh@J<&XI6O!v^j$l>W63!~E}V9uK+a zh-;lpN519GLk;(EU%&$an;I6d$WZvDecC;w3p+z~-V7qQM_~j*Iw&S<^T2#YHxbe1 zuGOQ>XX6=XX$Gk;nmnI$#`t}SaPwBb@A?#a<4+A^nsh6AVaeDXkKpui>+i=X)Aw1R zFF6BQgh2lwav;os!bOqrJXPCq4d}IFu-Xwa`?(h%k@<}52RhAQo^Tpj!X@gg)2s$A zP^FQcRJe#s^i*&erF3GQRN_}SLQbC;A%6mC{}}Rn;wVKzHSSm;XRE|eK&f(vcrmqf z0)-T+J~@I``-JQWQ-yaUOph=lrX;TNaqq?{H>K2#j4MC)TZp@Wi7ag;R!S@+VuPx3 HJn-rdrHI;q literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l3oop/Auto.class b/target/classes/track/lections/l3oop/Auto.class new file mode 100644 index 0000000000000000000000000000000000000000..f47d0c26facd79ee4a52f587dccee840f0ead81c GIT binary patch literal 1781 zcmaJ?X-^YT6g{sLrY$3_6+~sLbsGvg;)b#*i+fcRL&C=aCUvyTkTNwI<9|{kB}(EC z@JAWXoergxwrO(TcHg<@o_pu@@4w%F0NldsI8Nc37*oUb1UfJg!wng4in$fTZ5i)~ znM|M;6B_O&pkpGAdzgx0x*Ic?mE*Yt?&E=mc?}B+(SmK26bABs$=di}7VQn+@!TD= zc+>N?&Br{PR_LL(SbD2FG;N3brqI=xK~L_YEPVi{2&ylX>F4EN`vbrMK34 zkvr+Uw_z1mt&$__a5L(^b9P#?oG<&H1m8IbK5Vp!J-Vt8C(kNrg^^ZFYgxq!eBhmF z0UbIEc+B@!{F37q6ncsM-uh^nMawOi)m_nZ#&I2gPNBn)3)3wy1F4#4QWq||<$a`X zi50J0+OQuvBBHkBT$8vu`fyrDKh7xhHxgMWJH<`Aq{F}{?~96G3M}5Njzuhqc}S(k zGj>qjVE2)Z%ecboHtiNc5Y8GN>v)2vOjPiuG8&%gc#gbazR>Ve$15x=oNbAskUC`h zYW+RCl3>>Mw(V{zTs4l1dR*r)J<5H=zlt{9&VSHYY zTxR)wmfNf*HGlV+3onH&|z&fHI^Z-Lt&ZC9{4j3LhTssn~G!j&TQd0M$V7r@gy zH?|A)ojVc8?F2_4i%wh!5Kaf{t`I@cg^~o$(&IRhNF$NUO^IB@rDjATjYM)JGS-5K zXd*<|3 z%p%U3_3-aNAT!l#wW=h;st`&ZkU)m98tvtfcJ>E)4wOlT%KSn~p@NfCqk?p!{0r=t Q#kwT2wIs&LB7&>`0Vl9)s{jB1 literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l3oop/AutoGear.class b/target/classes/track/lections/l3oop/AutoGear.class new file mode 100644 index 0000000000000000000000000000000000000000..17f59bb46e20e9fc1d503c87711511c931642cd5 GIT binary patch literal 444 zcmaKoPfNo<5XIlLv1wz}TK^wJkD7xyC?Y6=D2h<@U@g>>+qme~n3e5D{7_y5MeyJU z@I#5Su@n#DVU~HbZ+;Kv^XvTszy{_6c$li8jAq^rS-IOPdrcOlK7DhQe7<%?b^$AN&YeaGzr!uihXZ<)` z*ZMx*%dI|=!fX?&nS8XaFLF3GIMcaFcBV2F+{Fb;lk0$|lTddt*5WRt-@+(Tug=f^w3U7-E=LlJc pKTeEcoE2XS^#NtGNMT3Rc|qyIyJXJOkW(r4I=>jzP<7WUjvF^Y|+eW8~Ib71q zT{{R~1uk6F1*`v_or`%?T{x(@SkoGBre?|(G&S9igJj=-JUHN+2<$W|`os!f(&h^r z{0J>}~nwjPCMY_+RY4hjg3HCm1I%yXFb3cZI0Ib%7!fXc1W_uF1%q%5VlP zMuJ5wmBVi@xX1$o-Y-N0q{{#R literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l3oop/ClickListener.class b/target/classes/track/lections/l3oop/ClickListener.class new file mode 100644 index 0000000000000000000000000000000000000000..d2af7f2649cb648cb5bf09655b0edcc318fcec66 GIT binary patch literal 364 zcmah^F;2rk5S+Cg8%#_>prJ(+P=E{QC@mo&SxJ$|{rNcHlH(59XI{k%D0l#mLTnBi zDw>_0o!K4j=hyoOfNLCOm}NL5jH<7I3b3*29WwhK7;w|Nl=Y^zl_lhv7wN>-sxmDdtw1y|M+DTy=(djM!9VY%s_k`2hcS3GTqomgySeh&6 zUdj+s>)tD?x*I~ibVDcAtq%A8sF!Q;DhMb4-yux5-qHyBST5Q%N2dHMBL0nVj2H>y uh*^XbQNr(HCuqCKS=r6* literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l3oop/Di$1.class b/target/classes/track/lections/l3oop/Di$1.class new file mode 100644 index 0000000000000000000000000000000000000000..f3caa34ab916ea0bef46db5eeb8b28ac6f591da3 GIT binary patch literal 510 zcmZ`#yG{Z@6g{)7EUv3OR1j$`fEZV!9mWRKkgQr@Xsm{10)xwp*s6zGsgeI85GFF`vU%Y?z}Dkb7}#FIo&TMN>dhtGZ_!c=ON_|du6FMdZJ zowXQpO1!1Fg2(ffT?V(OXK^TQq*>#1uz@T? zb?pv@f|=k)T#fvP!Gv6_qc3b!){LTSOu1AH<@!^w8re%@GSzDIaSDsBNi;gGMURY8 z=TPNSW(H|~f_==ta}>=tu!BvC-hu#^Dp0*m_(FV4+3+m;-9)UE#eYg`smvfhXBAMS RY@>u-Y*FRX3}Xt&{Q)hgWn};W literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l3oop/Di.class b/target/classes/track/lections/l3oop/Di.class new file mode 100644 index 0000000000000000000000000000000000000000..d9e5afa782c96db6cf8fb1d34a28a3ce2a73fff4 GIT binary patch literal 871 zcmaJ<+iuf96r6P&J9SNOfs_(%h0;20!9w(jASBcPs$|MTQKX2cO<0*Nu8kb0|G?+) z6p2WD03U^zbt?76!IFJ^&dix}+5PkP*KYtvIP|cLZ5NL`Sa|GW$AfMBCmtMQcRe() z=OS>?5%5paROQEs9FNslzD7sPa#8m@u*tWh0sN zWv-2X6|{@5ni^YCk;~DyFj1pIXX!XhUS!$#u&28eypTE-Xa%36b9pJlM5b|gR^&R3 zyJbO{$CPMRz-&&XF&h!MS6$(437aahlDR;;n)aR`NsUX>eUXu9%Sn+fQ z@{xL{&HQdpKQjaPxPcXBR!%(c$58g!b0x)Sn|`>pO1!6co-e{ot`R>F*j$h-uy(!X zkHd4G2&WBB%&NP=f7VkCT`joN$2QC@GmiyfcEIl{y^vPW*7v6nKTCLxU#AQ@Sm(b# zCtw3jdP}&8Ta1|GAH1k_+PxX9!MZq{q880y52mPpn8BfSPiJTho*qoG^wPeTZ>dX1lNt zTF{D2uCJHRi7xI{l9A~|HdR@y3RB@f(k&m&LU0(Bg-V~oOsA!>`6A3tteuBf`IISV z0{_k~i&T$H735u-T%Y8UGN}di@wj9LnX8!eY$& z#e8g#X%da#@Bsec9Wv;?!C4VG@Of|33ry(0q4pM=Lb}a0o#!y|@-+wQ)h2eSo48=&&@p&+C+~=_tLwYYY(F~PN9FfYo4rQQS zO;ZkO-0}jL!5BqJen7nXlsGM^2_7^XUD(LbPem(1nCg;u{jB!rM6bVUS2A!{T$=``~rQ5Mgfo#{hY+SbbbG%ET9TD1_nk3 WCZI(?ngwVu0}F`7zzQUp7}x;(9v!#< literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l3oop/ImageServer.class b/target/classes/track/lections/l3oop/ImageServer.class new file mode 100644 index 0000000000000000000000000000000000000000..1db87e6544f2dc8dbb84a09244d7e404a7124585 GIT binary patch literal 854 zcmah{!EVz)5Pcgvv6H4vanewrfLlOHh`3h5&0uNE_h7-?DR_0y_%eo@nj(OQKOsAzA9)~)M;(dDWJ%*?A@PW-)U392CcPK zvW6z@n|T2?u|+2vEo@UJ1HYl_3dQc=>@&Q9^}wtAfb|KE{ROu5mHt>Iw)%>#nI`WrtgBbR!JM(f1z!M_;PLcC}u#*v%gU&kJTGxd+s^s-pstdJ--0hMbm+W@iHbbS;CZqY0TJ|voX(L9ZDtj5kubFykID_ z;;vw*22zRBLBAuCbKZ#vsRwb$qYIu$Q-6R3eJN9hV(U^yT?Y3=DUq}yo~D9eFVG1O zul-1bTE;5%qn$Xu@yYs{_r$qKbu$wl&{$0sgVT-&Nhpq`nOOTl+`i(s+=Y#jjYStr zSY{Xv&D8yUBlR|IG+eA;)y5jb`u_$qZ2U<)aokI`9~DK4V-Mw7*Xp#Ov)c7 YIgF7kN4*NgI%P%7VwBhx#RZh!0bl`>1ONa4 literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l3oop/LinkageTest$Parent.class b/target/classes/track/lections/l3oop/LinkageTest$Parent.class new file mode 100644 index 0000000000000000000000000000000000000000..274fc51d3af5daffdcbe76123b0383a8bc52e7d3 GIT binary patch literal 619 zcma)3TT22#6#mBB>bj|EcE8vK(jMA}f`n!&nKN_cgL`@SH&($F67 z4Q)sCv~-nkJ14F?w#j?Q`=Tv;eK1wlC|Fa=V7A+#MChgCgCRvLn<}Fk zKY9Us47W}CCPFZYG_9>EfohgIAonFcBeOu9dO{>0eMaotzzlOtqNe9eQZthX7D*OC P9vP}8nZ&V%1tdQK14fBZ literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l3oop/LinkageTest.class b/target/classes/track/lections/l3oop/LinkageTest.class new file mode 100644 index 0000000000000000000000000000000000000000..bb91f5d591603e4f6c823abc112c0d3e9f0ee4f4 GIT binary patch literal 1141 zcma)*T~8B16o%jF*KU_B#nu)S(1I2EfvgIC1dLuZF(GM`q=dwHH7%R6u-$ETw(sJO1oQ*PF};>8ec$vIJQc_sO3!oxPTp9K6}%Nl*6POs zsg`?U3gp|CV}2M7x~6v|yEZ+Aw%e2TvGlBPJ$9yoQ_B}vZwH?2og22<3oO_14SUCR zhXxtvvTq)ley~se$R}p2HZ`^ym$o03V+H0wpgwbwKy!u@B3YsXW)7w_18F$|<=W@= znfxLRTRMHC6L^->k871)pJEhm*%r_`?#Szz@2ybFg=@-ehb$d;P*Ctp$8+om%u%Yn zy<;MYFK0i+${#v6}*$)3V0xx{=)Z z>PLM`x+5Y=v0j#I98#=+l9_VA7g3B(yXh8ChGCFRrAxK{2p#Z6VT})6=hpyI5TSk? zi(DDBf;Qc_g!slu0(UuPB4-9A&hO(6bm8ueTg@j~5rBu0Z%nBBq-N@ch^=H9> zN!ZX?2Wa^USMM)yE1%l@E>0H8}B$^SM7-GrKD2SHu{`v`w`a? z3_g;8YcK|226K!!gg@k6ij}z5HEQjt8`S>__*I=1R$6@^(z+9=p-oy13z+5ZQ>1}q HJVx_3`GuXx literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l3oop/ListenerDemo$Pentagon.class b/target/classes/track/lections/l3oop/ListenerDemo$Pentagon.class new file mode 100644 index 0000000000000000000000000000000000000000..5e763403275b2bcc73b75df930bcf55c1fa25a2c GIT binary patch literal 749 zcma)4%TC)s6g`ud6XWs-ghDBhgjYZaFR0W76%tBSsgetbRO~12C=5(yknJGxS+D?! z1s}jiA?_q3q$mp(p8GsU=ick5=Z8lC-%xYmV77qIn9F0{#TP8N$lSP5;+M15K8LSo;^}!q?*1EyHu3v%ns-@^dF?@qcu@9MxIZWk!wtguXCIhL&lR>{L;^({@5mF0u$fH#rOS?V!Vg~QAQX+0gJV^wh%^;0=*z+S1rc$fKk6K!9`hiSRL46NJU(Z?MGBG1QP~rMB z9ri@Z;Aqv3WY}YHJ9-d@;*qo#rbnqu8~hdbP=)KD;b9h68E%^o=A+p)+u7S}t8R8^ z@gsYey*JxtFWb6Vr>%YSozOk=#eB=&G#t!%n8$*Ln$=lkSolBB3{&=eKjLc5f7;!k zD>BTE<>ogTI{%B;c}+?5DS160_Dql~O6{-2Ql*_V7Q9c{oE!sFM4PrLQp9T>5OXWU zl4@<){>jEzH$x*febnhKIAEyIV=2%_VbbatRX)v(=F;^YuuoJ>z@xF8gEw%TYVV){ zCorAwQ-Xw8@;&OdWX6vVnOPECEH{rj$IsgCw literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l3oop/ListenerDemo.class b/target/classes/track/lections/l3oop/ListenerDemo.class new file mode 100644 index 0000000000000000000000000000000000000000..9558a2e1ab04a3b342b12c8b1eecf967c095b3f1 GIT binary patch literal 1033 zcma)5O>fgc5Ph2u$8iiz8z_MiAZ^;FX;M?*R>XlIBqURi3YDs!HjWkCI(B6{{VDtp zF0Di)egHoT@itCq50QcoGdnYHX5P%MfB*UU3&1Pv8@Pkb0=5ifl-@RwQ@UwD!=@5D z1+)wlQ)9P)b^#rM+}Ajc1k4XX;6`0v#<3d<=%3vnk%KT0(7H0Xl=Nw@y}(P}2xOZ( z$4u;oeOF+~_5$~CH0-(27uoaaS+PS$`o}Wzls$Fkl5ZYsY}iR8opZ}~ox}@+*z#Y7 z;e};;apJQ7J9ii!u=G%R?7Z4Mwa?_Gw0s#1tfM6Ig2BP0wTuQVR+$qfO=rrtwYXO! zosBK^i+=;R|08d<9%dFJxBqsOBx+Z+`Kf7`SmP)hMUMO4Q+ryzJ@uX%)WixZ0?max zn(`KCEr!mh3arfqr{qlR!4lY-3%O0Sq27y$=Za{3AzGk(bAz9HXS{ZSlI-_qB?Y#d z^Ox53J?DG|n_PR|Q7+VB@~NvY1HLv?DDTm-s0DStbq(=j624EVO`IB5c{Wo39-vCA zh=+JYk4pZIEdLka#Tc2BYh>*)a@6^cV`$Wc!_Mv%^iEreF^Y5<>Uf3HO{aC}tYA=< zP$tDH?xKbztkdd{=su|`7Ok`s*6^5?PP>LDgUrdD>LQUf79ka$nZ$mfqhuliJ@aD+yt=@6;xD vLKvr^MXI%2{i5w5O#kM8Ho~MEbEZ7=?pTD47$8L9T3|)!LA46~fDz&^eSt8C literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l3oop/LoaderDemo.class b/target/classes/track/lections/l3oop/LoaderDemo.class new file mode 100644 index 0000000000000000000000000000000000000000..8461b4809bab31a4e681cd75c8bf34da5bf88369 GIT binary patch literal 809 zcmah{+iuf95IyU-vE#T+Noi>*y`<%mv;sfCTM#c?BqUR$7AjRdppCmqw>Wm>Y!Sc3 zQv{Xx06q$F>_qs*DwcLKP1;wAea}=8TWhtkqsTVd{_BrftsPo-KQ7O3fhH(Da7~UdXam* z2)bC}*`Fn#g=KmT+(MfmdGTky%Np&*HLSBKYT@BE?6da56!jl)EW9fLmx@H6EEcg& k*c^CwR*V(grsooP6>Ds^&UJ^og$>4SdUv@tdA4xxFTvBk+5i9m literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l3oop/NetLoader.class b/target/classes/track/lections/l3oop/NetLoader.class new file mode 100644 index 0000000000000000000000000000000000000000..31f3e8db0ee849bda290874a0670a9c6253ab0e7 GIT binary patch literal 524 zcmZuu%SyvQ6g@Y6q{eFNt16<@h0wZi7P@P3qXMYwu2JZZEQHOlGw1ZX=95}?&?6tr-VYQJs=d%%t#Sx zt`1ahIvJ|)Mh<=Mth&aN{y>I0sprjN{GcO3(~U#vJqllWu{J>@{9|LDL{G)8ks}p$ zSl8!_AX@HNK1&g(Slsq6JMDaCUqxmbdWwmKX{ZUy|7is0It5(l#9J-9=3Gt8Q6gW3 zjS68m*VT_UVK4Xm*EOM@di7;+FRq4TejH&Zmy_L(CW<^|o+*#q;>9kwTHs7@B#x!S z8R#`Vc6cwR&3!C#Ud;d;m$>35qsDte?y^`SS9ynZH$<a|?g`gOuOMFmpbmQO61^ J@YkjIwQsxQbCLi6 literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l3oop/Polimorf$Child.class b/target/classes/track/lections/l3oop/Polimorf$Child.class new file mode 100644 index 0000000000000000000000000000000000000000..82be3ffafc0e1d2951b8009385a267cc4a165379 GIT binary patch literal 746 zcma)3O-~y!5Piv)0z$!!OtJKnc zW5~C5&KU}Ab14{RI#P?%;ow5pGk&26sdh}t)j7A)-=DyO>&uLx*zQYp$q=7tEo@uy zEE5E8cAVwu&qRsTNu#qw?HO~Obd8b&W4|{?tRt%FMCKSmZ=RH*o*CLy97|t%>Y4H7 z2fyJl$_N9j$M}TL6ij{X!$VJQ?F86}(ZnW0?G4`LR_IZ5i(%tGnqp|apEXvb={-9Y z-&&%$zDjzxnG*vVs2S3$>YY(Unxt!`c0FeWAJC&~6JUnm+9xSZyw;dFmUIMP9r+Jx zyxSPoQKH}WD^Hsy1%`;cge)Ul+`R|;MNSSM=q!!EI%4wUaRR1Lp&Rh=g?vESo*e#0 zuA09?;Z-1_5U@a%7T<`3FCx{+BE<u-2xjb+Oo*e(jZl^$JW@)SgP13Yp!izF z8s4~xV$rZtt0amywQfaK9m}RR7sW1YmsG7t2p%}|$raRe+cdR!4qk$H7Zw56dA|P-GbWndtJm^eRK~KaDXAJGCh0>M}a1U(*!7LbbcZ ziY9GNw<$4J=@d&HRgF}(W{u!Ynyt_y%;2?LQLG48>H<3|gp%rV*S*BtpDohlS$bCY zrRmTH&vBFo73tv`X?laoR}{j;55KSJ`uZUF``OgCWU3%pI$4xD>HDxZEt=9?g( p6bRyD@CQlmizMHhq^}3b2$AG_kfcx`i4;aLL^hyKvX~_~{~h=Rlu-Zx literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l3oop/Polimorf.class b/target/classes/track/lections/l3oop/Polimorf.class new file mode 100644 index 0000000000000000000000000000000000000000..bd35923002c58c8bd3edb440c2b9e1bfb1a4699a GIT binary patch literal 1592 zcmah}+foxt6kRdboajW+H3FL-Jid`{|MkT9%rxzgAzj-7#K|B z9}K53lEEm(GHAlM9?qn2R+}jpn9u_?=Ol6&G+?j}=W#(|QhP?i#X4NVlpZciT#?8N zBy&Z_T@)~{KF5IVkBvD^XQFI%&|>y-T9$p~Rf%JBr+ zviI^&)pKRJ%3HDuVc>X6BRZ@o3mn}Ur88!%!BnussJnlGMWYkiC8q6%MLQ7a`VDAQ z9gXQa6;`7$rnekAu9c^TmbUGQuaq~EANt96^f#fZ{Ktt|UkF*RX;qHuC~=I3$VQNu zmY5O96#V62!Jc$<;p;cb*rzLJVjuPk9NDqpol#a2S53^~nn3H=*jOCBqj$U`GEyUP z-9!O5Ox(nN6LT83h5E?8)zQQ)ZEMsv->n`p1s*|km{GMRf@H9kwnw`SRsAv@DnB_33q;C8iuENds14c(gkbw4LUTa(D>Db7fDVEHX&lB8YPebCQA1DQ^#>St)=-mw zheUI76}2Z;A^D}WoTgm0Pxq`M!>^8?scrRV^OmY#&;Bvl<1c@DRD|-K#~Q%vYrP1qKiQa?VOvrGI(fv L8K{Z#A4vTGHGFo& literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l3oop/Resource.class b/target/classes/track/lections/l3oop/Resource.class new file mode 100644 index 0000000000000000000000000000000000000000..b44bf4b36bd51b4a0fb83832c58e67b63bad90c8 GIT binary patch literal 293 zcmaJ+!A`QdKFg!brWP6#G;p$KWFOZB>0=gQ4wZdmDO zwvc8no%Z{m7}OuSB3x&+lf|bns;IRsD`D=f{Ss4E*^MjIm=M1=>_z*iG_!J{+_PHS zyOrF^1OYmP!M`Ddp7#nP%cXeBS9}UXwD=WY#LXd$Av3|~mCo%Rv}4jj#4~KfE1WS; OehoNB%p2jNaU~}V{XkCu literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l3oop/StaticDemo.class b/target/classes/track/lections/l3oop/StaticDemo.class new file mode 100644 index 0000000000000000000000000000000000000000..4b147e8337998df8875d9bc52a12831bd94f0253 GIT binary patch literal 1192 zcmaJ=+fEZv6kTUpn06RwDK{_WQW0qpC`!H2qH+ldv7iQnF+L5`p$-f)&2(zwyIrr%JT5>az%yuD*ITbfFswX9xRdG|pJaQ^-34|Q4ERZOAemPrpc5{2#qE{|keqNxn zV7qp3pFZi#wm^8rD_H`uqU~CnwSyhYe`f4B)G*jIoNdFmrQA}6gI9J{AXN-}!`#n0 zmKoTdTg^K2o>$3k1x8?-tJZF_XM+&CX>Q~$HYQAZ$*|NLX zDb`sDPe&j6b@U=3Fmx90a?N&1mM_rT!Zp@FXZZ_bI&R~Rj=LC@+&vu&$g3#mSOiC$ zY&)h_5`odS=2K)U9_V<8C4u-Uq{lmZoI3YtR4SHR5|~N18Spt(s|QXrYL`~zaAiZu z^m^t$u93iNZcLy*ecqAD;%8qNH)XrKp1?pmSls*2*@!j63_Sl0ft9VG`Ah{S{*7L7 zjA}KXIsclG;#Z0D>j-FacjQ9kxk}OjN?G25cgNH*#0N4821z>`N)1Eg^`-+Z;3B0c zF5xmYGWZ*lg?T?cgmQw=i(`Zn9d&dbLaifGNAwdk1(XV*#bo3ihELE%Cw-ItGj((~ z%x@L({`YsWG5tKQ9YJjn2_)12GDX}#48ug9V$n3UbA(kOzf35rv^>HXo?yHIHir({ zbtI_|Q8$Va9z}wrSBiIv_AAs0#&$RS6#9X6l%E(E;s+xlxcYZOsYd&3Jkj$Ju_GuF R9KS7Tb4qeP6O$3h@8{ literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l3oop/XmlLoader.class b/target/classes/track/lections/l3oop/XmlLoader.class new file mode 100644 index 0000000000000000000000000000000000000000..3e594c582993f39a01deb06ff6b5cfae0caf1a30 GIT binary patch literal 524 zcmZuu%SyvQ6g@Y6q{eFMt6HSeW$VIO=&r?$A_zgDYSHC19dv4%ku>$YbX8FB1N$#ms%oIcLt?`TTnO0C0qcgAz7vY&o!!ShullV~0@g=}^bVghIPBAQVr`ND*95 zhw5TB8LH@74g>D2d&ZZ+Kt?*L7tLb)pr?eE7e~^66oK+%ZNjMt4vl#dx0Ap#a-^az z>js<=MB5w7XDLDzi<|y=x0BE8tErhqzG7lw7HPuje;UELN&#m&@#bdNoT`aANaU-q zQ6V&QUHxbi_HxgET@z}l*Fc8%;&M3V#}RgOIobVap~zF_nexajUhIOaCC&s#;#k_B zgI?2Phxc;YY+#x5Y6jrA!WBOmF7FAs$6|?Gfgc5Pg#`JFZJg(xgC2Y0H-rNKH!ti4+bXAu5FrDX0il95%@+Y;o+!agexk z=0|Yh42M(#sXu@#{{|so)`?V=MqtS^J8x#^%|5Tc{rYkMU=z12%wj2vb67U9Vqq2M z4P3C0#*&GP+F#PCJ@>O(~kaQ|Lgw*|@BMG^N^5x@UuO-80qUAA? zZv<`O?TAq6cmk%PS8705ZA77Hzji%27zF-c;@91W(({7nLFjer+_@)|PbfLNjXm*3 zxSsI4ZZis%->qwAQv7anod~!n}o#6J2r0MCSm!1Cnd}s_I=XY zlkMmT)OypRw3?j6ebvbUF5NfMQ6H*8PV@czeA`^ zD>$}ia$+W2bha!1NSjeG{#1l{=XhZqE3o@r#O9*Z6*dY z$n)AB7odQ7jM#N^BMkSEZpXq^#~=VvG`Uj;8Z+J9j9@I@p8N) Q@e>yPh>x#y>lCle3; z0DqKmwiF~lY|@?CnR#~J+5P_c`~q->Jrfyh8`v?h%b?3(Ec}R}{%Ak*7jAjnA6i`* zy8iHj(wDC9$}5IUtKDbFc7i9tP_bQK+{KfD2zz|sQKV)E4)^*zbk#l$X64AGlMiee za%XILB8mb(O6{q29XRns_>$TbhC=pIA&pjht(4NNrW3@zOcdQRH$WTm@= zL6JP|EV3$>JNf{7Cr3kpRy_&oFv%}Y3$Q_+`bsEMM8U^o6|Av0wJwn60;$c(3aZOw l=5>iIuO&B8OUZMxnqpSST0%Cb*?CV5b!-tskCJq1{sQJ^b9ev% literal 0 HcmV?d00001 diff --git a/target/classes/track/lessons/lesson2/Parser.class b/target/classes/track/lessons/lesson2/Parser.class new file mode 100644 index 0000000000000000000000000000000000000000..bcc210ec6de1a0fa42208d368f223f81d679a5b1 GIT binary patch literal 838 zcmaJ<+fLg+5It)}b8I`dRcT zQjz$8epJQmIwh4tYsoV^mvi>a*uQ@Nyacd^?ErIlFo#VaTRt8J@bD;ri^o2m_;|`t zK9H%@FB#lMv&G=O&N_l&F_x+LFdDRl`oi0N%2eYl;r$j@(!`Ubr%z?hun}v;ldn-< z&k!YH9n!1+EuzJ(x>3i2Ec~UkRwb{ZJeEMt5kz@d)Ygm+2Rnq@aP+@T%^_bBgC Mv`+7RIy>070)@h}wg3PC literal 0 HcmV?d00001 diff --git a/target/classes/track/lessons/lesson3/DynamicList.class b/target/classes/track/lessons/lesson3/DynamicList.class new file mode 100644 index 0000000000000000000000000000000000000000..c8f6df9dfb9d0a6186d5598b5710d0e82e78e001 GIT binary patch literal 302 zcmaiv%}xR_6ot7t>3GqYorU|{$SpB@+RJwhY zRn5+zY?Q2*vNb`U&Deh!N4P0{E7e-m+PTKM^F0xdUsi66Dvk3qLcVCWt#P$Eo z#w+7xV6otxA*qva3AtX|4c&|=K9e4m93UQ6H z*Oor}oNIlOFW0{_fH4L!I_O2{M@R|bm#(y(5IV!RCBdK8D@8~%U8(QGK3C0;%u8;b zvbvDvQa0ME!^h&OwfAt!OqK=6J7{c_84 literal 0 HcmV?d00001 diff --git a/target/classes/track/lessons/lesson3/List.class b/target/classes/track/lessons/lesson3/List.class new file mode 100644 index 0000000000000000000000000000000000000000..77a6b5da5df62b1b55c470dd498057d0ee39f957 GIT binary patch literal 281 zcmZ{eJ#WG=5Qg6i`G61#>WEm_fT14f2I_*u6tzPUyAv!hq=^(8{udJxLw`VjRK*#w za+V(ZeRMwE-~aU&z&m;|8t6oLiO?m4b6sltL1>J|Yl6S1Hj2U@ppBsbG6iNPRq%+y*$YTJ_17j z`CmfMHHt!(Tk)0cRc)EfJ6qm6|o>O1sICDFgd{rE~z6qF8_-OiJ?D$AB8xF zB9K5>@;%?Xd(UUTy}zyijIk4=g?@xVgdrh3Q(D<`LThw5Bls89y(Dx~rRDWouMxsjBUjP)B@c19x z^1$;U;23h2FcM>M^a6Tr$`Qw~Awz8Nx%1h8He$}&*lZXlKIZMjzl8lCLVg3bo5n6j G54{f&SX0pe literal 0 HcmV?d00001 From b85218107002e7b30b20c5430862c171bb17fe8d Mon Sep 17 00:00:00 2001 From: Rishat Date: Sat, 22 Oct 2016 17:53:31 +0300 Subject: [PATCH 3/8] container --- src/main/java/track/container/Container.java | 2 - .../java/track/container/config/Property.java | 3 + src/main/resources/google_checkstyle.xml | 140 +++++++++--------- src/main/resources/log4j.xml | 14 +- target/classes/google_checkstyle.xml | 140 +++++++++--------- target/classes/log4j.xml | 14 +- .../classes/track/container/Container.class | Bin 3720 -> 3720 bytes .../track/container/config/Property.class | Bin 1605 -> 1649 bytes .../l5collections/BoundGenerics.class | Bin 0 -> 2453 bytes .../track/lections/l5collections/Box.class | Bin 0 -> 1711 bytes .../track/lections/l5collections/BoxV2.class | Bin 0 -> 1756 bytes .../l5collections/ByteToStringFunction.class | Bin 0 -> 999 bytes .../lections/l5collections/CopyUtil.class | Bin 0 -> 1633 bytes .../l5collections/Demo$MyConsumer.class | Bin 0 -> 1179 bytes .../l5collections/Demo$MyPredicate.class | Bin 0 -> 852 bytes .../track/lections/l5collections/Demo.class | Bin 0 -> 3875 bytes .../l5collections/FunctionSample.class | Bin 0 -> 2770 bytes .../FunctionalProgramming$1.class | Bin 0 -> 1031 bytes .../FunctionalProgramming$BiFunction.class | Bin 0 -> 463 bytes .../FunctionalProgramming$BiOperator.class | Bin 0 -> 587 bytes .../FunctionalProgramming$Function.class | Bin 0 -> 418 bytes .../FunctionalProgramming$Predicate.class | Bin 0 -> 380 bytes .../FunctionalProgramming$Square.class | Bin 0 -> 1053 bytes .../l5collections/FunctionalProgramming.class | Bin 0 -> 3006 bytes .../l5collections/IntToByteFunction.class | Bin 0 -> 856 bytes .../l5collections/Lambda$ImageData.class | Bin 0 -> 498 bytes .../l5collections/Lambda$ImageInfo.class | Bin 0 -> 1205 bytes .../track/lections/l5collections/Lambda.class | Bin 0 -> 4494 bytes .../track/lections/l5collections/Stack.class | Bin 0 -> 645 bytes .../l5collections/StackException.class | Bin 0 -> 388 bytes .../l5collections/animals/Animal.class | Bin 0 -> 543 bytes .../lections/l5collections/animals/Cat.class | Bin 0 -> 550 bytes .../lections/l5collections/animals/Dog.class | Bin 0 -> 552 bytes .../lections/l5collections/animals/Pet.class | Bin 0 -> 557 bytes .../track/container/ContainerTest.class | Bin 0 -> 2657 bytes .../track/lessons/lesson2/ParserTest.class | Bin 0 -> 2202 bytes 36 files changed, 157 insertions(+), 156 deletions(-) create mode 100644 target/classes/track/lections/l5collections/BoundGenerics.class create mode 100644 target/classes/track/lections/l5collections/Box.class create mode 100644 target/classes/track/lections/l5collections/BoxV2.class create mode 100644 target/classes/track/lections/l5collections/ByteToStringFunction.class create mode 100644 target/classes/track/lections/l5collections/CopyUtil.class create mode 100644 target/classes/track/lections/l5collections/Demo$MyConsumer.class create mode 100644 target/classes/track/lections/l5collections/Demo$MyPredicate.class create mode 100644 target/classes/track/lections/l5collections/Demo.class create mode 100644 target/classes/track/lections/l5collections/FunctionSample.class create mode 100644 target/classes/track/lections/l5collections/FunctionalProgramming$1.class create mode 100644 target/classes/track/lections/l5collections/FunctionalProgramming$BiFunction.class create mode 100644 target/classes/track/lections/l5collections/FunctionalProgramming$BiOperator.class create mode 100644 target/classes/track/lections/l5collections/FunctionalProgramming$Function.class create mode 100644 target/classes/track/lections/l5collections/FunctionalProgramming$Predicate.class create mode 100644 target/classes/track/lections/l5collections/FunctionalProgramming$Square.class create mode 100644 target/classes/track/lections/l5collections/FunctionalProgramming.class create mode 100644 target/classes/track/lections/l5collections/IntToByteFunction.class create mode 100644 target/classes/track/lections/l5collections/Lambda$ImageData.class create mode 100644 target/classes/track/lections/l5collections/Lambda$ImageInfo.class create mode 100644 target/classes/track/lections/l5collections/Lambda.class create mode 100644 target/classes/track/lections/l5collections/Stack.class create mode 100644 target/classes/track/lections/l5collections/StackException.class create mode 100644 target/classes/track/lections/l5collections/animals/Animal.class create mode 100644 target/classes/track/lections/l5collections/animals/Cat.class create mode 100644 target/classes/track/lections/l5collections/animals/Dog.class create mode 100644 target/classes/track/lections/l5collections/animals/Pet.class create mode 100644 target/test-classes/track/container/ContainerTest.class create mode 100644 target/test-classes/track/lessons/lesson2/ParserTest.class diff --git a/src/main/java/track/container/Container.java b/src/main/java/track/container/Container.java index a13e4da5..ecb5780c 100644 --- a/src/main/java/track/container/Container.java +++ b/src/main/java/track/container/Container.java @@ -2,10 +2,8 @@ import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Type; import java.util.List; -import track.container.beans.Car; import track.container.config.Bean; import track.container.config.Property; import track.container.config.ValueType; diff --git a/src/main/java/track/container/config/Property.java b/src/main/java/track/container/config/Property.java index eea7021c..1c0b382a 100644 --- a/src/main/java/track/container/config/Property.java +++ b/src/main/java/track/container/config/Property.java @@ -11,6 +11,7 @@ public Property() { } private String name; // Имя поля + private String value; private String val; // Значение поля private ValueType type; // Метка ссылочное значение или примитив @@ -28,11 +29,13 @@ public String getVal() { public void setVal(String val) { this.val = val; + this.value = val; setType(ValueType.VAL); } public void setRef(String ref){ this.val = ref; + this.value = ref; setType(ValueType.REF); } diff --git a/src/main/resources/google_checkstyle.xml b/src/main/resources/google_checkstyle.xml index 3625170e..7b90865d 100644 --- a/src/main/resources/google_checkstyle.xml +++ b/src/main/resources/google_checkstyle.xml @@ -16,56 +16,56 @@ --> - + - + - + - + - - - + + + - - - + + + - - + + - - + + - + - - + + - - - - + + + + + value="WhitespaceAround: ''{0}'' is not followed by whitespace. Empty blocks may only be represented as '{}' when not part of a multi-block statement (4.1.3)"/> + value="WhitespaceAround: ''{0}'' is not preceded with whitespace."/> @@ -75,111 +75,111 @@ - + - - + + - - + + - + + value="Package name ''{0}'' must match pattern ''{1}''."/> + value="Type name ''{0}'' must match pattern ''{1}''."/> - + + value="Member name ''{0}'' must match pattern ''{1}''."/> - + + value="Parameter name ''{0}'' must match pattern ''{1}''."/> - - - + + + + value="Local variable name ''{0}'' must match pattern ''{1}''."/> - + + value="Class type name ''{0}'' must match pattern ''{1}''."/> - + + value="Method type name ''{0}'' must match pattern ''{1}''."/> - + + value="Interface type name ''{0}'' must match pattern ''{1}''."/> + value="GenericWhitespace ''{0}'' is followed by whitespace."/> + value="GenericWhitespace ''{0}'' is preceded with whitespace."/> + value="GenericWhitespace ''{0}'' should followed by whitespace."/> + value="GenericWhitespace ''{0}'' is not preceded with whitespace."/> - - - - - - + + + + + + - - + + - - - + + + - - + + - + - - + + - - + + - + + value="Method name ''{0}'' must match pattern ''{1}''."/> - + diff --git a/src/main/resources/log4j.xml b/src/main/resources/log4j.xml index 5e0d3056..4331de10 100644 --- a/src/main/resources/log4j.xml +++ b/src/main/resources/log4j.xml @@ -5,23 +5,23 @@ + value="%d{ISO8601} [%-5p][%-8.16t][%16.32c{3}] - %m%n"/> - - - - + + + + + value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" /> - + diff --git a/target/classes/google_checkstyle.xml b/target/classes/google_checkstyle.xml index 3625170e..7b90865d 100644 --- a/target/classes/google_checkstyle.xml +++ b/target/classes/google_checkstyle.xml @@ -16,56 +16,56 @@ --> - + - + - + - + - - - + + + - - - + + + - - + + - - + + - + - - + + - - - - + + + + + value="WhitespaceAround: ''{0}'' is not followed by whitespace. Empty blocks may only be represented as '{}' when not part of a multi-block statement (4.1.3)"/> + value="WhitespaceAround: ''{0}'' is not preceded with whitespace."/> @@ -75,111 +75,111 @@ - + - - + + - - + + - + + value="Package name ''{0}'' must match pattern ''{1}''."/> + value="Type name ''{0}'' must match pattern ''{1}''."/> - + + value="Member name ''{0}'' must match pattern ''{1}''."/> - + + value="Parameter name ''{0}'' must match pattern ''{1}''."/> - - - + + + + value="Local variable name ''{0}'' must match pattern ''{1}''."/> - + + value="Class type name ''{0}'' must match pattern ''{1}''."/> - + + value="Method type name ''{0}'' must match pattern ''{1}''."/> - + + value="Interface type name ''{0}'' must match pattern ''{1}''."/> + value="GenericWhitespace ''{0}'' is followed by whitespace."/> + value="GenericWhitespace ''{0}'' is preceded with whitespace."/> + value="GenericWhitespace ''{0}'' should followed by whitespace."/> + value="GenericWhitespace ''{0}'' is not preceded with whitespace."/> - - - - - - + + + + + + - - + + - - - + + + - - + + - + - - + + - - + + - + + value="Method name ''{0}'' must match pattern ''{1}''."/> - + diff --git a/target/classes/log4j.xml b/target/classes/log4j.xml index 5e0d3056..4331de10 100644 --- a/target/classes/log4j.xml +++ b/target/classes/log4j.xml @@ -5,23 +5,23 @@ + value="%d{ISO8601} [%-5p][%-8.16t][%16.32c{3}] - %m%n"/> - - - - + + + + + value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" /> - + diff --git a/target/classes/track/container/Container.class b/target/classes/track/container/Container.class index 42caff7eadde0e120855f7c31e4309b67f954941..a2cfe2015e3ad086015b15ebede57b2c036664a5 100644 GIT binary patch delta 202 zcmeB>?U3CN!o?}Vz``KPz{wysIhLzWP>w;CL7qW_L4iRJNE$uwV#euwsa3ux7|&ux03E zuw$6XV9&6U!GU2LgA>CZ24{vNK=D%yZVYD`JQ&UcbzETZX1Kx-!f>6zhv5c;FT))m s`#yso!vh9?h9^MwbA|wh7eG_r0NL*uf*3w91T%bL2xTyzJe~I=0C6HK$p8QV delta 202 zcmeB>?U3CN!o?}Zz``KTz{wynIhLzWP=P^~L6Jd&L5V>RNE7MalEH~#8-okO9tKy2BS7&}3?2+;fvV3l_%K{x@MXBd5XNww!H?kvgFnL^Ap1T; p0K)^INl$?6=L|s%FBpOu-T>L}8A2F7FoZIEVF+h1pFExSBLI^^EF%B_ diff --git a/target/classes/track/container/config/Property.class b/target/classes/track/container/config/Property.class index 2504b691739e6289c833792d5700930b2142336e..77d5b480bdb4bb4e23f595f4d6931e73715ba5d9 100644 GIT binary patch literal 1649 zcma)5YflqV5Ix&>%Oa(`L{J_AE#*-Zd_t>$;3EwhAWi(Zl%*_|wpq3$#Q2}oXh}5j z2l%6mXLgqsOB?($Gxy$^GiM(6_n#lX04(861U*;?BZhk-?u%Fq^Wi~+)M z(toRZyr-MH+FsF4Th436oMswwb}xO_p>d*MtX-maX1Su9)*15z3%a#s7touSZdF3? zZemcuK=VA;szz~NH#vn1 z(2p|ubX>(IUW$0dT4zT&>vY_V{@;kMk~A7lJTJ^Xe)c%=VCl*E%QiFlid z47DUORVT9T5{U^BuLxiAEBrMC8l+6znWPii8#}5ed`_4am>63*~Qf zu@2ctS%=I|gx{Yd66>fzO>#A;qVXC!V>g@&Z~danxd_z|jeep>4c*NZEM2M~M;T{!w_7ON=$DzU5b(*X#RK+Fzpl zt>*EbZtZG&HK$#@qSeZpW$?Fm7_kqH6M?Z_jow-HhHlws)JLxB_Lf6@K%EYvE}yg$ z2Gy(onVUoqM4bXk^@DBwfXG{Hxd+P1ykz3^O-};uDin)NbJ;`Rz=@5 zcs$9r)Op^Df}6Od;06X13}QgWO9iVKRxpj6f;EnYFf1_Ky~4GoQQOxoT0k4`BX7Hq zRj`g%Y&J;dY=+ic$T|_Py1+j+70e(baIc5%HlRSN)AjA%kzTO{GChj?n?fTlua?Me zZ*0;6v_?ZW_XXyHR&`~2o+`Qpqw4zA<#&Exf^)eo_s+){y`3~YvM@qCYl=cVZpYJn z$;Tmh6=X-~YmvMlAI+UZd~wollTA<=+X(tFN|E9w;STQ77floyvJ8+X?*e>7=rbLJ zzyOkSm<}u+!?;&mq-<^^?x@J3+9M1UuCO_P!@I3)LIj z#hJ_9Qq@4I^vb;AOEZ@{8r_x85}CORL?mCI#P5?Z1ivW{>yXCA%P;;!?EN|7=|l^C sIl2hsQrQ-ibkaQt`v=$D1G$C%)F;YlA=Ry5;evvqf8}PWPY82=0rbfrZU6uP diff --git a/target/classes/track/lections/l5collections/BoundGenerics.class b/target/classes/track/lections/l5collections/BoundGenerics.class new file mode 100644 index 0000000000000000000000000000000000000000..7c2afafa64568fd73c9d5b85a7fefca7853fb5bc GIT binary patch literal 2453 zcmbVOZBrXn6n<{9upvnUQV6ArB2*0_G`>)^5J8}Cv`LC4QY-plN!E00*kv{wr~Cka zgx{U%XTP+A%s77bm)O71ajeh1o7b(Tw3*57J?Ea6=RD`!oBa9DZ@&Xr#PzH7Lalv_&8yJs~7GI`H6DnDfFX2r7{ zyOFJ5syOwIwCObM>UGmLU8~Yq6^MLq)$2Q^N6)jV{C(p`Bir<>dNyx0yj2C_P;HI{ z_XLvtD2@)>NOA$&++awCZ5jYl0g`f;?xx5#TSBosj=bM1(_b4pgqAGYLXSC z2oGrMT%}LvEXQ9UT5_6h#k^*zbKZAaFUq-$<18iwQUecp8xQ%>u@lD^`0}(a>_{9X zlsTPoe1+XO?%-<I`J<~Nj#}!C)l|K5gQLPG0w$57b`CB07h}H2-rWShUp&e1q|2?BoG#`)&UfA@} zY$Z&z?R#U=x?y^BKKP%U^1_!xgSYV-e^umX2xJ};d`?oz@-3t`{TSj`E<#B1Ijock zOmQ9e4R8+Alp;8f*J&l44TRO+O!@?&yN?k*h8DsdN<)-}eMtrltDp(KK^zGpd4m|b z!DlGXaPLii{d7|E7NuE!Lqs3J9OheTf8krBetz*7x(`u3H z7(#zT*O7Tjl4hw0VF@F+s8}XpB1Y#S>dg~G$xtl6*hf{r)UqjL`pE5Z@r#B!>v{bTAh#Z#JZ-~JQoefv*4_Ln>ME6Q%QGf6+uS`NotTD3IK z&Z?G9aKV=Tfzd+d5yl=qdlKyEHmSbJ+_zXyUZGDi-+9JgMvg1Sd~Ud;Mh;h?XVaZ& L6ZnkVA*}ri{*O@r literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l5collections/Box.class b/target/classes/track/lections/l5collections/Box.class new file mode 100644 index 0000000000000000000000000000000000000000..7a56b5a3563f3ad0e7ca92368084f3a6e379e4e3 GIT binary patch literal 1711 zcmb7D+fEZv6kVq+y$l7R+*D9*3d6OEfC`A*jY*XU2=VeXl(7z$DJfH;F@AwRqlp$H zi63C}myB!o478<2bRNz*`?mI8d++)F>+3fFlXzgD851!WxD~;qfgmQLn38*1j@xqF zk>hRzGX~vgo|Stpyb$^!-%kVgFdxBvg^=UfdkTrvu61Z7vzD7lu5a(!X>V2`w&7%4 z%PZt{mvcL`T}U~u{kX8VZRa!N^LXeHfJgz{biW1RVf%7xk5f|uQ@XE zD61ZqC5odR9dRVkqR>&^D&2#nf|K2`^Q21mx3YWp;#k0<97}R6$8jA43O(m7iGpI( zHFQU?62~gm6q?G}blDuXwZCt>I|^f!+i)_E3Q|?&v42(meiJH}mF6lXf$V0CKyLGvXhR@}M?ND^#%(0NpoP#t^u`i) zyY}|6CAThEvXpI-Mcdk#O_S;2s~3HK-bG59$|nRq&{7)5*|bk0fl^z2E!1BDMh(MBit0(ih7Ll6)5eDv`E{=PHp4V1^js?af8tT G-24q&6i;*j literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l5collections/BoxV2.class b/target/classes/track/lections/l5collections/BoxV2.class new file mode 100644 index 0000000000000000000000000000000000000000..45408924db1b8d35ec5707b40a542667f537a010 GIT binary patch literal 1756 zcmbVM>rN9v6#k}NSZP;4K)}1AXu(UpprTadq9|G_2?T@w8p@_FF1utqHToz%fxk^O zh(sU2_wXf*QNNijv{XZge`e18eCN!W^X=E?uK~q|kz)6h?8^##joD_8L#of%k-fT?_-|21=kkzan4BY(;r~Ht&_yh(ODn zR|=%6M6STW26b+Jeq@w3%{edd)Tlr*Gq50FO@_;~Zp(XtTd1rqxzW5_@+s-ahehcx z$jH-tRcNUfURmHwUPZF_GV8lV<%K~x>t8R1{x&xezFxS>RNXs6yjj}{Gq4B$ZMbq&QE4rQ+QwRQHJ59EpWD3&GVoTVU(QZS zW!~*S-S34Z<3784HuGeAL^SKhh%&kP+jY&Uwte((kw9uLtVBh3%F~mTGRZFK2Xk-` z-Rxp*lEwdn8K@hKEg#OS{X&)t?rU1}r#|Bt z1%~O`vfnxDNx8htPhTDAdY$%-ftpoe8q9HQmgN{r|Bex_zG6Klvs`eBE2y2jOmKnm zWq5azOP~u$(tJjqJ(SEE9%vt2hZx*MVsRbGkFefTmqag5y#m2#7ULZv<LIZ z)#jY#GCzk54K(;oG#MDaPy2D+R5MIK7f2;&DR7Y;PnwSF3S+BFl*d-tZL7=F OCaNV}!Bs{~;MyN{cA)A2 literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l5collections/ByteToStringFunction.class b/target/classes/track/lections/l5collections/ByteToStringFunction.class new file mode 100644 index 0000000000000000000000000000000000000000..ebb779ee7e76b180e7a54572b941390ba5e2b7e5 GIT binary patch literal 999 zcmb7CO>fgc5Ph33$HufFZBw970xiKwXiZhP(5eza>M3dusUmUQI3{e_+L2>d>c4_Z ziavsSzv17r;x`9U)a#$~;uIytACZ4EcLxr0L zo?5tthJj}W90N^;(!K~pe87-*ntg`C+i>VJEOtfUA0=l4KRV$9NttRl^tkNvNT^sR z3-JdrVc6})5%)g2()VH!1`}7l@RiPBN!W`c5sVI#Ag$SBDDv@GUNCGr-BW(f zUCD!yt7`X}nZyi6<@s|i87i4yX)Qw|i$5NmQWJkM=oEw56Qh8~NkrrHGCaCqmPukE z-S@gn_p06fOnG{3Ce|GuP>)tGOd`)e6iTtBD{zmWjitY>hP1JOMTXV+z%z6w5pw89 z4CTn5Br<+ox6wk|#&c}h*oLc)7Yqw?plZX$3Tg~H|1CcWIcJ*9&#;!JZWe$Rg`Ud~ zh74O-z4h?dUrbL#qL>5fw9jQin$VJUXvkP^1H+2bxsD~!vU5Wkby{8<47X|J^YoFJ z6jjJ`$uhFV)+N|ya&ovsXDLl?ph~_1QUR8*OqQ-jjZOtVqUs#k``?gzcZqzpFh#LF zMd=F+@}?+%qQ6ggU5V#=Z@=b`&9=iYm6_wD)i>+@Ftvv?FmD`sN2j4Lr*#jIN9lzPp; z^(exaiQ)!s8kmnFf*At~QN+}qGH^>EoU&}oTNDT;#@7WxX{Trkv}G*Y%mGM+07uajl7;8~7cNtWjdPPwL~o$cMHo>g98`T}Kv zkwj)wzLCitT9X;8;w?1lii^-?HLxu0Qu6V}CJU%6MYG}wv^NH^iHchg==q!L?sk=L zFrR05cSBr?)&jgFRq^!$N{lQPIrWEwTJKY_K2iM= zb(@^1u&f+5``45nzQ1}-`t4!}E&K-l?LKO%hMFcy K;1V+hko*JEK#E`h literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l5collections/Demo$MyConsumer.class b/target/classes/track/lections/l5collections/Demo$MyConsumer.class new file mode 100644 index 0000000000000000000000000000000000000000..71fd28ffb96f707dc0a7e8edb9bd3197e1d42fc7 GIT binary patch literal 1179 zcmb7D>uwT36#fP%3+rktE!0{sy{XU(tG4x02#I1$G_;yPn)q{BMx46Ll4aL~$I>4( z(ZmPvp^RsCi*&_k8p6!Ee&?L;?ELuo^*ew)RCQd!S{Ccr&~Qgb5^EXURrfu06xC7E zv574WI~vLwOont-Na5EQlEu<7L#pm}IKym1NPZOb+T3edZHFwmhHG2SvE>P+pBYpB z2QgsK4~KPE4uT%{7>rj^aM31WKwCbtF43Sl-jf@vIM?x%=du|NifH3jhob)Zs6JcrBF;~6(?oYje*O! zqT#-Q2YAS^IO(wIdqQ@f2g2zn&J*h^26nNhj(r1<@L0nW15a_Ffd<&V$O;(dCUqj7 z7?wlR--n1LG>3zb&ZHYC&ZFUlYrds^ed?N9y>Kc0K9?Pao%2hHhN_g#aTuGE5@Ye> zCH^BmJR{XnobMBmekp#vRiBSO3c?R-hgvy$E`p3HsAANt-3< z8QqNTnaxwM&m<%fgc5PcInaqK!YNon{h&_Y4|5cmL`T2-I|QlzvX1?9kP<1S&#)~@U|5R`B8}R2gMRph=X@_#&6%eH@n||eEACCK5lzx;feLV6ClB2=;D#APMs$70LbVXeyHzVyd~)AH|{26OpJquZp&Lty03=-n-|C zJW!!9jP!?5B$Hh&(p2)#U}O>zz6rDpjf$f*&=0~`pJtEcQM_6^zr`AiObubMHaZk< zMW97A3x<)AGns6yza%)SOb82qK@d7)!wvVuaiwyxPV{Vg$U+JpcdTZSFj>N)pVXKt zNLk5@(!r}ND#Qn;Hn(f|U)pw9yEl%rB$Q88J~KBrcQ-fTqYc-`O{@}nf4K6|L*KzI z!kzz`6`}i^t5i)`DoSU_CbW5Y6QMJf$2UGCto*Yjmif)Jz=P-aWbwydIP-WHa3qe+ zjnAM@ylG&L*BlI-gU_p90?r(<^8O zCA6a9Ls-ChCR${46OGP8>ONxbLB)Nq;&wMSzri|zowJ@L&aGH2TqsZ%ajA%xxeHh- Kafj<{r~MOF;Jx<% literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l5collections/Demo.class b/target/classes/track/lections/l5collections/Demo.class new file mode 100644 index 0000000000000000000000000000000000000000..283f831f0f01ea4b60c9ba49fce763098f5ed060 GIT binary patch literal 3875 zcma)9+kYHY9si!a&1N%cr&C%iZ6SrEBrWYyTIeOc&;%-xO$*)9xiWk5OS49QXv`G!(9TBg{i!c5GKKtT>AHQd2HksWlg@^1p=XZYRd%nNx znY{A9`4<7~!s|H<;<$oh4hfvd;SQYa#wom0K`Dm}j(6iU?o{xu9J<2AT{_Q|yD$M$ z9-Y)7a7O20N2L#<|4iUOySdPHjfjbLljI&1GHk_$^(f2H8 zYACqc@TLg1y2G}B;sj*4uZ5@UzGdeNR?U~lwHd1_AVz5gZKhF`hTP(1t*jf>CiDI_ zl>ISIqmFM*ncmPrLib%nFXArMdTgUIK4J7p6Z>`wtQm;mHEldiiZno9zSRbBoxo5W zph+lpuqhhsAfrRh8ukvl@(nk6Lkndp4|KY*GklWpZ2;HGz;?K9kVf|ueP+j)QH`=D zS9I%M**s#&yy}wKv0WyFifz~~uxcqeA|q9N9$!%Kpo%ZzOA5ZM;wyMaVB4D}U0*EI z6?|32*YL2wHE-oyvwBo~9p7Nm4ZE&i;_9JPwi<4-SVQjy z=UTQ1FlpJobo1UQmjk8Ax)b!Z{9@Z|Vbg*^cxBS{ZZ^u(0=*qknyJO6m&0%H+qQ1e zwD)ul1Na?l**9e;>uoWq1ErQo6dN_)q$84UooCmCg=x98z;gUWM`Wi=KX?|{Dw^;? zR}O?UrKOEEiIMfa`28EzJKvCuQ7)TR-n%QZzwP39Y!(e!^oqddcq3`v8tW~QNc!hx zR)kTl+6{p#nijOi>_`+mT9d38d?ogD49cQfoLqZkn@0m5MJ$%{iV)&TlIkA>`a4q` zwj9H29IKk1;kzD*X81hU%WRIL9Xt_U*lJ`OLI(x{Sw{Y(tjpl3=Tn)X<4k9QjWm7> zlOuSLV|In2s0ESUhSs8P-_H7OC=$4&X>k0lXR-x_+nN=uo2pDso1X|RY1bsgv>U)H z@+;?$Z7I^!SVmd8vgUfeNh5PL-|+m}Da)T$@T!VG;jb#jWb0nQ6Dr;zJM+!56(7d1 ziofB4z?DnQ)N;(11fXs^cI8Uci_$1R34 zVVkwSP;+QG@0g_J;0b=f#MR&WW_abr&&JaxLLM<}yJ-0)J=yKMcQ9eR5u;`*_y@Cj znR_}}Cvf@2^{|O?9po1?_#w+=#CHDXxyo}C9MfCQK|Ie%0@p@LKsR=9u7(P@4m-K( z;>Y^+;bHMIKa$gc&^2WNiBd9k9?4=Ul@5kf8JW_?sfvs~$ z3tT{^bPmcKvI)++IM2Lng{^A<;7B3zoJ;m=)J{~qHija z;J(zlR6uYZS4I@(aaDBH9Qp*781+jr8A(qj15X~sYR)&}0D5tV0C%Ae??ykSu^IQ^ zYTSow@BjnyAVcyv!?8d=|C65n7rp#%+<^aJH~xz~Ld9OO3PV9ec7=Y5)Zt6%j0i1-K?f|zf#;FGd2}ck%o(NstsF1ox{F1%1zDEV0Hc`2pYeD61?w1Jkb;8uQ0HzK7!PJs ijJXxeW?-Wd%&K@Vyh!h(_*k_2aeN|}P2p4c^#1{GYWHRU literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l5collections/FunctionSample.class b/target/classes/track/lections/l5collections/FunctionSample.class new file mode 100644 index 0000000000000000000000000000000000000000..81cdd9bff029632ca9695d6367c5ec3b3328daf4 GIT binary patch literal 2770 zcma)8YgZdp6x}yG1||c9@RHU(th5HO1T3{$9%@i55=w0lt@SlYhA=RhiIWM6@7Evj zpQs-wg|%FMcKMsseKQj>ftdOsbLZZB&OZA*Cx8BZ^gDoA{G?(O3o4$%qKa4WY80;_ zrC_NWuj36B%Xl+RxwSY1*5uti1#hc}VnM-u6+KclDi1R%Vp!deYME zLNepIrd^n;lF;1(VF#LAldx-)E0!l2olzFh3Wis+H!W}}G44xMJkv^U1w@iH33BN+ zZEwR#?R)g`!V_eN8)L9vs>LDIN^w5KbH(pLCD+r1sUW8z4@1G0h61)Jl5!lc%(f}58Q!*&FZXrA zj3LWqCx(|KP=fEfG0bYPP!yPI*<)u?Cot1ep;@K`Mou$NRZJ^yxB^{%+ugpb!GkNWy2q;Wc#aQ2xBV#3;$a=ocSJj$# zxj=_rDp~si*TR+ITbv8y1xF3UGW%uEVEo&h3h52`)nYoydmL9D+rrR`?6ZNY{l;Sw zFG(Sbvu-GCIq1)E&g9SVxt#X<^6>=~bUVMXZBSu8P-yN_jrD)ra!S%;!_IRyH!~b6 zd7n#=W;)U!-y}q*<-5F-*)UieT8-V?#Sm=D1XjN>D+0as6w4}P@DizT7OL&3;7bi( z;X4htWINoztiYAJqG|6ryGAlyohxi1eM`@Ij>{ZJi}js?9~g?XceZc%%GVBaw%F zZ9I!H?&7p}71xN}jpvZyog{dlt0Wjd;x$$$j(Cg5P$T$-r)^cXY859&*ZNNwchb%{ zCMYw>pY*{$d7iuL{6#QDB+mMf9qG&PF`^G1L0dgW57*xG1pVlfw*1KWehiV!F#mmx zocPg&UfP?coa8Zs7iclC6H{fab1(f_B#!iF@E9@T_s8Q07??P~-~oo}R%DV8@`m!b zi5Cg3%H|2MZUtC9)F1B0Kc$}!F>)Ftb`laW>@VXsf!i?0X9V;3ma9s*ukk&;VPfuZ SFVnI@nYXZtbntc;>;D4PquYW2 literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l5collections/FunctionalProgramming$1.class b/target/classes/track/lections/l5collections/FunctionalProgramming$1.class new file mode 100644 index 0000000000000000000000000000000000000000..6e76d3894b0e03551a75eed37dca003f7a0997af GIT binary patch literal 1031 zcmbV~%We}f6o!9iCYdBm$fYzuxs*$RB$Wu4!X{A#RIL;#EtP_@fR!_`QWwWld7Qor zPr!x^n1mYJ6a2~ zqj(ev3ZHka;lcZ+5`mSWj+*LO5UP2!H__8PSBEAX89p9MJ=%EOqQk9-EJL-{J?5vp zskk0BJKBnoFs=Gqy5cEU3@hjSWhnG4ow?6XlB=yQLS7G!=`K@7t|v#D+lir`a)(9? zWxy@@Vu6~JFVn`H*k0iM?qQpH%=f~H3B;a^MO`~ri-&Rd^ai^+P+>&k>J-`H<{46%lMnFRk8qt&lyVj@yHiYcR+?aF6Dn9C&?Tx)BUO08 zN-v4Mny{ZH>|A5>JDfAPG4)@U%OzA7)oIlgT%FoATqEn^I&R=1c@-k0$;JwJl)aqE F{sR7(`bPi& literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l5collections/FunctionalProgramming$BiFunction.class b/target/classes/track/lections/l5collections/FunctionalProgramming$BiFunction.class new file mode 100644 index 0000000000000000000000000000000000000000..bf94b8afee1b27c20b6b76ec02ff00cbb7a7a3fe GIT binary patch literal 463 zcmb7>PfNo<5XIlrHt9dLXU`tmivdv(qdh1T1i{j#y^qThwr)3NlL&sb9{d1)C~>SP zVsh~`^M1_Z?d-h0Z(jkNVGyDh;(*ZN&BneEE{69je&)!sOQVO!l~zSuC8H`Lbmk^? zT$ElDdc$N9C(C%0%wodyYIa$5ENa-YhK;LMLU*2(Ug?Rkl6EvHohnS`*iL0n=KS0?0X=m+f&_U?yB literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l5collections/FunctionalProgramming$BiOperator.class b/target/classes/track/lections/l5collections/FunctionalProgramming$BiOperator.class new file mode 100644 index 0000000000000000000000000000000000000000..2f999dad4c56e5074e42aeb2d6cb77bef5434a4b GIT binary patch literal 587 zcmbV~%}N6?6ot>V?acH~Yu&ka(QX_N1+le@779Y4Lgxiy2*cDgGh{M?uhxYR;6sVG zEw$jdv5=eOeo4+f3Hkh5e*n0}g^yDo9Utd}n#eN!PPp&Qmf}r>T9`PTzbut>gEHxt z5uv_FVk2B(6`|RSq5-!)2ca=eriGC%Ne!X(WQ?*CE%IFD1Url#%4(xBnmH@vYpB@~ z>*S%nld1m6_WD9U+cdUfwMtBUb*MYs`Qd)FF|R+U+9*}S?ub-dYRHXZNt`M4%T zrDL@Yjbs#45t@n0%`ZE-e0x+S^dIa#S*zX5a8c-j(Er~6;qLrb9zbYF%QBmU3p9nd Ygf-v^`$0Z}gVM&8%#Jvu19ZJ$2UlTtP5=M^ literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l5collections/FunctionalProgramming$Predicate.class b/target/classes/track/lections/l5collections/FunctionalProgramming$Predicate.class new file mode 100644 index 0000000000000000000000000000000000000000..e7ce36f0bdd258d073eeec201d4a481661ef7af1 GIT binary patch literal 380 zcmb7Au}T9$6r2~&yIhQ#CXKbl*?1tP(O@G4gg^qh%I;;e92+-#u)F8SS@;2dl=u=s zB(br2GsC<$y!rTidk1ifL57nIXM`l`5DCL#y5?6dExWp$E!SGb`>SU{zA&}p*m_M! zi>lg*#kjgVv_Bk5gx;cQz0wn7<-o~Gn^B~(X)Cft%Qpy zly;;V`@{ZRzMOl#GK!;|&wt_mlXKcXS`I-6!eIY7!p;A~Qh?Br{$wVEBP7C)g>{e$ U`$ieMJ0-`d%$_);1@zPI7v;-op8x;= literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l5collections/FunctionalProgramming$Square.class b/target/classes/track/lections/l5collections/FunctionalProgramming$Square.class new file mode 100644 index 0000000000000000000000000000000000000000..32847871c2837e7e54f0a00dc6705754b64fd602 GIT binary patch literal 1053 zcmbW0O>fgc5Qg8)hn*OgrU?WnA8ny6PAXxEj{{0osj5^dQbdtb<-ReCyX|IO9J`2r z1($+2AkO?K#MrUHgH~x03{Lq4cNN#Z+t-osMcC`i(I|%tt{7T#|7{mBN8?jE(-lf4G1Q0B*F1`oglhR2 z8QvGDS?nU|<-pwnE>CKXv`2-ohCv*9;!q}iSj_=fs`ezQkc~Pl8(Y}6@fZ%n%0G3p z(L~EchvDVItzl^V;m#^StzH0^XF_F`IvQ~mQ+{*}`wS*EG8RW~8QM;Ney^YY|BhIv z%Ws1Aqt{WUkLpF!5aI7YiGD;8Lr;l`HspZs(+)3=c#9?GH#_C Y-oa{W@1jArNhkvwSf-R~WN#a_U-@PVQ~&?~ literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l5collections/FunctionalProgramming.class b/target/classes/track/lections/l5collections/FunctionalProgramming.class new file mode 100644 index 0000000000000000000000000000000000000000..147396df1ed98028c8459980f6b6e478fa500e56 GIT binary patch literal 3006 zcmb_eZCl%96uzIfG;IuSg8@36h$;7bKn6-j)h z;vSZ=SjN{1zEPo|l0i+<75Vr!gH;9JsTh=IqxfDj*Hrv~^$dPga9_o6D0!gZCj}1$ z(zPeP?ivDG#kLK1!P47pqpd&}Q0L91mf`B2<0{w)&WpZX_e{rDP#4H9yT+zj*F8hQ zra&eV60~I6rdJk7PE4)}q!ye_dN@-xZR4Kb+%Vh~eZwMWsOr>pYgKnmdG0V%-XpUu zaINaOdi`<1G6Ik7f_1&_SO=%bnQkq+PQ%rkP19}^>9MJ|1dNI5w!Whme9yEB3kPP! zJ}~o?%F`oj;mMoj&3fw$Z04(g5X?X^L9>x<4g6RkO-~x}! zEoCuBfwQr!I$391(ZvgtPv@5@5zDW$8T_Lu1$SuacB8PgvCTf{>;Af39Az0tWOvG5 zmA!bxn?S;0Gu`SZ#h6#w89jZz+lqR9|#=ZyQgy;fn{rE!`3}tPWjW) z%G}XJ%ZE!Jnlgz0BZA2wnN(9ZZI)tUJ?6jWxpHiSC84_wj{Wd4Vos19tPRS?4_7RP zRdXqaSt+!f+&CmN( zXGa7FA0qEnGTp)yw7(nRKN$A;3*>qkQ{0J32A~f zwU5NFq;cEHz;-m0<1#*^oSK-z6uQyFlCm4PN#szg%=4|_{Wh|=gLz7%@4s18 zS%+uJA4skxS&md~Ej193fpkF9iX{6OsQ!-hODJp4kr~SFLA|_(SB5nC@)CpOzPgVy zWbNVX9?r#dhYsluQ}_HnMh3=l&>Q>^NWw7Y^Rpd4BWu&FucW{{08QXMD6_Vai4UZ*5Ft#=@+P66P$_EzDbZ zM<{J7UzsgJzOmdP6n29nNf>V`UmiqfT^Y7TS2Hrv3_PJbB2;mnf(7$cofAGaO(?um zS4+>Rz(05O7cbCv*}iYu!Oo?Tdy$_IHV8%0@9Rs#VxxH?E`+Ov-*cHLdotWu&R}sJ z^Ya%%6Ka_sLo#70t8v&pVHXc1QixD)sh%%P6mmc9j8sY(AdykpJx-mvL(7{P`talo zl(^htpLQ#VLQn3gcxJU>bxWM}wOorkbx?-w;5|NASa7h2B|`Pl2pm*UC9FMfu7t|H z(x55AbOJry72$>QO-Ja6-SPw2Cyd=I#7z+_o_r(^kGY-3&ZC>bJijLkEW{5k&mVWk z*$D4kj>NIJ@)PufH#s=GmJ)CVqr7(p1dL&vGq#T^uW|7%Y7xLd3 z$coexk;wru72y(0pa!aJv)s#6ZatMNudMz>;R?n7rLum?sZ65|WAs4EJf-;Nr4P+TwqCFeV=S06)q& z1%n4Kn$2$Zy_q-jW;~9yw|ps5Y^cIal~ErSAHeOr yLUg(>u$~!NaQWS0EfBK)mUD-wF>0-{;i1lmb<3)P*#;vE+pH>BHi=zqqVffHz;ihO literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l5collections/Lambda$ImageInfo.class b/target/classes/track/lections/l5collections/Lambda$ImageInfo.class new file mode 100644 index 0000000000000000000000000000000000000000..2d5f652c56376f0a46f87be25c599a6fbc337bc7 GIT binary patch literal 1205 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 literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l5collections/StackException.class b/target/classes/track/lections/l5collections/StackException.class new file mode 100644 index 0000000000000000000000000000000000000000..4836c530a76b41c2ab9eb5931d3e73a92b3c6a9e GIT binary patch literal 388 zcmb7Au};G<6ug&)q=Z7D2zEB0f-Eo$~t&$o6*69ke<66 zMd(-Bs;l{Is{FN>8fFHSlfq1d*Aah{X}Hxb;iw8;$otYL8ML!)X-=gxOH>DLUOY+l z5W6EnXVx~+@y`T=qIPpH)uoP^+rM8PM|}?|RtUp?B(l*@(sB;$A>pryi+Hmu*NoAa p`Gn8xaQFgx=39cCYq4OvtXoBw@$Q$3QNf7ySVM2&wazHP#wScaULpVh literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l5collections/animals/Animal.class b/target/classes/track/lections/l5collections/animals/Animal.class new file mode 100644 index 0000000000000000000000000000000000000000..36cead212a12c0be1a2e4b5bb5a6b966f5666518 GIT binary patch literal 543 zcmb7B%SyvQ6g|^dnl#ngTHnuIt7tZgi;5tEtDr)q`)NAXsgsE$so-bnLcxU};75r! zNvR5MoWc<$h|v92``p`jvRI91!~%HEq$&c z=QOPy8ge7VfWhhp#r4p+?2qWCzo7186bqkTAs7?UbW^bmoU2gkxEqIp`*iWfA25S)pNNzuUn?`F zQ^+Otu+#2g8%28mWaU6|lxa7qbEq<^#hq8MrYbizp&UYW)Z?Cn5B^#O6@@0uak}rvLx| literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l5collections/animals/Cat.class b/target/classes/track/lections/l5collections/animals/Cat.class new file mode 100644 index 0000000000000000000000000000000000000000..85b02091d979117f7c03ad6e9636f8160ec3cd9d GIT binary patch literal 550 zcma)3yH3ME5S+`)4-5$j;r)=iBn56j6hSl*R0c%~3iZXD!ok@__65XeK>-p4AHYW; z)(#336uDyec4l^VPxtxt{sG_sdp0UqwopgI#EOk3Rt>BfSZAml%Sh@IhGMHdWGMCG zYr#p;YcKxe544e`*Fb4kS8*$f54KyktsvR*9i~qJS74x<0$piVGyfX#UmMV zm3lp{yEG>hj|}!8o+N=dlbN?k%>FHZ;0_F!1~wdQVvBY=KfQ8Y*TA-e9qcl+=AARI zv@bM6EgS7A9*w=hQ>sNsOU4r-ntsm6*y|@U(gU3c9?}yU|G*5!eI`;7^|hvrQ%gK zUC2=NMI2sFqG6ca@}VT8?yG>y0Z&9$|AHlbFH(k%uM-}OJsAdCs5tfHVW8x!;<1Rh zOuY*=>e7TEPsR*(UrmxAycC(aN!0!Wf8q`dmA%ums2OV6Y)|rd(W1(u%qW*T?_e)EZBwk|UMQ>1rnMxWo}~4Osd2dQ2PO3rg+8x literal 0 HcmV?d00001 diff --git a/target/classes/track/lections/l5collections/animals/Pet.class b/target/classes/track/lections/l5collections/animals/Pet.class new file mode 100644 index 0000000000000000000000000000000000000000..c3c45904cacafb3f1fdcb7d8b097e78c6ff26714 GIT binary patch literal 557 zcma)3%SyvQ6g|^NUPfD6>-*JRTfuA;7ZpJYu7VUQ-B06CM<+>1rh=cP3k4T`fFC8^ zq*7hD=q&D?d(OG%&g1jz{R6-W4jdR*wNXRe!kU8y)=g}f*kmxyWhC_lL$TE!GL(Ap ztzfA5G7{I*a3qo&K2n6#{5arh$P<~>KVV7U$&{hv>x2gno)UqUag=)MG>Fx_;*kuw zO1-|&U7A2PioqGg(@e6p(jHEPZkpJ2v4?$z)}pf* zjuw($=Eq~GW(V*TkH+5MDb*sRH;Jd3q2cF@jJrGQN%tmg z)8${}b701#Wv0_lolbvKr_=K!**Gkne&`HH@7;IqefOTb$bbI*%dY^=;U^WH7*mi| zF^&lZSF13o;&n`^n8u8XIIby}RZ)$x8oYrwRm3n?jSgH_@Ro{NyshFLysO|n6$daT zPu`a+L&3a?=1`K6s|5w7ik48aC|67Jaia>BG`cM9+^j-YZdMf73LJszjAQ$TWt*PwB((&A;5C< zVeX}~t{JMH+;JnBUbJW@cufT`DhOIRzZZ7YzHMZ!g-|8$8ouS&L#r7xCl^%SKkYMz z<3=usmNg`xmd-r|If0g`yzN^n=B(veq@~}s9Y3%`RuXB)UDB8Hj9ecu7ai9Of|Q1R zvNB@&19vBk6?#~aFc2X_%y}TtSj@)g)l#7qr9qpNN$a-Mqq3-7GX1hXqKnC{JzK1Kn|iS+ zYiMN3^nwBtXit_InD$-EUh0i(+NQ5xn@Y2s!y1bAB#Rcp(rkL_{zzS*c{ih+JssN# zi;9H2v9-gVX7T3?*E3}{*kf&xsp5!;e9QY*R!>{O=xK}~TQWK4>T-<54;p-ilbU^0 zztye%o@csDhst5a#f+Qhc|3VtDpq->Kk3|&^DCYlElLI*&H;V`cvzggCz3nnPFP^k z=#{Dp@!?!=-3uKI_5e#-2kwq82%OrDzp^}q)g%)W`ag6lZ)8c<>2kdYv{Oyqr3QBe zwS*J=Om_178;2@;nJZPcNAPAd1#k9VfDm%X zwGe>k@H}_b{KThFA(cfZudAT!K|`#7im^?^=eisA6;N4#vVp4fCaUK)ppI`MHg~4y zXVk>70c{=oAE9cjyMVei?Ef7~{1M_6Pf)*!1B5rMqj3$52k=J$O`B+@=-@gMYe>}7 z?x9VzP;z)3N7m$DV*y8lMWTRXj{{H7($8A@CF2-CJ)fPZH6=I6CnX zsTw9tlbkqn98MWhbd&Mr8Q(o3?=x!2K{q3<BJwHr7n&3d^=e8h%q5R(l(gY4W%1U8X%!bV+b{b)TEoRg%Q}2E6FKzOZVj; z^r^3TZaQN+Wu}jL=%46M=s#$Bu4H4=P{uP?_kQKmYmt4*-++QNaZ)$hfB9 zIu>QT(Tp1kZsJV^w~$g0!jg<-8MhTESWytcTQbrLTCpGwt75k%mOByjVqL*qysaRE z4Fv(A62QF(-od*H-oyI}K7iJYO>xM|$jQ(pgmRjzNrsywsdz=_6 zToS1udhbi(eW#|37QvjAl`!x>YS*l6xu}~Wuk8&%tEpC2t+JifMaEdldKJb+{Z$O$ zqJ-YlN+!clv4dR+s@F2r^h<~oto-E8_+GKVM5!pCD8p1?p(NaXDB)a9|9DZ@KeY>i z%CD3#vBkm`ih0)!ty!&;3Rn0p8MgesRd#1pe2*WP)YGVo6f&uGIJY-<^ejbPbx}j79#i!@OhQLp z^{9JTh`Q8sz~;{D?lE8S#85-SHe9jJEmThHj#pWZT%tj-I?PpDQ+Jbh(kYtw#jBn< z7WClvMCY+MM{hybNly7FoUO`hQz#yaj=HQmcS71Mrc=BfY;~&*A5KiKisL62IZ$14zGc6TmZE zn>=9~p5Re2~9UjFDH8^vAgdY2Sj#;p(re4LdFX+CS|-R<0YVjPCz9Iui#bgL{g^smH5=uQt%TU2PvC=gy>_mbFHA` zXUL(42nByb=OF^5+?5*fZq6+|LX6bAD~OLqdn!0jl{()Zh5$1gBl~``64 Date: Sat, 22 Oct 2016 17:59:16 +0300 Subject: [PATCH 4/8] container --- src/main/java/track/container/Container.java | 20 ++++++++++--------- .../java/track/container/config/Property.java | 2 +- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/main/java/track/container/Container.java b/src/main/java/track/container/Container.java index ecb5780c..746c876e 100644 --- a/src/main/java/track/container/Container.java +++ b/src/main/java/track/container/Container.java @@ -27,10 +27,11 @@ public Container(List beans) { */ public Object getById(String id) { - for (Bean bean: beans) + for (Bean bean: beans) { if (bean.getId().equals(id)) { return makeRequeredObject(bean); } + } return null; } @@ -39,28 +40,29 @@ public Object getById(String id) { * Например, Car car = (Car) container.getByClass("track.container.beans.Car") */ public Object getByClass(String className) { - for (Bean bean: beans) + for (Bean bean: beans) { if (bean.getClassName().equals(className)) { return makeRequeredObject(bean); } + } return null; } - public Object makeRequeredObject(Bean bean){ + public Object makeRequeredObject(Bean bean) { try { Class beanClass = Class.forName(bean.getClassName()); Object object = beanClass.getConstructor().newInstance(); - for (Property property: bean.getProperties()){ + for (Property property: bean.getProperties()) { Object propertyValue = null; - if (property.getType().equals(ValueType.VAL)){ + if (property.getType().equals(ValueType.VAL)) { propertyValue = property.getVal(); } - if (property.getType().equals(ValueType.REF)){ + if (property.getType().equals(ValueType.REF)) { propertyValue = getById(property.getVal()); } - for (Field field: object.getClass().getDeclaredFields()){ - if (field.getName().equals(property.getName())){ - if (field.getType().getName().equals("int")){ + for (Field field: object.getClass().getDeclaredFields()) { + if (field.getName().equals(property.getName())) { + if (field.getType().getName().equals("int")) { propertyValue = Integer.parseInt((String) propertyValue); } field.setAccessible(true); diff --git a/src/main/java/track/container/config/Property.java b/src/main/java/track/container/config/Property.java index 1c0b382a..4369497e 100644 --- a/src/main/java/track/container/config/Property.java +++ b/src/main/java/track/container/config/Property.java @@ -33,7 +33,7 @@ public void setVal(String val) { setType(ValueType.VAL); } - public void setRef(String ref){ + public void setRef(String ref) { this.val = ref; this.value = ref; setType(ValueType.REF); From cf4fad2b3765645b257051d19117a2646a066b05 Mon Sep 17 00:00:00 2001 From: Rishat Date: Sat, 22 Oct 2016 18:00:56 +0300 Subject: [PATCH 5/8] container --- src/test/java/track/lessons/lesson2/ParserTest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/test/java/track/lessons/lesson2/ParserTest.java b/src/test/java/track/lessons/lesson2/ParserTest.java index b326dfa0..60a620bf 100644 --- a/src/test/java/track/lessons/lesson2/ParserTest.java +++ b/src/test/java/track/lessons/lesson2/ParserTest.java @@ -6,11 +6,13 @@ import org.junit.Assert; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Test; /** * */ +@Ignore public class ParserTest { static String data; From 5f544a26865844132d817e76b342ba2cc5936ae6 Mon Sep 17 00:00:00 2001 From: Rishat Date: Thu, 10 Nov 2016 15:10:03 +0300 Subject: [PATCH 6/8] New homework changes --- .gitignore | 1 + src/main/java/track/Test.java | 10 +++ src/main/java/track/container/Container.java | 57 ++++++++---------- .../classes/track/container/Container.class | Bin 3720 -> 3943 bytes .../track/lessons/lesson2/ParserTest.class | Bin 2202 -> 2235 bytes 5 files changed, 37 insertions(+), 31 deletions(-) create mode 100644 src/main/java/track/Test.java diff --git a/.gitignore b/.gitignore index b1a8a93a..a0925353 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ target/ classes/ *.iml .idea +target/classes/google_checkstyle.xml diff --git a/src/main/java/track/Test.java b/src/main/java/track/Test.java new file mode 100644 index 00000000..f5fc62f8 --- /dev/null +++ b/src/main/java/track/Test.java @@ -0,0 +1,10 @@ +package track; + +/** + * Created by major on 27.10.16. + */ +public class Test { + public static void main(String[] args) { + + } +} diff --git a/src/main/java/track/container/Container.java b/src/main/java/track/container/Container.java index 746c876e..e98e70c2 100644 --- a/src/main/java/track/container/Container.java +++ b/src/main/java/track/container/Container.java @@ -2,7 +2,11 @@ import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.lang.reflect.Type; +import java.util.HashMap; import java.util.List; +import java.util.Map; import track.container.config.Bean; import track.container.config.Property; @@ -14,11 +18,20 @@ */ public class Container { - private List beans; + private static final String INT = "int"; + + private Map beansById; + private Map beansByClassName; // Реализуйте этот конструктор, используется в тестах! public Container(List beans) { - this.beans = beans; + beansById = new HashMap<>(); + beansByClassName = new HashMap<>(); + + for (Bean bean: beans) { + this.beansById.put(bean.getId(),bean); + this.beansByClassName.put(bean.getClassName(),bean); + } } /** @@ -26,13 +39,7 @@ public Container(List beans) { * Например, Car car = (Car) container.getById("carBean") */ public Object getById(String id) { - - for (Bean bean: beans) { - if (bean.getId().equals(id)) { - return makeRequeredObject(bean); - } - } - return null; + return makeRequiredObject(beansById.get(id)); } /** @@ -40,15 +47,10 @@ public Object getById(String id) { * Например, Car car = (Car) container.getByClass("track.container.beans.Car") */ public Object getByClass(String className) { - for (Bean bean: beans) { - if (bean.getClassName().equals(className)) { - return makeRequeredObject(bean); - } - } - return null; + return makeRequiredObject(beansByClassName.get(className)); } - public Object makeRequeredObject(Bean bean) { + public Object makeRequiredObject(Bean bean) { try { Class beanClass = Class.forName(bean.getClassName()); Object object = beanClass.getConstructor().newInstance(); @@ -60,28 +62,21 @@ public Object makeRequeredObject(Bean bean) { if (property.getType().equals(ValueType.REF)) { propertyValue = getById(property.getVal()); } - for (Field field: object.getClass().getDeclaredFields()) { - if (field.getName().equals(property.getName())) { - if (field.getType().getName().equals("int")) { + char[] properyNameCharSet = property.getName().toCharArray(); + properyNameCharSet[0] = Character.toUpperCase(properyNameCharSet[0]); + String properyName = new String(properyNameCharSet); + for (Method method: object.getClass().getDeclaredMethods()) { + if (method.getName().equals("set" + properyName)) { + if (method.getParameterTypes()[0].getName().equals(INT)) { propertyValue = Integer.parseInt((String) propertyValue); } - field.setAccessible(true); - field.set(object,propertyValue); + method.invoke(object,propertyValue); } } } - return object; - } catch (ClassNotFoundException e) { - e.printStackTrace(); - } catch (NoSuchMethodException e) { - e.printStackTrace(); - } catch (InstantiationException e) { - e.printStackTrace(); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } catch (InvocationTargetException e) { + } catch (Exception e) { e.printStackTrace(); } return null; diff --git a/target/classes/track/container/Container.class b/target/classes/track/container/Container.class index a2cfe2015e3ad086015b15ebede57b2c036664a5..d530e8e029cb28dfd9d1242665d5cfd027cac862 100644 GIT binary patch literal 3943 zcma)9`FmVd8Gg^qWbVwJlcXI;$h3rXqfFAKfl#|7wbF(b0!dn$G&QXvHwv(CZ zojav*0~Hq#cec8NOT`5X!Zf8)i=rYfxT2!yk3Nt8fX~xMi0`>~mYbvvHqE)`JLfy! z`hMRzdFhR3&jHwof9i;1N<&6R08>${M^+8F7>>e@ArD6l1r5h^L~&;f$1$yD?^d(- z=wyAbjwN`XhWD%QT^jDz@d12L@q9?bJvtij;V3?WkLnygrpS90d7nD^aYf#*qXnPP z@kxA2!>1MT8D-OFmAKF8cmVfncu>b0OhxdJ`aZ0NM-(H)J%AI6kvyM|;0rpwh%c$( z%WCH<8osLIIy@>6>>U^qi1!^fju{I%*o3 z{Lbm#F@bvTK*6!n9sNd*+|fa6B4aoOo18by-QBiOdY@w(sUsb!Y{oIHjA^UcxHZwS zlPbEmQ{0l0vYxb&&kq<=lp5Y0DWV z$2{I`3pC7+NbR7*kTKY<2TZGm$25FRpmTmW-b|K?mNsEJUMkm?j{B3}>dV-k(ZgoS zp_>7ViPzn8ZdRD{R5d&CDdUK_&pcYNY;(*zBXC`EQMWFtCOl<2lUb@-<}<=J$J4Z; zqu<@5F||26n=@@^x&%%?f-4rsJ*H`epPos>9yA@gai~Wi=Gzg7l!Xbbyp+LvOZuqW zEre1Cmimlzm$)C!x*-z~L|=oCVb}4LnRBdcrkh=X4S{Wd{X@eD>s!OuHGG4G$rul2 z3wFxfZ7KBDRgktp)u==_zA3QOtyj1FZZ`6hM1{mAY?kQ4X5vEPB)&y(NIZ^jOMD04 zC59I%If?J#2@T(uIE5!Ap28CnKfu!x`!Fc+42rC)YKL(BlsJtUV!pcUgvCUbxhlEvb1FRAs;#xV7#d+ ze(oMEN~$7`SQSZ)$x<=7D$5!OMs3o_517Yk0nZ#{N6Wax?;*h!}3=BeeQPk zN~k(P$WdgjK*3x59i$}6=T~XvqQx$$&xMoM;)5gw=5(aRPHW>?+dFu*--MF6eud@I ztW)~bwPqJmZU(MT`cvSs`45%@?>oexHZRPKkAdwaW8T^8UY;qI@HKOEEap%x%_~)g zW%AyMm$Os>lFBHVhIo?*tl{>2*rvRT)NPB3iw9P`84nXVyrWNG)&C#q zP_n0$tTo9)Jud8364lM4o&x@4m9rct!;NMtZSX4cZVa+EQ=bo&<-}HQl(0dC8DhWP z@7G1JM^!woKK5nuiy8Q5ZV*AGRLw<7`Cl`M@k9un^Ml1FDj)aw)-4kfsXs+ z7-CXPtmLya&X;iz%Wys4#{zF56+kWefZuqVvY+17 z29!5N)ScpLz%@7QDrj>}YV^1(hQzVQ4Y-D@pg)G&6VZlPXO~RKB37Tp8e-_`_}U__Nkljlku0M11Ul7rTd=c;b#V&f%92F* zJX&V3VFn#kF55%&Y$TWn4;FFlfqP=&R(?(r#PjOB7_L=Z>6A{rh{l? z$~F^QThN59{OKaHyKxK0+sN@Q2Kz9Pe9z!32%Df4-v@Bq`|;9k5PBhV-@kAqBIgt}kAA-n@MoL|5@ zaXVqtgn!e90|-)T2zS6xP!iEHlsHp3_Yiy((KoPK!>EQ7@%uX3HH>lIG>dB?U0j=$ uU2jXnxP}Q0lY-X&7q@D#E}(vvCe+O1SJl7*;d9&D09`yx@`#K0^#1_)g997@ literal 3720 zcmb7HU2q%K75=U)Yo+yCv7OjhfQg;(qxdH-F-;rUq)ki=Cbk2yaUryYwY;`BQC4QP z3JK*mr9fy)ODTl_{e!kHr9T0Jl2AzLOlO#3rY#ShDG$uR12gc@8F=XMz(CyZ-j(E) z?cnKy_MCh7{M~cDbMESmGcTV8a2fupBMvKujhL#zG-hgGW3PPd(~!{-!G0ZU;ph~| z%H^yM1Gi{!CCzE@bmVbBzPVMyK^^rt6vJ)!md*#Y>T$bV-XZnxl&3-LV--`8=mqz~yxO8NsG?UMdbN2jC@ z3sg^7rjrw>8`^6gFuU`fo#`I3b6&4NY}B51OfTeb#R4mb~R!lYR&SmnJ{g_p(t}PuW(65hVfezYVc&~~;kt|{7~&6vzq@nH1<-)f8RBUzPK0YQiB77L7I zy@71rncQ(OZOwXi)}cmQKxia8norLRTi#5zLMCWv(8+nGPbk7o03 z+8VHBC&bI(-YBzepa+i{=*AZ`{KUXxc$@$+a1>7%coI*sJ3gl+4g3^8Gw^f#!oUEo zH1JEgd>YTN1s6)GQg7f__%#Q@!nTht4Zkrkhu<1_7QYi%dlqk{3LAJ1zt`{w1AoMy z3>=gGo|jx7E;sN3UNmqVFEJGc3i91^cu}CrcDxGLersqrVc;ZA8F(3gHt-5wHE$1P4_x!`PXWl4?WLCgEA{9(OMR|TS>icz6BTk#jy8f`cD5$W^2rkWx zxHOPuTf6zR%2-b_m@;21I0Z{p3Mlc^ElX1w5D=(wtXqAQq}ivJRQMEMI7= z&OkaCU?&6YV1OG}3~ryx;R4nr z^sYptfc5vr#N7Pxx%nHqjtzGfaM2uECB0-0&5~}IL!G1@bBIdXMG(l+{{#Qz{{~6_ z&HoLOzQa6A`ab_RNcthO?t|qp0YbbXO2ju4gIkE~K33vt0^?ewa1(m5m*qb~$Q&hT zo+V5Q1j#Gt$KSaB20ugoj;rYLYP^Y^_!q|LbqH@^7;lq*2P1eFyYL?Q_i+tApw<77 z{}8+J5k~P}T&L=O8$ox3zOKR`d!`Q$(cVt}z1o6@X>FM2isE(J+C@M%;{+}3j0iofWS8BM4znl3p`J0e~CCvar GnEW4M)6K~M diff --git a/target/test-classes/track/lessons/lesson2/ParserTest.class b/target/test-classes/track/lessons/lesson2/ParserTest.class index 35bc796ea866d0b4c4c0e63509930ee168025a95..3a53a482ec1ceb2e9c1af52dce7195e70dbf56a1 100644 GIT binary patch delta 462 zcmW-e-A@xy5XFCYYdY=CH4&0R)FL%eh=H(y5EF%%s8FeZf>lw$kBaNMb?IVhvG@h3 zp!m8k#{a_bV1kK0_~wgG{wF>g@0v+w&Y7Ianaq4@``Wht^Y7j_V3-e@F2;m$O_2-2 zM23>)B9odarZxMxBwQ9|G@4mWmMcP8v!AhqTusomBwf#vXHIj2o0?n9Yn(*lu#n|8 zcQkjor>Ss1!=g^u1Hls>e%^6amv4>#+mwYz3O(Lh^p+bzR9g{(__z9zQ?yS-b>FQv zYeB;;`L(F-jl>_Fo|9F>V?u?gR#q!+5V^%5^c2}J@`tMft))=#4NKI7$gs>4LxFny z#~DhmB(M?pr}E`y(qHANp_QN`blXh~YdjO48(#3zFv2Tg-LS!?@Y?W(x5AcTn|Ic4 z)D0_ZQL}Nz@SYt-Auc%i-7hIgsRQx%^w!Z1(sbH5NH2$QIn0nf*{HpLk#45#fG59l j$E@PG}5SW|APy0r{Kn& z8#lV}&xkW};d0KshjZY(WcHl5r*^x-HR}G?-#q5@tp+OT@*TwAs91L9qCA z@6$X>R`7q!fM8iew(QR@#*?eDXhN`JerxaMqh8@$RjjdY{^*{pCB+7tf~X=!Tv5!H zX*m4OZ5t-cfTOT4Y2SC)RqWZQ2(RU>*yliSs5s(SQO}9sRFUFLaIU!EQgEfX=0?M4 z@NGm6Vmrx3#VvQwkB$n5mSKK5uS>FV;wHzMN^ Date: Thu, 17 Nov 2016 12:43:51 +0300 Subject: [PATCH 7/8] Changed according to comments --- src/main/java/track/container/Container.java | 117 +++++++++++++++--- .../classes/track/container/Container.class | Bin 3943 -> 4672 bytes 2 files changed, 102 insertions(+), 15 deletions(-) diff --git a/src/main/java/track/container/Container.java b/src/main/java/track/container/Container.java index e98e70c2..b161a73e 100644 --- a/src/main/java/track/container/Container.java +++ b/src/main/java/track/container/Container.java @@ -1,14 +1,12 @@ package track.container; -import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; -import java.lang.reflect.Type; import java.util.HashMap; import java.util.List; import java.util.Map; import track.container.config.Bean; +import track.container.config.InvalidConfigurationException; import track.container.config.Property; import track.container.config.ValueType; @@ -39,7 +37,13 @@ public Container(List beans) { * Например, Car car = (Car) container.getById("carBean") */ public Object getById(String id) { - return makeRequiredObject(beansById.get(id)); + try { + return makeRequiredObject(beansById.get(id)); + } + catch (InvalidConfigurationException e){ + System.out.println(e.getMessage()); + } + return null; } /** @@ -47,14 +51,20 @@ public Object getById(String id) { * Например, Car car = (Car) container.getByClass("track.container.beans.Car") */ public Object getByClass(String className) { - return makeRequiredObject(beansByClassName.get(className)); + try { + return makeRequiredObject(beansByClassName.get(className)); + } + catch (InvalidConfigurationException e){ + System.out.println(e.getMessage()); + } + return null; } - public Object makeRequiredObject(Bean bean) { + public Object makeRequiredObject(Bean bean) throws InvalidConfigurationException { try { Class beanClass = Class.forName(bean.getClassName()); Object object = beanClass.getConstructor().newInstance(); - for (Property property: bean.getProperties()) { + for (Property property : bean.getProperties()) { Object propertyValue = null; if (property.getType().equals(ValueType.VAL)) { propertyValue = property.getVal(); @@ -65,21 +75,98 @@ public Object makeRequiredObject(Bean bean) { char[] properyNameCharSet = property.getName().toCharArray(); properyNameCharSet[0] = Character.toUpperCase(properyNameCharSet[0]); String properyName = new String(properyNameCharSet); - for (Method method: object.getClass().getDeclaredMethods()) { + for (Method method : object.getClass().getDeclaredMethods()) { if (method.getName().equals("set" + properyName)) { - if (method.getParameterTypes()[0].getName().equals(INT)) { - propertyValue = Integer.parseInt((String) propertyValue); + for (Primitives primitive: Primitives.values()){ + if (method.getParameterTypes()[0].getName().equals(primitive.getType())){ + propertyValue = primitive.parse((String) propertyValue); + } } - method.invoke(object,propertyValue); + method.invoke(object, propertyValue); } } } return object; - - } catch (Exception e) { - e.printStackTrace(); } - return null; + catch (Exception e){ + InvalidConfigurationException ex = new InvalidConfigurationException("Invalid config"); + throw ex; + } + } + + + private enum Primitives{ + BOOLEAN{ + private String type = "boolean"; + public Boolean parse(String value){ + return Boolean.parseBoolean(value); + } + + @Override + public String getType() { + return type; + } + }, + SHORT{ + private String type = "short"; + public Short parse(String value){ + return Short.parseShort(value); + } + + @Override + public String getType() { + return type; + } + }, + INTEGER{ + private String type = "int"; + public Integer parse(String value){ + return Integer.parseInt(value); + } + + @Override + public String getType() { + return type; + } + }, + LONG{ + private String type = "long"; + public Long parse(String value){ + return Long.parseLong(value); + } + + @Override + public String getType() { + return type; + } + + }, + DOUBLE{ + private String type = "double"; + public Double parse(String value){ + return Double.parseDouble(value); + } + + @Override + public String getType() { + return type; + } + }, + FLOAT{ + private String type = "float"; + public Float parse(String value){ + return Float.parseFloat(value); + } + + @Override + public String getType() { + return type; + } + }; + + public abstract Object parse(String value); + public abstract String getType(); + } } diff --git a/target/classes/track/container/Container.class b/target/classes/track/container/Container.class index d530e8e029cb28dfd9d1242665d5cfd027cac862..7f9a0a57f727209388f13ea1b448d37ae1e31f7f 100644 GIT binary patch literal 4672 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 M0oKkMtlOkM3q}vw5C8xG delta 1787 zcmZ{kX>gQ95Qd-GO?Gy_3?u{tELXTh2t*(pfsJ@@2MG5SL|_R^NC+V$3xWshfhdRv zet3W zhmHdM_{AZc#hPjdAB#iuWQi3u87!qXgF50?EYmD^2yuG`D_Ci@JFIr6BcXRWWO27< zm0c5>dmQfNJ{xntX0<~O4}@65gN}%YthqKsVh!u;*@vyY-XWJq93JH{&EwYCV2gUf z;<*kRS+9B0p$m(HJZ0CXt$4-;3f@LG*+7Ze9OPMt=XlYG~Z`N$pyzKtwtMvOS=DVBy^WDB_r+q5ss`S?3Rnm`iA?<5Q zr8>$H8uqZ)u#eq_diEP8G1>4Io+2|~V`Xv8LBk;q8{X!KJ1fwo&r#md95Wo}UBi2vFuZT^Kd@#A;|w2K^CTZ>P8m+~ zvAZ{r)4YgJ44?9u;d8!_ZWS%vT+`D1JrKJaMDMbs{LT4QaF`lXilcE0`S^DtRW!?o>K+lSFioeEn$8&DvCY>kT9`hM-b~u!iQ4ld<%zf=NRMtF-8WHS_w)P( z9zC)JNjzEMz%gE)b_?L+Z(&)?laTwa6gtIafC(YfIw8^yq0&hq!dXUg zj$-~0-v!1Bc8NfbSAHfaEyT2xT!16-^(d=kyFJ;mdtgf7xqGfz_{EWSX#X1?gH z8tIKmvO9KpH?^f%peffZR8sz*jL}q_C$mv%NKeLhzjDAn3VA0AUkV9nvQo@NNs3ne E1*H8~=>Px# From fa1761e8a33c24c97a4f5d04ad9b49ffc65b68b5 Mon Sep 17 00:00:00 2001 From: Rishat Date: Thu, 17 Nov 2016 12:53:45 +0300 Subject: [PATCH 8/8] Changed according to comments --- src/main/java/track/container/Container.java | 60 +++++++++++--------- 1 file changed, 32 insertions(+), 28 deletions(-) diff --git a/src/main/java/track/container/Container.java b/src/main/java/track/container/Container.java index b161a73e..7c6d3dbe 100644 --- a/src/main/java/track/container/Container.java +++ b/src/main/java/track/container/Container.java @@ -18,29 +18,28 @@ public class Container { private static final String INT = "int"; - private Map beansById; - private Map beansByClassName; + private Map beansById; + private Map beansByClassName; // Реализуйте этот конструктор, используется в тестах! public Container(List beans) { beansById = new HashMap<>(); beansByClassName = new HashMap<>(); - for (Bean bean: beans) { - this.beansById.put(bean.getId(),bean); - this.beansByClassName.put(bean.getClassName(),bean); + for (Bean bean : beans) { + this.beansById.put(bean.getId(), bean); + this.beansByClassName.put(bean.getClassName(), bean); } } /** - * Вернуть объект по имени бина из конфига - * Например, Car car = (Car) container.getById("carBean") + * Вернуть объект по имени бина из конфига + * Например, Car car = (Car) container.getById("carBean") */ public Object getById(String id) { try { return makeRequiredObject(beansById.get(id)); - } - catch (InvalidConfigurationException e){ + } catch (InvalidConfigurationException e) { System.out.println(e.getMessage()); } return null; @@ -53,8 +52,7 @@ public Object getById(String id) { public Object getByClass(String className) { try { return makeRequiredObject(beansByClassName.get(className)); - } - catch (InvalidConfigurationException e){ + } catch (InvalidConfigurationException e) { System.out.println(e.getMessage()); } return null; @@ -77,8 +75,8 @@ public Object makeRequiredObject(Bean bean) throws InvalidConfigurationException String properyName = new String(properyNameCharSet); for (Method method : object.getClass().getDeclaredMethods()) { if (method.getName().equals("set" + properyName)) { - for (Primitives primitive: Primitives.values()){ - if (method.getParameterTypes()[0].getName().equals(primitive.getType())){ + for (Primitives primitive : Primitives.values()) { + if (method.getParameterTypes()[0].getName().equals(primitive.getType())) { propertyValue = primitive.parse((String) propertyValue); } } @@ -87,18 +85,18 @@ public Object makeRequiredObject(Bean bean) throws InvalidConfigurationException } } return object; - } - catch (Exception e){ + } catch (Exception e) { InvalidConfigurationException ex = new InvalidConfigurationException("Invalid config"); throw ex; } } - private enum Primitives{ - BOOLEAN{ + private enum Primitives { + BOOLEAN { private String type = "boolean"; - public Boolean parse(String value){ + + public Boolean parse(String value) { return Boolean.parseBoolean(value); } @@ -107,9 +105,10 @@ public String getType() { return type; } }, - SHORT{ + SHORT { private String type = "short"; - public Short parse(String value){ + + public Short parse(String value) { return Short.parseShort(value); } @@ -118,9 +117,10 @@ public String getType() { return type; } }, - INTEGER{ + INTEGER { private String type = "int"; - public Integer parse(String value){ + + public Integer parse(String value) { return Integer.parseInt(value); } @@ -129,9 +129,10 @@ public String getType() { return type; } }, - LONG{ + LONG { private String type = "long"; - public Long parse(String value){ + + public Long parse(String value) { return Long.parseLong(value); } @@ -141,9 +142,10 @@ public String getType() { } }, - DOUBLE{ + DOUBLE { private String type = "double"; - public Double parse(String value){ + + public Double parse(String value) { return Double.parseDouble(value); } @@ -152,9 +154,10 @@ public String getType() { return type; } }, - FLOAT{ + FLOAT { private String type = "float"; - public Float parse(String value){ + + public Float parse(String value) { return Float.parseFloat(value); } @@ -165,6 +168,7 @@ public String getType() { }; public abstract Object parse(String value); + public abstract String getType(); }