diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 94a25f7..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/build.xml b/build.xml new file mode 100644 index 0000000..7fb9177 --- /dev/null +++ b/build.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + Builds, tests, and runs the project TextClassifierProject. + + + diff --git a/lib/antlr-2.7.7.jar b/lib/antlr-2.7.7.jar new file mode 100644 index 0000000..5e5f14b Binary files /dev/null and b/lib/antlr-2.7.7.jar differ diff --git a/lib/classmate-1.3.0.jar b/lib/classmate-1.3.0.jar new file mode 100644 index 0000000..049b63f Binary files /dev/null and b/lib/classmate-1.3.0.jar differ diff --git a/lib/dom4j-1.6.1.jar b/lib/dom4j-1.6.1.jar new file mode 100644 index 0000000..c8c4dbb Binary files /dev/null and b/lib/dom4j-1.6.1.jar differ diff --git a/lib/hibernate-commons-annotations-5.0.1.Final.jar b/lib/hibernate-commons-annotations-5.0.1.Final.jar new file mode 100644 index 0000000..82e425d Binary files /dev/null and b/lib/hibernate-commons-annotations-5.0.1.Final.jar differ diff --git a/lib/hibernate-core-5.2.12.Final.jar b/lib/hibernate-core-5.2.12.Final.jar new file mode 100644 index 0000000..9f1e9c1 Binary files /dev/null and b/lib/hibernate-core-5.2.12.Final.jar differ diff --git a/lib/hibernate-jpa-2.1-api-1.0.0.Final.jar b/lib/hibernate-jpa-2.1-api-1.0.0.Final.jar new file mode 100644 index 0000000..e2f2c59 Binary files /dev/null and b/lib/hibernate-jpa-2.1-api-1.0.0.Final.jar differ diff --git a/lib/jandex-2.0.3.Final.jar b/lib/jandex-2.0.3.Final.jar new file mode 100644 index 0000000..00c9dc2 Binary files /dev/null and b/lib/jandex-2.0.3.Final.jar differ diff --git a/lib/javassist-3.20.0-GA.jar b/lib/javassist-3.20.0-GA.jar new file mode 100644 index 0000000..0f1ff72 Binary files /dev/null and b/lib/javassist-3.20.0-GA.jar differ diff --git a/lib/jboss-logging-3.3.0.Final.jar b/lib/jboss-logging-3.3.0.Final.jar new file mode 100644 index 0000000..ea45d4d Binary files /dev/null and b/lib/jboss-logging-3.3.0.Final.jar differ diff --git a/lib/jboss-transaction-api_1.2_spec-1.0.1.Final.jar b/lib/jboss-transaction-api_1.2_spec-1.0.1.Final.jar new file mode 100644 index 0000000..2113cc0 Binary files /dev/null and b/lib/jboss-transaction-api_1.2_spec-1.0.1.Final.jar differ diff --git a/lib/mysql-connector-java-5.0.8-bin.jar b/lib/mysql-connector-java-5.0.8-bin.jar new file mode 100644 index 0000000..0170c3e Binary files /dev/null and b/lib/mysql-connector-java-5.0.8-bin.jar differ diff --git a/nbproject/build-impl.xml b/nbproject/build-impl.xml new file mode 100644 index 0000000..9830a0e --- /dev/null +++ b/nbproject/build-impl.xml @@ -0,0 +1,1420 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set src.dir + Must set test.src.dir + Must set build.dir + Must set dist.dir + Must set build.classes.dir + Must set dist.javadoc.dir + Must set build.test.classes.dir + Must set build.test.results.dir + Must set build.classes.excludes + Must set dist.jar + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set javac.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + No tests executed. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set JVM to use for profiling in profiler.info.jvm + Must set profiler agent JVM arguments in profiler.info.jvmargs.agent + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select some files in the IDE or set javac.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + To run this application from the command line without Ant, try: + + java -jar "${dist.jar.resolved}" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set run.class + + + + Must select one file in the IDE or set run.class + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set debug.class + + + + + Must select one file in the IDE or set debug.class + + + + + Must set fix.includes + + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + Must select one file in the IDE or set profile.class + This target only works when run from inside the NetBeans IDE. + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set run.class + + + + + + Must select some files in the IDE or set test.includes + + + + + Must select one file in the IDE or set run.class + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select some files in the IDE or set javac.includes + + + + + + + + + + + + + + + + + + + + Some tests failed; see details above. + + + + + + + + + Must select some files in the IDE or set test.includes + + + + Some tests failed; see details above. + + + + Must select some files in the IDE or set test.class + Must select some method in the IDE or set test.method + + + + Some tests failed; see details above. + + + + + Must select one file in the IDE or set test.class + + + + Must select one file in the IDE or set test.class + Must select some method in the IDE or set test.method + + + + + + + + + + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/nbproject/genfiles.properties b/nbproject/genfiles.properties new file mode 100644 index 0000000..8e99bbf --- /dev/null +++ b/nbproject/genfiles.properties @@ -0,0 +1,8 @@ +build.xml.data.CRC32=0fd20a72 +build.xml.script.CRC32=687418d1 +build.xml.stylesheet.CRC32=8064a381@1.80.1.48 +# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. +# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. +nbproject/build-impl.xml.data.CRC32=0fd20a72 +nbproject/build-impl.xml.script.CRC32=fbbe4592 +nbproject/build-impl.xml.stylesheet.CRC32=830a3534@1.80.1.48 diff --git a/nbproject/private/private.properties b/nbproject/private/private.properties new file mode 100644 index 0000000..8acf1dc --- /dev/null +++ b/nbproject/private/private.properties @@ -0,0 +1,2 @@ +compile.on.save=true +user.properties.file=C:\\Users\\1\\AppData\\Roaming\\NetBeans\\8.2\\build.properties diff --git a/nbproject/private/private.xml b/nbproject/private/private.xml new file mode 100644 index 0000000..6807a2b --- /dev/null +++ b/nbproject/private/private.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/nbproject/project.properties b/nbproject/project.properties new file mode 100644 index 0000000..8de8683 --- /dev/null +++ b/nbproject/project.properties @@ -0,0 +1,74 @@ +annotation.processing.enabled=true +annotation.processing.enabled.in.editor=false +annotation.processing.processor.options= +annotation.processing.processors.list= +annotation.processing.run.all.processors=true +annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output +build.classes.dir=${build.dir}/classes +build.classes.excludes=**/*.java,**/*.form +# This directory is removed when the project is cleaned: +build.dir=build +build.generated.dir=${build.dir}/generated +build.generated.sources.dir=${build.dir}/generated-sources +# Only compile against the classpath explicitly listed here: +build.sysclasspath=ignore +build.test.classes.dir=${build.dir}/test/classes +build.test.results.dir=${build.dir}/test/results +# Uncomment to specify the preferred debugger connection transport: +#debug.transport=dt_socket +debug.classpath=\ + ${run.classpath} +debug.test.classpath=\ + ${run.test.classpath} +# Files in build.classes.dir which should be excluded from distribution jar +dist.archive.excludes= +# This directory is removed when the project is cleaned: +dist.dir=dist +dist.jar=${dist.dir}/TextClassifierProject.jar +dist.javadoc.dir=${dist.dir}/javadoc +excludes= +includes=** +jar.compress=false +javac.classpath= +# Space-separated list of extra javac options +javac.compilerargs= +javac.deprecation=false +javac.external.vm=true +javac.processorpath=\ + ${javac.classpath} +javac.source=1.8 +javac.target=1.8 +javac.test.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} +javac.test.processorpath=\ + ${javac.test.classpath} +javadoc.additionalparam= +javadoc.author=false +javadoc.encoding=${source.encoding} +javadoc.noindex=false +javadoc.nonavbar=false +javadoc.notree=false +javadoc.private=false +javadoc.splitindex=true +javadoc.use=true +javadoc.version=false +javadoc.windowtitle= +main.class= +manifest.file=manifest.mf +meta.inf.dir=${src.dir}/META-INF +mkdist.disabled=false +platform.active=default_platform +run.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} +# Space-separated list of JVM arguments used when running the project. +# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value. +# To set system properties for unit tests define test-sys-prop.name=value: +run.jvmargs= +run.test.classpath=\ + ${javac.test.classpath}:\ + ${build.test.classes.dir} +source.encoding=UTF-8 +src.dir=src +test.src.dir=test diff --git a/nbproject/project.xml b/nbproject/project.xml new file mode 100644 index 0000000..764375f --- /dev/null +++ b/nbproject/project.xml @@ -0,0 +1,15 @@ + + + org.netbeans.modules.java.j2seproject + + + TextClassifierProject + + + + + + + + + diff --git a/out/production/TextClassfierProject/dumps/homework_passwords.sql b/out/production/TextClassfierProject/dumps/homework_passwords.sql new file mode 100644 index 0000000..3b48894 --- /dev/null +++ b/out/production/TextClassfierProject/dumps/homework_passwords.sql @@ -0,0 +1,55 @@ +CREATE DATABASE IF NOT EXISTS `homework` /*!40100 DEFAULT CHARACTER SET utf8 */; +USE `homework`; +-- MySQL dump 10.13 Distrib 5.7.12, for Win64 (x86_64) +-- +-- Host: 127.0.0.1 Database: homework +-- ------------------------------------------------------ +-- Server version 5.7.15-log + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `passwords` +-- + +DROP TABLE IF EXISTS `passwords`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `passwords` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `password` varchar(45) NOT NULL, + PRIMARY KEY (`id`), + KEY `id` (`user_id`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `passwords` +-- + +LOCK TABLES `passwords` WRITE; +/*!40000 ALTER TABLE `passwords` DISABLE KEYS */; +INSERT INTO `passwords` VALUES (2,2,'12345'); +/*!40000 ALTER TABLE `passwords` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2017-11-26 22:59:36 diff --git a/out/production/TextClassfierProject/dumps/homework_users.sql b/out/production/TextClassfierProject/dumps/homework_users.sql new file mode 100644 index 0000000..fae4347 --- /dev/null +++ b/out/production/TextClassfierProject/dumps/homework_users.sql @@ -0,0 +1,54 @@ +CREATE DATABASE IF NOT EXISTS `homework` /*!40100 DEFAULT CHARACTER SET utf8 */; +USE `homework`; +-- MySQL dump 10.13 Distrib 5.7.12, for Win64 (x86_64) +-- +-- Host: 127.0.0.1 Database: homework +-- ------------------------------------------------------ +-- Server version 5.7.15-log + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `users` +-- + +DROP TABLE IF EXISTS `users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `users` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `login` varchar(45) NOT NULL, + `age` int(3) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `users` +-- + +LOCK TABLES `users` WRITE; +/*!40000 ALTER TABLE `users` DISABLE KEYS */; +INSERT INTO `users` VALUES (2,'maks081197',20); +/*!40000 ALTER TABLE `users` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2017-11-26 22:59:36 diff --git a/out/production/TextClassfierProject/hibernate.cfg.xml b/out/production/TextClassfierProject/hibernate.cfg.xml new file mode 100644 index 0000000..4ee96ce --- /dev/null +++ b/out/production/TextClassfierProject/hibernate.cfg.xml @@ -0,0 +1,14 @@ + + + + + jdbc:mysql://localhost:3306/homework + com.mysql.jdbc.Driver + root + gjy7514wvmxeq54 + + + + \ No newline at end of file diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/diagramBomberman/GameObject.class b/out/production/TextClassfierProject/ru/caf82/lectures/diagramBomberman/GameObject.class new file mode 100644 index 0000000..b15820a Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/diagramBomberman/GameObject.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/diagramBomberman/GameSession.class b/out/production/TextClassfierProject/ru/caf82/lectures/diagramBomberman/GameSession.class new file mode 100644 index 0000000..1651fa4 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/diagramBomberman/GameSession.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/diagramBomberman/Movable.class b/out/production/TextClassfierProject/ru/caf82/lectures/diagramBomberman/Movable.class new file mode 100644 index 0000000..bf8113d Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/diagramBomberman/Movable.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/diagramBomberman/Positioanable.class b/out/production/TextClassfierProject/ru/caf82/lectures/diagramBomberman/Positioanable.class new file mode 100644 index 0000000..dca9d1b Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/diagramBomberman/Positioanable.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/diagramBomberman/Temporary.class b/out/production/TextClassfierProject/ru/caf82/lectures/diagramBomberman/Temporary.class new file mode 100644 index 0000000..2fbe339 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/diagramBomberman/Temporary.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/diagramBomberman/Tickable.class b/out/production/TextClassfierProject/ru/caf82/lectures/diagramBomberman/Tickable.class new file mode 100644 index 0000000..839dc93 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/diagramBomberman/Tickable.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/BoxingExample.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/BoxingExample.class new file mode 100644 index 0000000..2d41cd2 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/BoxingExample.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/BreakAndContinueExample.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/BreakAndContinueExample.class new file mode 100644 index 0000000..fee3117 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/BreakAndContinueExample.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/CalculatorExample.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/CalculatorExample.class new file mode 100644 index 0000000..cba6209 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/CalculatorExample.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/CommentsExample.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/CommentsExample.class new file mode 100644 index 0000000..6b31809 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/CommentsExample.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/ConstructorExample$Rectangular.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/ConstructorExample$Rectangular.class new file mode 100644 index 0000000..0134209 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/ConstructorExample$Rectangular.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/ConstructorExample.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/ConstructorExample.class new file mode 100644 index 0000000..29425b9 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/ConstructorExample.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/ForAndForEachExample.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/ForAndForEachExample.class new file mode 100644 index 0000000..07149a9 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/ForAndForEachExample.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/IfElseAndSwitchCaseExample.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/IfElseAndSwitchCaseExample.class new file mode 100644 index 0000000..ff3a192 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/IfElseAndSwitchCaseExample.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/LinkTypes.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/LinkTypes.class new file mode 100644 index 0000000..cb9679d Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/LinkTypes.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/OperatorsExample.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/OperatorsExample.class new file mode 100644 index 0000000..69ad417 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/OperatorsExample.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/PrimitiveTypes.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/PrimitiveTypes.class new file mode 100644 index 0000000..c449979 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/PrimitiveTypes.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/StringProcessing.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/StringProcessing.class new file mode 100644 index 0000000..7585d1c Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/StringProcessing.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/WhileAndDoWhileExample.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/WhileAndDoWhileExample.class new file mode 100644 index 0000000..d5a3e54 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture02/WhileAndDoWhileExample.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/AbstractAnimal.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/AbstractAnimal.class new file mode 100644 index 0000000..ea9922f Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/AbstractAnimal.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Animal.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Animal.class new file mode 100644 index 0000000..4250e08 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Animal.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Cat.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Cat.class new file mode 100644 index 0000000..7c4df90 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Cat.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/CompositionExample.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/CompositionExample.class new file mode 100644 index 0000000..e0616f1 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/CompositionExample.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Crocodile.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Crocodile.class new file mode 100644 index 0000000..82bae47 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Crocodile.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Dishware.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Dishware.class new file mode 100644 index 0000000..567cdc1 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Dishware.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Dog.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Dog.class new file mode 100644 index 0000000..cc1a267 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Dog.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/InheritanceExample.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/InheritanceExample.class new file mode 100644 index 0000000..c923df7 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/InheritanceExample.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/InterfaceExample.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/InterfaceExample.class new file mode 100644 index 0000000..7d1e20e Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/InterfaceExample.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Kitty.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Kitty.class new file mode 100644 index 0000000..536b22d Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Kitty.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/PassByValue.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/PassByValue.class new file mode 100644 index 0000000..b77ff91 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/PassByValue.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/PolymorphysmExample.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/PolymorphysmExample.class new file mode 100644 index 0000000..7f655f9 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/PolymorphysmExample.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Season$1.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Season$1.class new file mode 100644 index 0000000..07897ae Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Season$1.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Season.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Season.class new file mode 100644 index 0000000..591f422 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Season.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Tiger.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Tiger.class new file mode 100644 index 0000000..84abf6e Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Tiger.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Washable.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Washable.class new file mode 100644 index 0000000..79fdc8f Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Washable.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Zoo.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Zoo.class new file mode 100644 index 0000000..0775728 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture03/Zoo.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture04/DivideOnZero.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture04/DivideOnZero.class new file mode 100644 index 0000000..88fb53d Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture04/DivideOnZero.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture04/ExceptionCatchingExample.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture04/ExceptionCatchingExample.class new file mode 100644 index 0000000..4b6d9fd Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture04/ExceptionCatchingExample.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture04/ExceptionCatchingIhExample.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture04/ExceptionCatchingIhExample.class new file mode 100644 index 0000000..e99a4e6 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture04/ExceptionCatchingIhExample.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture04/MyExceptionClassExample.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture04/MyExceptionClassExample.class new file mode 100644 index 0000000..6443809 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture04/MyExceptionClassExample.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture04/StackTraceExample.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture04/StackTraceExample.class new file mode 100644 index 0000000..cf621d3 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture04/StackTraceExample.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture04/TemplateForMyExceptionClass.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture04/TemplateForMyExceptionClass.class new file mode 100644 index 0000000..8e9a99f Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture04/TemplateForMyExceptionClass.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture04/ThrowExample$NegException.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture04/ThrowExample$NegException.class new file mode 100644 index 0000000..2afbf2d Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture04/ThrowExample$NegException.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture04/ThrowExample.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture04/ThrowExample.class new file mode 100644 index 0000000..a62defa Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture04/ThrowExample.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lecture04/WorkWithExceptions.class b/out/production/TextClassfierProject/ru/caf82/lectures/lecture04/WorkWithExceptions.class new file mode 100644 index 0000000..10378ce Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lecture04/WorkWithExceptions.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lectureDB/HibernateUtil.class b/out/production/TextClassfierProject/ru/caf82/lectures/lectureDB/HibernateUtil.class new file mode 100644 index 0000000..7893188 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lectureDB/HibernateUtil.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lectureDB/Password.class b/out/production/TextClassfierProject/ru/caf82/lectures/lectureDB/Password.class new file mode 100644 index 0000000..c73b76f Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lectureDB/Password.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lectureDB/User.class b/out/production/TextClassfierProject/ru/caf82/lectures/lectureDB/User.class new file mode 100644 index 0000000..b5f0d34 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lectureDB/User.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lectureDB/UserManager.class b/out/production/TextClassfierProject/ru/caf82/lectures/lectureDB/UserManager.class new file mode 100644 index 0000000..1a6c6fa Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lectureDB/UserManager.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/FrameExecutor.class b/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/FrameExecutor.class new file mode 100644 index 0000000..5f934d9 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/FrameExecutor.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/SwingManager.class b/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/SwingManager.class new file mode 100644 index 0000000..5e6cff2 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/SwingManager.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/tests/ActionListenerTest$1.class b/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/tests/ActionListenerTest$1.class new file mode 100644 index 0000000..5c240f9 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/tests/ActionListenerTest$1.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/tests/ActionListenerTest.class b/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/tests/ActionListenerTest.class new file mode 100644 index 0000000..1479b5f Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/tests/ActionListenerTest.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/tests/ChangeListenerTest$1.class b/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/tests/ChangeListenerTest$1.class new file mode 100644 index 0000000..3fd07dc Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/tests/ChangeListenerTest$1.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/tests/ChangeListenerTest.class b/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/tests/ChangeListenerTest.class new file mode 100644 index 0000000..e0a25f0 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/tests/ChangeListenerTest.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/tests/ItemListenerTest$1.class b/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/tests/ItemListenerTest$1.class new file mode 100644 index 0000000..621949c Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/tests/ItemListenerTest$1.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/tests/ItemListenerTest.class b/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/tests/ItemListenerTest.class new file mode 100644 index 0000000..6c19505 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/tests/ItemListenerTest.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/tests/MouseListenerTest$1.class b/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/tests/MouseListenerTest$1.class new file mode 100644 index 0000000..c129b1d Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/tests/MouseListenerTest$1.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/tests/MouseListenerTest$2.class b/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/tests/MouseListenerTest$2.class new file mode 100644 index 0000000..7d44d9b Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/tests/MouseListenerTest$2.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/tests/MouseListenerTest.class b/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/tests/MouseListenerTest.class new file mode 100644 index 0000000..7bc14a7 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/lectures/lectureSwing/tests/MouseListenerTest.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/result/MyOwnArrayList$1.class b/out/production/TextClassfierProject/ru/caf82/result/MyOwnArrayList$1.class new file mode 100644 index 0000000..b7b6ea5 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/result/MyOwnArrayList$1.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/result/MyOwnArrayList.class b/out/production/TextClassfierProject/ru/caf82/result/MyOwnArrayList.class new file mode 100644 index 0000000..9b84ab9 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/result/MyOwnArrayList.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/result/MyOwnLinkedList$1.class b/out/production/TextClassfierProject/ru/caf82/result/MyOwnLinkedList$1.class new file mode 100644 index 0000000..2ae95ec Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/result/MyOwnLinkedList$1.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/result/MyOwnLinkedList$Node.class b/out/production/TextClassfierProject/ru/caf82/result/MyOwnLinkedList$Node.class new file mode 100644 index 0000000..0f9b532 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/result/MyOwnLinkedList$Node.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/result/MyOwnLinkedList.class b/out/production/TextClassfierProject/ru/caf82/result/MyOwnLinkedList.class new file mode 100644 index 0000000..c6ef740 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/result/MyOwnLinkedList.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/result/exceptions/EmptyArrayException.class b/out/production/TextClassfierProject/ru/caf82/result/exceptions/EmptyArrayException.class new file mode 100644 index 0000000..771889c Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/result/exceptions/EmptyArrayException.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/result/exceptions/InconveninentShapeException.class b/out/production/TextClassfierProject/ru/caf82/result/exceptions/InconveninentShapeException.class new file mode 100644 index 0000000..b188488 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/result/exceptions/InconveninentShapeException.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/result/machinelearning/models/AbstractModel.class b/out/production/TextClassfierProject/ru/caf82/result/machinelearning/models/AbstractModel.class new file mode 100644 index 0000000..0f21ccb Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/result/machinelearning/models/AbstractModel.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/result/machinelearning/models/Boosting.class b/out/production/TextClassfierProject/ru/caf82/result/machinelearning/models/Boosting.class new file mode 100644 index 0000000..ccd3ed8 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/result/machinelearning/models/Boosting.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/result/machinelearning/models/KNeighbourhood.class b/out/production/TextClassfierProject/ru/caf82/result/machinelearning/models/KNeighbourhood.class new file mode 100644 index 0000000..7943a6c Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/result/machinelearning/models/KNeighbourhood.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/result/machinelearning/models/LinearKernel.class b/out/production/TextClassfierProject/ru/caf82/result/machinelearning/models/LinearKernel.class new file mode 100644 index 0000000..7938ef6 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/result/machinelearning/models/LinearKernel.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/result/machinelearning/models/LogisticRegression.class b/out/production/TextClassfierProject/ru/caf82/result/machinelearning/models/LogisticRegression.class new file mode 100644 index 0000000..3a88880 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/result/machinelearning/models/LogisticRegression.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/result/machinelearning/models/NaiveBayes.class b/out/production/TextClassfierProject/ru/caf82/result/machinelearning/models/NaiveBayes.class new file mode 100644 index 0000000..6c81a26 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/result/machinelearning/models/NaiveBayes.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/result/machinelearning/models/NormalKernel.class b/out/production/TextClassfierProject/ru/caf82/result/machinelearning/models/NormalKernel.class new file mode 100644 index 0000000..ecd05cc Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/result/machinelearning/models/NormalKernel.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/result/machinelearning/preprocessing/CountVectorizer.class b/out/production/TextClassfierProject/ru/caf82/result/machinelearning/preprocessing/CountVectorizer.class new file mode 100644 index 0000000..e454cc3 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/result/machinelearning/preprocessing/CountVectorizer.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/result/machinelearning/preprocessing/PorterStemmer.class b/out/production/TextClassfierProject/ru/caf82/result/machinelearning/preprocessing/PorterStemmer.class new file mode 100644 index 0000000..628098b Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/result/machinelearning/preprocessing/PorterStemmer.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/result/machinelearning/preprocessing/SequenceProcessor.class b/out/production/TextClassfierProject/ru/caf82/result/machinelearning/preprocessing/SequenceProcessor.class new file mode 100644 index 0000000..20c5d36 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/result/machinelearning/preprocessing/SequenceProcessor.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/result/machinelearning/preprocessing/TfldfVectorizer.class b/out/production/TextClassfierProject/ru/caf82/result/machinelearning/preprocessing/TfldfVectorizer.class new file mode 100644 index 0000000..e06f069 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/result/machinelearning/preprocessing/TfldfVectorizer.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/result/machinelearning/preprocessing/Transformer.class b/out/production/TextClassfierProject/ru/caf82/result/machinelearning/preprocessing/Transformer.class new file mode 100644 index 0000000..c456de6 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/result/machinelearning/preprocessing/Transformer.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/result/machinelearning/preprocessing/WordProcessor.class b/out/production/TextClassfierProject/ru/caf82/result/machinelearning/preprocessing/WordProcessor.class new file mode 100644 index 0000000..40e1aed Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/result/machinelearning/preprocessing/WordProcessor.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/result/others/Dao.class b/out/production/TextClassfierProject/ru/caf82/result/others/Dao.class new file mode 100644 index 0000000..9888da6 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/result/others/Dao.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/result/others/DaoImplementation.class b/out/production/TextClassfierProject/ru/caf82/result/others/DaoImplementation.class new file mode 100644 index 0000000..64bdee4 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/result/others/DaoImplementation.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/result/others/MathService.class b/out/production/TextClassfierProject/ru/caf82/result/others/MathService.class new file mode 100644 index 0000000..167189b Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/result/others/MathService.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/result/others/ModelSelectionHibernateEntity.class b/out/production/TextClassfierProject/ru/caf82/result/others/ModelSelectionHibernateEntity.class new file mode 100644 index 0000000..652d262 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/result/others/ModelSelectionHibernateEntity.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/result/others/ReviewHibernateEntity.class b/out/production/TextClassfierProject/ru/caf82/result/others/ReviewHibernateEntity.class new file mode 100644 index 0000000..853f290 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/result/others/ReviewHibernateEntity.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/result/others/SwingModel.class b/out/production/TextClassfierProject/ru/caf82/result/others/SwingModel.class new file mode 100644 index 0000000..b306059 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/result/others/SwingModel.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/result/others/SwingTraining.class b/out/production/TextClassfierProject/ru/caf82/result/others/SwingTraining.class new file mode 100644 index 0000000..33defa2 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/result/others/SwingTraining.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/result/workwithfiles/FileReader.class b/out/production/TextClassfierProject/ru/caf82/result/workwithfiles/FileReader.class new file mode 100644 index 0000000..99e6d2f Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/result/workwithfiles/FileReader.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/result/workwithfiles/FileWorker.class b/out/production/TextClassfierProject/ru/caf82/result/workwithfiles/FileWorker.class new file mode 100644 index 0000000..1e230d4 Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/result/workwithfiles/FileWorker.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/result/workwithfiles/FileWriter.class b/out/production/TextClassfierProject/ru/caf82/result/workwithfiles/FileWriter.class new file mode 100644 index 0000000..cec15bc Binary files /dev/null and b/out/production/TextClassfierProject/ru/caf82/result/workwithfiles/FileWriter.class differ diff --git a/out/production/TextClassfierProject/ru/caf82/result/workwithfiles/file_for_save_models b/out/production/TextClassfierProject/ru/caf82/result/workwithfiles/file_for_save_models new file mode 100644 index 0000000..e69de29 diff --git a/resources/dumps/homework_passwords.sql b/resources/dumps/homework_passwords.sql new file mode 100644 index 0000000..3b48894 --- /dev/null +++ b/resources/dumps/homework_passwords.sql @@ -0,0 +1,55 @@ +CREATE DATABASE IF NOT EXISTS `homework` /*!40100 DEFAULT CHARACTER SET utf8 */; +USE `homework`; +-- MySQL dump 10.13 Distrib 5.7.12, for Win64 (x86_64) +-- +-- Host: 127.0.0.1 Database: homework +-- ------------------------------------------------------ +-- Server version 5.7.15-log + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `passwords` +-- + +DROP TABLE IF EXISTS `passwords`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `passwords` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `password` varchar(45) NOT NULL, + PRIMARY KEY (`id`), + KEY `id` (`user_id`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `passwords` +-- + +LOCK TABLES `passwords` WRITE; +/*!40000 ALTER TABLE `passwords` DISABLE KEYS */; +INSERT INTO `passwords` VALUES (2,2,'12345'); +/*!40000 ALTER TABLE `passwords` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2017-11-26 22:59:36 diff --git a/resources/dumps/homework_users.sql b/resources/dumps/homework_users.sql new file mode 100644 index 0000000..fae4347 --- /dev/null +++ b/resources/dumps/homework_users.sql @@ -0,0 +1,54 @@ +CREATE DATABASE IF NOT EXISTS `homework` /*!40100 DEFAULT CHARACTER SET utf8 */; +USE `homework`; +-- MySQL dump 10.13 Distrib 5.7.12, for Win64 (x86_64) +-- +-- Host: 127.0.0.1 Database: homework +-- ------------------------------------------------------ +-- Server version 5.7.15-log + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `users` +-- + +DROP TABLE IF EXISTS `users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `users` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `login` varchar(45) NOT NULL, + `age` int(3) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `users` +-- + +LOCK TABLES `users` WRITE; +/*!40000 ALTER TABLE `users` DISABLE KEYS */; +INSERT INTO `users` VALUES (2,'maks081197',20); +/*!40000 ALTER TABLE `users` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2017-11-26 22:59:36 diff --git a/resources/hibernate.cfg.xml b/resources/hibernate.cfg.xml new file mode 100644 index 0000000..4ee96ce --- /dev/null +++ b/resources/hibernate.cfg.xml @@ -0,0 +1,14 @@ + + + + + jdbc:mysql://localhost:3306/homework + com.mysql.jdbc.Driver + root + gjy7514wvmxeq54 + + + + \ No newline at end of file diff --git a/result/src/main/java/ru/caf82/result/machinelearning/preprocessing/CountVectorizer.java b/result/src/main/java/ru/caf82/result/machinelearning/preprocessing/CountVectorizer.java deleted file mode 100644 index 7038ad8..0000000 --- a/result/src/main/java/ru/caf82/result/machinelearning/preprocessing/CountVectorizer.java +++ /dev/null @@ -1,7 +0,0 @@ -package ru.caf82.result.machinelearning.preprocessing; - -/** - * Created by ilysko on 03.08.17. - */ -public class CountVectorizer implements SequenceProcessor, Transformer { -} diff --git a/result/src/main/java/ru/caf82/result/machinelearning/preprocessing/PorterStemmer.java b/result/src/main/java/ru/caf82/result/machinelearning/preprocessing/PorterStemmer.java deleted file mode 100644 index 02fcf81..0000000 --- a/result/src/main/java/ru/caf82/result/machinelearning/preprocessing/PorterStemmer.java +++ /dev/null @@ -1,7 +0,0 @@ -package ru.caf82.result.machinelearning.preprocessing; - -/** - * Created by ilysko on 03.08.17. - */ -public class PorterStemmer implements Transformer, WordProcessor { -} diff --git a/result/src/main/java/ru/caf82/result/machinelearning/preprocessing/SequenceProcessor.java b/result/src/main/java/ru/caf82/result/machinelearning/preprocessing/SequenceProcessor.java deleted file mode 100644 index 65e46d9..0000000 --- a/result/src/main/java/ru/caf82/result/machinelearning/preprocessing/SequenceProcessor.java +++ /dev/null @@ -1,7 +0,0 @@ -package ru.caf82.result.machinelearning.preprocessing; - -/** - * Created by ilysko on 03.08.17. - */ -public interface SequenceProcessor { -} diff --git a/result/src/main/java/ru/caf82/result/machinelearning/preprocessing/TfidfVectorizer.java b/result/src/main/java/ru/caf82/result/machinelearning/preprocessing/TfidfVectorizer.java deleted file mode 100644 index cf212ba..0000000 --- a/result/src/main/java/ru/caf82/result/machinelearning/preprocessing/TfidfVectorizer.java +++ /dev/null @@ -1,7 +0,0 @@ -package ru.caf82.result.machinelearning.preprocessing; - -/** - * Created by ilysko on 03.08.17. - */ -public class TfidfVectorizer implements SequenceProcessor, Transformer { -} diff --git a/result/src/main/java/ru/caf82/result/machinelearning/preprocessing/Transformer.java b/result/src/main/java/ru/caf82/result/machinelearning/preprocessing/Transformer.java deleted file mode 100644 index b94b278..0000000 --- a/result/src/main/java/ru/caf82/result/machinelearning/preprocessing/Transformer.java +++ /dev/null @@ -1,7 +0,0 @@ -package ru.caf82.result.machinelearning.preprocessing; - -/** - * Created by ilysko on 03.08.17. - */ -public interface Transformer { -} diff --git a/result/src/main/java/ru/caf82/result/machinelearning/preprocessing/WordProcessor.java b/result/src/main/java/ru/caf82/result/machinelearning/preprocessing/WordProcessor.java deleted file mode 100644 index db8ead1..0000000 --- a/result/src/main/java/ru/caf82/result/machinelearning/preprocessing/WordProcessor.java +++ /dev/null @@ -1,7 +0,0 @@ -package ru.caf82.result.machinelearning.preprocessing; - -/** - * Created by ilysko on 03.08.17. - */ -public interface WordProcessor { -} diff --git a/result/src/main/java/ru/caf82/result/workwithfiles/FileReader.java b/result/src/main/java/ru/caf82/result/workwithfiles/FileReader.java deleted file mode 100644 index 993dc1d..0000000 --- a/result/src/main/java/ru/caf82/result/workwithfiles/FileReader.java +++ /dev/null @@ -1,7 +0,0 @@ -package ru.caf82.result.workwithfiles; - -/** - * Created by ilysko on 03.08.17. - */ -public class FileReader implements FileWorker { -} diff --git a/result/src/main/java/ru/caf82/result/workwithfiles/FileWorker.java b/result/src/main/java/ru/caf82/result/workwithfiles/FileWorker.java deleted file mode 100644 index 9fe4f42..0000000 --- a/result/src/main/java/ru/caf82/result/workwithfiles/FileWorker.java +++ /dev/null @@ -1,7 +0,0 @@ -package ru.caf82.result.workwithfiles; - -/** - * Created by ilysko on 03.08.17. - */ -public interface FileWorker { -} diff --git a/result/src/main/java/ru/caf82/result/workwithfiles/FileWriter.java b/result/src/main/java/ru/caf82/result/workwithfiles/FileWriter.java deleted file mode 100644 index 3de089c..0000000 --- a/result/src/main/java/ru/caf82/result/workwithfiles/FileWriter.java +++ /dev/null @@ -1,7 +0,0 @@ -package ru.caf82.result.workwithfiles; - -/** - * Created by ilysko on 03.08.17. - */ -public class FileWriter implements FileWorker { -} diff --git a/src/ru/caf82/lectures/diagramBomberman/GameObject.java b/src/ru/caf82/lectures/diagramBomberman/GameObject.java new file mode 100644 index 0000000..7006157 --- /dev/null +++ b/src/ru/caf82/lectures/diagramBomberman/GameObject.java @@ -0,0 +1,9 @@ +package ru.caf82.lectures.diagramBomberman; + +/** + * Created by ilysko on 18.09.17. + */ +public interface GameObject { + void start(); + void finish(); +} diff --git a/src/ru/caf82/lectures/diagramBomberman/GameSession.java b/src/ru/caf82/lectures/diagramBomberman/GameSession.java new file mode 100644 index 0000000..4877b8f --- /dev/null +++ b/src/ru/caf82/lectures/diagramBomberman/GameSession.java @@ -0,0 +1,11 @@ +package ru.caf82.lectures.diagramBomberman; + +/** + * Created by ilysko on 18.09.17. + */ +public class GameSession implements Tickable { + @Override + public void tick() { + System.out.println("tick!"); + } +} diff --git a/src/ru/caf82/lectures/diagramBomberman/Movable.java b/src/ru/caf82/lectures/diagramBomberman/Movable.java new file mode 100644 index 0000000..6629aa9 --- /dev/null +++ b/src/ru/caf82/lectures/diagramBomberman/Movable.java @@ -0,0 +1,8 @@ +package ru.caf82.lectures.diagramBomberman; + +/** + * Created by ilysko on 18.09.17. + */ +public interface Movable extends Positioanable, Tickable{ + void move(); +} diff --git a/src/ru/caf82/lectures/diagramBomberman/Positioanable.java b/src/ru/caf82/lectures/diagramBomberman/Positioanable.java new file mode 100644 index 0000000..5b2a20e --- /dev/null +++ b/src/ru/caf82/lectures/diagramBomberman/Positioanable.java @@ -0,0 +1,9 @@ +package ru.caf82.lectures.diagramBomberman; + +/** + * Created by ilysko on 18.09.17. + */ +public interface Positioanable extends GameObject { + int getXPosition(); + int getYPosition(); +} diff --git a/src/ru/caf82/lectures/diagramBomberman/Temporary.java b/src/ru/caf82/lectures/diagramBomberman/Temporary.java new file mode 100644 index 0000000..e32ee17 --- /dev/null +++ b/src/ru/caf82/lectures/diagramBomberman/Temporary.java @@ -0,0 +1,9 @@ +package ru.caf82.lectures.diagramBomberman; + +/** + * Created by ilysko on 18.09.17. + */ +public interface Temporary extends GameObject { + int getBornTime(); + int getFinishTime(); +} diff --git a/src/ru/caf82/lectures/diagramBomberman/Tickable.java b/src/ru/caf82/lectures/diagramBomberman/Tickable.java new file mode 100644 index 0000000..8d51018 --- /dev/null +++ b/src/ru/caf82/lectures/diagramBomberman/Tickable.java @@ -0,0 +1,8 @@ +package ru.caf82.lectures.diagramBomberman; + +/** + * Created by ilysko on 18.09.17. + */ +public interface Tickable { + void tick(); +} diff --git a/src/ru/caf82/lectures/lecture02/BoxingExample.java b/src/ru/caf82/lectures/lecture02/BoxingExample.java new file mode 100644 index 0000000..1f64c70 --- /dev/null +++ b/src/ru/caf82/lectures/lecture02/BoxingExample.java @@ -0,0 +1,26 @@ +package ru.caf82.lectures.lecture02; + +public class BoxingExample { + + public static void main(String[] args) { + Integer i = Integer.valueOf(50); + Integer iTwo = Integer.valueOf(50); + Integer iThree = 50; + + System.out.println(i == iThree); + System.out.println(i == iTwo); + System.out.println(i.equals(iThree)); + System.out.println(i.equals(iTwo)); + + System.out.println("----------------------------------------"); + + Integer iNew = Integer.valueOf(1000); + Integer iNewTwo = Integer.valueOf(1000); + Integer iNewThree = 1000; + + System.out.println(iNew == iNewThree); + System.out.println(iNew == iNewTwo); + System.out.println(iNew.equals(iNewThree)); + System.out.println(iNew.equals(iNewTwo)); + } +} diff --git a/src/ru/caf82/lectures/lecture02/BreakAndContinueExample.java b/src/ru/caf82/lectures/lecture02/BreakAndContinueExample.java new file mode 100644 index 0000000..ad6005e --- /dev/null +++ b/src/ru/caf82/lectures/lecture02/BreakAndContinueExample.java @@ -0,0 +1,44 @@ +package ru.caf82.lectures.lecture02; + +/** + * Created by ilysko on 24.08.17. + */ +public class BreakAndContinueExample { + public static void main(String[] args) { + // Break example + for (int i = 0; i < 100; i++) { + if (i == 4) { + break; + } + System.out.print(i + " "); + } + + System.out.println(); + + // Continue example + for (int i = 0; i < 10; i++) { + if (i % 2 == 0) { + continue; + } + System.out.print(i + " "); + } + + System.out.println("\n"); + + // Continue and Break with "tags" + outer: + for (int i = 0; i < 10; i++) { + inner: + for (int j = 0; j < 10; j++) { + if (j > i) { + System.out.println(); + continue outer; + } + if (i == 8) { + break outer; + } + System.out.print(" " + (i * j)); + } + } + } +} diff --git a/src/ru/caf82/lectures/lecture02/CalculatorExample.java b/src/ru/caf82/lectures/lecture02/CalculatorExample.java new file mode 100644 index 0000000..edfa955 --- /dev/null +++ b/src/ru/caf82/lectures/lecture02/CalculatorExample.java @@ -0,0 +1,35 @@ +package ru.caf82.lectures.lecture02; + +public class CalculatorExample { + private int x; + private int y; + + CalculatorExample(int x, int y) { + this.x = x; + this.y = y; + } + + public void setX(int x) { + this.x = x; + } + + public void setY(int y) { + this.y = y; + } + + public int getSubst() { + return x-y; + } + + public float getSum() { + return (float) x + y; + } + + public static void main(String[] args) { + CalculatorExample calc = new CalculatorExample(5, 2); + System.out.println(calc.getSum()); + System.out.println(calc.getSubst()); + + //todo create new calculator, add abs function from Math + } +} diff --git a/src/ru/caf82/lectures/lecture02/CommentsExample.java b/src/ru/caf82/lectures/lecture02/CommentsExample.java new file mode 100644 index 0000000..7923149 --- /dev/null +++ b/src/ru/caf82/lectures/lecture02/CommentsExample.java @@ -0,0 +1,18 @@ +package ru.caf82.lectures.lecture02; + +/** + * @author ilysko + * @version 1.0 + * Class for comment representation + */ +public class CommentsExample { + public static void main(String[] args) { + System.out.println("Let's look to comments in Java"); + /* + * Realy big + * comment + */ + + //System.out.println("Cool!"); + } +} diff --git a/src/ru/caf82/lectures/lecture02/ConstructorExample.java b/src/ru/caf82/lectures/lecture02/ConstructorExample.java new file mode 100644 index 0000000..81727c9 --- /dev/null +++ b/src/ru/caf82/lectures/lecture02/ConstructorExample.java @@ -0,0 +1,15 @@ +package ru.caf82.lectures.lecture02; + +public class ConstructorExample { + + public class Rectangular { + + //todo create fields weight and length, create constructor, create method Square + + } + + + public static void main(String[] args) { + //todo write some test + } +} diff --git a/src/ru/caf82/lectures/lecture02/ForAndForEachExample.java b/src/ru/caf82/lectures/lecture02/ForAndForEachExample.java new file mode 100644 index 0000000..cb01679 --- /dev/null +++ b/src/ru/caf82/lectures/lecture02/ForAndForEachExample.java @@ -0,0 +1,17 @@ +package ru.caf82.lectures.lecture02; + +/** + * Created by ilysko on 24.08.17. + */ +public class ForAndForEachExample { + public static void main(String[] args) { + for (int i = 1; i < 5; i++) { + System.out.println("i = " + i); + } + System.out.println(); + int[] intList = {1, 2, 3, 4}; + for (int i : intList) { + System.out.println("i = " + i); + } + } +} diff --git a/src/ru/caf82/lectures/lecture02/IfElseAndSwitchCaseExample.java b/src/ru/caf82/lectures/lecture02/IfElseAndSwitchCaseExample.java new file mode 100644 index 0000000..22f0f4a --- /dev/null +++ b/src/ru/caf82/lectures/lecture02/IfElseAndSwitchCaseExample.java @@ -0,0 +1,32 @@ +package ru.caf82.lectures.lecture02; + +/** + * Created by ilysko on 24.08.17. + */ +public class IfElseAndSwitchCaseExample { + public static void main(String[] args) { + int myMark = 5; + + if (myMark == 5) { + System.out.println("Excellent"); + } else if (myMark <= 4 && myMark >=3) { + System.out.println("Not bad"); + } else { + System.out.println("Bad"); + } + + switch (myMark) { + case 5: + System.out.println("Excellent"); + break; + case 4: + System.out.println("Good"); + break; + case 2: + System.out.println("Bad"); + default: + System.out.println("Not bad"); + break; + } + } +} diff --git a/src/ru/caf82/lectures/lecture02/LinkTypes.java b/src/ru/caf82/lectures/lecture02/LinkTypes.java new file mode 100644 index 0000000..d3c581c --- /dev/null +++ b/src/ru/caf82/lectures/lecture02/LinkTypes.java @@ -0,0 +1,32 @@ +package ru.caf82.lectures.lecture02; + +public class LinkTypes { + + public static void main(String[] args) { + String a = "Hello", b = "World"; + + System.out.println(a + " " + b); + + String c = 2 + 2 + ""; + String d = "" + 2 + 2; + String g = "" + (2 + 2); + + System.out.println(c); + System.out.println(d); + System.out.println(g); + + String foo = "a string"; + String bar = "a string"; + String baz = new String("a string"); + + System.out.println("foo == bar ? " + (foo == bar)); + System.out.println("foo равен bar ? " + (foo.equals(bar))); + System.out.println("foo == baz ? " + (foo == baz)); + System.out.println("foo равен baz ? " + (foo.equals(baz))); + + + + } + + +} diff --git a/src/ru/caf82/lectures/lecture02/OperatorsExample.class b/src/ru/caf82/lectures/lecture02/OperatorsExample.class new file mode 100644 index 0000000..6a7c3df Binary files /dev/null and b/src/ru/caf82/lectures/lecture02/OperatorsExample.class differ diff --git a/src/ru/caf82/lectures/lecture02/OperatorsExample.java b/src/ru/caf82/lectures/lecture02/OperatorsExample.java new file mode 100644 index 0000000..eb6bca6 --- /dev/null +++ b/src/ru/caf82/lectures/lecture02/OperatorsExample.java @@ -0,0 +1,59 @@ +package ru.caf82.lectures.lecture02; + +import com.sun.org.apache.xpath.internal.SourceTree; + +/** + * Created by ilysko on 24.08.17. + */ +public class OperatorsExample { + public static void main(String[] args) { + System.out.println("Arithmetical operators:"); + int a = 10, b = 3, c = 2; + float g = 5.14f, f = 2.05f; + System.out.println("a + c - b = " + (a + c - b)); + System.out.println("b * c = " + b * c); + System.out.println("a / b = " + a / b); // pay attention for this (integer division) + System.out.println("g / f = " + g / f); + + System.out.println("\nUnary operators:"); + int d = 4; + boolean e = true; + System.out.println("d++ = " + d++); + System.out.println("d = " + d); + System.out.println("++d = " + ++d); + System.out.println("(byte) d = " + Integer.toBinaryString(d)); + System.out.println("(byte) ~d = " + Integer.toBinaryString(~d)); + System.out.println("!e = " + !e); + + System.out.println("\nRelational operators:"); + double p = 5.5d, r = 2.7500000000000001d; + System.out.println("p / 2 == r = " + (p / 2 == r)); +for(int i=0;i<6;i++) + + System.out.println("\nBitwise operators:"); + // TODO разобраться с битовыми представлениями! + byte t = 0b1110, q = 0b0111; + byte y = -13; + System.out.println("t & q = " + Integer.toBinaryString(t & q)); + System.out.println("t | q = " + Integer.toBinaryString(t | q)); + System.out.println("t ^ q = " + Integer.toBinaryString(t ^ q)); + System.out.println("y = " + String.format("%8s", Integer.toBinaryString(y & 0xFF)).replace(' ', '0')); + System.out.println("-y = " + String.format("%8s", Integer.toBinaryString(-y & 0xFF)).replace(' ', '0')); + System.out.println("y << 2 = " + (y << 2)); + System.out.println("y >> 2 = " + (y >> 2)); + System.out.println("y >>> 2 = " + (y >>> 2)); + System.out.println("y << 2 = " + Integer.toBinaryString(y << 2)); + System.out.println("y >> 2 = " + Integer.toBinaryString(y >> 2)); + System.out.println("y >>> 2 = " + Integer.toBinaryString(y >>> 2)); + + System.out.println("\nLogical operators:"); + boolean b1 = false, b2 = true; + System.out.println("b1 || b2 = " + (b1 || b2)); + System.out.println("b1 && b2 = " + (b1 && b2)); + + System.out.println("\nTernary operators:"); + boolean b3 = true; + System.out.println("Rolling " + (b3 ? "Stones" : "Trees")); + System.out.println("Paint It " + (!b3 ? "Red" : "Black")); + } +} diff --git a/src/ru/caf82/lectures/lecture02/PrimitiveTypes.java b/src/ru/caf82/lectures/lecture02/PrimitiveTypes.java new file mode 100644 index 0000000..a5dcc37 --- /dev/null +++ b/src/ru/caf82/lectures/lecture02/PrimitiveTypes.java @@ -0,0 +1,43 @@ +package ru.caf82.lectures.lecture02; + +public class PrimitiveTypes { + + + public static void main(String[] args) { + + //byte b = 216; + short s = 1123; + int i = 64536; + long l = 2147483648L; + int j = 10; + + System.out.println(i); + //System.out.println(b); + System.out.println(s); + System.out.println(l); + + System.out.println(i + 2147483647); + System.out.println(l + j); + System.out.println(j + l); + + char a = 'a', c = 'c'; + int b; + b = ((a + c) / 2); + System.out.println(b); + System.out.println((char) b); + + System.out.println((char) b + i); + System.out.println(b+i); + + double doubleOne, doubleTwo = 4.12; + doubleOne = 22.1 + doubleTwo; + float pi = 3.14f; + //float anotherPi = 3.14; + double doubleThree = 27; + double d = pi * doubleThree; + + System.out.println(d); + System.out.println(doubleOne); + System.out.println(pi); + } +} diff --git a/src/ru/caf82/lectures/lecture02/StringProcessing.java b/src/ru/caf82/lectures/lecture02/StringProcessing.java new file mode 100644 index 0000000..b51d9b5 --- /dev/null +++ b/src/ru/caf82/lectures/lecture02/StringProcessing.java @@ -0,0 +1,39 @@ +package ru.caf82.lectures.lecture02; + +public class StringProcessing { + + public static void main(String[] args) { + + //String Buffer examples + StringBuffer sb = new StringBuffer("Котэ"); + + System.out.println("Длина: " + sb.length()); + System.out.println("Объем: " + sb.capacity()); + + sb.setCharAt(1, 'o'); + + System.out.println("Было Котэ, стало: " + sb.toString()); + + String str1 = "У кота "; + String str2 = " лапы"; + int paws = 4; + StringBuffer sbNew = new StringBuffer(20); + sbNew.append(str1).append(paws).append(str2); + + System.out.println(sbNew.toString()); + + sb.insert(0, "Люблю "); + System.out.println(sb.toString()); + + sb.reverse(); + System.out.println(sb.toString()); + + //TODO delete, deleteCharAt, replace, substring write your own code + + + + //TODO StringBuilder the same methods implementation + + } + +} diff --git a/src/ru/caf82/lectures/lecture02/WhileAndDoWhileExample.java b/src/ru/caf82/lectures/lecture02/WhileAndDoWhileExample.java new file mode 100644 index 0000000..d3fbb84 --- /dev/null +++ b/src/ru/caf82/lectures/lecture02/WhileAndDoWhileExample.java @@ -0,0 +1,20 @@ +package ru.caf82.lectures.lecture02; + +/** + * Created by ilysko on 24.08.17. + */ +public class WhileAndDoWhileExample { + public static void main(String[] args) { + int i = 3; + + while (i > 0) { + System.out.println(i--); + } + + System.out.println("\n" + i + "\n"); + + do { + System.out.println(i--); + } while (i > 0); + } +} diff --git a/src/ru/caf82/lectures/lecture03/AbstractAnimal.java b/src/ru/caf82/lectures/lecture03/AbstractAnimal.java new file mode 100644 index 0000000..3034cf2 --- /dev/null +++ b/src/ru/caf82/lectures/lecture03/AbstractAnimal.java @@ -0,0 +1,20 @@ +package ru.caf82.lectures.lecture03; + +/** + * Created by ilysko on 16.09.17. + */ +public abstract class AbstractAnimal { + final int legsAmount; + final String animalName; + + public abstract void move(); + + public void sayYourName() { + System.out.println("My name is " + animalName); + } + + protected AbstractAnimal(int legsAmount, String animalName) { + this.legsAmount = legsAmount; + this.animalName = animalName; + } +} diff --git a/src/ru/caf82/lectures/lecture03/CompositionExample.java b/src/ru/caf82/lectures/lecture03/CompositionExample.java new file mode 100644 index 0000000..8ee40d5 --- /dev/null +++ b/src/ru/caf82/lectures/lecture03/CompositionExample.java @@ -0,0 +1,83 @@ +package ru.caf82.lectures.lecture03; + +import java.lang.reflect.Array; +import java.util.Arrays; +import java.util.function.DoublePredicate; + +/** + * Created by ilysko on 17.09.17. + */ +public class CompositionExample { + Cat cat = new Cat(); // в точке определения + Dog dog; + Crocodile crocodile; + Zoo zoo = new Zoo(new Animal[] {cat, dog, crocodile}); // с использованием инициализации экземпляров + + CompositionExample(Dog dog) { + this.dog = dog; // в конструкторе + } + + @Override + public String toString() { + if (crocodile == null) { + this.crocodile = new Crocodile(); // перед использованием объекта + } + return "CompositionExample{" + + "cat=" + cat + + ", dog=" + dog + + ", crocodile=" + crocodile + + ", zoo=" + zoo + + '}'; + } + + public static void main(String[] args) { + Dog dog = new Dog(true); + CompositionExample compositionExample = new CompositionExample(dog); + + System.out.println(compositionExample.toString()); + + compositionExample.crocodile.eatMeat(); + compositionExample.cat.sayMeow(); + System.out.println(compositionExample.dog.isFriendly); + System.out.println(Arrays.toString(compositionExample.zoo.animals)); + } +} + +abstract class Animal {} + +class Cat extends Animal { + int legCount = 4; + void sayMeow() { + System.out.println("Meow"); + } +} + +class Dog extends Animal { + boolean isFriendly; + + Dog(boolean isFriendly) { + this.isFriendly = isFriendly; + } +} + +class Crocodile extends Animal { + void eatMeat() { + System.out.println("Delicious!"); + } +} + +class Zoo { + Animal[] animals; + + Zoo(Animal[] animals) { + this.animals = animals; + } + + void open() { + System.out.println("open"); + } + + void close() { + System.out.println("close"); + } +} diff --git a/src/ru/caf82/lectures/lecture03/InheritanceExample.java b/src/ru/caf82/lectures/lecture03/InheritanceExample.java new file mode 100644 index 0000000..c6b207a --- /dev/null +++ b/src/ru/caf82/lectures/lecture03/InheritanceExample.java @@ -0,0 +1,39 @@ +package ru.caf82.lectures.lecture03; + +/** + * Created by ilysko on 17.09.17. + */ +public class InheritanceExample { + void tryToGetAnimalName(AbstractAnimal abstractAnimal) { + // нисходящее преобразование + abstractAnimal.sayYourName(); + + // нельзя, т.к. мы работаем с AbstractAnimal + //abstractAnimal.jump() + } + + public static void main(String[] args) { + AbstractAnimal tiger = new Tiger(); + tiger.move(); + tiger.sayYourName(); + System.out.println(tiger.legsAmount); + } +} + +class Tiger extends AbstractAnimal { + + protected Tiger() { + super(4, "Tiger"); + } + + @Override + public void move() { + System.out.println("run"); + } + + public void jump() { + System.out.println("jump"); + } +} + + diff --git a/src/ru/caf82/lectures/lecture03/InterfaceExample.java b/src/ru/caf82/lectures/lecture03/InterfaceExample.java new file mode 100644 index 0000000..4517fbe --- /dev/null +++ b/src/ru/caf82/lectures/lecture03/InterfaceExample.java @@ -0,0 +1,17 @@ +package ru.caf82.lectures.lecture03; + +/** + * Created by ilysko on 17.09.17. + */ +public interface InterfaceExample { + default void printSomething() { + System.out.println("Something"); + } + + String returnName(); + + // можно не писать static final, это "по умолчанию" + static final int amount1 = 3; + int amount2 = 4; + +} diff --git a/src/ru/caf82/lectures/lecture03/PassByValue.java b/src/ru/caf82/lectures/lecture03/PassByValue.java new file mode 100644 index 0000000..1e07dae --- /dev/null +++ b/src/ru/caf82/lectures/lecture03/PassByValue.java @@ -0,0 +1,51 @@ +package ru.caf82.lectures.lecture03; + +import java.util.Arrays; + +/** + * Created by ilysko on 17.09.17. + */ +public class PassByValue { + static void changePrimitiveInt(int a) { + a++; + } + + static void changeReferenceInteger(Integer a) { + a++; + } + + static void replaceReferenceInteger(Integer a) { + a = new Integer(42); + } + + static void changeStringArray(String[] listOfBands) { + listOfBands[2] = "Guns N' Roses"; + } + + static void doSomethingBad(String[] listOfBands) { + listOfBands = new String[]{"Justin Bieber", "Тимати"}; + } + + public static void main(String[] args) { + int a1 = 2; + + changePrimitiveInt(a1); + System.out.println("int primitive after changePrimitiveInt() : " + a1); + + Integer a2 = new Integer(2); + + changeReferenceInteger(a2); + System.out.println("Integer object after changeReferenceInteger() : " + a2); + + replaceReferenceInteger(a2); + System.out.println("Integer object after replaceReferenceInteger() : " + a2); + + String[] listOfBands = {"Led Zeppelin", "Pink Floyd", ""}; + + changeStringArray(listOfBands); + System.out.println("String[] after changeStringArray() : " + Arrays.toString(listOfBands)); + + doSomethingBad(listOfBands); + System.out.println("String[] after something bad : " + Arrays.toString(listOfBands)); + } +} diff --git a/src/ru/caf82/lectures/lecture03/PolymorphysmExample.java b/src/ru/caf82/lectures/lecture03/PolymorphysmExample.java new file mode 100644 index 0000000..0661fb8 --- /dev/null +++ b/src/ru/caf82/lectures/lecture03/PolymorphysmExample.java @@ -0,0 +1,34 @@ +package ru.caf82.lectures.lecture03; + +/** + * Created by ilysko on 17.09.17. + */ +public class PolymorphysmExample { + static void wash(Washable washable) { + System.out.println("cleaning " + washable.toString()); + } + + public static void main(String[] args) { + Kitty kitty = new Kitty(); + Dishware dishware = new Dishware(); + + wash(kitty); + wash(dishware); + } +} + +interface Washable{} + +class Kitty implements Washable { + @Override + public String toString() { + return "Kitty"; + } +} + +class Dishware implements Washable { + @Override + public String toString() { + return "Dishware"; + } +} \ No newline at end of file diff --git a/src/ru/caf82/lectures/lecture03/Season.java b/src/ru/caf82/lectures/lecture03/Season.java new file mode 100644 index 0000000..bd6c131 --- /dev/null +++ b/src/ru/caf82/lectures/lecture03/Season.java @@ -0,0 +1,52 @@ +package ru.caf82.lectures.lecture03; + +import java.io.Serializable; +import java.util.Arrays; + +/** + * Created by ilysko on 16.09.17. + */ +public enum Season { + WINTER ("Зима"), + SPRING ("Весна"), + SUMMER ("Лето"), + AUTUMN ("Осень"); + + private String russianName; + Season(String russianName) { + this.russianName = russianName; + } + + public String getRussianName() { + return russianName; + } + + public static void printMonthsOfSeason(Season season) { + switch (season) { + case WINTER: + System.out.println("December, January and February"); + break; + case AUTUMN: + System.out.println("September, October and November"); + break; + case SUMMER: + System.out.println("June, July and August"); + break; + case SPRING: + System.out.println("April, March and May"); + break; + } + } + + public static void main(String[] args) { + Season season = Season.AUTUMN; + System.out.println(season); + + // get all enum values + System.out.println(Arrays.toString(Season.values())); + + printMonthsOfSeason(season); + + System.out.println(season.getRussianName()); + } +} diff --git a/src/ru/caf82/lectures/lecture04/DivideOnZero.java b/src/ru/caf82/lectures/lecture04/DivideOnZero.java new file mode 100644 index 0000000..9511f32 --- /dev/null +++ b/src/ru/caf82/lectures/lecture04/DivideOnZero.java @@ -0,0 +1,54 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package ru.caf82.lectures.lecture04; + +import java.util.InputMismatchException; +import java.util.Scanner; + +/** + * + * @author 1 + */ +public class DivideOnZero { + public static void main(String[] args) + { + /*try + { + Scanner scanner = new Scanner(System.in); + int x = scanner.nextInt(); + System.out.println(1000/x); + } + catch (InputMismatchException e) + { + System.out.println("Поймали ошибку со строкой! Е-еее!"); + } + + catch (ArithmeticException e) + { + System.out.println("Поймали ошибку с делением на 0! Е-еее"); + } + + finally + { + System.out.println("А тут мы всегда"); + } */ + + System.out.println(f()); + } + + static int f() + { + try + { + return 3; + } + + finally + { + return 2; + } + } +} diff --git a/src/ru/caf82/lectures/lecture04/ExceptionCatchingExample.java b/src/ru/caf82/lectures/lecture04/ExceptionCatchingExample.java new file mode 100644 index 0000000..8456e7c --- /dev/null +++ b/src/ru/caf82/lectures/lecture04/ExceptionCatchingExample.java @@ -0,0 +1,21 @@ +package ru.caf82.lectures.lecture04; + + +public class ExceptionCatchingExample { + + public static void main(String[] args) { + try { + System.out.println(6 / 0); + } catch (ArithmeticException ex) { + System.out.println("Ошибка! Ошибка!"); + System.out.println(ex.toString()); + } + + try { + System.out.println(Long.parseLong("Mama")); + } catch (NumberFormatException ex) { + System.out.println("Снова косяк!"); + System.out.println(ex.toString()); + } + } +} diff --git a/src/ru/caf82/lectures/lecture04/ExceptionCatchingIhExample.java b/src/ru/caf82/lectures/lecture04/ExceptionCatchingIhExample.java new file mode 100644 index 0000000..c4dfc32 --- /dev/null +++ b/src/ru/caf82/lectures/lecture04/ExceptionCatchingIhExample.java @@ -0,0 +1,24 @@ +package ru.caf82.lectures.lecture04; + +public class ExceptionCatchingIhExample { + + public static void main(String[] args) { +// try { +// System.out.println(6 / 0); +// } catch (Exception ex) { +// System.out.println("Ошибка верхнего увроня"); +// } catch (ArithmeticException ex) { +// System.out.println("Ошибка! Ошибка!"); +// System.out.println(ex.toString()); +// } + + try { + System.out.println(Long.parseLong("Mama")); + } catch (NumberFormatException ex) { + System.out.println("Снова косяк!"); + System.out.println(ex.toString()); + } catch (Exception ex) { + System.out.println("Ошибка верхнего уровня"); + } + } +} diff --git a/src/ru/caf82/lectures/lecture04/MyExceptionClassExample.java b/src/ru/caf82/lectures/lecture04/MyExceptionClassExample.java new file mode 100644 index 0000000..b741e17 --- /dev/null +++ b/src/ru/caf82/lectures/lecture04/MyExceptionClassExample.java @@ -0,0 +1,52 @@ +package ru.caf82.lectures.lecture04; + +/** + * Created by ilysko on 24.09.17. + */ +public class MyExceptionClassExample extends TemplateForMyExceptionClass { + int amountOfSmth; + + void someMethod() { + System.out.println(amountOfSmth); + } + + void f() { + someMethod(); + } + + public MyExceptionClassExample() { + super(); + } + + public MyExceptionClassExample(Exception e) { + super(e); + } + + public MyExceptionClassExample(int amountOfSmth) { + super(); + this.amountOfSmth = amountOfSmth; + } + + public MyExceptionClassExample(String messageFullOfAnger) { + super(messageFullOfAnger); + } + + public static void main(String[] args) { + System.out.println("let's throw an exception!"); +// throw new MyExceptionClassExample("lol"); + } +} + +class TemplateForMyExceptionClass extends Exception { + TemplateForMyExceptionClass() { + super(); + } + + TemplateForMyExceptionClass(String message) { + super(message); + } + + TemplateForMyExceptionClass(Exception e) { + super(e); + } +} diff --git a/src/ru/caf82/lectures/lecture04/StackTraceExample.java b/src/ru/caf82/lectures/lecture04/StackTraceExample.java new file mode 100644 index 0000000..96b7f71 --- /dev/null +++ b/src/ru/caf82/lectures/lecture04/StackTraceExample.java @@ -0,0 +1,32 @@ +package ru.caf82.lectures.lecture04; + +/** + * Created by ilysko on 24.09.17. + */ +public class StackTraceExample { + static void f() { + try { + throw new Exception(); + } catch (Exception e) { + for (StackTraceElement ste : e.getStackTrace()) { + System.out.println(ste.getMethodName()); + } + } + } + + static void g() { + f(); + } + + static void h() { + g(); + } + + public static void main(String[] args) { + f(); + System.out.println("---------------"); + g(); + System.out.println("---------------"); + h(); + } +} diff --git a/src/ru/caf82/lectures/lecture04/ThrowExample.java b/src/ru/caf82/lectures/lecture04/ThrowExample.java new file mode 100644 index 0000000..8c3a31a --- /dev/null +++ b/src/ru/caf82/lectures/lecture04/ThrowExample.java @@ -0,0 +1,51 @@ +package ru.caf82.lectures.lecture04; + +public class ThrowExample { + + public static int divide(int a, int b) throws ArithmeticException, NegException { + if (b == 0) { + throw new ArithmeticException("Ты че как лох-то, на нуль делить нельзя"); + } else if( b < 0) { + throw new NegException("Мы решили, что на отрицательные числа делить нельзя"); + } + return a / b; + } + + public static void main(String[] args) { + try { + System.out.println(divide(5, 2)); + System.out.println(divide(5, 0)); + } catch (ArithmeticException ex){ + System.out.println("Мы поймали ошибку!"); + } catch (Exception ex) { + // + } + try { + System.out.println(divide(5, 2)); + System.out.println(divide(5, -1)); + } catch (NegException ex){ + System.out.println("Мы поймали ошибку!"); + } catch (Exception ex) { + // + } + try { + System.out.println(divide(5, -1)); + System.out.println(divide(5, 0)); + } catch (ArithmeticException ex){ + System.out.println("Мы поймали ошибку!"); + } catch (NegException ex) { + System.out.println("Отрицательное деление"); + } + + } + + + public static class NegException extends Exception { + NegException(){ + super(); + } + NegException(String message) { + super(message); + } + } +} diff --git a/src/ru/caf82/lectures/lecture04/WorkWithExceptions.java b/src/ru/caf82/lectures/lecture04/WorkWithExceptions.java new file mode 100644 index 0000000..0791ab8 --- /dev/null +++ b/src/ru/caf82/lectures/lecture04/WorkWithExceptions.java @@ -0,0 +1,36 @@ +package ru.caf82.lectures.lecture04; + +/** + * Created by ilysko on 24.09.17. + */ +public class WorkWithExceptions { + void ignore() throws Exception { + throw new Exception(); + } + + void catchHere() { + try { + throw new Exception(); + } catch (Exception e) { + System.out.println("Lol, i caught it just here!"); + } + } + + void throwAhead() { + try { + ignore(); + } catch (Exception e) { + System.out.println("We didn't try to catch exception in ignore(). " + + "We did it here"); + } + } + + void createNewExceptionWhileWorkingWithOld() throws MyExceptionClassExample { + try { + ignore(); + } catch (Exception e) { + System.out.println("do smth"); + throw new MyExceptionClassExample(e); + } + } +} diff --git a/src/ru/caf82/lectures/lectureDB/HibernateUtil.java b/src/ru/caf82/lectures/lectureDB/HibernateUtil.java new file mode 100644 index 0000000..f3a4508 --- /dev/null +++ b/src/ru/caf82/lectures/lectureDB/HibernateUtil.java @@ -0,0 +1,35 @@ +package ru.caf82.lectures.lectureDB; + +import org.hibernate.HibernateException; +import org.hibernate.Metamodel; +import org.hibernate.query.Query; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.cfg.Configuration; + +import javax.persistence.metamodel.EntityType; + +import java.util.Map; + +public class HibernateUtil { + private static final SessionFactory sessionFactory; + + static { + try { + Configuration configuration = new Configuration(); + + sessionFactory = configuration.configure().buildSessionFactory(); + } catch (Throwable ex) { + throw new ExceptionInInitializerError(ex); + } + } + + public static Session getSession() throws HibernateException { + return sessionFactory.openSession(); + } + + public static void closeSessionFactory() { + sessionFactory.close(); + } + +} \ No newline at end of file diff --git a/src/ru/caf82/lectures/lectureDB/Password.java b/src/ru/caf82/lectures/lectureDB/Password.java new file mode 100644 index 0000000..fe0e9dd --- /dev/null +++ b/src/ru/caf82/lectures/lectureDB/Password.java @@ -0,0 +1,60 @@ +package ru.caf82.lectures.lectureDB; + +import javax.persistence.*; + +@Entity +@Table(name = "passwords", schema = "homework", catalog = "") + +public class Password { + +@Id +@GeneratedValue(strategy = GenerationType.IDENTITY) +@Column +private int id; + + + @Column(nullable = false) + private String password; + + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(name = "user_id") + private User user; + + public Password(String password, User user) { + this.password = password; + this.user = user; + } + + @Override + public String toString() { + return "Пароль{" + + "id=" + id + + ", пароль='" + password + '\'' + + ", пользователь=" + user + + '}'; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public User getUser() { + return user; + } + + public void setUser(User user) { + this.user = user; + } +} diff --git a/src/ru/caf82/lectures/lectureDB/User.java b/src/ru/caf82/lectures/lectureDB/User.java new file mode 100644 index 0000000..aa2b543 --- /dev/null +++ b/src/ru/caf82/lectures/lectureDB/User.java @@ -0,0 +1,61 @@ +package ru.caf82.lectures.lectureDB; + +import javax.persistence.*; + +@Entity +@Table(name = "users", schema = "homework", catalog = "") + +public class User { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(nullable = false) + private int id; + + @Column(nullable = false) + private String login; + + @Column(nullable = false) + private int age; + + public User(String login, int age) { + this.login = login; + this.age = age; + } + + public User() { + + } + + public int getId() { + return id; + } + + public String getLogin() { + return login; + } + + public int getAge() { + return age; + } + + public void setId(int id) { + this.id = id; + } + + public void setLogin(String login) { + this.login = login; + } + + public void setAge(int age) { + this.age = age; + } + + @Override + public String toString() { + return "Пользователь{" + + "логин='" + login + '\'' + + ", возраст=" + age + + '}'; + } +} diff --git a/src/ru/caf82/lectures/lectureDB/UserManager.java b/src/ru/caf82/lectures/lectureDB/UserManager.java new file mode 100644 index 0000000..78046ea --- /dev/null +++ b/src/ru/caf82/lectures/lectureDB/UserManager.java @@ -0,0 +1,97 @@ +package ru.caf82.lectures.lectureDB; + +import org.hibernate.HibernateException; +import org.hibernate.Session; +import org.hibernate.Transaction; + + + +public class UserManager { + public static void watchListOfUsers() { + Session session = HibernateUtil.getSession(); + Transaction transaction = null; + try { + transaction = session.beginTransaction(); + for (Object user : session.createQuery("from User").list()) { + System.out.println(user); + } + transaction.commit(); + } + catch (HibernateException e) { + if (transaction != null) { + transaction.rollback(); + } + } + finally { + HibernateUtil.closeSessionFactory(); + } + + } + + public static void addUserWithPassword(String login,int age, String stringPassword) { + Session session = HibernateUtil.getSession(); + Transaction transaction = null; + try { + transaction = session.beginTransaction(); + User user = new User(login,age); + Password password = new Password(stringPassword,user); + session.save(user); + session.save(password); + transaction.commit(); + } + catch (HibernateException ex) { + if (transaction != null) { + transaction.rollback(); + } + } + finally { + HibernateUtil.closeSessionFactory(); + } + + } + + public static void deleteUser(String login) { + Session session = HibernateUtil.getSession(); + Transaction transaction = null; + try { + transaction = session.beginTransaction(); + for (Object id : session.createQuery(" select id from User where login = :login ").setParameter("login",login).list()) { + Integer idInteger = (Integer) id; + session.createQuery("delete from User where id = :idInteger").setParameter("idInteger",idInteger).executeUpdate(); + session.createQuery("delete from Password where id = :idInteger").setParameter("idInteger",idInteger).executeUpdate(); + } + transaction.commit(); + } + + catch (HibernateException ex) { + if (transaction != null) { + transaction.rollback(); + } + } + finally { + HibernateUtil.closeSessionFactory(); + } + } + + public static boolean userExist(String login) { + Session session = HibernateUtil.getSession(); + Transaction transaction = null; + boolean result = false; + try { + transaction = session.beginTransaction(); + result = session.createQuery("from User where login = :login").setParameter("login",login).list().size() == 0; + transaction.commit(); + } + catch (HibernateException ex) { + if (transaction != null) { + transaction.rollback(); + } + result = false; + } + finally { + HibernateUtil.closeSessionFactory(); + } + return result; + } + +} diff --git a/src/ru/caf82/lectures/lectureSwing/FrameExecutor.java b/src/ru/caf82/lectures/lectureSwing/FrameExecutor.java new file mode 100644 index 0000000..25e1015 --- /dev/null +++ b/src/ru/caf82/lectures/lectureSwing/FrameExecutor.java @@ -0,0 +1,15 @@ +package ru.caf82.lectures.lectureSwing; + +import javax.swing.*; + +public class FrameExecutor { + private static JFrame frame = new JFrame("SwingTest"); + + public static void run(JPanel panel) { + frame.setSize(500,500); + frame.setVisible(true); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.setContentPane(panel); + frame.setLocationRelativeTo(null); + } +} diff --git a/src/ru/caf82/lectures/lectureSwing/SwingManager.java b/src/ru/caf82/lectures/lectureSwing/SwingManager.java new file mode 100644 index 0000000..ae1dc91 --- /dev/null +++ b/src/ru/caf82/lectures/lectureSwing/SwingManager.java @@ -0,0 +1,10 @@ +package ru.caf82.lectures.lectureSwing; + +import ru.caf82.lectures.lectureSwing.tests.*; + + +public class SwingManager { + public static void main(String[] args) { + FrameExecutor.run(new ActionListenerTest()); + } +} diff --git a/src/ru/caf82/lectures/lectureSwing/tests/ActionListenerTest.java b/src/ru/caf82/lectures/lectureSwing/tests/ActionListenerTest.java new file mode 100644 index 0000000..cc6531d --- /dev/null +++ b/src/ru/caf82/lectures/lectureSwing/tests/ActionListenerTest.java @@ -0,0 +1,37 @@ +package ru.caf82.lectures.lectureSwing.tests; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +public class ActionListenerTest extends JPanel { + private JButton button; + private JLabel label; + public ActionListenerTest() { + add(createButton()); + add(createLabel()); + } + + private JButton createButton() { + setLayout(new GridLayout(1,1)); + button = new JButton("Нажми меня"); + button.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + if (label.getText().equals("Я метка")) { + label.setText("Спасибо, что нажали!!!"); + } + else { + label.setText("Я метка"); + } + } + }); + return button; + } + + private JLabel createLabel() { + label = new JLabel("Я метка"); + return label; + } +} diff --git a/src/ru/caf82/lectures/lectureSwing/tests/ChangeListenerTest.java b/src/ru/caf82/lectures/lectureSwing/tests/ChangeListenerTest.java new file mode 100644 index 0000000..5946e4a --- /dev/null +++ b/src/ru/caf82/lectures/lectureSwing/tests/ChangeListenerTest.java @@ -0,0 +1,33 @@ +package ru.caf82.lectures.lectureSwing.tests; + +import javax.swing.*; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; +import java.awt.*; + +public class ChangeListenerTest extends JPanel { + private JLabel label; + private JButton button; + + public ChangeListenerTest() { + setLayout(new GridLayout(1,1)); + add(createLabel()); + add(createButton()); + } + + private JLabel createLabel() { + label = new JLabel("Ничего не происходит"); + return label; + } + + private JButton createButton() { + button = new JButton("Кнопка"); + button.addChangeListener(new ChangeListener() { + @Override + public void stateChanged(ChangeEvent e) { + label.setText("Изменилось состояние кнопки"); + } + }); + return button; + } +} diff --git a/src/ru/caf82/lectures/lectureSwing/tests/ItemListenerTest.java b/src/ru/caf82/lectures/lectureSwing/tests/ItemListenerTest.java new file mode 100644 index 0000000..df820ba --- /dev/null +++ b/src/ru/caf82/lectures/lectureSwing/tests/ItemListenerTest.java @@ -0,0 +1,39 @@ +package ru.caf82.lectures.lectureSwing.tests; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; + +public class ItemListenerTest extends JPanel { + private JLabel label; + private JCheckBox checkBox; + + public ItemListenerTest() { + setLayout(new GridLayout(1,1)); + add(createLabel()); + add(createCheckBox()); + } + + private JLabel createLabel() { + label = new JLabel("Поставь галочку!!!"); + return label; + } + + private JCheckBox createCheckBox() { + checkBox = new JCheckBox("Я галочка"); + checkBox.addItemListener(new ItemListener() { + @Override + public void itemStateChanged(ItemEvent e) { + if (checkBox.isSelected()) { + label.setText("УРААААА"); + } + + else { + label.setText("Еще раз поставь!!!"); + } + } + }); + return checkBox; + } +} diff --git a/src/ru/caf82/lectures/lectureSwing/tests/MouseListenerTest.java b/src/ru/caf82/lectures/lectureSwing/tests/MouseListenerTest.java new file mode 100644 index 0000000..f5f19a4 --- /dev/null +++ b/src/ru/caf82/lectures/lectureSwing/tests/MouseListenerTest.java @@ -0,0 +1,60 @@ +package ru.caf82.lectures.lectureSwing.tests; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; + +public class MouseListenerTest extends JPanel { + private JLabel label1; + private JLabel label2; + private JButton button; + + public MouseListenerTest() { + setLayout(new GridLayout(1,2)); + addMouseListener(new MouseAdapter() { + @Override + public void mouseEntered(MouseEvent e) { + String word = "Привет"; + label1.setText(word); + } + + @Override + public void mouseExited(MouseEvent e) { + label1.setText(""); + } + + }); + add(createLabel1()); + add(createLabel2()); + add(createButton()); + + } + + private JLabel createLabel1() { + label1 = new JLabel(); + return label1; + } + + private JLabel createLabel2() { + label2 = new JLabel(); + return label2; + } + + private JButton createButton() { + button = new JButton("Click me!"); + button.addMouseListener(new MouseAdapter() { + @Override + public void mousePressed(MouseEvent e) { + label2.setText("LOL))00)))))))000))"); + } + + @Override + public void mouseReleased(MouseEvent e) { + + label2.setText(""); + } + }); + return button; + } +} diff --git a/src/ru/caf82/result/MyOwnArrayList.java b/src/ru/caf82/result/MyOwnArrayList.java new file mode 100644 index 0000000..60078ae --- /dev/null +++ b/src/ru/caf82/result/MyOwnArrayList.java @@ -0,0 +1,212 @@ +package ru.caf82.result; + +import java.util.Arrays; +import java.util.Iterator; + +public class MyOwnArrayList implements Iterable { + private E[] arrayOfData; //Статический массив элементов + private int size; // количество элементов в массиве + private final static int DEFAULT_CAPACITY = 10; // Длина массив по умолчанию, при вызове конструктора без аргументов + + /** + * Конструктор без аргументов + */ + public MyOwnArrayList() { + arrayOfData = (E[]) new Object[DEFAULT_CAPACITY]; + } + + /** + * Конструктор + * Создаем массив с указанной емкостью + * @param initialCapacity + */ + public MyOwnArrayList(int initialCapacity) { + if (initialCapacity < 0) { + throw new IllegalArgumentException(); + } + arrayOfData = (E[]) new Object[initialCapacity]; + } + + /** + * Устанавливает минимальную длину + * @param minCapacity + * массива + * @see MyOwnArrayList#arrayOfData, если заданный параметр больше текущей длины массива + */ + public void ensureCapacity(int minCapacity) { + if (arrayOfData.length < minCapacity) { + arrayOfData = Arrays.copyOf(arrayOfData, minCapacity); + } + } + + /** + * Метод выясняет, содержит ли массив элемент + * @param element + * @return true, если элемент содержится в массиве + * иначе false + */ + public boolean contains(E element) { + return indexOf(element) != -1 ? true : false; //Упрощенная конструкция if-else + } + + /** + * Метод возвращает индекс аргумента в массиве + * @param element + * @return Индекс элемента, если элемента нету в массиве, то return -1 + */ + public int indexOf(E element) { + + for (int i = 0; i < size; i++) { + if (arrayOfData[i].equals(element)) { + return i; + } + } + return -1; + } + + /** + * Добавляет переданный элемент на место, заданное индексом + * @param index место, куда вставим элемент + * @param element сам элемент + */ + public void add(int index, E element){ + if (index < 0 || index > size) { + throw new IndexOutOfBoundsException(); + } + E[] copyArrayBeforeIndex = Arrays.copyOfRange(arrayOfData,0,index); + E[] copyArrayAfterIndex = Arrays.copyOfRange(arrayOfData,index,size); + E[] newArrayOfData = (E[]) new Object[++size]; + + for (int i = 0; i < copyArrayBeforeIndex.length; i++) { + newArrayOfData[i] = copyArrayBeforeIndex[i]; + } + + newArrayOfData[copyArrayBeforeIndex.length] = element; + + for (int i = 0; i < copyArrayAfterIndex.length; i++) { + newArrayOfData[i + copyArrayBeforeIndex.length + 1] = copyArrayAfterIndex[i]; + } + arrayOfData = newArrayOfData; + } + + /** + * Метод добавления элемента в конец массива + * @param element сам элемент + * @return true + */ + public boolean add(E element) { + add(size,element); + return true; + } + + /** + * + * @return количество элементов в массиве + */ + public int size() { + return size; + } + + /** + * Возвращаем элемента из массива по индексу + * @param index Индекс, по которому возвращаем элемент + * @return Элемент + */ + public E get(int index) { + if (index < 0 || index >= size) { + throw new IndexOutOfBoundsException(); + } + return arrayOfData[index]; + } + + /** + * Меняем значение элемента по заданному индексу + * @param index Индекс, на месте которого меняем значение элемента + * @param element Хотим установить на заданный индекс + * @return Этот же элемент + */ + public E set(int index, E element) { + if (index < 0 || index >= size) { + throw new IndexOutOfBoundsException(); + } + arrayOfData[index] = element; + return element; + } + + /** + * Полностью очищает массив + */ + public void clear() { + arrayOfData = (E[]) new Object[DEFAULT_CAPACITY]; + } + + /** + * Удаляет элемент из массива по заданному индексу + * Элементы, справа стоящие от удаляемого элемента, сдвигаем влево + * @param index По которому мы удаляим элемент + * @return Элемент, который удалили + */ + public E remove(int index) { + if (index < 0 || index >= size) { + throw new IndexOutOfBoundsException(); + } + E element = arrayOfData[index]; + E[] copyArrayBeforeIndex = Arrays.copyOfRange(arrayOfData,0,index); + E[] copyArrayAfterIndex = Arrays.copyOfRange(arrayOfData,index + 1,size); + E[] newArrayOfData = (E[]) new Object[--size]; + + for (int i = 0; i < copyArrayBeforeIndex.length; i++) { + newArrayOfData[i] = copyArrayBeforeIndex[i]; + } + for (int i = 0; i < copyArrayAfterIndex.length; i++) { + newArrayOfData[i + copyArrayBeforeIndex.length] = copyArrayAfterIndex[i]; + } + arrayOfData = newArrayOfData; + return element; + } + + /** + * Удаляем из массива заданный элемент + * @param element Его удаляем + * @return true, если массив изменился, иначе false + */ + public boolean remove(E element) { + int index = indexOf(element); + if (index != -1) { + remove(index); + return true; + } + return false; + } + + /** + * @return Строковое представление нашего динамического массива в формате [elem1, elem2,...,elemN] + */ + public String toString() { + StringBuilder stringBuilder = new StringBuilder("["); + for (int i = 0; i < size; i++) { + stringBuilder.append(arrayOfData[i]).append(",").append(" "); + } + return stringBuilder.delete(stringBuilder.lastIndexOf(", "),stringBuilder.length()).append("]").toString(); + } + + @Override + public Iterator iterator() + { + return new Iterator() { + int index = 0; + + @Override + public boolean hasNext() { + return index < size; + } + + @Override + public E next() { + + return arrayOfData[index++]; + } + }; + } + +} diff --git a/src/ru/caf82/result/MyOwnLinkedList.java b/src/ru/caf82/result/MyOwnLinkedList.java new file mode 100644 index 0000000..689ad7a --- /dev/null +++ b/src/ru/caf82/result/MyOwnLinkedList.java @@ -0,0 +1,290 @@ +package ru.caf82.result; + +import java.util.Collection; +import java.util.Iterator; + + +public class MyOwnLinkedList implements Iterable { + private Node lastNode; // последний элемент списка + private Node firstNode; // последний элемент списка + private int size; // количество элементов списка + + /** + * Конструктор по умолчанию + */ + public MyOwnLinkedList() { + } + + /** + * Создаем список с последующем добавлением заданной коллекции + * @param c коллекцию, которую добавим в только что созданный список + */ + public MyOwnLinkedList(Collection c) { + this(); // Вызываем конструктор по умоланию, расположенный выше + addAll(c); } + + /** + * Добавляем заданный элемент в конец списка + * @param element + * @return true + */ + public boolean add (E element) { + add(size, element); + return true; + } + + /** + * Возвращает элемент, стоящий в заданной позиции + * Вспомогательный метод + * @param index + * @return элемент + */ + private Node node(int index) { + Node node = firstNode; + if (index != 0) { + for (int i = 1; i <= index; i++) { + node = node.next; + } + } + return node; + } + + /** + * Добавляем заданный элемент в заданную позицию списка + * @param index позиция, в которую поставим заданный элемент + * @param element + */ + public void add(int index, E element) { + if (index < 0 || index > size) { + throw new IndexOutOfBoundsException(); + } + Node node = new Node<>(element,null); + if (index == 0) { + node.next = firstNode; + firstNode = node; + if (lastNode == null) { + lastNode = node; + } + } + else { + Node prevNode = node(index - 1); + Node nextNode = prevNode.next; + prevNode.next = node; + node.next = nextNode; + if (nextNode == null) { + lastNode = node; + } + } + size++; + } + + /** + * Метод проверяет,содержит ли список заданный элемент + * @param element + * @return true, если заданный элемент есть в списке, иначе false + */ + public boolean contains(E element) { + return indexOf(element) != -1 ? true : false; + } + + /** + * Удаляет элемент из списка по заданной позиции, + * элементы, стоящие справа от удаляемого элемента, сдвигаются вправо + * @param index Позиция, из которой удаляем элемент + * @return сам элемент + */ + public E remove(int index) { + if (index < 0 || index >= size) { + throw new IndexOutOfBoundsException(); + } + Node node = node(index); + Node nextNode = node.next; + node.next = null; + if (index == 0) { + firstNode = nextNode; + if (nextNode == null) { + lastNode = null; + } + } + else + { + Node prevNode = node(index - 1); + prevNode.next = nextNode; + if (nextNode == null) { + lastNode = prevNode; + } + } + size--; + return node.data; + } + + /** + * Возвращает индекс первого вхождения заданного элемента + * @param element + * @return позицию первого вхождения + */ + public int indexOf(E element) { + int count = -1; + for (Node node = firstNode; node != null; node = node.next) { + count++; + if (node.data.equals(element)) { + return count; + } + } + return -1; + } + + /** + * Удаляем заданный элемент из списка + * @param element заданный элемент + * @return true, если список изменился, иначе false + */ + public boolean remove(E element) { + int index = indexOf(element); + if (index != -1) { + remove(index); + return true; + } + return false; + } + + /** + * Устанавливаем новое значение элемента в заданной позиции + * @param index Индекс, в котором устанавливаем новоен значение элемента за место старого + * @param element Элемент,которой хотим установить + * @return Новый элемент + */ + public E set(int index, E element) { + node(index).data = element; + return element; + } + + /** + * Извлекаем, но не удаляем голову из списка + * @return голову списка + */ + public E peek() { + if (isEmpty()) { + return null; + } + return firstNode.data; + } + + /** + * Добавляем все элементы заданной коллекции в конец списка + * @param c коллекция + * @return true + */ + public boolean addAll(Collection c) { + return addAll(size,c); + } + + /** + * Добавляем все элементы заданной колекции в заданную позицию + * @param index Позиция, в которую добавим ПЕРВЫЙ элемент из коллекции + * Следующие элементы добавляем по порядку после ПЕРВОГО + * @param c Коллекция + * @return true + */ + public boolean addAll(int index, Collection c) { + if (c == null) { + throw new NullPointerException(); + } + if (index < 0 || index > size) { + throw new IndexOutOfBoundsException(); + } + int count = 0; + Object[] arrayFromC = c.toArray(); + for (Object element : arrayFromC) { + add(index + count, (E) element); + count++; + } + return true; + } + + /** + * Извлекаем и удаляем ПЕРВЫЙ элемент (голову) списка + * @return голову списка + */ + public E poll() { + if (isEmpty()) { + return null; + } + return remove(0); + } + + /** + * Проверяем пустой ли список + * @return true, если пустой + * иначе false + */ + public boolean isEmpty() { + return size == 0; + } + + /** + * @return количество элементов списка + */ + public int size() { + return size; + } + + /** + * Возвращаем элемент из заданной позиции + * @param index заданная позиция + * @return Элемент из заданной позиции + */ + public E get(int index) { + if (index < 0 || index >= size) { + throw new IndexOutOfBoundsException(); + } + return node(index).data; + } + + /** + * @return Строковое представление списка в формате [elem1, elem2,...,elemN] + */ + @Override + public String toString() { + StringBuilder stringBuilder = new StringBuilder("["); + for (Node node = firstNode; node !=null; node = node.next) { + stringBuilder.append(node.data).append(",").append(" "); + } + return stringBuilder.delete(stringBuilder.lastIndexOf(", "),stringBuilder.length()).append("]").toString(); + } + + @Override + public Iterator iterator() { + return new Iterator() { + int index = 0; + @Override + public boolean hasNext() { + return index < size; + } + + @Override + public E next() { + return node(index++).data; + } + }; + + + } + public class Node { + private E data; //Содержимое элемента + private Node next; // Ссылка на следующий элемент + + public Node(E data, Node next) { + this.data = data; + this.next = next; + } + + public String toString() { + E nextData = null; + if (next != null) { + nextData = next.data; + } + return "This: " + data + "\n" + "Next: " + nextData; + } + } +} diff --git a/src/ru/caf82/result/exceptions/EmptyArrayException.java b/src/ru/caf82/result/exceptions/EmptyArrayException.java new file mode 100644 index 0000000..e48da03 --- /dev/null +++ b/src/ru/caf82/result/exceptions/EmptyArrayException.java @@ -0,0 +1,33 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package ru.caf82.result.exceptions; + +/** + * + * @author 1 + */ +public class EmptyArrayException extends Exception { + + private String message; + private Throwable cause; + + public EmptyArrayException () { + + } + + public EmptyArrayException (String message) { + this.message = message; + } + + public EmptyArrayException (Throwable cause) { + this.cause = cause; + } + + public EmptyArrayException (String message, Throwable cause) { + this.message = message; + this.cause = cause; + } +} diff --git a/src/ru/caf82/result/exceptions/InconveninentShapeException.java b/src/ru/caf82/result/exceptions/InconveninentShapeException.java new file mode 100644 index 0000000..4c0930d --- /dev/null +++ b/src/ru/caf82/result/exceptions/InconveninentShapeException.java @@ -0,0 +1,32 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package ru.caf82.result.exceptions; + +/** + * + * @author 1 + */ +public class InconveninentShapeException extends Exception{ + + private String message; + private Throwable cause; + public InconveninentShapeException () { + + } + + public InconveninentShapeException (String message) { + this.message = message; + } + + public InconveninentShapeException (Throwable cause) { + this.cause = cause; + } + + public InconveninentShapeException (String message, Throwable cause) { + this.message = message; + this.cause = cause; + } +} diff --git a/src/ru/caf82/result/exceptions/ModelNotFittedException.java b/src/ru/caf82/result/exceptions/ModelNotFittedException.java new file mode 100644 index 0000000..a7a3792 --- /dev/null +++ b/src/ru/caf82/result/exceptions/ModelNotFittedException.java @@ -0,0 +1,16 @@ +package ru.caf82.result.exceptions; + +public class ModelNotFittedException extends Exception { + ModelNotFittedException() { + super(); + } + ModelNotFittedException(String message) { + super(message); + } + ModelNotFittedException(Throwable cause) { + super(cause); + } + ModelNotFittedException(Throwable cause, String message) { + super(message); + } +} diff --git a/src/ru/caf82/result/machinelearning/models/AbstractModel.java b/src/ru/caf82/result/machinelearning/models/AbstractModel.java new file mode 100644 index 0000000..9cae8f8 --- /dev/null +++ b/src/ru/caf82/result/machinelearning/models/AbstractModel.java @@ -0,0 +1,16 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package ru.caf82.result.machinelearning.models; + +import java.io.Serializable; + +/** + * + * @author 1 + */ +public abstract class AbstractModel implements Serializable { + +} diff --git a/src/ru/caf82/result/machinelearning/models/Boosting.java b/src/ru/caf82/result/machinelearning/models/Boosting.java new file mode 100644 index 0000000..bec9c13 --- /dev/null +++ b/src/ru/caf82/result/machinelearning/models/Boosting.java @@ -0,0 +1,13 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package ru.caf82.result.machinelearning.models; + +/** + * + * @author 1 + */ +public class Boosting extends AbstractModel { +} diff --git a/src/ru/caf82/result/machinelearning/models/KNeighbourhood.java b/src/ru/caf82/result/machinelearning/models/KNeighbourhood.java new file mode 100644 index 0000000..7f52e4e --- /dev/null +++ b/src/ru/caf82/result/machinelearning/models/KNeighbourhood.java @@ -0,0 +1,14 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package ru.caf82.result.machinelearning.models; + +/** + * + * @author 1 + */ +public abstract class KNeighbourhood { + +} diff --git a/src/ru/caf82/result/machinelearning/models/LinearKernel.java b/src/ru/caf82/result/machinelearning/models/LinearKernel.java new file mode 100644 index 0000000..acf2706 --- /dev/null +++ b/src/ru/caf82/result/machinelearning/models/LinearKernel.java @@ -0,0 +1,14 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package ru.caf82.result.machinelearning.models; + +/** + * + * @author 1 + */ +public class LinearKernel extends KNeighbourhood{ + +} diff --git a/src/ru/caf82/result/machinelearning/models/NaiveBayes.java b/src/ru/caf82/result/machinelearning/models/NaiveBayes.java new file mode 100644 index 0000000..3688e4e --- /dev/null +++ b/src/ru/caf82/result/machinelearning/models/NaiveBayes.java @@ -0,0 +1,110 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package ru.caf82.result.machinelearning.models; + +import ru.caf82.result.exceptions.InconveninentShapeException; +import ru.caf82.result.exceptions.ModelNotFittedException; +import ru.caf82.result.machinelearning.preprocessing.MlModel; + +import java.io.IOException; +import java.util.List; + +/** + * + * @author 1 + */ +public class NaiveBayes implements MlModel { + + private float alpha; + private double[][] weights; + private boolean fitted; + private boolean parallel; + public NaiveBayes(float alpha, boolean parallel) { + //Миша сказал забить + } + public MlModel train(double[][] X, int[] y) throws InconveninentShapeException { + //считаем у=0 и y=1 + if (X.length != y.length) + throw new InconveninentShapeException(); + double yZer = 0, yOne = 0; + for (int i=0; i> X, List y) throws InconveninentShapeException { + throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + } + +} diff --git a/src/ru/caf82/result/machinelearning/models/NormalKernel.java b/src/ru/caf82/result/machinelearning/models/NormalKernel.java new file mode 100644 index 0000000..84b6f88 --- /dev/null +++ b/src/ru/caf82/result/machinelearning/models/NormalKernel.java @@ -0,0 +1,14 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package ru.caf82.result.machinelearning.models; + +/** + * + * @author 1 + */ +public class NormalKernel extends KNeighbourhood{ + +} diff --git a/src/ru/caf82/result/machinelearning/preprocessing/CountVectorizer.java b/src/ru/caf82/result/machinelearning/preprocessing/CountVectorizer.java new file mode 100644 index 0000000..3220855 --- /dev/null +++ b/src/ru/caf82/result/machinelearning/preprocessing/CountVectorizer.java @@ -0,0 +1,116 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package ru.caf82.result.machinelearning.preprocessing; + +import java.util.*; + +/** + * + * @author 1 + */ +public class CountVectorizer implements Transformer{ +private final Set setWordsFromAllTexts = new HashSet<>(); +private final List textClasses = new ArrayList<>(); +private final List listOfTexts = new ArrayList<>(); +private static List defaultStopWordsList = new ArrayList( + Arrays.asList(new String[]{ + "а","е","и","ж","м","о","на","не","ни","об","но","он","мне","мои","мож","она","они","оно", + "мной","много","многочисленное","многочисленная","многочисленные","многочисленный", + "мною","мой","мог","могут","можно","может","можно","мор","моя","моё","мочь","над","нее", + "оба","нам","нем","нами","ними","мимо","немного","одной","одного","менее","однажды","однако", + "меня","нему","меньше","ней","наверху","него","ниже","мало","надо","один","одиннадцать","одиннадцатый", + "назад","наиболее","недавно","миллионов","недалеко","между","низко","меля","нельзя","нибудь", + "непрерывно","наконец","никогда","никуда","нас","наш","нет","нею","неё","них","мира","наша", + "наше","наши","ничего","начала","нередко","несколько","обычно","опять","около","мы","ну","нх","от","отовсюду", + "особенно","нужно","очень","отсюда","в","во","вон","вниз","внизу","вокруг","вот","восемнадцать", + "восемнадцатый","восемь","восьмой","вверх","вам","вами","важное","важная","важные","важный","вдали","везде", + "ведь","вас","ваш","ваша","ваше","ваши","впрочем","весь","вдруг","вы","все","второй","всем","всеми","времени","время", + "всему","всего","всегда","всех","всею","всю","вся","всё","всюду","г","год","говорил","говорит","года","году","где", + "да","ее","за","из","ли","же","им","до","по","ими","под","иногда","довольно","именно","долго","позже", + "более","должно","пожалуйста","значит","иметь","больше","пока","ему","имя","пор","пора","потом","потому","после", + "почему","почти","посреди","ей","два","две","двенадцать","двенадцатый","двадцать","двадцатый", + "двух","его","дел","или","без","день","занят","занята","занято","заняты","действительно","давно", + "девятнадцать","девятнадцатый","девять","девятый","даже","алло","жизнь","далеко","близко","здесь","дальше","для", + "лет","зато","даром","первый","перед","затем","зачем","лишь","десять","десятый","ею","её","их","бы","еще","при", + "был","про","процентов","против","просто","бывает","бывь","если","люди","была","были","было","будем","будет","будете","будешь", + "прекрасно","буду","будь","будто","будут","ещё","пятнадцать","пятнадцатый","друго","другое","другой","другие","другая","других","есть","пять", + "быть","лучше","пятый","к","ком","конечно","кому","кого","когда","которой","которого","которая","которые","который","которых","кем", + "каждое","каждая","каждые","каждый","кажется","как","какой","какая","кто","кроме","куда","кругом","с","т","у","я", + "та","те","уж","со","то","том","снова","тому","совсем","того","тогда","тоже","собой","тобой","собою","тобою", + "сначала","только","уметь","тот","тою","хорошо","хотеть","хочешь","хоть","хотя","свое","свои","твой","своей","своего","своих", + "свою","твоя","твоё","раз","уже","сам","там","тем","чем","сама","сами","теми","само","рано","самом","самому", + "самой","самого","семнадцать","семнадцатый","самим","самими","самих","саму", + "семь","чему","раньше","сейчас","чего","сегодня","себе","тебе","сеаой","человек","разве","теперь","себя","тебя","седьмой","спасибо", + "слишком","так","такое","такой","такие","также","такая","сих","тех","чаще","четвертый","через","часто","шестой","шестнадцать","шестнадцатый", + "шесть","четыре","четырнадцать","четырнадцатый","сколько","сказал","сказала","сказать", + "ту","ты","три","эта","эти","что","это","чтоб","этом","этому","этой","этого","чтобы","этот","стал","туда", + "этим","этими","рядом","тринадцать","тринадцатый","этих","третий","тут","эту","суть","чуть","тысяч" + }) + ); + + + /** + * Метод извлекающий слова из переданного в метод текста. + * Не учитываются слова поля из + * @see CountVectorizer#defaultStopWordsList + * Используется класс + * @see PorterStemmer для стемминга + * @param text Текст, из которого извлекаются слова + * @return Список слов + */ + private static List preprocess(String text) { + text = text.toLowerCase().replaceAll("[^а-я -]","").replaceAll(" +-"," ").replaceAll("- +"," "); + String[] array = text.split(" +"); + for (int i = 0; i list = new ArrayList<>(Arrays.asList(array)); + list.removeAll(defaultStopWordsList); + return list; + } + + + public List> transform() { + List> listOfVectors = new ArrayList<>(); + for (String text : listOfTexts) { + listOfVectors.add(countWordsInText(preprocess(text))); + } + return listOfVectors; + } + + public CountVectorizer(Map mapOfTexts) { + listOfTexts.addAll(mapOfTexts.keySet()); + addWordsInSetFromTexts(mapOfTexts.keySet()); + textClasses.addAll(mapOfTexts.values()); + + } + + private List countWordsInText(List words) { + List vector = new ArrayList<>(); + for (String word : setWordsFromAllTexts) { + vector.add(Collections.frequency(words,word)); + } + return vector; + } + + private void addWordsInSetFromTexts(Set texts) { + for (String text : texts) { + setWordsFromAllTexts.addAll(preprocess(text)); + } + } + + public List getTextClasses() { + return textClasses; + } + + public List> appendTextsAndTransform(Map mapOfTexts) { + listOfTexts.addAll(mapOfTexts.keySet()); + addWordsInSetFromTexts(mapOfTexts.keySet()); + textClasses.addAll(mapOfTexts.values()); + return transform(); + } + +} diff --git a/src/ru/caf82/result/machinelearning/preprocessing/LogisticRegression.java b/src/ru/caf82/result/machinelearning/preprocessing/LogisticRegression.java new file mode 100644 index 0000000..b49117f --- /dev/null +++ b/src/ru/caf82/result/machinelearning/preprocessing/LogisticRegression.java @@ -0,0 +1,184 @@ +package ru.caf82.result.machinelearning.preprocessing; + +import ru.caf82.result.exceptions.EmptyArrayException; +import ru.caf82.result.exceptions.InconveninentShapeException; +import ru.caf82.result.exceptions.ModelNotFittedException; +import ru.caf82.result.others.MathService; + +import java.io.*; +import java.util.ArrayList; +import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; + +public class LogisticRegression implements MlModel, Serializable { + + private final int ITERATES = 1000; + private final double rate = 0.001; + private double[] weights = null; + + /** + * Инициализация массива векторв - нужно добавить первый столбец с одними + * единицами + * + * @param X - координаты векторов + * @return + */ + private List> init(List> X) { + int i, j; + List> xx = new ArrayList>(); + for (i = 0; i < X.size(); i++) { + xx.get(i).add(1); + for (j = 0; j < X.get(1).size(); j++) { + xx.get(i).add(X.get(i).get(j)); + } + } + return xx; + } + + /** + * Список Integer в массив double + * + * @param list + * @return + */ + private double[] toIntArray(List list) { + double[] intArray = new double[list.size()]; + for (int i = 0; i < list.size(); i++) { + intArray[i] = list.get(i); + } + return intArray; + } + + /** + * Список boolean в массив double + * + * @param list + * @return + */ + private double[] toBoolArray(List list) { + double[] intArray = new double[list.size()]; + for (int i = 0; i < list.size(); i++) { + if (list.get(i) == true) { + intArray[i] = 1; + } else { + intArray[i] = 0; + } + } + return intArray; + } + + /** + * Тренировка весов С каждой итерацией вероятность будет точнее и точнее + * + * @param X полученные вектора из CountVectorizer + * @param y возможные варианты (1 или 0) + * @return + * @throws InconveninentShapeException + */ + @Override + public MlModel train(List> X, List y) throws InconveninentShapeException { + + double pr = 0; + double[] sumdelta; //сумма дельт в каждом столбце + int i, j; + weights = new double[X.get(1).size() + 1]; + X = init(X); + double delta[]; + sumdelta = new double[X.size()]; + for (int u = 0; u < ITERATES; u++) { + delta = new double[X.size()]; + for (i = 0; i < X.size(); i++) { + try { + pr = MathService.sigmoid(MathService.dotProduct(toIntArray(X.get(i)), weights)); + } catch (EmptyArrayException ex) { + Logger.getLogger(LogisticRegression.class.getName()).log(Level.SEVERE, null, ex); + } + for (j = 0; j < X.get(i).size(); j++) { + delta[i] = pr - toBoolArray(y)[i] * X.get(i).get(j); + } + for (i = 0; i < X.size(); i++) { + sumdelta[i] = sumdelta[i] + delta[i]; + } + } + for (i = 0; i < X.size(); i++) { + sumdelta[i] = sumdelta[i] / X.size(); + } + for (i = 0; i < X.size(); i++) { + weights[i] = weights[i] - rate * sumdelta[i]; + } + } + return this; + } + + /** + * Вспомогательный класс, который помогает вычислить сумму произведений + * координат вектора их весов + * + * @param X вектор + * @return + */ + private double help(double[] X) { + double result = 0; + for (int i = 0; i < X.length; i++) { + result = result + X[i] * weights[i]; + } + return result; + } + + /** + * + * @param X + * @return + * @throws ModelNotFittedException + * @throws InconveninentShapeException + */ + @Override + public int[] predict(double[] X) throws ModelNotFittedException, InconveninentShapeException { + double ver; + int[] probability = new int[X.length]; + ver = Math.exp(help(X)) / (1 + Math.exp(help(X))); + if (ver > 0.5) { + System.out.println("It is a dog"); + probability[0] = 1; + } else if (ver < 0.4) { + System.out.println("It is a cat"); + probability[0] = 0; + } else { + System.out.println("I don't know"); + probability[0] = -1; + } + return probability; + } + + @Override + public double[] predictProba(double[] X) throws ModelNotFittedException, InconveninentShapeException { + throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + } + /** + * Сериализация + * @param model + * @throws FileNotFoundException + * @throws IOException + */ + public void saveMlModelToFile(MlModel model) throws FileNotFoundException, IOException { + FileOutputStream file = new FileOutputStream("C:\\users\\user\\desktop\\work\\Save.dat"); + ObjectOutputStream os = new ObjectOutputStream(file); + LogisticRegression lr = new LogisticRegression(); + os.writeObject(lr); + os.close(); + } + + public double[] getWeights() { + return weights; + } + + public void setWeights(double[] weights) { + this.weights = weights; + } + + @Override + public void saveToFile(String filename) throws IOException { + throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + } +} diff --git a/src/ru/caf82/result/machinelearning/preprocessing/MlModel.java b/src/ru/caf82/result/machinelearning/preprocessing/MlModel.java new file mode 100644 index 0000000..dafa24b --- /dev/null +++ b/src/ru/caf82/result/machinelearning/preprocessing/MlModel.java @@ -0,0 +1,18 @@ +package ru.caf82.result.machinelearning.preprocessing; + +import ru.caf82.result.exceptions.InconveninentShapeException; +import ru.caf82.result.exceptions.ModelNotFittedException; + +import java.io.IOException; +import java.util.List; + +public interface MlModel { + + MlModel train(List> X, List y) throws InconveninentShapeException; + + int[] predict(double[] X) throws ModelNotFittedException, InconveninentShapeException; + + double[] predictProba(double[] X) throws ModelNotFittedException, InconveninentShapeException; + + void saveToFile(String filename) throws IOException; +} diff --git a/src/ru/caf82/result/machinelearning/preprocessing/PorterStemmer.java b/src/ru/caf82/result/machinelearning/preprocessing/PorterStemmer.java new file mode 100644 index 0000000..ca3dcc8 --- /dev/null +++ b/src/ru/caf82/result/machinelearning/preprocessing/PorterStemmer.java @@ -0,0 +1,102 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package ru.caf82.result.machinelearning.preprocessing; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * Stolen by ilysko on 03.08.17. + * original: http://www.algorithmist.ru/2010/12/porter-stemmer-russian.html + */ +public class PorterStemmer implements Transformer, WordProcessor { + + + private static final Pattern PERFECTIVEGROUND = Pattern.compile("((ив|ивши|ившись|ыв|ывши|ывшись)|((?<=[ая])(в|вши|вшись)))$"); + + private static final Pattern REFLEXIVE = Pattern.compile("(с[яь])$"); + + private static final Pattern ADJECTIVE = Pattern.compile("(ее|ие|ые|ое|ими|ыми|ей|ий|ый|ой|ем|им|ым|ом|его|ого|ему|ому|их|ых|ую|юю|ая|яя|ою|ею)$"); + + private static final Pattern PARTICIPLE = Pattern.compile("((ивш|ывш|ующ)|((?<=[ая])(ем|нн|вш|ющ|щ)))$"); + + private static final Pattern VERB = Pattern.compile("((ила|ыла|ена|ейте|уйте|ите|или|ыли|ей|уй|ил|ыл|им|ым|ен|ило|ыло|ено|ят|ует|уют|ит|ыт|ены|ить|ыть|ишь|ую|ю)|((?<=[ая])(ла|на|ете|йте|ли|й|л|ем|н|ло|но|ет|ют|ны|ть|ешь|нно)))$"); + + private static final Pattern NOUN = Pattern.compile("(а|ев|ов|ие|ье|е|иями|ями|ами|еи|ии|и|ией|ей|ой|ий|й|иям|ям|ием|ем|ам|ом|о|у|ах|иях|ях|ы|ь|ию|ью|ю|ия|ья|я)$"); + + private static final Pattern RVRE = Pattern.compile("^(.*?[аеиоуыэюя])(.*)$"); + + private static final Pattern DERIVATIONAL = Pattern.compile(".*[^аеиоуыэюя]+[аеиоуыэюя].*ость?$"); + + private static final Pattern DER = Pattern.compile("ость?$"); + + private static final Pattern SUPERLATIVE = Pattern.compile("(ейше|ейш)$"); + + private static final Pattern I = Pattern.compile("и$"); + private static final Pattern P = Pattern.compile("ь$"); + private static final Pattern NN = Pattern.compile("нн$"); + + public String stem(String word) { + word = word.toLowerCase(); + word = word.replace('ё', 'е'); + Matcher m = RVRE.matcher(word); + if (m.matches()) { + String pre = m.group(1); + String rv = m.group(2); + String temp = PERFECTIVEGROUND.matcher(rv).replaceFirst(""); + if (temp.equals(rv)) { + rv = REFLEXIVE.matcher(rv).replaceFirst(""); + temp = ADJECTIVE.matcher(rv).replaceFirst(""); + if (!temp.equals(rv)) { + rv = temp; + rv = PARTICIPLE.matcher(rv).replaceFirst(""); + } else { + temp = VERB.matcher(rv).replaceFirst(""); + if (temp.equals(rv)) { + rv = NOUN.matcher(rv).replaceFirst(""); + } else { + rv = temp; + } + } + + } else { + rv = temp; + } + + rv = I.matcher(rv).replaceFirst(""); + + if (DERIVATIONAL.matcher(rv).matches()) { + rv = DER.matcher(rv).replaceFirst(""); + } + + temp = P.matcher(rv).replaceFirst(""); + if (temp.equals(rv)) { + rv = SUPERLATIVE.matcher(rv).replaceFirst(""); + rv = NN.matcher(rv).replaceFirst("н"); + } else { + rv = temp; + } + word = pre + rv; + + } + + return word; + } + + /** + * Some tests + */ + public static void main(String[] args) { + PorterStemmer porterStemmer = new PorterStemmer(); + String[] listOfWords = new String[] {"букварь", "мамин-сибиряка", + "птица", "интересный", "космос", "космический"}; + for (String word: listOfWords) { + System.out.println("Результат применения PorterStemmer к слову " + word + " : " +porterStemmer.stem(word)); + } + } + + + } diff --git a/src/ru/caf82/result/machinelearning/preprocessing/SequenceProcessor.java b/src/ru/caf82/result/machinelearning/preprocessing/SequenceProcessor.java new file mode 100644 index 0000000..af1e26d --- /dev/null +++ b/src/ru/caf82/result/machinelearning/preprocessing/SequenceProcessor.java @@ -0,0 +1,24 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package ru.caf82.result.machinelearning.preprocessing; + +import java.util.List; +import java.util.Map; + +/** + * + * @author 1 + */ +public interface SequenceProcessor { + public List> fitAndTransform(List listOfTexts); + + public void fit(List listOfTexts); + + public List preprocess(String text); + + public List> transform(List listOfTexts); + +} diff --git a/src/ru/caf82/result/machinelearning/preprocessing/TfldfVectorizer.java b/src/ru/caf82/result/machinelearning/preprocessing/TfldfVectorizer.java new file mode 100644 index 0000000..8d50c3e --- /dev/null +++ b/src/ru/caf82/result/machinelearning/preprocessing/TfldfVectorizer.java @@ -0,0 +1,36 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package ru.caf82.result.machinelearning.preprocessing; + +import java.util.List; +import java.util.Map; + +/** + * + * @author 1 + */ +public class TfldfVectorizer implements SequenceProcessor, Transformer { + + @Override + public List> fitAndTransform(List listOfTexts) { + return null; + } + + @Override + public void fit(List listOfTexts) { + + } + + @Override + public List preprocess(String text) { + return null; + } + + @Override + public List> transform(List listOfTexts) { + return null; + } +} diff --git a/src/ru/caf82/result/machinelearning/preprocessing/Transformer.java b/src/ru/caf82/result/machinelearning/preprocessing/Transformer.java new file mode 100644 index 0000000..814dd4a --- /dev/null +++ b/src/ru/caf82/result/machinelearning/preprocessing/Transformer.java @@ -0,0 +1,14 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package ru.caf82.result.machinelearning.preprocessing; + +/** + * + * @author 1 + */ +public interface Transformer { + +} diff --git a/src/ru/caf82/result/machinelearning/preprocessing/WordProcessor.java b/src/ru/caf82/result/machinelearning/preprocessing/WordProcessor.java new file mode 100644 index 0000000..664e0a5 --- /dev/null +++ b/src/ru/caf82/result/machinelearning/preprocessing/WordProcessor.java @@ -0,0 +1,14 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package ru.caf82.result.machinelearning.preprocessing; + +/** + * + * @author 1 + */ +public interface WordProcessor { + +} diff --git a/src/ru/caf82/result/others/Dao.java b/src/ru/caf82/result/others/Dao.java new file mode 100644 index 0000000..0040cf4 --- /dev/null +++ b/src/ru/caf82/result/others/Dao.java @@ -0,0 +1,14 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package ru.caf82.result.others; + +/** + * + * @author 1 + */ +public interface Dao { + +} diff --git a/src/ru/caf82/result/others/DaoImplementation.java b/src/ru/caf82/result/others/DaoImplementation.java new file mode 100644 index 0000000..f68fc4a --- /dev/null +++ b/src/ru/caf82/result/others/DaoImplementation.java @@ -0,0 +1,14 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package ru.caf82.result.others; + +/** + * + * @author 1 + */ +public class DaoImplementation { + +} diff --git a/src/ru/caf82/result/others/MathService.java b/src/ru/caf82/result/others/MathService.java new file mode 100644 index 0000000..16726a0 --- /dev/null +++ b/src/ru/caf82/result/others/MathService.java @@ -0,0 +1,80 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package ru.caf82.result.others; + +import ru.caf82.result.exceptions.EmptyArrayException; +import ru.caf82.result.exceptions.InconveninentShapeException; + +/** + * + * @author 1 + */ +public class MathService { + + + public static double dotProduct(double[] a, double[] b) throws InconveninentShapeException, EmptyArrayException + { + if (a.length == 0 || b.length == 0) { + throw new EmptyArrayException(); + } + + if (a.length != b.length) { + throw new InconveninentShapeException(); + } + double result = 0; + for (int i=0;i map = new LinkedHashMap<>(); + private synchronized void readFile(String fileName, boolean classFlag){ + + File file = new File(fileName); + + try (BufferedReader bufferedReader = new BufferedReader(new FileReader(file))) + { + StringBuffer stringBuffer = new StringBuffer(); + String s; + while ((s = bufferedReader.readLine()) != null) { + stringBuffer.append(s); + stringBuffer.append("\n"); + } + + map.put(stringBuffer.toString(), classFlag); + } catch (FileNotFoundException ex) { + System.out.println("File doesn't exist"); + return; + } catch (IOException e) { + System.out.println(e); + } + } + + + public Map getMap(int zeroAmount, int oneAmount) { + ExecutorService executorService = Executors.newCachedThreadPool(); + + for (int i = 1; i <= zeroAmount; i++) { + int finalI = i; + executorService.submit(new Runnable() { + @Override + public void run() { + readFile("Text1_" + finalI + ".txt", false); + } + }); + } + for (int i = 1; i <= oneAmount; i++) { + int finalI = i; + executorService.submit(new Runnable() { + @Override + public void run() { + readFile("Text2_" + finalI + ".txt", true); + } + }); + } + executorService.shutdown(); + + while (!executorService.isTerminated()) { + try { + Thread.sleep(5); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + return map; + } +}