From 7a1bb3dfd13dd101565f04be50ae9e72f0a5e0b1 Mon Sep 17 00:00:00 2001 From: Martin Goik <goik@hdm-stuttgart.de> Date: Fri, 13 Feb 2015 20:55:19 +0100 Subject: [PATCH] Version 0.1 --- Doc/Makefile | 2 +- Makefile | 19 + P/Makefile | 3 - .../mi/sd1/fraction/IntStoreTest.java | 4 +- P/Sd1/Etest/Diff/Solution/pom.xml | 55 +- P/Sd1/Etest/Diff/Test/pom.xml | 53 +- .../mi/sd1/fraction/DiffTest.java | 3 + P/Sd1/Etest/IntMax/Solution/pom.xml | 34 +- P/Sd1/Etest/IntMax/Test/pom.xml | 36 +- P/Sd1/Etest/MaxArrayDiff/Solution/pom.xml | 53 +- P/Sd1/Etest/MaxArrayDiff/Test/pom.xml | 55 +- .../de/hdm_stuttgart/mi/sd1/CalcTest.java | 47 +- P/Sd1/Etest/Vowel/Solution/pom.xml | 53 +- P/Sd1/Etest/Vowel/Test/pom.xml | 53 +- P/Sd1/crab/V1/pom.xml | 47 +- P/Sd1/crab/V2/pom.xml | 52 +- .../mi/sd1/fraction/FractionTest.java | 4 + P/Sd1/life/V1/pom.xml | 60 +- P/Sd1/life/V3/pom.xml | 38 +- P/Sda2/JaxRs/Intro/pom.xml | 248 ++- P/Sda2/Jpa/Cd/pom.xml | 165 +- P/Sda2/Jpa/HibernateCacheDemo/pom.xml | 130 +- P/Sda2/Jpa/Inherit/Tpch/pom.xml | 160 +- P/Sda2/Jpa/University/pom.xml | 159 +- P/Sda2/Register/pom.xml | 453 +++-- P/Sda2/UnixSqlLdap/Jndi/Rdbms2Ldap/pom.xml | 85 +- P/Sda2/UnixSqlLdap/Jndi/Unix2Rdbms/pom.xml | 76 +- P/Sda2/account/pom.xml | 183 +- .../mi/sda2/account/SumDriver.java | 5 +- .../mi/sda2/account/TransferDriver.java | 5 +- .../mi/sda2/account/gui/ErrorReporter.java | 10 + .../mi/sda2/account/gui/ExceptionDialog.java | 4 +- .../mi/sda2/account/sql/DbHandler.java | 18 +- .../hdm_stuttgart/mi/sda2/account/DbTest.java | 4 +- P/Sda2/forum_1/pom.xml | 651 +++---- .../mi/sda2/forum/TestDomain.java | 1 + P/pom.xml | 28 +- Sd1/.gitignore | 2 - Sd1/Makefile | 85 - Sd1/P/Archetypes/Makefile | 20 - Sd1/P/Archetypes/catalog.xml | 37 - .../maven-prototype-javafx/.gitignore | 5 - .../Archetypes/maven-prototype-javafx/pom.xml | 91 - .../hdm_stuttgart/mi/sda2/account/Conf.java | 21 - .../mi/sda2/account/GuiDriver.java | 97 -- .../mi/sda2/account/GuiHelper/Dialog.java | 79 - .../sda2/account/GuiHelper/NumberField.java | 37 - .../mi/sda2/account/config.properties | 2 - .../src/main/resources/log4j.properties | 15 - .../mi/sda2/account/SimpleTest.java | 15 - .../mi-maven-archetype-javafxml/.gitignore | 4 - .../mi-maven-archetype-javafxml/Readme.txt | 8 - .../mi-maven-archetype-javafxml/pom.xml | 18 - .../META-INF/maven/archetype-metadata.xml | 39 - .../resources/archetype-resources/.gitignore | 4 - .../resources/archetype-resources/pom.xml | 84 - .../src/main/java/App.java | 45 - .../src/main/java/HelloController.java | 52 - .../src/main/resources/fxml/hello.fxml | 32 - .../src/main/resources/images/background.jpg | Bin 52308 -> 0 bytes .../src/main/resources/log4j2.xml | 21 - .../src/main/resources/styles/styles.css | 34 - .../src/test/java/AppTest.java | 17 - .../mi-maven-archetype-quickstart/.gitignore | 4 - .../mi-maven-archetype-quickstart/Readme.txt | 8 - .../mi-maven-archetype-quickstart/pom.xml | 10 - .../META-INF/maven/archetype-metadata.xml | 31 - .../resources/archetype-resources/.gitignore | 4 - .../resources/archetype-resources/pom.xml | 84 - .../src/main/java/App.java | 26 - .../src/main/resources/log4j2.xml | 21 - .../src/test/java/AppTest.java | 17 - .../mi-maven-archetype-sax/.gitignore | 4 - .../mi-maven-archetype-sax/Readme.txt | 8 - .../Archetypes/mi-maven-archetype-sax/pom.xml | 10 - .../META-INF/maven/archetype-metadata.xml | 31 - .../resources/archetype-resources/.gitignore | 4 - .../resources/archetype-resources/pom.xml | 84 - .../src/main/java/App.java | 52 - .../main/java/handler/SaxContentHandler.java | 88 - .../main/java/handler/SaxErrorHandler.java | 25 - .../src/main/resources/log4j2.xml | 21 - .../src/main/resources/testdata.xml | 8 - .../src/test/java/AppTest.java | 17 - Sd1/P/Array/arraycalcExercise/.gitignore | 4 - Sd1/P/Array/arraycalcExercise/pom.xml | 58 - .../mi/sd1/store/Arraymethods.java | 103 -- .../mi/sd1/store/package-info.java | 5 - .../mi/sd1/fraction/ArrayMethodTests.java | 130 -- Sd1/P/Array/arraycalcSolution/.gitignore | 4 - Sd1/P/Array/arraycalcSolution/pom.xml | 58 - .../mi/sd1/store/Arraymethods.java | 162 -- .../mi/sd1/store/package-info.java | 5 - .../mi/sd1/fraction/ArrayMethodTests.java | 130 -- Sd1/P/Array/integerStore/.gitignore | 4 - Sd1/P/Array/integerStore/pom.xml | 58 - .../de/hdm_stuttgart/mi/sd1/main/Driver.java | 29 - .../mi/sd1/store/BoundedIntegerStore.java | 59 - .../mi/sd1/store/package-info.java | 5 - .../mi/sd1/fraction/IntStoreTest.java | 35 - .../Array/integerStoreMedianAnswer/.gitignore | 5 - Sd1/P/Array/integerStoreMedianAnswer/pom.xml | 58 - .../de/hdm_stuttgart/mi/sd1/main/Driver.java | 34 - .../mi/sd1/store/IntegerStore.java | 164 -- .../mi/sd1/store/package-info.java | 6 - .../mi/sd1/store/TestSorting.java | 88 - .../mi/sd1/store/TestStatisticMethods.java | 95 - Sd1/P/Array/integerStoreSkeleton/.gitignore | 4 - Sd1/P/Array/integerStoreSkeleton/pom.xml | 58 - .../de/hdm_stuttgart/mi/sd1/main/Driver.java | 29 - .../mi/sd1/store/BoundedIntegerStore.java | 59 - .../mi/sd1/store/package-info.java | 5 - .../mi/sd1/fraction/IntStoreTest.java | 35 - Sd1/P/Array/integerStoreStat/.gitignore | 5 - Sd1/P/Array/integerStoreStat/pom.xml | 58 - .../de/hdm_stuttgart/mi/sd1/main/Driver.java | 29 - .../mi/sd1/store/IntegerStore.java | 97 -- .../mi/sd1/store/package-info.java | 5 - .../mi/sd1/fraction/IntStoreTest.java | 79 - Sd1/P/Array/integerStoreUnbounded/.gitignore | 5 - Sd1/P/Array/integerStoreUnbounded/pom.xml | 58 - .../de/hdm_stuttgart/mi/sd1/main/Driver.java | 29 - .../mi/sd1/store/IntegerStore.java | 78 - .../mi/sd1/store/package-info.java | 5 - .../mi/sd1/fraction/IntStoreTest.java | 48 - Sd1/P/Array/medianCmdLine/.gitignore | 5 - Sd1/P/Array/medianCmdLine/pom.xml | 72 - .../mi/sd1/statistics/IntegerStore.java | 164 -- .../mi/sd1/statistics/main/ErrorState.java | 34 - .../sd1/statistics/main/InputValidator.java | 71 - .../mi/sd1/statistics/main/Statistics.java | 24 - .../mi/sd1/statistics/package-info.java | 6 - .../mi/sd1/store/TestSorting.java | 42 - .../mi/sd1/store/TestStatisticMethods.java | 95 - .../mi/sd1/store/TestValidation.java | 44 - Sd1/P/Collection/Intro/LookupSet/.gitignore | 4 - Sd1/P/Collection/Intro/LookupSet/pom.xml | 58 - .../mi/sd1/collection/Coordinate.java | 42 - .../mi/sd1/collection/InsertCoordinates.java | 44 - .../mi/sd1/collection/SimpleTextList.java | 29 - .../mi/sd1/collection/SimpleTextSet.java | 29 - .../mi/sd1/collection/package-info.java | 5 - .../mi/sd1/store/TestDuplicates.java | 37 - .../mi/sd1/store/TestStringLookup.java | 32 - .../StringSet/Solution/.gitignore | 4 - .../StringSet/Solution/pom.xml | 72 - .../mi/sd1/stringset/MySet_String.java | 129 -- .../mi/sd1/stringset/Set_String.java | 92 - .../mi/sd1/stringset/package-info.java | 4 - .../mi/sd1/stringset/BasicTests.java | 49 - Sd1/P/Etest/Diff/Solution/.gitignore | 4 - Sd1/P/Etest/Diff/Solution/pom.xml | 58 - .../de/hdm_stuttgart/mi/sd1/store/Diff.java | 30 - .../mi/sd1/store/package-info.java | 5 - .../mi/sd1/fraction/DiffTest.java | 29 - Sd1/P/Etest/Diff/Test/.gitignore | 4 - Sd1/P/Etest/Diff/Test/pom.xml | 58 - .../de/hdm_stuttgart/mi/sd1/store/Diff.java | 27 - .../mi/sd1/store/package-info.java | 5 - .../mi/sd1/fraction/DiffTest.java | 29 - Sd1/P/Etest/IntMax/Solution/.gitignore | 4 - Sd1/P/Etest/IntMax/Solution/pom.xml | 39 - .../de/hdm_stuttgart/mi/sd1/intmax/Max.java | 92 - .../hdm_stuttgart/mi/sd1/intmax/AppTest.java | 53 - Sd1/P/Etest/IntMax/Test/.gitignore | 4 - Sd1/P/Etest/IntMax/Test/pom.xml | 39 - .../de/hdm_stuttgart/mi/sd1/intmax/Max.java | 53 - .../hdm_stuttgart/mi/sd1/intmax/AppTest.java | 16 - Sd1/P/Etest/MaxArrayDiff/Solution/.gitignore | 4 - Sd1/P/Etest/MaxArrayDiff/Solution/pom.xml | 58 - .../mi/sd1/maxarraydiff/Calc.java | 33 - .../mi/sd1/maxarraydiff/package-info.java | 5 - .../mi/sd1/fraction/CalcTest.java | 33 - Sd1/P/Etest/MaxArrayDiff/Test/.gitignore | 4 - Sd1/P/Etest/MaxArrayDiff/Test/pom.xml | 58 - .../mi/sd1/maxarraydiff/Calc.java | 25 - .../mi/sd1/maxarraydiff/package-info.java | 5 - .../de/hdm_stuttgart/mi/sd1/CalcTest.java | 30 - Sd1/P/Etest/Vowel/Solution/.gitignore | 4 - Sd1/P/Etest/Vowel/Solution/pom.xml | 58 - .../mi/sd1/Vowelcount/Vowelcount.java | 38 - .../mi/sd1/Vowelcount/package-info.java | 5 - .../mi/sd1/fraction/VowelTest.java | 31 - Sd1/P/Etest/Vowel/Test/.gitignore | 4 - Sd1/P/Etest/Vowel/Test/pom.xml | 58 - .../mi/sd1/Vowelcount/Vowelcount.java | 32 - .../mi/sd1/Vowelcount/package-info.java | 5 - .../mi/sd1/fraction/VowelTest.java | 15 - Sd1/P/Gcd/V1/.gitignore | 4 - Sd1/P/Gcd/V1/pom.xml | 58 - .../de/hdm_stuttgart/mi/sd1/gcd/Driver.java | 14 - .../de/hdm_stuttgart/mi/sd1/gcd/Math.java | 63 - .../mi/sd1/fraction/CommonMultipleTest.java | 27 - .../mi/sd1/fraction/GcdTest.java | 47 - .../HtmlFormatting/Simple/Exercise/.gitignore | 4 - .../Simple/Exercise/addresses.txt | 501 ------ Sd1/P/HtmlFormatting/Simple/Exercise/pom.xml | 72 - .../mi/sd1/htmlformat/Address.java | 38 - .../mi/sd1/htmlformat/Address2text.java | 30 - .../sd1/htmlformat/Address2textFormatter.java | 27 - .../mi/sd1/htmlformat/AddressDataHandler.java | 62 - .../mi/sd1/htmlformat/AddressFormatter.java | 46 - .../mi/sd1/htmlformat/AddressParseError.java | 19 - .../mi/sd1/htmlformat/package-info.java | 4 - .../Simple/Exercise/src/test/java/.gitignore | 0 .../HtmlFormatting/Simple/Solution/.gitignore | 5 - .../Solution/Testdata/missingAttribute.txt | 4 - .../Solution/Testdata/missingStartQuote.txt | 4 - .../Simple/Solution/addresses.txt | 501 ------ Sd1/P/HtmlFormatting/Simple/Solution/pom.xml | 72 - .../mi/sd1/htmlformat/Address.java | 55 - .../mi/sd1/htmlformat/Address2html.java | 36 - .../sd1/htmlformat/Address2htmlFormatter.java | 59 - .../mi/sd1/htmlformat/AddressDataHandler.java | 64 - .../mi/sd1/htmlformat/AddressFormatter.java | 46 - .../mi/sd1/htmlformat/AddressParseError.java | 19 - .../mi/sd1/htmlformat/package-info.java | 4 - .../test/java/htmlformat/TestExceptions.java | 60 - Sd1/P/Marks/Solution1/.gitignore | 4 - Sd1/P/Marks/Solution1/pom.xml | 72 - .../mi/sd1/marks/MarkStatistics.java | 31 - .../mi/sd1/marks/TextFileHandler.java | 96 - .../mi/sd1/marks/package-info.java | 5 - .../mi/sd1/marks/test/package-info.java | 5 - Sd1/P/Marks/Solution1/testdata.txt | 8 - Sd1/P/Marks/Solution2/.gitignore | 4 - Sd1/P/Marks/Solution2/pom.xml | 72 - .../mi/sd1/marks/MarkStatistics.java | 32 - .../mi/sd1/marks/TextFileHandler.java | 104 -- .../mi/sd1/marks/package-info.java | 5 - .../mi/sd1/marks/test/package-info.java | 5 - Sd1/P/Marks/Solution2/testdata.txt | 8 - Sd1/P/Prime/V1/.gitignore | 5 - Sd1/P/Prime/V1/pom.xml | 59 - .../mi/sd1/main/PrimeNumbers.java | 57 - .../mi/sd1/store/package-info.java | 6 - .../mi/sd1/store/TestPrimes.java | 28 - Sd1/P/Prime/V2/.gitignore | 5 - Sd1/P/Prime/V2/pom.xml | 65 - .../mi/sd1/main/PrimeNumbers.java | 64 - Sd1/P/StringLengthSort/Solution/.gitignore | 4 - Sd1/P/StringLengthSort/Solution/pom.xml | 72 - .../hdm_stuttgart/mi/sd1/LengthCompare.java | 20 - .../de/hdm_stuttgart/mi/sd1/package-info.java | 4 - .../de/hdm_stuttgart/mi/sd1/TestOrder.java | 36 - Sd1/P/Wc/readFile/.gitignore | 5 - Sd1/P/Wc/readFile/Testdata/input.txt | 8 - Sd1/P/Wc/readFile/pom.xml | 72 - .../mi/sd1/readfile/ReadFile.java | 49 - .../mi/sd1/readfile/package-info.java | 4 - .../hdm_stuttgart/mi/sd1/store/TestRead.java | 23 - Sd1/P/Wc/wc/.gitignore | 4 - Sd1/P/Wc/wc/Testdata/input.html | 9 - Sd1/P/Wc/wc/Testdata/model.css | 4 - Sd1/P/Wc/wc/pom.xml | 72 - .../mi/sd1/wc/TextFileStatistics.java | 120 -- .../java/de/hdm_stuttgart/mi/sd1/wc/Wc.java | 56 - .../hdm_stuttgart/mi/sd1/wc/package-info.java | 4 - .../mi/sd1/store/TestCountWords.java | 47 - .../de/hdm_stuttgart/mi/sd1/store/TestWc.java | 46 - Sd1/P/WordFrequency1/Solution/.gitignore | 4 - Sd1/P/WordFrequency1/Solution/pom.xml | 72 - .../mi/sd1/textstat/TextFileHandler.java | 68 - .../mi/sd1/textstat/TextStatistics.java | 31 - .../mi/sd1/textstat/WordFrequency.java | 67 - .../mi/sd1/textstat/package-info.java | 5 - .../mi/sd1/textstat/test/package-info.java | 5 - Sd1/P/WordFrequency1/Solution/testdata.txt | 11 - Sd1/P/WordFrequency2/Solution1/.gitignore | 4 - Sd1/P/WordFrequency2/Solution1/pom.xml | 72 - .../mi/sd1/textstat/TextFileHandler.java | 65 - .../mi/sd1/textstat/TextStatistics.java | 32 - .../mi/sd1/textstat/package-info.java | 5 - .../mi/sd1/textstat/test/package-info.java | 5 - Sd1/P/WordFrequency2/Solution1/testdata.txt | 11 - Sd1/P/WordFrequency2/Solution2/.gitignore | 4 - Sd1/P/WordFrequency2/Solution2/pom.xml | 72 - .../mi/sd1/textstat/TextFileHandler.java | 84 - .../mi/sd1/textstat/TextStatistics.java | 36 - .../mi/sd1/textstat/WordFrequencyCompare.java | 36 - .../mi/sd1/textstat/package-info.java | 5 - .../mi/sd1/textstat/test/package-info.java | 5 - Sd1/P/WordFrequency2/Solution2/testdata.txt | 11 - Sd1/P/Wordlist/Solution/.gitignore | 4 - Sd1/P/Wordlist/Solution/pom.xml | 72 - Sd1/P/Wordlist/Solution/smalltest.txt | 2 - .../mi/sd1/textstat/TextFileHandler.java | 68 - .../mi/sd1/textstat/WordCollector.java | 31 - .../mi/sd1/textstat/package-info.java | 5 - .../mi/sd1/textstat/test/TestWordCollect.java | 29 - .../mi/sd1/textstat/test/package-info.java | 5 - Sd1/P/Wordlist/Solution/testdata.txt | 7 - Sd1/P/Wordlist/Solution2/.gitignore | 4 - Sd1/P/Wordlist/Solution2/pom.xml | 72 - Sd1/P/Wordlist/Solution2/smalltest.txt | 2 - .../mi/sd1/textstat/TextFileHandler.java | 69 - .../mi/sd1/textstat/WordCollector.java | 31 - .../mi/sd1/textstat/package-info.java | 5 - .../mi/sd1/textstat/test/TestWordCollect.java | 29 - .../mi/sd1/textstat/test/package-info.java | 5 - Sd1/P/Wordlist/Solution2/testdata.txt | 7 - Sd1/P/crab/V1/.gitignore | 4 - Sd1/P/crab/V1/pom.xml | 73 - Sd1/P/crab/V1/src/main/java/Animal.java | 80 - Sd1/P/crab/V1/src/main/java/Crab.java | 89 - Sd1/P/crab/V1/src/main/java/CrabWorld.java | 64 - Sd1/P/crab/V1/src/main/java/Lobster.java | 69 - Sd1/P/crab/V1/src/main/java/Worm.java | 7 - Sd1/P/crab/V1/src/test/java/.ignore | 0 Sd1/P/crab/V2/.gitignore | 4 - Sd1/P/crab/V2/pom.xml | 76 - Sd1/P/crab/V2/src/main/java/Animal.java | 85 - Sd1/P/crab/V2/src/main/java/Crab.java | 89 - Sd1/P/crab/V2/src/main/java/CrabWorld.java | 91 - Sd1/P/crab/V2/src/main/java/Lobster.java | 69 - Sd1/P/crab/V2/src/main/java/Worm.java | 7 - Sd1/P/crab/V2/src/test/java/.gitignore | 0 Sd1/P/fraction/V05/.gitignore | 4 - Sd1/P/fraction/V05/pom.xml | 65 - .../de/hdm_stuttgart/mi/sd1/fraction/App.java | 23 - .../mi/sd1/fraction/Fraction.java | 125 -- .../mi/sd1/fraction/FractionTest.java | 27 - Sd1/P/fraction/V1/.gitignore | 4 - Sd1/P/fraction/V1/pom.xml | 65 - .../de/hdm_stuttgart/mi/sd1/fraction/App.java | 23 - .../mi/sd1/fraction/Fraction.java | 129 -- .../mi/sd1/fraction/FractionTest.java | 27 - Sd1/P/fraction/V2/.gitignore | 4 - Sd1/P/fraction/V2/pom.xml | 66 - .../hdm_stuttgart/mi/sd1/fraction/Driver.java | 26 - .../mi/sd1/fraction/Fraction.java | 144 -- .../mi/sd1/fraction/FractionTest.java | 44 - Sd1/P/interest/V1/.gitignore | 4 - Sd1/P/interest/V1/pom.xml | 66 - .../mi/sd1/interest/Account.java | 147 -- .../de/hdm_stuttgart/mi/sd1/interest/App.java | 27 - .../mi/sd1/interest/AccountTest.java | 25 - Sd1/P/interest/V2/.gitignore | 4 - Sd1/P/interest/V2/pom.xml | 66 - .../mi/sd1/interest/Account.java | 182 -- .../de/hdm_stuttgart/mi/sd1/interest/App.java | 32 - .../mi/sd1/interest/AccountTest.java | 33 - Sd1/P/life/V1/.gitignore | 5 - Sd1/P/life/V1/pom.xml | 75 - Sd1/P/life/V1/src/main/java/Cell.java | 54 - Sd1/P/life/V1/src/main/java/CellState.java | 34 - Sd1/P/life/V1/src/main/java/LifeWorld.java | 118 -- Sd1/P/life/V1/src/test/.gitignore | 1 - Sd1/P/life/V3/.gitignore | 5 - Sd1/P/life/V3/pom.xml | 74 - Sd1/P/life/V3/src/main/java/Cell.java | 86 - Sd1/P/life/V3/src/main/java/CellState.java | 34 - Sd1/P/life/V3/src/main/java/LifeWorld.java | 183 -- Sd1/P/life/V3/src/test/.gitignore | 1 - Sd1/P/loop/answer/.gitignore | 4 - Sd1/P/loop/answer/pom.xml | 53 - .../de/sd1/loop/LoopExample.java | 48 - .../de/hdm_stuttgart/de/sd1/loop/AppTest.java | 15 - Sd1/P/loop/question/.gitignore | 1 - Sd1/P/loop/question/pom.xml | 52 - .../hdm_stuttgart/de/sd1/loop/LoopSolve.java | 23 - .../de/hdm_stuttgart/de/sd1/loop/AppTest.java | 18 - Sd1/P/math/V0_5/.gitignore | 4 - Sd1/P/math/V0_5/pom.xml | 59 - .../de/hdm_stuttgart/de/sd1/math/Driver.java | 18 - .../de/hdm_stuttgart/de/sd1/math/Math.java | 53 - .../hdm_stuttgart/de/sd1/math/MaxAbsTest.java | 52 - Sd1/P/math/V1/.gitignore | 4 - Sd1/P/math/V1/pom.xml | 65 - .../de/hdm_stuttgart/de/sd1/math/Driver.java | 27 - .../de/hdm_stuttgart/de/sd1/math/Math.java | 148 -- .../de/hdm_stuttgart/de/sd1/math/ExpTest.java | 18 - Sd1/P/math/V2/.gitignore | 4 - Sd1/P/math/V2/pom.xml | 65 - .../de/hdm_stuttgart/de/sd1/math/Driver.java | 27 - .../de/hdm_stuttgart/de/sd1/math/Math.java | 300 ---- .../de/hdm_stuttgart/de/sd1/math/ExpTest.java | 21 - Sd1/P/math/V3/.gitignore | 4 - Sd1/P/math/V3/pom.xml | 65 - .../de/hdm_stuttgart/de/sd1/math/Driver.java | 41 - .../de/sd1/math/LimitedPrecision.java | 20 - .../de/hdm_stuttgart/de/sd1/math/Math.java | 319 ---- .../de/sd1/math/ExpSinSinoldTest.java | 28 - Sd1/P/math/V4/.gitignore | 4 - Sd1/P/math/V4/pom.xml | 65 - .../de/hdm_stuttgart/de/sd1/math/Driver.java | 32 - .../de/hdm_stuttgart/de/sd1/math/Math.java | 321 ---- .../de/hdm_stuttgart/de/sd1/math/ExpTest.java | 18 - Sd1/P/plot/.gitignore | 5 - Sd1/P/plot/pom.xml | 84 - .../de/hdm_stuttgart/mi/sd1/plot/Driver.java | 24 - .../hdm_stuttgart/mi/sd1/plot/PlotSine.java | 59 - .../de/hdm_stuttgart/mi/sd1/plot/Plotter.java | 113 -- Sd1/P/plot/src/main/resources/log4j2.xml | 21 - .../de/hdm_stuttgart/mi/sd1/plot/AppTest.java | 17 - Sd1/P/rounding/.gitignore | 4 - Sd1/P/rounding/pom.xml | 49 - .../hdm_stuttgart/de/sd1/leap/LeapYear.java | 34 - .../de/sd1/leap/LeapYearCompact.java | 31 - .../de/sd1/rounding/MathTable.java | 56 - .../de/hdm_stuttgart/de/sd1/sum/Summing.java | 30 - .../de/sd1/rounding/AppTest.java | 33 - Sd1/swd1.xml | 1547 ----------------- Sda1/.gitignore | 3 - Sda1/Makefile | 86 - Sda1/P/Relational/.project | 17 - Sda1/P/Relational/airline.xsd | 143 -- Sda1/P/Relational/flightSchedule.xml | 27 - Sda1/P/Relational/schema.sql | 45 - Sda1/P/catalog2rdbms/.gitignore | 5 - Sda1/P/catalog2rdbms/Schema/catalog.xsd | 27 - Sda1/P/catalog2rdbms/Schema/schema.sql | 27 - Sda1/P/catalog2rdbms/pom.xml | 98 -- Sda1/P/catalog2rdbms/products.xml | 17 - Sda1/P/catalog2rdbms/schema.sql | 28 - .../mi/sda1/catalog2sql/DataInsert.java | 86 - .../mi/sda1/catalog2sql/Helper.java | 18 - .../mi/sda1/catalog2sql/Messages.java | 22 - .../mi/sda1/catalog2sql/Xml2Rdbms.java | 88 - .../handler/CatalogContentHandler.java | 137 -- .../mi/sda1/catalog2sql/messages.properties | 17 - .../src/main/resources/log4j2.xml | 21 - Sda1/P/catalog2sql/.gitignore | 6 - Sda1/P/catalog2sql/Schema/catalog.xsd | 23 - Sda1/P/catalog2sql/Schema/schema.sql | 27 - Sda1/P/catalog2sql/pom.xml | 96 - Sda1/P/catalog2sql/products.xml | 17 - .../mi/sda1/catalog2sql/App.java | 53 - .../mi/sda1/catalog2sql/SqlFormatter.java | 61 - .../handler/CatalogContentHandler.java | 126 -- .../catalog2sql/src/main/resources/log4j2.xml | 21 - .../mi/sda1/catalog2sax/AppTest.java | 55 - .../src/test/products.reference.sql | 11 - Sda1/P/rdbms2catalog/.gitignore | 5 - Sda1/P/rdbms2catalog/Schema/catalog.xsd | 27 - Sda1/P/rdbms2catalog/Schema/schema.sql | 28 - Sda1/P/rdbms2catalog/pom.xml | 97 -- Sda1/P/rdbms2catalog/products.xml | 17 - .../mi/sda1/sql2catalog/Helper.java | 18 - .../mi/sda1/sql2catalog/Messages.java | 22 - .../mi/sda1/sql2catalog/Rdbms2Xml.java | 77 - .../mi/sda1/sql2catalog/RdbmsAccess.java | 63 - .../mi/sda1/sql2catalog/messages.properties | 11 - .../src/main/resources/log4j2.xml | 21 - Sda1/P/saxerrorhandler/.gitignore | 6 - Sda1/P/saxerrorhandler/pom.xml | 83 - .../handler/SaxErrorHandler.java | 69 - .../src/main/resources/log4j2.xml | 21 - .../mi/sda1/saxerrorhandler/AppTest.java | 70 - Sda1/P/saxerrorhandler/src/test/testdata.xml | 6 - Sda1/P/xmlstatistics/.gitignore | 5 - Sda1/P/xmlstatistics/pom.xml | 90 - Sda1/P/xmlstatistics/sample.xsl | 29 - .../mi/sda1/xmlstatistics/App.java | 56 - .../handler/ElementcountByName.java | 48 - .../handler/SaxContentHandler.java | 153 -- .../src/main/resources/log4j2.xml | 21 - .../mi/sda1/xmlstatistics/AppTest.java | 52 - Sda1/xmlmind.conf | 148 -- Sda2/Makefile | 79 - pom.xml | 6 +- ws/eclipse/bluej/pom.xml | 263 ++- ws/eclipse/greenfoot/pom.xml | 158 +- 463 files changed, 1556 insertions(+), 21747 deletions(-) create mode 100644 Makefile create mode 100644 P/Sda2/account/src/main/java/de/hdm_stuttgart/mi/sda2/account/gui/ErrorReporter.java delete mode 100644 Sd1/.gitignore delete mode 100644 Sd1/Makefile delete mode 100644 Sd1/P/Archetypes/Makefile delete mode 100644 Sd1/P/Archetypes/catalog.xml delete mode 100644 Sd1/P/Archetypes/maven-prototype-javafx/.gitignore delete mode 100644 Sd1/P/Archetypes/maven-prototype-javafx/pom.xml delete mode 100644 Sd1/P/Archetypes/maven-prototype-javafx/src/main/java/de/hdm_stuttgart/mi/sda2/account/Conf.java delete mode 100644 Sd1/P/Archetypes/maven-prototype-javafx/src/main/java/de/hdm_stuttgart/mi/sda2/account/GuiDriver.java delete mode 100644 Sd1/P/Archetypes/maven-prototype-javafx/src/main/java/de/hdm_stuttgart/mi/sda2/account/GuiHelper/Dialog.java delete mode 100644 Sd1/P/Archetypes/maven-prototype-javafx/src/main/java/de/hdm_stuttgart/mi/sda2/account/GuiHelper/NumberField.java delete mode 100644 Sd1/P/Archetypes/maven-prototype-javafx/src/main/resources/de/hdm_stuttgart/mi/sda2/account/config.properties delete mode 100644 Sd1/P/Archetypes/maven-prototype-javafx/src/main/resources/log4j.properties delete mode 100644 Sd1/P/Archetypes/maven-prototype-javafx/src/test/java/de/hdm_stuttgart/mi/sda2/account/SimpleTest.java delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-javafxml/.gitignore delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-javafxml/Readme.txt delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-javafxml/pom.xml delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/META-INF/maven/archetype-metadata.xml delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/.gitignore delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/pom.xml delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/src/main/java/App.java delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/src/main/java/HelloController.java delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/src/main/resources/fxml/hello.fxml delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/src/main/resources/images/background.jpg delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/src/main/resources/log4j2.xml delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/src/main/resources/styles/styles.css delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/src/test/java/AppTest.java delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-quickstart/.gitignore delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-quickstart/Readme.txt delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-quickstart/pom.xml delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-quickstart/src/main/resources/META-INF/maven/archetype-metadata.xml delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-quickstart/src/main/resources/archetype-resources/.gitignore delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-quickstart/src/main/resources/archetype-resources/pom.xml delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-quickstart/src/main/resources/archetype-resources/src/main/java/App.java delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-quickstart/src/main/resources/archetype-resources/src/main/resources/log4j2.xml delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-quickstart/src/main/resources/archetype-resources/src/test/java/AppTest.java delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-sax/.gitignore delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-sax/Readme.txt delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-sax/pom.xml delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/META-INF/maven/archetype-metadata.xml delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/archetype-resources/.gitignore delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/archetype-resources/pom.xml delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/archetype-resources/src/main/java/App.java delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/archetype-resources/src/main/java/handler/SaxContentHandler.java delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/archetype-resources/src/main/java/handler/SaxErrorHandler.java delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/archetype-resources/src/main/resources/log4j2.xml delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/archetype-resources/src/main/resources/testdata.xml delete mode 100644 Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/archetype-resources/src/test/java/AppTest.java delete mode 100644 Sd1/P/Array/arraycalcExercise/.gitignore delete mode 100644 Sd1/P/Array/arraycalcExercise/pom.xml delete mode 100644 Sd1/P/Array/arraycalcExercise/src/main/java/de/hdm_stuttgart/mi/sd1/store/Arraymethods.java delete mode 100644 Sd1/P/Array/arraycalcExercise/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java delete mode 100644 Sd1/P/Array/arraycalcExercise/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/ArrayMethodTests.java delete mode 100644 Sd1/P/Array/arraycalcSolution/.gitignore delete mode 100644 Sd1/P/Array/arraycalcSolution/pom.xml delete mode 100644 Sd1/P/Array/arraycalcSolution/src/main/java/de/hdm_stuttgart/mi/sd1/store/Arraymethods.java delete mode 100644 Sd1/P/Array/arraycalcSolution/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java delete mode 100644 Sd1/P/Array/arraycalcSolution/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/ArrayMethodTests.java delete mode 100644 Sd1/P/Array/integerStore/.gitignore delete mode 100644 Sd1/P/Array/integerStore/pom.xml delete mode 100644 Sd1/P/Array/integerStore/src/main/java/de/hdm_stuttgart/mi/sd1/main/Driver.java delete mode 100644 Sd1/P/Array/integerStore/src/main/java/de/hdm_stuttgart/mi/sd1/store/BoundedIntegerStore.java delete mode 100644 Sd1/P/Array/integerStore/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java delete mode 100644 Sd1/P/Array/integerStore/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/IntStoreTest.java delete mode 100644 Sd1/P/Array/integerStoreMedianAnswer/.gitignore delete mode 100644 Sd1/P/Array/integerStoreMedianAnswer/pom.xml delete mode 100644 Sd1/P/Array/integerStoreMedianAnswer/src/main/java/de/hdm_stuttgart/mi/sd1/main/Driver.java delete mode 100644 Sd1/P/Array/integerStoreMedianAnswer/src/main/java/de/hdm_stuttgart/mi/sd1/store/IntegerStore.java delete mode 100644 Sd1/P/Array/integerStoreMedianAnswer/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java delete mode 100644 Sd1/P/Array/integerStoreMedianAnswer/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestSorting.java delete mode 100644 Sd1/P/Array/integerStoreMedianAnswer/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestStatisticMethods.java delete mode 100644 Sd1/P/Array/integerStoreSkeleton/.gitignore delete mode 100644 Sd1/P/Array/integerStoreSkeleton/pom.xml delete mode 100644 Sd1/P/Array/integerStoreSkeleton/src/main/java/de/hdm_stuttgart/mi/sd1/main/Driver.java delete mode 100644 Sd1/P/Array/integerStoreSkeleton/src/main/java/de/hdm_stuttgart/mi/sd1/store/BoundedIntegerStore.java delete mode 100644 Sd1/P/Array/integerStoreSkeleton/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java delete mode 100644 Sd1/P/Array/integerStoreSkeleton/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/IntStoreTest.java delete mode 100644 Sd1/P/Array/integerStoreStat/.gitignore delete mode 100644 Sd1/P/Array/integerStoreStat/pom.xml delete mode 100644 Sd1/P/Array/integerStoreStat/src/main/java/de/hdm_stuttgart/mi/sd1/main/Driver.java delete mode 100644 Sd1/P/Array/integerStoreStat/src/main/java/de/hdm_stuttgart/mi/sd1/store/IntegerStore.java delete mode 100644 Sd1/P/Array/integerStoreStat/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java delete mode 100644 Sd1/P/Array/integerStoreStat/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/IntStoreTest.java delete mode 100644 Sd1/P/Array/integerStoreUnbounded/.gitignore delete mode 100644 Sd1/P/Array/integerStoreUnbounded/pom.xml delete mode 100644 Sd1/P/Array/integerStoreUnbounded/src/main/java/de/hdm_stuttgart/mi/sd1/main/Driver.java delete mode 100644 Sd1/P/Array/integerStoreUnbounded/src/main/java/de/hdm_stuttgart/mi/sd1/store/IntegerStore.java delete mode 100644 Sd1/P/Array/integerStoreUnbounded/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java delete mode 100644 Sd1/P/Array/integerStoreUnbounded/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/IntStoreTest.java delete mode 100644 Sd1/P/Array/medianCmdLine/.gitignore delete mode 100644 Sd1/P/Array/medianCmdLine/pom.xml delete mode 100644 Sd1/P/Array/medianCmdLine/src/main/java/de/hdm_stuttgart/mi/sd1/statistics/IntegerStore.java delete mode 100644 Sd1/P/Array/medianCmdLine/src/main/java/de/hdm_stuttgart/mi/sd1/statistics/main/ErrorState.java delete mode 100644 Sd1/P/Array/medianCmdLine/src/main/java/de/hdm_stuttgart/mi/sd1/statistics/main/InputValidator.java delete mode 100644 Sd1/P/Array/medianCmdLine/src/main/java/de/hdm_stuttgart/mi/sd1/statistics/main/Statistics.java delete mode 100644 Sd1/P/Array/medianCmdLine/src/main/java/de/hdm_stuttgart/mi/sd1/statistics/package-info.java delete mode 100644 Sd1/P/Array/medianCmdLine/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestSorting.java delete mode 100644 Sd1/P/Array/medianCmdLine/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestStatisticMethods.java delete mode 100644 Sd1/P/Array/medianCmdLine/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestValidation.java delete mode 100644 Sd1/P/Collection/Intro/LookupSet/.gitignore delete mode 100644 Sd1/P/Collection/Intro/LookupSet/pom.xml delete mode 100644 Sd1/P/Collection/Intro/LookupSet/src/main/java/de/hdm_stuttgart/mi/sd1/collection/Coordinate.java delete mode 100644 Sd1/P/Collection/Intro/LookupSet/src/main/java/de/hdm_stuttgart/mi/sd1/collection/InsertCoordinates.java delete mode 100644 Sd1/P/Collection/Intro/LookupSet/src/main/java/de/hdm_stuttgart/mi/sd1/collection/SimpleTextList.java delete mode 100644 Sd1/P/Collection/Intro/LookupSet/src/main/java/de/hdm_stuttgart/mi/sd1/collection/SimpleTextSet.java delete mode 100644 Sd1/P/Collection/Intro/LookupSet/src/main/java/de/hdm_stuttgart/mi/sd1/collection/package-info.java delete mode 100644 Sd1/P/Collection/Intro/LookupSet/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestDuplicates.java delete mode 100644 Sd1/P/Collection/Intro/LookupSet/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestStringLookup.java delete mode 100644 Sd1/P/CollectionImplement/StringSet/Solution/.gitignore delete mode 100644 Sd1/P/CollectionImplement/StringSet/Solution/pom.xml delete mode 100644 Sd1/P/CollectionImplement/StringSet/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/stringset/MySet_String.java delete mode 100644 Sd1/P/CollectionImplement/StringSet/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/stringset/Set_String.java delete mode 100644 Sd1/P/CollectionImplement/StringSet/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/stringset/package-info.java delete mode 100644 Sd1/P/CollectionImplement/StringSet/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/stringset/BasicTests.java delete mode 100644 Sd1/P/Etest/Diff/Solution/.gitignore delete mode 100644 Sd1/P/Etest/Diff/Solution/pom.xml delete mode 100644 Sd1/P/Etest/Diff/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/store/Diff.java delete mode 100644 Sd1/P/Etest/Diff/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java delete mode 100644 Sd1/P/Etest/Diff/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/DiffTest.java delete mode 100644 Sd1/P/Etest/Diff/Test/.gitignore delete mode 100644 Sd1/P/Etest/Diff/Test/pom.xml delete mode 100644 Sd1/P/Etest/Diff/Test/src/main/java/de/hdm_stuttgart/mi/sd1/store/Diff.java delete mode 100644 Sd1/P/Etest/Diff/Test/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java delete mode 100644 Sd1/P/Etest/Diff/Test/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/DiffTest.java delete mode 100644 Sd1/P/Etest/IntMax/Solution/.gitignore delete mode 100644 Sd1/P/Etest/IntMax/Solution/pom.xml delete mode 100644 Sd1/P/Etest/IntMax/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/intmax/Max.java delete mode 100644 Sd1/P/Etest/IntMax/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/intmax/AppTest.java delete mode 100644 Sd1/P/Etest/IntMax/Test/.gitignore delete mode 100644 Sd1/P/Etest/IntMax/Test/pom.xml delete mode 100644 Sd1/P/Etest/IntMax/Test/src/main/java/de/hdm_stuttgart/mi/sd1/intmax/Max.java delete mode 100644 Sd1/P/Etest/IntMax/Test/src/test/java/de/hdm_stuttgart/mi/sd1/intmax/AppTest.java delete mode 100644 Sd1/P/Etest/MaxArrayDiff/Solution/.gitignore delete mode 100644 Sd1/P/Etest/MaxArrayDiff/Solution/pom.xml delete mode 100644 Sd1/P/Etest/MaxArrayDiff/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/maxarraydiff/Calc.java delete mode 100644 Sd1/P/Etest/MaxArrayDiff/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/maxarraydiff/package-info.java delete mode 100644 Sd1/P/Etest/MaxArrayDiff/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/CalcTest.java delete mode 100644 Sd1/P/Etest/MaxArrayDiff/Test/.gitignore delete mode 100644 Sd1/P/Etest/MaxArrayDiff/Test/pom.xml delete mode 100644 Sd1/P/Etest/MaxArrayDiff/Test/src/main/java/de/hdm_stuttgart/mi/sd1/maxarraydiff/Calc.java delete mode 100644 Sd1/P/Etest/MaxArrayDiff/Test/src/main/java/de/hdm_stuttgart/mi/sd1/maxarraydiff/package-info.java delete mode 100644 Sd1/P/Etest/MaxArrayDiff/Test/src/test/java/de/hdm_stuttgart/mi/sd1/CalcTest.java delete mode 100644 Sd1/P/Etest/Vowel/Solution/.gitignore delete mode 100644 Sd1/P/Etest/Vowel/Solution/pom.xml delete mode 100644 Sd1/P/Etest/Vowel/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/Vowelcount/Vowelcount.java delete mode 100644 Sd1/P/Etest/Vowel/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/Vowelcount/package-info.java delete mode 100644 Sd1/P/Etest/Vowel/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/VowelTest.java delete mode 100644 Sd1/P/Etest/Vowel/Test/.gitignore delete mode 100644 Sd1/P/Etest/Vowel/Test/pom.xml delete mode 100644 Sd1/P/Etest/Vowel/Test/src/main/java/de/hdm_stuttgart/mi/sd1/Vowelcount/Vowelcount.java delete mode 100644 Sd1/P/Etest/Vowel/Test/src/main/java/de/hdm_stuttgart/mi/sd1/Vowelcount/package-info.java delete mode 100644 Sd1/P/Etest/Vowel/Test/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/VowelTest.java delete mode 100644 Sd1/P/Gcd/V1/.gitignore delete mode 100644 Sd1/P/Gcd/V1/pom.xml delete mode 100644 Sd1/P/Gcd/V1/src/main/java/de/hdm_stuttgart/mi/sd1/gcd/Driver.java delete mode 100644 Sd1/P/Gcd/V1/src/main/java/de/hdm_stuttgart/mi/sd1/gcd/Math.java delete mode 100644 Sd1/P/Gcd/V1/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/CommonMultipleTest.java delete mode 100644 Sd1/P/Gcd/V1/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/GcdTest.java delete mode 100644 Sd1/P/HtmlFormatting/Simple/Exercise/.gitignore delete mode 100644 Sd1/P/HtmlFormatting/Simple/Exercise/addresses.txt delete mode 100644 Sd1/P/HtmlFormatting/Simple/Exercise/pom.xml delete mode 100644 Sd1/P/HtmlFormatting/Simple/Exercise/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/Address.java delete mode 100644 Sd1/P/HtmlFormatting/Simple/Exercise/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/Address2text.java delete mode 100644 Sd1/P/HtmlFormatting/Simple/Exercise/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/Address2textFormatter.java delete mode 100644 Sd1/P/HtmlFormatting/Simple/Exercise/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/AddressDataHandler.java delete mode 100644 Sd1/P/HtmlFormatting/Simple/Exercise/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/AddressFormatter.java delete mode 100644 Sd1/P/HtmlFormatting/Simple/Exercise/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/AddressParseError.java delete mode 100644 Sd1/P/HtmlFormatting/Simple/Exercise/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/package-info.java delete mode 100644 Sd1/P/HtmlFormatting/Simple/Exercise/src/test/java/.gitignore delete mode 100644 Sd1/P/HtmlFormatting/Simple/Solution/.gitignore delete mode 100644 Sd1/P/HtmlFormatting/Simple/Solution/Testdata/missingAttribute.txt delete mode 100644 Sd1/P/HtmlFormatting/Simple/Solution/Testdata/missingStartQuote.txt delete mode 100644 Sd1/P/HtmlFormatting/Simple/Solution/addresses.txt delete mode 100644 Sd1/P/HtmlFormatting/Simple/Solution/pom.xml delete mode 100644 Sd1/P/HtmlFormatting/Simple/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/Address.java delete mode 100644 Sd1/P/HtmlFormatting/Simple/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/Address2html.java delete mode 100644 Sd1/P/HtmlFormatting/Simple/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/Address2htmlFormatter.java delete mode 100644 Sd1/P/HtmlFormatting/Simple/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/AddressDataHandler.java delete mode 100644 Sd1/P/HtmlFormatting/Simple/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/AddressFormatter.java delete mode 100644 Sd1/P/HtmlFormatting/Simple/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/AddressParseError.java delete mode 100644 Sd1/P/HtmlFormatting/Simple/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/package-info.java delete mode 100644 Sd1/P/HtmlFormatting/Simple/Solution/src/test/java/htmlformat/TestExceptions.java delete mode 100644 Sd1/P/Marks/Solution1/.gitignore delete mode 100644 Sd1/P/Marks/Solution1/pom.xml delete mode 100644 Sd1/P/Marks/Solution1/src/main/java/de/hdm_stuttgart/mi/sd1/marks/MarkStatistics.java delete mode 100644 Sd1/P/Marks/Solution1/src/main/java/de/hdm_stuttgart/mi/sd1/marks/TextFileHandler.java delete mode 100644 Sd1/P/Marks/Solution1/src/main/java/de/hdm_stuttgart/mi/sd1/marks/package-info.java delete mode 100644 Sd1/P/Marks/Solution1/src/test/java/de/hdm_stuttgart/mi/sd1/marks/test/package-info.java delete mode 100644 Sd1/P/Marks/Solution1/testdata.txt delete mode 100644 Sd1/P/Marks/Solution2/.gitignore delete mode 100644 Sd1/P/Marks/Solution2/pom.xml delete mode 100644 Sd1/P/Marks/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/marks/MarkStatistics.java delete mode 100644 Sd1/P/Marks/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/marks/TextFileHandler.java delete mode 100644 Sd1/P/Marks/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/marks/package-info.java delete mode 100644 Sd1/P/Marks/Solution2/src/test/java/de/hdm_stuttgart/mi/sd1/marks/test/package-info.java delete mode 100644 Sd1/P/Marks/Solution2/testdata.txt delete mode 100644 Sd1/P/Prime/V1/.gitignore delete mode 100644 Sd1/P/Prime/V1/pom.xml delete mode 100644 Sd1/P/Prime/V1/src/main/java/de/hdm_stuttgart/mi/sd1/main/PrimeNumbers.java delete mode 100644 Sd1/P/Prime/V1/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java delete mode 100644 Sd1/P/Prime/V1/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestPrimes.java delete mode 100644 Sd1/P/Prime/V2/.gitignore delete mode 100644 Sd1/P/Prime/V2/pom.xml delete mode 100644 Sd1/P/Prime/V2/src/main/java/de/hdm_stuttgart/mi/sd1/main/PrimeNumbers.java delete mode 100644 Sd1/P/StringLengthSort/Solution/.gitignore delete mode 100644 Sd1/P/StringLengthSort/Solution/pom.xml delete mode 100644 Sd1/P/StringLengthSort/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/LengthCompare.java delete mode 100644 Sd1/P/StringLengthSort/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/package-info.java delete mode 100644 Sd1/P/StringLengthSort/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/TestOrder.java delete mode 100644 Sd1/P/Wc/readFile/.gitignore delete mode 100644 Sd1/P/Wc/readFile/Testdata/input.txt delete mode 100644 Sd1/P/Wc/readFile/pom.xml delete mode 100644 Sd1/P/Wc/readFile/src/main/java/de/hdm_stuttgart/mi/sd1/readfile/ReadFile.java delete mode 100644 Sd1/P/Wc/readFile/src/main/java/de/hdm_stuttgart/mi/sd1/readfile/package-info.java delete mode 100644 Sd1/P/Wc/readFile/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestRead.java delete mode 100644 Sd1/P/Wc/wc/.gitignore delete mode 100644 Sd1/P/Wc/wc/Testdata/input.html delete mode 100644 Sd1/P/Wc/wc/Testdata/model.css delete mode 100644 Sd1/P/Wc/wc/pom.xml delete mode 100644 Sd1/P/Wc/wc/src/main/java/de/hdm_stuttgart/mi/sd1/wc/TextFileStatistics.java delete mode 100644 Sd1/P/Wc/wc/src/main/java/de/hdm_stuttgart/mi/sd1/wc/Wc.java delete mode 100644 Sd1/P/Wc/wc/src/main/java/de/hdm_stuttgart/mi/sd1/wc/package-info.java delete mode 100644 Sd1/P/Wc/wc/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestCountWords.java delete mode 100644 Sd1/P/Wc/wc/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestWc.java delete mode 100644 Sd1/P/WordFrequency1/Solution/.gitignore delete mode 100644 Sd1/P/WordFrequency1/Solution/pom.xml delete mode 100644 Sd1/P/WordFrequency1/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/TextFileHandler.java delete mode 100644 Sd1/P/WordFrequency1/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/TextStatistics.java delete mode 100644 Sd1/P/WordFrequency1/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/WordFrequency.java delete mode 100644 Sd1/P/WordFrequency1/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/package-info.java delete mode 100644 Sd1/P/WordFrequency1/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/textstat/test/package-info.java delete mode 100644 Sd1/P/WordFrequency1/Solution/testdata.txt delete mode 100644 Sd1/P/WordFrequency2/Solution1/.gitignore delete mode 100644 Sd1/P/WordFrequency2/Solution1/pom.xml delete mode 100644 Sd1/P/WordFrequency2/Solution1/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/TextFileHandler.java delete mode 100644 Sd1/P/WordFrequency2/Solution1/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/TextStatistics.java delete mode 100644 Sd1/P/WordFrequency2/Solution1/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/package-info.java delete mode 100644 Sd1/P/WordFrequency2/Solution1/src/test/java/de/hdm_stuttgart/mi/sd1/textstat/test/package-info.java delete mode 100644 Sd1/P/WordFrequency2/Solution1/testdata.txt delete mode 100644 Sd1/P/WordFrequency2/Solution2/.gitignore delete mode 100644 Sd1/P/WordFrequency2/Solution2/pom.xml delete mode 100644 Sd1/P/WordFrequency2/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/TextFileHandler.java delete mode 100644 Sd1/P/WordFrequency2/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/TextStatistics.java delete mode 100644 Sd1/P/WordFrequency2/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/WordFrequencyCompare.java delete mode 100644 Sd1/P/WordFrequency2/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/package-info.java delete mode 100644 Sd1/P/WordFrequency2/Solution2/src/test/java/de/hdm_stuttgart/mi/sd1/textstat/test/package-info.java delete mode 100644 Sd1/P/WordFrequency2/Solution2/testdata.txt delete mode 100644 Sd1/P/Wordlist/Solution/.gitignore delete mode 100644 Sd1/P/Wordlist/Solution/pom.xml delete mode 100644 Sd1/P/Wordlist/Solution/smalltest.txt delete mode 100644 Sd1/P/Wordlist/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/TextFileHandler.java delete mode 100644 Sd1/P/Wordlist/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/WordCollector.java delete mode 100644 Sd1/P/Wordlist/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/package-info.java delete mode 100644 Sd1/P/Wordlist/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/textstat/test/TestWordCollect.java delete mode 100644 Sd1/P/Wordlist/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/textstat/test/package-info.java delete mode 100644 Sd1/P/Wordlist/Solution/testdata.txt delete mode 100644 Sd1/P/Wordlist/Solution2/.gitignore delete mode 100644 Sd1/P/Wordlist/Solution2/pom.xml delete mode 100644 Sd1/P/Wordlist/Solution2/smalltest.txt delete mode 100644 Sd1/P/Wordlist/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/TextFileHandler.java delete mode 100644 Sd1/P/Wordlist/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/WordCollector.java delete mode 100644 Sd1/P/Wordlist/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/package-info.java delete mode 100644 Sd1/P/Wordlist/Solution2/src/test/java/de/hdm_stuttgart/mi/sd1/textstat/test/TestWordCollect.java delete mode 100644 Sd1/P/Wordlist/Solution2/src/test/java/de/hdm_stuttgart/mi/sd1/textstat/test/package-info.java delete mode 100644 Sd1/P/Wordlist/Solution2/testdata.txt delete mode 100644 Sd1/P/crab/V1/.gitignore delete mode 100644 Sd1/P/crab/V1/pom.xml delete mode 100644 Sd1/P/crab/V1/src/main/java/Animal.java delete mode 100644 Sd1/P/crab/V1/src/main/java/Crab.java delete mode 100644 Sd1/P/crab/V1/src/main/java/CrabWorld.java delete mode 100644 Sd1/P/crab/V1/src/main/java/Lobster.java delete mode 100644 Sd1/P/crab/V1/src/main/java/Worm.java delete mode 100644 Sd1/P/crab/V1/src/test/java/.ignore delete mode 100644 Sd1/P/crab/V2/.gitignore delete mode 100644 Sd1/P/crab/V2/pom.xml delete mode 100644 Sd1/P/crab/V2/src/main/java/Animal.java delete mode 100644 Sd1/P/crab/V2/src/main/java/Crab.java delete mode 100644 Sd1/P/crab/V2/src/main/java/CrabWorld.java delete mode 100644 Sd1/P/crab/V2/src/main/java/Lobster.java delete mode 100644 Sd1/P/crab/V2/src/main/java/Worm.java delete mode 100644 Sd1/P/crab/V2/src/test/java/.gitignore delete mode 100644 Sd1/P/fraction/V05/.gitignore delete mode 100644 Sd1/P/fraction/V05/pom.xml delete mode 100644 Sd1/P/fraction/V05/src/main/java/de/hdm_stuttgart/mi/sd1/fraction/App.java delete mode 100644 Sd1/P/fraction/V05/src/main/java/de/hdm_stuttgart/mi/sd1/fraction/Fraction.java delete mode 100644 Sd1/P/fraction/V05/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/FractionTest.java delete mode 100644 Sd1/P/fraction/V1/.gitignore delete mode 100644 Sd1/P/fraction/V1/pom.xml delete mode 100644 Sd1/P/fraction/V1/src/main/java/de/hdm_stuttgart/mi/sd1/fraction/App.java delete mode 100644 Sd1/P/fraction/V1/src/main/java/de/hdm_stuttgart/mi/sd1/fraction/Fraction.java delete mode 100644 Sd1/P/fraction/V1/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/FractionTest.java delete mode 100644 Sd1/P/fraction/V2/.gitignore delete mode 100644 Sd1/P/fraction/V2/pom.xml delete mode 100644 Sd1/P/fraction/V2/src/main/java/de/hdm_stuttgart/mi/sd1/fraction/Driver.java delete mode 100644 Sd1/P/fraction/V2/src/main/java/de/hdm_stuttgart/mi/sd1/fraction/Fraction.java delete mode 100644 Sd1/P/fraction/V2/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/FractionTest.java delete mode 100644 Sd1/P/interest/V1/.gitignore delete mode 100644 Sd1/P/interest/V1/pom.xml delete mode 100644 Sd1/P/interest/V1/src/main/java/de/hdm_stuttgart/mi/sd1/interest/Account.java delete mode 100644 Sd1/P/interest/V1/src/main/java/de/hdm_stuttgart/mi/sd1/interest/App.java delete mode 100644 Sd1/P/interest/V1/src/test/java/de/hdm_stuttgart/mi/sd1/interest/AccountTest.java delete mode 100644 Sd1/P/interest/V2/.gitignore delete mode 100644 Sd1/P/interest/V2/pom.xml delete mode 100644 Sd1/P/interest/V2/src/main/java/de/hdm_stuttgart/mi/sd1/interest/Account.java delete mode 100644 Sd1/P/interest/V2/src/main/java/de/hdm_stuttgart/mi/sd1/interest/App.java delete mode 100644 Sd1/P/interest/V2/src/test/java/de/hdm_stuttgart/mi/sd1/interest/AccountTest.java delete mode 100644 Sd1/P/life/V1/.gitignore delete mode 100644 Sd1/P/life/V1/pom.xml delete mode 100755 Sd1/P/life/V1/src/main/java/Cell.java delete mode 100644 Sd1/P/life/V1/src/main/java/CellState.java delete mode 100755 Sd1/P/life/V1/src/main/java/LifeWorld.java delete mode 100644 Sd1/P/life/V1/src/test/.gitignore delete mode 100644 Sd1/P/life/V3/.gitignore delete mode 100644 Sd1/P/life/V3/pom.xml delete mode 100755 Sd1/P/life/V3/src/main/java/Cell.java delete mode 100644 Sd1/P/life/V3/src/main/java/CellState.java delete mode 100755 Sd1/P/life/V3/src/main/java/LifeWorld.java delete mode 100644 Sd1/P/life/V3/src/test/.gitignore delete mode 100644 Sd1/P/loop/answer/.gitignore delete mode 100644 Sd1/P/loop/answer/pom.xml delete mode 100644 Sd1/P/loop/answer/src/main/java/de/hdm_stuttgart/de/sd1/loop/LoopExample.java delete mode 100644 Sd1/P/loop/answer/src/test/java/de/hdm_stuttgart/de/sd1/loop/AppTest.java delete mode 100644 Sd1/P/loop/question/.gitignore delete mode 100644 Sd1/P/loop/question/pom.xml delete mode 100644 Sd1/P/loop/question/src/main/java/de/hdm_stuttgart/de/sd1/loop/LoopSolve.java delete mode 100644 Sd1/P/loop/question/src/test/java/de/hdm_stuttgart/de/sd1/loop/AppTest.java delete mode 100644 Sd1/P/math/V0_5/.gitignore delete mode 100644 Sd1/P/math/V0_5/pom.xml delete mode 100644 Sd1/P/math/V0_5/src/main/java/de/hdm_stuttgart/de/sd1/math/Driver.java delete mode 100644 Sd1/P/math/V0_5/src/main/java/de/hdm_stuttgart/de/sd1/math/Math.java delete mode 100644 Sd1/P/math/V0_5/src/test/java/de/hdm_stuttgart/de/sd1/math/MaxAbsTest.java delete mode 100644 Sd1/P/math/V1/.gitignore delete mode 100644 Sd1/P/math/V1/pom.xml delete mode 100644 Sd1/P/math/V1/src/main/java/de/hdm_stuttgart/de/sd1/math/Driver.java delete mode 100644 Sd1/P/math/V1/src/main/java/de/hdm_stuttgart/de/sd1/math/Math.java delete mode 100644 Sd1/P/math/V1/src/test/java/de/hdm_stuttgart/de/sd1/math/ExpTest.java delete mode 100644 Sd1/P/math/V2/.gitignore delete mode 100644 Sd1/P/math/V2/pom.xml delete mode 100644 Sd1/P/math/V2/src/main/java/de/hdm_stuttgart/de/sd1/math/Driver.java delete mode 100644 Sd1/P/math/V2/src/main/java/de/hdm_stuttgart/de/sd1/math/Math.java delete mode 100644 Sd1/P/math/V2/src/test/java/de/hdm_stuttgart/de/sd1/math/ExpTest.java delete mode 100644 Sd1/P/math/V3/.gitignore delete mode 100644 Sd1/P/math/V3/pom.xml delete mode 100644 Sd1/P/math/V3/src/main/java/de/hdm_stuttgart/de/sd1/math/Driver.java delete mode 100644 Sd1/P/math/V3/src/main/java/de/hdm_stuttgart/de/sd1/math/LimitedPrecision.java delete mode 100644 Sd1/P/math/V3/src/main/java/de/hdm_stuttgart/de/sd1/math/Math.java delete mode 100644 Sd1/P/math/V3/src/test/java/de/hdm_stuttgart/de/sd1/math/ExpSinSinoldTest.java delete mode 100644 Sd1/P/math/V4/.gitignore delete mode 100644 Sd1/P/math/V4/pom.xml delete mode 100644 Sd1/P/math/V4/src/main/java/de/hdm_stuttgart/de/sd1/math/Driver.java delete mode 100644 Sd1/P/math/V4/src/main/java/de/hdm_stuttgart/de/sd1/math/Math.java delete mode 100644 Sd1/P/math/V4/src/test/java/de/hdm_stuttgart/de/sd1/math/ExpTest.java delete mode 100644 Sd1/P/plot/.gitignore delete mode 100644 Sd1/P/plot/pom.xml delete mode 100644 Sd1/P/plot/src/main/java/de/hdm_stuttgart/mi/sd1/plot/Driver.java delete mode 100644 Sd1/P/plot/src/main/java/de/hdm_stuttgart/mi/sd1/plot/PlotSine.java delete mode 100644 Sd1/P/plot/src/main/java/de/hdm_stuttgart/mi/sd1/plot/Plotter.java delete mode 100644 Sd1/P/plot/src/main/resources/log4j2.xml delete mode 100644 Sd1/P/plot/src/test/java/de/hdm_stuttgart/mi/sd1/plot/AppTest.java delete mode 100644 Sd1/P/rounding/.gitignore delete mode 100644 Sd1/P/rounding/pom.xml delete mode 100644 Sd1/P/rounding/src/main/java/de/hdm_stuttgart/de/sd1/leap/LeapYear.java delete mode 100644 Sd1/P/rounding/src/main/java/de/hdm_stuttgart/de/sd1/leap/LeapYearCompact.java delete mode 100644 Sd1/P/rounding/src/main/java/de/hdm_stuttgart/de/sd1/rounding/MathTable.java delete mode 100644 Sd1/P/rounding/src/main/java/de/hdm_stuttgart/de/sd1/sum/Summing.java delete mode 100644 Sd1/P/rounding/src/test/java/de/hdm_stuttgart/de/sd1/rounding/AppTest.java delete mode 100644 Sd1/swd1.xml delete mode 100644 Sda1/.gitignore delete mode 100644 Sda1/Makefile delete mode 100644 Sda1/P/Relational/.project delete mode 100644 Sda1/P/Relational/airline.xsd delete mode 100644 Sda1/P/Relational/flightSchedule.xml delete mode 100644 Sda1/P/Relational/schema.sql delete mode 100644 Sda1/P/catalog2rdbms/.gitignore delete mode 100644 Sda1/P/catalog2rdbms/Schema/catalog.xsd delete mode 100644 Sda1/P/catalog2rdbms/Schema/schema.sql delete mode 100644 Sda1/P/catalog2rdbms/pom.xml delete mode 100644 Sda1/P/catalog2rdbms/products.xml delete mode 100644 Sda1/P/catalog2rdbms/schema.sql delete mode 100644 Sda1/P/catalog2rdbms/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/DataInsert.java delete mode 100644 Sda1/P/catalog2rdbms/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/Helper.java delete mode 100644 Sda1/P/catalog2rdbms/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/Messages.java delete mode 100644 Sda1/P/catalog2rdbms/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/Xml2Rdbms.java delete mode 100644 Sda1/P/catalog2rdbms/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/handler/CatalogContentHandler.java delete mode 100644 Sda1/P/catalog2rdbms/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/messages.properties delete mode 100644 Sda1/P/catalog2rdbms/src/main/resources/log4j2.xml delete mode 100644 Sda1/P/catalog2sql/.gitignore delete mode 100644 Sda1/P/catalog2sql/Schema/catalog.xsd delete mode 100644 Sda1/P/catalog2sql/Schema/schema.sql delete mode 100644 Sda1/P/catalog2sql/pom.xml delete mode 100644 Sda1/P/catalog2sql/products.xml delete mode 100644 Sda1/P/catalog2sql/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/App.java delete mode 100644 Sda1/P/catalog2sql/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/SqlFormatter.java delete mode 100644 Sda1/P/catalog2sql/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/handler/CatalogContentHandler.java delete mode 100644 Sda1/P/catalog2sql/src/main/resources/log4j2.xml delete mode 100644 Sda1/P/catalog2sql/src/test/java/de/hdm_stuttgart/mi/sda1/catalog2sax/AppTest.java delete mode 100644 Sda1/P/catalog2sql/src/test/products.reference.sql delete mode 100644 Sda1/P/rdbms2catalog/.gitignore delete mode 100644 Sda1/P/rdbms2catalog/Schema/catalog.xsd delete mode 100644 Sda1/P/rdbms2catalog/Schema/schema.sql delete mode 100644 Sda1/P/rdbms2catalog/pom.xml delete mode 100644 Sda1/P/rdbms2catalog/products.xml delete mode 100644 Sda1/P/rdbms2catalog/src/main/java/de/hdm_stuttgart/mi/sda1/sql2catalog/Helper.java delete mode 100644 Sda1/P/rdbms2catalog/src/main/java/de/hdm_stuttgart/mi/sda1/sql2catalog/Messages.java delete mode 100644 Sda1/P/rdbms2catalog/src/main/java/de/hdm_stuttgart/mi/sda1/sql2catalog/Rdbms2Xml.java delete mode 100644 Sda1/P/rdbms2catalog/src/main/java/de/hdm_stuttgart/mi/sda1/sql2catalog/RdbmsAccess.java delete mode 100644 Sda1/P/rdbms2catalog/src/main/java/de/hdm_stuttgart/mi/sda1/sql2catalog/messages.properties delete mode 100644 Sda1/P/rdbms2catalog/src/main/resources/log4j2.xml delete mode 100644 Sda1/P/saxerrorhandler/.gitignore delete mode 100644 Sda1/P/saxerrorhandler/pom.xml delete mode 100644 Sda1/P/saxerrorhandler/src/main/java/de/hdm_stuttgart/mi/sda1/saxerrorhandler/handler/SaxErrorHandler.java delete mode 100644 Sda1/P/saxerrorhandler/src/main/resources/log4j2.xml delete mode 100644 Sda1/P/saxerrorhandler/src/test/java/de/hdm_stuttgart/mi/sda1/saxerrorhandler/AppTest.java delete mode 100644 Sda1/P/saxerrorhandler/src/test/testdata.xml delete mode 100644 Sda1/P/xmlstatistics/.gitignore delete mode 100644 Sda1/P/xmlstatistics/pom.xml delete mode 100644 Sda1/P/xmlstatistics/sample.xsl delete mode 100644 Sda1/P/xmlstatistics/src/main/java/de/hdm_stuttgart/mi/sda1/xmlstatistics/App.java delete mode 100644 Sda1/P/xmlstatistics/src/main/java/de/hdm_stuttgart/mi/sda1/xmlstatistics/handler/ElementcountByName.java delete mode 100644 Sda1/P/xmlstatistics/src/main/java/de/hdm_stuttgart/mi/sda1/xmlstatistics/handler/SaxContentHandler.java delete mode 100644 Sda1/P/xmlstatistics/src/main/resources/log4j2.xml delete mode 100644 Sda1/P/xmlstatistics/src/test/java/de/hdm_stuttgart/mi/sda1/xmlstatistics/AppTest.java delete mode 100644 Sda1/xmlmind.conf delete mode 100644 Sda2/Makefile diff --git a/Doc/Makefile b/Doc/Makefile index d4a2c1c1d..00799530b 100644 --- a/Doc/Makefile +++ b/Doc/Makefile @@ -53,9 +53,9 @@ all: ${BUILDROOT}/${BUILDNAVI}/printversion.pdf ${BUILDROOT}/${BUILDNAVI}/index. $(MAKE) -f ../../../../make.rules all;\ popd;\ done; + cd ${BUILDROOT}/Sda1/Ref/Video;$(MAKE) all cd ${BUILDROOT}; tar c- ${DOCMODULES} | tar -x -C ${BUILDNAVI} - ${BUILDROOT}/${BUILDNAVI}/index.html: ${BUILDROOT}/${SCRIPTBASENAME}.xml cd ${BUILDROOT}; mkdir -p ${BUILDNAVI};\ /usr/share/xmlmind/bin/xxetool convert -p eclipse.plugin.id $(PLUGINID) ${PPARAM} db5.toEclipseHelp \ diff --git a/Makefile b/Makefile new file mode 100644 index 000000000..7558699cd --- /dev/null +++ b/Makefile @@ -0,0 +1,19 @@ +SHELL = /bin/bash + +DOCMODULES = Sd1 Sda1 Sda2 + +doc: + cd Doc;$(MAKE) -j8 all + +all:doc + mvn install + mvn -T 8 --fail-at-end javadoc:javadoc + mkdir -p Doc/target/navi/de.hdm_stuttgart.mi.lectures/P + cd P;$(MAKE) -j 8 install + cd P; tar c- ${DOCMODULES} | tar -x -C ../Doc/target/navi/de.hdm_stuttgart.mi.lectures/P + +clean: + cd Doc;$(MAKE) -j 8 clean + mvn -T 8 clean + +#end diff --git a/P/Makefile b/P/Makefile index f86891a7f..52270c9c3 100644 --- a/P/Makefile +++ b/P/Makefile @@ -16,7 +16,4 @@ install: mkdir -p ../Doc/target/navi/de.hdm_stuttgart.mi.lectures/P tar c- Sd1 Sda1 Sda2|tar -x -C ../Doc/target/navi/de.hdm_stuttgart.mi.lectures/P - -clean: - mvn -t8 clean; #end diff --git a/P/Sd1/Array/integerStoreSkeleton/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/IntStoreTest.java b/P/Sd1/Array/integerStoreSkeleton/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/IntStoreTest.java index 456ff1bcc..f3b3a972b 100644 --- a/P/Sd1/Array/integerStoreSkeleton/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/IntStoreTest.java +++ b/P/Sd1/Array/integerStoreSkeleton/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/IntStoreTest.java @@ -9,7 +9,9 @@ import de.hdm_stuttgart.mi.sd1.store.BoundedIntegerStore; @SuppressWarnings("javadoc") public class IntStoreTest { - @Test + /*TODO: uncomment to activate test + @Test + */ public void testPositiveNegative() { final int capacity = 4; BoundedIntegerStore store = new BoundedIntegerStore(capacity); diff --git a/P/Sd1/Etest/Diff/Solution/pom.xml b/P/Sd1/Etest/Diff/Solution/pom.xml index 09f293e5d..7b5c61fd7 100644 --- a/P/Sd1/Etest/Diff/Solution/pom.xml +++ b/P/Sd1/Etest/Diff/Solution/pom.xml @@ -2,57 +2,18 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>de.hdm-stuttgart.mi</groupId> + <artifactId>lecturenotes-pom</artifactId> + <version>1.0</version> + <relativePath>../../../../pom.xml</relativePath> + </parent> + <groupId>de.hdm-stuttgart.de.sd1</groupId> <artifactId>diff</artifactId> - <version>1.0</version> + <version>2.0</version> <packaging>jar</packaging> <name>Diff</name> - <url>http://www.mi.hdm-stuttgart.de/freedocs/topic/de.hdm_stuttgart.mi.swd1/index.html</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> </project> diff --git a/P/Sd1/Etest/Diff/Test/pom.xml b/P/Sd1/Etest/Diff/Test/pom.xml index 09f293e5d..667e6c40f 100644 --- a/P/Sd1/Etest/Diff/Test/pom.xml +++ b/P/Sd1/Etest/Diff/Test/pom.xml @@ -2,57 +2,18 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>de.hdm-stuttgart.mi</groupId> + <artifactId>lecturenotes-pom</artifactId> + <version>1.0</version> + <relativePath>../../../../pom.xml</relativePath> + </parent> + <groupId>de.hdm-stuttgart.de.sd1</groupId> <artifactId>diff</artifactId> <version>1.0</version> <packaging>jar</packaging> <name>Diff</name> - <url>http://www.mi.hdm-stuttgart.de/freedocs/topic/de.hdm_stuttgart.mi.swd1/index.html</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> </project> diff --git a/P/Sd1/Etest/Diff/Test/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/DiffTest.java b/P/Sd1/Etest/Diff/Test/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/DiffTest.java index 211dfddcd..0af65e704 100644 --- a/P/Sd1/Etest/Diff/Test/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/DiffTest.java +++ b/P/Sd1/Etest/Diff/Test/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/DiffTest.java @@ -16,7 +16,10 @@ public class DiffTest { /** * Test absolute maximal difference */ + + /* TODO: Remove me to activate testing @Test + */ public void testDiff() { assertEquals(0, Diff.maxDiff(0, 0, 0)); assertEquals(0, Diff.maxDiff(1, 1, 1)); diff --git a/P/Sd1/Etest/IntMax/Solution/pom.xml b/P/Sd1/Etest/IntMax/Solution/pom.xml index 66abd4c3e..777689a1f 100644 --- a/P/Sd1/Etest/IntMax/Solution/pom.xml +++ b/P/Sd1/Etest/IntMax/Solution/pom.xml @@ -2,38 +2,18 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>de.hdm-stuttgart.mi</groupId> + <artifactId>lecturenotes-pom</artifactId> + <version>1.0</version> + <relativePath>../../../../pom.xml</relativePath> + </parent> + <groupId>de.hdm_stuttgart.mi.sd1</groupId> <artifactId>intmax</artifactId> <version>2.0</version> <packaging>jar</packaging> <name>intmax</name> - <url>http://maven.apache.org</url> - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - </plugins> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> </project> diff --git a/P/Sd1/Etest/IntMax/Test/pom.xml b/P/Sd1/Etest/IntMax/Test/pom.xml index 66abd4c3e..7873c1937 100644 --- a/P/Sd1/Etest/IntMax/Test/pom.xml +++ b/P/Sd1/Etest/IntMax/Test/pom.xml @@ -2,38 +2,18 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>de.hdm-stuttgart.mi</groupId> + <artifactId>lecturenotes-pom</artifactId> + <version>1.0</version> + <relativePath>../../../../pom.xml</relativePath> + </parent> + <groupId>de.hdm_stuttgart.mi.sd1</groupId> <artifactId>intmax</artifactId> - <version>2.0</version> + <version>1.0</version> <packaging>jar</packaging> <name>intmax</name> - <url>http://maven.apache.org</url> - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - </plugins> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> </project> diff --git a/P/Sd1/Etest/MaxArrayDiff/Solution/pom.xml b/P/Sd1/Etest/MaxArrayDiff/Solution/pom.xml index d30df5882..a9f5e7e5f 100644 --- a/P/Sd1/Etest/MaxArrayDiff/Solution/pom.xml +++ b/P/Sd1/Etest/MaxArrayDiff/Solution/pom.xml @@ -2,57 +2,18 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>de.hdm-stuttgart.mi</groupId> + <artifactId>lecturenotes-pom</artifactId> + <version>1.0</version> + <relativePath>../../../../pom.xml</relativePath> + </parent> + <groupId>de.hdm-stuttgart.de.sd1</groupId> <artifactId>maxarraydiff</artifactId> <version>2.0</version> <packaging>jar</packaging> <name>vowel</name> - <url>http://www.mi.hdm-stuttgart.de/freedocs/topic/de.hdm_stuttgart.mi.swd1/index.html</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> </project> diff --git a/P/Sd1/Etest/MaxArrayDiff/Test/pom.xml b/P/Sd1/Etest/MaxArrayDiff/Test/pom.xml index d30df5882..b85286717 100644 --- a/P/Sd1/Etest/MaxArrayDiff/Test/pom.xml +++ b/P/Sd1/Etest/MaxArrayDiff/Test/pom.xml @@ -2,57 +2,18 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>de.hdm-stuttgart.mi</groupId> + <artifactId>lecturenotes-pom</artifactId> + <version>1.0</version> + <relativePath>../../../../pom.xml</relativePath> + </parent> + <groupId>de.hdm-stuttgart.de.sd1</groupId> <artifactId>maxarraydiff</artifactId> - <version>2.0</version> + <version>1.0</version> <packaging>jar</packaging> <name>vowel</name> - <url>http://www.mi.hdm-stuttgart.de/freedocs/topic/de.hdm_stuttgart.mi.swd1/index.html</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> </project> diff --git a/P/Sd1/Etest/MaxArrayDiff/Test/src/test/java/de/hdm_stuttgart/mi/sd1/CalcTest.java b/P/Sd1/Etest/MaxArrayDiff/Test/src/test/java/de/hdm_stuttgart/mi/sd1/CalcTest.java index bcd80606f..5a3fec0ea 100644 --- a/P/Sd1/Etest/MaxArrayDiff/Test/src/test/java/de/hdm_stuttgart/mi/sd1/CalcTest.java +++ b/P/Sd1/Etest/MaxArrayDiff/Test/src/test/java/de/hdm_stuttgart/mi/sd1/CalcTest.java @@ -7,24 +7,31 @@ import de.hdm_stuttgart.mi.sd1.maxarraydiff.Calc; @SuppressWarnings("javadoc") public class CalcTest { - - @Test public void testZero() { - Assert.assertEquals(0, Calc.maxArrayDiff(new int[]{})); - } - - @Test public void testOne() { - Assert.assertEquals(0, Calc.maxArrayDiff(new int[]{-3})); - } - - @Test public void testTwo() { - Assert.assertEquals(4, Calc.maxArrayDiff(new int[]{1, -3})); - } - - @Test public void testThree() { - Assert.assertEquals(13, Calc.maxArrayDiff(new int[]{1, 4, -9})); - } - - @Test public void testMulti() { - Assert.assertEquals(17, Calc.maxArrayDiff(new int[]{ -1, 0, -5, 3, 5, 12, 8})); - } + + // TODO: uncomment the following @test annotations + + // TODO @Test + public void testZero() { + Assert.assertEquals(0, Calc.maxArrayDiff(new int[]{})); + } + + // TODO @Test + public void testOne() { + Assert.assertEquals(0, Calc.maxArrayDiff(new int[]{-3})); + } + + // TODO @Test + public void testTwo() { + Assert.assertEquals(4, Calc.maxArrayDiff(new int[]{1, -3})); + } + + // TODO @Test + public void testThree() { + Assert.assertEquals(13, Calc.maxArrayDiff(new int[]{1, 4, -9})); + } + + // TODO @Test + public void testMulti() { + Assert.assertEquals(17, Calc.maxArrayDiff(new int[]{ -1, 0, -5, 3, 5, 12, 8})); + } } diff --git a/P/Sd1/Etest/Vowel/Solution/pom.xml b/P/Sd1/Etest/Vowel/Solution/pom.xml index 0a1d5433e..9ef16a7e7 100644 --- a/P/Sd1/Etest/Vowel/Solution/pom.xml +++ b/P/Sd1/Etest/Vowel/Solution/pom.xml @@ -2,57 +2,18 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>de.hdm-stuttgart.mi</groupId> + <artifactId>lecturenotes-pom</artifactId> + <version>1.0</version> + <relativePath>../../../../pom.xml</relativePath> + </parent> + <groupId>de.hdm-stuttgart.de.sd1</groupId> <artifactId>vowel</artifactId> <version>2.0</version> <packaging>jar</packaging> <name>vowel</name> - <url>http://www.mi.hdm-stuttgart.de/freedocs/topic/de.hdm_stuttgart.mi.swd1/index.html</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> </project> diff --git a/P/Sd1/Etest/Vowel/Test/pom.xml b/P/Sd1/Etest/Vowel/Test/pom.xml index 8f6147ca3..2f17e31c8 100644 --- a/P/Sd1/Etest/Vowel/Test/pom.xml +++ b/P/Sd1/Etest/Vowel/Test/pom.xml @@ -2,57 +2,18 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>de.hdm-stuttgart.mi</groupId> + <artifactId>lecturenotes-pom</artifactId> + <version>1.0</version> + <relativePath>../../../../pom.xml</relativePath> + </parent> + <groupId>de.hdm-stuttgart.de.sd1</groupId> <artifactId>vowel</artifactId> <version>1.0</version> <packaging>jar</packaging> <name>vowel</name> - <url>http://www.mi.hdm-stuttgart.de/freedocs/topic/de.hdm_stuttgart.mi.swd1/index.html</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> </project> diff --git a/P/Sd1/crab/V1/pom.xml b/P/Sd1/crab/V1/pom.xml index 97b9d7982..a06fd6ec8 100644 --- a/P/Sd1/crab/V1/pom.xml +++ b/P/Sd1/crab/V1/pom.xml @@ -1,31 +1,23 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>de.hdm-stuttgart.mi</groupId> + <artifactId>lecturenotes-pom</artifactId> + <version>1.0</version> + <relativePath>../../../pom.xml</relativePath> + </parent> + <groupId>de.hdm-stuttgart.mi.sd1</groupId> <artifactId>crab</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>crab</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> <build> <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> @@ -33,9 +25,9 @@ <version>2.9.1</version> <configuration> <linksource>true</linksource> - <links> - <link>http://www.greenfoot.org/files/javadoc/</link> - </links> + <links> + <link>http://www.greenfoot.org/files/javadoc/</link> + </links> <additionalDependencies> <additionalDependency> <groupId>de.hdm-stuttgart.mi</groupId> @@ -47,27 +39,14 @@ </plugin> </plugins> - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> </build> <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> <dependency> <groupId>de.hdm-stuttgart.mi</groupId> <artifactId>greenfoot</artifactId> <version>2.3.0</version> - </dependency> + </dependency> </dependencies> + </project> diff --git a/P/Sd1/crab/V2/pom.xml b/P/Sd1/crab/V2/pom.xml index f6f769afd..288e64c92 100644 --- a/P/Sd1/crab/V2/pom.xml +++ b/P/Sd1/crab/V2/pom.xml @@ -1,31 +1,23 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>de.hdm-stuttgart.mi</groupId> + <artifactId>lecturenotes-pom</artifactId> + <version>1.0</version> + <relativePath>../../../pom.xml</relativePath> + </parent> + <groupId>de.hdm-stuttgart.mi.sd1</groupId> <artifactId>crab</artifactId> <version>2.0</version> <packaging>jar</packaging> <name>crab</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> <build> <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> @@ -33,9 +25,9 @@ <version>2.9.1</version> <configuration> <linksource>true</linksource> - <links> - <link>http://www.greenfoot.org/files/javadoc/</link> - </links> + <links> + <link>http://www.greenfoot.org/files/javadoc/</link> + </links> <additionalDependencies> <additionalDependency> <groupId>de.hdm-stuttgart.mi</groupId> @@ -43,33 +35,19 @@ <version>2.3.0</version> </additionalDependency> </additionalDependencies> - + </configuration> </plugin> </plugins> - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> </build> <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> <dependency> - <groupId>de.hdm-stuttgart.mi</groupId> - <artifactId>greenfoot</artifactId> - <version>2.3.0</version> + <groupId>de.hdm-stuttgart.mi</groupId> + <artifactId>greenfoot</artifactId> + <version>2.3.0</version> </dependency> </dependencies> diff --git a/P/Sd1/fraction/V05/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/FractionTest.java b/P/Sd1/fraction/V05/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/FractionTest.java index 7955fc4bc..939e5e33f 100644 --- a/P/Sd1/fraction/V05/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/FractionTest.java +++ b/P/Sd1/fraction/V05/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/FractionTest.java @@ -4,11 +4,15 @@ import static org.junit.Assert.*; import org.junit.Test; +@SuppressWarnings("javadoc") public class FractionTest { /** * Sums and products of fractions */ + + /* TODO: uncomment me for test activation @Test + */ public void testAdditionMultiply() { // Input final Fraction diff --git a/P/Sd1/life/V1/pom.xml b/P/Sd1/life/V1/pom.xml index 113fab5f2..b6e48a323 100644 --- a/P/Sd1/life/V1/pom.xml +++ b/P/Sd1/life/V1/pom.xml @@ -1,31 +1,23 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>de.hdm-stuttgart.mi</groupId> + <artifactId>lecturenotes-pom</artifactId> + <version>1.0</version> + <relativePath>../../../pom.xml</relativePath> + </parent> + <groupId>de.hdm-stuttgart.de.sd1</groupId> <artifactId>life</artifactId> - <version>3.0</version> + <version>1.0</version> <packaging>jar</packaging> <name>Game of Life</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> <build> <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> @@ -36,40 +28,28 @@ <links> <link>http://www.greenfoot.org/files/javadoc/</link> </links> -<!-- - <additionalDependencies> - <additionalDependency> + <!-- + <additionalDependencies> + <additionalDependency> <groupId>org.greenfoot</groupId> <artifactId>greenfoot-core</artifactId> <version>2.5</version> - </additionalDependency> - </additionalDependencies> - --> + </additionalDependency> + </additionalDependencies> + --> </configuration> </plugin> </plugins> - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> </build> <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> + <dependency> <groupId>de.hdm-stuttgart.mi</groupId> - <artifactId>greenfoot</artifactId> - <version>2.3.0</version> - </dependency> + <artifactId>greenfoot</artifactId> + <version>2.3.0</version> + </dependency> + </dependencies> </project> diff --git a/P/Sd1/life/V3/pom.xml b/P/Sd1/life/V3/pom.xml index 3de816165..ef4820cdf 100644 --- a/P/Sd1/life/V3/pom.xml +++ b/P/Sd1/life/V3/pom.xml @@ -2,30 +2,22 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>de.hdm-stuttgart.mi</groupId> + <artifactId>lecturenotes-pom</artifactId> + <version>1.0</version> + <relativePath>../../../pom.xml</relativePath> + </parent> + <groupId>de.hdm-stuttgart.de.sd1</groupId> <artifactId>life</artifactId> <version>3.0</version> <packaging>jar</packaging> <name>Game of Life</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> <build> <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> @@ -48,27 +40,15 @@ </plugin> </plugins> - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> </build> <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> + <dependency> <groupId>de.hdm-stuttgart.mi</groupId> <artifactId>greenfoot</artifactId> <version>2.3.0</version> </dependency> + </dependencies> </project> diff --git a/P/Sda2/JaxRs/Intro/pom.xml b/P/Sda2/JaxRs/Intro/pom.xml index 128bcffca..b8b3f748b 100644 --- a/P/Sda2/JaxRs/Intro/pom.xml +++ b/P/Sda2/JaxRs/Intro/pom.xml @@ -1,135 +1,129 @@ <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - <groupId>de.hdm-stuttgart.mi.sda2</groupId> - <artifactId>jaxrs-intro</artifactId> - <version>2.0</version> - <packaging>war</packaging> - <name>jaxrs-intro</name> - <description /> + <modelVersion>4.0.0</modelVersion> - <properties> - <resteasy.version>3.0.10.Final</resteasy.version> - </properties> + <parent> + <groupId>de.hdm-stuttgart.mi</groupId> + <artifactId>lecturenotes-pom</artifactId> + <version>1.0</version> + <relativePath>../../../pom.xml</relativePath> + </parent> - <dependencies> - <dependency> - <groupId>org.jboss.resteasy</groupId> - <artifactId>resteasy-jaxrs</artifactId> - <version>${resteasy.version}</version> - </dependency> - <dependency> - <groupId>org.jboss.resteasy</groupId> - <artifactId>resteasy-client</artifactId> - <version>${resteasy.version}</version> - </dependency> - <dependency> - <groupId>org.jboss.resteasy</groupId> - <artifactId>async-http-servlet-3.0</artifactId> - <version>${resteasy.version}</version> - </dependency> - <dependency> - <groupId>org.jboss.resteasy</groupId> - <artifactId>jaxrs-api</artifactId> - <version>${resteasy.version}</version> - </dependency> - <dependency> - <groupId>org.jboss.resteasy</groupId> - <artifactId>resteasy-servlet-initializer</artifactId> - <version>${resteasy.version}</version> - </dependency> - <dependency> - <groupId>org.jboss.resteasy</groupId> - <artifactId>resteasy-jaxb-provider</artifactId> - <version>${resteasy.version}</version> - </dependency> - <dependency> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-http</artifactId> - <version>9.2.7.v20150116</version> - </dependency> + <groupId>de.hdm-stuttgart.mi.sda2</groupId> + <artifactId>jaxrs-intro</artifactId> + <version>2.0</version> + <packaging>war</packaging> + <name>jaxrs-intro</name> - <!-- --> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.1</version> - <scope>test</scope> - </dependency> - </dependencies> + <properties> + <resteasy.version>3.0.10.Final</resteasy.version> + </properties> - <build> - <finalName>ex03_1</finalName> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <configuration> - <skip>true</skip> - </configuration> - <executions> - <execution> - <id>surefire-it</id> - <phase>integration-test</phase> - <goals> - <goal>test</goal> - </goals> - <configuration> - <skip>false</skip> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.mortbay.jetty</groupId> - <artifactId>jetty-maven-plugin</artifactId> - <version>8.1.13.v20130916</version> - <configuration> - <webApp> - <contextPath>/</contextPath> - </webApp> - <scanIntervalSeconds>2</scanIntervalSeconds> - <stopKey>foo</stopKey> - <stopPort>9999</stopPort> - </configuration> - <executions> - <execution> - <id>start-jetty</id> - <phase>pre-integration-test</phase> - <goals> - <goal>run</goal> - </goals> - <configuration> - <scanIntervalSeconds>0</scanIntervalSeconds> - <daemon>true</daemon> - </configuration> - </execution> - <execution> - <id>stop-jetty</id> - <phase>post-integration-test</phase> - <goals> - <goal>stop</goal> - </goals> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-deploy-plugin</artifactId> - <configuration> - <skip>true</skip> - </configuration> - </plugin> - </plugins> - </build> + <dependencies> + <dependency> + <groupId>org.jboss.resteasy</groupId> + <artifactId>resteasy-jaxrs</artifactId> + <version>${resteasy.version}</version> + </dependency> + <dependency> + <groupId>org.jboss.resteasy</groupId> + <artifactId>resteasy-client</artifactId> + <version>${resteasy.version}</version> + </dependency> + <dependency> + <groupId>org.jboss.resteasy</groupId> + <artifactId>async-http-servlet-3.0</artifactId> + <version>${resteasy.version}</version> + </dependency> + <dependency> + <groupId>org.jboss.resteasy</groupId> + <artifactId>jaxrs-api</artifactId> + <version>${resteasy.version}</version> + </dependency> + <dependency> + <groupId>org.jboss.resteasy</groupId> + <artifactId>resteasy-servlet-initializer</artifactId> + <version>${resteasy.version}</version> + </dependency> + <dependency> + <groupId>org.jboss.resteasy</groupId> + <artifactId>resteasy-jaxb-provider</artifactId> + <version>${resteasy.version}</version> + </dependency> + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-http</artifactId> + <version>9.2.7.v20150116</version> + </dependency> + + </dependencies> + + <build> + <finalName>ex03_1</finalName> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>2.18.1</version> + <configuration> + <skip>true</skip> + </configuration> + <executions> + <execution> + <id>surefire-it</id> + <phase>integration-test</phase> + <goals> + <goal>test</goal> + </goals> + <configuration> + <skip>false</skip> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jetty-maven-plugin</artifactId> + <version>8.1.16.v20140903</version> + <configuration> + <webApp> + <contextPath>/</contextPath> + </webApp> + <scanIntervalSeconds>2</scanIntervalSeconds> + <stopKey>foo</stopKey> + <stopPort>9999</stopPort> + </configuration> + <executions> + <execution> + <id>start-jetty</id> + <phase>pre-integration-test</phase> + <goals> + <goal>run</goal> + </goals> + <configuration> + <scanIntervalSeconds>0</scanIntervalSeconds> + <daemon>true</daemon> + </configuration> + </execution> + <execution> + <id>stop-jetty</id> + <phase>post-integration-test</phase> + <goals> + <goal>stop</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-deploy-plugin</artifactId> + <version>2.8.2</version> + <configuration> + <skip>true</skip> + </configuration> + </plugin> + </plugins> + </build> </project> diff --git a/P/Sda2/Jpa/Cd/pom.xml b/P/Sda2/Jpa/Cd/pom.xml index f5f917f89..758ca45ff 100644 --- a/P/Sda2/Jpa/Cd/pom.xml +++ b/P/Sda2/Jpa/Cd/pom.xml @@ -1,101 +1,94 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> - <groupId>de.hdm-stuttgart.mi.sda2.jpa</groupId> - <artifactId>Cd</artifactId> - <version>0.9</version> - <packaging>jar</packaging> + <parent> + <groupId>de.hdm-stuttgart.mi</groupId> + <artifactId>lecturenotes-pom</artifactId> + <version>1.0</version> - <name>Cd</name> + <relativePath>../../../pom.xml</relativePath> + </parent> - <!--Fixme: Add a sensible project related domain here --> - <url>http://somedomain.org</url> + <groupId>de.hdm-stuttgart.mi.sda2.jpa</groupId> + <artifactId>Cd</artifactId> + <version>0.9</version> + <packaging>jar</packaging> - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - </properties> + <name>Cd</name> - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> + <dependencies> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-api</artifactId> + <version>2.1</version> + </dependency> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-core</artifactId> + <version>2.1</version> + </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-api</artifactId> - <version>2.1</version> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-core</artifactId> - <version>2.1</version> - </dependency> + <dependency> + <groupId>mysql</groupId> + <artifactId>mysql-connector-java</artifactId> + <version>5.1.33</version> + </dependency> - <dependency> - <groupId>mysql</groupId> - <artifactId>mysql-connector-java</artifactId> - <version>5.1.33</version> - </dependency> + <dependency> + <groupId>org.eclipse.persistence</groupId> + <artifactId>eclipselink</artifactId> + <version>2.5.0</version> + </dependency> - <dependency> - <groupId>org.eclipse.persistence</groupId> - <artifactId>eclipselink</artifactId> - <version>2.5.0</version> - </dependency> + <!-- <dependency> <groupId>org.eclipse.persistence</groupId> <artifactId>javax.persistence</artifactId> + <version>2.0.3</version> </dependency> --> - <!-- <dependency> <groupId>org.eclipse.persistence</groupId> <artifactId>javax.persistence</artifactId> - <version>2.0.3</version> </dependency> --> + </dependencies> - </dependencies> + <build> + <plugins> - <build> - <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + <version>2.3</version> + <configuration> + <transformers> + <transformer + implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> + <manifestEntries> + <Main-Class>de.hdm_stuttgart.mi.sda2.jpa.cd.App</Main-Class> + </manifestEntries> + </transformer> + </transformers> + </configuration> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>shade</goal> + </goals> + </execution> + </executions> + </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>3.1</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> + <plugin> + <artifactId>maven-clean-plugin</artifactId> + <version>2.6.1</version> + <configuration> + <filesets> + <fileset> + <directory>.</directory> + <includes> + <include>dependency-reduced-pom.xml</include> + </includes> + <followSymlinks>false</followSymlinks> + </fileset> + </filesets> + </configuration> + </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.10.1</version> - <configuration /> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-shade-plugin</artifactId> - <version>2.3</version> - <configuration> - <transformers> - <transformer - implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> - <manifestEntries> - <Main-Class>de.hdm_stuttgart.mi.sda2.jpa.cd.App</Main-Class> - </manifestEntries> - </transformer> - </transformers> - </configuration> - <executions> - <execution> - <phase>package</phase> - <goals> - <goal>shade</goal> - </goals> - </execution> - </executions> - </plugin> - - </plugins> - </build> + </plugins> + </build> </project> diff --git a/P/Sda2/Jpa/HibernateCacheDemo/pom.xml b/P/Sda2/Jpa/HibernateCacheDemo/pom.xml index b017ee5b6..2d4631a03 100644 --- a/P/Sda2/Jpa/HibernateCacheDemo/pom.xml +++ b/P/Sda2/Jpa/HibernateCacheDemo/pom.xml @@ -1,62 +1,78 @@ <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <groupId>com.mastertheboss</groupId> - <artifactId>HibernateCacheDemo</artifactId> - <version>1.0-SNAPSHOT</version> - - <name>HibernateCacheDemo</name> - <repositories> - <repository> - <id>EclipseLink Repo</id> - <url>http://download.eclipse.org/rt/eclipselink/maven.repo</url> - <name>EclipseLink Repo</name> - </repository> - </repositories> - <dependencies> - <dependency> - <groupId>mysql</groupId> - <artifactId>mysql-connector-java</artifactId> - <version>5.1.33</version> - </dependency> - -<!-- - <dependency> - <groupId>org.hibernate.javax.persistence</groupId> - <artifactId>hibernate-jpa-2.1-api</artifactId> - <version>1.0.0.Final</version> - </dependency> - - <dependency> - <groupId>net.sf.ehcache</groupId> - <artifactId>ehcache</artifactId> - <version>2.8.3</version> + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>de.hdm-stuttgart.mi</groupId> + <artifactId>lecturenotes-pom</artifactId> + <version>1.0</version> + + <relativePath>../../../pom.xml</relativePath> + </parent> + + <groupId>de.hdm-stuttgart.mi.sda2</groupId> + <artifactId>HibernateCacheDemo</artifactId> + <version>1.0-SNAPSHOT</version> + + <name>HibernateCacheDemo</name> + + <repositories> + + <repository> + <id>EclipseLink Repo</id> + <url>http://download.eclipse.org/rt/eclipselink/maven.repo</url> + <name>EclipseLink Repo</name> + </repository> + + </repositories> + + <dependencies> + + <dependency> + <groupId>mysql</groupId> + <artifactId>mysql-connector-java</artifactId> + <version>5.1.33</version> + </dependency> + + <!-- + <dependency> + <groupId>org.hibernate.javax.persistence</groupId> + <artifactId>hibernate-jpa-2.1-api</artifactId> + <version>1.0.0.Final</version> </dependency> - --> - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-core</artifactId> - <version>4.2.16.Final</version> - </dependency> - - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-entitymanager</artifactId> - <version>4.2.16.Final</version> - </dependency> - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-ehcache</artifactId> - <version>4.2.16.Final</version> - </dependency> - - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-log4j12</artifactId> - <version>1.7.9</version> - </dependency> - - </dependencies> + <dependency> + <groupId>net.sf.ehcache</groupId> + <artifactId>ehcache</artifactId> + <version>2.8.3</version> + </dependency> + --> + + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-core</artifactId> + <version>4.2.16.Final</version> + </dependency> + + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-entitymanager</artifactId> + <version>4.2.16.Final</version> + </dependency> + + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-ehcache</artifactId> + <version>4.2.16.Final</version> + </dependency> + + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + <version>1.7.9</version> + </dependency> + + </dependencies> + </project> diff --git a/P/Sda2/Jpa/Inherit/Tpch/pom.xml b/P/Sda2/Jpa/Inherit/Tpch/pom.xml index 36a1be96b..4e3a64261 100644 --- a/P/Sda2/Jpa/Inherit/Tpch/pom.xml +++ b/P/Sda2/Jpa/Inherit/Tpch/pom.xml @@ -1,98 +1,92 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> - <groupId>de.hdm-stuttgart.mi.sda2.jpa</groupId> - <artifactId>billing_tpch</artifactId> - <version>0.9</version> - <packaging>jar</packaging> + <parent> + <groupId>de.hdm-stuttgart.mi</groupId> + <artifactId>lecturenotes-pom</artifactId> + <version>1.0</version> - <name>billing_tpch</name> + <relativePath>../../../../pom.xml</relativePath> + </parent> - <!--Fixme: Add a sensible project related domain here --> - <url>http://somedomain.org</url> + <groupId>de.hdm-stuttgart.mi.sda2.jpa</groupId> + <artifactId>billing_tpch</artifactId> + <version>0.9</version> + <packaging>jar</packaging> - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - </properties> + <name>billing_tpch</name> - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> + <dependencies> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-api</artifactId> - <version>2.1</version> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-core</artifactId> - <version>2.1</version> - </dependency> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-api</artifactId> + <version>2.1</version> + </dependency> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-core</artifactId> + <version>2.1</version> + </dependency> - <dependency> - <groupId>mysql</groupId> - <artifactId>mysql-connector-java</artifactId> - <version>5.1.33</version> - </dependency> + <dependency> + <groupId>mysql</groupId> + <artifactId>mysql-connector-java</artifactId> + <version>5.1.33</version> + </dependency> - <dependency> - <groupId>org.eclipse.persistence</groupId> - <artifactId>eclipselink</artifactId> - <version>2.5.0</version> - </dependency> + <dependency> + <groupId>org.eclipse.persistence</groupId> + <artifactId>eclipselink</artifactId> + <version>2.5.0</version> + </dependency> - </dependencies> + </dependencies> - <build> - <plugins> + <build> + <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>3.1</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + <version>2.3</version> + <configuration> + <transformers> + <transformer + implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> + <manifestEntries> + <Main-Class>de.hdm_stuttgart.mi.sda2.jpa.cd.App</Main-Class> + </manifestEntries> + </transformer> + </transformers> + </configuration> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>shade</goal> + </goals> + </execution> + </executions> + </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.10.1</version> - <configuration /> - </plugin> + <plugin> + <artifactId>maven-clean-plugin</artifactId> + <version>2.6.1</version> + <configuration> + <filesets> + <fileset> + <directory>.</directory> + <includes> + <include>dependency-reduced-pom.xml</include> + </includes> + <followSymlinks>false</followSymlinks> + </fileset> + </filesets> + </configuration> + </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-shade-plugin</artifactId> - <version>2.3</version> - <configuration> - <transformers> - <transformer - implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> - <manifestEntries> - <Main-Class>de.hdm_stuttgart.mi.sda2.jpa.cd.App</Main-Class> - </manifestEntries> - </transformer> - </transformers> - </configuration> - <executions> - <execution> - <phase>package</phase> - <goals> - <goal>shade</goal> - </goals> - </execution> - </executions> - </plugin> - - </plugins> - </build> + </plugins> + </build> </project> diff --git a/P/Sda2/Jpa/University/pom.xml b/P/Sda2/Jpa/University/pom.xml index 6ab35d427..adc0f1c04 100644 --- a/P/Sda2/Jpa/University/pom.xml +++ b/P/Sda2/Jpa/University/pom.xml @@ -1,98 +1,91 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> - <groupId>de.hdm-stuttgart.mi.sda2.jpa</groupId> - <artifactId>university</artifactId> - <version>0.9</version> - <packaging>jar</packaging> + <parent> + <groupId>de.hdm-stuttgart.mi</groupId> + <artifactId>lecturenotes-pom</artifactId> + <version>1.0</version> - <name>university</name> + <relativePath>../../../pom.xml</relativePath> + </parent> - <!--Fixme: Add a sensible project related domain here --> - <url>http://somedomain.org</url> + <groupId>de.hdm-stuttgart.mi.sda2.jpa</groupId> + <artifactId>university</artifactId> + <version>0.9</version> + <packaging>jar</packaging> - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - </properties> + <name>university</name> - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> + <dependencies> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-api</artifactId> - <version>2.1</version> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-core</artifactId> - <version>2.1</version> - </dependency> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-api</artifactId> + <version>2.1</version> + </dependency> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-core</artifactId> + <version>2.1</version> + </dependency> - <dependency> - <groupId>mysql</groupId> - <artifactId>mysql-connector-java</artifactId> - <version>5.1.33</version> - </dependency> + <dependency> + <groupId>mysql</groupId> + <artifactId>mysql-connector-java</artifactId> + <version>5.1.33</version> + </dependency> - <dependency> - <groupId>org.eclipse.persistence</groupId> - <artifactId>eclipselink</artifactId> - <version>2.5.0</version> - </dependency> + <dependency> + <groupId>org.eclipse.persistence</groupId> + <artifactId>eclipselink</artifactId> + <version>2.5.0</version> + </dependency> - </dependencies> + </dependencies> - <build> - <plugins> + <build> + <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>3.1</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + <version>2.3</version> + <configuration> + <transformers> + <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> + <manifestEntries> + <Main-Class>de.hdm_stuttgart.mi.sda2.jpa.cd.App</Main-Class> + </manifestEntries> + </transformer> + </transformers> + </configuration> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>shade</goal> + </goals> + </execution> + </executions> + </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.10.1</version> - <configuration /> - </plugin> + <plugin> + <artifactId>maven-clean-plugin</artifactId> + <version>2.6.1</version> + <configuration> + <filesets> + <fileset> + <directory>.</directory> + <includes> + <include>dependency-reduced-pom.xml</include> + </includes> + <followSymlinks>false</followSymlinks> + </fileset> + </filesets> + </configuration> + </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-shade-plugin</artifactId> - <version>2.3</version> - <configuration> - <transformers> - <transformer - implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> - <manifestEntries> - <Main-Class>de.hdm_stuttgart.mi.sda2.jpa.cd.App</Main-Class> - </manifestEntries> - </transformer> - </transformers> - </configuration> - <executions> - <execution> - <phase>package</phase> - <goals> - <goal>shade</goal> - </goals> - </execution> - </executions> - </plugin> - - </plugins> - </build> + </plugins> + </build> </project> diff --git a/P/Sda2/Register/pom.xml b/P/Sda2/Register/pom.xml index 7b7447cb9..23c9898ae 100644 --- a/P/Sda2/Register/pom.xml +++ b/P/Sda2/Register/pom.xml @@ -1,235 +1,232 @@ <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - <groupId>de.hdm_stuttgart.mi</groupId> - <artifactId>goikvaadin</artifactId> - <packaging>war</packaging> - <version>1.0</version> - <name>Vaadin Web Application</name> + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <vaadin.version>7.3.0</vaadin.version> - <vaadin.plugin.version>${vaadin.version}</vaadin.plugin.version> - </properties> - <repositories> - <repository> - <id>vaadin-addons</id> - <url>http://maven.vaadin.com/vaadin-addons</url> - </repository> - <repository> - <id>vaadin-snapshots</id> - <url>http://oss.sonatype.org/content/repositories/vaadin-snapshots/</url> - <releases> - <enabled>false</enabled> - </releases> - <snapshots> - <enabled>true</enabled> - </snapshots> - </repository> - </repositories> - <pluginRepositories> - <pluginRepository> - <id>vaadin-snapshots</id> - <url>http://oss.sonatype.org/content/repositories/vaadin-snapshots/</url> - <releases> - <enabled>false</enabled> - </releases> - <snapshots> - <enabled>true</enabled> - </snapshots> - </pluginRepository> - </pluginRepositories> - <dependencies> - <dependency> - <groupId>com.vaadin</groupId> - <artifactId>vaadin-server</artifactId> - <version>${vaadin.version}</version> - </dependency> - <dependency> - <groupId>com.vaadin</groupId> - <artifactId>vaadin-client-compiled</artifactId> - <version>${vaadin.version}</version> - </dependency> - <!-- Needed when using the widgetset optimizer (custom ConnectorBundleLoaderFactory). - For widgetset compilation, vaadin-client-compiler is automatically added - on the compilation classpath by vaadin-maven-plugin so normally there is - no need for an explicit dependency. --> - <!-- <dependency> <groupId>com.vaadin</groupId> <artifactId>vaadin-client-compiler</artifactId> - <version>${vaadin.version}</version> <scope>provided</scope> </dependency> --> - <dependency> - <groupId>com.vaadin</groupId> - <artifactId>vaadin-client</artifactId> - <version>${vaadin.version}</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>com.vaadin</groupId> - <artifactId>vaadin-push</artifactId> - <version>${vaadin.version}</version> - </dependency> - <dependency> - <groupId>com.vaadin</groupId> - <artifactId>vaadin-themes</artifactId> - <version>${vaadin.version}</version> - </dependency> - <dependency> - <groupId>javax.servlet</groupId> - <artifactId>javax.servlet-api</artifactId> - <version>3.0.1</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-validator</artifactId> - <version>4.3.2.Final</version> - </dependency> - <dependency> - <groupId>mysql</groupId> - <artifactId>mysql-connector-java</artifactId> - <version>5.1.32</version> - </dependency> - </dependencies> + <parent> + <groupId>de.hdm-stuttgart.mi</groupId> + <artifactId>lecturenotes-pom</artifactId> + <version>1.0</version> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.10.1</version> - <configuration /> - </plugin> - <!-- As we are doing "inplace" GWT compilation, ensure the widgetset --> - <!-- directory is cleaned properly --> - <plugin> - <artifactId>maven-clean-plugin</artifactId> - <version>2.4.1</version> - <configuration> - <filesets> - <fileset> - <directory>src/main/webapp/VAADIN/widgetsets</directory> - </fileset> - </filesets> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-war-plugin</artifactId> - <version>2.2</version> - <configuration> - <failOnMissingWebXml>false</failOnMissingWebXml> - </configuration> - </plugin> - <plugin> - <groupId>com.vaadin</groupId> - <artifactId>vaadin-maven-plugin</artifactId> - <version>${vaadin.plugin.version}</version> - <configuration> - <extraJvmArgs>-Xmx512M -Xss1024k</extraJvmArgs> - <!-- <runTarget>mobilemail</runTarget> --> - <!-- We are doing "inplace" but into subdir VAADIN/widgetsets. This - way compatible with Vaadin eclipse plugin. --> - <webappDirectory>${basedir}/src/main/webapp/VAADIN/widgetsets - </webappDirectory> - <hostedWebapp>${basedir}/src/main/webapp/VAADIN/widgetsets - </hostedWebapp> - <!-- Most Vaadin apps don't need this stuff, guide that to target --> - <persistentunitcachedir>${project.build.directory}</persistentunitcachedir> - <deploy>${project.build.directory}/gwt-deploy</deploy> - <!-- Compile report is not typically needed either, saves hunreds of - mb disk --> - <compileReport>false</compileReport> - <noServer>true</noServer> - <!-- Remove draftCompile when project is ready --> - <draftCompile>false</draftCompile> + <relativePath>../../pom.xml</relativePath> + </parent> - <style>OBF</style> - <strict>true</strict> - <runTarget>http://localhost:8080/</runTarget> - </configuration> - <executions> - <execution> - <configuration> - <!-- if you don't specify any modules, the plugin will find them --> - <!-- <modules> <module>com.vaadin.demo.mobilemail.gwt.ColorPickerWidgetSet</module> - </modules> --> - </configuration> - <goals> - <goal>clean</goal> - <goal>resources</goal> - <goal>update-theme</goal> - <goal>update-widgetset</goal> - <goal>compile-theme</goal> - <goal>compile</goal> - </goals> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.mortbay.jetty</groupId> - <artifactId>jetty-maven-plugin</artifactId> - </plugin> - </plugins> - <pluginManagement> - <plugins> - <!--This plugin's configuration is used to store Eclipse m2e settings - only. It has no influence on the Maven build itself. --> - <plugin> - <groupId>org.eclipse.m2e</groupId> - <artifactId>lifecycle-mapping</artifactId> - <version>1.0.0</version> - <configuration> - <lifecycleMappingMetadata> - <pluginExecutions> - <pluginExecution> - <pluginExecutionFilter> - <groupId>com.vaadin</groupId> - <artifactId> - vaadin-maven-plugin - </artifactId> - <versionRange> - [7.3.0,) - </versionRange> - <goals> - <goal>resources</goal> - <goal>update-widgetset</goal> - <goal>compile</goal> - <goal>update-theme</goal> - <goal>compile-theme</goal> - </goals> - </pluginExecutionFilter> - <action> - <ignore></ignore> - </action> - </pluginExecution> - </pluginExecutions> - </lifecycleMappingMetadata> - </configuration> - </plugin> - <plugin> - <artifactId>maven-eclipse-plugin</artifactId> - <configuration> - <wtpversion>2.0</wtpversion> - <additionalProjectnatures> - <projectnature>com.vaadin.integration.eclipse.widgetsetNature</projectnature> - </additionalProjectnatures> - <additionalBuildcommands> - <buildcommand>com.vaadin.integration.eclipse.widgetsetBuilder</buildcommand> - <buildcommand>com.vaadin.integration.eclipse.addonStylesBuilder</buildcommand> - </additionalBuildcommands> - </configuration> - </plugin> - </plugins> - </pluginManagement> - </build> + <groupId>de.hdm_stuttgart.mi</groupId> + <artifactId>goikvaadin</artifactId> + <packaging>war</packaging> + <version>1.0</version> + <name>Vaadin Web Application</name> + + <properties> + <vaadin.version>7.3.0</vaadin.version> + <vaadin.plugin.version>${vaadin.version}</vaadin.plugin.version> + </properties> + + <repositories> + <repository> + <id>vaadin-addons</id> + <url>http://maven.vaadin.com/vaadin-addons</url> + </repository> + <repository> + <id>vaadin-snapshots</id> + <url>http://oss.sonatype.org/content/repositories/vaadin-snapshots/</url> + <releases> + <enabled>false</enabled> + </releases> + <snapshots> + <enabled>true</enabled> + </snapshots> + </repository> + </repositories> + <pluginRepositories> + <pluginRepository> + <id>vaadin-snapshots</id> + <url>http://oss.sonatype.org/content/repositories/vaadin-snapshots/</url> + <releases> + <enabled>false</enabled> + </releases> + <snapshots> + <enabled>true</enabled> + </snapshots> + </pluginRepository> + </pluginRepositories> + <dependencies> + <dependency> + <groupId>com.vaadin</groupId> + <artifactId>vaadin-server</artifactId> + <version>${vaadin.version}</version> + </dependency> + <dependency> + <groupId>com.vaadin</groupId> + <artifactId>vaadin-client-compiled</artifactId> + <version>${vaadin.version}</version> + </dependency> + <!-- Needed when using the widgetset optimizer (custom ConnectorBundleLoaderFactory). + For widgetset compilation, vaadin-client-compiler is automatically added + on the compilation classpath by vaadin-maven-plugin so normally there is + no need for an explicit dependency. --> + <!-- <dependency> <groupId>com.vaadin</groupId> <artifactId>vaadin-client-compiler</artifactId> + <version>${vaadin.version}</version> <scope>provided</scope> </dependency> --> + <dependency> + <groupId>com.vaadin</groupId> + <artifactId>vaadin-client</artifactId> + <version>${vaadin.version}</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>com.vaadin</groupId> + <artifactId>vaadin-push</artifactId> + <version>${vaadin.version}</version> + </dependency> + <dependency> + <groupId>com.vaadin</groupId> + <artifactId>vaadin-themes</artifactId> + <version>${vaadin.version}</version> + </dependency> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>javax.servlet-api</artifactId> + <version>3.0.1</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-validator</artifactId> + <version>4.3.2.Final</version> + </dependency> + <dependency> + <groupId>mysql</groupId> + <artifactId>mysql-connector-java</artifactId> + <version>5.1.32</version> + </dependency> + + </dependencies> + + <build> + <plugins> + <!-- As we are doing "inplace" GWT compilation, ensure the widgetset --> + <!-- directory is cleaned properly --> + <plugin> + <artifactId>maven-clean-plugin</artifactId> + <version>2.4.1</version> + <configuration> + <filesets> + <fileset> + <directory>src/main/webapp/VAADIN/widgetsets</directory> + </fileset> + </filesets> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-war-plugin</artifactId> + <version>2.2</version> + <configuration> + <failOnMissingWebXml>false</failOnMissingWebXml> + </configuration> + </plugin> + <plugin> + <groupId>com.vaadin</groupId> + <artifactId>vaadin-maven-plugin</artifactId> + <version>${vaadin.plugin.version}</version> + <configuration> + <extraJvmArgs>-Xmx512M -Xss1024k</extraJvmArgs> + <!-- <runTarget>mobilemail</runTarget> --> + <!-- We are doing "inplace" but into subdir VAADIN/widgetsets. This + way compatible with Vaadin eclipse plugin. --> + <webappDirectory>${basedir}/src/main/webapp/VAADIN/widgetsets + </webappDirectory> + <hostedWebapp>${basedir}/src/main/webapp/VAADIN/widgetsets + </hostedWebapp> + <!-- Most Vaadin apps don't need this stuff, guide that to target --> + <persistentunitcachedir>${project.build.directory}</persistentunitcachedir> + <deploy>${project.build.directory}/gwt-deploy</deploy> + <!-- Compile report is not typically needed either, saves hunreds of + mb disk --> + <compileReport>false</compileReport> + <noServer>true</noServer> + <!-- Remove draftCompile when project is ready --> + <draftCompile>false</draftCompile> + + <style>OBF</style> + <strict>true</strict> + <runTarget>http://localhost:8080/</runTarget> + </configuration> + <executions> + <execution> + <configuration> + <!-- if you don't specify any modules, the plugin will find them --> + <!-- <modules> <module>com.vaadin.demo.mobilemail.gwt.ColorPickerWidgetSet</module> + </modules> --> + </configuration> + <goals> + <goal>clean</goal> + <goal>resources</goal> + <goal>update-theme</goal> + <goal>update-widgetset</goal> + <goal>compile-theme</goal> + <goal>compile</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jetty-maven-plugin</artifactId> + <version>8.1.16.v20140903</version> + </plugin> + </plugins> + <pluginManagement> + <plugins> + <!--This plugin's configuration is used to store Eclipse m2e settings + only. It has no influence on the Maven build itself. --> + <plugin> + <groupId>org.eclipse.m2e</groupId> + <artifactId>lifecycle-mapping</artifactId> + <version>1.0.0</version> + <configuration> + <lifecycleMappingMetadata> + <pluginExecutions> + <pluginExecution> + <pluginExecutionFilter> + <groupId>com.vaadin</groupId> + <artifactId> + vaadin-maven-plugin + </artifactId> + <versionRange> + [7.3.0,) + </versionRange> + <goals> + <goal>resources</goal> + <goal>update-widgetset</goal> + <goal>compile</goal> + <goal>update-theme</goal> + <goal>compile-theme</goal> + </goals> + </pluginExecutionFilter> + <action> + <ignore></ignore> + </action> + </pluginExecution> + </pluginExecutions> + </lifecycleMappingMetadata> + </configuration> + </plugin> + <plugin> + <artifactId>maven-eclipse-plugin</artifactId> + <configuration> + <wtpversion>2.0</wtpversion> + <additionalProjectnatures> + <projectnature>com.vaadin.integration.eclipse.widgetsetNature</projectnature> + </additionalProjectnatures> + <additionalBuildcommands> + <buildcommand>com.vaadin.integration.eclipse.widgetsetBuilder</buildcommand> + <buildcommand>com.vaadin.integration.eclipse.addonStylesBuilder</buildcommand> + </additionalBuildcommands> + </configuration> + </plugin> + </plugins> + </pluginManagement> + </build> </project> diff --git a/P/Sda2/UnixSqlLdap/Jndi/Rdbms2Ldap/pom.xml b/P/Sda2/UnixSqlLdap/Jndi/Rdbms2Ldap/pom.xml index 11b2eb257..5a6dfd7b3 100644 --- a/P/Sda2/UnixSqlLdap/Jndi/Rdbms2Ldap/pom.xml +++ b/P/Sda2/UnixSqlLdap/Jndi/Rdbms2Ldap/pom.xml @@ -1,64 +1,41 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> - <groupId>de.hdm-stuttgart.mi.sda2</groupId> - <artifactId>rdbms2ldap</artifactId> - <version>0.9</version> - <packaging>jar</packaging> + <parent> + <groupId>de.hdm-stuttgart.mi</groupId> + <artifactId>lecturenotes-pom</artifactId> + <version>1.0</version> + <relativePath>../../../../pom.xml</relativePath> + </parent> - <name>rdbms2ldap</name> + <groupId>de.hdm-stuttgart.mi.sda2</groupId> + <artifactId>rdbms2ldap</artifactId> + <version>0.9</version> + <packaging>jar</packaging> - <!--Fixme: Add a sensible project related domain here --> - <url>http://somedomain.org</url> + <name>rdbms2ldap</name> - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - </properties> + <dependencies> - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-api</artifactId> + <version>2.1</version> + </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-api</artifactId> - <version>2.1</version> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-core</artifactId> - <version>2.1</version> - </dependency> - <dependency> - <groupId>mysql</groupId> - <artifactId>mysql-connector-java</artifactId> - <version>5.1.33</version> - </dependency> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-core</artifactId> + <version>2.1</version> + </dependency> - </dependencies> + <dependency> + <groupId>mysql</groupId> + <artifactId>mysql-connector-java</artifactId> + <version>5.1.33</version> + </dependency> + + </dependencies> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>3.1</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.10.1</version> - <configuration /> - </plugin> - </plugins> - </build> </project> diff --git a/P/Sda2/UnixSqlLdap/Jndi/Unix2Rdbms/pom.xml b/P/Sda2/UnixSqlLdap/Jndi/Unix2Rdbms/pom.xml index beabb5875..ed895eb17 100644 --- a/P/Sda2/UnixSqlLdap/Jndi/Unix2Rdbms/pom.xml +++ b/P/Sda2/UnixSqlLdap/Jndi/Unix2Rdbms/pom.xml @@ -1,58 +1,34 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> - <groupId>de.hdm-stuttgart.mi.sda2</groupId> - <artifactId>unix2rdbms</artifactId> - <version>0.9</version> - <packaging>jar</packaging> + <parent> + <groupId>de.hdm-stuttgart.mi</groupId> + <artifactId>lecturenotes-pom</artifactId> + <version>1.0</version> + <relativePath>../../../../pom.xml</relativePath> + </parent> - <name>unix2rdbms</name> - <url>http://maven.mi.hdm-stuttgart.de</url> + <groupId>de.hdm-stuttgart.mi.sda2</groupId> + <artifactId>unix2rdbms</artifactId> + <version>0.9</version> + <packaging>jar</packaging> - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - </properties> + <name>unix2rdbms</name> - <dependencies> - <dependency> - <groupId>log4j</groupId> - <artifactId>log4j</artifactId> - <version>1.2.17</version> - </dependency> + <dependencies> + <dependency> + <groupId>log4j</groupId> + <artifactId>log4j</artifactId> + <version>1.2.17</version> + </dependency> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - - <dependency> - <groupId>mysql</groupId> - <artifactId>mysql-connector-java</artifactId> - <version>5.1.33</version> - </dependency> - - </dependencies> + <dependency> + <groupId>mysql</groupId> + <artifactId>mysql-connector-java</artifactId> + <version>5.1.33</version> + </dependency> + + </dependencies> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>3.1</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.10.1</version> - <configuration /> - </plugin> - </plugins> - </build> </project> diff --git a/P/Sda2/account/pom.xml b/P/Sda2/account/pom.xml index 2f9295ad8..7b3099e11 100644 --- a/P/Sda2/account/pom.xml +++ b/P/Sda2/account/pom.xml @@ -1,112 +1,101 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> - <groupId>de.hdm-stuttgart.mi.sda2</groupId> - <artifactId>account</artifactId> - <version>0.9</version> - <packaging>jar</packaging> + <parent> + <groupId>de.hdm-stuttgart.mi</groupId> + <artifactId>lecturenotes-pom</artifactId> + <version>1.0</version> - <name>account</name> + <relativePath>../../pom.xml</relativePath> + </parent> - <!--Fixme: Add a sensible project related domain here --> - <url>http://somedomain.org</url> + <groupId>de.hdm-stuttgart.mi.sda2</groupId> + <artifactId>account</artifactId> + <version>0.9</version> + <packaging>jar</packaging> - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - </properties> + <name>account</name> - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> + <!--Fixme: Add a sensible project related domain here --> + <url>http://somedomain.org</url> - <dependency> - <groupId>log4j</groupId> - <artifactId>log4j</artifactId> - <version>1.2.17</version> - </dependency> - <dependency> - <groupId>mysql</groupId> - <artifactId>mysql-connector-java</artifactId> - <version>5.1.33</version> - </dependency> + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + </properties> - <dependency> - <groupId>org.controlsfx</groupId> - <artifactId>controlsfx</artifactId> - <version>8.20.8</version> - </dependency> + <dependencies> - <dependency> - <groupId>org.controlsfx</groupId> - <artifactId>openjfx-dialogs</artifactId> - <version>1.0.2</version> - </dependency> + <dependency> + <groupId>log4j</groupId> + <artifactId>log4j</artifactId> + <version>1.2.17</version> + </dependency> + <dependency> + <groupId>mysql</groupId> + <artifactId>mysql-connector-java</artifactId> + <version>5.1.33</version> + </dependency> - </dependencies> + <dependency> + <groupId>org.controlsfx</groupId> + <artifactId>controlsfx</artifactId> + <version>8.20.8</version> + </dependency> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>3.1</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.10.1</version> - <configuration /> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-shade-plugin</artifactId> - <version>2.3</version> - <executions> - <execution> - <id>transfer-driver</id> - <phase>package</phase> - <goals> - <goal>shade</goal> - </goals> - <configuration> - <outputFile>target/${project.artifactId}-transfer.jar</outputFile> - <transformers> - <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> - <manifestEntries> - <Main-Class>de.hdm_stuttgart.mi.sda2.account.TransferDriver</Main-Class> - </manifestEntries> - </transformer> - </transformers> - </configuration> - </execution> + <dependency> + <groupId>org.controlsfx</groupId> + <artifactId>openjfx-dialogs</artifactId> + <version>1.0.2</version> + </dependency> - <execution> - <id>sum-driver</id> - <phase>package</phase> - <goals> - <goal>shade</goal> - </goals> - <configuration> - <outputFile>target/${project.artifactId}-sum.jar</outputFile> - <transformers> - <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> - <manifestEntries> - <Main-Class>de.hdm_stuttgart.mi.sda2.account.SumDriver</Main-Class> - </manifestEntries> - </transformer> - </transformers> - </configuration> - </execution> - </executions> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + <version>2.3</version> + <executions> + <execution> + <id>transfer-driver</id> + <phase>package</phase> + <goals> + <goal>shade</goal> + </goals> + <configuration> + <outputFile>target/${project.artifactId}-transfer.jar</outputFile> + <transformers> + <transformer + implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> + <manifestEntries> + <Main-Class>de.hdm_stuttgart.mi.sda2.account.TransferDriver</Main-Class> + </manifestEntries> + </transformer> + </transformers> + </configuration> + </execution> + + <execution> + <id>sum-driver</id> + <phase>package</phase> + <goals> + <goal>shade</goal> + </goals> + <configuration> + <outputFile>target/${project.artifactId}-sum.jar</outputFile> + <transformers> + <transformer + implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> + <manifestEntries> + <Main-Class>de.hdm_stuttgart.mi.sda2.account.SumDriver</Main-Class> + </manifestEntries> + </transformer> + </transformers> + </configuration> + </execution> + </executions> </plugin> </plugins> diff --git a/P/Sda2/account/src/main/java/de/hdm_stuttgart/mi/sda2/account/SumDriver.java b/P/Sda2/account/src/main/java/de/hdm_stuttgart/mi/sda2/account/SumDriver.java index 0404e2eec..ee0c9a08f 100644 --- a/P/Sda2/account/src/main/java/de/hdm_stuttgart/mi/sda2/account/SumDriver.java +++ b/P/Sda2/account/src/main/java/de/hdm_stuttgart/mi/sda2/account/SumDriver.java @@ -15,11 +15,12 @@ import javafx.scene.text.Font; import javafx.scene.text.FontWeight; import javafx.scene.text.Text; import javafx.stage.Stage; +import de.hdm_stuttgart.mi.sda2.account.gui.ExceptionDialog; import de.hdm_stuttgart.mi.sda2.account.sql.DbHandler; public class SumDriver extends Application { - final DbHandler dbh = new DbHandler(); + final DbHandler dbh = new DbHandler(new ExceptionDialog()); final TextField accountSum = new TextField(); @@ -29,7 +30,7 @@ public class SumDriver extends Application { public static void main( String[] args ) { launch(args); } - public SumDriver() throws SQLException { + public SumDriver() { dbh.connect(Connection.TRANSACTION_READ_UNCOMMITTED, true); refreshBtn.setOnAction(event-> { accountSum.setText("" + dbh.getAccountSum()); diff --git a/P/Sda2/account/src/main/java/de/hdm_stuttgart/mi/sda2/account/TransferDriver.java b/P/Sda2/account/src/main/java/de/hdm_stuttgart/mi/sda2/account/TransferDriver.java index 3e5b85117..6929dcd4e 100644 --- a/P/Sda2/account/src/main/java/de/hdm_stuttgart/mi/sda2/account/TransferDriver.java +++ b/P/Sda2/account/src/main/java/de/hdm_stuttgart/mi/sda2/account/TransferDriver.java @@ -14,12 +14,13 @@ import javafx.scene.text.Font; import javafx.scene.text.FontWeight; import javafx.scene.text.Text; import javafx.stage.Stage; +import de.hdm_stuttgart.mi.sda2.account.gui.ExceptionDialog; import de.hdm_stuttgart.mi.sda2.account.gui.NumberField; import de.hdm_stuttgart.mi.sda2.account.sql.DbHandler; public class TransferDriver extends Application { - final DbHandler dbh = new DbHandler(); + final DbHandler dbh = new DbHandler(new ExceptionDialog()); final NumberField srcAccountNoField = new NumberField() @@ -33,7 +34,7 @@ public class TransferDriver extends Application { public static void main( String[] args ) { launch(args); } - public TransferDriver() throws SQLException { + public TransferDriver() { initEditor(); diff --git a/P/Sda2/account/src/main/java/de/hdm_stuttgart/mi/sda2/account/gui/ErrorReporter.java b/P/Sda2/account/src/main/java/de/hdm_stuttgart/mi/sda2/account/gui/ErrorReporter.java new file mode 100644 index 000000000..12a96b9b9 --- /dev/null +++ b/P/Sda2/account/src/main/java/de/hdm_stuttgart/mi/sda2/account/gui/ErrorReporter.java @@ -0,0 +1,10 @@ +package de.hdm_stuttgart.mi.sda2.account.gui; + +/** + * This interface is designed to be able replacing GUI widgets + * by loggers or mocks during unit tests. + * + */ +public interface ErrorReporter { + default public void showExceptionAndExit(final String msg, final Exception ex, int exitCode) {}; +} diff --git a/P/Sda2/account/src/main/java/de/hdm_stuttgart/mi/sda2/account/gui/ExceptionDialog.java b/P/Sda2/account/src/main/java/de/hdm_stuttgart/mi/sda2/account/gui/ExceptionDialog.java index 50af5d123..ef72c0beb 100644 --- a/P/Sda2/account/src/main/java/de/hdm_stuttgart/mi/sda2/account/gui/ExceptionDialog.java +++ b/P/Sda2/account/src/main/java/de/hdm_stuttgart/mi/sda2/account/gui/ExceptionDialog.java @@ -15,7 +15,7 @@ import javafx.scene.layout.Priority; * for further explanations. * */ -public class ExceptionDialog { +public class ExceptionDialog implements ErrorReporter { /** * Showing an error box and terminating without any further error processing @@ -25,7 +25,7 @@ public class ExceptionDialog { * @param exitCode The exit code to be used by e.g. the calling process. * */ - public static void showExceptionAndExit(final String msg, final Exception ex, int exitCode) { + public void showExceptionAndExit(final String msg, final Exception ex, int exitCode) { Alert alert = new Alert(AlertType.ERROR); alert.setTitle("Unrecoverable error"); diff --git a/P/Sda2/account/src/main/java/de/hdm_stuttgart/mi/sda2/account/sql/DbHandler.java b/P/Sda2/account/src/main/java/de/hdm_stuttgart/mi/sda2/account/sql/DbHandler.java index d6e3adbe3..73bacaab4 100644 --- a/P/Sda2/account/src/main/java/de/hdm_stuttgart/mi/sda2/account/sql/DbHandler.java +++ b/P/Sda2/account/src/main/java/de/hdm_stuttgart/mi/sda2/account/sql/DbHandler.java @@ -9,12 +9,18 @@ import java.sql.SQLException; import org.apache.log4j.Logger; import de.hdm_stuttgart.mi.sda2.account.Conf; +import de.hdm_stuttgart.mi.sda2.account.gui.ErrorReporter; import de.hdm_stuttgart.mi.sda2.account.gui.ExceptionDialog; public class DbHandler { static private final Logger log = Logger.getLogger(DbHandler.class); + private final ErrorReporter errorReporter; + public DbHandler(final ErrorReporter errorReporter) { + this.errorReporter = errorReporter; + } + Connection conn = null; boolean autoCommit; @@ -45,7 +51,7 @@ public class DbHandler { return true; } catch (SQLException e) { log.info("Connection '" + getConnectionName() + "' failed:" + e.getMessage()); - ExceptionDialog.showExceptionAndExit("Connection '" + getConnectionName() + "' failed:", e, 1); + errorReporter.showExceptionAndExit("Connection '" + getConnectionName() + "' failed:", e, 1); return false; } } @@ -63,7 +69,7 @@ public class DbHandler { conn.rollback(); log.info("Rollback successfully executed"); } catch (SQLException e) { - ExceptionDialog.showExceptionAndExit("Rollback of transaction failed: ", e, 1); + errorReporter.showExceptionAndExit("Rollback of transaction failed: ", e, 1); } } @@ -73,7 +79,7 @@ public class DbHandler { conn.commit(); log.info("Changes successfully committed"); } catch (SQLException e) { - ExceptionDialog.showExceptionAndExit("Committing transaction failed: ", e, 1); + errorReporter.showExceptionAndExit("Committing transaction failed: ", e, 1); } } } @@ -86,10 +92,10 @@ public class DbHandler { rs.close(); return ret; } else { - ExceptionDialog.showExceptionAndExit("Weird problem summing up balances problem: ", null, 1); + errorReporter.showExceptionAndExit("Weird problem summing up balances problem: ", null, 1); } } catch (SQLException e) { - ExceptionDialog.showExceptionAndExit("Committing transaction failed: ", e, 1); + errorReporter.showExceptionAndExit("Committing transaction failed: ", e, 1); } return 0; } @@ -101,7 +107,7 @@ public class DbHandler { updateAccount.executeUpdate(); log.info("Change account " + accountNo + " by " + amount); } catch (SQLException e) { - ExceptionDialog.showExceptionAndExit("Update of account " + accountNo + " failed:", e, 1); + errorReporter.showExceptionAndExit("Update of account " + accountNo + " failed:", e, 1); } } diff --git a/P/Sda2/account/src/test/java/de/hdm_stuttgart/mi/sda2/account/DbTest.java b/P/Sda2/account/src/test/java/de/hdm_stuttgart/mi/sda2/account/DbTest.java index 133371bf7..5a416cff7 100644 --- a/P/Sda2/account/src/test/java/de/hdm_stuttgart/mi/sda2/account/DbTest.java +++ b/P/Sda2/account/src/test/java/de/hdm_stuttgart/mi/sda2/account/DbTest.java @@ -2,9 +2,9 @@ package de.hdm_stuttgart.mi.sda2.account; import java.sql.Connection; -import org.junit.Assert; import org.junit.Test; +import de.hdm_stuttgart.mi.sda2.account.gui.ErrorReporter; import de.hdm_stuttgart.mi.sda2.account.sql.DbHandler; /** @@ -13,7 +13,7 @@ import de.hdm_stuttgart.mi.sda2.account.sql.DbHandler; public class DbTest { @Test public void testApp() { - DbHandler dbh = new DbHandler(); + DbHandler dbh = new DbHandler(new ErrorReporter() {}); dbh.connect(Connection.TRANSACTION_SERIALIZABLE, false); diff --git a/P/Sda2/forum_1/pom.xml b/P/Sda2/forum_1/pom.xml index 7d51f5e1e..3d4201d5f 100644 --- a/P/Sda2/forum_1/pom.xml +++ b/P/Sda2/forum_1/pom.xml @@ -1,324 +1,341 @@ <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - <groupId>de.hdm_stuttgart.mi.sda2.forum</groupId> - <artifactId>forum</artifactId> - <packaging>war</packaging> - <version>1.0</version> - <name>Forum application</name> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <vaadin.version>7.3.1</vaadin.version> - <vaadin.plugin.version>${vaadin.version}</vaadin.plugin.version> - <eclipse.link.version>2.5.2</eclipse.link.version> - </properties> - <repositories> - <repository> - <id>vaadin-addons</id> - <url>http://maven.vaadin.com/vaadin-addons</url> - </repository> - <repository> - <id>vaadin-snapshots</id> - <url>http://oss.sonatype.org/content/repositories/vaadin-snapshots/</url> - <releases> - <enabled>false</enabled> - </releases> - <snapshots> - <enabled>true</enabled> - </snapshots> - </repository> - </repositories> - <pluginRepositories> - <pluginRepository> - <id>vaadin-snapshots</id> - <url>http://oss.sonatype.org/content/repositories/vaadin-snapshots/</url> - <releases> - <enabled>false</enabled> - </releases> - <snapshots> - <enabled>true</enabled> - </snapshots> - </pluginRepository> - </pluginRepositories> - <dependencies> - <dependency> - <groupId>com.vaadin</groupId> - <artifactId>vaadin-server</artifactId> - <version>${vaadin.version}</version> - </dependency> - <dependency> - <groupId>com.vaadin</groupId> - <artifactId>vaadin-client-compiled</artifactId> - <version>${vaadin.version}</version> - </dependency> - <!-- Needed when using the widgetset optimizer (custom ConnectorBundleLoaderFactory). - For widgetset compilation, vaadin-client-compiler is automatically added - on the compilation classpath by vaadin-maven-plugin so normally there is - no need for an explicit dependency. --> - <!-- <dependency> <groupId>com.vaadin</groupId> <artifactId>vaadin-client-compiler</artifactId> - <version>${vaadin.version}</version> <scope>provided</scope> </dependency> --> - <dependency> - <groupId>com.vaadin</groupId> - <artifactId>vaadin-client</artifactId> - <version>${vaadin.version}</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>com.vaadin</groupId> - <artifactId>vaadin-push</artifactId> - <version>${vaadin.version}</version> - </dependency> - <dependency> - <groupId>com.vaadin</groupId> - <artifactId>vaadin-themes</artifactId> - <version>${vaadin.version}</version> - </dependency> - <dependency> - <groupId>javax.servlet</groupId> - <artifactId>javax.servlet-api</artifactId> - <version>3.0.1</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>mysql</groupId> - <artifactId>mysql-connector-java</artifactId> - <version>5.1.32</version> - </dependency> - - <!-- JPAcontainer stuff --> - <dependency> - <groupId>com.vaadin.addon</groupId> - <artifactId>jpacontainer</artifactId> - <version>3.1.1</version> - </dependency> - <dependency> - <groupId>org.eclipse.persistence</groupId> - <artifactId>eclipselink</artifactId> - <version>${eclipse.link.version}</version> - </dependency> - <dependency> - <groupId>org.eclipse.persistence</groupId> - <artifactId>javax.persistence</artifactId> - <version>2.1.0</version> - </dependency> - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-validator</artifactId> - <!-- <version>4.3.2.Final</version> --> - <version>4.2.0.Final</version> - </dependency> - - <!-- Testing --> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - - <!-- Encryption / Hash / Base64 --> - <dependency> - <groupId>commons-codec</groupId> - <artifactId>commons-codec</artifactId> - <version>1.9</version> - </dependency> + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>de.hdm-stuttgart.mi</groupId> + <artifactId>lecturenotes-pom</artifactId> + <version>1.0</version> + <relativePath>../../pom.xml</relativePath> + </parent> + + <groupId>de.hdm_stuttgart.mi.sda2.forum</groupId> + <artifactId>forum</artifactId> + <packaging>war</packaging> + <version>1.0</version> + + <name>Forum application</name> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <vaadin.version>7.3.1</vaadin.version> + <vaadin.plugin.version>${vaadin.version}</vaadin.plugin.version> + <eclipse.link.version>2.5.2</eclipse.link.version> + </properties> + + <repositories> + + <repository> + <id>vaadin-addons</id> + <url>http://maven.vaadin.com/vaadin-addons</url> + </repository> + + <repository> + <id>vaadin-snapshots</id> + <url>http://oss.sonatype.org/content/repositories/vaadin-snapshots/</url> + <releases> + <enabled>false</enabled> + </releases> + <snapshots> + <enabled>true</enabled> + </snapshots> + </repository> + + </repositories> + + <pluginRepositories> + + <pluginRepository> + <id>vaadin-snapshots</id> + <url>http://oss.sonatype.org/content/repositories/vaadin-snapshots/</url> + <releases> + <enabled>false</enabled> + </releases> + <snapshots> + <enabled>true</enabled> + </snapshots> + </pluginRepository> + + </pluginRepositories> + + <dependencies> + + <dependency> + <groupId>com.vaadin</groupId> + <artifactId>vaadin-server</artifactId> + <version>${vaadin.version}</version> + </dependency> + + <dependency> + <groupId>com.vaadin</groupId> + <artifactId>vaadin-client-compiled</artifactId> + <version>${vaadin.version}</version> + </dependency> + <!-- Needed when using the widgetset optimizer (custom ConnectorBundleLoaderFactory). + For widgetset compilation, vaadin-client-compiler is automatically added + on the compilation classpath by vaadin-maven-plugin so normally there is + no need for an explicit dependency. --> + <!-- <dependency> <groupId>com.vaadin</groupId> <artifactId>vaadin-client-compiler</artifactId> + <version>${vaadin.version}</version> <scope>provided</scope> </dependency> --> + <dependency> + <groupId>com.vaadin</groupId> + <artifactId>vaadin-client</artifactId> + <version>${vaadin.version}</version> + <scope>provided</scope> + </dependency> + + <dependency> + <groupId>com.vaadin</groupId> + <artifactId>vaadin-push</artifactId> + <version>${vaadin.version}</version> + </dependency> + + <dependency> + <groupId>com.vaadin</groupId> + <artifactId>vaadin-themes</artifactId> + <version>${vaadin.version}</version> + </dependency> + + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>javax.servlet-api</artifactId> + <version>3.0.1</version> + <scope>provided</scope> + </dependency> + + <dependency> + <groupId>mysql</groupId> + <artifactId>mysql-connector-java</artifactId> + <version>5.1.32</version> + </dependency> + + <!-- JPAcontainer stuff --> + <dependency> + <groupId>com.vaadin.addon</groupId> + <artifactId>jpacontainer</artifactId> + <version>3.1.1</version> + </dependency> + <dependency> + <groupId>org.eclipse.persistence</groupId> + <artifactId>eclipselink</artifactId> + <version>${eclipse.link.version}</version> + </dependency> + + <dependency> + <groupId>org.eclipse.persistence</groupId> + <artifactId>javax.persistence</artifactId> + <version>2.1.0</version> + </dependency> + + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-validator</artifactId> + <!-- <version>4.3.2.Final</version> --> + <version>4.2.0.Final</version> + </dependency> + + + <!-- Encryption / Hash / Base64 --> + <dependency> + <groupId>commons-codec</groupId> + <artifactId>commons-codec</artifactId> + <version>1.9</version> + </dependency> + + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.1</version> + <configuration> + <source>1.8</source> + <target>1.8</target> + </configuration> + </plugin> + + <!-- Eclipse link JPA Metamodel --> + <plugin> + <groupId>org.bsc.maven</groupId> + <artifactId>maven-processor-plugin</artifactId> + <version>2.2.4</version> + <executions> + <execution> + <id>process</id> + <goals> + <goal>process</goal> + </goals> + <phase>generate-sources</phase> + <configuration> + <options> + <eclipselink.persistencexml>${basedir}/src/main/resources/META-INF/persistence.xml</eclipselink.persistencexml> + <eclipselink.canonicalmodel.subpackage>jpametamodel</eclipselink.canonicalmodel.subpackage> + </options> + <outputDirectory>${project.build.directory}/generated-sources/metamodel</outputDirectory> + <!-- + <sources> + <source>${project.build.directory}/generated-sources/metamodel</source> + </sources> + + +<compilerArguments> +-Aeclipselink.persistencexml=${basedir}/src/main/resources/META-INF/persistence.xml +</compilerArguments> + --> + <processors> + <processor>org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor</processor> + </processors> + + </configuration> + </execution> + </executions> + <dependencies> + <dependency> + <groupId>org.eclipse.persistence</groupId> + <artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId> + + <version>2.6.0-M3</version> + <!-- + <version>${eclipse.link.version}</version> + --> + </dependency> </dependencies> + </plugin> + + <!-- As we are doing "inplace" GWT compilation, ensure the widgetset --> + <!-- directory is cleaned properly --> + <plugin> + <artifactId>maven-clean-plugin</artifactId> + <version>2.4.1</version> + <configuration> + <filesets> + <fileset> + <directory>src/main/webapp/VAADIN/widgetsets</directory> + </fileset> + </filesets> + </configuration> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-war-plugin</artifactId> + <version>2.2</version> + <configuration> + <failOnMissingWebXml>false</failOnMissingWebXml> + </configuration> + </plugin> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>3.1</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.10.1</version> - <configuration/> + <plugin> + <groupId>com.vaadin</groupId> + <artifactId>vaadin-maven-plugin</artifactId> + <version>${vaadin.plugin.version}</version> + <configuration> + <extraJvmArgs>-Xmx512M -Xss1024k</extraJvmArgs> + <!-- <runTarget>mobilemail</runTarget> --> + <!-- We are doing "inplace" but into subdir VAADIN/widgetsets. This + way compatible with Vaadin eclipse plugin. --> + <webappDirectory>${basedir}/src/main/webapp/VAADIN/widgetsets + </webappDirectory> + <hostedWebapp>${basedir}/src/main/webapp/VAADIN/widgetsets + </hostedWebapp> + <!-- Most Vaadin apps don't need this stuff, guide that to target --> + <persistentunitcachedir>${project.build.directory}</persistentunitcachedir> + <deploy>${project.build.directory}/gwt-deploy</deploy> + <!-- Compile report is not typically needed either, saves hunreds of + mb disk --> + <compileReport>false</compileReport> + <noServer>true</noServer> + <!-- Remove draftCompile when project is ready --> + <draftCompile>false</draftCompile> + + <style>OBF</style> + <strict>true</strict> + <runTarget>http://localhost:8080/</runTarget> + </configuration> + <executions> + <execution> + <configuration> + <!-- if you don't specify any modules, the plugin will find them --> + <!-- <modules> <module>com.vaadin.demo.mobilemail.gwt.ColorPickerWidgetSet</module> + </modules> --> + </configuration> + <goals> + <goal>clean</goal> + <goal>resources</goal> + <goal>update-theme</goal> + <goal>update-widgetset</goal> + <goal>compile-theme</goal> + <goal>compile</goal> + </goals> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-maven-plugin</artifactId> + <version>9.2.2.v20140723</version> + <configuration> + <scanIntervalSeconds>2</scanIntervalSeconds> + </configuration> </plugin> - - <!-- Eclipse link JPA Metamodel --> - <plugin> - <groupId>org.bsc.maven</groupId> - <artifactId>maven-processor-plugin</artifactId> - <version>2.2.4</version> - <executions> - <execution> - <id>process</id> - <goals> - <goal>process</goal> - </goals> - <phase>generate-sources</phase> - <configuration> - <options> - <eclipselink.persistencexml>${basedir}/src/main/resources/META-INF/persistence.xml</eclipselink.persistencexml> - <eclipselink.canonicalmodel.subpackage>jpametamodel</eclipselink.canonicalmodel.subpackage> - </options> - <outputDirectory>${project.build.directory}/generated-sources/metamodel</outputDirectory> - <!-- - <sources> - <source>${project.build.directory}/generated-sources/metamodel</source> - </sources> - - - <compilerArguments> - -Aeclipselink.persistencexml=${basedir}/src/main/resources/META-INF/persistence.xml - </compilerArguments> - --> - <processors> - <processor>org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor</processor> - </processors> - - </configuration> - </execution> - </executions> - <dependencies> - <dependency> - <groupId>org.eclipse.persistence</groupId> - <artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId> - - <version>2.6.0-M3</version> - <!-- - <version>${eclipse.link.version}</version> - --> - </dependency> - </dependencies> - </plugin> - - <!-- As we are doing "inplace" GWT compilation, ensure the widgetset --> - <!-- directory is cleaned properly --> - <plugin> - <artifactId>maven-clean-plugin</artifactId> - <version>2.4.1</version> - <configuration> - <filesets> - <fileset> - <directory>src/main/webapp/VAADIN/widgetsets</directory> - </fileset> - </filesets> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-war-plugin</artifactId> - <version>2.2</version> - <configuration> - <failOnMissingWebXml>false</failOnMissingWebXml> - </configuration> - </plugin> - <plugin> - <groupId>com.vaadin</groupId> - <artifactId>vaadin-maven-plugin</artifactId> - <version>${vaadin.plugin.version}</version> - <configuration> - <extraJvmArgs>-Xmx512M -Xss1024k</extraJvmArgs> - <!-- <runTarget>mobilemail</runTarget> --> - <!-- We are doing "inplace" but into subdir VAADIN/widgetsets. This - way compatible with Vaadin eclipse plugin. --> - <webappDirectory>${basedir}/src/main/webapp/VAADIN/widgetsets - </webappDirectory> - <hostedWebapp>${basedir}/src/main/webapp/VAADIN/widgetsets - </hostedWebapp> - <!-- Most Vaadin apps don't need this stuff, guide that to target --> - <persistentunitcachedir>${project.build.directory}</persistentunitcachedir> - <deploy>${project.build.directory}/gwt-deploy</deploy> - <!-- Compile report is not typically needed either, saves hunreds of - mb disk --> - <compileReport>false</compileReport> - <noServer>true</noServer> - <!-- Remove draftCompile when project is ready --> - <draftCompile>false</draftCompile> - - <style>OBF</style> - <strict>true</strict> - <runTarget>http://localhost:8080/</runTarget> - </configuration> - <executions> - <execution> - <configuration> - <!-- if you don't specify any modules, the plugin will find them --> - <!-- <modules> <module>com.vaadin.demo.mobilemail.gwt.ColorPickerWidgetSet</module> - </modules> --> - </configuration> - <goals> - <goal>clean</goal> - <goal>resources</goal> - <goal>update-theme</goal> - <goal>update-widgetset</goal> - <goal>compile-theme</goal> - <goal>compile</goal> - </goals> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-maven-plugin</artifactId> - <version>9.2.2.v20140723</version> - <configuration> - <scanIntervalSeconds>2</scanIntervalSeconds> - </configuration> - </plugin> - - </plugins> - <pluginManagement> - <plugins> - <!--This plugin's configuration is used to store Eclipse m2e settings - only. It has no influence on the Maven build itself. --> - <plugin> - <groupId>org.eclipse.m2e</groupId> - <artifactId>lifecycle-mapping</artifactId> - <version>1.0.0</version> - <configuration> - <lifecycleMappingMetadata> - <pluginExecutions> - <pluginExecution> - <pluginExecutionFilter> - <groupId>com.vaadin</groupId> - <artifactId> - vaadin-maven-plugin - </artifactId> - <versionRange> - [7.3.0,) - </versionRange> - <goals> - <goal>resources</goal> - <goal>update-widgetset</goal> - <goal>compile</goal> - <goal>update-theme</goal> - <goal>compile-theme</goal> - </goals> - </pluginExecutionFilter> - <action> - <ignore></ignore> - </action> - </pluginExecution> - </pluginExecutions> - </lifecycleMappingMetadata> - </configuration> - </plugin> - <plugin> - <artifactId>maven-eclipse-plugin</artifactId> - <configuration> - <wtpversion>2.0</wtpversion> - <additionalProjectnatures> - <projectnature>com.vaadin.integration.eclipse.widgetsetNature</projectnature> - </additionalProjectnatures> - <additionalBuildcommands> - <buildcommand>com.vaadin.integration.eclipse.widgetsetBuilder</buildcommand> - <buildcommand>com.vaadin.integration.eclipse.addonStylesBuilder</buildcommand> - </additionalBuildcommands> - </configuration> - </plugin> - </plugins> - </pluginManagement> - </build> + + </plugins> + <pluginManagement> + <plugins> + <!--This plugin's configuration is used to store Eclipse m2e settings + only. It has no influence on the Maven build itself. --> + <plugin> + <groupId>org.eclipse.m2e</groupId> + <artifactId>lifecycle-mapping</artifactId> + <version>1.0.0</version> + <configuration> + <lifecycleMappingMetadata> + <pluginExecutions> + <pluginExecution> + <pluginExecutionFilter> + <groupId>com.vaadin</groupId> + <artifactId> + vaadin-maven-plugin + </artifactId> + <versionRange> + [7.3.0,) + </versionRange> + <goals> + <goal>resources</goal> + <goal>update-widgetset</goal> + <goal>compile</goal> + <goal>update-theme</goal> + <goal>compile-theme</goal> + </goals> + </pluginExecutionFilter> + <action> + <ignore></ignore> + </action> + </pluginExecution> + </pluginExecutions> + </lifecycleMappingMetadata> + </configuration> + </plugin> + + <plugin> + <artifactId>maven-eclipse-plugin</artifactId> + <configuration> + <wtpversion>2.0</wtpversion> + <additionalProjectnatures> + <projectnature>com.vaadin.integration.eclipse.widgetsetNature</projectnature> + </additionalProjectnatures> + <additionalBuildcommands> + <buildcommand>com.vaadin.integration.eclipse.widgetsetBuilder</buildcommand> + <buildcommand>com.vaadin.integration.eclipse.addonStylesBuilder</buildcommand> + </additionalBuildcommands> + </configuration> + </plugin> + </plugins> + </pluginManagement> + </build> </project> diff --git a/P/Sda2/forum_1/src/test/java/de/hdm_stuttgart/mi/sda2/forum/TestDomain.java b/P/Sda2/forum_1/src/test/java/de/hdm_stuttgart/mi/sda2/forum/TestDomain.java index 5d1fc69a1..3ed0a7524 100644 --- a/P/Sda2/forum_1/src/test/java/de/hdm_stuttgart/mi/sda2/forum/TestDomain.java +++ b/P/Sda2/forum_1/src/test/java/de/hdm_stuttgart/mi/sda2/forum/TestDomain.java @@ -16,6 +16,7 @@ import de.hdm_stuttgart.mi.sda2.forum.domain.Forum; import de.hdm_stuttgart.mi.sda2.forum.domain.User; import de.hdm_stuttgart.mi.sda2.forum.tools.HashProvider; +@SuppressWarnings("javadoc") public class TestDomain { static final EntityManagerFactory emf; diff --git a/P/pom.xml b/P/pom.xml index bb6a876b5..315a2990d 100644 --- a/P/pom.xml +++ b/P/pom.xml @@ -3,10 +3,6 @@ <project> <modelVersion>4.0.0</modelVersion> - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - </properties> - <parent> <groupId>de.hdm-stuttgart.mi</groupId> <artifactId>lecturenotes-base-pom</artifactId> @@ -25,6 +21,7 @@ <modules> <!-- Software development 1 --> + <module>Sd1/Array/medianCmdLine</module> <module>Sd1/Array/integerStoreUnbounded</module> <module>Sd1/Array/arraycalcExercise</module> @@ -50,6 +47,12 @@ <module>Sd1/interest/V1</module> <module>Sd1/interest/V2</module> + <module>Sd1/crab/V1</module> + <module>Sd1/crab/V2</module> + <module>Sd1/life/V3</module> + <module>Sd1/life/V1</module> + + <module>Sd1/loop/answer</module> <module>Sd1/loop/question</module> @@ -81,10 +84,18 @@ <module>Sd1/Wordlist/Solution</module> <module>Sd1/Wordlist/Solution2</module> - - <!-- Structured data and applications 1 --> + <!-- Software development 1 Tests --> + <module>Sd1/Etest/IntMax/Test/</module> + <module>Sd1/Etest/IntMax/Solution</module> + <module>Sd1/Etest/Vowel/Solution</module> + <module>Sd1/Etest/Vowel/Test</module> + <module>Sd1/Etest/Diff/Solution</module> + <module>Sd1/Etest/Diff/Test</module> + <module>Sd1/Etest/MaxArrayDiff/Solution</module> + <module>Sd1/Etest/MaxArrayDiff/Test</module> + <!-- Structured data and applications 1 --> <module>Sda1/saxerrorhandler</module> <module>Sda1/catalog2sql</module> <module>Sda1/catalog2rdbms</module> @@ -101,13 +112,14 @@ <module>Sda2/Jpa/HibernateCacheDemo</module> <module>Sda2/Jpa/Cd</module> <module>Sda2/Jpa/Inherit/Tpch</module> - <module>Sda2/JaxRs/Intro</module> <module>Sda2/forum_1</module> + <module>Sda2/JaxRs/Intro</module> <module>Sda2/UnixSqlLdap/Jndi/Rdbms2Ldap</module> <module>Sda2/UnixSqlLdap/Jndi/Unix2Rdbms</module> </modules> +<!-- <build> <resources> <resource> @@ -118,5 +130,5 @@ </resource> </resources> </build> - +--> </project> diff --git a/Sd1/.gitignore b/Sd1/.gitignore deleted file mode 100644 index a829a74e7..000000000 --- a/Sd1/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/lastAnswerId.xml -/resources diff --git a/Sd1/Makefile b/Sd1/Makefile deleted file mode 100644 index f73402d34..000000000 --- a/Sd1/Makefile +++ /dev/null @@ -1,85 +0,0 @@ -SCRIPTBASENAME=swd1 -PLUGINID=de.hdm_stuttgart.mi.swd1 -WWWBASE=www.mi.hdm-stuttgart.de:/home/infocenter2/doc -OWNCLOUDPDF=/ma/goik/ownCloud/Lecture/Se1/solutions.pdf -# -#Eclipsedoc related plugin parameters -# -PPARAM= -p eclipse.plugin.name Swd1 \ - -p eclipse.plugin.provider 'Martin Goik, goik@hdm-stuttgart.de' - -BUILDROOT=/tmp - -#+++ no changes below this line ++++++++++++++++++++++++++++++++++++ - -# -# Directories containing pom.xml files -# -POMDIRS= $(shell find P -name pom.xml|grep -v target/classes|grep -v src/main/resources/archetype-resources|sed -e s/\\/pom.xml//g) - -# -# Dependent destinations -# -BUILDBASE=$(BUILDROOT)/$(SCRIPTBASENAME) -BUILDNAVI=$(BUILDBASE)/navi/$(PLUGINID) -BUILDNONAVI=$(BUILDBASE)/nonavi/$(PLUGINID) -JAVADOCDESTDIR=${BUILDNAVI}/Ref/api - -# -#Rule to build javadoc from pom.xml file -# -%/jdoc : % - mkdir -p ${JAVADOCDESTDIR}/$* - cp -r $* $*_jdoctmp; - cd $*_jdoctmp; mvn javadoc:javadoc; rm -rf ${JAVADOCDESTDIR}/$*/*; mv target/site/apidocs/* ${JAVADOCDESTDIR}/$*; \ - mvn eclipse:myeclipse-clean eclipse:clean clean; \ - rm -rf .settings; \ - zip ${JAVADOCDESTDIR}/$*/eclipse.zip -r * - rm -rf $*_jdoctmp - - -# -# Fixme: compile required sources prior to depedent steps -# -dirty: - cd P/Gcd/V1;mvn install - cd P/Array/integerStoreUnbounded;mvn install - cd ../ws/eclipse/HtmlExtensionTaglet;mvn compile - -jdoc: $(foreach pomDir,$(POMDIRS),$(pomDir)/jdoc ) - -all: ${BUILDNAVI}/printversion.pdf - -${BUILDNAVI}/index.html ${BUILDNAVI}/printversion.pdf:${SCRIPTBASENAME}.xml dirty ../glossary.xml ../bibliography.xml - rm -rf $(BUILDNAVI)/*/*.html $(BUILDNAVI)/*/*.pdf || true - mkdir -p ${BUILDNAVI} ${BUILDNONAVI} - saxon9he-xslt -s:${SCRIPTBASENAME}.xml -xi:on -xsl:../ws/Docbook/Extensions/Xsl/docbook2docbook.xsl > ${SCRIPTBASENAME}.answer.xml - /usr/share/xmlmind/bin/xxetool convert -p suppress.navigation 1 -p eclipse.plugin.id $(PLUGINID) ${PPARAM} db5.toEclipseHelp \ - ${SCRIPTBASENAME}.answer.xml -u $(BUILDNONAVI) - mkdir -p Ref/Fig/Generate;rm -f Ref/Fig/Generate/*.tex;\ - ../bin/stripUnicode.sh resources/Generate/*.tex; mv resources/Generate/*.tex Ref/Fig/Generate - cd Ref/Fig;make all - /usr/share/xmlmind/bin/xxetool convert -p eclipse.plugin.id $(PLUGINID) ${PPARAM} db5.toEclipseHelp ${SCRIPTBASENAME}.answer.xml -u $(BUILDNAVI) - perl -i -p -e '$$/=undef;s/\n[ \t]*<!DOCTYPE[^>]+\n[^>]*>$$//m' ${BUILDNAVI}/*.xml ${BUILDNONAVI}/*.xml - /usr/share/xmlmind/bin/xxetool convert db5.toPSFile ${SCRIPTBASENAME}.answer.xml \ - -s pdf -s "|pdf" -u $(BUILDNAVI)/printversion.pdf - tar c --exclude=\.svn Ref|tar -xC ${BUILDNAVI} - -#You may have to start refdbd -i applic.mi.hdm-stuttgart.de -s -e 0 -l 7 -db.docbook.bib.xml:db.docbook.xml - runbib -u refdb -d refdb_mi -t db50x -r -G raw.css -E utf-8 db.docbook.xml - -install:#jdoc - rsync -av --delete -e ssh ${BUILDNAVI} infocenter2@${WWWBASE}/navi - rsync -av --delete -e ssh ${BUILDNONAVI} infocenter2@${WWWBASE}/nonavi - ssh infocenter2@www.mi.hdm-stuttgart.de /usr/share/hdm/indexupdate.pl - -clean: - rm -rf ${BUILDBASE} ${SCRIPTBASENAME}.convert.xml ${SCRIPTBASENAME}.answer.* resources *~ - cd Ref/Fig;$(MAKE) clean - -#Maven extra libs: - -#mvn install:install-file -Dfile=/ma/goik/ownCloud/workspace/Greenfoot.jdk7/package/Greenfoot-core-2.5.jar -DgroupId=org.greenfoot -DartifactId=greenfoot-core -Dversion=2.5 -Dpackaging=jar - -#end diff --git a/Sd1/P/Archetypes/Makefile b/Sd1/P/Archetypes/Makefile deleted file mode 100644 index 572f83673..000000000 --- a/Sd1/P/Archetypes/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -ARCHETYPES=mi-maven-archetype-javafxml mi-maven-archetype-quickstart mi-maven-archetype-sax - -M2DIR=~/.m2/repository/de/hdm-stuttgart/mi - -$(M2DIR)/%/maven-metadata-local.xml:%/pom.xml - cd $*;mvn install - -install: $(foreach aType, $(ARCHETYPES), $(M2DIR)/$(aType)/maven-metadata-local.xml) catalog.xml - ssh root@maven.mi.hdm-stuttgart.de mkdir -p /var/www/Archetypes/de/hdm-stuttgart/mi - $(foreach aType, $(ARCHETYPES), rsync -av --delete -e ssh $(M2DIR)/$(aType) root@maven.mi.hdm-stuttgart.de:/var/www/Archetypes/de/hdm-stuttgart/mi;) - rsync -av --delete -e ssh catalog.xml root@maven.mi.hdm-stuttgart.de:/var/www/Archetypes - -clean: - rm -rf $(foreach aType, $(ARCHETYPES), $(M2DIR)/$(aType)) - -remoteclean: - ssh root@maven.mi.hdm-stuttgart.de rm -rf /var/www/Archetypes/de - -#end - diff --git a/Sd1/P/Archetypes/catalog.xml b/Sd1/P/Archetypes/catalog.xml deleted file mode 100644 index f7b17c906..000000000 --- a/Sd1/P/Archetypes/catalog.xml +++ /dev/null @@ -1,37 +0,0 @@ -<archetype-catalog - xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-catalog/1.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-catalog/1.0.0 - http://maven.apache.org/xsd/archetype-catalog-1.0.0.xsd"> - - <archetypes> - - <archetype> - <groupId>de.hdm-stuttgart.mi</groupId> - <artifactId>mi-maven-archetype-quickstart</artifactId> - <version>1.1</version> - <repository>http://maven.mi.hdm-stuttgart.de/Archetypes</repository> - <description>Modified from maven-archetype-quickstart using Java 1.8, log4j 2.x and Junit 4.11</description> - </archetype> - - <archetype> - <groupId>de.hdm-stuttgart.mi</groupId> - <artifactId>mi-maven-archetype-javafxml</artifactId> - <version>1.0</version> - <repository>http://maven.mi.hdm-stuttgart.de/Archetypes</repository> - <description>Modified from https://github.com/zonski/javafx-basic-archetype using Java 1.8, log4j 2.x and Junit 4.11</description> - </archetype> - - - <archetype> - <groupId>de.hdm-stuttgart.mi</groupId> - <artifactId>mi-maven-archetype-sax</artifactId> - <version>1.0</version> - <repository>http://maven.mi.hdm-stuttgart.de/Archetypes</repository> - <description>Sample SAX project using Java 1.8, log4j 2.x and Junit 4.11</description> - </archetype> - - </archetypes> - -</archetype-catalog> - diff --git a/Sd1/P/Archetypes/maven-prototype-javafx/.gitignore b/Sd1/P/Archetypes/maven-prototype-javafx/.gitignore deleted file mode 100644 index 06864be7f..000000000 --- a/Sd1/P/Archetypes/maven-prototype-javafx/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -/target/ -/.settings/ -.classpath -.project -dependency-reduced-pom.xml \ No newline at end of file diff --git a/Sd1/P/Archetypes/maven-prototype-javafx/pom.xml b/Sd1/P/Archetypes/maven-prototype-javafx/pom.xml deleted file mode 100644 index 4190238a0..000000000 --- a/Sd1/P/Archetypes/maven-prototype-javafx/pom.xml +++ /dev/null @@ -1,91 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.mi.sda2</groupId> - <artifactId>maven-prototype-javafx</artifactId> - <version>1.0</version> - <packaging>jar</packaging> - - <name>account</name> - - <!--Fixme: Add a sensible project related domain here --> - <url>http://somedomain.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - </properties> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - - <dependency> - <groupId>log4j</groupId> - <artifactId>log4j</artifactId> - <version>1.2.17</version> - </dependency> - - <dependency> - <groupId>mysql</groupId> - <artifactId>mysql-connector-java</artifactId> - <version>5.1.33</version> - </dependency> - - <dependency> - <groupId>org.controlsfx</groupId> - <artifactId>controlsfx</artifactId> - <version>8.20.8</version> - </dependency> - - <!-- supposed to be superseeded by Jdk 8u40 in mid-2015 --> - <dependency> - <groupId>org.controlsfx</groupId> - <artifactId>openjfx-dialogs</artifactId> - <version>1.0.2</version> - </dependency> - - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>3.1</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-shade-plugin</artifactId> - <version>2.3</version> - <executions> - <execution> - <id>transfer-driver</id> - <phase>package</phase> - <goals> - <goal>shade</goal> - </goals> - <configuration> - <transformers> - <transformer - implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> - <manifestEntries> - <Main-Class>de.hdm_stuttgart.mi.sda2.account.GuiDriver</Main-Class> - </manifestEntries> - </transformer> - </transformers> - </configuration> - </execution> - </executions> - </plugin> - </plugins> - </build> -</project> diff --git a/Sd1/P/Archetypes/maven-prototype-javafx/src/main/java/de/hdm_stuttgart/mi/sda2/account/Conf.java b/Sd1/P/Archetypes/maven-prototype-javafx/src/main/java/de/hdm_stuttgart/mi/sda2/account/Conf.java deleted file mode 100644 index f6edf698d..000000000 --- a/Sd1/P/Archetypes/maven-prototype-javafx/src/main/java/de/hdm_stuttgart/mi/sda2/account/Conf.java +++ /dev/null @@ -1,21 +0,0 @@ -package de.hdm_stuttgart.mi.sda2.account; - -import java.util.MissingResourceException; -import java.util.ResourceBundle; - -public class Conf { - private static final String BUNDLE_NAME = "de.hdm_stuttgart.mi.sda2.account.config"; - - private static final ResourceBundle RESOURCE_BUNDLE = - ResourceBundle.getBundle(BUNDLE_NAME); - - private Conf() {} - - public static String get(String key) { - try { - return RESOURCE_BUNDLE.getString(key); - } catch (MissingResourceException e) { - return '!' + key + '!'; - } - } -} diff --git a/Sd1/P/Archetypes/maven-prototype-javafx/src/main/java/de/hdm_stuttgart/mi/sda2/account/GuiDriver.java b/Sd1/P/Archetypes/maven-prototype-javafx/src/main/java/de/hdm_stuttgart/mi/sda2/account/GuiDriver.java deleted file mode 100644 index c28c811d4..000000000 --- a/Sd1/P/Archetypes/maven-prototype-javafx/src/main/java/de/hdm_stuttgart/mi/sda2/account/GuiDriver.java +++ /dev/null @@ -1,97 +0,0 @@ -package de.hdm_stuttgart.mi.sda2.account; - -import javafx.application.Application; -import javafx.geometry.Insets; -import javafx.geometry.Pos; -import javafx.scene.Scene; -import javafx.scene.control.Button; -import javafx.scene.control.Label; -import javafx.scene.control.TextField; -import javafx.scene.layout.GridPane; -import javafx.scene.text.Font; -import javafx.scene.text.FontWeight; -import javafx.scene.text.Text; -import javafx.stage.Stage; - -import org.apache.log4j.Logger; - -import de.hdm_stuttgart.mi.sda2.account.GuiHelper.Dialog; -import de.hdm_stuttgart.mi.sda2.account.GuiHelper.NumberField; - -public class GuiDriver extends Application { - - private final static Logger log = Logger.getLogger(GuiDriver.class); - - final static int - colIndex_0 = 0, - colIndex_1 = 1; - - final Button resetBtn = new Button(Conf.get("resetButton.text")); - final TextField nameField = new TextField(); - final NumberField ageField = new NumberField(); - - public static void main( String[] args ) { - launch(args); - } - - public GuiDriver() { - - resetBtn.setDisable(true); - - nameField.textProperty().addListener(event -> { - log.info("Name value '" + nameField.getText() + "' has been entered"); - resetBtn.setDisable(false); - }); - - ageField.textProperty().addListener(event -> { - log.info("Age value '" + nameField.getText() + "' has been entered"); - resetBtn.setDisable(false); - }); - - resetBtn.setOnAction(event-> { - nameField.setText(""); - ageField.setText(""); - resetBtn.setDisable(true); - Dialog.showInfo(Conf.get("infoFieldReset")); - log.info("re-setting name field"); - }); - } - - @Override - public void start(final Stage primaryStage) { - - primaryStage.setTitle("Sample GUI"); - - final GridPane grid = new GridPane(); - grid.setAlignment(Pos.CENTER); - grid.setHgap(10); - grid.setVgap(10); - grid.setPadding(new Insets(25, 25, 25, 25)); - - int currentRowIndex = 0; - final Text scenetitle = new Text("Simple GUI example"); - scenetitle.setFont(Font.font("Tahoma", FontWeight.NORMAL, 20)); - grid.add(scenetitle, colIndex_0, currentRowIndex, 2, 1); - - currentRowIndex++; - grid.add(new Label("Your name:"), colIndex_0, currentRowIndex); - grid.add(nameField, colIndex_1, currentRowIndex); - - currentRowIndex++; - grid.add(new Label("Your age:"), colIndex_0, currentRowIndex); - grid.add(ageField, colIndex_1, currentRowIndex); - - currentRowIndex++; - grid.add(resetBtn, colIndex_0, currentRowIndex); - - Scene scene = new Scene(grid, 300, 250); - primaryStage.setScene(scene); - primaryStage.show(); - } - - @Override - public void stop() throws Exception { - super.stop(); - log.info("Terminating application"); - } -} \ No newline at end of file diff --git a/Sd1/P/Archetypes/maven-prototype-javafx/src/main/java/de/hdm_stuttgart/mi/sda2/account/GuiHelper/Dialog.java b/Sd1/P/Archetypes/maven-prototype-javafx/src/main/java/de/hdm_stuttgart/mi/sda2/account/GuiHelper/Dialog.java deleted file mode 100644 index a93c06651..000000000 --- a/Sd1/P/Archetypes/maven-prototype-javafx/src/main/java/de/hdm_stuttgart/mi/sda2/account/GuiHelper/Dialog.java +++ /dev/null @@ -1,79 +0,0 @@ -package de.hdm_stuttgart.mi.sda2.account.GuiHelper; - -import java.io.PrintWriter; -import java.io.StringWriter; - -import javafx.scene.control.Alert; -import javafx.scene.control.Alert.AlertType; -import javafx.scene.control.Label; -import javafx.scene.control.TextArea; -import javafx.scene.layout.GridPane; -import javafx.scene.layout.Priority; - -/** - * See http://code.makery.ch/blog/javafx-dialogs-official - * for further explanations. - * - */ -public class Dialog { - - - /** - * Show a modal info box - * @param msg A message to be displayed - */ - public static void showInfo(final String msg) { - final Alert alert = new Alert(AlertType.INFORMATION); - alert.setTitle("Info"); - alert.setContentText(msg); - alert.showAndWait(); - } - - /** - * Showing an error box and terminating without any further error processing - * - * @param msg An informative message - * @param ex The exception to be interpreted by an expert - * @param exitCode The exit code to be used by e.g. the calling process. - * - */ - public static void showExceptionAndExit(final String msg, final Exception ex, int exitCode) { - - final Alert alert = new Alert(AlertType.ERROR); - alert.setTitle("Unrecoverable error"); - alert.setHeaderText("Application will be terminated!"); - alert.setContentText(msg); - - - // Create expandable Exception. - - if (null != ex) { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - ex.printStackTrace(pw); - String exceptionText = sw.toString(); - - Label label = new Label("You may copy and forward this exception stacktrace to an expert:"); - - TextArea textArea = new TextArea(exceptionText); - textArea.setEditable(false); - textArea.setWrapText(true); - - textArea.setMaxWidth(Double.MAX_VALUE); - textArea.setMaxHeight(Double.MAX_VALUE); - GridPane.setVgrow(textArea, Priority.ALWAYS); - GridPane.setHgrow(textArea, Priority.ALWAYS); - - GridPane expContent = new GridPane(); - expContent.setMaxWidth(Double.MAX_VALUE); - expContent.add(label, 0, 0); - expContent.add(textArea, 0, 1); - - // Set expandable Exception into the dialog pane. - alert.getDialogPane().setExpandableContent(expContent); - } - - alert.showAndWait(); - System.exit(exitCode); - } -} diff --git a/Sd1/P/Archetypes/maven-prototype-javafx/src/main/java/de/hdm_stuttgart/mi/sda2/account/GuiHelper/NumberField.java b/Sd1/P/Archetypes/maven-prototype-javafx/src/main/java/de/hdm_stuttgart/mi/sda2/account/GuiHelper/NumberField.java deleted file mode 100644 index ff73cfe55..000000000 --- a/Sd1/P/Archetypes/maven-prototype-javafx/src/main/java/de/hdm_stuttgart/mi/sda2/account/GuiHelper/NumberField.java +++ /dev/null @@ -1,37 +0,0 @@ -package de.hdm_stuttgart.mi.sda2.account.GuiHelper; - -import javafx.beans.value.ChangeListener; -import javafx.beans.value.ObservableValue; -import javafx.scene.control.TextField; - -public class NumberField extends TextField { - - int value = 0; - - public NumberField() { - - setText("0"); - textProperty().addListener(new ChangeListener<String>() { - - @Override - public void changed(ObservableValue<? extends String> observable, - String oldValue, String newValue) { - switch (newValue) { - case "": - case "-": - return; - } - - try { - value = Integer.parseInt(newValue); - } catch (NumberFormatException e) { - setText(oldValue); - } - } - }); - } - - public int getValue() { - return value; - } -} \ No newline at end of file diff --git a/Sd1/P/Archetypes/maven-prototype-javafx/src/main/resources/de/hdm_stuttgart/mi/sda2/account/config.properties b/Sd1/P/Archetypes/maven-prototype-javafx/src/main/resources/de/hdm_stuttgart/mi/sda2/account/config.properties deleted file mode 100644 index 3507ddea7..000000000 --- a/Sd1/P/Archetypes/maven-prototype-javafx/src/main/resources/de/hdm_stuttgart/mi/sda2/account/config.properties +++ /dev/null @@ -1,2 +0,0 @@ -resetButton.text=Reset -infoFieldReset=Fields have been resetted \ No newline at end of file diff --git a/Sd1/P/Archetypes/maven-prototype-javafx/src/main/resources/log4j.properties b/Sd1/P/Archetypes/maven-prototype-javafx/src/main/resources/log4j.properties deleted file mode 100644 index a81103b6e..000000000 --- a/Sd1/P/Archetypes/maven-prototype-javafx/src/main/resources/log4j.properties +++ /dev/null @@ -1,15 +0,0 @@ -#Set root logger level to DEBUG and its only appender to A1. -log4j.rootLogger=DEBUG, A1 - -# A1 is set to be a ConsoleAppender. -log4j.appender.A1=org.apache.log4j.ConsoleAppender - -# A1 uses PatternLayout comforting Eclipse's debugger. -log4j.appender.A1.layout=org.apache.log4j.PatternLayout -log4j.appender.A1.layout.ConversionPattern=%p: %m at %c.%M(%C{1}.java:%L)%n - -# Activate per-class or package logging rules if required. For example -# reducing logging to INFO level for class de.hdm-stuttgart.mi.sda2.account.App -# can be achieved by un-commenting the following line: - -#log4j.logger.de.hdm-stuttgart.mi.sda2.account.App.parse.Group=INFO diff --git a/Sd1/P/Archetypes/maven-prototype-javafx/src/test/java/de/hdm_stuttgart/mi/sda2/account/SimpleTest.java b/Sd1/P/Archetypes/maven-prototype-javafx/src/test/java/de/hdm_stuttgart/mi/sda2/account/SimpleTest.java deleted file mode 100644 index 65e4eb647..000000000 --- a/Sd1/P/Archetypes/maven-prototype-javafx/src/test/java/de/hdm_stuttgart/mi/sda2/account/SimpleTest.java +++ /dev/null @@ -1,15 +0,0 @@ -package de.hdm_stuttgart.mi.sda2.account; - -import org.junit.Assert; -import org.junit.Test; - - -/** - * Unit test for simple App. - */ -public class SimpleTest { - @Test - public void testApp() { - Assert.assertEquals(1, 1); - } -} diff --git a/Sd1/P/Archetypes/mi-maven-archetype-javafxml/.gitignore b/Sd1/P/Archetypes/mi-maven-archetype-javafxml/.gitignore deleted file mode 100644 index 8bd3a0588..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-javafxml/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/target/ -/.settings/ -/.classpath -/.project diff --git a/Sd1/P/Archetypes/mi-maven-archetype-javafxml/Readme.txt b/Sd1/P/Archetypes/mi-maven-archetype-javafxml/Readme.txt deleted file mode 100644 index c0d49026f..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-javafxml/Readme.txt +++ /dev/null @@ -1,8 +0,0 @@ -Final success via http://maven.apache.org/archetype/maven-archetype-plugin/examples/create-with-property-file.html - -Create Project from local repository using: - - mvn archetype:generate -DarchetypeCatalog=local -DarchetypeGroupId=de.hdm-stuttgart.mi \ - -DarchetypeArtifactId=mi-maven-archetype-javaxml -DarchetypeVersion=1.0 \ - -DgroupId=qq -DartifactId=ww -DinteractiveMode=false - diff --git a/Sd1/P/Archetypes/mi-maven-archetype-javafxml/pom.xml b/Sd1/P/Archetypes/mi-maven-archetype-javafxml/pom.xml deleted file mode 100644 index 61563a5a2..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-javafxml/pom.xml +++ /dev/null @@ -1,18 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.mi</groupId> - <artifactId>mi-maven-archetype-javafxml</artifactId> - <version>1.0</version> - <packaging>jar</packaging> - - <name>JavaFXml Basic Archetype</name> - - <description> - The JavaFX Basic Archetype provides core functionality for assembling JavaFX applications. - This archetype is derived from https://github.com/zonski/javafx-basic-archetype - </description> - - -</project> diff --git a/Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/META-INF/maven/archetype-metadata.xml b/Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/META-INF/maven/archetype-metadata.xml deleted file mode 100644 index a5e355e6f..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/META-INF/maven/archetype-metadata.xml +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<archetype-descriptor xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd" name="def" - xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <fileSets> - <fileSet filtered="true" packaged="true" encoding="UTF-8"> - <directory>src/main/java</directory> - <includes> - <include>**/*.java</include> - </includes> - </fileSet> - <fileSet filtered="true" encoding="UTF-8"> - <directory>src/main/resources</directory> - <includes> - <include>log4j2.xml</include> - <include>fxml/hello.fxml</include> - <include>styles/styles.css</include> - </includes> - </fileSet> - <fileSet filtered="false" encoding="UTF-8"> - <directory>src/main/resources</directory> - <includes> - <include>images/background.jpg</include> - </includes> - </fileSet> - <fileSet filtered="true" packaged="true" encoding="UTF-8"> - <directory>src/test/java</directory> - <includes> - <include>**/*.java</include> - </includes> - </fileSet> - <fileSet filtered="false" packaged="false" encoding="UTF-8"> - <directory/> - <includes> - <include>.gitignore</include> - </includes> - </fileSet> - </fileSets> -</archetype-descriptor> diff --git a/Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/.gitignore b/Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/.gitignore deleted file mode 100644 index a1c3ab4d0..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/target/ -/.settings/ -.classpath -.project diff --git a/Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/pom.xml b/Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/pom.xml deleted file mode 100644 index 64a4fb284..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/pom.xml +++ /dev/null @@ -1,84 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>${groupId}</groupId> - <artifactId>${artifactId}</artifactId> - <version>${version}</version> - <packaging>jar</packaging> - - <name>${artifactId}</name> - - <!--Fixme: Add a sensible project related domain here --> - <url>http://somedomain.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - </properties> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-api</artifactId> - <version>2.1</version> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-core</artifactId> - <version>2.1</version> - </dependency> - - </dependencies> - - <build> - <plugins> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>3.1</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.10.1</version> - <configuration/> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-shade-plugin</artifactId> - <version>2.3</version> - <configuration> - <transformers> - <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> - <manifestEntries> - <Main-Class>${package}.App</Main-Class> - </manifestEntries> - </transformer> - </transformers> - </configuration> - <executions> - <execution> - <phase>package</phase> - <goals> - <goal>shade</goal> - </goals> - </execution> - </executions> - </plugin> - - </plugins> - </build> -</project> diff --git a/Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/src/main/java/App.java b/Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/src/main/java/App.java deleted file mode 100644 index da3ee6e70..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/src/main/java/App.java +++ /dev/null @@ -1,45 +0,0 @@ -package $package; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -import javafx.application.Application; -import javafx.fxml.FXMLLoader; -import javafx.scene.Parent; -import javafx.scene.Scene; -import javafx.stage.Stage; - -/** - * Driver class for a simple JavaFX demonstration. - * - */ -public class App extends Application { - - - private static final Logger log = LogManager.getLogger(App.class); - - /** - * @param args unused - */ - public static void main(String[] args) { - launch(args); - } - - public void start(Stage stage) throws Exception { - - log.info("Starting Hello JavaFX and Maven demonstration application"); - - final String fxmlFile = "/fxml/hello.fxml"; - log.debug("Loading FXML for main view from: {}", fxmlFile); - final FXMLLoader loader = new FXMLLoader(); - final Parent rootNode = (Parent) loader.load(getClass().getResourceAsStream(fxmlFile)); - - log.debug("Showing JFX scene"); - final Scene scene = new Scene(rootNode, 400, 200); - scene.getStylesheets().add("/styles/styles.css"); - - stage.setTitle("Hello JavaFX and Maven"); - stage.setScene(scene); - stage.show(); - } -} \ No newline at end of file diff --git a/Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/src/main/java/HelloController.java b/Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/src/main/java/HelloController.java deleted file mode 100644 index 16cccad4f..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/src/main/java/HelloController.java +++ /dev/null @@ -1,52 +0,0 @@ -package $package; - -import javafx.fxml.FXML; -import javafx.scene.control.Label; -import javafx.scene.control.TextField; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -/** - * A simple controller providing a callback method {@link #sayHello()} - * - */ -public class HelloController { - private final static Logger log = LogManager.getLogger(HelloController.class); - - @FXML private TextField firstNameField; - @FXML private TextField lastNameField; - @FXML private Label helloLabel; - - /** - * deriving a greeting message from firstName and lastName - */ - @FXML - public void sayHello() { - - final String firstName = firstNameField.getText(); - final String lastName = lastNameField.getText(); - - final StringBuilder builder = new StringBuilder(); - - if (!firstName.trim().equals("")) { - builder.append(firstName); - } - - if (!lastName.trim().equals("")) { - if (builder.length() > 0) { - builder.append(" "); - } - builder.append(lastName); - } - - if (builder.length() > 0) { - final String name = builder.toString(); - log.debug("Saying hello to " + name); - helloLabel.setText("Hello " + name); - } else { - log.debug("Neither first name nor last name was set, saying hello to anonymous person"); - helloLabel.setText("Hello mysterious person"); - } - } -} diff --git a/Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/src/main/resources/fxml/hello.fxml b/Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/src/main/resources/fxml/hello.fxml deleted file mode 100644 index 3aeee6f6a..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/src/main/resources/fxml/hello.fxml +++ /dev/null @@ -1,32 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<?import javafx.geometry.*?> -<?import javafx.scene.control.*?> -<?import java.lang.*?> -<?import javafx.scene.layout.*?> - -<GridPane fx:controller="${package}.HelloController" - hgap="5.0" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" - prefHeight="402.0" prefWidth="600.0" styleClass="main-panel" stylesheets="@/styles/styles.css" vgap="5.0" - xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" > - <columnConstraints> - <ColumnConstraints hgrow="SOMETIMES" maxWidth="319.0" minWidth="10.0" prefWidth="279.0" /> - <ColumnConstraints hgrow="SOMETIMES" maxWidth="470.0" minWidth="10.0" prefWidth="321.0" /> - </columnConstraints> - <rowConstraints> - <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> - <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> - <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> - </rowConstraints> - <children> - <Label text="First name:" /> - <Label text="Last name:" GridPane.rowIndex="1" /> - <Button mnemonicParsing="false" onAction="#sayHello" text="Say hello" GridPane.rowIndex="2" /> - <TextField fx:id="firstNameField" GridPane.columnIndex="1" /> - <TextField fx:id="lastNameField" GridPane.columnIndex="1" GridPane.rowIndex="1" /> - <Label fx:id="helloLabel" styleClass="hello-message" text=" " GridPane.columnIndex="1" GridPane.rowIndex="2" /> - </children> - <padding> - <Insets bottom="20.0" left="20.0" right="20.0" top="20.0" /> - </padding> -</GridPane> diff --git a/Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/src/main/resources/images/background.jpg b/Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/src/main/resources/images/background.jpg deleted file mode 100644 index d46fe9da99a23bc3d725cb92eb82dc7294198bbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52308 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 Wf!*3bKn7F~EM!Q#0f+dC5C7T3k&B!F diff --git a/Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/src/main/resources/log4j2.xml b/Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/src/main/resources/log4j2.xml deleted file mode 100644 index 21f2d2e81..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/src/main/resources/log4j2.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Configuration> - <Appenders> - <File name="A1" fileName="A1.log" append="false"> - <PatternLayout pattern="%t %-5p %c{2} - %m%n"/> - </File> - <Console name="STDOUT" target="SYSTEM_OUT"> - <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/> - </Console> - </Appenders> - <Loggers> - - <!-- You my want to define class or package level per-logger rules --> - <Logger name="${package}.App" level="debug"> - <AppenderRef ref="A1"/> - </Logger> - <Root level="debug"> - <AppenderRef ref="STDOUT"/> - </Root> - </Loggers> -</Configuration> \ No newline at end of file diff --git a/Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/src/main/resources/styles/styles.css b/Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/src/main/resources/styles/styles.css deleted file mode 100644 index 81366bf67..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/src/main/resources/styles/styles.css +++ /dev/null @@ -1,34 +0,0 @@ -/* Application wide styles */ - -.label { - -fx-font-size: 12px; - -fx-font-weight: bold; - -fx-text-fill: #333333; - -fx-effect: dropshadow( gaussian , rgba(255,255,255,0.5) , 0,0,0,1 ); -} - -.button { - -fx-text-fill: white; - -fx-font-family: "Arial Narrow"; - -fx-font-weight: bold; - -fx-background-color: linear-gradient(#61a2b1, #2A5058); - -fx-effect: dropshadow( three-pass-box , rgba(0,0,0,0.6) , 5, 0.0 , 0 , 1 ); -} - -.button:hover{ - -fx-background-color: #395bae; -} - -/* Component specific styles */ - - -.main-panel { - -fx-background-image: url("../images/background.jpg"); -} - -.hello-message { - -fx-text-fill: #AA0000; - -fx-font-weight: bold; - -fx-effect: dropshadow( gaussian , rgba(255,255,255,0.5) , 0,0,0,1 ); -} - diff --git a/Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/src/test/java/AppTest.java b/Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/src/test/java/AppTest.java deleted file mode 100644 index e158e33c7..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-javafxml/src/main/resources/archetype-resources/src/test/java/AppTest.java +++ /dev/null @@ -1,17 +0,0 @@ -package $package; - -import org.junit.Assert; -import org.junit.Test; - -/** - * Unit test for simple App. - */ -public class AppTest { - /** - * Dummy test method - */ - @Test - public void testApp() { - Assert.assertTrue( true ); - } -} diff --git a/Sd1/P/Archetypes/mi-maven-archetype-quickstart/.gitignore b/Sd1/P/Archetypes/mi-maven-archetype-quickstart/.gitignore deleted file mode 100644 index 8bd3a0588..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-quickstart/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/target/ -/.settings/ -/.classpath -/.project diff --git a/Sd1/P/Archetypes/mi-maven-archetype-quickstart/Readme.txt b/Sd1/P/Archetypes/mi-maven-archetype-quickstart/Readme.txt deleted file mode 100644 index e74941581..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-quickstart/Readme.txt +++ /dev/null @@ -1,8 +0,0 @@ -Final success via http://maven.apache.org/archetype/maven-archetype-plugin/examples/create-with-property-file.html - -Create Project from local repository using: - - mvn archetype:generate -DarchetypeCatalog=local -DarchetypeGroupId=de.hdm-stuttgart.mi \ - -DarchetypeArtifactId=mi-maven-archetype-quickstart -DarchetypeVersion=1.1 \ - -DgroupId=qq -DartifactId=ww -DinteractiveMode=false - diff --git a/Sd1/P/Archetypes/mi-maven-archetype-quickstart/pom.xml b/Sd1/P/Archetypes/mi-maven-archetype-quickstart/pom.xml deleted file mode 100644 index e1c17ee07..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-quickstart/pom.xml +++ /dev/null @@ -1,10 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.mi</groupId> - <artifactId>mi-maven-archetype-quickstart</artifactId> - <version>1.1</version> - <packaging>jar</packaging> - -</project> diff --git a/Sd1/P/Archetypes/mi-maven-archetype-quickstart/src/main/resources/META-INF/maven/archetype-metadata.xml b/Sd1/P/Archetypes/mi-maven-archetype-quickstart/src/main/resources/META-INF/maven/archetype-metadata.xml deleted file mode 100644 index 6948a1804..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-quickstart/src/main/resources/META-INF/maven/archetype-metadata.xml +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<archetype-descriptor xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd" name="def" - xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <fileSets> - <fileSet filtered="true" packaged="true" encoding="UTF-8"> - <directory>src/main/java</directory> - <includes> - <include>**/*.java</include> - </includes> - </fileSet> - <fileSet filtered="true" encoding="UTF-8"> - <directory>src/main/resources</directory> - <includes> - <include>**/*.xml</include> - </includes> - </fileSet> - <fileSet filtered="true" packaged="true" encoding="UTF-8"> - <directory>src/test/java</directory> - <includes> - <include>**/*.java</include> - </includes> - </fileSet> - <fileSet filtered="false" packaged="false" encoding="UTF-8"> - <directory/> - <includes> - <include>.gitignore</include> - </includes> - </fileSet> - </fileSets> -</archetype-descriptor> diff --git a/Sd1/P/Archetypes/mi-maven-archetype-quickstart/src/main/resources/archetype-resources/.gitignore b/Sd1/P/Archetypes/mi-maven-archetype-quickstart/src/main/resources/archetype-resources/.gitignore deleted file mode 100644 index a1c3ab4d0..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-quickstart/src/main/resources/archetype-resources/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/target/ -/.settings/ -.classpath -.project diff --git a/Sd1/P/Archetypes/mi-maven-archetype-quickstart/src/main/resources/archetype-resources/pom.xml b/Sd1/P/Archetypes/mi-maven-archetype-quickstart/src/main/resources/archetype-resources/pom.xml deleted file mode 100644 index 64a4fb284..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-quickstart/src/main/resources/archetype-resources/pom.xml +++ /dev/null @@ -1,84 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>${groupId}</groupId> - <artifactId>${artifactId}</artifactId> - <version>${version}</version> - <packaging>jar</packaging> - - <name>${artifactId}</name> - - <!--Fixme: Add a sensible project related domain here --> - <url>http://somedomain.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - </properties> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-api</artifactId> - <version>2.1</version> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-core</artifactId> - <version>2.1</version> - </dependency> - - </dependencies> - - <build> - <plugins> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>3.1</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.10.1</version> - <configuration/> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-shade-plugin</artifactId> - <version>2.3</version> - <configuration> - <transformers> - <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> - <manifestEntries> - <Main-Class>${package}.App</Main-Class> - </manifestEntries> - </transformer> - </transformers> - </configuration> - <executions> - <execution> - <phase>package</phase> - <goals> - <goal>shade</goal> - </goals> - </execution> - </executions> - </plugin> - - </plugins> - </build> -</project> diff --git a/Sd1/P/Archetypes/mi-maven-archetype-quickstart/src/main/resources/archetype-resources/src/main/java/App.java b/Sd1/P/Archetypes/mi-maven-archetype-quickstart/src/main/resources/archetype-resources/src/main/java/App.java deleted file mode 100644 index 394e27559..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-quickstart/src/main/resources/archetype-resources/src/main/java/App.java +++ /dev/null @@ -1,26 +0,0 @@ -package $package; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - - -/** - * A simple http://logging.apache.org/log4j/2.x demo, - * see file log4j2.xml for configuration options. - * - */ -public class App { - private static Logger log = LogManager.getLogger(App.class); - - /** - * @param args Unused - */ - public static void main( String[] args ) { - System.out.println( "Hello World!" ); - - log.debug("With respect to logging you may want to configure file "); - log.debug("'src/main/resources/log4j2.xml' to suit your needs."); - log.debug("This config file 'log4j2.xml' will result in 'A1.log'"); - log.debug("file containing logging output as well."); - } -} diff --git a/Sd1/P/Archetypes/mi-maven-archetype-quickstart/src/main/resources/archetype-resources/src/main/resources/log4j2.xml b/Sd1/P/Archetypes/mi-maven-archetype-quickstart/src/main/resources/archetype-resources/src/main/resources/log4j2.xml deleted file mode 100644 index 5959c70ea..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-quickstart/src/main/resources/archetype-resources/src/main/resources/log4j2.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Configuration> - <Appenders> - <File name="A1" fileName="A1.log" append="false"> - <PatternLayout pattern="%t %-5p %c{2} - %m%n"/> - </File> - <Console name="STDOUT" target="SYSTEM_OUT"> - <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/> - </Console> - </Appenders> - <Loggers> - - <!-- You my want to define class or package level per-logger rules --> - <Logger name="${package}.App" level="debug"> - <AppenderRef ref="A1"/> - </Logger> - <Root level="info"> - <AppenderRef ref="STDOUT"/> - </Root> - </Loggers> -</Configuration> \ No newline at end of file diff --git a/Sd1/P/Archetypes/mi-maven-archetype-quickstart/src/main/resources/archetype-resources/src/test/java/AppTest.java b/Sd1/P/Archetypes/mi-maven-archetype-quickstart/src/main/resources/archetype-resources/src/test/java/AppTest.java deleted file mode 100644 index e158e33c7..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-quickstart/src/main/resources/archetype-resources/src/test/java/AppTest.java +++ /dev/null @@ -1,17 +0,0 @@ -package $package; - -import org.junit.Assert; -import org.junit.Test; - -/** - * Unit test for simple App. - */ -public class AppTest { - /** - * Dummy test method - */ - @Test - public void testApp() { - Assert.assertTrue( true ); - } -} diff --git a/Sd1/P/Archetypes/mi-maven-archetype-sax/.gitignore b/Sd1/P/Archetypes/mi-maven-archetype-sax/.gitignore deleted file mode 100644 index 8bd3a0588..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-sax/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/target/ -/.settings/ -/.classpath -/.project diff --git a/Sd1/P/Archetypes/mi-maven-archetype-sax/Readme.txt b/Sd1/P/Archetypes/mi-maven-archetype-sax/Readme.txt deleted file mode 100644 index 76c459d2b..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-sax/Readme.txt +++ /dev/null @@ -1,8 +0,0 @@ -Final success via http://maven.apache.org/archetype/maven-archetype-plugin/examples/create-with-property-file.html - -Create Project from local repository using: - - mvn archetype:generate -DarchetypeCatalog=local -DarchetypeGroupId=de.hdm-stuttgart.mi \ - -DarchetypeArtifactId=mi-maven-archetype-sax -DarchetypeVersion=1.0 \ - -DgroupId=qq -DartifactId=ww -DinteractiveMode=false - diff --git a/Sd1/P/Archetypes/mi-maven-archetype-sax/pom.xml b/Sd1/P/Archetypes/mi-maven-archetype-sax/pom.xml deleted file mode 100644 index 952fed200..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-sax/pom.xml +++ /dev/null @@ -1,10 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.mi</groupId> - <artifactId>mi-maven-archetype-sax</artifactId> - <version>1.0</version> - <packaging>jar</packaging> - -</project> diff --git a/Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/META-INF/maven/archetype-metadata.xml b/Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/META-INF/maven/archetype-metadata.xml deleted file mode 100644 index 6948a1804..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/META-INF/maven/archetype-metadata.xml +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<archetype-descriptor xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd" name="def" - xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <fileSets> - <fileSet filtered="true" packaged="true" encoding="UTF-8"> - <directory>src/main/java</directory> - <includes> - <include>**/*.java</include> - </includes> - </fileSet> - <fileSet filtered="true" encoding="UTF-8"> - <directory>src/main/resources</directory> - <includes> - <include>**/*.xml</include> - </includes> - </fileSet> - <fileSet filtered="true" packaged="true" encoding="UTF-8"> - <directory>src/test/java</directory> - <includes> - <include>**/*.java</include> - </includes> - </fileSet> - <fileSet filtered="false" packaged="false" encoding="UTF-8"> - <directory/> - <includes> - <include>.gitignore</include> - </includes> - </fileSet> - </fileSets> -</archetype-descriptor> diff --git a/Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/archetype-resources/.gitignore b/Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/archetype-resources/.gitignore deleted file mode 100644 index a1c3ab4d0..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/archetype-resources/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/target/ -/.settings/ -.classpath -.project diff --git a/Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/archetype-resources/pom.xml b/Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/archetype-resources/pom.xml deleted file mode 100644 index 64a4fb284..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/archetype-resources/pom.xml +++ /dev/null @@ -1,84 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>${groupId}</groupId> - <artifactId>${artifactId}</artifactId> - <version>${version}</version> - <packaging>jar</packaging> - - <name>${artifactId}</name> - - <!--Fixme: Add a sensible project related domain here --> - <url>http://somedomain.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - </properties> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-api</artifactId> - <version>2.1</version> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-core</artifactId> - <version>2.1</version> - </dependency> - - </dependencies> - - <build> - <plugins> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>3.1</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.10.1</version> - <configuration/> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-shade-plugin</artifactId> - <version>2.3</version> - <configuration> - <transformers> - <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> - <manifestEntries> - <Main-Class>${package}.App</Main-Class> - </manifestEntries> - </transformer> - </transformers> - </configuration> - <executions> - <execution> - <phase>package</phase> - <goals> - <goal>shade</goal> - </goals> - </execution> - </executions> - </plugin> - - </plugins> - </build> -</project> diff --git a/Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/archetype-resources/src/main/java/App.java b/Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/archetype-resources/src/main/java/App.java deleted file mode 100644 index c754212d3..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/archetype-resources/src/main/java/App.java +++ /dev/null @@ -1,52 +0,0 @@ -package $package; - -import java.io.IOException; - -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.xml.sax.SAXException; -import org.xml.sax.XMLReader; - -import ${package}.handler.SaxContentHandler; -import ${package}.handler.SaxErrorHandler; - - -/** - * A simple SAX parser demo - * - */ -public class App { - private static final Logger log = LogManager.getLogger(App.class); - - /** - * @param args Unused - * @throws SAXException - * @throws ParserConfigurationException - * @throws IOException - */ - public static void main( String[] args ) throws ParserConfigurationException, SAXException, IOException { - - log.info("Creating SAX parser factory"); - final SAXParserFactory saxPf = SAXParserFactory.newInstance(); - - log.info("Creating SAX parser"); - final SAXParser saxParser = saxPf.newSAXParser(); - final XMLReader xmlReader = saxParser.getXMLReader(); - - log.info("Enabling namespaces and namespace prefix processing"); - xmlReader.setFeature("http://xml.org/sax/features/namespaces", true); - xmlReader.setFeature("http://xml.org/sax/features/namespace-prefixes", true); - - log.info("Registering content- and error handler instances"); - xmlReader.setContentHandler(new SaxContentHandler()); - xmlReader.setErrorHandler(new SaxErrorHandler()); - - final String xmlDocumentInstanceFilename = "src/main/resources/testdata.xml"; - log.info("Start parsing file '" + xmlDocumentInstanceFilename + "'"); - xmlReader.parse(xmlDocumentInstanceFilename); - } -} diff --git a/Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/archetype-resources/src/main/java/handler/SaxContentHandler.java b/Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/archetype-resources/src/main/java/handler/SaxContentHandler.java deleted file mode 100644 index 29b329559..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/archetype-resources/src/main/java/handler/SaxContentHandler.java +++ /dev/null @@ -1,88 +0,0 @@ -package ${package}.handler; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.xml.sax.Attributes; -import org.xml.sax.ContentHandler; -import org.xml.sax.Locator; -import org.xml.sax.SAXException; - -public class SaxContentHandler implements ContentHandler { - private static final Logger log = LogManager.getLogger(SaxContentHandler.class); - - Locator locator = null; - - @Override - public void setDocumentLocator(Locator locator) { - this.locator = locator; - } - - @Override - public void startDocument() throws SAXException { - log.info(displayWithLocation("Opening document")); - } - - @Override - public void endDocument() throws SAXException { - log.info(displayWithLocation("Closing document")); - } - - @Override - public void startPrefixMapping(String prefix, String uri) - throws SAXException { - log.info(displayWithLocation("Start mapping prefix '" + prefix + "' to '" + uri + "'")); - } - - @Override - public void endPrefixMapping(String prefix) throws SAXException { - log.info(displayWithLocation("End mapping prefix '" + prefix + "'")); - } - - @Override - public void startElement(String uri, String localName, String qName, - Attributes atts) throws SAXException { - log.info(displayWithLocation("Opening Element '" + localName + "' of namespace " + uri + "', full name='" + qName + "'")); - } - - @Override - public void endElement(String uri, String localName, String qName) - throws SAXException { - log.info(displayWithLocation("Closing Element '" + localName + "' of namespace " + uri + "', full name='" + qName + "'")); - } - - @Override - public void characters(char[] ch, int start, int length) - throws SAXException { - final String content = new String(ch, start, length).trim(); - if (content.equals("")) { - log.info(displayWithLocation("Textual content is just whitespace")); - } else { - log.info(displayWithLocation("Textual content '" + new String(ch, start, length) + "'")); - } - } - - @Override - public void ignorableWhitespace(char[] ch, int start, int length) - throws SAXException { - log.info(displayWithLocation("Ignorable whitespace")); - } - - @Override - public void processingInstruction(String target, String data) - throws SAXException { - log.info(displayWithLocation("Processing instruction '" + target + "' with value '" + data + "'")); - } - - @Override - public void skippedEntity(String name) throws SAXException { - log.info(displayWithLocation("Skipped entity '" + name + "'")); - } - - String displayWithLocation(final String saxMsg) { - if (null == locator) { - return saxMsg; - } else { - return "File position (" + locator.getLineNumber() + ", " + locator.getColumnNumber() + "): " + saxMsg; - } - } -} \ No newline at end of file diff --git a/Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/archetype-resources/src/main/java/handler/SaxErrorHandler.java b/Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/archetype-resources/src/main/java/handler/SaxErrorHandler.java deleted file mode 100644 index 3a37205f3..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/archetype-resources/src/main/java/handler/SaxErrorHandler.java +++ /dev/null @@ -1,25 +0,0 @@ -package ${package}.handler; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.xml.sax.ErrorHandler; -import org.xml.sax.SAXException; -import org.xml.sax.SAXParseException; - -public class SaxErrorHandler implements ErrorHandler { - private static final Logger log = LogManager.getLogger(SaxErrorHandler.class); - - public void warning(SAXParseException e) { - log.warn("[Warning]" + getLocationString(e)); - } - public void error(SAXParseException e) { - log.error("[Error]" + getLocationString(e)); - } - public void fatalError(SAXParseException e) throws SAXException { - log.fatal("[Fatal Error]" + getLocationString(e)); - } - private String getLocationString(SAXParseException e) { - return " line " + e.getLineNumber() + - ", column " + e.getColumnNumber()+ ":" + e.getMessage(); - } -} diff --git a/Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/archetype-resources/src/main/resources/log4j2.xml b/Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/archetype-resources/src/main/resources/log4j2.xml deleted file mode 100644 index d5e970d22..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/archetype-resources/src/main/resources/log4j2.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Configuration> - <Appenders> - <File name="A1" fileName="A1.log" append="false"> - <PatternLayout pattern="%t %-5p %c{2} - %m%n"/> - </File> - <Console name="STDOUT" target="SYSTEM_OUT"> - <PatternLayout pattern="%C{2} (%F:%L) - %m%n"/> - </Console> - </Appenders> - <Loggers> - - <!-- You my want to define class or package level per-logger rules --> - <Logger name="${package}.App" level="debug"> - <AppenderRef ref="A1"/> - </Logger> - <Root level="debug"> - <AppenderRef ref="STDOUT"/> - </Root> - </Loggers> -</Configuration> \ No newline at end of file diff --git a/Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/archetype-resources/src/main/resources/testdata.xml b/Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/archetype-resources/src/main/resources/testdata.xml deleted file mode 100644 index c09cbbbb1..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/archetype-resources/src/main/resources/testdata.xml +++ /dev/null @@ -1,8 +0,0 @@ -<root:top xmlns:root="www.mi.hdm-stuttgart.de/sda1.root" - xmlns:content="www.mi.hdm-stuttgart.de/sda1.content"> - - <?xml-stylesheet type="text/xsl" href="style.xsl"?> - - <content:person>Eve</content:person> - <content:person>Adam</content:person> -</root:top> \ No newline at end of file diff --git a/Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/archetype-resources/src/test/java/AppTest.java b/Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/archetype-resources/src/test/java/AppTest.java deleted file mode 100644 index e158e33c7..000000000 --- a/Sd1/P/Archetypes/mi-maven-archetype-sax/src/main/resources/archetype-resources/src/test/java/AppTest.java +++ /dev/null @@ -1,17 +0,0 @@ -package $package; - -import org.junit.Assert; -import org.junit.Test; - -/** - * Unit test for simple App. - */ -public class AppTest { - /** - * Dummy test method - */ - @Test - public void testApp() { - Assert.assertTrue( true ); - } -} diff --git a/Sd1/P/Array/arraycalcExercise/.gitignore b/Sd1/P/Array/arraycalcExercise/.gitignore deleted file mode 100644 index 4e247eee2..000000000 --- a/Sd1/P/Array/arraycalcExercise/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project diff --git a/Sd1/P/Array/arraycalcExercise/pom.xml b/Sd1/P/Array/arraycalcExercise/pom.xml deleted file mode 100644 index ac4f44495..000000000 --- a/Sd1/P/Array/arraycalcExercise/pom.xml +++ /dev/null @@ -1,58 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>arraycalcExercise</artifactId> - <version>2.0</version> - <packaging>jar</packaging> - - <name>arraycalcExercise</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/Array/arraycalcExercise/src/main/java/de/hdm_stuttgart/mi/sd1/store/Arraymethods.java b/Sd1/P/Array/arraycalcExercise/src/main/java/de/hdm_stuttgart/mi/sd1/store/Arraymethods.java deleted file mode 100644 index 5f5bb6cbe..000000000 --- a/Sd1/P/Array/arraycalcExercise/src/main/java/de/hdm_stuttgart/mi/sd1/store/Arraymethods.java +++ /dev/null @@ -1,103 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.store; - -/** - * A collection of methods dealing with arrays - * - */ -public class Arraymethods { - - /** - * - * @param values The array to be searched - * @param searchValue The value to be found - * - * @return The index of the first occurrence of searchValue - * in values if exists, a value smaller than zero otherwise - */ - public static int findIndex(int[] values, int searchValue) { - return 0; // TODO - } - - /** - * Check whether two arrays contain identical values in identical - * order. Thus the arrays [-7, 1] and [1, -7] shall be regarded as - * being different. - * - * @param a the first array to be compared. - * @param b the second array to be compared. - * @return true if a[] and b[] are equal, false otherwise. - */ - public static boolean isEqual(int a[], int b[]) { - return false; //TODO - } - - /** - * Swap the contents of two arrays. If both arrays differ in size - * exchange only the "common" portions. Thus if we have e.g. - * a = [ 3, 5, -3] and - * b = [-1, 4] - * - * swapping should only affect the first two positions: - * - * a = [-1, 4, -3] and - * b = [ 3, 5] - * - * @param a The first array to be swapped - * @param b The second array to be swapped - * - * @return The number of elements being swapped. This is equal - * to the minimum of both arrays' length. - */ - public static int swap(int a[], int b[]) { - final int swapCount = Math.min(a.length, b.length); - for (int i = 0; i < swapCount; i++) { - final int tmp = a[i]; - a[i] = b[i]; - b[i] = tmp; - } - return swapCount; - } - - /** - * Create a new array by appending all values of b[] - * at the end of a[]. Thus e.g. a=[1, -7, 1] and b=[0, 5] - * shall be concatenated to [1, -7, 1, 0, 5]. - * - * @param a The first array. - * @param b The second array. - * @return The concatenation of all values from a and b. - */ - public static int[] concat(int a[], int b[]) { - return null; // TODO - } - - /** - * Check whether a given string is a palindrome or not. Test cases - * are being supplied at http://www.palindromelist.net - * - * @param candidate The possible palindrome string. - * @return True if candidate is a palindrome with letter case - * being ignored, false otherwise. Non-letter characters like space, - * ?,;:. will be ignored as well. - */ - public static boolean isPalindrome(final String candidate) { - return false; - } - - /** - * Difficult! - * - * Check whether two arrays contain identical values having - * identical multiplicity irrespective of ordering. Thus the - * arrays [-7, 1] and [1, -7] shall be regarded as - * equivalent whereas [7, 1, 1] and [7, 1, 7] are divergent due to - * different multiplicity of elements being contained. - * - * @param a the first array to be compared. - * @param b the second array to be compared. - * @return true if a[] and b[] contain the same elements having identical multiplicity, false otherwise. - */ - public static boolean containsSameElements(int a[], int b[]) { - return true; - } -} diff --git a/Sd1/P/Array/arraycalcExercise/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java b/Sd1/P/Array/arraycalcExercise/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java deleted file mode 100644 index 6c0f8cf8d..000000000 --- a/Sd1/P/Array/arraycalcExercise/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Various array and string method implementations - * - */ -package de.hdm_stuttgart.mi.sd1.store; \ No newline at end of file diff --git a/Sd1/P/Array/arraycalcExercise/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/ArrayMethodTests.java b/Sd1/P/Array/arraycalcExercise/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/ArrayMethodTests.java deleted file mode 100644 index 8a83bd791..000000000 --- a/Sd1/P/Array/arraycalcExercise/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/ArrayMethodTests.java +++ /dev/null @@ -1,130 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.fraction; - -import org.junit.Test; - -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.assertFalse; - -import java.util.Arrays; - -import de.hdm_stuttgart.mi.sd1.store.Arraymethods; - -@SuppressWarnings("javadoc") -public class ArrayMethodTests { - - @Test - public void testFindIndex(){ - assertEquals(Arraymethods.findIndex(new int[]{1, 3, -3, 5}, -3), 2); - assertEquals(Arraymethods.findIndex(new int[]{1, -3, -3, 5}, -3), 1); - assertEquals(Arraymethods.findIndex(new int[]{1, -3, 9, -3, 5}, -3), 1); - assertTrue(Arraymethods.findIndex(new int[]{1, 3, 2, 5}, 4) < 0); - } - - @Test - public void testIsEqual() { - assertTrue(Arraymethods.isEqual( // empty array - new int[]{}, new int[]{})); - - assertTrue(Arraymethods.isEqual( // Just one value - new int[]{7}, new int[]{7})); - - assertTrue(Arraymethods.isEqual( - new int[]{1, 3, -3, 5}, new int[]{1, 3, -3, 5})); - - assertFalse(Arraymethods.isEqual( - new int[]{1, 3, -3, 5}, new int[]{1, 3, -3})); - - assertFalse(Arraymethods.isEqual( - new int[]{1, 3, -3}, new int[]{1, 3, -3, 5})); - } - - @Test - public void testSwap() { - final int[] - a = {1, 3, -4, 7, 7}, - b = {-5, 2, 4, 1, 12}, - aCopy = Arrays.copyOf(a, a.length), - bCopy = Arrays.copyOf(b, b.length); - - Arraymethods.swap(aCopy, bCopy); // Swapping a and b - assertArrayEquals(b, aCopy); - assertArrayEquals(a, bCopy); - - Arraymethods.swap(aCopy, bCopy);// Swapping a and b again==> revert to start - assertArrayEquals(a, aCopy); - assertArrayEquals(b, bCopy); - - final int[] c = {-5, 2, 4}; - - Arraymethods.swap(aCopy, c); // Different sizes - assertArrayEquals(new int[]{-5, 2, 4, 7, 7}, aCopy); - assertArrayEquals(new int[]{1, 3, -4}, c); - } - - @Test - public void testConcat() { - assertArrayEquals(new int[]{}, - Arraymethods.concat(new int[]{}, new int[]{})); - - assertArrayEquals(new int[]{1, 8}, - Arraymethods.concat(new int[]{1}, new int[]{8})); - - assertArrayEquals(new int[]{1, 7}, - Arraymethods.concat(new int[]{}, new int[]{1, 7})); - - assertArrayEquals(new int[]{1, 7}, - Arraymethods.concat(new int[]{1, 7}, new int[]{})); - - assertArrayEquals(new int[]{1, 7, 3, -1, -2}, - Arraymethods.concat(new int[]{1, 7}, new int[]{3, -1, -2})); - - assertArrayEquals(new int[]{9, 9, 8, 8}, - Arraymethods.concat(new int[]{9}, new int[]{9, 8, 8})); - } - - @Test - public void testIsPalindrome() { - // Examples from http://www.palindromelist.net - - final String[] palindromes = { - "A Santa at Nasa", - "Able was I, ere I saw Elba", - "Borrow or rob?"}; - - for (final String p: palindromes) { - assertTrue(p, Arraymethods.isPalindrome(p)); - } - - final String[] nonPalindromes = {"Sea", "Test it!"}; - for (final String p: nonPalindromes) { - assertFalse(p, Arraymethods.isPalindrome(p)); - } - } - - @Test - public void testContainsSameElements() { - assertTrue(Arraymethods.containsSameElements( - new int[]{}, new int[]{})); - - assertTrue(Arraymethods.containsSameElements( - new int[]{1}, new int[]{1})); - - assertTrue(Arraymethods.containsSameElements( - new int[]{1, 2}, new int[]{1, 2})); - - assertTrue(Arraymethods.containsSameElements( - new int[]{1, 2}, new int[]{2, 1})); - - assertTrue(Arraymethods.containsSameElements( - new int[]{1, 2, 3}, new int[]{3, 1, 2})); - - assertTrue(Arraymethods.containsSameElements( - new int[]{1, 2 , 3, 1, 3}, new int[]{3, 2, 1, 1, 3})); - - assertFalse(Arraymethods.containsSameElements( - new int[]{2, 2 , 3, 1, 3}, new int[]{3, 2, 1, 1, 3})); - - } -} diff --git a/Sd1/P/Array/arraycalcSolution/.gitignore b/Sd1/P/Array/arraycalcSolution/.gitignore deleted file mode 100644 index 4e247eee2..000000000 --- a/Sd1/P/Array/arraycalcSolution/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project diff --git a/Sd1/P/Array/arraycalcSolution/pom.xml b/Sd1/P/Array/arraycalcSolution/pom.xml deleted file mode 100644 index 608a42533..000000000 --- a/Sd1/P/Array/arraycalcSolution/pom.xml +++ /dev/null @@ -1,58 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>arraycalc</artifactId> - <version>2.0</version> - <packaging>jar</packaging> - - <name>arraycalc</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/Array/arraycalcSolution/src/main/java/de/hdm_stuttgart/mi/sd1/store/Arraymethods.java b/Sd1/P/Array/arraycalcSolution/src/main/java/de/hdm_stuttgart/mi/sd1/store/Arraymethods.java deleted file mode 100644 index ab081b795..000000000 --- a/Sd1/P/Array/arraycalcSolution/src/main/java/de/hdm_stuttgart/mi/sd1/store/Arraymethods.java +++ /dev/null @@ -1,162 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.store; - -import java.util.Arrays; - -/** - * A collection of methods dealing with arrays - * - */ -public class Arraymethods { - - /** - * - * @param values The array to be searched - * @param searchValue The value to be found - * - * @return The index of the first occurrence of searchValue - * in values if exists, a value smaller than zero otherwise - */ - public static int findIndex(int[] values, int searchValue) { - for (int i = 0; i < values.length; i++) { - if (searchValue == values[i]) { - return i; - } - } - return -1; // searchValue does not exist in values - } - - /** - * Check whether two arrays contain identical values in identical - * order. Thus the arrays [-7, 1] and [1, -7] shall be regarded as - * being different. - * - * @param a the first array to be compared. - * @param b the second array to be compared. - * @return true if a[] and b[] are equal, false otherwise. - */ - public static boolean isEqual(int a[], int b[]) { - if (a.length == b.length) { - for (int i = 0; i < a.length; i++) { - if (a[i] != b[i]) { - return false; - } - } - return true; // All array entries are equal - } else { // Arrays do have different size and thus differ - return false; - } - } - - /** - * Swap the contents of two arrays. If both arrays differ in size - * exchange only the "common" portions. Thus if we have e.g. - * a = [ 3, 5, -3] and - * b = [-1, 4] - * - * swapping should only affect the first two positions: - * - * a = [-1, 4, -3] and - * b = [ 3, 5] - * - * @param a The first array to be swapped - * @param b The second array to be swapped - * - * @return The number of elements being swapped. This is equal - * to the minimum of both arrays' length. - */ - public static int swap(int a[], int b[]) { - final int swapCount = Math.min(a.length, b.length); - for (int i = 0; i < swapCount; i++) { - final int tmp = a[i]; - a[i] = b[i]; - b[i] = tmp; - } - return swapCount; - } - - /** - * Create a new array by appending all values of b[] - * at the end of a[]. Thus e.g. a=[1, -7, 1] and b=[0, 5] - * shall be concatenated to [1, -7, 1, 0, 5]. - * - * @param a The first array. - * @param b The second array. - * @return The concatenation of all values from a and b. - */ - public static int[] concat(int a[], int b[]) { - final int[] returnValue = new int[a.length + b.length]; - for (int i = 0; i < a.length; i++) { - returnValue[i] = a[i]; - } - for (int i = 0; i < b.length; i++) { - returnValue[a.length + i] = b[i]; - } - return returnValue; - } - - /** - * Check whether a given string is a palindrome or not. Test cases - * are being supplied at http://www.palindromelist.net - * - * @param candidate The possible palindrome string. - * @return True if candidate is a palindrome with letter case - * being ignored, false otherwise. Non-letter characters like space, - * ?,;:. will be ignored as well. - */ - public static boolean isPalindrome(final String candidate) { - - final char[] cArray = new char[candidate.length()]; - int numCandidateLetters = 0; - - for (int i = 0; i < candidate.length(); i++) { // Strip off non-letters - final char candidateChar = candidate.toLowerCase().charAt(i); - if (Character.isAlphabetic(candidateChar)) { - cArray[numCandidateLetters++] = candidateChar; - } - } - // cArray holds the "real" palindrome candidate with - // non-netters being stripped of having - // index range [0, numCandidateLetters - 1]. So let's check it! - // - for (int i = 0; i < numCandidateLetters / 2; i++) { - if (cArray[i] != cArray[numCandidateLetters - 1 - i]) { - return false; - } - } - return true; - } - - /** - * - * Check whether two arrays contain identical values having - * identical multiplicity irrespective of ordering. Thus the - * arrays [-7, 1] and [1, -7] shall be regarded as - * equivalent whereas [7, 1, 1] and [7, 1, 7] are divergent due to - * different multiplicity of elements being contained. - * - * @param a the first array to be compared. - * @param b the second array to be compared. - * @return true if a[] and b[] contain the same elements having identical multiplicity, false otherwise. - */ - public static boolean containsSameElements(int a[], int b[]) { - - if (a.length == b.length) { - final int[] bCopy = Arrays.copyOf(b, b.length);// We need a copy to be modified, - // do not touch the orginal! - int bcopyRemainingElements = b.length; - for (int i = 0; i < a.length; i++) { - final int indexInBcopy = findIndex(bCopy, a[i]); - if (indexInBcopy < 0) { - return false; // Element of a[] not found in b[] - } else { - if (indexInBcopy < bcopyRemainingElements - 1) { // "Discard" element from bCopy[] - bCopy[indexInBcopy] = bCopy[--bcopyRemainingElements]; - } - } - } - return true; - } else {// Arrays differ in length and thus cannot be equivalent - return false; - } - } -} diff --git a/Sd1/P/Array/arraycalcSolution/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java b/Sd1/P/Array/arraycalcSolution/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java deleted file mode 100644 index 6c0f8cf8d..000000000 --- a/Sd1/P/Array/arraycalcSolution/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Various array and string method implementations - * - */ -package de.hdm_stuttgart.mi.sd1.store; \ No newline at end of file diff --git a/Sd1/P/Array/arraycalcSolution/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/ArrayMethodTests.java b/Sd1/P/Array/arraycalcSolution/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/ArrayMethodTests.java deleted file mode 100644 index 8a83bd791..000000000 --- a/Sd1/P/Array/arraycalcSolution/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/ArrayMethodTests.java +++ /dev/null @@ -1,130 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.fraction; - -import org.junit.Test; - -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.assertFalse; - -import java.util.Arrays; - -import de.hdm_stuttgart.mi.sd1.store.Arraymethods; - -@SuppressWarnings("javadoc") -public class ArrayMethodTests { - - @Test - public void testFindIndex(){ - assertEquals(Arraymethods.findIndex(new int[]{1, 3, -3, 5}, -3), 2); - assertEquals(Arraymethods.findIndex(new int[]{1, -3, -3, 5}, -3), 1); - assertEquals(Arraymethods.findIndex(new int[]{1, -3, 9, -3, 5}, -3), 1); - assertTrue(Arraymethods.findIndex(new int[]{1, 3, 2, 5}, 4) < 0); - } - - @Test - public void testIsEqual() { - assertTrue(Arraymethods.isEqual( // empty array - new int[]{}, new int[]{})); - - assertTrue(Arraymethods.isEqual( // Just one value - new int[]{7}, new int[]{7})); - - assertTrue(Arraymethods.isEqual( - new int[]{1, 3, -3, 5}, new int[]{1, 3, -3, 5})); - - assertFalse(Arraymethods.isEqual( - new int[]{1, 3, -3, 5}, new int[]{1, 3, -3})); - - assertFalse(Arraymethods.isEqual( - new int[]{1, 3, -3}, new int[]{1, 3, -3, 5})); - } - - @Test - public void testSwap() { - final int[] - a = {1, 3, -4, 7, 7}, - b = {-5, 2, 4, 1, 12}, - aCopy = Arrays.copyOf(a, a.length), - bCopy = Arrays.copyOf(b, b.length); - - Arraymethods.swap(aCopy, bCopy); // Swapping a and b - assertArrayEquals(b, aCopy); - assertArrayEquals(a, bCopy); - - Arraymethods.swap(aCopy, bCopy);// Swapping a and b again==> revert to start - assertArrayEquals(a, aCopy); - assertArrayEquals(b, bCopy); - - final int[] c = {-5, 2, 4}; - - Arraymethods.swap(aCopy, c); // Different sizes - assertArrayEquals(new int[]{-5, 2, 4, 7, 7}, aCopy); - assertArrayEquals(new int[]{1, 3, -4}, c); - } - - @Test - public void testConcat() { - assertArrayEquals(new int[]{}, - Arraymethods.concat(new int[]{}, new int[]{})); - - assertArrayEquals(new int[]{1, 8}, - Arraymethods.concat(new int[]{1}, new int[]{8})); - - assertArrayEquals(new int[]{1, 7}, - Arraymethods.concat(new int[]{}, new int[]{1, 7})); - - assertArrayEquals(new int[]{1, 7}, - Arraymethods.concat(new int[]{1, 7}, new int[]{})); - - assertArrayEquals(new int[]{1, 7, 3, -1, -2}, - Arraymethods.concat(new int[]{1, 7}, new int[]{3, -1, -2})); - - assertArrayEquals(new int[]{9, 9, 8, 8}, - Arraymethods.concat(new int[]{9}, new int[]{9, 8, 8})); - } - - @Test - public void testIsPalindrome() { - // Examples from http://www.palindromelist.net - - final String[] palindromes = { - "A Santa at Nasa", - "Able was I, ere I saw Elba", - "Borrow or rob?"}; - - for (final String p: palindromes) { - assertTrue(p, Arraymethods.isPalindrome(p)); - } - - final String[] nonPalindromes = {"Sea", "Test it!"}; - for (final String p: nonPalindromes) { - assertFalse(p, Arraymethods.isPalindrome(p)); - } - } - - @Test - public void testContainsSameElements() { - assertTrue(Arraymethods.containsSameElements( - new int[]{}, new int[]{})); - - assertTrue(Arraymethods.containsSameElements( - new int[]{1}, new int[]{1})); - - assertTrue(Arraymethods.containsSameElements( - new int[]{1, 2}, new int[]{1, 2})); - - assertTrue(Arraymethods.containsSameElements( - new int[]{1, 2}, new int[]{2, 1})); - - assertTrue(Arraymethods.containsSameElements( - new int[]{1, 2, 3}, new int[]{3, 1, 2})); - - assertTrue(Arraymethods.containsSameElements( - new int[]{1, 2 , 3, 1, 3}, new int[]{3, 2, 1, 1, 3})); - - assertFalse(Arraymethods.containsSameElements( - new int[]{2, 2 , 3, 1, 3}, new int[]{3, 2, 1, 1, 3})); - - } -} diff --git a/Sd1/P/Array/integerStore/.gitignore b/Sd1/P/Array/integerStore/.gitignore deleted file mode 100644 index 4e247eee2..000000000 --- a/Sd1/P/Array/integerStore/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project diff --git a/Sd1/P/Array/integerStore/pom.xml b/Sd1/P/Array/integerStore/pom.xml deleted file mode 100644 index 0baf36cba..000000000 --- a/Sd1/P/Array/integerStore/pom.xml +++ /dev/null @@ -1,58 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>intstore</artifactId> - <version>2.0</version> - <packaging>jar</packaging> - - <name>IntegerStore</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/Array/integerStore/src/main/java/de/hdm_stuttgart/mi/sd1/main/Driver.java b/Sd1/P/Array/integerStore/src/main/java/de/hdm_stuttgart/mi/sd1/main/Driver.java deleted file mode 100644 index cdb155078..000000000 --- a/Sd1/P/Array/integerStore/src/main/java/de/hdm_stuttgart/mi/sd1/main/Driver.java +++ /dev/null @@ -1,29 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.main; - -import de.hdm_stuttgart.mi.sd1.store.BoundedIntegerStore; - -/** - * Playing with fraction objects, producing some output. - * - */ -public class Driver { - /** - * @param args unused - */ - public static void main(String[] args) { - - // Create a new Store - final BoundedIntegerStore store = new BoundedIntegerStore(4); - - // Fill in some values - store.addValue(32); - store.addValue(-5); - store.addValue(24); - - System.out.println("Store contains " + store.getNumValues() + " values"); - - for (int i = 0; i < store.getNumValues(); i++) { - System.out.println("Value " + (i + 1) + ": " + store.getValue(i)); - } - } -} diff --git a/Sd1/P/Array/integerStore/src/main/java/de/hdm_stuttgart/mi/sd1/store/BoundedIntegerStore.java b/Sd1/P/Array/integerStore/src/main/java/de/hdm_stuttgart/mi/sd1/store/BoundedIntegerStore.java deleted file mode 100644 index 9cbaefbca..000000000 --- a/Sd1/P/Array/integerStore/src/main/java/de/hdm_stuttgart/mi/sd1/store/BoundedIntegerStore.java +++ /dev/null @@ -1,59 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.store; - -/** - * A container holding a fixed - * number of integer values. - * - */ -public class BoundedIntegerStore { - - final int[] values ; // Array containing our values - int numValues = 0; // Number of values present in the container so far. - - /** - * Create a new integer store being able to - * hold a fixed number of values. - * - * @param capacity The number of values this store may contain - */ - public BoundedIntegerStore(int capacity) { - values = new int[capacity]; - } - - /** - * @return The number of elements the store may - * hold, see {@link #BoundedIntegerStore(int)}. - */ - public int getCapacity() { - return values.length; - } - - /** - * @return The number of values being contained. - */ - public int getNumValues() { - return numValues; - } - - /** - * Insert a new value into our container - * - * @param value The value to be inserted. This will increment - * {@link #getNumValues()} by one. - * - */ - public void addValue(int value) { - values[numValues++] = value; - } - - /** - * Access the value at a given index - * - * @param index The desired value's index - * @return The desired index value. Precondition: index < {@link #getNumValues()}} - * - */ - public int getValue(int index) { - return values[index]; - } -} \ No newline at end of file diff --git a/Sd1/P/Array/integerStore/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java b/Sd1/P/Array/integerStore/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java deleted file mode 100644 index 94590c084..000000000 --- a/Sd1/P/Array/integerStore/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Dealing with integer stores. - * - */ -package de.hdm_stuttgart.mi.sd1.store; \ No newline at end of file diff --git a/Sd1/P/Array/integerStore/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/IntStoreTest.java b/Sd1/P/Array/integerStore/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/IntStoreTest.java deleted file mode 100644 index 456ff1bcc..000000000 --- a/Sd1/P/Array/integerStore/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/IntStoreTest.java +++ /dev/null @@ -1,35 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.fraction; - -import static org.junit.Assert.*; - -import org.junit.Test; - -import de.hdm_stuttgart.mi.sd1.store.BoundedIntegerStore; - -@SuppressWarnings("javadoc") -public class IntStoreTest { - - @Test - public void testPositiveNegative() { - final int capacity = 4; - BoundedIntegerStore store = new BoundedIntegerStore(capacity); - - - assertEquals(capacity, store.getCapacity()); // The store's capacity - assertEquals(0, store.getNumValues()); // Store is initially empty - - final int v1 = -17, v2 = 3, v3 = -4; - - store.addValue(v1); // Add a single value - assertEquals(1, store.getNumValues()); // Store contains one value - assertEquals(v1, store.getValue(0)); // Value should be present at index 0 - - store.addValue(v2); // Add two more values - store.addValue(v3); - - assertEquals(3, store.getNumValues()); // Store contains three values - assertEquals(v1, store.getValue(0)); // Retrieve all values - assertEquals(v2, store.getValue(1)); - assertEquals(v3, store.getValue(2)); - } -} diff --git a/Sd1/P/Array/integerStoreMedianAnswer/.gitignore b/Sd1/P/Array/integerStoreMedianAnswer/.gitignore deleted file mode 100644 index 128b1c231..000000000 --- a/Sd1/P/Array/integerStoreMedianAnswer/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -/.settings -/target -/.classpath -/.project -/bin diff --git a/Sd1/P/Array/integerStoreMedianAnswer/pom.xml b/Sd1/P/Array/integerStoreMedianAnswer/pom.xml deleted file mode 100644 index 231c9012c..000000000 --- a/Sd1/P/Array/integerStoreMedianAnswer/pom.xml +++ /dev/null @@ -1,58 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>intstoreMedian</artifactId> - <version>6.0</version> - <packaging>jar</packaging> - - <name>IntegerStore</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/Array/integerStoreMedianAnswer/src/main/java/de/hdm_stuttgart/mi/sd1/main/Driver.java b/Sd1/P/Array/integerStoreMedianAnswer/src/main/java/de/hdm_stuttgart/mi/sd1/main/Driver.java deleted file mode 100644 index 1d0bdce13..000000000 --- a/Sd1/P/Array/integerStoreMedianAnswer/src/main/java/de/hdm_stuttgart/mi/sd1/main/Driver.java +++ /dev/null @@ -1,34 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.main; - -import java.util.Scanner; - -import de.hdm_stuttgart.mi.sd1.store.IntegerStore; - -/** - * Ask a user for inputting sample values and then - * calculate average and median. - * - */ -public class Driver { - /** - * @param args unused - */ - public static void main(String[] args) { - - final Scanner scanner = new Scanner(System.in); - - System.out.print("How big is your sample? "); - final int sampleSize = scanner.nextInt(); - - final IntegerStore store = new IntegerStore(sampleSize); - System.out.println(); // Add a new line - for (int i = 0; i < sampleSize; i++) { - System.out.print("Enter value #" + (i + 1) + " of " + sampleSize + ": "); - store.addValue(scanner.nextInt()); - } - System.out.println("Your sample's average is: " + store.getAverage()); - System.out.println("Your sample's median is: " + store.getMedian()); - - scanner.close(); - } -} diff --git a/Sd1/P/Array/integerStoreMedianAnswer/src/main/java/de/hdm_stuttgart/mi/sd1/store/IntegerStore.java b/Sd1/P/Array/integerStoreMedianAnswer/src/main/java/de/hdm_stuttgart/mi/sd1/store/IntegerStore.java deleted file mode 100644 index fa3baf2a1..000000000 --- a/Sd1/P/Array/integerStoreMedianAnswer/src/main/java/de/hdm_stuttgart/mi/sd1/store/IntegerStore.java +++ /dev/null @@ -1,164 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.store; - -import java.util.Arrays; - -/** - * A container holding a fixed - * number of integer values. - * - */ -public class IntegerStore { - - final static int defaultCapacity = 4; - private int[] values ; // Array containing our values - private int numValues = 0; // Number of values present in the container so far. - - /** - * Create a new store being able to - * hold integer values. - * - */ - public IntegerStore() { - values = new int[defaultCapacity]; - } - /** - * Create a new store being able to - * hold integer values. - * - * @param capacity The store's initial capacity. If more values - * are being added via {@link #addValue(int)} the capacity - * will be increased dynamically. - * - */ - public IntegerStore(int capacity) { - values = new int[capacity]; - } - - /** - * Initializing from a given array of integers. - * - * @param values These presumably unsorted values will be sorted - * when being added to this store. - */ - public IntegerStore(final int[] values) { - - this.values = new int[values.length]; - for (final int value: values) { - addValue(value); - } - } - - - /** - * @return The number of elements the store may - * hold, see {@link #IntegerStore(int)}. - */ - public int getCapacity() { - return values.length; - } - - /** - * @return The number of values being contained. - */ - public int getNumValues() { - return numValues; - } - - /** - * Insert a new value into our container - * - * @param value The value to be inserted. This will increment - * {@link #getNumValues()} by one. - * - */ - public void addValue(int value) { - if (values.length <= numValues) { // Insufficient capacity available to add a new value? - final int[] currentArray = values; // Save the current array variable - values = new int[2 * currentArray.length]; // Double the current array's size. - for (int i = 0; i < currentArray.length; i++) { // Copy old values to new array - values[i] = currentArray[i]; - } - } - int insertIndex; - // Find the index of the first existing element - // being larger or equal to the new element to be inserted - for (insertIndex= 0; insertIndex < numValues && values[insertIndex] < value; insertIndex++); - - /* - * Example insert value == 3; Finding the right position - * and shift some values accordingly to create a "free" - * position - * Index values | 0| 1| 2| 3| 4| 5| ... - * -----------------+--+--+--+--+-----+ ... - * values oldArray | 1| 2| 7| 9| | | - * -----------------+--+--+--+--+-----+ ... - * shift right one index starting from value "7" and fill in value 3 - * -----------------+--+--+--+--+-----+ ... - * values newArray | 1| 2| 3| 7| 9| | ... - */ - - for (int i = numValues; insertIndex < i; i--) { // Shift values if necessary - values[i] = values[i - 1]; - } - values[insertIndex] = value; - numValues++; - } - - /** - * Access the value at a given index - * - * @param index The desired value's index - * @return The desired value. - * <dl> - <dt><b>Precondition:</b></dt> - <dd>index < {@link #getNumValues()}</dd> - </dl> - * - */ - public int getValue(int index) { - return values[index]; - } - - /** - * @return The array of values entered so far - */ - public int[] getValues() { - return Arrays.copyOfRange(values, 0, numValues); - } - - /** - * Empty the current set of values and set the store - * to its initial state. - */ - public void clear() { - numValues = 0; - } - - /** - * @return The sample's average value. - */ - public double getAverage() { - double sum = 0; - for (int i = 0; i < numValues; i++) { - sum += values[i]; - } - return sum / numValues; - } - /** - *<dl> - <dt><b>Precondition:</b></dt> - <dd>There must be at least one element.</dd> - </dl> - * - * @return The sample's median. - */ - public double getMedian() { - final int upperMiddleIndex = numValues / 2; - if (0 == numValues % 2) { // Even number of values - return (values[upperMiddleIndex] + // Choose mean of both - values[upperMiddleIndex -1]) / 2.;// center values - } else { // Odd number of values - return values[upperMiddleIndex]; - } - } -} \ No newline at end of file diff --git a/Sd1/P/Array/integerStoreMedianAnswer/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java b/Sd1/P/Array/integerStoreMedianAnswer/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java deleted file mode 100644 index 3b955ea0b..000000000 --- a/Sd1/P/Array/integerStoreMedianAnswer/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java +++ /dev/null @@ -1,6 +0,0 @@ -/** - * Dealing with integer stores. We add a method - * to compute a given sample's median - * - */ -package de.hdm_stuttgart.mi.sd1.store; \ No newline at end of file diff --git a/Sd1/P/Array/integerStoreMedianAnswer/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestSorting.java b/Sd1/P/Array/integerStoreMedianAnswer/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestSorting.java deleted file mode 100644 index f3a46f66b..000000000 --- a/Sd1/P/Array/integerStoreMedianAnswer/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestSorting.java +++ /dev/null @@ -1,88 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.store; - -import static org.junit.Assert.*; - -import org.junit.Assert; -import org.junit.Test; - -@SuppressWarnings("javadoc") -public class TestSorting { - - @Test - public void empty() { - - final IntegerStore store = new IntegerStore(); - assertEquals(0, store.getNumValues()); - } - - @Test - public void singleValue() { - - final IntegerStore store = new IntegerStore(); - final int value = 7; - store.addValue(value); - assertEquals(1, store.getNumValues()); - assertEquals(value, store.getValue(0)); - } - - @Test - public void twoUnOrderedValues() { - - final int[] - unsortedValues = {3, -1}, - sortedValues = {-1, 3}; - - assertEquals(sortedValues.length, unsortedValues.length); - - final IntegerStore store = new IntegerStore(); - for (final int i: unsortedValues) { - store.addValue(i); - } - assertArrayEquals(sortedValues, store.getValues()); - } - - @Test - public void twoOrderedValues() { - - final int[] - unsortedValues = {-1, 3}, - sortedValues = unsortedValues; - - final IntegerStore store = new IntegerStore(); - for (final int i: unsortedValues) { - store.addValue(i); - } - assertArrayEquals(sortedValues, store.getValues()); - } - - - @Test - public void simpleSort() { - final int[] - unsortedValues = {2, -1, 5, 2, 7, 6}, - sortedValues = {-1, 2, 2, 5, 6, 7}; - - assertEquals(sortedValues.length, unsortedValues.length); - - final IntegerStore store = new IntegerStore(); - for (final int i: unsortedValues) { - store.addValue(i); - } - assertArrayEquals(sortedValues, store.getValues()); - } - - @Test - public void duplicateSort() { - final int[] - unsortedValues = {0, -7, 3, 2, 3, -4, 3, 4, 5, -7}, - sortedValues = {-7, -7, -4, 0, 2, 3, 3, 3, 4, 5}; - - assertEquals(sortedValues.length, unsortedValues.length); - - final IntegerStore store = new IntegerStore(); - for (final int i: unsortedValues) { - store.addValue(i); - } - Assert.assertArrayEquals(sortedValues, store.getValues()); - } -} diff --git a/Sd1/P/Array/integerStoreMedianAnswer/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestStatisticMethods.java b/Sd1/P/Array/integerStoreMedianAnswer/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestStatisticMethods.java deleted file mode 100644 index c055f5e8e..000000000 --- a/Sd1/P/Array/integerStoreMedianAnswer/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestStatisticMethods.java +++ /dev/null @@ -1,95 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.store; - -import static org.junit.Assert.*; - -import org.junit.Test; - -import de.hdm_stuttgart.mi.sd1.store.IntegerStore; - -@SuppressWarnings("javadoc") -public class TestStatisticMethods { - - @Test - public void testClear() { - IntegerStore store = new IntegerStore(4); - - assertEquals(0, store.getNumValues()); // Store is initially empty - - store.addValue(2); - store.addValue(4); - assertEquals(2, store.getNumValues()); // Store is initially empty - - store.clear(); - - assertEquals(0, store.getNumValues()); // Store is initially empty - store.addValue(2); - store.addValue(4); - store.addValue(4); - assertEquals(3, store.getNumValues()); // Store is initially empty - } - @Test - public void testAverage() { - - IntegerStore store = new IntegerStore(4); - - store.addValue(2); - store.addValue(4); - store.addValue(-3); - - assertTrue(Math.abs(1. - store.getAverage()) < 1.E-50); - } - - @Test - public void testPositiveNegative() { - final int capacity = 3; - IntegerStore store = new IntegerStore(capacity); - - - assertEquals(capacity, store.getCapacity()); // The store's initial capacity - assertEquals(0, store.getNumValues()); // Store is initially empty - - final int v1 = -17, v2 = 3, v3 = -4, v4 = 7; - - store.addValue(v1); // Add a single value - assertEquals(1, store.getNumValues()); // Store contains one value - assertEquals(v1, store.getValue(0)); // Value should be present at index 0 - - store.addValue(v2); // Add two more values - store.addValue(v3); - - assertEquals(capacity, store.getCapacity()); // The store's initial capacity - assertEquals(3, store.getNumValues()); // Store contains three values - assertEquals(v1, store.getValue(0)); // Retrieve all values - assertEquals(v3, store.getValue(1)); - assertEquals(v2, store.getValue(2)); - - // Now we breach the container's initial capacity - store.addValue(v4); - assertEquals(2 * capacity, store.getCapacity()); // Twice the store's initial capacity - - // add 99996 more values - for (int i = 4; i < 100_000; i++) { - store.addValue(i); - } - assertEquals(100_000, store.getNumValues()); - assertTrue(100_000 <= store.getCapacity()); // Capacity should at least be 100_000 - } - @Test - public void testMedian() { - IntegerStore store = new IntegerStore(new int[] {2, 7, 0, -3, 4}); - assertArrayEquals(new int[] {-3, 0, 2, 4, 7}, store.getValues()); - assertTrue(Math.abs(2. - store.getMedian()) < 1.E-10); - - store.addValue(7); - assertArrayEquals(new int[] {-3, 0, 2, 4, 7, 7}, store.getValues()); - assertTrue(Math.abs(3. - store.getMedian()) < 1.E-10); - - store.addValue(7); - assertArrayEquals(new int[] {-3, 0, 2, 4, 7, 7, 7}, store.getValues()); - assertTrue(Math.abs(4. - store.getMedian()) < 1.E-50); - - store.addValue(6); - assertArrayEquals(new int[] {-3, 0, 2, 4, 6, 7, 7, 7}, store.getValues()); - assertTrue(Math.abs(5. - store.getMedian()) < 1.E-50); - } -} diff --git a/Sd1/P/Array/integerStoreSkeleton/.gitignore b/Sd1/P/Array/integerStoreSkeleton/.gitignore deleted file mode 100644 index 4e247eee2..000000000 --- a/Sd1/P/Array/integerStoreSkeleton/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project diff --git a/Sd1/P/Array/integerStoreSkeleton/pom.xml b/Sd1/P/Array/integerStoreSkeleton/pom.xml deleted file mode 100644 index f71f43398..000000000 --- a/Sd1/P/Array/integerStoreSkeleton/pom.xml +++ /dev/null @@ -1,58 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>intstore</artifactId> - <version>1.0</version> - <packaging>jar</packaging> - - <name>IntegerStore</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/Array/integerStoreSkeleton/src/main/java/de/hdm_stuttgart/mi/sd1/main/Driver.java b/Sd1/P/Array/integerStoreSkeleton/src/main/java/de/hdm_stuttgart/mi/sd1/main/Driver.java deleted file mode 100644 index 50cccc930..000000000 --- a/Sd1/P/Array/integerStoreSkeleton/src/main/java/de/hdm_stuttgart/mi/sd1/main/Driver.java +++ /dev/null @@ -1,29 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.main; - -import de.hdm_stuttgart.mi.sd1.store.BoundedIntegerStore; - -/** - * Playing with fraction objects, producing some output. - * - */ -public class Driver { - /** - * @param args unused - */ - public static void main(String[] args) { - - // Create a new Store - final BoundedIntegerStore store = new BoundedIntegerStore(4); - - // Fill in some values - store.addValue(32); - store.addValue(-5); - store.addValue(24); - - System.out.println("Store contains " + store.getNumValues() + " values"); - - for (int i = 0; i < store.getNumValues(); i++) { - System.out.println(i + ":" + store.getNumValues() + " values"); - } - } -} diff --git a/Sd1/P/Array/integerStoreSkeleton/src/main/java/de/hdm_stuttgart/mi/sd1/store/BoundedIntegerStore.java b/Sd1/P/Array/integerStoreSkeleton/src/main/java/de/hdm_stuttgart/mi/sd1/store/BoundedIntegerStore.java deleted file mode 100644 index 6deb01892..000000000 --- a/Sd1/P/Array/integerStoreSkeleton/src/main/java/de/hdm_stuttgart/mi/sd1/store/BoundedIntegerStore.java +++ /dev/null @@ -1,59 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.store; - -/** - * A container holding a fixed - * number of integer values. - * - */ -public class BoundedIntegerStore { - - final int[] values ; // Array containing our values - int numValues = 0; // Number of values present in the container so far. - - /** - * Create a new integer store being able to - * hold a fixed number of values. - * - * @param capacity The number of values this store may contain - */ - public BoundedIntegerStore(int capacity) { - values = null; // TODO - } - - /** - * @return The number of elements the store may - * hold, see {@link #BoundedIntegerStore(int)}. - */ - public int getCapacity() { - return 0; // TODO - } - - /** - * @return The number of values being contained. - */ - public int getNumValues() { - return 0; // TODO - } - - /** - * Insert a new value into our container - * - * @param value The value to be inserted. This will increment - * {@link #getNumValues()} by one. - * - */ - public void addValue(int value) { - // TODO; - } - - /** - * Access the value at a given index - * - * @param index The desired value's index - * @return The desired value. Precondition: index < {@link #getNumValues()}} - * - */ - public int getValue(int index) { - return 0; // TODO - } -} \ No newline at end of file diff --git a/Sd1/P/Array/integerStoreSkeleton/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java b/Sd1/P/Array/integerStoreSkeleton/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java deleted file mode 100644 index 94590c084..000000000 --- a/Sd1/P/Array/integerStoreSkeleton/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Dealing with integer stores. - * - */ -package de.hdm_stuttgart.mi.sd1.store; \ No newline at end of file diff --git a/Sd1/P/Array/integerStoreSkeleton/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/IntStoreTest.java b/Sd1/P/Array/integerStoreSkeleton/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/IntStoreTest.java deleted file mode 100644 index 456ff1bcc..000000000 --- a/Sd1/P/Array/integerStoreSkeleton/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/IntStoreTest.java +++ /dev/null @@ -1,35 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.fraction; - -import static org.junit.Assert.*; - -import org.junit.Test; - -import de.hdm_stuttgart.mi.sd1.store.BoundedIntegerStore; - -@SuppressWarnings("javadoc") -public class IntStoreTest { - - @Test - public void testPositiveNegative() { - final int capacity = 4; - BoundedIntegerStore store = new BoundedIntegerStore(capacity); - - - assertEquals(capacity, store.getCapacity()); // The store's capacity - assertEquals(0, store.getNumValues()); // Store is initially empty - - final int v1 = -17, v2 = 3, v3 = -4; - - store.addValue(v1); // Add a single value - assertEquals(1, store.getNumValues()); // Store contains one value - assertEquals(v1, store.getValue(0)); // Value should be present at index 0 - - store.addValue(v2); // Add two more values - store.addValue(v3); - - assertEquals(3, store.getNumValues()); // Store contains three values - assertEquals(v1, store.getValue(0)); // Retrieve all values - assertEquals(v2, store.getValue(1)); - assertEquals(v3, store.getValue(2)); - } -} diff --git a/Sd1/P/Array/integerStoreStat/.gitignore b/Sd1/P/Array/integerStoreStat/.gitignore deleted file mode 100644 index 128b1c231..000000000 --- a/Sd1/P/Array/integerStoreStat/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -/.settings -/target -/.classpath -/.project -/bin diff --git a/Sd1/P/Array/integerStoreStat/pom.xml b/Sd1/P/Array/integerStoreStat/pom.xml deleted file mode 100644 index 57b693b2d..000000000 --- a/Sd1/P/Array/integerStoreStat/pom.xml +++ /dev/null @@ -1,58 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>intstore</artifactId> - <version>4.0</version> - <packaging>jar</packaging> - - <name>IntegerStore</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/Array/integerStoreStat/src/main/java/de/hdm_stuttgart/mi/sd1/main/Driver.java b/Sd1/P/Array/integerStoreStat/src/main/java/de/hdm_stuttgart/mi/sd1/main/Driver.java deleted file mode 100644 index 55ce85c24..000000000 --- a/Sd1/P/Array/integerStoreStat/src/main/java/de/hdm_stuttgart/mi/sd1/main/Driver.java +++ /dev/null @@ -1,29 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.main; - -import de.hdm_stuttgart.mi.sd1.store.IntegerStore; - -/** - * Playing with fraction objects, producing some output. - * - */ -public class Driver { - /** - * @param args unused - */ - public static void main(String[] args) { - - // Create a new Store - final IntegerStore store = new IntegerStore(4); - - // Fill in some values - store.addValue(32); - store.addValue(-5); - store.addValue(24); - - System.out.println("Store contains " + store.getNumValues() + " values"); - - for (int i = 0; i < store.getNumValues(); i++) { - System.out.println("Value " + (i + 1) + ": " + store.getValue(i)); - } - } -} diff --git a/Sd1/P/Array/integerStoreStat/src/main/java/de/hdm_stuttgart/mi/sd1/store/IntegerStore.java b/Sd1/P/Array/integerStoreStat/src/main/java/de/hdm_stuttgart/mi/sd1/store/IntegerStore.java deleted file mode 100644 index fef1e262e..000000000 --- a/Sd1/P/Array/integerStoreStat/src/main/java/de/hdm_stuttgart/mi/sd1/store/IntegerStore.java +++ /dev/null @@ -1,97 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.store; - -/** - * A container holding a fixed - * number of integer values. - * - */ -public class IntegerStore { - - final static int defaultCapacity = 4; - int[] values ; // Array containing our values - int numValues = 0; // Number of values present in the container so far. - - /** - * Create a new store being able to - * hold integer values. - * - */ - public IntegerStore() { - values = new int[defaultCapacity]; - } - /** - * Create a new store being able to - * hold integer values. - * - * @param capacity The store's initial capacity. If more values - * are being added via {@link #addValue(int)} the capacity - * will be increased dynamically. - * - */ - public IntegerStore(int capacity) { - values = new int[capacity]; - } - - /** - * @return The number of elements the store may - * hold, see {@link #IntegerStore(int)}. - */ - public int getCapacity() { - return values.length; - } - - /** - * @return The number of values being contained. - */ - public int getNumValues() { - return numValues; - } - - /** - * Insert a new value into our container - * - * @param value The value to be inserted. This will increment - * {@link #getNumValues()} by one. - * - */ - public void addValue(int value) { - if (values.length <= numValues) { // Sufficient capacity available to add a new value? - final int[] currentArray = values; - values = new int[2 * currentArray.length]; // Double the current array's size. - for (int i = 0; i < currentArray.length; i++) { - values[i] = currentArray[i]; - } - } - values[numValues++] = value; - } - - /** - * Access the value at a given index - * - * @param index The desired value's index - * @return The desired value. Precondition: index < {@link #getNumValues()}} - * - */ - public int getValue(int index) { - return values[index]; - } - - /** - * Empty the current set of values and set the store - * to its initial state. - */ - public void clear() { - numValues = 0; - } - - /** - * @return The given sample's arithmetic average - */ - public double getAverage() { - double sum = 0; - for (int i = 0; i < numValues; i++) { - sum += values[i]; - } - return sum / numValues; - } -} \ No newline at end of file diff --git a/Sd1/P/Array/integerStoreStat/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java b/Sd1/P/Array/integerStoreStat/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java deleted file mode 100644 index 94590c084..000000000 --- a/Sd1/P/Array/integerStoreStat/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Dealing with integer stores. - * - */ -package de.hdm_stuttgart.mi.sd1.store; \ No newline at end of file diff --git a/Sd1/P/Array/integerStoreStat/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/IntStoreTest.java b/Sd1/P/Array/integerStoreStat/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/IntStoreTest.java deleted file mode 100644 index 851b14bc5..000000000 --- a/Sd1/P/Array/integerStoreStat/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/IntStoreTest.java +++ /dev/null @@ -1,79 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.fraction; - -import static org.junit.Assert.*; - -import org.junit.Test; - -import de.hdm_stuttgart.mi.sd1.store.IntegerStore; - -@SuppressWarnings("javadoc") -public class IntStoreTest { - - @Test - public void testClear() { - IntegerStore store = new IntegerStore(4); - - assertEquals(0, store.getNumValues()); // Store is initially empty - - store.addValue(2); - store.addValue(4); - assertEquals(2, store.getNumValues()); // Store is initially empty - - store.clear(); - - assertEquals(0, store.getNumValues()); // Store is initially empty - store.addValue(2); - store.addValue(4); - store.addValue(4); - assertEquals(3, store.getNumValues()); // Store is initially empty - } - @Test - public void testStatistics() { - - IntegerStore store = new IntegerStore(4); - - store.addValue(2); - store.addValue(4); - store.addValue(-3); - - assertTrue(Math.abs(1. - store.getAverage()) < 1.E-50); - - } - - @Test - public void testPositiveNegative() { - final int capacity = 3; - IntegerStore store = new IntegerStore(capacity); - - - assertEquals(capacity, store.getCapacity()); // The store's initial capacity - assertEquals(0, store.getNumValues()); // Store is initially empty - - final int v1 = -17, v2 = 3, v3 = -4, v4 = 7; - - store.addValue(v1); // Add a single value - assertEquals(1, store.getNumValues()); // Store contains one value - assertEquals(v1, store.getValue(0)); // Value should be present at index 0 - - store.addValue(v2); // Add two more values - store.addValue(v3); - - assertEquals(capacity, store.getCapacity()); // The store's initial capacity - assertEquals(3, store.getNumValues()); // Store contains three values - assertEquals(v1, store.getValue(0)); // Retrieve all values - assertEquals(v2, store.getValue(1)); - assertEquals(v3, store.getValue(2)); - - // Now we breach the container's initial capacity - store.addValue(v4); - assertEquals(2 * capacity, store.getCapacity()); // Twice the store's initial capacity - - // add 99996 more values - for (int i = 4; i < 100_000; i++) { - store.addValue(i); - } - assertEquals(100_000, store.getNumValues()); - assertTrue(100_000 <= store.getCapacity()); // Capacity should at least be 100_000 - - } -} diff --git a/Sd1/P/Array/integerStoreUnbounded/.gitignore b/Sd1/P/Array/integerStoreUnbounded/.gitignore deleted file mode 100644 index 128b1c231..000000000 --- a/Sd1/P/Array/integerStoreUnbounded/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -/.settings -/target -/.classpath -/.project -/bin diff --git a/Sd1/P/Array/integerStoreUnbounded/pom.xml b/Sd1/P/Array/integerStoreUnbounded/pom.xml deleted file mode 100644 index 69b3e68c4..000000000 --- a/Sd1/P/Array/integerStoreUnbounded/pom.xml +++ /dev/null @@ -1,58 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>intstore</artifactId> - <version>3.0</version> - <packaging>jar</packaging> - - <name>IntegerStore</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/Array/integerStoreUnbounded/src/main/java/de/hdm_stuttgart/mi/sd1/main/Driver.java b/Sd1/P/Array/integerStoreUnbounded/src/main/java/de/hdm_stuttgart/mi/sd1/main/Driver.java deleted file mode 100644 index fff2ebca8..000000000 --- a/Sd1/P/Array/integerStoreUnbounded/src/main/java/de/hdm_stuttgart/mi/sd1/main/Driver.java +++ /dev/null @@ -1,29 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.main; - -import de.hdm_stuttgart.mi.sd1.store.IntegerStore; - -/** - * Playing with fraction objects, producing some output. - * - */ -public class Driver { - /** - * @param args unused - */ - public static void main(String[] args) { - - // Create a new Store - final IntegerStore store = new IntegerStore(4); - - // Fill in some values - store.addValue(32); - store.addValue(-5); - store.addValue(24); - - System.out.println("Store contains " + store.getNumValues() + " values:"); - - for (int i = 0; i < store.getNumValues(); i++) { - System.out.println("Value " + (i + 1) + ": " + store.getValue(i)); - } - } -} diff --git a/Sd1/P/Array/integerStoreUnbounded/src/main/java/de/hdm_stuttgart/mi/sd1/store/IntegerStore.java b/Sd1/P/Array/integerStoreUnbounded/src/main/java/de/hdm_stuttgart/mi/sd1/store/IntegerStore.java deleted file mode 100644 index a22874cc7..000000000 --- a/Sd1/P/Array/integerStoreUnbounded/src/main/java/de/hdm_stuttgart/mi/sd1/store/IntegerStore.java +++ /dev/null @@ -1,78 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.store; - -/** - * A container holding a fixed - * number of integer values. - * - */ -public class IntegerStore { - - final static int defaultCapacity = 4; - long[] values ; // Array containing our values - int numValues = 0; // Number of values present in the container so far. - - /** - * Create a new store being able to - * hold integer values. - * - */ - public IntegerStore() { - values = new long[defaultCapacity]; - } - /** - * Create a new store being able to - * hold integer values. - * - * @param capacity The store's initial capacity. If more values - * are being added via {@link #addValue(long)} the capacity - * will be increased dynamically. - * - */ - public IntegerStore(int capacity) { - values = new long[capacity]; - } - - /** - * @return The number of elements the store may - * hold, see {@link #IntegerStore(int)}. - */ - public int getCapacity() { - return values.length; - } - - /** - * @return The number of values being contained. - */ - public int getNumValues() { - return numValues; - } - - /** - * Insert a new value into our container - * - * @param value The value to be inserted. This will increment - * {@link #getNumValues()} by one. - * - */ - public void addValue(long value) { - if (values.length <= numValues) { // Sufficient capacity available to add a new value? - final long[] currentArray = values; - values = new long[2 * currentArray.length]; // Double the current array's size. - for (int i = 0; i < currentArray.length; i++) { - values[i] = currentArray[i]; - } - } - values[numValues++] = value; - } - - /** - * Access the value at a given index - * - * @param index The desired value's index - * @return The desired value. Precondition: index < {@link #getNumValues()}} - * - */ - public long getValue(int index) { - return values[index]; - } -} \ No newline at end of file diff --git a/Sd1/P/Array/integerStoreUnbounded/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java b/Sd1/P/Array/integerStoreUnbounded/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java deleted file mode 100644 index 94590c084..000000000 --- a/Sd1/P/Array/integerStoreUnbounded/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Dealing with integer stores. - * - */ -package de.hdm_stuttgart.mi.sd1.store; \ No newline at end of file diff --git a/Sd1/P/Array/integerStoreUnbounded/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/IntStoreTest.java b/Sd1/P/Array/integerStoreUnbounded/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/IntStoreTest.java deleted file mode 100644 index 09172e4ea..000000000 --- a/Sd1/P/Array/integerStoreUnbounded/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/IntStoreTest.java +++ /dev/null @@ -1,48 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.fraction; - -import static org.junit.Assert.*; - -import org.junit.Test; - -import de.hdm_stuttgart.mi.sd1.store.IntegerStore; - -@SuppressWarnings("javadoc") -public class IntStoreTest { - - @Test - public void testPositiveNegative() { - final int capacity = 3; - IntegerStore store = new IntegerStore(capacity); - - - assertEquals(capacity, store.getCapacity()); // The store's initial capacity - assertEquals(0, store.getNumValues()); // Store is initially empty - - final int v1 = -17, v2 = 3, v3 = -4, v4 = 7; - - store.addValue(v1); // Add a single value - assertEquals(1, store.getNumValues()); // Store contains one value - assertEquals(v1, store.getValue(0)); // Value should be present at index 0 - - store.addValue(v2); // Add two more values - store.addValue(v3); - - assertEquals(capacity, store.getCapacity()); // The store's initial capacity - assertEquals(3, store.getNumValues()); // Store contains three values - assertEquals(v1, store.getValue(0)); // Retrieve all values - assertEquals(v2, store.getValue(1)); - assertEquals(v3, store.getValue(2)); - - // Now we breach the container's initial capacity - store.addValue(v4); - assertEquals(2 * capacity, store.getCapacity()); // Twice the store's initial capacity - - // add 99996 more values - for (int i = 4; i < 100_000; i++) { - store.addValue(i); - } - assertEquals(100_000, store.getNumValues()); - assertTrue(100_000 <= store.getCapacity()); // Capacity should at least be 100_000 - - } -} diff --git a/Sd1/P/Array/medianCmdLine/.gitignore b/Sd1/P/Array/medianCmdLine/.gitignore deleted file mode 100644 index 128b1c231..000000000 --- a/Sd1/P/Array/medianCmdLine/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -/.settings -/target -/.classpath -/.project -/bin diff --git a/Sd1/P/Array/medianCmdLine/pom.xml b/Sd1/P/Array/medianCmdLine/pom.xml deleted file mode 100644 index 7c36bbd9a..000000000 --- a/Sd1/P/Array/medianCmdLine/pom.xml +++ /dev/null @@ -1,72 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>statistics</artifactId> - <version>1.0</version> - <packaging>jar</packaging> - - <name>statistics</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <version>2.4</version> - <configuration> - <archive> - <manifest> - <addClasspath>true</addClasspath> - <mainClass>de.hdm_stuttgart.mi.sd1.statistics.main.Statistics</mainClass> - </manifest> - </archive> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/Array/medianCmdLine/src/main/java/de/hdm_stuttgart/mi/sd1/statistics/IntegerStore.java b/Sd1/P/Array/medianCmdLine/src/main/java/de/hdm_stuttgart/mi/sd1/statistics/IntegerStore.java deleted file mode 100644 index 5b7cfe0dd..000000000 --- a/Sd1/P/Array/medianCmdLine/src/main/java/de/hdm_stuttgart/mi/sd1/statistics/IntegerStore.java +++ /dev/null @@ -1,164 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.statistics; - -import java.util.Arrays; - -/** - * A container holding a fixed - * number of integer values. - * - */ -public class IntegerStore { - - final static int defaultCapacity = 4; - private int[] values ; // Array containing our values - private int numValues = 0; // Number of values present in the container so far. - - /** - * Create a new store being able to - * hold integer values. - * - */ - public IntegerStore() { - values = new int[defaultCapacity]; - } - /** - * Create a new store being able to - * hold integer values. - * - * @param capacity The store's initial capacity. If more values - * are being added via {@link #addValue(int)} the capacity - * will be increased dynamically. - * - */ - public IntegerStore(int capacity) { - values = new int[capacity]; - } - - /** - * Initializing from a given array of integers. - * - * @param values These presumably unsorted values will be sorted - * when being added to this store. - */ - public IntegerStore(final int[] values) { - - this.values = new int[values.length]; - for (final int value: values) { - addValue(value); - } - } - - - /** - * @return The number of elements the store may - * hold, see {@link #IntegerStore(int)}. - */ - public int getCapacity() { - return values.length; - } - - /** - * @return The number of values being contained. - */ - public int getNumValues() { - return numValues; - } - - /** - * Insert a new value into our container - * - * @param value The value to be inserted. This will increment - * {@link #getNumValues()} by one. - * - */ - public void addValue(int value) { - if (values.length <= numValues) { // Insufficient capacity available to add a new value? - final int[] currentArray = values; // Save the current array variable - values = new int[2 * currentArray.length]; // Double the current array's size. - for (int i = 0; i < currentArray.length; i++) { // Copy old values to new array - values[i] = currentArray[i]; - } - } - int insertIndex; - // Find the index of the first existing element - // being larger or equal to the new element to be inserted - for (insertIndex= 0; insertIndex < numValues && values[insertIndex] < value; insertIndex++); - - /* - * Example insert value == 3; Finding the right position - * and shift some values accordingly to create a "free" - * position - * Index values | 0| 1| 2| 3| 4| 5| ... - * -----------------+--+--+--+--+-----+ ... - * values oldArray | 1| 2| 7| 9| | | - * -----------------+--+--+--+--+-----+ ... - * shift right one index starting from value "7" and fill in value 3 - * -----------------+--+--+--+--+-----+ ... - * values newArray | 1| 2| 3| 7| 9| | ... - */ - - for (int i = numValues; insertIndex < i; i--) { // Shift values if necessary - values[i] = values[i - 1]; - } - values[insertIndex] = value; - numValues++; - } - - /** - * Access the value at a given index - * - * @param index The desired value's index - * @return The desired value. - * <dl> - <dt><b>Precondition:</b></dt> - <dd>index < {@link #getNumValues()}</dd> - </dl> - * - */ - public int getValue(int index) { - return values[index]; - } - - /** - * @return The array of values entered so far - */ - public int[] getValues() { - return Arrays.copyOfRange(values, 0, numValues); - } - - /** - * Empty the current set of values and set the store - * to its initial state. - */ - public void clear() { - numValues = 0; - } - - /** - * @return The sample's average value. - */ - public double getAverage() { - double sum = 0; - for (int i = 0; i < numValues; i++) { - sum += values[i]; - } - return sum / numValues; - } - /** - *<dl> - <dt><b>Precondition:</b></dt> - <dd>There must be at least one element.</dd> - </dl> - * - * @return The sample's median. - */ - public double getMedian() { - final int upperMiddleIndex = numValues / 2; - if (0 == numValues % 2) { // Even number of values - return (values[upperMiddleIndex] + // Choose mean of both - values[upperMiddleIndex -1]) / 2.;// center values - } else { // Odd number of values - return values[upperMiddleIndex]; - } - } -} \ No newline at end of file diff --git a/Sd1/P/Array/medianCmdLine/src/main/java/de/hdm_stuttgart/mi/sd1/statistics/main/ErrorState.java b/Sd1/P/Array/medianCmdLine/src/main/java/de/hdm_stuttgart/mi/sd1/statistics/main/ErrorState.java deleted file mode 100644 index 394dc95aa..000000000 --- a/Sd1/P/Array/medianCmdLine/src/main/java/de/hdm_stuttgart/mi/sd1/statistics/main/ErrorState.java +++ /dev/null @@ -1,34 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.statistics.main; - -/** - * Possible application error states providing both - * error code values and corresponding messages. - * - */ -public enum ErrorState { - - /** - * Our normal exit value in case the user's input is correct. - */ - OK(0), - - /** - * The user did not supply any value at all - */ - NO_VALUE(-1), - - /** - * At least on argument supplied by the user does not represent - * an integer value. - */ - NO_INTEGER(-2); - - ErrorState(final int errorCode) { - this.errorCode = errorCode; - } - /** - * The current state's error code - */ - public final int errorCode; - -} diff --git a/Sd1/P/Array/medianCmdLine/src/main/java/de/hdm_stuttgart/mi/sd1/statistics/main/InputValidator.java b/Sd1/P/Array/medianCmdLine/src/main/java/de/hdm_stuttgart/mi/sd1/statistics/main/InputValidator.java deleted file mode 100644 index 731038dd4..000000000 --- a/Sd1/P/Array/medianCmdLine/src/main/java/de/hdm_stuttgart/mi/sd1/statistics/main/InputValidator.java +++ /dev/null @@ -1,71 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.statistics.main; - -/** - * Validate sample input strings and convert - * them to integer values. - */ -public class InputValidator { - - /** - * Integer values being calculated upon - * constructor call. - */ - public final int[] values; - - private String errorMessage; - private ErrorState errorState; - - /** - * Transform a series of strings into integer values. In case - * of invalid input, a corresponding error messsage - * and error code will be accessible via {@link #getErrorMessage()} - * and {@link #getErrorState()} respectively. - * - * Example: The array ["-1", "20", "three"] - * contains two valid elements and the invalid element "three" which - * cannot be converted to an integer value by virtue of - * {@link Integer#parseInt(String)}. This will result in an - * informative error message containing a reference to the - * substring "three" and setting the error state to - * {@link ErrorState#NO_INTEGER}. - * - * @param userInput A set of strings possibly representing integer values. - */ - public InputValidator(final String[] userInput) { - - if (0 == userInput.length) { - values = null; - errorState = ErrorState.NO_VALUE; - errorMessage ="No values provided"; - } else { - values = new int[userInput.length]; - for (int i = 0; i < userInput.length; i++) { - try { - values[i] = Integer.parseInt(userInput[i]); - } catch (final NumberFormatException nfe) { - errorState = ErrorState.NO_INTEGER; - errorMessage = "Input string '" + userInput[i] + - "' does not represent an integer value"; - return; - } - errorState = ErrorState.OK; - errorMessage = null; - } - } - } - - /** - * @return An Error messsage corresponding to the input string array, null - * if {@link #getErrorState()} equals {@link ErrorState#OK}. - */ - public String getErrorMessage() { - return errorMessage; - } - - /** - * @return Error messsage corresponding to input string array - */ - public ErrorState getErrorState() { - return errorState; - } -} diff --git a/Sd1/P/Array/medianCmdLine/src/main/java/de/hdm_stuttgart/mi/sd1/statistics/main/Statistics.java b/Sd1/P/Array/medianCmdLine/src/main/java/de/hdm_stuttgart/mi/sd1/statistics/main/Statistics.java deleted file mode 100644 index dbbee4ca1..000000000 --- a/Sd1/P/Array/medianCmdLine/src/main/java/de/hdm_stuttgart/mi/sd1/statistics/main/Statistics.java +++ /dev/null @@ -1,24 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.statistics.main; - -import de.hdm_stuttgart.mi.sd1.statistics.IntegerStore; - -/** - * An application calculating statistical information - * for data being provided as command line arguments. - * - */ -public class Statistics { - /** - * Calculate average and median of a given sample's integer values. - * - * @param args Multiple integer values defining a series of measurements. - */ - public static void main(String[] args) { - - final InputValidator userInput = new InputValidator(args); - - final IntegerStore store = new IntegerStore(userInput.values); - System.out.println("Your sample's average is: " + store.getAverage()); - System.out.println("Your sample's median is: " + store.getMedian()); - } -} diff --git a/Sd1/P/Array/medianCmdLine/src/main/java/de/hdm_stuttgart/mi/sd1/statistics/package-info.java b/Sd1/P/Array/medianCmdLine/src/main/java/de/hdm_stuttgart/mi/sd1/statistics/package-info.java deleted file mode 100644 index 7c67da6d2..000000000 --- a/Sd1/P/Array/medianCmdLine/src/main/java/de/hdm_stuttgart/mi/sd1/statistics/package-info.java +++ /dev/null @@ -1,6 +0,0 @@ -/** - * Dealing with integer stores. We add a method - * to compute a given sample's median - * - */ -package de.hdm_stuttgart.mi.sd1.statistics; \ No newline at end of file diff --git a/Sd1/P/Array/medianCmdLine/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestSorting.java b/Sd1/P/Array/medianCmdLine/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestSorting.java deleted file mode 100644 index 215735745..000000000 --- a/Sd1/P/Array/medianCmdLine/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestSorting.java +++ /dev/null @@ -1,42 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.store; - -import static org.junit.Assert.*; - -import org.junit.Assert; -import org.junit.Test; - -import de.hdm_stuttgart.mi.sd1.statistics.IntegerStore; - -@SuppressWarnings("javadoc") -public class TestSorting { - - @Test - public void simpleSort() { - final int[] - unsortedValues = {0, -1, 5, 2, 7, 6}, - sortedValues = {-1, 0, 2, 5, 6, 7}; - - assertEquals(sortedValues.length, unsortedValues.length); - - final IntegerStore store = new IntegerStore(); - for (final int i: unsortedValues) { - store.addValue(i); - } - assertArrayEquals(sortedValues, store.getValues()); - } - - @Test - public void duplicateSort() { - final int[] - unsortedValues = {0, -7, 3, 2, 3, -4, 3, 4, 5, -7}, - sortedValues = {-7, -7, -4, 0, 2, 3, 3, 3, 4, 5}; - - assertEquals(sortedValues.length, unsortedValues.length); - - final IntegerStore store = new IntegerStore(); - for (final int i: unsortedValues) { - store.addValue(i); - } - Assert.assertArrayEquals(sortedValues, store.getValues()); - } -} diff --git a/Sd1/P/Array/medianCmdLine/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestStatisticMethods.java b/Sd1/P/Array/medianCmdLine/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestStatisticMethods.java deleted file mode 100644 index 0668d0ea3..000000000 --- a/Sd1/P/Array/medianCmdLine/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestStatisticMethods.java +++ /dev/null @@ -1,95 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.store; - -import static org.junit.Assert.*; - -import org.junit.Test; - -import de.hdm_stuttgart.mi.sd1.statistics.IntegerStore; - -@SuppressWarnings("javadoc") -public class TestStatisticMethods { - - @Test - public void testClear() { - IntegerStore store = new IntegerStore(4); - - assertEquals(0, store.getNumValues()); // Store is initially empty - - store.addValue(2); - store.addValue(4); - assertEquals(2, store.getNumValues()); // Store is initially empty - - store.clear(); - - assertEquals(0, store.getNumValues()); // Store is initially empty - store.addValue(2); - store.addValue(4); - store.addValue(4); - assertEquals(3, store.getNumValues()); // Store is initially empty - } - @Test - public void testAverage() { - - IntegerStore store = new IntegerStore(4); - - store.addValue(2); - store.addValue(4); - store.addValue(-3); - - assertTrue(Math.abs(1. - store.getAverage()) < 1.E-50); - } - - @Test - public void testPositiveNegative() { - final int capacity = 3; - IntegerStore store = new IntegerStore(capacity); - - - assertEquals(capacity, store.getCapacity()); // The store's initial capacity - assertEquals(0, store.getNumValues()); // Store is initially empty - - final int v1 = -17, v2 = 3, v3 = -4, v4 = 7; - - store.addValue(v1); // Add a single value - assertEquals(1, store.getNumValues()); // Store contains one value - assertEquals(v1, store.getValue(0)); // Value should be present at index 0 - - store.addValue(v2); // Add two more values - store.addValue(v3); - - assertEquals(capacity, store.getCapacity()); // The store's initial capacity - assertEquals(3, store.getNumValues()); // Store contains three values - assertEquals(v1, store.getValue(0)); // Retrieve all values - assertEquals(v3, store.getValue(1)); - assertEquals(v2, store.getValue(2)); - - // Now we breach the container's initial capacity - store.addValue(v4); - assertEquals(2 * capacity, store.getCapacity()); // Twice the store's initial capacity - - // add 99996 more values - for (int i = 4; i < 100_000; i++) { - store.addValue(i); - } - assertEquals(100_000, store.getNumValues()); - assertTrue(100_000 <= store.getCapacity()); // Capacity should at least be 100_000 - } - @Test - public void testMedian() { - IntegerStore store = new IntegerStore(new int[] {2, 7, 0, -3, 4}); - assertArrayEquals(new int[] {-3, 0, 2, 4, 7}, store.getValues()); - assertTrue(Math.abs(2. - store.getMedian()) < 1.E-10); - - store.addValue(7); - assertArrayEquals(new int[] {-3, 0, 2, 4, 7, 7}, store.getValues()); - assertTrue(Math.abs(3. - store.getMedian()) < 1.E-10); - - store.addValue(7); - assertArrayEquals(new int[] {-3, 0, 2, 4, 7, 7, 7}, store.getValues()); - assertTrue(Math.abs(4. - store.getMedian()) < 1.E-50); - - store.addValue(6); - assertArrayEquals(new int[] {-3, 0, 2, 4, 6, 7, 7, 7}, store.getValues()); - assertTrue(Math.abs(5. - store.getMedian()) < 1.E-50); - } -} diff --git a/Sd1/P/Array/medianCmdLine/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestValidation.java b/Sd1/P/Array/medianCmdLine/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestValidation.java deleted file mode 100644 index 15a884354..000000000 --- a/Sd1/P/Array/medianCmdLine/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestValidation.java +++ /dev/null @@ -1,44 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.store; - -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import org.junit.Test; - -import de.hdm_stuttgart.mi.sd1.statistics.main.ErrorState; -import de.hdm_stuttgart.mi.sd1.statistics.main.InputValidator; - -@SuppressWarnings("javadoc") -public class TestValidation { - - @Test - public void testNoUserInput() { - final InputValidator inputValidate = new InputValidator(new String[]{}); - assertEquals(ErrorState.NO_VALUE, inputValidate.getErrorState()); - assertTrue(null != inputValidate.getErrorMessage()); - } - - @Test - public void testOneValidArgument() { - final InputValidator inputValidate = new InputValidator(new String[]{"1"}); - assertEquals(ErrorState.OK, inputValidate.getErrorState()); - assertTrue(null == inputValidate.getErrorMessage()); - assertArrayEquals(new int[]{1}, inputValidate.values); - } - - @Test - public void testMultipleValidArguments() { - final InputValidator inputValidate = new InputValidator(new String[]{"1", "-5", "107", "-1132"}); - assertEquals(ErrorState.OK, inputValidate.getErrorState()); - assertTrue(null == inputValidate.getErrorMessage()); - assertArrayEquals(new int[]{1, -5, 107, -1132}, inputValidate.values); - } - - @Test - public void testMultipleInvalidArguments() { - final InputValidator inputValidate = new InputValidator(new String[]{"1", "-5", "seven", "-1132"}); - assertEquals(ErrorState.NO_INTEGER, inputValidate.getErrorState()); - assertTrue(null != inputValidate.getErrorMessage()); - } -} diff --git a/Sd1/P/Collection/Intro/LookupSet/.gitignore b/Sd1/P/Collection/Intro/LookupSet/.gitignore deleted file mode 100644 index 954270fb2..000000000 --- a/Sd1/P/Collection/Intro/LookupSet/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project \ No newline at end of file diff --git a/Sd1/P/Collection/Intro/LookupSet/pom.xml b/Sd1/P/Collection/Intro/LookupSet/pom.xml deleted file mode 100644 index 9bb535424..000000000 --- a/Sd1/P/Collection/Intro/LookupSet/pom.xml +++ /dev/null @@ -1,58 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.mi</groupId> - <artifactId>setlookup</artifactId> - <version>1.0</version> - <packaging>jar</packaging> - - <name>setlookup</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/Collection/Intro/LookupSet/src/main/java/de/hdm_stuttgart/mi/sd1/collection/Coordinate.java b/Sd1/P/Collection/Intro/LookupSet/src/main/java/de/hdm_stuttgart/mi/sd1/collection/Coordinate.java deleted file mode 100644 index 1e66cb565..000000000 --- a/Sd1/P/Collection/Intro/LookupSet/src/main/java/de/hdm_stuttgart/mi/sd1/collection/Coordinate.java +++ /dev/null @@ -1,42 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.collection; - -/** - * Representing Cartesian coordinate values. - * - */ -public class Coordinate { - - private int x, y; - - /** - * Create a Cartesian coordinate / point. - * @param x X-coordinate value - * @param y Y-coordinate value - */ - public Coordinate(int x, int y) { - this.x = x; - this.y = y; - } - - @Override - public boolean equals(Object obj) { - if (obj instanceof Coordinate) { - return x == ((Coordinate)obj).x && - y == ((Coordinate)obj).y; - } else { - return false; - } - } - - @Override - public String toString() { - return "(" + x + "|" + y + ")"; - } - - @Override - public int hashCode() { - // See last answer (06/16/2014) in - // http://stackoverflow.com/questions/16629893/good-hashcode-implementation - return Long.valueOf(x * 31 + y).hashCode(); - } -} diff --git a/Sd1/P/Collection/Intro/LookupSet/src/main/java/de/hdm_stuttgart/mi/sd1/collection/InsertCoordinates.java b/Sd1/P/Collection/Intro/LookupSet/src/main/java/de/hdm_stuttgart/mi/sd1/collection/InsertCoordinates.java deleted file mode 100644 index dc8970a9e..000000000 --- a/Sd1/P/Collection/Intro/LookupSet/src/main/java/de/hdm_stuttgart/mi/sd1/collection/InsertCoordinates.java +++ /dev/null @@ -1,44 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.collection; - -import java.util.HashSet; -import java.util.Set; - -/** - * Testing sets and lists. - * - */ -public class InsertCoordinates { - - /** - * @param args unused - */ - public static void main(String[] args) { - - // Defining and testing integer coordinates - final Coordinate - c12 = new Coordinate(1, 2), - c52 = new Coordinate(5, 0), - c12Duplicate = new Coordinate(1, 2); - - - System.out.println("c12:"+ c12); - System.out.println("c12.equals(c52):"+ c12.equals(c52)); - System.out.println("c12.equals(c12Duplicate):"+ c12.equals(c12Duplicate)); - System.out.println("c12.equals(\"dummy\"):"+ c12.equals("dummy")); - - System.out.println("c12.hashCode() and c12Duplicate.hashCode():"+ c12.hashCode() + "," + c12Duplicate.hashCode()); - - // A Set of coordinates - final Set<Coordinate> points = new HashSet<Coordinate>(); - - points.add(new Coordinate(1, 2)); - points.add(new Coordinate(4, 1)); - points.add(new Coordinate(1, 2)); // Equal to first Object - - // Iterate over all inserted coordinates - System.out.println("The set contains " + points.size() + " elements:"); - for (final Coordinate c : points) { - System.out.println(c.toString()); - } - } -} diff --git a/Sd1/P/Collection/Intro/LookupSet/src/main/java/de/hdm_stuttgart/mi/sd1/collection/SimpleTextList.java b/Sd1/P/Collection/Intro/LookupSet/src/main/java/de/hdm_stuttgart/mi/sd1/collection/SimpleTextList.java deleted file mode 100644 index fa4c7d6f4..000000000 --- a/Sd1/P/Collection/Intro/LookupSet/src/main/java/de/hdm_stuttgart/mi/sd1/collection/SimpleTextList.java +++ /dev/null @@ -1,29 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.collection; -import java.util.List; -import java.util.Vector; - -/** - * List operations - * - */ -public class SimpleTextList { - /** - * @param args unused. - */ - public static void main(String[] args) { - - final List<String> names = new Vector<String>(); - - names.add("Eve"); - names.add("Jim"); - names.add("Tom"); - names.add("Jim"); - - // Iterate over all inserted strings - System.out.println("The list contains " + names.size() + " elements:"); - for (final String s : names) { - System.out.println(s); - } - } -} - diff --git a/Sd1/P/Collection/Intro/LookupSet/src/main/java/de/hdm_stuttgart/mi/sd1/collection/SimpleTextSet.java b/Sd1/P/Collection/Intro/LookupSet/src/main/java/de/hdm_stuttgart/mi/sd1/collection/SimpleTextSet.java deleted file mode 100644 index 9a8377572..000000000 --- a/Sd1/P/Collection/Intro/LookupSet/src/main/java/de/hdm_stuttgart/mi/sd1/collection/SimpleTextSet.java +++ /dev/null @@ -1,29 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.collection; - -import java.util.HashSet; -import java.util.Set; - -/** - * Set operations - * - */ -public class SimpleTextSet { - /** - * @param args unused - */ - public static void main(String[] args) { - - final Set<String> names = new HashSet<String>(); - - names.add("Eve"); - names.add("Jim"); - names.add("Tom"); - names.add("Jim"); - - // Iterate over all inserted coordinates - System.out.println("The set contains " + names.size() + " elements:"); - for (final String s : names) { - System.out.println(s); - } - } -} diff --git a/Sd1/P/Collection/Intro/LookupSet/src/main/java/de/hdm_stuttgart/mi/sd1/collection/package-info.java b/Sd1/P/Collection/Intro/LookupSet/src/main/java/de/hdm_stuttgart/mi/sd1/collection/package-info.java deleted file mode 100644 index 5c1e2e4d1..000000000 --- a/Sd1/P/Collection/Intro/LookupSet/src/main/java/de/hdm_stuttgart/mi/sd1/collection/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Simple Collection tests - */ - -package de.hdm_stuttgart.mi.sd1.collection; \ No newline at end of file diff --git a/Sd1/P/Collection/Intro/LookupSet/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestDuplicates.java b/Sd1/P/Collection/Intro/LookupSet/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestDuplicates.java deleted file mode 100644 index 325e2f4dc..000000000 --- a/Sd1/P/Collection/Intro/LookupSet/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestDuplicates.java +++ /dev/null @@ -1,37 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.store; - -import java.util.HashSet; -import java.util.Set; - -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; - -@SuppressWarnings("javadoc") -public class TestDuplicates { - - final Set<String> classmates = new HashSet<String>(); - final static String kimDuplicate = "Kim"; - - @Before - public void init() { - classmates.add("Jim"); // First entry - classmates.add(kimDuplicate); // Second entry - classmates.add("Eve"); // Third entry - classmates.add(kimDuplicate); // identical to existing entry "Kim" - // - //Result: {"Jim", "Kim", "Eve"} - } - @Test - - public void testDuplicateCount() { - Assert.assertEquals("Expecting three entries {'Jim', 'Kim', 'Eve'}", 3, classmates.size()); - int count = 0; - for (final String name: classmates) { - if (kimDuplicate.equals(name)) { - count++; - } - } - Assert.assertEquals(1, count); - } -} diff --git a/Sd1/P/Collection/Intro/LookupSet/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestStringLookup.java b/Sd1/P/Collection/Intro/LookupSet/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestStringLookup.java deleted file mode 100644 index 1bb7d78fc..000000000 --- a/Sd1/P/Collection/Intro/LookupSet/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestStringLookup.java +++ /dev/null @@ -1,32 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.store; - -import java.util.HashSet; -import java.util.Set; - -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; - -@SuppressWarnings("javadoc") -public class TestStringLookup { - - final Set<String> classmates = new HashSet<String>(); - - @Before - public void init() { - classmates.add("Jim"); - classmates.add("Kim"); - classmates.add("Eve"); - } - @Test - public void testLookupExisting() { - final String candidate = "Jim"; - Assert.assertTrue("Classmate '" + candidate + "' is in Set", classmates.contains(candidate)); - - } - @Test - public void testLookupNonExisting() { - final String candidate = "Petra"; - Assert.assertTrue("Classmate '" + candidate + "' is not in Set", !classmates.contains(candidate)); - } -} diff --git a/Sd1/P/CollectionImplement/StringSet/Solution/.gitignore b/Sd1/P/CollectionImplement/StringSet/Solution/.gitignore deleted file mode 100644 index 4e247eee2..000000000 --- a/Sd1/P/CollectionImplement/StringSet/Solution/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project diff --git a/Sd1/P/CollectionImplement/StringSet/Solution/pom.xml b/Sd1/P/CollectionImplement/StringSet/Solution/pom.xml deleted file mode 100644 index 3d347b61d..000000000 --- a/Sd1/P/CollectionImplement/StringSet/Solution/pom.xml +++ /dev/null @@ -1,72 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm_stuttgart.mi.sd1</groupId> - <artifactId>stringset</artifactId> - <version>2.0</version> - <packaging>jar</packaging> - - <name>stringset</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <version>2.4</version> - <configuration> - <archive> - <manifest> - <addClasspath>true</addClasspath> - <mainClass>de.hdm_stuttgart.mi.sd1.textstat/TextStatistics</mainClass> - </manifest> - </archive> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/CollectionImplement/StringSet/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/stringset/MySet_String.java b/Sd1/P/CollectionImplement/StringSet/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/stringset/MySet_String.java deleted file mode 100644 index 69780fb4b..000000000 --- a/Sd1/P/CollectionImplement/StringSet/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/stringset/MySet_String.java +++ /dev/null @@ -1,129 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.stringset; - -import java.util.Arrays; - -/** - * Implementing a set of strings. - * - */ -public class MySet_String implements Set_String { - - // Indicate e.g. an object has not been found. Only index values of zero or - // greater are to be interpreted as array index values. - private final static int inexistentIndexValue = -1; - - // A set may initially harbor 10 string instances. - private final static int initialCapacity = 10; - - private int capacity; - private String [] strings; - private int [] hashValues; - - private int size; - - private void provideRequiredCapacity() { - if (size == capacity) { - capacity *= 2; - strings = Arrays.copyOf(strings, capacity); - hashValues = Arrays.copyOf(hashValues, capacity); - } - } - - private int indexOf(Object obj) { - if (obj instanceof String) { - final int objHash = obj.hashCode(); - for (int i = 0; i < size; i++) { - // Does an equal hash value exists? If so, - // compare the possible candidate for object equality. - if (objHash == hashValues[i] && strings[i].equals(obj)){ - return i; - } - } - } - return inexistentIndexValue; - } - - private void init(int capacity) { - this.capacity = capacity; - strings = new String[initialCapacity]; - hashValues = new int[initialCapacity]; - size = 0; - } - - /** - * Constructs a new, empty set; - */ - public MySet_String() { - init(initialCapacity); - } - - /** - * Copy array values into this set excluding duplicates. - * - * @param source The array to copy values from - */ - public MySet_String(final String[] source) { - init(source.length); // May be too large in case of duplicates or null values. - for (final String s: source) { - add(s); - } - } - - @Override - public int size() { - return size; - } - - @Override - public boolean isEmpty() { - return 0 == size; - } - - @Override - public boolean contains(Object o) { - return inexistentIndexValue != indexOf(o); - } - - @Override - public String[] toArray() { - return Arrays.copyOf(strings, size); - } - - @Override - public boolean add(String s) { - if (null == s || contains(s)) {// either null or already member of set. - return false; - } else { // A String instance not being null and not yet part of the game. - provideRequiredCapacity(); - strings[size] = s; - hashValues[size++] = s.hashCode(); - return true; - } - } - - @Override - public boolean remove(Object string) { - final int index = indexOf(string); - if (inexistentIndexValue == index) { - return false; // String is not - } else { - // Example: Set ["a", "b", "c", "d"], removing "b" with index value 1: - // / / - // / / loop index values - // / / 2 and 3 - // / / - // ==> ["a", "c", "d"] - size --; - for (int i = index; i < size; i++) { - strings[i] = strings[i + 1]; - hashValues[i] = hashValues[i + 1]; - } - return true; - } - } - - @Override - public void clear() { - size = 0; - } -} diff --git a/Sd1/P/CollectionImplement/StringSet/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/stringset/Set_String.java b/Sd1/P/CollectionImplement/StringSet/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/stringset/Set_String.java deleted file mode 100644 index e3880a48d..000000000 --- a/Sd1/P/CollectionImplement/StringSet/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/stringset/Set_String.java +++ /dev/null @@ -1,92 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.stringset; - - -/** - * A collection of Strings that contains no duplicate elements. - * More formally, sets contain no pair of Strings s1 and s2 such that - * s1.equals(s2), and no null elements. As implied by its name, - * this class models the mathematical set abstraction. - * - * The StringSet class places stipulations on the contracts of the add, - * equals and hashCode methods. - * - * The stipulation on constructors is, not surprisingly, that all constructors - * must create a set that contains no duplicate elements (as defined above). - * - */ -public interface Set_String { - - /** - * Returns the number of strings in this set (its cardinality). - * - * @return the number of elements in this set (its cardinality) - */ - public int size() ; - - /** - * Returns true if this set contains no elements. - * - * @return true if this set contains no elements - */ - public boolean isEmpty(); - - /** - * Returns true if this set contains the specified element. More - * formally, returns true if and only if this set contains an - * element e such that (o==null ? e==null : o.equals(e)). - * - * @param o element whose presence in this set is to be tested - * @return true if this set contains the specified element. - * A null value will be treated as "not in set". - * - */ - public boolean contains(Object o); - - /** - * Returns an array containing all strings in this set. - * - * The returned array will be "safe" in that no references to it are - * maintained by this set. (In other words, this method allocates - * a new array). The caller is thus free to modify the returned array. - * - * @return an array containing all strings in this set. - */ - public String[] toArray(); - - /** - * Adds the specified element to this set if it is not already present. - * More formally, adds the specified element e to this set if the set - * contains no element e2 such that (e==null ? e2==null : e.equals(e2)). - * If this set already contains the element, the call leaves the set - * unchanged and returns false. In combination with the restriction on - * constructors, this ensures that sets never contain duplicate elements. - * - * null values will be discarded - * - * @param s string to be added to this set - * - * @return true if this set did not already contain the specified element. - * The attempted insert of a null value will return false. - */ - public boolean add(String s); - - /** - * Removes the specified string from this set if it is present - * (optional operation). More formally, removes a string s - * such that (o==null ? s==null : o.equals(s)), if this set - * contains such a string. Returns true if this set contained - * the string (or equivalently, if this set changed as a result - * of the call). (This set will not contain the string once the - * call returns.) - * - * @param s String to be removed from this set, if present. - * @return true if this set contained the specified string. - */ - public boolean remove(Object s); - - /** - * Removes all of the strings from this set (optional operation). - * The set will be empty after this call returns. - */ - public void clear(); -} \ No newline at end of file diff --git a/Sd1/P/CollectionImplement/StringSet/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/stringset/package-info.java b/Sd1/P/CollectionImplement/StringSet/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/stringset/package-info.java deleted file mode 100644 index 4205f39b1..000000000 --- a/Sd1/P/CollectionImplement/StringSet/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/stringset/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * Implementing a collection of Strings - */ -package de.hdm_stuttgart.mi.sd1.stringset; \ No newline at end of file diff --git a/Sd1/P/CollectionImplement/StringSet/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/stringset/BasicTests.java b/Sd1/P/CollectionImplement/StringSet/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/stringset/BasicTests.java deleted file mode 100644 index 74c5bf589..000000000 --- a/Sd1/P/CollectionImplement/StringSet/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/stringset/BasicTests.java +++ /dev/null @@ -1,49 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.stringset; - -import org.junit.Assert; -import org.junit.Test; - -/** - * Testing private set implementation - * - */ -public class BasicTests { - - /** - * Testing array initializer - */ - @Test - public void testArrayInit() { - // Set should contain only two strings (no duplicate). - final Set_String names = new MySet_String(new String[]{"Jim", "Kim", "Jim"}); - Assert.assertEquals(2, names.toArray().length); - - names.remove("Anna"); // Not in set - Assert.assertTrue(names.contains("Jim")); - Assert.assertTrue(names.contains("Kim")); - Assert.assertEquals(2, names.toArray().length); - Assert.assertTrue(!names.isEmpty()); - - names.remove("Jim"); // Not in set - Assert.assertTrue(!names.contains("Jim")); - Assert.assertTrue(names.contains("Kim")); - Assert.assertEquals(1, names.toArray().length); - Assert.assertTrue(!names.isEmpty()); - - names.remove("Jim"); // Not in set - Assert.assertTrue(!names.contains("Jim")); - Assert.assertTrue(names.contains("Kim")); - Assert.assertEquals(1, names.toArray().length); - Assert.assertTrue(!names.isEmpty()); - - names.remove("Kim"); // Not in set - Assert.assertTrue(!names.contains("Jim")); - Assert.assertTrue(!names.contains("Kim")); - Assert.assertEquals(0, names.toArray().length); - Assert.assertTrue(names.isEmpty()); - - - - } - -} diff --git a/Sd1/P/Etest/Diff/Solution/.gitignore b/Sd1/P/Etest/Diff/Solution/.gitignore deleted file mode 100644 index 4e247eee2..000000000 --- a/Sd1/P/Etest/Diff/Solution/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project diff --git a/Sd1/P/Etest/Diff/Solution/pom.xml b/Sd1/P/Etest/Diff/Solution/pom.xml deleted file mode 100644 index 09f293e5d..000000000 --- a/Sd1/P/Etest/Diff/Solution/pom.xml +++ /dev/null @@ -1,58 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>diff</artifactId> - <version>1.0</version> - <packaging>jar</packaging> - - <name>Diff</name> - <url>http://www.mi.hdm-stuttgart.de/freedocs/topic/de.hdm_stuttgart.mi.swd1/index.html</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/Etest/Diff/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/store/Diff.java b/Sd1/P/Etest/Diff/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/store/Diff.java deleted file mode 100644 index d4336361c..000000000 --- a/Sd1/P/Etest/Diff/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/store/Diff.java +++ /dev/null @@ -1,30 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.store; - -/** - * Additional helper methods - * - */ -public class Diff { - /** - * Compute the absolute value of the biggest difference between - * two of three given numbers a, b, and c - * - * Examples: - * - * a == 1, b == 2, c ==10, the biggest absolute difference is 10 - 1 = 9 - * a == 4, b ==10, c == 1, the biggest absolute difference is 10 - 1 = 9 - * a ==-3, b == 4, c == 3, the biggest absolute difference is 4 - (-3) = 7 - * - * - * @param a The first of three parameters - * @param b The second of three parameters - * @param c The third of three parameters - * @return The absolute value of the biggest difference between two arbitrary parameters - */ - public static int maxDiff(int a, int b, int c) { - final int ab = Math.abs(a - b), - ac = Math.abs(a - c), - bc = Math.abs(b - c); - return Math.max(ab, Math.max(ac, bc)); - } -} diff --git a/Sd1/P/Etest/Diff/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java b/Sd1/P/Etest/Diff/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java deleted file mode 100644 index 94590c084..000000000 --- a/Sd1/P/Etest/Diff/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Dealing with integer stores. - * - */ -package de.hdm_stuttgart.mi.sd1.store; \ No newline at end of file diff --git a/Sd1/P/Etest/Diff/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/DiffTest.java b/Sd1/P/Etest/Diff/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/DiffTest.java deleted file mode 100644 index 211dfddcd..000000000 --- a/Sd1/P/Etest/Diff/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/DiffTest.java +++ /dev/null @@ -1,29 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.fraction; - -import static org.junit.Assert.*; - -import org.junit.Test; - -import de.hdm_stuttgart.mi.sd1.store.Diff; - - -/** - * Testing max diff function - * - */ -public class DiffTest { - - /** - * Test absolute maximal difference - */ - @Test - public void testDiff() { - assertEquals(0, Diff.maxDiff(0, 0, 0)); - assertEquals(0, Diff.maxDiff(1, 1, 1)); - assertEquals(2, Diff.maxDiff(1, 2, 3)); - assertEquals(3, Diff.maxDiff(4, 1, 4)); - assertEquals(3, Diff.maxDiff(-1, -2, -4)); - assertEquals(1, Diff.maxDiff(2, 2, 3)); - - } -} diff --git a/Sd1/P/Etest/Diff/Test/.gitignore b/Sd1/P/Etest/Diff/Test/.gitignore deleted file mode 100644 index 4e247eee2..000000000 --- a/Sd1/P/Etest/Diff/Test/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project diff --git a/Sd1/P/Etest/Diff/Test/pom.xml b/Sd1/P/Etest/Diff/Test/pom.xml deleted file mode 100644 index 09f293e5d..000000000 --- a/Sd1/P/Etest/Diff/Test/pom.xml +++ /dev/null @@ -1,58 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>diff</artifactId> - <version>1.0</version> - <packaging>jar</packaging> - - <name>Diff</name> - <url>http://www.mi.hdm-stuttgart.de/freedocs/topic/de.hdm_stuttgart.mi.swd1/index.html</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/Etest/Diff/Test/src/main/java/de/hdm_stuttgart/mi/sd1/store/Diff.java b/Sd1/P/Etest/Diff/Test/src/main/java/de/hdm_stuttgart/mi/sd1/store/Diff.java deleted file mode 100644 index 1d0e1657d..000000000 --- a/Sd1/P/Etest/Diff/Test/src/main/java/de/hdm_stuttgart/mi/sd1/store/Diff.java +++ /dev/null @@ -1,27 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.store; - -/** - * Additional helper methods - * - */ -public class Diff { - /** - * Compute the absolute value of the biggest difference between - * two of three given numbers a, b, and c - * - * Examples: - * - * a == 1, b == 2, c ==10, the biggest absolute difference is 10 - 1 = 9 - * a == 4, b ==10, c == 1, the biggest absolute difference is 10 - 1 = 9 - * a ==-3, b == 4, c == 3, the biggest absolute difference is 4 - (-3) = 7 - * - * - * @param a The first of three parameters - * @param b The second of three parameters - * @param c The third of three parameters - * @return The absolute value of the biggest difference between two arbitrary parameters - */ - public static int maxDiff(int a, int b, int c) { - return 0; // TODO: Implementation to be completed - } -} diff --git a/Sd1/P/Etest/Diff/Test/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java b/Sd1/P/Etest/Diff/Test/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java deleted file mode 100644 index 24b57ed19..000000000 --- a/Sd1/P/Etest/Diff/Test/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Dealing with difference values - * - */ -package de.hdm_stuttgart.mi.sd1.store; \ No newline at end of file diff --git a/Sd1/P/Etest/Diff/Test/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/DiffTest.java b/Sd1/P/Etest/Diff/Test/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/DiffTest.java deleted file mode 100644 index 211dfddcd..000000000 --- a/Sd1/P/Etest/Diff/Test/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/DiffTest.java +++ /dev/null @@ -1,29 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.fraction; - -import static org.junit.Assert.*; - -import org.junit.Test; - -import de.hdm_stuttgart.mi.sd1.store.Diff; - - -/** - * Testing max diff function - * - */ -public class DiffTest { - - /** - * Test absolute maximal difference - */ - @Test - public void testDiff() { - assertEquals(0, Diff.maxDiff(0, 0, 0)); - assertEquals(0, Diff.maxDiff(1, 1, 1)); - assertEquals(2, Diff.maxDiff(1, 2, 3)); - assertEquals(3, Diff.maxDiff(4, 1, 4)); - assertEquals(3, Diff.maxDiff(-1, -2, -4)); - assertEquals(1, Diff.maxDiff(2, 2, 3)); - - } -} diff --git a/Sd1/P/Etest/IntMax/Solution/.gitignore b/Sd1/P/Etest/IntMax/Solution/.gitignore deleted file mode 100644 index c708c363d..000000000 --- a/Sd1/P/Etest/IntMax/Solution/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/target -/.settings -/.classpath -/.project diff --git a/Sd1/P/Etest/IntMax/Solution/pom.xml b/Sd1/P/Etest/IntMax/Solution/pom.xml deleted file mode 100644 index 66abd4c3e..000000000 --- a/Sd1/P/Etest/IntMax/Solution/pom.xml +++ /dev/null @@ -1,39 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm_stuttgart.mi.sd1</groupId> - <artifactId>intmax</artifactId> - <version>2.0</version> - <packaging>jar</packaging> - - <name>intmax</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - </plugins> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/Etest/IntMax/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/intmax/Max.java b/Sd1/P/Etest/IntMax/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/intmax/Max.java deleted file mode 100644 index 2c4a9b11f..000000000 --- a/Sd1/P/Etest/IntMax/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/intmax/Max.java +++ /dev/null @@ -1,92 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.intmax; - -/** - * Dealing with array values - * - */ -public class Max { - - /** - * An array may contain multiple values being equal to the maximum. - * The sample [-4, 5, 2, 5, 4] contains two elements being equal to - * the array's maximum value 5. This method retrieves the first index - * of an array element being equal to the maximum. In the current - * example the desired index is 1 pointing to the second array element. - * - * @param values An array of arbitrary values. - * - * @return The smallest index of an array member being equal to the maximum. - * <dl> - <dt><b>Precondition:</b></dt> - <dd>0 < values.length</dd> - <dt><b>Postcondition:</b></dt> - <dd>0 <= return value < values.length</dd> - </dl> - */ - public static int getFirstMaxIndex(int[] values) { - int - firstMaxIndex = 0; // The index of the first array element being equal to the maximum value - - for (int i = 1; i < values.length; i++) { - if (values[firstMaxIndex] < values[i]) {// Another value larger than the current maximum candidate - firstMaxIndex = i; // New index to possible first maximum value - } - } - return firstMaxIndex; - } - - /** - * An array may contain multiple values being equal to the maximum. - * The sample [-4, 5, 2, 5, 4] contains two elements being equal to - * the array's maximum value 5. This method retrieves all index - * values of array element being equal to the maximum and returns - * them as an array in ascending order. In the current example the - * returned array will contain the indices [1, 3] pointing to the - * second and fourth array elements. - * - * @param values An array of arbitrary values. - * - * @return All index values in ascending order of any array member's - * being equal to the maximum. - * <dl> - <dt><b>Precondition:</b></dt> - <dd>0 < values.length</dd> - <dt><b>Postcondition:</b></dt> - <dd>0 < length of returned array</dd> - </dl> - */ - public static int[] getMaxIndexValues(int[] values) { - int - numberOfMaxValues = 1, // The number of array elements being equal to the maximum. - firstMaxIndex = 0; // The index of the first array element being equal to the maximum value. - - for (int i = 1; i < values.length; i++) { - if (values[firstMaxIndex] == values[i]) { // Another value being identical to the maximum? - numberOfMaxValues++; - } else if (values[firstMaxIndex] < values[i]) {// Even greater than the maximum? - values[firstMaxIndex] = values[i]; // Raise the maximum candidate value - firstMaxIndex = i; // New index to possible first maximum value - numberOfMaxValues = 1; // No luck so far, redo from Start! - } - } - // Now we do know: - // 1. The first max value's index aka firstMaxIndex - // 2. the number of array members being equal to the array's maximum value. - // We can this allocate an array of required size: - // - final int[] ascendingIndexList = new int[numberOfMaxValues]; - - // .. and fill in the corresponding index values - int ascendingArrayIndex = 0; - // We already know the array's first element: - ascendingIndexList[ascendingArrayIndex++] = firstMaxIndex; - // Let's fill in the remaining index values - // - for (int i = firstMaxIndex + 1; i < values.length; i++) { - if (values[firstMaxIndex] == values[i]) { - ascendingIndexList[ascendingArrayIndex++] = i; - } - } - return ascendingIndexList; - } -} \ No newline at end of file diff --git a/Sd1/P/Etest/IntMax/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/intmax/AppTest.java b/Sd1/P/Etest/IntMax/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/intmax/AppTest.java deleted file mode 100644 index f45ea0b2b..000000000 --- a/Sd1/P/Etest/IntMax/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/intmax/AppTest.java +++ /dev/null @@ -1,53 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.intmax; - -import org.junit.Assert; -import org.junit.Test; - -/** - * Unit test array max values. - */ -@SuppressWarnings("javadoc") -public class AppTest { - - @Test - public void testSingleValue() { - final int[] v = {-3}; - Assert.assertEquals(0, Max.getFirstMaxIndex(v)); - Assert.assertArrayEquals(new int[] {0}, Max.getMaxIndexValues(v)); - } - - @Test - public void testUniqueValues() { - final int[] v = {-3, 4, 100, 7, 11, 20}; - Assert.assertEquals(2, Max.getFirstMaxIndex(v)); - Assert.assertArrayEquals(new int[] {2}, Max.getMaxIndexValues(v)); - } - - @Test - public void testDuplicateStartValues() { - final int[] v = {40, 40, -0, 1, 7, 1, 12}; - Assert.assertEquals(0, Max.getFirstMaxIndex(v)); - Assert.assertArrayEquals(new int[] {0, 1}, Max.getMaxIndexValues(v)); - } - - @Test - public void testDuplicateEndValues() { - final int[] v = {-4, -4, 3, 7, 20, 20, 20}; - Assert.assertEquals(4, Max.getFirstMaxIndex(v)); - Assert.assertArrayEquals(new int[] {4, 5, 6}, Max.getMaxIndexValues(v)); - } - - @Test - public void testDuplicateCenterValues() { - final int[] v = {-4, -4, 3, 20, 20, 20, -6, 3}; - Assert.assertEquals(3, Max.getFirstMaxIndex(v)); - Assert.assertArrayEquals(new int[] {3, 4, 5}, Max.getMaxIndexValues(v)); - } - - @Test - public void testMultipleGroupsValues() { - final int[] v = {20, 20, -4, -4, 3, 20, 20, 20, -6, 3, 20, 20}; - Assert.assertEquals(0, Max.getFirstMaxIndex(v)); - Assert.assertArrayEquals(new int[] {0, 1, 5, 6, 7, 10, 11}, Max.getMaxIndexValues(v)); - } -} diff --git a/Sd1/P/Etest/IntMax/Test/.gitignore b/Sd1/P/Etest/IntMax/Test/.gitignore deleted file mode 100644 index c708c363d..000000000 --- a/Sd1/P/Etest/IntMax/Test/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/target -/.settings -/.classpath -/.project diff --git a/Sd1/P/Etest/IntMax/Test/pom.xml b/Sd1/P/Etest/IntMax/Test/pom.xml deleted file mode 100644 index 66abd4c3e..000000000 --- a/Sd1/P/Etest/IntMax/Test/pom.xml +++ /dev/null @@ -1,39 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm_stuttgart.mi.sd1</groupId> - <artifactId>intmax</artifactId> - <version>2.0</version> - <packaging>jar</packaging> - - <name>intmax</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - </plugins> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/Etest/IntMax/Test/src/main/java/de/hdm_stuttgart/mi/sd1/intmax/Max.java b/Sd1/P/Etest/IntMax/Test/src/main/java/de/hdm_stuttgart/mi/sd1/intmax/Max.java deleted file mode 100644 index 9b2315236..000000000 --- a/Sd1/P/Etest/IntMax/Test/src/main/java/de/hdm_stuttgart/mi/sd1/intmax/Max.java +++ /dev/null @@ -1,53 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.intmax; - -/** - * Dealing with array values - * - */ -public class Max { - - /** - * An array may contain multiple values being equal to the maximum. - * The sample [-4, 5, 2, 5, 4] contains two elements being equal to - * the array's maximum value 5. This method retrieves the first index - * of an array element being equal to the maximum. In the current - * example the desired index is 1 pointing to the second array element. - * - * @param values An array of arbitrary values. - * - * @return The smallest index of an array member being equal to the maximum. - * <dl> - <dt><b>Precondition:</b></dt> - <dd>0 < values.length</dd> - <dt><b>Postcondition:</b></dt> - <dd>0 <= return value < values.length</dd> - </dl> - */ - public static int getFirstMaxIndex(int[] values) { - return 0; // TODO - } - - /** - * An array may contain multiple values being equal to the maximum. - * The sample [-4, 5, 2, 5, 4] contains two elements being equal to - * the array's maximum value 5. This method retrieves all index - * values of array element being equal to the maximum and returns - * them as an array in ascending order. In the current example the - * returned array will contain the indices [1, 3] pointing to the - * second and fourth array elements. - * - * @param values An array of arbitrary values. - * - * @return All index values in ascending order of any array member's - * being equal to the maximum. - * <dl> - <dt><b>Precondition:</b></dt> - <dd>0 < values.length</dd> - <dt><b>Postcondition:</b></dt> - <dd>0 < length of returned array</dd> - </dl> - */ - public static int[] getMaxIndexValues(int[] values) { - return new int[] {0}; // TODO - } -} \ No newline at end of file diff --git a/Sd1/P/Etest/IntMax/Test/src/test/java/de/hdm_stuttgart/mi/sd1/intmax/AppTest.java b/Sd1/P/Etest/IntMax/Test/src/test/java/de/hdm_stuttgart/mi/sd1/intmax/AppTest.java deleted file mode 100644 index 55e1077d3..000000000 --- a/Sd1/P/Etest/IntMax/Test/src/test/java/de/hdm_stuttgart/mi/sd1/intmax/AppTest.java +++ /dev/null @@ -1,16 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.intmax; - -import org.junit.Assert; -import org.junit.Test; - -/** - * Unit test array max values. - */ -@SuppressWarnings("javadoc") -public class AppTest { - - @Test - public void testMe() { - Assert.assertEquals(1, 1); // TODO - } -} diff --git a/Sd1/P/Etest/MaxArrayDiff/Solution/.gitignore b/Sd1/P/Etest/MaxArrayDiff/Solution/.gitignore deleted file mode 100644 index 4e247eee2..000000000 --- a/Sd1/P/Etest/MaxArrayDiff/Solution/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project diff --git a/Sd1/P/Etest/MaxArrayDiff/Solution/pom.xml b/Sd1/P/Etest/MaxArrayDiff/Solution/pom.xml deleted file mode 100644 index d30df5882..000000000 --- a/Sd1/P/Etest/MaxArrayDiff/Solution/pom.xml +++ /dev/null @@ -1,58 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>maxarraydiff</artifactId> - <version>2.0</version> - <packaging>jar</packaging> - - <name>vowel</name> - <url>http://www.mi.hdm-stuttgart.de/freedocs/topic/de.hdm_stuttgart.mi.swd1/index.html</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/Etest/MaxArrayDiff/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/maxarraydiff/Calc.java b/Sd1/P/Etest/MaxArrayDiff/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/maxarraydiff/Calc.java deleted file mode 100644 index eb1e4a4bb..000000000 --- a/Sd1/P/Etest/MaxArrayDiff/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/maxarraydiff/Calc.java +++ /dev/null @@ -1,33 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.maxarraydiff; - -/** - * Array calculations. - * - */ -public class Calc { - - /** - * Calculate the maximum of all mutual absolute - * difference values. Example: - * - * values = {1, 7, 2, -3, 4} - * - * The maximum is 7 - (-3) = 10 - * - * - * @param values An unordered list of integer values - * @return The number of vowels being contained in s. - */ - public static int maxArrayDiff (final int [] values) { - - int maxDiff = 0; - for (int i = 0; i < values.length; i++) { - for (int j = i + 1; j < values.length; j++) { - if (maxDiff < Math.abs(values[i] -values[j])) { - maxDiff = Math.abs(values[i] -values[j]); - } - } - } - return maxDiff; - } -} diff --git a/Sd1/P/Etest/MaxArrayDiff/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/maxarraydiff/package-info.java b/Sd1/P/Etest/MaxArrayDiff/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/maxarraydiff/package-info.java deleted file mode 100644 index caccbbf6b..000000000 --- a/Sd1/P/Etest/MaxArrayDiff/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/maxarraydiff/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Computing array value differences - * - */ -package de.hdm_stuttgart.mi.sd1.maxarraydiff; \ No newline at end of file diff --git a/Sd1/P/Etest/MaxArrayDiff/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/CalcTest.java b/Sd1/P/Etest/MaxArrayDiff/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/CalcTest.java deleted file mode 100644 index acca1325c..000000000 --- a/Sd1/P/Etest/MaxArrayDiff/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/CalcTest.java +++ /dev/null @@ -1,33 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.fraction; - -import org.junit.Assert; -import org.junit.Test; - -import de.hdm_stuttgart.mi.sd1.maxarraydiff.Calc; - -@SuppressWarnings("javadoc") -public class CalcTest { - - @Test public void testZero() { - Assert.assertEquals(0, Calc.maxArrayDiff(new int[]{})); - } - - @Test public void testOne() { - Assert.assertEquals(0, Calc.maxArrayDiff(new int[]{-3})); - } - - @Test public void testTwo() { - Assert.assertEquals(4, Calc.maxArrayDiff(new int[]{1, -3})); - } - - @Test public void testThree() { - Assert.assertEquals(13, Calc.maxArrayDiff(new int[]{1, 4, -9})); - } - - @Test public void testMulti() { - Assert.assertEquals(17, Calc.maxArrayDiff(new int[]{ -1, 0, -5, 3, 5, 12, 8})); - } - - - -} diff --git a/Sd1/P/Etest/MaxArrayDiff/Test/.gitignore b/Sd1/P/Etest/MaxArrayDiff/Test/.gitignore deleted file mode 100644 index 4e247eee2..000000000 --- a/Sd1/P/Etest/MaxArrayDiff/Test/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project diff --git a/Sd1/P/Etest/MaxArrayDiff/Test/pom.xml b/Sd1/P/Etest/MaxArrayDiff/Test/pom.xml deleted file mode 100644 index d30df5882..000000000 --- a/Sd1/P/Etest/MaxArrayDiff/Test/pom.xml +++ /dev/null @@ -1,58 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>maxarraydiff</artifactId> - <version>2.0</version> - <packaging>jar</packaging> - - <name>vowel</name> - <url>http://www.mi.hdm-stuttgart.de/freedocs/topic/de.hdm_stuttgart.mi.swd1/index.html</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/Etest/MaxArrayDiff/Test/src/main/java/de/hdm_stuttgart/mi/sd1/maxarraydiff/Calc.java b/Sd1/P/Etest/MaxArrayDiff/Test/src/main/java/de/hdm_stuttgart/mi/sd1/maxarraydiff/Calc.java deleted file mode 100644 index 127e65e60..000000000 --- a/Sd1/P/Etest/MaxArrayDiff/Test/src/main/java/de/hdm_stuttgart/mi/sd1/maxarraydiff/Calc.java +++ /dev/null @@ -1,25 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.maxarraydiff; - -/** - * Array calculations. - * - */ -public class Calc { - - /** - * Calculate the maximum of all mutual absolute - * difference values. Example: - * - * values = {1, 7, 2, -3, 4} - * - * The maximum is 7 - (-3) = 10 - * - * - * @param values An unordered list of integer values - * @return The number of vowels being contained in s. - */ - public static int maxArrayDiff (final int [] values) { - - return 0; // TODO - } -} diff --git a/Sd1/P/Etest/MaxArrayDiff/Test/src/main/java/de/hdm_stuttgart/mi/sd1/maxarraydiff/package-info.java b/Sd1/P/Etest/MaxArrayDiff/Test/src/main/java/de/hdm_stuttgart/mi/sd1/maxarraydiff/package-info.java deleted file mode 100644 index caccbbf6b..000000000 --- a/Sd1/P/Etest/MaxArrayDiff/Test/src/main/java/de/hdm_stuttgart/mi/sd1/maxarraydiff/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Computing array value differences - * - */ -package de.hdm_stuttgart.mi.sd1.maxarraydiff; \ No newline at end of file diff --git a/Sd1/P/Etest/MaxArrayDiff/Test/src/test/java/de/hdm_stuttgart/mi/sd1/CalcTest.java b/Sd1/P/Etest/MaxArrayDiff/Test/src/test/java/de/hdm_stuttgart/mi/sd1/CalcTest.java deleted file mode 100644 index bcd80606f..000000000 --- a/Sd1/P/Etest/MaxArrayDiff/Test/src/test/java/de/hdm_stuttgart/mi/sd1/CalcTest.java +++ /dev/null @@ -1,30 +0,0 @@ -package de.hdm_stuttgart.mi.sd1; - -import org.junit.Assert; -import org.junit.Test; - -import de.hdm_stuttgart.mi.sd1.maxarraydiff.Calc; - -@SuppressWarnings("javadoc") -public class CalcTest { - - @Test public void testZero() { - Assert.assertEquals(0, Calc.maxArrayDiff(new int[]{})); - } - - @Test public void testOne() { - Assert.assertEquals(0, Calc.maxArrayDiff(new int[]{-3})); - } - - @Test public void testTwo() { - Assert.assertEquals(4, Calc.maxArrayDiff(new int[]{1, -3})); - } - - @Test public void testThree() { - Assert.assertEquals(13, Calc.maxArrayDiff(new int[]{1, 4, -9})); - } - - @Test public void testMulti() { - Assert.assertEquals(17, Calc.maxArrayDiff(new int[]{ -1, 0, -5, 3, 5, 12, 8})); - } -} diff --git a/Sd1/P/Etest/Vowel/Solution/.gitignore b/Sd1/P/Etest/Vowel/Solution/.gitignore deleted file mode 100644 index 4e247eee2..000000000 --- a/Sd1/P/Etest/Vowel/Solution/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project diff --git a/Sd1/P/Etest/Vowel/Solution/pom.xml b/Sd1/P/Etest/Vowel/Solution/pom.xml deleted file mode 100644 index 0a1d5433e..000000000 --- a/Sd1/P/Etest/Vowel/Solution/pom.xml +++ /dev/null @@ -1,58 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>vowel</artifactId> - <version>2.0</version> - <packaging>jar</packaging> - - <name>vowel</name> - <url>http://www.mi.hdm-stuttgart.de/freedocs/topic/de.hdm_stuttgart.mi.swd1/index.html</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/Etest/Vowel/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/Vowelcount/Vowelcount.java b/Sd1/P/Etest/Vowel/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/Vowelcount/Vowelcount.java deleted file mode 100644 index c4e3f7750..000000000 --- a/Sd1/P/Etest/Vowel/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/Vowelcount/Vowelcount.java +++ /dev/null @@ -1,38 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.Vowelcount; - -/** - * Vowel counts. - * - */ -public class Vowelcount { - - /** - * Count vowels ('A', 'E', 'I', 'O', 'U','a', 'e', 'i', 'o', 'u') - * in an ASCII string. Example: The string - * <b>Unify it</b> does contains three vowels 'U', 'i' and 'i'. - * - * @param s The string to be examined. - * @return The number of vowels being contained in s. - */ - public static int numVowels (final String s) { - - int sumVowels = 0; - for (int i = 0; i < s.length(); i++) { - switch (s.charAt(i)) { - case 'A': - case 'E': - case 'I': - case 'O': - case 'U': - case 'a': - case 'e': - case 'i': - case 'o': - case 'u': - sumVowels++; - break; - } - } - return sumVowels; - } -} diff --git a/Sd1/P/Etest/Vowel/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/Vowelcount/package-info.java b/Sd1/P/Etest/Vowel/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/Vowelcount/package-info.java deleted file mode 100644 index d9dc17f3a..000000000 --- a/Sd1/P/Etest/Vowel/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/Vowelcount/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Counting vowels - * - */ -package de.hdm_stuttgart.mi.sd1.Vowelcount; \ No newline at end of file diff --git a/Sd1/P/Etest/Vowel/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/VowelTest.java b/Sd1/P/Etest/Vowel/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/VowelTest.java deleted file mode 100644 index 444f133e9..000000000 --- a/Sd1/P/Etest/Vowel/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/VowelTest.java +++ /dev/null @@ -1,31 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.fraction; - -import org.junit.Assert; -import org.junit.Test; - -import de.hdm_stuttgart.mi.sd1.Vowelcount.Vowelcount; - -@SuppressWarnings("javadoc") -public class VowelTest { - - @Test - public void testDiff() { - Assert.assertEquals(3, Vowelcount.numVowels("piano")); - } - - @Test - public void testDiffStart() { // Vowel at beginning of string - Assert.assertEquals(1, Vowelcount.numVowels("in")); - } - - @Test - public void testDiffU() {// Vowel 'u' forgotten in switch - Assert.assertEquals(1, Vowelcount.numVowels("but")); - } - - @Test - public void testDiffCapital() { - Assert.assertEquals(5, Vowelcount.numVowels("made by Oracle")); - } - -} diff --git a/Sd1/P/Etest/Vowel/Test/.gitignore b/Sd1/P/Etest/Vowel/Test/.gitignore deleted file mode 100644 index 4e247eee2..000000000 --- a/Sd1/P/Etest/Vowel/Test/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project diff --git a/Sd1/P/Etest/Vowel/Test/pom.xml b/Sd1/P/Etest/Vowel/Test/pom.xml deleted file mode 100644 index 8f6147ca3..000000000 --- a/Sd1/P/Etest/Vowel/Test/pom.xml +++ /dev/null @@ -1,58 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>vowel</artifactId> - <version>1.0</version> - <packaging>jar</packaging> - - <name>vowel</name> - <url>http://www.mi.hdm-stuttgart.de/freedocs/topic/de.hdm_stuttgart.mi.swd1/index.html</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/Etest/Vowel/Test/src/main/java/de/hdm_stuttgart/mi/sd1/Vowelcount/Vowelcount.java b/Sd1/P/Etest/Vowel/Test/src/main/java/de/hdm_stuttgart/mi/sd1/Vowelcount/Vowelcount.java deleted file mode 100644 index a5106ea74..000000000 --- a/Sd1/P/Etest/Vowel/Test/src/main/java/de/hdm_stuttgart/mi/sd1/Vowelcount/Vowelcount.java +++ /dev/null @@ -1,32 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.Vowelcount; - -/** - * Vowel counts. - * - */ -public class Vowelcount { - - /** - * Count vowels ('A', 'E', 'I', 'O', 'U','a', 'e', 'i', 'o', 'u') - * in an ASCII string. Example: The string - * <b>Unify it</b> does contains three vowels 'U', 'i' and 'i'. - * - * @param s The string to be examined. - * @return The number of vowels being contained in s. - */ - public static int numVowels (final String s) { - - int sumVowels = 0; - for (int i = 1; i < s.length(); i++) { - switch (s.charAt(i)) { - case 'a': - case 'e': - case 'i': - case 'o': - sumVowels++; - break; - } - } - return sumVowels; - } -} diff --git a/Sd1/P/Etest/Vowel/Test/src/main/java/de/hdm_stuttgart/mi/sd1/Vowelcount/package-info.java b/Sd1/P/Etest/Vowel/Test/src/main/java/de/hdm_stuttgart/mi/sd1/Vowelcount/package-info.java deleted file mode 100644 index d9dc17f3a..000000000 --- a/Sd1/P/Etest/Vowel/Test/src/main/java/de/hdm_stuttgart/mi/sd1/Vowelcount/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Counting vowels - * - */ -package de.hdm_stuttgart.mi.sd1.Vowelcount; \ No newline at end of file diff --git a/Sd1/P/Etest/Vowel/Test/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/VowelTest.java b/Sd1/P/Etest/Vowel/Test/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/VowelTest.java deleted file mode 100644 index 9f1686250..000000000 --- a/Sd1/P/Etest/Vowel/Test/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/VowelTest.java +++ /dev/null @@ -1,15 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.fraction; - -import org.junit.Assert; -import org.junit.Test; - -import de.hdm_stuttgart.mi.sd1.Vowelcount.Vowelcount; - -@SuppressWarnings("javadoc") -public class VowelTest { - - @Test - public void testDiff() { - Assert.assertEquals(3, Vowelcount.numVowels("piano")); - } -} diff --git a/Sd1/P/Gcd/V1/.gitignore b/Sd1/P/Gcd/V1/.gitignore deleted file mode 100644 index 4e247eee2..000000000 --- a/Sd1/P/Gcd/V1/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project diff --git a/Sd1/P/Gcd/V1/pom.xml b/Sd1/P/Gcd/V1/pom.xml deleted file mode 100644 index 17b25ff81..000000000 --- a/Sd1/P/Gcd/V1/pom.xml +++ /dev/null @@ -1,58 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>gcd</artifactId> - <version>1.0</version> - <packaging>jar</packaging> - - <name>gcd</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/Gcd/V1/src/main/java/de/hdm_stuttgart/mi/sd1/gcd/Driver.java b/Sd1/P/Gcd/V1/src/main/java/de/hdm_stuttgart/mi/sd1/gcd/Driver.java deleted file mode 100644 index d1fbb223a..000000000 --- a/Sd1/P/Gcd/V1/src/main/java/de/hdm_stuttgart/mi/sd1/gcd/Driver.java +++ /dev/null @@ -1,14 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.gcd; - -/** - * Playing with fraction objects, producing some output. - * - */ -public class Driver { - /** - * @param args unused - */ - public static void main(String[] args) { - System.out.println("GCD(49, -21) = " + Math.getGcd(49, -21)); - } -} diff --git a/Sd1/P/Gcd/V1/src/main/java/de/hdm_stuttgart/mi/sd1/gcd/Math.java b/Sd1/P/Gcd/V1/src/main/java/de/hdm_stuttgart/mi/sd1/gcd/Math.java deleted file mode 100644 index c210344aa..000000000 --- a/Sd1/P/Gcd/V1/src/main/java/de/hdm_stuttgart/mi/sd1/gcd/Math.java +++ /dev/null @@ -1,63 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.gcd; - -/** - * Representing Fractions - * - */ -public class Math { - - - /** - * Retrieve the greatest common divisor (GCD) of two non-zero integer - * values. - * - * Example: The GCD of 18 and 12 is 6. - * - * @param a The first non-zero integer value - * @param b The second non-zero integer value - * @return The GCD of a and b - */ - public static long getGcd(long a, long b) { - if (a == 0 && b == 0) { - return 1; - } else { - a = java.lang.Math.abs(a); // More efficient than if (a < 0) {a = -a;} - b = java.lang.Math.abs(b); - if (a == 0) { // b != 0, see condition before - return b; - } else if (b == 0) { - return a; - } else { - // Now we actually implement Euclid's algorithm by following - // http://www.math.rutgers.edu/~greenfie/gs2004/euclid.html - - if (a < b) { // Swap the values of a and b if required - final long tmp = a; // Save a's value temporarily - a = b; - b = tmp; - } - while (0 != b) { - long r = a % b; - a = b; - b = r; - } - return a; - } - } - } - /** - * The common multiple of two given non-zero values. - * Example: The common multiple of 10 and 6 is 30. - * @param a The first value - * @param b The second value - * @return The common multiple of two given values. - */ - public static long getCommonMultiple(long a, long b) { - final long gcd = getGcd(a, b); - if (1 == gcd) { - return a * b; - } else { - return (a / gcd) * b; - } - } -} diff --git a/Sd1/P/Gcd/V1/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/CommonMultipleTest.java b/Sd1/P/Gcd/V1/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/CommonMultipleTest.java deleted file mode 100644 index 793c5e103..000000000 --- a/Sd1/P/Gcd/V1/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/CommonMultipleTest.java +++ /dev/null @@ -1,27 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.fraction; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; - -import de.hdm_stuttgart.mi.sd1.gcd.Math; - -@SuppressWarnings("javadoc") -public class CommonMultipleTest { - - @Test - public void basicTest() { - assertEquals(30, Math.getCommonMultiple(6, 10)); - assertEquals(30, Math.getCommonMultiple(10, 6)); - } - @Test - public void identityTest() { - assertEquals(12, Math.getCommonMultiple(1, 12)); - assertEquals(12, Math.getCommonMultiple(12, 1)); - } - - @Test - public void valueOneTest() { - assertEquals(1, Math.getCommonMultiple(1, 1)); - } -} diff --git a/Sd1/P/Gcd/V1/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/GcdTest.java b/Sd1/P/Gcd/V1/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/GcdTest.java deleted file mode 100644 index bf6112b83..000000000 --- a/Sd1/P/Gcd/V1/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/GcdTest.java +++ /dev/null @@ -1,47 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.fraction; - -import static org.junit.Assert.*; - -import org.junit.Test; - -import de.hdm_stuttgart.mi.sd1.gcd.Math; - -@SuppressWarnings("javadoc") -public class GcdTest { - - @Test - public void testTwoPositiveIntegers() { - assertEquals(6, Math.getGcd(18, 12)); - } - - @Test - public void testReverseOrder() { - assertEquals(6, Math.getGcd(12, 18)); - } - - @Test - public void testBothZero() { - assertEquals(1, Math.getGcd(0, 0)); - } - - @Test - public void testNonzeroZero() { - assertEquals(1, Math.getGcd(0, 0)); - } - @Test - public void testZeroNonzero() { - assertEquals(7, Math.getGcd(0, 7)); - } - - @Test - public void testNegativePositive() { - assertEquals(9, Math.getGcd(-36, 27)); - } - - @Test - public void testPositiveNegative() { - assertEquals(7, Math.getGcd(49, -21)); - } - - -} diff --git a/Sd1/P/HtmlFormatting/Simple/Exercise/.gitignore b/Sd1/P/HtmlFormatting/Simple/Exercise/.gitignore deleted file mode 100644 index 954270fb2..000000000 --- a/Sd1/P/HtmlFormatting/Simple/Exercise/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project \ No newline at end of file diff --git a/Sd1/P/HtmlFormatting/Simple/Exercise/addresses.txt b/Sd1/P/HtmlFormatting/Simple/Exercise/addresses.txt deleted file mode 100644 index 5efa953ea..000000000 --- a/Sd1/P/HtmlFormatting/Simple/Exercise/addresses.txt +++ /dev/null @@ -1,501 +0,0 @@ -"firstName","lastName","companyName","address","city","county","postal","phone1","phone2","email","web" -"Aleshia","Tomkiewicz","Alan D Rosenburg Cpa Pc","14 Taylor St","St. Stephens Ward","Kent","CT2 7PP","01835-703597","01944-369967","atomkiewicz@hotmail.com","http://www.alandrosenburgcpapc.co.uk" -"Evan","Zigomalas","Cap Gemini America","5 Binney St","Abbey Ward","Buckinghamshire","HP11 2AX","01937-864715","01714-737668","evan.zigomalas@gmail.com","http://www.capgeminiamerica.co.uk" -"France","Andrade","Elliott, John W Esq","8 Moor Place","East Southbourne and Tuckton W","Bournemouth","BH6 3BE","01347-368222","01935-821636","france.andrade@hotmail.com","http://www.elliottjohnwesq.co.uk" -"Ulysses","Mcwalters","Mcmahan, Ben L","505 Exeter Rd","Hawerby cum Beesby","Lincolnshire","DN36 5RP","01912-771311","01302-601380","ulysses@hotmail.com","http://www.mcmahanbenl.co.uk" -"Tyisha","Veness","Champagne Room","5396 Forth Street","Greets Green and Lyng Ward","West Midlands","B70 9DT","01547-429341","01290-367248","tyisha.veness@hotmail.com","http://www.champagneroom.co.uk" -"Eric","Rampy","Thompson, Michael C Esq","9472 Lind St","Desborough","Northamptonshire","NN14 2GH","01969-886290","01545-817375","erampy@rampy.co.uk","http://www.thompsonmichaelcesq.co.uk" -"Marg","Grasmick","Wrangle Hill Auto Auct & Slvg","7457 Cowl St #70","Bargate Ward","Southampton","SO14 3TY","01865-582516","01362-620532","marg@hotmail.com","http://www.wranglehillautoauctslvg.co.uk" -"Laquita","Hisaw","In Communications Inc","20 Gloucester Pl #96","Chirton Ward","Tyne & Wear","NE29 7AD","01746-394243","01590-982428","laquita@yahoo.com","http://www.incommunicationsinc.co.uk" -"Lura","Manzella","Bizerba Usa Inc","929 Augustine St","Staple Hill Ward","South Gloucestershire","BS16 4LL","01907-538509","01340-713951","lura@hotmail.com","http://www.bizerbausainc.co.uk" -"Yuette","Klapec","Max Video","45 Bradfield St #166","Parwich","Derbyshire","DE6 1QN","01903-649460","01933-512513","yuette.klapec@klapec.co.uk","http://www.maxvideo.co.uk" -"Fernanda","Writer","K & R Associates Inc","620 Northampton St","Wilmington","Kent","DA2 7PP","01630-202053","01687-879391","fernanda@writer.co.uk","http://www.krassociatesinc.co.uk" -"Charlesetta","Erm","Cain, John M Esq","5 Hygeia St","Loundsley Green Ward","Derbyshire","S40 4LY","01276-816806","01517-624517","charlesetta_erm@gmail.com","http://www.cainjohnmesq.co.uk" -"Corrinne","Jaret","Sound Vision Corp","2150 Morley St","Dee Ward","Dumfries and Galloway","DG8 7DE","01625-932209","01642-322954","corrinne_jaret@gmail.com","http://www.soundvisioncorp.co.uk" -"Niesha","Bruch","Rowley/hansell Petetin","24 Bolton St","Broxburn, Uphall and Winchburg","West Lothian","EH52 5TL","01874-856950","01342-793603","niesha.bruch@yahoo.com","http://www.rowleyhansellpetetin.co.uk" -"Rueben","Gastellum","Industrial Engineering Assocs","4 Forrest St","Weston-Super-Mare","North Somerset","BS23 3HG","01976-755279","01956-535511","rueben_gastellum@gastellum.co.uk","http://www.industrialengineeringassocs.co.uk" -"Michell","Throssell","Weiss Spirt & Guyer","89 Noon St","Carbrooke","Norfolk","IP25 6JQ","01967-580851","01672-496478","mthrossell@throssell.co.uk","http://www.weissspirtguyer.co.uk" -"Edgar","Kanne","Crowan, Kenneth W Esq","99 Guthrie St","New Milton","Hampshire","BH25 5DF","01326-532337","01666-638176","edgar.kanne@yahoo.com","http://www.crowankennethwesq.co.uk" -"Dewitt","Julio","Rittenhouse Motor Co","7 Richmond St","Parkham","Devon","EX39 5DJ","01253-528327","01241-964675","dewitt.julio@hotmail.com","http://www.rittenhousemotorco.co.uk" -"Charisse","Spinello","Modern Plastics Corp","9165 Primrose St","Darnall Ward","Yorkshire, South","S4 7WN","01719-831436","01207-428520","charisse_spinello@spinello.co.uk","http://www.modernplasticscorp.co.uk" -"Mee","Lapinski","Galloway Electric Co Inc","9 Pengwern St","Marldon","Devon","TQ3 1SA","01578-287816","01939-815208","mee.lapinski@yahoo.com","http://www.gallowayelectriccoinc.co.uk" -"Peter","Gutierres","Niagara Custombuilt Mfg Co","4410 Tarlton St","Prestatyn Community","Denbighshire","LL19 9EG","01842-767201","01859-648598","peter_gutierres@yahoo.com","http://www.niagaracustombuiltmfgco.co.uk" -"Octavio","Salvadore","Practical Periphrals","6949 Bourne St","Lye and Stourbridge North Ward","West Midlands","DY5 2QP","01552-709248","01743-139456","octavio.salvadore@yahoo.com","http://www.practicalperiphrals.co.uk" -"Martha","Teplica","Curtin, Patricia M Esq","148 Rembrandt St","Warlingham","Surrey","CR6 9SW","01677-684257","01583-287367","mteplica@teplica.co.uk","http://www.curtinpatriciamesq.co.uk" -"Tamesha","Veigel","Wilhelm, James E Jr","2200 Nelson St #58","Newport","Isle of Wight","PO30 5AL","01217-342071","01280-786847","tveigel@veigel.co.uk","http://www.wilhelmjamesejr.co.uk" -"Tess","Sitra","Smart Signs","61 Rossett St","Chichester","West Sussex","PO19 1RH","01473-229124","01848-116775","tess_sitra@hotmail.com","http://www.smartsigns.co.uk" -"Leonard","Kufner","Arctic Star Distributing Inc","41 Canning St","Steornabhagh a Deas Ward","Western Isles","HS1 2PZ","01230-623547","01604-718601","lkufner@kufner.co.uk","http://www.arcticstardistributinginc.co.uk" -"Svetlana","Tauras","Lensbower, Gregory L Esq","8289 Cadogan St","South Ward","North Eart Lincolnshire","DN33 1AU","01781-827317","01509-121140","svetlana_tauras@tauras.co.uk","http://www.lensbowergregorylesq.co.uk" -"Pok","Molaison","Portal Metal Products","211 Hobart St","Newquay","Cornwall","TR7 1LS","01866-248660","01315-284286","pok@yahoo.com","http://www.portalmetalproducts.co.uk" -"Augustine","Growcock","Lynema, Cliff Cpa","114 Falkland St #8845","Brimpton","Berkshire","RG7 4RF","01541-802635","01926-108010","augustine.growcock@growcock.co.uk","http://www.lynemacliffcpa.co.uk" -"Karma","Quarto","J C S Machinery","1 Birkett St","Shard End Ward","West Midlands","B33 0NH","01857-864722","01307-667811","kquarto@gmail.com","http://www.jcsmachinery.co.uk" -"Reed","Weisinger","Berick, Joseph G Esq","5147 Blackstone St","Letchworth South West Ward","Hertfordshire","SG6 3LE","01243-678286","01292-297245","reed_weisinger@yahoo.com","http://www.berickjosephgesq.co.uk" -"German","Zelaya","Jackson & Heit Machine Co Inc","7 Shenstone St","Longhill Ward","Yorkshire, East (North Humbers","HU8 9PZ","01400-269033","01366-210656","german@hotmail.com","http://www.jacksonheitmachinecoinc.co.uk" -"Milly","Savidge","Bridgeway Plan For Health","129 Alexander Pope St","Franche Ward","Hereford and Worcester","DY11 9BW","01702-725589","01421-132652","milly@gmail.com","http://www.bridgewayplanforhealth.co.uk" -"Luis","Ear","Wa Inst For Plcy Studies","2 Birchfield Rd","Whittington","Shropshire","SY11 4PH","01462-648669","01405-648623","luis@hotmail.com","http://www.wainstforplcystudies.co.uk" -"Ciara","Cobbley","Wmgl 101.7 Fm","7523 Kempton Rd","Cockerton West Ward","Darlington","DL3 0JF","01235-647932","01809-443217","ciara_cobbley@hotmail.com","http://www.wmglfm.co.uk" -"Alethea","Mould","Hughlett, Henry T Jr","6305 Elstow St","Castle Ward","West Sussex","BN12 6PR","01662-114247","01351-868965","alethea@hotmail.com","http://www.hughletthenrytjr.co.uk" -"Margurite","Loperfido","Penrose Place Pharmacy Inc","218 Greenbank Drive","Devizes","Wiltshire","SN10 3DU","01407-866759","01640-661191","mloperfido@gmail.com","http://www.penroseplacepharmacyinc.co.uk" -"Vernice","Sperazza","Novak, Alan Paul Esq","8921 Forge St","Colnbrook with Poyle","Buckinghamshire","SL3 0PY","01822-563044","01765-519419","vernice@yahoo.com","http://www.novakalanpaulesq.co.uk" -"Vicente","Rawicki","B & S Tool And Cutter Svc Inc","3060 St Ambrose Grove #261","Aldridge Central and South War","West Midlands","WS9 8UR","01327-770774","01286-258121","vicente_rawicki@hotmail.com","http://www.bstoolandcuttersvcinc.co.uk" -"Craig","Cua","Berry, John M Esq","8388 Bessemer St #5","East Putney Ward","Greater London","SW15 2RP","01483-418969","01818-980469","craig@hotmail.com","http://www.berryjohnmesq.co.uk" -"Jenise","Dulle","Alden, Michael H Esq","87 Pownall Sq","Sawston","Cambridgeshire","CB22 3BB","01709-854691","01572-193368","jenise.dulle@hotmail.com","http://www.aldenmichaelhesq.co.uk" -"Marylin","Cornelison","Ernest E Heuer & Company Pc","39 Wye St","Wakefield North Ward","West Yorkshire","WF1 1DR","01609-882184","01295-331807","marylin_cornelison@yahoo.com","http://www.ernesteheuercompanypc.co.uk" -"Marget","Gunst","Frankel, Stephen","2732 Bostock St #1","St. Enoder","Cornwall","TR9 6NJ","01693-310794","01512-975244","mgunst@yahoo.com","http://www.frankelstephen.co.uk" -"Annett","Bunselmeyer","Guynes Design Inc","5562 Fairfield St #847","Ryde","Isle of Wight","PO33 1HH","01891-702579","01333-972244","abunselmeyer@hotmail.com","http://www.guynesdesigninc.co.uk" -"Kip","Turziano","General Appraisal Co","37 Meadow St","Laindon Park Ward","Essex","SS15 6LE","01850-347846","01222-164469","kip.turziano@yahoo.com","http://www.generalappraisalco.co.uk" -"Melina","Orizabal","Sheraton Inn Ocean Front","3 Nevison St","Lymington and Pennington","Hampshire","SO41 1DL","01420-307327","01245-559333","melina@gmail.com","http://www.sheratoninnoceanfront.co.uk" -"Tina","Clapham","Cooper Myers Y Co","5662 William Moult St","Aylesbury","Buckinghamshire","HP21 8PP","01567-296442","01493-245349","tclapham@gmail.com","http://www.coopermyersyco.co.uk" -"Luisa","Devereux","Cash 4 Checks","3 North View #35","Burmantofts and Richmond Hill ","West Yorkshire","LS9 7JH","01607-269930","01334-807355","ldevereux@gmail.com","http://www.cashchecks.co.uk" -"Pedro","Aschoff","Charlotte Chamber","135 Opie St","Howard Town Ward","Derbyshire","SK13 8BB","01386-981141","01823-517315","paschoff@yahoo.com","http://www.charlottechamber.co.uk" -"Carrol","Kunimitsu","Kisc 98 Kiss Fm","1 Askew St","Farnham","Surrey","GU9 9AS","01260-641258","01415-364461","carrol_kunimitsu@yahoo.com","http://www.kisckissfm.co.uk" -"Alba","Mosseri","Schwartzbard, Gail L Esq","4 Burnall St","Beeston West Ward","Nottinghamshire","NG9 1AE","01543-198690","01231-806535","alba@gmail.com","http://www.schwartzbardgaillesq.co.uk" -"Domonique","Sandlin","Marketing Horizons Inc","95 Denton St","Wollaton West Ward","Nottinghamshire","NG8 2NB","01355-500797","01987-728730","domonique@hotmail.com","http://www.marketinghorizonsinc.co.uk" -"Rory","Neufville","Brady, Brad J Esq","5 Chadwick St #7","Llangeler Community","Ceredigion","SA44 5HF","01252-621329","01442-700486","rory_neufville@neufville.co.uk","http://www.bradybradjesq.co.uk" -"Dustin","Klingaman","Welders Supply","67 Micawber St","Brockley Ward","Greater London","SE14 6RQ","01712-135466","01523-775781","dklingaman@gmail.com","http://www.welderssupply.co.uk" -"Lyndia","Moonshower","Bomarko Inc","43 Williamson St #7995","Meads Ward","East Sussex","BN20 7HB","01469-300335","01789-132579","lyndia_moonshower@moonshower.co.uk","http://www.bomarkoinc.co.uk" -"Jules","Hiltner","Benitez, Brigida Esq","5 Howe St","Broxburn, Uphall and Winchburg","West Lothian","EH52 6NF","01428-343825","01814-878359","jules@yahoo.com","http://www.benitezbrigidaesq.co.uk" -"Dong","Kopczynski","Kennedy Scales Inc","7 Cheapside #9","St. Ive","Cornwall","PL14 5PA","01770-129032","01639-518104","dkopczynski@kopczynski.co.uk","http://www.kennedyscalesinc.co.uk" -"Justine","Salta","Barajas & Bustamante Archl","85 Bridgewater St","Shard End Ward","West Midlands","B34 7BP","01689-253476","01376-851958","justine_salta@yahoo.com","http://www.barajasbustamantearchl.co.uk" -"Chantay","Kamens","Brewster Wallcoverings Co","763 Parkfield Rd","Norton Canes","Staffordshire","WS11 9RH","01823-383806","01245-146126","ckamens@hotmail.com","http://www.brewsterwallcoveringsco.co.uk" -"Tequila","Chisum","Bohs Well Drilling Inc","662 Grove Park","Bulwell Ward","Nottinghamshire","NG6 8RG","01835-634521","01702-946496","tequila.chisum@chisum.co.uk","http://www.bohswelldrillinginc.co.uk" -"Maybelle","Consolazio","Gavin, Lee W Esq","5410 Lawton St","Treorchy Community","Rhondda Cynon Taff","CF42 6PL","01383-647035","01351-200904","mconsolazio@yahoo.com","http://www.gavinleewesq.co.uk" -"Margarett","Bairo","Reid, Carleton B Esq","3 August Rd","Maybury and Sheerwater Ward","Surrey","GU21 5QL","01670-813697","01903-424890","margarett@gmail.com","http://www.reidcarletonbesq.co.uk" -"Janessa","Noonon","Canterbury, Christopher C","476 Starkie St","Westgate Ward","Gloucestershire","GL1 1QW","01472-324699","01841-979075","jnoonon@yahoo.com","http://www.canterburychristopherc.co.uk" -"Sol","Cowser","Omni Mandalay","6448 Tillard St","Conisbrough and Denaby Ward","South Yorkshire","DN12 4JF","01412-528394","01580-134516","sol@gmail.com","http://www.omnimandalay.co.uk" -"Louann","Smethers","Lba Savings Bank","3055 Creswick St","Newbold and Brownsover Ward","Warwickshire","CV21 1LN","01670-234959","01488-872531","louann@gmail.com","http://www.lbasavingsbank.co.uk" -"Lindsay","Yadao","Lutz, Christopher T Esq","7 Jolliffe St","Middlewich","Cheshire","CW10 9GB","01947-566661","01481-295251","lindsay_yadao@yadao.co.uk","http://www.lutzchristophertesq.co.uk" -"Malika","Hanton","Association Of Art Museum Dir","1175 Greig St","St. Marys Ward","Greater Manchester","M25 0ZN","01532-497454","01705-208145","malika@gmail.com","http://www.associationofartmuseumdir.co.uk" -"Stefany","Ferenz","L & L Sales Co Inc","636 Portland Place","Gresham Ward","Middlesbrough","TS1 4RG","01743-977277","01704-986828","stefany@hotmail.com","http://www.llsalescoinc.co.uk" -"Abraham","Cratch","Cavuto, John A","41 Benedict St","Aldborough Ward","Greater London","IG2 7QG","01599-245408","01695-305111","acratch@gmail.com","http://www.cavutojohna.co.uk" -"Giuseppe","Rohaley","Pacific Coast Packaging","62 Margaret St","Royal Hospital Ward","Greater London","SW3 4ND","01345-400452","01866-845669","giuseppe@yahoo.com","http://www.pacificcoastpackaging.co.uk" -"Kiera","Bassil","Storm Eye Institute","5152 Sophia St","Woodstock Ward","South Gloucestershire","BS15 8DS","01655-519837","01783-446052","kbassil@bassil.co.uk","http://www.stormeyeinstitute.co.uk" -"Wendell","Rubano","Automation Engrg & Mfg Inc","1 Back Canning St","Dunblane and Bridge of Allan W","Stirling","FK9 4LD","01837-530939","01752-386691","wendell_rubano@hotmail.com","http://www.automationengrgmfginc.co.uk" -"Stevie","Stifflemire","Packaging Corp Of America","9 Gradwell St","Kempshott Ward","Hampshire","RG22 5HA","01262-808399","01411-169215","stevie_stifflemire@stifflemire.co.uk","http://www.packagingcorpofamerica.co.uk" -"Yun","Paletta","Goe, Douglas E Esq","9205 Upper Hill St","City and Hunslet Ward","West Yorkshire","LS1 5QE","01350-332706","01374-255198","yun_paletta@paletta.co.uk","http://www.goedouglaseesq.co.uk" -"Brittani","Thurm","Burgess Steel Products Corp","9 Horatio St","Ruckinge","Kent","TN26 2PN","01686-306597","01970-890023","bthurm@yahoo.com","http://www.burgesssteelproductscorp.co.uk" -"Billy","Venus","Tipton & Hurst","61 Miriam St","Abbey Road Ward","Greater London","NW8 9BD","01537-356648","01703-435212","billy.venus@yahoo.com","http://www.tiptonhurst.co.uk" -"Brynn","Elkan","A O Hardee & Son Inc","67 Pulford St","Prittlewell Ward","Essex","SS2 6NL","01388-416867","01345-625433","brynn@yahoo.com","http://www.aohardeesoninc.co.uk" -"Elroy","Piehler","Jonson, Geo D Esq","821 Pembroke Place","Kirkby Stephen","Cumbria","CA17 4RZ","01589-654152","01586-387018","epiehler@piehler.co.uk","http://www.jonsongeodesq.co.uk" -"Anisha","Shulick","Dale Yoder Clu Life Hlth & Bus","3 Alder St","Eaton Park Ward","Stoke-on-Trent","ST2 9AW","01780-704167","01268-233798","ashulick@yahoo.com","http://www.daleyoderclulifehlthbus.co.uk" -"Bettina","Kham","Council Of Cmnty Blood Ctrs","80 Morecambe St","Bishop Auckland","County Durham","DL14 6NG","01355-192668","01340-622388","bettina.kham@kham.co.uk","http://www.councilofcmntybloodctrs.co.uk" -"Velda","Mancilla","Tremont, Michael A Esq","7866 Renshaw St #283","Falmouth","Cornwall","TR11 4QQ","01823-526645","01368-456268","velda_mancilla@mancilla.co.uk","http://www.tremontmichaelaesq.co.uk" -"Marta","Brace","Trautman, Eileen Esq","658 Lake St","Malmesbury","Wiltshire","SN16 0XZ","01777-469402","01631-454193","marta.brace@brace.co.uk","http://www.trautmaneileenesq.co.uk" -"Juan","Vanwyhe","Office Service Co","5382 Redfern St","West End Ward","Greater London","W1J 0QH","01961-642757","01728-150282","juan_vanwyhe@gmail.com","http://www.officeserviceco.co.uk" -"Lelia","Filion","Alphabetland Pre School Center","45 Bidder St #38","Town Ward","Greater London","EN1 3HT","01367-136951","01322-715065","lelia.filion@filion.co.uk","http://www.alphabetlandpreschoolcenter.co.uk" -"Una","Frankel","Shamrock Food Service","6766 Britton St #379","Crompton Ward","Greater Manchester","BL1 3EX","01912-749219","01308-356704","ufrankel@hotmail.com","http://www.shamrockfoodservice.co.uk" -"Eva","Joulwan","Central Hrdwr & Elec Corp","7 Lear Rd","Stroud","Hampshire","GU32 3PQ","01779-720349","01961-802899","eva.joulwan@gmail.com","http://www.centralhrdwreleccorp.co.uk" -"Mammie","Dormanen","Matt Parrott & Sons Co","2577 Toxteth St #5","Overton Ward","Lancashire","BB6 7UN","01527-579687","01439-184366","mammie_dormanen@hotmail.com","http://www.mattparrottsonsco.co.uk" -"Jeannetta","Coolidge","Tiny Tots Originals Div","761 Cockerell St #1","Midway Ward","Derbyshire","DE11 0HE","01927-790069","01440-276155","jeannetta_coolidge@gmail.com","http://www.tinytotsoriginalsdiv.co.uk" -"Elbert","Drawe","Lovitch, Alan F","9 Cypress St","Washington East Ward","Tyne and Wear","NE38 9AQ","01753-784273","01496-526674","edrawe@drawe.co.uk","http://www.lovitchalanf.co.uk" -"Lenny","Gazzola","Wise Industries","6 Romilly St","Walkergate Ward","Tyne and Wear","NE6 4YH","01312-233253","01342-706893","lenny.gazzola@yahoo.com","http://www.wiseindustries.co.uk" -"Mira","Alpheaus","East County Process","51 St Anne St #12","Stratfield Mortimer","Berkshire","RG7 3RA","01241-273991","01381-836777","mira.alpheaus@yahoo.com","http://www.eastcountyprocess.co.uk" -"Cathern","Ungar","Agopgee Enterprises Inc","823 Idris St","Selston","Nottinghamshire","NG16 5LG","01898-134749","01266-671305","cathern.ungar@ungar.co.uk","http://www.agopgeeenterprisesinc.co.uk" -"Malcom","Fleckles","L Winik & Associates Inc","8764 Nickleby St #877","Govan Ward","Glasgow City","G51 1BQ","01478-110943","01937-120539","malcom.fleckles@gmail.com","http://www.lwinikassociatesinc.co.uk" -"Monroe","Damato","Rosati, Marc D Esq","5344 Bengel St #5","Millwall Ward","Greater London","E14 5DR","01402-733903","01440-164945","mdamato@damato.co.uk","http://www.rosatimarcdesq.co.uk" -"Leota","Fletchen","Rust Evader Corp","8880 Great Howard St #7750","Sefton","Merseyside","L29 7WD","01358-446391","01414-780251","lfletchen@gmail.com","http://www.rustevadercorp.co.uk" -"Berry","Gutoski","Budget Annex","9 Oakleigh","Lancing","West Sussex","BN15 9BN","01448-211489","01929-400879","berry@gmail.com","http://www.budgetannex.co.uk" -"Meghan","Riherd","Kiqo Pure Gold Oldies 104 Fm","83 Denbigh St Bootle","St. Gluvias","Cornwall","TR3 7AZ","01462-474800","01650-129106","meghan@riherd.co.uk","http://www.kiqopuregoldoldiesfm.co.uk" -"Mike","Torner","Segall Majestic Inc","30 Aughton St","Hilton","Aberdeenshire","AB24 2RR","01240-600327","01408-918612","mike_torner@torner.co.uk","http://www.segallmajesticinc.co.uk" -"Elsa","Delisle","Taos Valley Resort Assn","260 Saxon St","Brooklands Ward","Greater Manchester","M33 4BP","01537-525550","01204-471598","elsa_delisle@gmail.com","http://www.taosvalleyresortassn.co.uk" -"Linwood","Rosenlof","Exhibit Crafts Inc","3 Pyramid St","Eccleston Ward","Merseyside","WA10 3BW","01546-942059","01244-769346","linwood.rosenlof@yahoo.com","http://www.exhibitcraftsinc.co.uk" -"Latosha","Alexy","Laitinen, Stephen B Esq","37 Langham St #948","St. Georges Hill Ward","Surrey","KT13 0AZ","01704-508066","01662-268374","latosha@yahoo.com","http://www.laitinenstephenbesq.co.uk" -"Alexia","Meenan","Herr Foods Inc","94 Villars St","Launcells","Cornwall","EX23 9LG","01560-328739","01270-931388","alexia.meenan@meenan.co.uk","http://www.herrfoodsinc.co.uk" -"Graham","Stanwick","Tiburon Pen Chmbr Commrce Inc","73 Hawkstone St","Renfrew South & Gallowhill War","Dunbartonshire","G52 4YG","01860-191930","01409-786106","gstanwick@gmail.com","http://www.tiburonpenchmbrcommrceinc.co.uk" -"Elinore","Fulda","Agri Business Insurance Agency","123 Sussex St","Astley Bridge Ward","Greater Manchester","BL1 6PY","01457-837447","01403-864306","elinore.fulda@fulda.co.uk","http://www.agribusinessinsuranceagency.co.uk" -"Lisbeth","Creecy","Gerstenfeld, Gerald F Esq","484 Barry St","Shiney Row Ward","County Durham","DH4 7RG","01931-620849","01825-623398","lcreecy@gmail.com","http://www.gerstenfeldgeraldfesq.co.uk" -"Eloisa","Faurote","Mcdonald, Michael J Esq","7033 Micawber St","Bintree","Norfolk","NR20 5NQ","01337-695353","01747-999761","eloisa.faurote@hotmail.com","http://www.mcdonaldmichaeljesq.co.uk" -"Shawana","Cantua","Best Western Riverview Inn","33 Vipond St","Woodhall Farm Ward","Hertfordshire","HP2 7JP","01413-348876","01659-621050","shawana@yahoo.com","http://www.bestwesternriverviewinn.co.uk" -"Alyssa","Ansbro","Berg, Michael D Esq","85 Hero St","Stanhope","County Durham","DL13 2TZ","01632-887825","01585-967862","alyssa_ansbro@gmail.com","http://www.bergmichaeldesq.co.uk" -"Kyoko","Mcmillian","Nature Conservancy","77 Reading St #8","North Tawton","Devon","EX20 2TR","01235-173362","01371-735347","kyoko_mcmillian@gmail.com","http://www.natureconservancy.co.uk" -"Terry","Gauthier","Walker, Susan S Esq","274 Altcar Ave","Catterick","North Yorkshire","DL10 7NU","01555-550015","01793-749131","tgauthier@yahoo.com","http://www.walkersusansesq.co.uk" -"Sena","Langenbach","Alternative Collection Svc Inc","38 Avondale Rd #79","Kilmersdon","Somerset","BA3 5SJ","01756-678490","01836-695245","sena.langenbach@hotmail.com","http://www.alternativecollectionsvcinc.co.uk" -"Cristen","Nesset","Johnson, Matthew E Esq","4679 Curzon St","Central Ward","Lancashire","BB5 0SJ","01354-864473","01994-347546","cnesset@nesset.co.uk","http://www.johnsonmattheweesq.co.uk" -"Lashawn","Ker","Thornsjo, Dale O Esq","13 Nelson Rd","Filwood Ward","Bristol","BS4 1HT","01676-780022","01470-187069","lashawn.ker@gmail.com","http://www.thornsjodaleoesq.co.uk" -"Wade","Sovel","Manhattan Supply Co Deer Pk","2546 Hunter St","Central Buchan Ward","Aberdeenshire","AB53 6YD","01712-978062","01317-960371","wade@hotmail.com","http://www.manhattansupplycodeerpk.co.uk" -"Whitney","Tishler","Clifford Standifer & Mcdowell","77 Mason St #650","Smallbridge and Firgrove Ward","Greater Manchester","OL16 3AW","01224-605237","01948-891701","whitney@gmail.com","http://www.cliffordstandifermcdowell.co.uk" -"Deja","Conatser","Universal Case Co","94 Wakefield St","Lavenham","Suffolk","CO10 9PU","01378-234592","01879-981256","deja.conatser@hotmail.com","http://www.universalcaseco.co.uk" -"Earnestine","Casper","A O J Mfg Corp","529 Stalmine Rd #3680","Saffron Walden","Essex","CB11 4DJ","01807-346103","01260-744622","earnestine_casper@hotmail.com","http://www.aojmfgcorp.co.uk" -"Frankie","Marruffo","Paralegal Personnel","52 Morningside Rd #1","Cilybebyll Community","Neath Port Talbot","SA8 3HE","01295-678319","01966-999493","fmarruffo@gmail.com","http://www.paralegalpersonnel.co.uk" -"Paola","Dease","Sunderland Publishing Co","94 Enid St","Birchington","Kent","CT7 9BG","01333-642646","01419-231768","pdease@gmail.com","http://www.sunderlandpublishingco.co.uk" -"Rodrigo","Hawkin","Godfroy, William Esq","661 Great Crosshall St","Forth Ward","City of Edinburgh","EH5 2LR","01936-611490","01280-275755","rodrigo@hotmail.com","http://www.godfroywilliamesq.co.uk" -"Luther","Alsman","Crossroads Travel Service Inc","227 Albert Terrace","Belvedere Ward","Greater London","DA17 6EF","01536-639256","01494-500403","luther@gmail.com","http://www.crossroadstravelserviceinc.co.uk" -"Casey","Dondero","Sarrail Lynch & Hall","464 Back Nile St #618","Acton Central Ward","Greater London","W3 6QJ","01728-100333","01862-338494","casey.dondero@hotmail.com","http://www.sarraillynchhall.co.uk" -"Ressie","Bontemps","Typesetters","42 Eastwood St","Walton Ward","Cambridgeshire","PE4 6HB","01996-854517","01616-608138","ressie_bontemps@bontemps.co.uk","http://www.typesetters.co.uk" -"Sean","Schurman","Cooper Electric Supply Co","2877 Grain St","Caversham Ward","Berkshire","RG4 5DE","01773-139510","01423-385669","sean.schurman@schurman.co.uk","http://www.cooperelectricsupplyco.co.uk" -"Celestina","Pince","Mcallister & Murphy Pc","13 Stockdale St #779","Abingdon on Thames","Oxfordshire","OX14 5QH","01763-475078","01434-734867","cpince@pince.co.uk","http://www.mcallistermurphypc.co.uk" -"Maira","Karas","Blanton, Mary R Attorney","9 Cropper St","Northgate Ward","West Sussex","RH10 1YJ","01582-839217","01927-384903","maira.karas@yahoo.com","http://www.blantonmaryrattorney.co.uk" -"Beth","Barbone","Upper Deck Co","3 Gaskell St","Tynemouth Ward","Tyne and Wear","NE30 2NB","01210-926114","01521-151330","bbarbone@barbone.co.uk","http://www.upperdeckco.co.uk" -"Wei","Nobel","Victory Coating","5221 Royston St","Eccleshall","Staffordshire","ST21 6GA","01912-146880","01608-570699","wei_nobel@hotmail.com","http://www.victorycoating.co.uk" -"Melissia","Slotemaker","Twining Nemia & Steflik","83 St Johns Lane #43","Linlithgow Ward","West Lothian","EH49 7LS","01515-360513","01936-295031","mslotemaker@gmail.com","http://www.twiningnemiasteflik.co.uk" -"Letha","Akey","Jeanettes Drapery & Upholstery","603 Pall Mall","Layton Ward","Lancashire","FY3 8ND","01694-424205","01605-583419","letha_akey@akey.co.uk","http://www.jeanettesdraperyupholstery.co.uk" -"Isaac","Semrad","Prugh, Pamela J Cpa","76 Dawber St #6","Blackheath Westcombe Ward","Greater London","SE3 7JY","01939-738818","01798-503274","isaac.semrad@semrad.co.uk","http://www.prughpamelajcpa.co.uk" -"Kristine","Klipfel","Neeley, Gregory W Esq","3380 Alexander St","Moulsham and Central Ward","Essex","CM1 9QQ","01710-435506","01396-935784","kristine.klipfel@yahoo.com","http://www.neeleygregorywesq.co.uk" -"Odette","Moussette","Village Business Center","216 Lissant St #8","Great Dunmow","Essex","CM6 1DQ","01712-248851","01626-260974","odette_moussette@gmail.com","http://www.villagebusinesscenter.co.uk" -"Hobert","Panfilov","Carlin, Angela G Esq","92 Phythian St #614","Gweek","Cornwall","TR11 5RR","01245-353227","01518-554407","hobert@gmail.com","http://www.carlinangelagesq.co.uk" -"Isadora","Mchughes","Fan Shop","792 Queens Rd","Stretford Ward","Greater Manchester","M32 8LR","01526-145485","01338-403471","isadora.mchughes@mchughes.co.uk","http://www.fanshop.co.uk" -"Emily","Pogorelc","Mccartney Printing Services","5196 York St","Orsett Ward","Essex","SS17 8NS","01416-913482","01439-493163","emily.pogorelc@yahoo.com","http://www.mccartneyprintingservices.co.uk" -"Desire","Barresi","Greater Cinc Schl Empl Crdt Un","428 Kearsley St","Hatton","Warwickshire","CV35 7UA","01819-701096","01970-482055","desire@gmail.com","http://www.greatercincschlemplcrdtun.co.uk" -"Rosalind","Stamps","Haar, Allen F","8 Chestnut St","Barrowford","Lancashire","BB9 6EW","01918-999052","01736-843257","rosalind.stamps@stamps.co.uk","http://www.haarallenf.co.uk" -"Vernell","Connley","Harmons","998 Roe St #6","Bellingham","Northumberland","NE48 2BX","01954-363885","01585-863534","vernell@hotmail.com","http://www.harmons.co.uk" -"Micheline","Mathieson","Mail Boxes Etc","3 Copenhagen Rd","George St","Aberdeenshire","AB25 3UZ","01857-518738","01247-541211","micheline.mathieson@yahoo.com","http://www.mailboxesetc.co.uk" -"Nathan","Outhouse","Grt Amercn Fed Svngs & Ln Assn","293 Vivian St","South Jesmond Ward","Tyne and Wear","NE2 1EY","01555-702650","01364-499130","nathan.outhouse@gmail.com","http://www.grtamercnfedsvngslnassn.co.uk" -"Allene","Burau","Allied Plastics","8 Barlow St #6","Barlow","Derbyshire","S18 7TH","01731-825958","01260-963065","allene.burau@hotmail.com","http://www.alliedplastics.co.uk" -"Julie","Sakshaug","Newton Clerk","5 Shakspeare St #66","St. Johns Ward","Hereford and Worcester","B61 8HD","01225-180983","01641-570473","julie@gmail.com","http://www.newtonclerk.co.uk" -"Francisca","Shuhi","Thompson, Chesney Md","7 Carolina St","Bodmin","Cornwall","PL31 1QF","01345-878334","01639-663121","fshuhi@shuhi.co.uk","http://www.thompsonchesneymd.co.uk" -"Marisha","Wilcoxon","Young Door Company","52 Trowbridge St","Knightsbridge and Belgravia Wa","Greater London","SW1X 9HB","01257-461104","01422-891030","marisha.wilcoxon@gmail.com","http://www.youngdoorcompany.co.uk" -"Telma","Maraia","Reliable Yard Service","25 Village St","Elgin City South Ward","Moray","IV30 1SB","01500-649863","01531-881940","telma@maraia.co.uk","http://www.reliableyardservice.co.uk" -"Luke","Crete","M D & W Railway","4 Peach St #5112","Halstead","Kent","TN14 7EF","01375-820236","01268-175772","luke.crete@crete.co.uk","http://www.mdwrailway.co.uk" -"Hubert","Mias","Chuckmaster Co","3614 Old Hall St #604","Fawley","Hampshire","SO45 2PT","01408-965643","01857-225719","hubert.mias@gmail.com","http://www.chuckmasterco.co.uk" -"Janella","Altobell","Shannon, Paul V Esq","3768 Hey Green Rd","Hartshill","Warwickshire","CV10 0TH","01746-505364","01411-597527","jaltobell@hotmail.com","http://www.shannonpaulvesq.co.uk" -"Angelo","Lavista","Computemp","97 Newlands St","Kensington and Fairfield Ward","Merseyside","L6 9DU","01544-247601","01210-307796","angelo.lavista@gmail.com","http://www.computemp.co.uk" -"Tran","Mandiola","N Rockland Educl Fed Crdt Un","6226 Maitland St","West Bromwich Central Ward","West Midlands","B70 6DR","01609-235350","01957-151083","tran.mandiola@hotmail.com","http://www.nrocklandeduclfedcrdtun.co.uk" -"Reynalda","Vanhooser","A All In One Construction","891 Crocus St","Rowley Ward","West Midlands","B65 8EZ","01951-872658","01350-811035","reynalda@vanhooser.co.uk","http://www.aallinoneconstruction.co.uk" -"Salley","Rieger","Barnett Industries Inc","1 Segrave St","Sutton Trinity Ward","West Midlands","B75 6HJ","01858-162078","01992-655281","salley.rieger@gmail.com","http://www.barnettindustriesinc.co.uk" -"Cheryll","Yurich","Blaineco Structural Movers","666 Moor Place","Shepway South Ward","Kent","ME15 8ST","01780-380120","01494-202350","cheryll_yurich@yurich.co.uk","http://www.blainecostructuralmovers.co.uk" -"Crista","Viengxay","Green Point Savings Bank","1554 Christopher St","Everton Ward","Merseyside","L6 1BG","01976-784016","01584-387727","crista@yahoo.com","http://www.greenpointsavingsbank.co.uk" -"Lino","Sutulovich","Sherpa Corp","55 Margaret Rd","Heaton Ward","Yorkshire, West","BD9 4DA","01316-590173","01980-890046","lino.sutulovich@gmail.com","http://www.sherpacorp.co.uk" -"Galen","Wendorf","Russell, Amelia Mosley Esq","8830 Antonio St","Gillingham North Ward","Kent","ME7 1DZ","01220-653456","01420-489285","galen.wendorf@wendorf.co.uk","http://www.russellameliamosleyesq.co.uk" -"Gilbert","Langarica","Inter American Press Assn","82 Sinclair St","Bangor Community","Gwynedd","LL57 1DW","01455-565046","01432-324277","gilbert.langarica@gmail.com","http://www.interamericanpressassn.co.uk" -"Whitney","Goossen","Eagle Newspapers","7568 Atlas St","Butterwick","Lincolnshire","PE22 0HY","01255-383731","01392-955534","whitney.goossen@hotmail.com","http://www.eaglenewspapers.co.uk" -"Socorro","Abrahams","Martin Morrissey","93 Clyde Rd #9","Deepdale Ward","Lancashire","PR1 6TN","01311-567052","01387-779081","socorro_abrahams@abrahams.co.uk","http://www.martinmorrissey.co.uk" -"Mauricio","Flam","Callender, William C Esq","18 Nimrod St","Walney North Ward","Cumbria","LA14 3SJ","01640-813748","01829-160968","mflam@gmail.com","http://www.callenderwilliamcesq.co.uk" -"Phillip","Aloi","Duffield, Michael C","6 Cannock St","Scarcroft","West Yorkshire","LS14 3BW","01490-898175","01867-710914","paloi@hotmail.com","http://www.duffieldmichaelc.co.uk" -"Gilberto","Erixon","Advanced Data Systems","2258 Benedict St","Penryn","Cornwall","TR10 8RP","01582-161403","01749-718702","gerixon@gmail.com","http://www.advanceddatasystems.co.uk" -"Thad","Puskarich","Drubner, Norman S Esq","9302 Ismay St #6","Tenterden","Kent","TN30 6JP","01506-152661","01686-258819","thad_puskarich@puskarich.co.uk","http://www.drubnernormansesq.co.uk" -"Bambi","Favaron","Desktop Center","3347 Lawrence Rd #456","Haverstock Ward","Greater London","NW5 4EU","01676-354943","01588-347636","bambi.favaron@yahoo.com","http://www.desktopcenter.co.uk" -"Marshall","Kozikowski","Viking Lodge","47 Elwy St","Kilpatrick Ward","West Dunbart","G81 6RT","01913-454226","01738-622885","marshall@hotmail.com","http://www.vikinglodge.co.uk" -"Chery","Wiederin","Rosenkrance, Brent","553 Picton Rd","Astley Mosley Common Ward","Greater Manchester","M29 7AA","01274-659801","01411-236922","cwiederin@yahoo.com","http://www.rosenkrancebrent.co.uk" -"Eileen","Montecalvo","Holiday House Apts","9986 Cantsfield St","St. Peters Ward","Tyne and Wear","SR6 9SD","01904-227024","01278-578708","eileen@yahoo.com","http://www.holidayhouseapts.co.uk" -"Melita","Szpak","Or Draymen & Warehousemans","1 Sussex St","Cyfarthfa Community","Merthyr Tydfil","CF48 1AR","01431-484822","01294-348695","melita.szpak@szpak.co.uk","http://www.ordraymenwarehousemans.co.uk" -"Ashley","Jessie","Haney, Tom C Md","9548 Ogwen St #84","Baguley Ward","Greater Manchester","M23 9GB","01740-739731","01598-368995","ashley_jessie@jessie.co.uk","http://www.haneytomcmd.co.uk" -"Laila","Fend","Burlington Co Library","57 St Georges Hill","Crawcrook and Greenside Ward","Tyne and Wear","NE40 4LJ","01550-206220","01624-621665","lfend@gmail.com","http://www.burlingtoncolibrary.co.uk" -"Bobbie","Guillereault","Geneva Woods Professional Ctr","385 Upper Hampton St #39","Southey Ward","South Yorkshire","S5 8LL","01496-781616","01606-682963","bguillereault@gmail.com","http://www.genevawoodsprofessionalctr.co.uk" -"Dana","Paluszynski","Chile Pepper Magazine","6378 Lyell St #48","Trossachs and Teith Ward","Stirling","FK21 8TJ","01847-224345","01907-198323","dpaluszynski@paluszynski.co.uk","http://www.chilepeppermagazine.co.uk" -"Freida","Newyear","Flash, Elena Salerno Esq","675 Falstaff St #170","Chapel-en-le-Frith","Derbyshire","SK23 0QG","01773-691786","01890-803440","freida_newyear@yahoo.com","http://www.flashelenasalernoesq.co.uk" -"Val","Cellucci","Owensboro Brick & Tile","87 Pelops St","Kings Norton Ward","West Midlands","B38 8PL","01387-155607","01488-893833","vcellucci@yahoo.com","http://www.owensborobricktile.co.uk" -"Horace","Knapp","Mouw & Celello Pc","5 Eyes St","Mid and Upper Nithsdale Ward","Dumfries and Galloway","DG4 6LF","01924-556297","01459-140651","horace.knapp@yahoo.com","http://www.mouwcelellopc.co.uk" -"Joana","Reinecke","Visiting Nur Assn Ctrl Jersey","2427 Olney St #7","Amersham","Buckinghamshire","HP6 6JH","01320-402522","01866-827990","jreinecke@reinecke.co.uk","http://www.visitingnurassnctrljersey.co.uk" -"Tiara","Schlichter","C C Industries","805 Westbank Rd","North Heywood Ward","Greater Manchester","OL10 2DU","01270-562265","01769-234788","tiara_schlichter@schlichter.co.uk","http://www.ccindustries.co.uk" -"Dacia","Swaisgood","Nelson & Paulson Chartered","36 Cranmer St #4697","Little Hereford","Shropshire","SY8 4LE","01984-926059","01275-123842","dacia.swaisgood@swaisgood.co.uk","http://www.nelsonpaulsonchartered.co.uk" -"Myong","Babineaux","Capital Thrpy & Spts Medcn Inc","2 Kirkdale Rd","Canning Town North Ward","Greater London","E16 4NF","01897-419567","01801-288675","mbabineaux@babineaux.co.uk","http://www.capitalthrpysptsmedcninc.co.uk" -"Gene","Bleile","Sun Toledo Refinery Co","4687 Atherton St","Springfield Ward","West Midlands","B11 4HB","01257-354396","01546-626491","gene_bleile@bleile.co.uk","http://www.suntoledorefineryco.co.uk" -"Kanisha","Difiora","Mata, Mario A Esq","513 Bailey St","Bontnewydd Community","Gwynedd","LL54 7UP","01770-697837","01426-535429","kanisha@gmail.com","http://www.matamarioaesq.co.uk" -"Ayesha","Moeder","Meredith Paving Corp","620 Old Leeds St","Sheviock","Cornwall","PL11 3DF","01284-871485","01800-737237","ayesha@gmail.com","http://www.meredithpavingcorp.co.uk" -"Lanie","Smalarz","Philosophical Rsrch Scty Bkstr","5149 Maria Rd","Peterlee","County Durham","SR8 5RL","01218-415062","01279-431606","lanie.smalarz@yahoo.com","http://www.philosophicalrsrchsctybkstr.co.uk" -"Jaleesa","Polintan","New Jersey Tanning Co Inc","8 Taylor St","Shrub End Ward","Essex","CO2 9LW","01507-519053","01973-332478","jpolintan@polintan.co.uk","http://www.newjerseytanningcoinc.co.uk" -"Tamekia","Flotow","All County Inc","588 Venmore St","Twickenham Riverside Ward","Greater London","TW1 2QH","01794-317624","01958-330790","tamekia.flotow@hotmail.com","http://www.allcountyinc.co.uk" -"Ula","Otey","Mail Boxes Etc","1 Newby St","Coleshill","Warwickshire","B46 3LZ","01291-565542","01581-469043","ula@hotmail.com","http://www.mailboxesetc.co.uk" -"Rosendo","Ratel","Elmark Graphics Inc","5588 Lake St #903","Crystal Palace Ward","Greater London","SE19 2TJ","01404-343160","01276-749323","rratel@yahoo.com","http://www.elmarkgraphicsinc.co.uk" -"Timmy","Lintner","Interdependence Associates Inc","9112 Hardwick St","Bowes","County Durham","DL12 9JB","01651-232745","01711-826233","tlintner@hotmail.com","http://www.interdependenceassociatesinc.co.uk" -"Zita","Speltz","Mmm Design Group","2395 Gloucester Pl","Halliwell Ward","Greater Manchester","BL1 6DS","01368-497445","01215-755682","zita_speltz@yahoo.com","http://www.mmmdesigngroup.co.uk" -"Aleisha","Lemm","Pathe Cmptr Cntrl Systems Corp","341 Birchfield St","Wareham St. Martin","Dorset","BH16 6JJ","01341-997268","01864-899304","aleisha.lemm@gmail.com","http://www.pathecmptrcntrlsystemscorp.co.uk" -"Naomi","Lavezzo","Torrefazione Italia Inc","9854 Ranelagh Place","Finedon","Northamptonshire","NN9 5EN","01469-888112","01367-310764","naomi.lavezzo@yahoo.com","http://www.torrefazioneitaliainc.co.uk" -"Aretha","Bowling","Sawyer, Robert M Esq","8 Nova Scotia","Caerphilly Community","Caerphilly","CF83 3AF","01816-462521","01486-709301","aretha@hotmail.com","http://www.sawyerrobertmesq.co.uk" -"Mila","Figuera","U S Sapporo A Inc","72 Lime Place","Old Newton with Dagworth","Suffolk","IP14 4HG","01300-650262","01573-159208","mila_figuera@yahoo.com","http://www.ussapporoainc.co.uk" -"Orville","Zuehl","Teti, Louis N Esq","907 Denman St","Crowle and Ealand","North Lincolnshire","DN17 4EN","01998-694754","01752-405851","orville_zuehl@zuehl.co.uk","http://www.tetilouisnesq.co.uk" -"Gabriele","Geschke","Levy Security Consultants Ltd","5 Garfield St #9","Milton Regis Ward","Kent","ME10 2EJ","01404-425588","01902-692529","gabriele@geschke.co.uk","http://www.levysecurityconsultantsltd.co.uk" -"Kara","Jaquish","El Adobe Inn","345 Feltwell Rd","St. Michaels and Wicksteed War","Northamptonshire","NN15 6BB","01691-316298","01503-303797","kara@yahoo.com","http://www.eladobeinn.co.uk" -"Kenny","Lin","Mcmahan Mcmahan & Brinkley","1 Towson St","Howe of Fife and Tay Coast War","Fife","KY14 6AH","01753-900033","01473-417906","kenny@lin.co.uk","http://www.mcmahanmcmahanbrinkley.co.uk" -"Vashti","Sugai","Accurate Engraving Co","4 Candia St #6","Shipston on Stour","Warwickshire","CV36 4HE","01311-723137","01528-551210","vashti@gmail.com","http://www.accurateengravingco.co.uk" -"Jordan","Handsaker","Shirleys Print Shoppe","2 Cherry Lane","Strood South Ward","Kent","ME2 2NJ","01793-443665","01964-984369","jordan_handsaker@gmail.com","http://www.shirleysprintshoppe.co.uk" -"Carisa","Degenhardt","Schwend Signs","7 Britannia Ave #875","Newton-with-Clifton","Lancashire","PR4 3RQ","01911-775929","01913-319581","carisa.degenhardt@degenhardt.co.uk","http://www.schwendsigns.co.uk" -"Audrie","Danaher","K C Products Co","63 Brunswick Sq","Llanelli Rural Community","Carmarthenshire","SA15 5YN","01344-670413","01956-885635","adanaher@yahoo.com","http://www.kcproductsco.co.uk" -"Shaunna","Rodamis","Engelbrecht Ackerman & Hassman","5 Gainsborough Rd","Newington Ward","Greater London","SE1 6EH","01658-509610","01529-959860","shaunna.rodamis@yahoo.com","http://www.engelbrechtackermanhassman.co.uk" -"Coleen","Langer","Valley Prodn Ctr For Vid & Aud","745 Goodall St #9309","Much Wenlock","Shropshire","TF13 6HB","01956-525612","01746-728526","coleen.langer@hotmail.com","http://www.valleyprodnctrforvidaud.co.uk" -"Katie","Choinski","Coastal Technologies","1267 Alderson Rd","Churchdown","Gloucestershire","GL3 2BA","01606-772920","01762-227896","katie@choinski.co.uk","http://www.coastaltechnologies.co.uk" -"Dannie","Brau","Goodfellow Agency","2 Gay St #3702","Werrington South Ward","Cambridgeshire","PE7 2QA","01675-779811","01380-595884","dbrau@brau.co.uk","http://www.goodfellowagency.co.uk" -"Ashanti","Donn","Denticator","3409 Benns Gardens","Hollington Ward","East Sussex","TN38 9NE","01352-599278","01721-697548","adonn@yahoo.com","http://www.denticator.co.uk" -"Madalyn","Dubberly","L & M Industrial Chemicals Inc","1 Lower Burlington St","Northfleet South Ward","Kent","DA11 8RN","01974-720949","01910-745476","madalyn.dubberly@gmail.com","http://www.lmindustrialchemicalsinc.co.uk" -"Santos","Signore","Gallagher, John J Esq","4706 Chapel Place #5993","Steyning","West Sussex","BN44 3DF","01614-431131","01670-346228","santos@gmail.com","http://www.gallagherjohnjesq.co.uk" -"Alyce","Flamino","Sadowski, Jeffrey A","4 Mather St","Holbrook Ward","West Midlands","CV6 4BN","01361-927368","01678-781372","alyce@yahoo.com","http://www.sadowskijeffreya.co.uk" -"Pearly","Ero","Rug Gallery","9960 Gilroy Rd","Woodhouse Ward","Greater London","N12 9JT","01329-374051","01408-866700","pero@hotmail.com","http://www.ruggallery.co.uk" -"Cherrie","Nitschke","Watson, Richard I Md","3 Burnall St","Keighley","West Yorkshire","BD20 6DA","01373-498883","01955-289452","cherrie_nitschke@yahoo.com","http://www.watsonrichardimd.co.uk" -"Maia","Shadd","Pigeon Falls State Bank","8 Bigham Rd","Deal","Kent","CT14 9QJ","01950-708083","01295-412046","maia_shadd@gmail.com","http://www.pigeonfallsstatebank.co.uk" -"Edwin","Logghe","Joseph Victor & Son Inc","950 Gordon St","Heanor and Loscoe","Derbyshire","DE75 7FZ","01366-667615","01627-549610","edwin_logghe@hotmail.com","http://www.josephvictorsoninc.co.uk" -"Leigha","Semenza","Unique Epoxy","784 Juno St #7653","North Horsham","West Sussex","RH12 4GW","01406-216625","01286-731684","lsemenza@yahoo.com","http://www.uniqueepoxy.co.uk" -"Walker","Seeger","Jim Dunnam Builder Inc","69 Chantrey St #90","Hickling","Norfolk","NR12 0YB","01245-616596","01531-463162","walker.seeger@yahoo.com","http://www.jimdunnambuilderinc.co.uk" -"Nakita","Rodrigues","Richard Mulholland Prop Inc","4 Northbrook St #600","Edmonton Green Ward","Greater London","N18 2NF","01679-150583","01607-496390","nakita_rodrigues@gmail.com","http://www.richardmulhollandpropinc.co.uk" -"Kattie","Ozane","Page, Patricia A Esq","526 Liffey St #759","Westbury","Wiltshire","BA13 3QU","01322-491007","01807-524286","kozane@gmail.com","http://www.pagepatriciaaesq.co.uk" -"Lamar","Suite","T J Boyle & Associates","6301 Dorset Rd","Harefield Ward","Greater London","UB9 6LF","01716-613102","01885-144424","lsuite@yahoo.com","http://www.tjboyleassociates.co.uk" -"Juliana","Uken","Charles S Cavadini Cic","4 Summer Seat Bootle","Moulsecoomb and Bevendean Ward","Brighton and Hove","BN2 4TL","01962-844141","01981-109913","juliana.uken@yahoo.com","http://www.charlesscavadinicic.co.uk" -"Chan","Loftin","Hydrick Law Offices","84 Walton Village","Horfield Ward","Bristol","BS7 0AX","01507-583669","01698-163177","chan@gmail.com","http://www.hydricklawoffices.co.uk" -"Delpha","Detamore","Bilar Tool & Die Inc","8 Tagus St #9814","Cleator Moor","Cumbria","CA25 5EF","01322-480025","01517-750609","delpha.detamore@yahoo.com","http://www.bilartooldieinc.co.uk" -"Floyd","Tivis","Sheplers Western Wear","770 Jamaica St","Penmaenmawr Community","Conwy","LL34 6BH","01882-970809","01838-712829","floyd_tivis@hotmail.com","http://www.sheplerswesternwear.co.uk" -"Chantell","Besong","Kelly, Mark C","11 Tetlow St","Parsons Green and Walham Ward","Greater London","SW6 4QP","01607-329400","01218-142767","chantell_besong@gmail.com","http://www.kellymarkc.co.uk" -"Martin","Fonua","Aviation Insurance Inc","7642 Ledward St","Cressington Ward","Merseyside","L19 0LN","01919-185409","01921-686016","mfonua@yahoo.com","http://www.aviationinsuranceinc.co.uk" -"Hyun","Erdman","Hall, Ronald A","1432 Rutland Ave","Uckfield","East Sussex","TN22 9EF","01594-744010","01356-404829","hyun@gmail.com","http://www.hallronalda.co.uk" -"Nada","Arey","Advanced Engineering Assocs","22 Harewood St #95","Acton Trussell and Bednall","Staffordshire","ST17 0RU","01576-627827","01822-753601","nada@hotmail.com","http://www.advancedengineeringassocs.co.uk" -"Elizabeth","Pata","Hirsch, Henry L Esq","645 Lister Drive","Denwick","Northumberland","NE66 2LQ","01634-662999","01571-674820","elizabeth@gmail.com","http://www.hirschhenrylesq.co.uk" -"Dominic","Washmuth","Bremer, Duncan S Esq","8977 Old Leeds St #87","Beaminster","Dorset","DT8 3DR","01725-615270","01722-996936","dwashmuth@hotmail.com","http://www.bremerduncansesq.co.uk" -"Alise","Packebush","Wnc Forklift Inc","22 Delamore St","Hereford","Hereford and Worcester","HR1 2EA","01266-695304","01517-702273","alise.packebush@gmail.com","http://www.wncforkliftinc.co.uk" -"Flo","Bardsley","Hancock, John J Esq","35 Walton Lane","Loughborough Ashby Ward","Leicestershire","LE11 4PF","01983-847833","01418-645161","flo.bardsley@hotmail.com","http://www.hancockjohnjesq.co.uk" -"Bonita","Sandblom","Transbay Steel Corp","22 Kilshaw St","Wimbledon Park Ward","Greater London","SW19 7DT","01989-617161","01723-502274","bsandblom@gmail.com","http://www.transbaysteelcorp.co.uk" -"Royal","Rush","Severt, Todd D Esq","1 Argyle St","Hyde Werneth Ward","Greater Manchester","SK14 5AR","01934-427282","01809-860488","royal.rush@yahoo.com","http://www.severttodddesq.co.uk" -"Erasmo","Talentino","Active Air Systems","3 Garden Lane","Darton West Ward","South Yorkshire","S75 5JY","01492-454455","01304-185373","erasmo.talentino@hotmail.com","http://www.activeairsystems.co.uk" -"Mari","Smeby","A B E Doors & Windows","4309 Chisenhale St","Rock","Hereford and Worcester","DY14 9XQ","01423-202676","01733-169475","msmeby@gmail.com","http://www.abedoorswindows.co.uk" -"Eleonora","Ventry","Jackson, Donald M Esq","758 Woodhouse St","Soho Ward","West Midlands","B21 0UE","01966-685595","01762-396161","eleonora@gmail.com","http://www.jacksondonaldmesq.co.uk" -"Therese","Shiraki","Wuhf Fox 31","18 Ouse St","Oakridge and Castlefield Ward","Buckinghamshire","HP11 2PJ","01611-691262","01703-441371","tshiraki@gmail.com","http://www.wuhffox.co.uk" -"Rodolfo","Scavuzzo","Gulf Atlantic Equipment Co Inc","5 Ruskin St","Irvine East Ward","North Ayrshire","KA11 2BP","01576-536794","01501-755479","rodolfo_scavuzzo@yahoo.com","http://www.gulfatlanticequipmentcoinc.co.uk" -"Cruz","Fanelli","Graham, John A Esq","4565 Blackstock St","Springfields and Trent Vale Wa","Stoke-on-Trent","ST4 5BW","01710-616480","01314-202428","cruz@hotmail.com","http://www.grahamjohnaesq.co.uk" -"Arlyne","Dellinger","Holzgrafe, Roger E Esq","8361 Cottenham St","Fawley","Hampshire","SO45 1QQ","01907-958462","01821-459979","arlyne.dellinger@yahoo.com","http://www.holzgraferogereesq.co.uk" -"Edward","Strejan","Kaysers Nutrition Center","1267 Audley St","Ise Lodge Ward","Northamptonshire","NN15 5DB","01242-422459","01659-505806","edward_strejan@gmail.com","http://www.kaysersnutritioncenter.co.uk" -"Christoper","Sheneman","Jones, Brigham P Esq","845 Atherton St","Tatsfield","Kent","TN16 2AR","01455-958797","01732-922087","christoper@gmail.com","http://www.jonesbrighampesq.co.uk" -"Melda","Colamarino","Proctor & Associates Co","150 Margaret Rd","Kings Hill","Kent","ME19 4DT","01879-572287","01708-292140","melda.colamarino@colamarino.co.uk","http://www.proctorassociatesco.co.uk" -"Margot","Peay","Bork, Terry D Esq","9923 Dinorben St #4838","Childs Hill Ward","Greater London","NW11 8DY","01925-895879","01913-339706","margot.peay@yahoo.com","http://www.borkterrydesq.co.uk" -"Gerald","Drozdenko","Diamond Cbnts Div Wht Cons Ind","186 Craven St #68","Little Ness","Shropshire","SY4 2JX","01593-647422","01210-465236","gdrozdenko@yahoo.com","http://www.diamondcbntsdivwhtconsind.co.uk" -"Tomoko","Renno","Trico Prods Corp","5160 High St #38","Goldsmid Ward","Brighton and Hove","BN3 6EA","01731-573285","01873-329707","tomoko@renno.co.uk","http://www.tricoprodscorp.co.uk" -"Mendy","Wassmann","Ruello, Joseph F","3833 Sidney Rd","Cherryfield Ward","Merseyside","L32 3XS","01378-845450","01509-540345","mendy.wassmann@wassmann.co.uk","http://www.ruellojosephf.co.uk" -"Daryl","Hilcher","Petaluma Area Chamber Commrce","6267 Greenland St","Wakefield East Ward","West Yorkshire","WF1 4LW","01391-238570","01517-862819","dhilcher@hotmail.com","http://www.petalumaareachambercommrce.co.uk" -"Ty","Feeback","Barnett Travel","14 Landseer Rd","Nith Ward","Dumfries and Galloway","DG1 9SY","01964-503521","01661-450622","tfeeback@gmail.com","http://www.barnetttravel.co.uk" -"King","Vanacore","Sdse Public Tv","30 Seville St","Meads Ward","East Sussex","BN20 7QU","01908-714833","01651-442812","king_vanacore@yahoo.com","http://www.sdsepublictv.co.uk" -"Isidra","Varnado","Howland Machine Corp","79 Chelmsford St","Holywell Community","Flintshire","CH8 7UP","01600-982590","01591-464964","ivarnado@varnado.co.uk","http://www.howlandmachinecorp.co.uk" -"Tonja","Driesenga","First Ozaukee Savings Bank","8 South John St","Lamport","Northamptonshire","NN6 9XW","01683-204727","01384-883931","tdriesenga@driesenga.co.uk","http://www.firstozaukeesavingsbank.co.uk" -"Shaquana","Featherston","General Truck Part & Equipment","50 Townsend St","Chadderton Central Ward","Greater Manchester","OL9 0NS","01641-726098","01327-255886","shaquana@hotmail.com","http://www.generaltruckpartequipment.co.uk" -"Gilberto","Feagins","Finlay, Joseph B Jr","7643 Campbell St","Penge and Cator Ward","Greater London","BR3 1LT","01304-758732","01315-831243","gfeagins@gmail.com","http://www.finlayjosephbjr.co.uk" -"Rex","Faehnle","Hering, Glenn Z Esq","371 Oakleigh","Warminster","Wiltshire","BA12 8NR","01955-496773","01529-779988","rfaehnle@faehnle.co.uk","http://www.heringglennzesq.co.uk" -"Adolph","Cunningham","Moorhead, Bridget Klein Esq","9874 Oakfield Rd","Redhill Ward","Tyne and Wear","SR5 5PT","01731-429712","01252-511174","adolph_cunningham@hotmail.com","http://www.moorheadbridgetkleinesq.co.uk" -"Queen","Leader","Ottumwa Glass Co","6 Princes St","East Kilbride West Ward","South Lanarkshire","G75 8YR","01567-846944","01445-288807","queen_leader@gmail.com","http://www.ottumwaglassco.co.uk" -"Rebbecca","Rufenacht","Ithaca Guitar Works Inc","4190 Seacombe St","Tiffield","Northamptonshire","NN12 8AA","01583-168158","01926-842843","rrufenacht@yahoo.com","http://www.ithacaguitarworksinc.co.uk" -"Ardella","Goldrup","Bedford Books St Martins Prs","3145 Rhyl St","Londesborough","E Riding of Yorkshire","YO43 3QE","01813-786468","01451-433176","ardella.goldrup@goldrup.co.uk","http://www.bedfordbooksstmartinsprs.co.uk" -"Dallas","Miyashiro","Em Building Products Inc","4919 Lime Grove","Whitchurch Urban","Cheshire","SY13 4HB","01356-551432","01752-585779","dallas_miyashiro@miyashiro.co.uk","http://www.embuildingproductsinc.co.uk" -"Vivan","Jenious","Mnpls Arprt Marriott","8 Carolina St","Northgate Ward","West Sussex","RH10 8EZ","01907-573672","01404-240746","vjenious@yahoo.com","http://www.mnplsarprtmarriott.co.uk" -"Han","Dzledzic","Captain Copy","1592 Price St","Ponteland","Northumberland","NE20 9TF","01532-163009","01303-831633","han_dzledzic@hotmail.com","http://www.captaincopy.co.uk" -"Emilio","Guitierrez","Register Printing Co","2 Weller St","Appleton Wiske","North Yorkshire","DL6 2AS","01845-679016","01363-466980","emilio_guitierrez@guitierrez.co.uk","http://www.registerprintingco.co.uk" -"Latia","Cos","Capitol Cadillac Company","18 Thomas St","Barnham","West Sussex","PO22 0JT","01695-303367","01871-192422","lcos@yahoo.com","http://www.capitolcadillaccompany.co.uk" -"Lilli","Cureau","A 1 Plumbers Supply","42 Hey Green Rd","Deepdale Ward","Lancashire","PR1 6TL","01752-399931","01363-139614","lilli@yahoo.com","http://www.aplumberssupply.co.uk" -"Maryanne","Siske","Levering, Charles B Esq","256 Vesuvius St #159","Stutton with Hazlewood","North Yorkshire","LS24 9UA","01455-447890","01597-966938","maryanne@hotmail.com","http://www.leveringcharlesbesq.co.uk" -"Eliz","Strimple","Karl May General Contractor","82 Denison St #2642","Holyrood Ward","Greater Manchester","M25 1JB","01699-467608","01844-754890","eliz@gmail.com","http://www.karlmaygeneralcontractor.co.uk" -"Laura","Gumaer","C Leasing Company","1779 Bird St","East Sheen Ward","Greater London","SW14 8JZ","01821-208235","01798-839362","laura_gumaer@gmail.com","http://www.cleasingcompany.co.uk" -"Leanora","Respicio","Fire Protection Consultants","99 College St South #1","Byker Ward","Tyne and Wear","NE6 2RX","01564-503370","01694-477023","lrespicio@respicio.co.uk","http://www.fireprotectionconsultants.co.uk" -"Sherell","Pomarico","Kxlt Radio (k 108 Fm)","29 Greenleaf St","Llangristiolus Community","Isle of Anglesey","LL62 5HD","01523-372834","01323-831572","spomarico@hotmail.com","http://www.kxltradiokfm.co.uk" -"Charlie","Isita","Sotorrio, Rene A Esq","39 Hooton Place","Neilston, Uplawmoor and Newton","East Renfrewshire","G78 3AB","01295-844061","01796-315694","charlie@isita.co.uk","http://www.sotorrioreneaesq.co.uk" -"Veronique","Nuckolls","Cinemax Cable Pay Tv Svce","198 Ranelagh Place","Central Buchan Ward","Aberdeenshire","AB43 6RD","01632-762032","01699-696279","vnuckolls@gmail.com","http://www.cinemaxcablepaytvsvce.co.uk" -"Antonio","Villamarin","Combs Sheetmetal","353 Standish St #8264","Little Parndon and Hare Street","Hertfordshire","CM20 2HT","01559-403415","01388-777812","antonio.villamarin@gmail.com","http://www.combssheetmetal.co.uk" -"Louvenia","Kincannon","Fineshriber, Marilyn Esq","87 Eldon Place","Read","Lancashire","BB12 7RY","01315-409372","01600-973642","lkincannon@kincannon.co.uk","http://www.fineshribermarilynesq.co.uk" -"Roxanne","Hedegore","Wallace, Bruce R Esq","592 Catharine St","Blantyre Ward","South Lanarkshire","G72 0RZ","01317-299836","01512-894063","roxanne_hedegore@gmail.com","http://www.wallacebruceresq.co.uk" -"Eve","Hoffstot","Domestic Intrntl Techlgy Ltd","1661 Arrow St","Kirk Hammerton","York","YO26 8DA","01746-129962","01314-564188","eve.hoffstot@yahoo.com","http://www.domesticintrntltechlgyltd.co.uk" -"Kenda","Koza","General Bindery Co Inc","7 Netley St","Custom House Ward","Greater London","E16 3DP","01840-188852","01476-264977","kkoza@koza.co.uk","http://www.generalbinderycoinc.co.uk" -"Elden","Mercik","Lee, Stan Dvm","7 St Edmonds Rd","Nonington","Kent","CT15 4HH","01539-784239","01550-347724","elden_mercik@mercik.co.uk","http://www.leestandvm.co.uk" -"Kami","Ferre","Chomsky, Charles Esq","6996 Wrenbury St","Foleshill Ward","West Midlands","CV6 5RS","01775-876516","01542-149965","kami@yahoo.com","http://www.chomskycharlesesq.co.uk" -"Selene","Zeng","Dustbooks","2 Prince Rupert St","West Wickham Ward","Greater London","BR3 6SX","01741-833047","01345-685146","selene@yahoo.com","http://www.dustbooks.co.uk" -"Deangelo","Rardon","Ric Lo Productions Ltd","9970 Clyde Rd","Woodham Ward","Surrey","KT15 3NW","01748-535438","01788-520912","deangelo_rardon@yahoo.com","http://www.ricloproductionsltd.co.uk" -"Olen","Ailey","Shohet, Grace C Esq","9 Fielding St","Wombourne","Staffordshire","WV5 0BB","01654-865551","01354-169004","olen@gmail.com","http://www.shohetgracecesq.co.uk" -"Lanie","Smarsh","Lbt","555 Ludlow St","Trowbridge","Wiltshire","BA14 9JB","01973-841918","01731-921990","lanie@yahoo.com","http://www.lbt.co.uk" -"Lynna","Breheny","Wky Am 930 Stereo","1 James St #4","St. Andrews Ward","Fife","KY16 9EE","01914-909214","01868-440687","lynna@yahoo.com","http://www.wkyamstereo.co.uk" -"Jody","Klitzing","Dan Dee Belt & Bag Co Inc","3 Byng St #524","Pinhoe Ward","Devon","EX1 3SF","01822-390245","01783-870336","jody_klitzing@hotmail.com","http://www.dandeebeltbagcoinc.co.uk" -"Antonio","Glasford","Saint Thomas Creations","425 Howley St","Gaer Community","Newport","NP20 3DE","01463-409090","01242-318420","antonio_glasford@glasford.co.uk","http://www.saintthomascreations.co.uk" -"Merilyn","Scurci","New York C Liquidators Inc","4041 Virgil St","Headley","Surrey","KT18 6PZ","01770-233355","01617-651554","merilyn_scurci@hotmail.com","http://www.newyorkcliquidatorsinc.co.uk" -"Elliott","Kins","John Noda A Law Ofc Lawrence E","32 High Park St #44","St. Margarets with St. Nichola","Norfolk","PE30 1QE","01727-926540","01422-984862","elliott@gmail.com","http://www.johnnodaalawofclawrencee.co.uk" -"Leonie","Devereux","Mr Bar B Q Inc","88 Vernon St","Dunbar and East Linton Ward","East Lothian","EH42 1SJ","01515-840778","01859-764851","leonie_devereux@gmail.com","http://www.mrbarbqinc.co.uk" -"Eulah","Syrop","Atec","62 Euston St","Bunhill Ward","Greater London","EC1Y 8RT","01666-133305","01295-758471","eulah@syrop.co.uk","http://www.atec.co.uk" -"Marsha","Tarry","Allgood Industries","74 Medlock St","Chorlton Park Ward","Greater Manchester","M20 1JG","01203-684728","01490-554237","marsha.tarry@yahoo.com","http://www.allgoodindustries.co.uk" -"Mignon","Luger","National Lime Association","80 Talbot St","Edgeley and Cheadle Heath Ward","Cheshire","SK3 9RD","01934-252795","01491-473626","mignon@gmail.com","http://www.nationallimeassociation.co.uk" -"Tu","Rivet","Gemini Hats & Accessories Inc","31 Buckingham Ave #3785","Cotham Ward","Bristol","BS6 5SR","01578-744350","01577-559109","tu_rivet@gmail.com","http://www.geminihatsaccessoriesinc.co.uk" -"Adelle","Schantini","Creative Photography Inc","162 Grayson St","Greenlands Ward","Lancashire","FY2 0TD","01624-595660","01938-262356","adelle_schantini@yahoo.com","http://www.creativephotographyinc.co.uk" -"Douglass","Fonnesbeck","Goodspeed, Paul E Esq","5 Webb St #8","Boothen and Oak Hill Ward","Stoke-on-Trent","ST4 1EB","01305-958705","01591-592334","douglass@fonnesbeck.co.uk","http://www.goodspeedpauleesq.co.uk" -"Evette","Mazierski","Consolidated Aluminum","8092 Firdale Rd","Stoneygate Ward","Leicester","LE5 5RE","01277-740331","01371-832134","emazierski@mazierski.co.uk","http://www.consolidatedaluminum.co.uk" -"Geraldo","Okoren","Guadalajara Bar & Grille","68 Carno St","City and Hunslet Ward","West Yorkshire","LS10 1SJ","01374-376226","01460-792423","gokoren@okoren.co.uk","http://www.guadalajarabargrille.co.uk" -"Clarinda","Pelayo","Tejas Loans","714 Moored St","Trelawnyd and Gwaenysgor Commu","Denbighshire","LL18 6DH","01902-887021","01824-104045","cpelayo@pelayo.co.uk","http://www.tejasloans.co.uk" -"Reuben","Mccorrison","Kyes Tv Channel 5","545 North John St","Cobham and Downside Ward","Surrey","KT11 2HT","01337-407282","01261-922803","reuben.mccorrison@hotmail.com","http://www.kyestvchannel.co.uk" -"Yen","Groody","Daily Advance","21 Pilgrim St","Leighton-Linslade","Bedfordshire","LU7 2NZ","01882-911812","01487-684191","ygroody@groody.co.uk","http://www.dailyadvance.co.uk" -"Tanja","Milne","Austin Periodical Services","9772 Teilo St","Hetton","Tyne and Wear","DH5 0PH","01584-615989","01646-529634","tanja.milne@yahoo.com","http://www.austinperiodicalservices.co.uk" -"Jerlene","Holtgrewe","Granite Construction Co","33 Fonthill Rd","Hodge Hill Ward","West Midlands","B36 8JE","01993-956208","01993-323238","jholtgrewe@yahoo.com","http://www.graniteconstructionco.co.uk" -"Almeta","Keehner","Hoolahan, Catherine G Esq","3 Ivyleigh","Loundsley Green Ward","Derbyshire","S40 4LW","01291-250423","01221-177854","akeehner@hotmail.com","http://www.hoolahancatherinegesq.co.uk" -"Wilda","Brigham","Morelli Hoskins Ford","501 Sandon Terrace #200","Little Clacton","Essex","CO16 9LZ","01950-109108","01300-561046","wilda@brigham.co.uk","http://www.morellihoskinsford.co.uk" -"Remedios","Arlinghaus","Miller, Martin M Esq","9 Duckenfield St","Aldbrough","E Riding of Yorkshire","HU11 4QA","01536-498792","01883-435283","remedios.arlinghaus@gmail.com","http://www.millermartinmesq.co.uk" -"Margret","Alcazar","Advantage Title & Escrow Inc","5466 Sedley St","Coatbridge South Ward","North Lanarkshire","ML5 4LJ","01626-590776","01633-731246","margret@alcazar.co.uk","http://www.advantagetitleescrowinc.co.uk" -"Denny","Casalenda","Ringo International Inc","75 Brewster St #453","Redlands Ward","Berkshire","RG1 5EX","01349-134533","01589-277770","dcasalenda@gmail.com","http://www.ringointernationalinc.co.uk" -"Carolynn","Atkison","Dorval Trading Co Ltd","7901 Beech St","St. Helier Ward","Greater London","SM4 5PY","01815-665993","01508-291713","carolynn.atkison@hotmail.com","http://www.dorvaltradingcoltd.co.uk" -"Amina","Goulbourne","Poag Grain Inc","684 Cotswold St","Victoria Ward","Greater London","E9 7NG","01536-114519","01830-969710","amina@yahoo.com","http://www.poaggraininc.co.uk" -"Janna","Przybyl","Southwest Ms Shopg Bag","5 April Rd #13","Wheatley Ward","South Yorkshire","DN1 2TU","01684-628072","01560-680129","jprzybyl@przybyl.co.uk","http://www.southwestmsshopgbag.co.uk" -"Emiko","Sayre","Scott Marlow Agency","8 Village St","Windlesham","Surrey","GU18 5YQ","01660-135336","01348-284404","emiko.sayre@yahoo.com","http://www.scottmarlowagency.co.uk" -"In","Muns","Nursefinders","7 Haddock St #34","Saint Annes on the Sea","Lancashire","FY8 3TF","01574-363346","01381-491881","in_muns@muns.co.uk","http://www.nursefinders.co.uk" -"Eleni","Vanscoik","Simpson, Fred B Esq","9 Mather St","Sutton Vesey Ward","West Midlands","B73 6HH","01208-373467","01628-638196","eleni_vanscoik@gmail.com","http://www.simpsonfredbesq.co.uk" -"Kandis","Alsbury","Fast Cash","70 Rose Vale","Reydon","Suffolk","IP18 6PE","01797-837270","01651-807856","kalsbury@hotmail.com","http://www.fastcash.co.uk" -"Kina","Saltman","Mitchell Silliman Co Inc","29 Oregon St","Ruddington","Nottinghamshire","NG11 6JT","01515-506025","01788-849591","kina_saltman@gmail.com","http://www.mitchellsillimancoinc.co.uk" -"Jacki","Sterback","Praver, David L Esq","15 East Albert Rd","Kingston Bagpuize with Southmo","Oxfordshire","OX13 5AW","01820-396117","01935-736077","jacki.sterback@gmail.com","http://www.praverdavidlesq.co.uk" -"Fallon","Kerfoot","Rotenstreich, H Andrew Esq","3186 Naylor St","Manor Castle Ward","South Yorkshire","S2 1HP","01538-649750","01505-472052","fallon.kerfoot@gmail.com","http://www.rotenstreichhandrewesq.co.uk" -"Precious","Brabble","Sigmacom Corporation","9 Herbert St #77","Shenley","Hertfordshire","WD7 9AQ","01687-288043","01800-154821","precious_brabble@brabble.co.uk","http://www.sigmacomcorporation.co.uk" -"Glory","Ona","Real Isle Properties","9830 Croxteth Rd","Pontefract North Ward","West Yorkshire","WF8 3YR","01469-868357","01535-699216","glory_ona@gmail.com","http://www.realisleproperties.co.uk" -"Tamesha","Tyburski","Liss, Amy Esq","1054 Gladys St","Bellshill Ward","North Lanarkshire","ML4 3EJ","01954-979729","01834-599647","tamesha.tyburski@gmail.com","http://www.lissamyesq.co.uk" -"Brande","Cutlip","Real Estate Appraisals Inc","921 Douro St #1520","Rhoose Community","Vale of Glamorgan","CF62 3HN","01947-472569","01502-230191","bcutlip@yahoo.com","http://www.realestateappraisalsinc.co.uk" -"Olene","Skubis","Luby, Joseph K Esq","180 Frodsham St","Grovehill Ward","Hertfordshire","HP2 7BD","01250-453315","01805-925115","olene_skubis@yahoo.com","http://www.lubyjosephkesq.co.uk" -"Carey","Marchetta","New River Tire Company Inc","7217 Edge Grove","Sharston Ward","Greater Manchester","M22 4ZB","01750-379103","01498-699971","cmarchetta@hotmail.com","http://www.newrivertirecompanyinc.co.uk" -"Launa","Torez","Farber, Mindy Esq","12 Gelling St","Trossachs and Teith Ward","Stirling","FK16 6DU","01670-547878","01919-422541","launa.torez@yahoo.com","http://www.farbermindyesq.co.uk" -"Dominga","Whitrock","Nohr, Katharine M Esq","763 Roscoe St","Lobley Hill and Bensham Ward","Tyne and Wear","NE11 0AN","01341-700830","01382-638017","dominga@whitrock.co.uk","http://www.nohrkatharinemesq.co.uk" -"Dwight","Belyea","Skuttle Mfg Co","419 St Andrew St","Tibberton","Hereford and Worcester","WR9 7NS","01822-404490","01498-287540","dbelyea@belyea.co.uk","http://www.skuttlemfgco.co.uk" -"Cornell","Mccrossin","Cheek, John D Esq","623 Cornhill","Stretton","Staffordshire","DE13 0DH","01608-748971","01279-418098","cornell.mccrossin@mccrossin.co.uk","http://www.cheekjohndesq.co.uk" -"Alverta","Topete","National Catholic Reporter","328 Havelock St #61","Addlestone Bourneside Ward","Surrey","KT15 2NL","01685-141932","01665-348077","alverta.topete@gmail.com","http://www.nationalcatholicreporter.co.uk" -"Felicia","Claybrooks","Strescon Industries Inc","1056 College St South","Chester-le-Street North and Ea","County Durham","DH2 2JZ","01722-395799","01451-992860","felicia@claybrooks.co.uk","http://www.stresconindustriesinc.co.uk" -"Carmen","Gillham","Norda, Beth Dorsey Esq","11 Denison St #7","Orford Ward","Cheshire","WA2 9QB","01692-491267","01417-973243","carmen@hotmail.com","http://www.nordabethdorseyesq.co.uk" -"Ashlee","Beyl","Indiana Electronics Corp","30 Daulby St","Brympton","Somerset","BA20 2EJ","01832-837946","01605-854121","ashlee.beyl@hotmail.com","http://www.indianaelectronicscorp.co.uk" -"Vannessa","Land","Port Delivery Systems","201 Bran St","Ashford Common Ward","Surrey","TW15 2AJ","01206-207771","01553-402712","vannessa.land@yahoo.com","http://www.portdeliverysystems.co.uk" -"Patti","Rempel","Meder, Randy F Cpa","1346 Vandyke St","Hove Park Ward","Brighton and Hove","BN3 6NS","01539-157435","01334-638031","patti@rempel.co.uk","http://www.mederrandyfcpa.co.uk" -"German","Meyerhoff","S M Copiers","883 Howe St","Clayton-le-Moors Ward","Lancashire","BB5 5TJ","01790-887225","01808-674829","german@meyerhoff.co.uk","http://www.smcopiers.co.uk" -"Anika","Marse","Milton Terry Associates","231 Wordsworth St","Harrow Weald Ward","Greater London","HA3 6TH","01942-654793","01654-746253","anika@marse.co.uk","http://www.miltonterryassociates.co.uk" -"Cristina","Marola","Pro Img Mktng & Pub Rel Inc","2449 Amberly St #6364","Temple Newsam Ward","West Yorkshire","LS15 0PQ","01264-145506","01538-230493","cmarola@gmail.com","http://www.proimgmktngpubrelinc.co.uk" -"Lemuel","Allis","Computer Security Cnslnts Inc","8430 Shadwell St","Great Barr with Yew Tree Ward","West Midlands","WS5 4SU","01580-252868","01704-416123","lemuel_allis@yahoo.com","http://www.computersecuritycnslntsinc.co.uk" -"Joaquin","Hysom","Sport Toyota","115 Lister Rd","Barnfield Ward","Lancashire","BB5 2EY","01616-548910","01475-223867","jhysom@gmail.com","http://www.sporttoyota.co.uk" -"Kerrie","Makuch","Kinkos Copies","7855 Sir Thomas St #7499","Calstock","Cornwall","PL17 8AR","01854-749084","01966-883088","kmakuch@gmail.com","http://www.kinkoscopies.co.uk" -"Alaine","Raterman","Putnam Co Inc","1 Milton St","Little Missenden","Buckinghamshire","HP16 0DH","01927-151413","01525-172423","alaine@hotmail.com","http://www.putnamcoinc.co.uk" -"Shannon","Kobayashi","Hungs","1111 Nesfield St","Tonge with the Haulgh Ward","Greater Manchester","BL2 2SU","01620-435994","01436-122588","shannon@yahoo.com","http://www.hungs.co.uk" -"Corinne","Holman","Herculite Mason Supply Inc","1831 Richards St #8","Berkhamsted","Hertfordshire","HP4 2AF","01933-753592","01857-675359","corinne@holman.co.uk","http://www.herculitemasonsupplyinc.co.uk" -"Heidy","Hallford","New England Die Co Inc","8054 Low Hill","Prestbury","Gloucestershire","GL52 3BY","01958-748582","01753-105955","hhallford@hotmail.com","http://www.newenglanddiecoinc.co.uk" -"Marylyn","Shonerd","Barker Electronics","7252 Dansie St","East Finchley Ward","Greater London","N2 9JL","01721-694690","01449-123164","marylyn_shonerd@yahoo.com","http://www.barkerelectronics.co.uk" -"Maryln","Mortenson","Mullins, Glen Esq","76 Paulton St","Lancaster Gate Ward","Greater London","W2 3JT","01618-628525","01421-574935","maryln@gmail.com","http://www.mullinsglenesq.co.uk" -"Pearlie","Flori","Marine Safety International","4 Cochrane St","Iwade","Kent","ME9 8UJ","01235-935599","01583-844244","pearlie_flori@gmail.com","http://www.marinesafetyinternational.co.uk" -"Nina","Yaklin","Ramm Metals Inc","5679 Gloucester Pl","Calton Ward","Dunbartonshire","G40 4BH","01434-621318","01370-171283","nyaklin@hotmail.com","http://www.rammmetalsinc.co.uk" -"Vivienne","Torrain","Finley Colmer & Co","45 Ledward St","Wilsden","West Yorkshire","BD15 0NJ","01782-100832","01377-242360","vivienne@hotmail.com","http://www.finleycolmerco.co.uk" -"Jacob","Kippel","Acc Automation Inc","4 Monmouth Rd","Llwyn-y-Pia Community","Rhondda Cynon Taff","CF40 2JJ","01550-463222","01567-215689","jacob.kippel@yahoo.com","http://www.accautomationinc.co.uk" -"Tula","Nahmias","Anstoetter, Mark D Esq","64 Croyland St","Clackmannanshire South Ward","Clackmannanshire","FK10 2LA","01846-815511","01320-223056","tnahmias@nahmias.co.uk","http://www.anstoettermarkdesq.co.uk" -"Berry","Scandalis","American Fine Foods Inc","4 Vivian St","Corporation Park Ward","Lancashire","BB2 6LB","01379-603039","01375-150068","berry.scandalis@gmail.com","http://www.americanfinefoodsinc.co.uk" -"Kaycee","Carsten","Dohn Law Offices Inc Ps","35 Dublin St","Cirencester","Gloucestershire","GL7 2EY","01270-893129","01837-463418","kaycee.carsten@gmail.com","http://www.dohnlawofficesincps.co.uk" -"Melvin","Setter","Rex Internatl","87 Pickup St","Franche Ward","Hereford and Worcester","DY10 2ZQ","01401-151569","01938-566719","melvin_setter@setter.co.uk","http://www.rexinternatl.co.uk" -"Brianne","Matsumura","Bender & Associates","7 Cottenham St","Mossend and Holytown Ward","North Lanarkshire","ML1 4TD","01519-417660","01979-425319","brianne@matsumura.co.uk","http://www.benderassociates.co.uk" -"Eugene","Pelzer","Fashion Corner Inc","622 Holmes St","Heath Town Ward","Staffordshire","WV10 0AW","01839-920108","01413-591144","eugene_pelzer@gmail.com","http://www.fashioncornerinc.co.uk" -"Margery","Rohrs","C G Mccullough Insurance Agcy","40 Peters Lane","Long Preston","North Yorkshire","BD23 4NF","01634-340524","01933-273913","margery@hotmail.com","http://www.cgmcculloughinsuranceagcy.co.uk" -"Noel","Sarra","Orkin Exterminating Co Inc","2 Cockburn St","Seaham","County Durham","SR7 0AR","01868-736780","01874-679913","nsarra@gmail.com","http://www.orkinexterminatingcoinc.co.uk" -"Beula","Lingo","Bauer Coatings","65 Oban Rd","St. Austell","Cornwall","PL25 5AH","01322-144392","01525-977834","beula_lingo@yahoo.com","http://www.bauercoatings.co.uk" -"Sheridan","Mckenize","Word & Image Workshop Inc","31 Davy St","Aveton Gifford","Devon","TQ7 4NF","01512-765064","01776-874349","sheridan.mckenize@hotmail.com","http://www.wordimageworkshopinc.co.uk" -"Dino","Meinert","Container Decorating Inc","80 Ellerslie Rd","Trotton with Chithurst","West Sussex","GU31 5JN","01802-634391","01636-635483","dino.meinert@yahoo.com","http://www.containerdecoratinginc.co.uk" -"Rebbeca","Rubinstein","Cullen, Jack J Esq","4 Sherwood St","Speke-Garston Ward","Merseyside","L24 6SH","01708-724957","01862-469721","rebbeca_rubinstein@hotmail.com","http://www.cullenjackjesq.co.uk" -"Celia","Reisling","Bridger Valley General Store","8362 Whithorn St","Leatherhead South Ward","Surrey","KT22 8AP","01309-159593","01299-509105","celia.reisling@hotmail.com","http://www.bridgervalleygeneralstore.co.uk" -"Stefania","Weatherwax","Robert Vance Ltd","25 Dale St #2","Kirkintilloch East and Twechar","East Dunbartonshire","G66 3LX","01698-705920","01879-295373","sweatherwax@yahoo.com","http://www.robertvanceltd.co.uk" -"Leah","Luchterhand","Safeguard Chemical Corp","68 Scotland Place","Loughborough Hastings Ward","Leicestershire","LE11 2NX","01777-851028","01615-475126","leah@hotmail.com","http://www.safeguardchemicalcorp.co.uk" -"Billy","Selma","Taylor Inn","338 Alfonso Rd","Alphington Ward","Devon","EX2 8LL","01270-345115","01907-239135","billy.selma@yahoo.com","http://www.taylorinn.co.uk" -"Doug","Lucore","Barr, Albert S Iii","65 Rankin St","Woodford cum Membris","Northamptonshire","NN11 3QR","01943-467489","01744-123819","dlucore@yahoo.com","http://www.barralbertsiii.co.uk" -"Veronica","Mcclodden","Las Vegas Art Museum","8 Cookson St","Temple Newsam Ward","West Yorkshire","LS15 9EP","01456-906658","01238-284853","veronica@hotmail.com","http://www.lasvegasartmuseum.co.uk" -"Laquanda","Kho","Bayou Welding Works Inc","7 Lockhart St","Billesley Ward","West Midlands","B14 5HS","01725-370369","01271-465942","laquanda.kho@yahoo.com","http://www.bayouweldingworksinc.co.uk" -"Mohammad","Poitra","Kenyon, William R Esq","363 Vandries St","Milton Ward","Essex","SS0 7TF","01705-240007","01216-234330","mpoitra@yahoo.com","http://www.kenyonwilliamresq.co.uk" -"Mozell","Westad","Fox Vision Center","8 Gertrude St","Mossley","Greater Manchester","OL5 0QJ","01348-989703","01766-783716","mozell.westad@westad.co.uk","http://www.foxvisioncenter.co.uk" -"Bronwyn","Bridgford","Edgemere Finance Company","826 Rumney Rd West #7","Dingwall and Seaforth Ward","Highland","IV15 9SD","01407-312329","01917-604110","bronwyn.bridgford@yahoo.com","http://www.edgemerefinancecompany.co.uk" -"Jeff","Brossoit","Jeh Construction Co","954 Madelaine St","Central Ward","Wiltshire","SN5 8WG","01593-501965","01383-683074","jeff.brossoit@yahoo.com","http://www.jehconstructionco.co.uk" -"Shantay","Hopman","Smith & Dekay Ps","7602 Brook St #86","Broomhill Ward","Nottinghamshire","NG18 9SZ","01516-850881","01252-239714","shopman@hopman.co.uk","http://www.smithdekayps.co.uk" -"Chantay","Jirsa","Posey Company","966 Bower St","Frimley Green Ward","Surrey","GU16 9BB","01721-910475","01324-899303","chantay_jirsa@jirsa.co.uk","http://www.poseycompany.co.uk" -"Keneth","Stpierrie","Mueller Repro Blue Printg","2 Seacombe St","Littleborough Lakeside Ward","Greater Manchester","OL15 0JP","01919-731224","01325-412836","keneth_stpierrie@hotmail.com","http://www.muellerreproblueprintg.co.uk" -"Alton","Rampy","Reliable Metalcraft Inc","83 Battenburg St","Girvan and South Carrick Ward","South Ayrshire","KA26 0DY","01767-568989","01506-160673","alton_rampy@gmail.com","http://www.reliablemetalcraftinc.co.uk" -"Patrick","Teisberg","Dworkin, Michael L","2 Whitefield Rd","Leigh-on-Sea","Essex","SS9 2DJ","01842-131065","01217-730044","patrick@hotmail.com","http://www.dworkinmichaell.co.uk" -"Theron","Merriam","Percival, Mark R Esq","869 Luke St","Wonersh","Surrey","GU5 0QU","01655-809574","01859-311417","theron@merriam.co.uk","http://www.percivalmarkresq.co.uk" -"Pilar","Seelig","Demer Normann Smith Ltd","4 Ogwen St","Chichester","West Sussex","PO19 9PF","01356-866584","01814-760513","pilar@yahoo.com","http://www.demernormannsmithltd.co.uk" -"Lashunda","Argiro","Kluza Associates","205 Forge St #4021","Stainburn","North Yorkshire","LS21 2LS","01422-728149","01653-381714","lashunda@yahoo.com","http://www.kluzaassociates.co.uk" -"Verda","Chiphe","Ardrox","999 Upper Harrington St #61","Earlestown Ward","Merseyside","WA12 9WX","01754-426672","01349-935774","vchiphe@chiphe.co.uk","http://www.ardrox.co.uk" -"Ashley","Tropp","Everythings A Dollar","3 Greenleaf St #5644","Blyth","Northumberland","NE24 2RY","01951-324927","01602-307715","ashley.tropp@gmail.com","http://www.everythingsadollar.co.uk" -"Vesta","Havely","Tool Service Company Inc","493 Wellington Rd","Upper Rawcliffe-with-Tarnacre","Lancashire","PR3 0UH","01772-461124","01571-126025","vhavely@havely.co.uk","http://www.toolservicecompanyinc.co.uk" -"Emogene","Ritthaler","Mcdonald Service Station","1257 Stone St","Northwood Ward","Greater London","HA6 1AN","01681-212638","01638-969550","emogene.ritthaler@yahoo.com","http://www.mcdonaldservicestation.co.uk" -"Shayne","Mordhorst","Don Allen & Associates Pa","1 Bousfield St","Shrewsbury","Shropshire","SY3 8NG","01286-279043","01450-144052","smordhorst@mordhorst.co.uk","http://www.donallenassociatespa.co.uk" -"Franchesca","Charry","Cappello, A Barry Esq","59 Westminster Rd","Empress Ward","Hampshire","GU14 8AY","01748-827176","01707-624969","franchesca@gmail.com","http://www.cappelloabarryesq.co.uk" -"Elmira","Ringlein","Hyland, Richard S Esq","143 Clark St #802","Halliwell Ward","Greater Manchester","BL1 2PS","01934-672498","01347-140077","eringlein@gmail.com","http://www.hylandrichardsesq.co.uk" -"Destiny","Madlem","Diesel Recon","421 Monument Place #44","Hartburn Ward","Stockton-on-Tees","TS21 1BA","01421-624966","01819-393510","destiny@yahoo.com","http://www.dieselrecon.co.uk" -"Gaston","Szumski","Red Giant Foods Inc","8 Gullett St","West Garioch Ward","Aberdeenshire","AB51 0HT","01651-911453","01923-233578","gaston.szumski@hotmail.com","http://www.redgiantfoodsinc.co.uk" -"Ronna","Mittler","Bethesda Gazette","2767 Pembroke St #979","Roundway","Wiltshire","SN10 3FQ","01214-651738","01794-156776","ronna_mittler@hotmail.com","http://www.bethesdagazette.co.uk" -"Angelica","Poisso","Chemical Consultants","47 Orry St #8243","Castleford Central and Glassho","West Yorkshire","WF10 4DW","01472-449327","01758-700994","apoisso@gmail.com","http://www.chemicalconsultants.co.uk" -"Casie","Arzilli","Wenatchee Valley Fed Crdt Un","5 Noon St","Melton Dorian Ward","Leicestershire","LE13 0RG","01289-195823","01372-334070","casie@gmail.com","http://www.wenatcheevalleyfedcrdtun.co.uk" -"Magdalene","Cocherell","Southern Interiors Inc","510 Belvidere Rd","Patching Hall Ward","Essex","CM1 4BY","01546-162965","01420-141828","magdalene_cocherell@yahoo.com","http://www.southerninteriorsinc.co.uk" -"Erasmo","Gath","Pan Optx","860 Rokeby St","Sunningdale","Berkshire","SL5 0AZ","01445-796544","01650-307192","egath@hotmail.com","http://www.panoptx.co.uk" -"Rosalia","Ziv","Arias, Michele Ann Md","9362 Solomon St #97","Castle Ward","Northamptonshire","NN8 4DR","01414-349699","01552-437406","rosalia.ziv@ziv.co.uk","http://www.ariasmicheleannmd.co.uk" -"Lyda","Cronholm","Print Shop","916 Strand St #4753","Leek","Staffordshire","ST13 5AW","01672-538356","01347-674237","lyda.cronholm@cronholm.co.uk","http://www.printshop.co.uk" -"Lisandra","Stueber","Wstu 1450 Am Radio Station","5 Bentinck St","Churchill Ward","Greater London","SW1V 3EW","01831-806301","01876-118051","lisandra_stueber@hotmail.com","http://www.wstuamradiostation.co.uk" -"Sabina","Prok","T J Ward & Associates Inc","954 Birchdale Rd","Aspley Ward","Nottinghamshire","NG8 5PY","01932-112259","01304-274937","sabina.prok@prok.co.uk","http://www.tjwardassociatesinc.co.uk" -"Elenore","Gomoran","Bell Service Systems Inc","7 Great Orford St","Callington","Cornwall","PL17 7DT","01470-383444","01863-322796","elenore_gomoran@yahoo.com","http://www.bellservicesystemsinc.co.uk" -"Brynn","Capra","Magic Valley Irrigation Supply","488 Mulberry St","Ravenshead","Nottinghamshire","NG15 9AE","01963-124789","01702-314016","brynn_capra@yahoo.com","http://www.magicvalleyirrigationsupply.co.uk" -"Leeann","Flory","Fleetwood Area School District","1761 Johnstone St","Church Langley Ward","Essex","CM17 9TZ","01906-807997","01997-771926","leeann@gmail.com","http://www.fleetwoodareaschooldistrict.co.uk" -"Janet","Steimer","Alaska State Troopers","8899 Mere Lane","Midlothian West Ward","City of Edinburgh","EH20 9SJ","01506-627051","01698-817116","janet_steimer@hotmail.com","http://www.alaskastatetroopers.co.uk" -"Lewis","Mellom","Lasting Impressions","6 St Hilda St","Central Ward","South Yorkshire","S1 1EQ","01954-643657","01511-606180","lewis@yahoo.com","http://www.lastingimpressions.co.uk" -"Jestine","Driscol","Glass Express","2725 Underley St #6452","Grangemouth Ward","Falkirk","FK3 8UB","01257-928278","01811-872937","jestine_driscol@driscol.co.uk","http://www.glassexpress.co.uk" -"Tatum","Parks","Quantum Consultants Inc","6061 Back Nile St","Rhos-on-Sea Community","Conwy","LL28 4NL","01567-457572","01818-141397","tparks@parks.co.uk","http://www.quantumconsultantsinc.co.uk" -"Kayleigh","Bendle","J A Associates","9735 Linton St #2284","Kingswells","Aberdeenshire","AB16 7RW","01312-772111","01355-733333","kayleigh.bendle@bendle.co.uk","http://www.jaassociates.co.uk" -"Lili","Imondi","Ide Haigney & Radio","9 Herbert St","Blyth","Northumberland","NE24 3DQ","01600-986258","01934-479439","lili_imondi@hotmail.com","http://www.idehaigneyradio.co.uk" -"Sunshine","Senechal","Dale, George F Esq","40 Cairo St","Warwick","Warwickshire","CV34 5LQ","01416-686933","01839-700945","sunshine.senechal@hotmail.com","http://www.dalegeorgefesq.co.uk" -"Remona","Heier","M A C Insurance Agency","7199 St Clare Rd","Inverclyde South Ward","Inverclyde","PA16 7BT","01718-274321","01967-508345","remona.heier@heier.co.uk","http://www.macinsuranceagency.co.uk" -"Gail","Carris","Audrey M Borland Studios","6 Conyers St #3346","Hamilton South Ward","South Lanarkshire","ML3 7TE","01292-196869","01547-190531","gcarris@hotmail.com","http://www.audreymborlandstudios.co.uk" -"Dong","Oropeza","Mayo, Timothy L Esq","8657 Cedar St #2","Kinross-shire Ward","Perth and Kinross","KY13 8EQ","01573-788734","01955-221720","doropeza@hotmail.com","http://www.mayotimothylesq.co.uk" -"Larue","Ocacio","Hollett, Byron P Esq","8 Jacob St","Daybrook Ward","Nottinghamshire","NG5 6JB","01577-443040","01654-933782","larue@yahoo.com","http://www.hollettbyronpesq.co.uk" -"Goldie","Sonkens","Veri Nu Products Corp","6174 Botanic Pl","Ravensthorpe Ward","Cambridgeshire","PE3 7BJ","01867-720033","01523-949034","gsonkens@sonkens.co.uk","http://www.verinuproductscorp.co.uk" -"Shelia","Plues","Schen, Sanford E Md","9730 Dunnet St","Silloth-on-Solway","Cumbria","CA7 4RB","01818-260618","01574-927461","shelia@gmail.com","http://www.schensanfordemd.co.uk" -"Narcisa","Araiza","Danka Business Systems","8783 High St","Milton","Cambridgeshire","CB24 6ZR","01724-644767","01689-339758","naraiza@hotmail.com","http://www.dankabusinesssystems.co.uk" -"Evelynn","Frede","Hasselberg, Michael R Esq","8 Breckfield Road North","Seaham","County Durham","SR7 0AZ","01289-621482","01571-460710","evelynn.frede@gmail.com","http://www.hasselbergmichaelresq.co.uk" -"Arlean","Calaf","Ed Miniat Inc","82 Waterhouse Lane","Llantrisant Community","Rhondda Cynon Taff","CF72 8LB","01448-395723","01407-700390","acalaf@yahoo.com","http://www.edminiatinc.co.uk" -"Tamra","Yu","Davis Commercial Contracting","2 Park Rd Walton #4338","Lansdown Ward","Gloucestershire","GL50 2LF","01891-816938","01635-523740","tamra.yu@hotmail.com","http://www.daviscommercialcontracting.co.uk" -"Dusti","Maricle","Garton, Jeffrey P Esq","59 Charles St","Victoria Ward","Kent","TN23 4GF","01642-202972","01806-219415","dusti@gmail.com","http://www.gartonjeffreypesq.co.uk" -"Aracelis","Donham","Sm Toth Baldridge & Van Belkum","593 Kinglake St","Fowlmere","Cambridgeshire","SG8 7TP","01924-111018","01420-311467","aracelis.donham@hotmail.com","http://www.smtothbaldridgevanbelkum.co.uk" -"Filiberto","Fredrikson","Westoaks Glass","404 Aigburth St #4246","Audley Ward","Lancashire","BB1 2AA","01559-323337","01727-322116","filiberto_fredrikson@gmail.com","http://www.westoaksglass.co.uk" -"Leana","Stackpole","Direct Tools & Fasteners","690 Copenhagen Rd","Warham","Norfolk","NR23 1NJ","01248-325090","01386-257445","lstackpole@yahoo.com","http://www.directtoolsfasteners.co.uk" -"Man","Homer","Applied Robotic Tech Inc","7 Canton St","Mildmay Ward","Greater London","N1 4RF","01590-219449","01855-550515","man.homer@gmail.com","http://www.appliedrobotictechinc.co.uk" -"Lennie","Asley","Air Tech Streamlining","79 Pine St","Radcliffe West Ward","Greater Manchester","M26 1GH","01585-487560","01802-349902","lennie_asley@gmail.com","http://www.airtechstreamlining.co.uk" -"Arletta","Naomi","E Zaks & Co","9 Lodwick St","City and Hunslet Ward","West Yorkshire","LS1 8HZ","01255-805722","01518-773815","arletta_naomi@naomi.co.uk","http://www.ezaksco.co.uk" -"Chana","Perera","Olden Camera & Lens Co Inc","9 Ogwen St","Murdostoun Ward","North Lanarkshire","ML2 8LW","01477-796750","01858-335054","chana.perera@hotmail.com","http://www.oldencameralenscoinc.co.uk" -"Nell","Pao","Madaus, Gerald F Jr","1730 Seymour St","Eastbrook Ward","Brighton and Hove","BN41 1QH","01308-582144","01773-576318","npao@gmail.com","http://www.madausgeraldfjr.co.uk" -"Antonio","Heilig","Radisson Suite Hotel","35 Elton St #3","Ipplepen","Devon","TQ12 5LL","01324-171614","01442-946357","antonio.heilig@gmail.com","http://www.radissonsuitehotel.co.uk" -"Gerald","Kernagis","Digital Solutions Inc","8 Hinton St #8241","Stowting","Kent","TN25 6BQ","01504-620944","01685-678054","gerald_kernagis@kernagis.co.uk","http://www.digitalsolutionsinc.co.uk" -"Sueann","Mandril","El Hispanic News","751 Stamford St","Werrington","Staffordshire","ST9 0AH","01886-226100","01717-449960","smandril@hotmail.com","http://www.elhispanicnews.co.uk" -"Alayna","Hoyal","South Bldg Code Congres","70 Royal St","Banchory and Mid Deeside Ward","Aberdeenshire","AB31 4AH","01964-720542","01983-132813","alayna_hoyal@hotmail.com","http://www.southbldgcodecongres.co.uk" -"Talia","Marthe","Kenney Mfg Co","5 Minerva St","Westbury","Wiltshire","BA13 3QR","01711-170147","01607-480159","talia.marthe@gmail.com","http://www.kenneymfgco.co.uk" -"Pansy","Kopan","Oncor Inc","1 Northampton St","Madeley","Shropshire","TF7 4GA","01674-842315","01627-571972","pansy@kopan.co.uk","http://www.oncorinc.co.uk" -"Royce","Saik","Best Western Caprock Inn","2 Maple Grove","Kincorth","Aberdeenshire","AB12 5EJ","01972-770618","01431-812225","royce@hotmail.com","http://www.bestwesterncaprockinn.co.uk" -"Cherelle","Sorrel","Wiltgen, Nancy A Esq","794 Hook St","Benwell and Scotswood Ward","Tyne and Wear","NE15 7JA","01753-327307","01212-458253","cherelle_sorrel@gmail.com","http://www.wiltgennancyaesq.co.uk" -"Dudley","Dibartolo","Mcknight, H Vincent Jr","91 Ludlow St","Woodhouse Ward","Greater London","N12 0EF","01997-409950","01722-935404","dudley_dibartolo@yahoo.com","http://www.mcknighthvincentjr.co.uk" -"Nettie","Aldaco","Miller Searl & Fitch","51 Freehold St #224","Wheatley Ward","Yorkshire, South","DN2 4PP","01388-974910","01681-983353","nettie.aldaco@yahoo.com","http://www.millersearlfitch.co.uk" -"Carline","Bulcao","Brenner, Steven G Esq","7 Hey Green Rd #4","Rothwell Ward","West Yorkshire","LS26 8XE","01885-707109","01381-330004","carline@yahoo.com","http://www.brennerstevengesq.co.uk" -"Shanda","Lunger","Western Packing Co","2476 Marsh St","Markhouse Ward","Greater London","E17 8NP","01329-303595","01620-180931","slunger@gmail.com","http://www.westernpackingco.co.uk" -"Emilio","Withers","Ardent Studios Inc","597 Threlfall St #72","Stokenham","Devon","TQ7 2HS","01523-697097","01890-447894","emilio_withers@yahoo.com","http://www.ardentstudiosinc.co.uk" -"Lovetta","Study","Borton Petrini & Conron","1 Jervis St","High Barnet Ward","Greater London","EN5 4LH","01593-438141","01424-249976","lovetta@study.co.uk","http://www.bortonpetriniconron.co.uk" -"Felice","Gone","A F Supl Co Div Automtc Firing","7602 Grantham St","Hexham","Northumberland","NE46 1QQ","01691-816025","01888-857515","felice.gone@hotmail.com","http://www.afsuplcodivautomtcfiring.co.uk" -"Stefania","Leadbeater","Murray Whisnant Architects","10 Carisbrooke St","Shorne","Kent","DA12 3ED","01706-546951","01356-906646","stefania_leadbeater@hotmail.com","http://www.murraywhisnantarchitects.co.uk" -"Margarita","Orloski","1893 Shops","78 Pine Grove","Stannington Ward","South Yorkshire","S6 5HE","01215-422453","01958-497953","margarita_orloski@yahoo.com","http://www.shops.co.uk" -"Paul","Farrin","Dering, James E Esq","7 Varthen St","Town Ward","Kent","DA1 2DL","01407-775572","01879-963638","paul.farrin@farrin.co.uk","http://www.deringjameseesq.co.uk" -"Anglea","Tritten","Waltons Carson Gardens","8 Thomaston St","Astley Bridge Ward","Greater Manchester","BL1 8RG","01818-292728","01436-350784","anglea_tritten@hotmail.com","http://www.waltonscarsongardens.co.uk" -"Ona","Bowhall","Cohen And Fromm Pc","527 Harding St","Market Rasen","Lincolnshire","LN8 3AD","01467-554624","01984-207421","ona@yahoo.com","http://www.cohenandfrommpc.co.uk" -"Germaine","Hascall","Prg Company","1616 Menzies St #453","Tadworth and Walton Ward","Surrey","KT20 7PA","01366-388506","01957-962781","ghascall@hotmail.com","http://www.prgcompany.co.uk" -"Vicky","Schellenberge","Medlab Environmental Test Inc","3922 Leda St","Moreton Morrell","Warwickshire","CV35 9BX","01625-805645","01602-772009","vschellenberge@hotmail.com","http://www.medlabenvironmentaltestinc.co.uk" -"Carolann","Gross","Leem Company Inc","6352 Grosvenor St","Wombourne","Staffordshire","WV5 0LP","01470-609953","01672-859754","carolann@gross.co.uk","http://www.leemcompanyinc.co.uk" -"Rusty","Adelsperger","Clarke, James H Esq","4313 Princes Park Terrace","Launceston","Cornwall","PL15 9QN","01467-172590","01338-121225","rusty.adelsperger@yahoo.com","http://www.clarkejameshesq.co.uk" -"Cassandra","Bludworth","Lykes Bros Inc","9 Sydney Place","Henllan Community","Conwy","LL16 5AF","01903-614855","01583-648675","cbludworth@yahoo.com","http://www.lykesbrosinc.co.uk" -"Teresita","Gesell","Mason Insurance Agency Inc","2015 Suburban Rd","Springfield Ward","Greater London","N16 6TD","01914-501391","01372-236506","teresita_gesell@hotmail.com","http://www.masoninsuranceagencyinc.co.uk" -"Evangelina","Gius","J T Painting Corp","769 Euston St","Glastonbury","Somerset","BA6 8EY","01563-997671","01377-310696","evangelina.gius@yahoo.com","http://www.jtpaintingcorp.co.uk" -"Marlon","Tromblay","Solomon Metals Inc","46 Stevenson St","West End Ward","Dundee City","DD1 5EF","01919-394681","01869-607955","mtromblay@yahoo.com","http://www.solomonmetalsinc.co.uk" -"Quiana","Scarsella","Looking Good","1400 Ash St","Thorpe Hamlet Ward","Norfolk","NR1 4HS","01446-936944","01492-687388","quiana_scarsella@hotmail.com","http://www.lookinggood.co.uk" -"Viki","Humeniuk","Guldstrand Engineering Inc","8822 Trafalgar St","Yalding","Kent","ME18 6JE","01721-747819","01381-985978","vhumeniuk@gmail.com","http://www.guldstrandengineeringinc.co.uk" -"Domitila","Weissmann","Ciocia, James A Esq","28 Berwick St","Moordown Ward","Bournemouth","BH9 1TT","01606-833878","01928-189722","domitila@gmail.com","http://www.ciociajamesaesq.co.uk" -"Ivan","Aronov","Center For Pediatrics","94 Regent St","Over Kellet","Lancashire","LA6 1DB","01478-392232","01410-877250","ivan@gmail.com","http://www.centerforpediatrics.co.uk" -"Anabel","Baldock","William A Geppert True Value","30 Marine Parade #1","Staina Ward","Lancashire","FY5 4FN","01994-675650","01845-742562","anabel_baldock@hotmail.com","http://www.williamagepperttruevalue.co.uk" -"Carlton","Blyler","Hardware Specialty Co Inc","8 Pim Hill St","Portobello","City of Edinburgh","EH15 2HW","01437-681317","01604-200932","carlton@blyler.co.uk","http://www.hardwarespecialtycoinc.co.uk" -"Rashida","Vera","Creative Consultants","8451 Bengel St","Brixham","Devon","TQ5 9JW","01286-317691","01913-489634","rashida@hotmail.com","http://www.creativeconsultants.co.uk" -"Sherron","Knodel","Fhk Corp","159 Carlton St","Windle Ward","Merseyside","WA10 6QG","01481-744296","01222-556548","sherron@knodel.co.uk","http://www.fhkcorp.co.uk" -"Cora","Mossing","Regis Brd Pro Engrs & Land","38 Raffles St","Newmarket","Cambridgeshire","CB8 8QE","01285-381062","01699-194090","cora@yahoo.com","http://www.regisbrdproengrsland.co.uk" -"Altha","Tischner","Male Power Ltd","650 Goring St","Rainham South Ward","Kent","ME8 9PN","01373-594236","01698-785700","altha@hotmail.com","http://www.malepowerltd.co.uk" -"Dortha","Yaccarino","Atc Power Systems","6 Chestnut St","Gwersyllt Community","Wrexham","LL11 4RJ","01528-240870","01254-458143","dortha@hotmail.com","http://www.atcpowersystems.co.uk" -"Diego","Augle","Farmers Electric Co Op Inc","4 Peover St","Walcot Ward","Bath Avon","BA1 6EF","01275-397587","01933-666689","diego.augle@gmail.com","http://www.farmerselectriccoopinc.co.uk" -"Peggy","Khov","Goldberg, Stephen M Esq","328 Pallas St","Longford Ward","Greater Manchester","M32 8LJ","01619-237602","01648-417310","peggy.khov@gmail.com","http://www.goldbergstephenmesq.co.uk" -"Walton","Yuki","Best Wstrn Host Mtr Htl Palm","9 Waltham Rd","Yealmpton","Devon","PL8 2NS","01872-808403","01885-290666","wyuki@gmail.com","http://www.bestwstrnhostmtrhtlpalm.co.uk" -"Vallie","Yafaie","Micro Lan","352 Strathmore Rd","Shiphay-with-the-Willows Ward","Devon","TQ2 7JB","01251-120872","01630-603260","vyafaie@hotmail.com","http://www.microlan.co.uk" -"Tony","Diazdeleon","Dilling Harris Inc","529 Llanrwst St","Southam","Gloucestershire","GL52 8TW","01765-102036","01877-593275","tony@gmail.com","http://www.dillingharrisinc.co.uk" -"Val","Villot","Horizon Air Magazine","1980 Tynemouth St","Almond Ward","West Lothian","EH52 5PY","01375-870188","01602-987840","val@yahoo.com","http://www.horizonairmagazine.co.uk" -"Mel","Picciuto","Avante Limited","8598 Rumney Rd","Hylands Ward","Essex","RM11 1QL","01885-270480","01268-443299","mel.picciuto@gmail.com","http://www.avantelimited.co.uk" -"Isabella","Piatkowski","Miller, William E Iii","9283 Ruth St #81","Dormers Wells Ward","Greater London","UB1 2FH","01979-186995","01998-980054","isabella_piatkowski@piatkowski.co.uk","http://www.millerwilliameiii.co.uk" -"Erasmo","Rhea","Martin Morrissey","5544 Sutherland St","Mortehoe","Devon","EX34 7DQ","01507-386397","01899-316385","erasmo_rhea@hotmail.com","http://www.martinmorrissey.co.uk" -"Ivory","Lohrenz","Auto Body Color","9 Jackson St","Parr Ward","Merseyside","WA9 3QW","01876-642683","01651-132519","ivory@hotmail.com","http://www.autobodycolor.co.uk" -"Nikita","Walka","Fred, Anthony Esq","3612 Bixteth St","Hucknall North Ward","Nottinghamshire","NG15 8DD","01282-123434","01724-455145","nwalka@hotmail.com","http://www.fredanthonyesq.co.uk" -"Aleta","Ligons","Advantage Bookkeeping","4545 Victoria Rd","Kilbirnie and Beith Ward","North Ayrshire","KA15 1AT","01952-535977","01715-637895","aleta_ligons@hotmail.com","http://www.advantagebookkeeping.co.uk" -"Owen","Jentzen","Capital Fasteners Inc","5 Hampden St","Liscard Ward","Merseyside","CH45 4RN","01467-142439","01917-137038","owen_jentzen@jentzen.co.uk","http://www.capitalfastenersinc.co.uk" -"Pauline","Fling","Cumberland Vacuum Products","6452 Pilgrim St #5","Seven Sisters Ward","Greater London","N15 6TH","01990-476494","01458-113457","pfling@fling.co.uk","http://www.cumberlandvacuumproducts.co.uk" -"Tijuana","Machalek","Schwartz, Thomas E Esq","1149 Highfield Rd #996","Fareham South Ward","Hampshire","PO14 9JJ","01242-532395","01336-686264","tijuana.machalek@gmail.com","http://www.schwartzthomaseesq.co.uk" -"Ahmad","Alsaqri","Alliance Construction Co Inc","21 Pickwick St","Sutton cum Duckmanton","Derbyshire","S44 5DS","01567-555570","01852-550588","ahmad.alsaqri@yahoo.com","http://www.allianceconstructioncoinc.co.uk" -"Jamika","Conoly","Keller, Raymond C","19 Soho St","Whitley Ward","Berkshire","RG1 9XH","01726-595316","01597-168997","jamika_conoly@conoly.co.uk","http://www.kellerraymondc.co.uk" -"Derrick","Dolloff","Proto Tek Manufacturing","236 Blantyre Rd","Everton Ward","Merseyside","L6 2EN","01982-734773","01619-554437","derrick_dolloff@gmail.com","http://www.prototekmanufacturing.co.uk" -"Jacquelyne","Reibman","Great Clips For Hair","70 Lilly Rd","Shirley Ward","Greater London","CR0 7PT","01846-581451","01850-754504","jacquelyne_reibman@yahoo.com","http://www.greatclipsforhair.co.uk" -"Zachary","Freeburger","Country Kitchen","58 Gloucester Rd","Holbrook","Derbyshire","DE56 0TX","01888-641397","01240-433924","zachary.freeburger@freeburger.co.uk","http://www.countrykitchen.co.uk" -"Sophia","Gaucher","T C E Systems Inc","88 Upper Harrington St","North East Ward","North Lanarkshire","G69 8EL","01504-539114","01254-919378","sophia.gaucher@hotmail.com","http://www.tcesystemsinc.co.uk" -"Isabelle","Kono","Rock Springs Petroleum Equip","4920 Fazakerley Rd","Plymstock Dunstone Ward","Devon","PL9 8RD","01552-682601","01953-816728","isabelle.kono@yahoo.com","http://www.rockspringspetroleumequip.co.uk" -"Ronnie","Brigman","Howard Johnson","6 Morley St","Batchwood Ward","Hertfordshire","AL3 5JN","01943-754681","01972-686199","ronnie@brigman.co.uk","http://www.howardjohnson.co.uk" -"Krystina","Schlabaugh","Harris Oldsmobile Inc","7316 Friar St","Salvington Ward","West Sussex","BN13 3FL","01441-846477","01332-799979","kschlabaugh@schlabaugh.co.uk","http://www.harrisoldsmobileinc.co.uk" -"Rosita","Ausdemore","Jurdem, Scott Esq","8 Heathfield St #657","Hailsham","East Sussex","BN27 1AJ","01273-236188","01997-765432","rausdemore@hotmail.com","http://www.jurdemscottesq.co.uk" -"Huey","Stancil","Lindner Funds","275 Peel Sq","Park Ward","North Eart Lincolnshire","DN32 0PT","01502-139578","01468-195646","hstancil@hotmail.com","http://www.lindnerfunds.co.uk" -"Elbert","Fiorino","Donald, G Nelson Esq","726 Westmoreland Place","Ballochmyle Ward","East Ayrshire","KA5 6EL","01724-467889","01992-537553","elbert@hotmail.com","http://www.donaldgnelsonesq.co.uk" -"Pura","Manciel","Cia Inspection","7 Water St","Priory Heath Ward","Suffolk","IP3 9RB","01853-412588","01386-437186","pura.manciel@yahoo.com","http://www.ciainspection.co.uk" -"Alesia","Katie","Nelsons Trmt & Pest Cntrl Co","4 Covent Garden","Farnworth Ward","Greater Manchester","BL4 7AF","01333-436799","01240-614527","alesia_katie@gmail.com","http://www.nelsonstrmtpestcntrlco.co.uk" -"Avery","Veit","Plaza Gourmet Delicatessen","9166 Devon St #905","Knightsbridge and Belgravia Wa","Greater London","SW1W 8JY","01748-625058","01369-185737","avery@veit.co.uk","http://www.plazagourmetdelicatessen.co.uk" -"Reid","Euresti","Fitzgerald, Edward J","70 Foster St","Inverness Ness-Side Ward","Highland","IV2 6WT","01916-963261","01370-319414","reuresti@euresti.co.uk","http://www.fitzgeraldedwardj.co.uk" -"Charlette","Brenning","Furey & Associates","714 Fonthill Rd","Darton West Ward","South Yorkshire","S75 5EJ","01888-152110","01301-312487","cbrenning@brenning.co.uk","http://www.fureyassociates.co.uk" -"Celestina","Keeny","Bfg Federal Credit Union","9 Milton St","Consett North ED","County Durham","DH8 5LP","01877-379681","01600-463475","celestina_keeny@gmail.com","http://www.bfgfederalcreditunion.co.uk" -"Mi","Richan","Nelson Wright Haworth Golf Crs","6 Norwood Grove","Tanworth-in-Arden","Warwickshire","B94 5RZ","01451-785624","01202-738406","mi@hotmail.com","http://www.nelsonwrighthaworthgolfcrs.co.uk" diff --git a/Sd1/P/HtmlFormatting/Simple/Exercise/pom.xml b/Sd1/P/HtmlFormatting/Simple/Exercise/pom.xml deleted file mode 100644 index 103cd1948..000000000 --- a/Sd1/P/HtmlFormatting/Simple/Exercise/pom.xml +++ /dev/null @@ -1,72 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm_stuttgart.mi.sd1</groupId> - <artifactId>textformat</artifactId> - <version>1.0</version> - <packaging>jar</packaging> - - <name>textformat</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <version>2.4</version> - <configuration> - <archive> - <manifest> - <addClasspath>true</addClasspath> - <mainClass>de.hdm_stuttgart.mi.sd1.textstat/TextStatistics</mainClass> - </manifest> - </archive> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/HtmlFormatting/Simple/Exercise/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/Address.java b/Sd1/P/HtmlFormatting/Simple/Exercise/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/Address.java deleted file mode 100644 index 297805f97..000000000 --- a/Sd1/P/HtmlFormatting/Simple/Exercise/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/Address.java +++ /dev/null @@ -1,38 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.htmlformat; - -/** - * A single address record holding a representation as being - * described in {@link AddressDataHandler#AddressDataHandler(String)} - * - */ -public class Address { - - final String firstName, lastName, companyName, - address, city, county, postal, - phone1, phone2, email, web; - - - /** - * Initializing from an address string obeying the description given - * in {@link AddressDataHandler#AddressDataHandler(String)}. - * - * @param csvRecord An input address record like - * <code>"Aleshia","Tomkies","Alan Co.","14 Taylor St",...</code> - * @param lineNumber Indication the current file position in case of parsing errors. - * @throws AddressParseError Data source is corrupt. - */ - public Address(final String csvRecord, final int lineNumber) - throws AddressParseError { - firstName = "Tim"; - lastName = "Dummy"; - companyName = "Dummy Company"; - address = "Dummy street"; - city = "DummyCity"; - county = "Dummy County"; - postal = "DummyPostal"; - phone1 = "1234567"; - phone2 = "7654321"; - email = "@dummy@dummy.com"; - web = "dummy@dummy.com"; - } -} diff --git a/Sd1/P/HtmlFormatting/Simple/Exercise/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/Address2text.java b/Sd1/P/HtmlFormatting/Simple/Exercise/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/Address2text.java deleted file mode 100644 index 1a9da23e3..000000000 --- a/Sd1/P/HtmlFormatting/Simple/Exercise/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/Address2text.java +++ /dev/null @@ -1,30 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.htmlformat; - -import java.io.FileNotFoundException; -import java.io.IOException; - -/** - * Format address data as ordinary text - * - */ -public class Address2text { - - /** - * @param args unused - */ - public static void main(String[] args) { - final String addressFileName = "addresses.txt"; - try { - final AddressDataHandler addresses = new AddressDataHandler(addressFileName); - - addresses.printAddresses(System.out, new Address2textFormatter()); - } catch (FileNotFoundException e) { - System.err.println("File '" + addressFileName + "' not found"); - } catch (IOException e){ - System.err.println("Unable to read from file '" + addressFileName + "'"); - } catch (AddressParseError e) { - System.err.println("Error in file '" + addressFileName + "' at line " + e.getErrorOffset() + ":" - + e.getMessage()); - } - } -} diff --git a/Sd1/P/HtmlFormatting/Simple/Exercise/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/Address2textFormatter.java b/Sd1/P/HtmlFormatting/Simple/Exercise/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/Address2textFormatter.java deleted file mode 100644 index 4cd6a74bc..000000000 --- a/Sd1/P/HtmlFormatting/Simple/Exercise/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/Address2textFormatter.java +++ /dev/null @@ -1,27 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.htmlformat; - -import java.io.PrintStream; - -/** - * Formatting {@link Address} records - * - */ -public class Address2textFormatter implements AddressFormatter { - - public void printHead (PrintStream out) { - out.println("List of addresses:"); - } - public void printRecord(Address address, PrintStream out) { - out.println("++++++++++++++++++++++"); - out.println("Name:" + address.firstName + " " + address.lastName); - out.println("Company:" + address.companyName); - out.println("Address:" + address.address + ", " + address.city - + ", " + address.postal); - out.println("Phone:" + address.phone1 + ", " + address.phone2); - out.println("E-Mail:" + address.email); - out.println("--------------------"); - } - public void printTail (PrintStream out) { - out.println("End of records"); - } -} \ No newline at end of file diff --git a/Sd1/P/HtmlFormatting/Simple/Exercise/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/AddressDataHandler.java b/Sd1/P/HtmlFormatting/Simple/Exercise/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/AddressDataHandler.java deleted file mode 100644 index 39ea8c602..000000000 --- a/Sd1/P/HtmlFormatting/Simple/Exercise/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/AddressDataHandler.java +++ /dev/null @@ -1,62 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.htmlformat; - -import java.io.BufferedReader; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.IOException; -import java.io.PrintStream; -import java.util.ArrayList; -import java.util.List; - -/** - * Reading address data from text file data source. - */ -public class AddressDataHandler { - - /** - * Available address records. - */ - public final List<Address> addresses = new ArrayList<Address>(); - - /** - * Parsing text file address data having the following format: - * - * <pre>"firstName","lastName","companyName","address","city","county","postal","phone1","phone2","email","web"</pre> - * - * The first line is expected to contain the above description and will be ignored. - * - * @param filename Address data source. - * - * @throws IOException Input file cannot be read - * @throws FileNotFoundException File does not exist - * @throws AddressParseError Input data file parse error - * - */ - public AddressDataHandler(final String filename) - throws FileNotFoundException, IOException, AddressParseError { - - final BufferedReader reader = new BufferedReader(new FileReader(filename)); - int lineNumber = 0; // Needed to supply file positions for error messages - for (String lineContent = reader.readLine(); lineContent != null; lineContent = reader.readLine()) { - lineNumber ++; - addresses.add(new Address(lineContent, lineNumber)); - } - reader.close(); // Freeing OS resources no longer being needed. - } - - /** - * Format the set of address records and write the result - * to a stream. - * @param out Desired output stream - * @param formatter Formatting instance (may e.g. be text, HTML,...) - */ - public void printAddresses(final PrintStream out, final AddressFormatter formatter) { - formatter.printHead(out); - - for (final Address address: addresses) { - formatter.printRecord(address, out); - } - - formatter.printTail(out); - } -} diff --git a/Sd1/P/HtmlFormatting/Simple/Exercise/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/AddressFormatter.java b/Sd1/P/HtmlFormatting/Simple/Exercise/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/AddressFormatter.java deleted file mode 100644 index 3b0e89618..000000000 --- a/Sd1/P/HtmlFormatting/Simple/Exercise/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/AddressFormatter.java +++ /dev/null @@ -1,46 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.htmlformat; - -import java.io.PrintStream; - -/** - * Formatting {@link Address} records. The generated - * output layout can be described as: - * - * ****************************** - * * head * - * ****************************** - * * * - * * body * - * * * - * ****************************** - * * tail * - * ****************************** - */ -public interface AddressFormatter { - - /** - * When formatting an address list this method - * will be called exactly once initiating - * output to the head section. - * - * @param out The output stream - */ - public void printHead (PrintStream out); - - /** - * This method will be called for each address record. - * Corresponding data will populate the body section. - * - * @param address The current address record. - * @param out The output stream. - */ - public void printRecord(Address address, PrintStream out); - /** - * When formatting an address list this method - * will be called at last to finish - * output generation of the tail section. - * - * @param out The output stream - */ - public void printTail (PrintStream out); -} \ No newline at end of file diff --git a/Sd1/P/HtmlFormatting/Simple/Exercise/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/AddressParseError.java b/Sd1/P/HtmlFormatting/Simple/Exercise/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/AddressParseError.java deleted file mode 100644 index e3d33da2e..000000000 --- a/Sd1/P/HtmlFormatting/Simple/Exercise/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/AddressParseError.java +++ /dev/null @@ -1,19 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.htmlformat; - -import java.text.ParseException; - -/** - * Address data files may contain corrupted entries - * - */ -@SuppressWarnings("serial") -public class AddressParseError extends ParseException { - - /** - * @param messageString Supply a parse error explanation. - * @param lineNumber the current line number within the parsing process - */ - public AddressParseError(final String messageString, int lineNumber) { - super(messageString, lineNumber); - } -} diff --git a/Sd1/P/HtmlFormatting/Simple/Exercise/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/package-info.java b/Sd1/P/HtmlFormatting/Simple/Exercise/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/package-info.java deleted file mode 100644 index 56fbf9b1e..000000000 --- a/Sd1/P/HtmlFormatting/Simple/Exercise/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * Formatting address records - */ -package de.hdm_stuttgart.mi.sd1.htmlformat; \ No newline at end of file diff --git a/Sd1/P/HtmlFormatting/Simple/Exercise/src/test/java/.gitignore b/Sd1/P/HtmlFormatting/Simple/Exercise/src/test/java/.gitignore deleted file mode 100644 index e69de29bb..000000000 diff --git a/Sd1/P/HtmlFormatting/Simple/Solution/.gitignore b/Sd1/P/HtmlFormatting/Simple/Solution/.gitignore deleted file mode 100644 index 765c93cc0..000000000 --- a/Sd1/P/HtmlFormatting/Simple/Solution/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -/.settings -/target -/.classpath -/.project -/addresses.txt.xhtml diff --git a/Sd1/P/HtmlFormatting/Simple/Solution/Testdata/missingAttribute.txt b/Sd1/P/HtmlFormatting/Simple/Solution/Testdata/missingAttribute.txt deleted file mode 100644 index 569d9174b..000000000 --- a/Sd1/P/HtmlFormatting/Simple/Solution/Testdata/missingAttribute.txt +++ /dev/null @@ -1,4 +0,0 @@ -"firstName","lastName","companyName","address","city","county","postal","phone1","phone2","email","web" -"Aleshia","Tomkiewicz","Alan D Rosenburg Cpa Pc","14 Taylor St","St. Stephens Ward","Kent","CT2 7PP","01835-703597","01944-369967","atomkiewicz@hotmail.com","http://www.alandrosenburgcpapc.co.uk" -"Evan","Zigomalas","Cap Gemini America","5 Binney St","Abbey Ward","Buckinghamshire","HP11 2AX","01937-864715","01714-737668","evan.zigomalas@gmail.com" -"France","Andrade","Elliott, John W Esq","8 Moor Place","East Southbourne and Tuckton W","Bournemouth","BH6 3BE","01347-368222","01935-821636","france.andrade@hotmail.com","http://www.elliottjohnwesq.co.uk" diff --git a/Sd1/P/HtmlFormatting/Simple/Solution/Testdata/missingStartQuote.txt b/Sd1/P/HtmlFormatting/Simple/Solution/Testdata/missingStartQuote.txt deleted file mode 100644 index a1959b6d5..000000000 --- a/Sd1/P/HtmlFormatting/Simple/Solution/Testdata/missingStartQuote.txt +++ /dev/null @@ -1,4 +0,0 @@ -"firstName","lastName","companyName","address","city","county","postal","phone1","phone2","email","web" -"Aleshia","Tomkiewicz","Alan D Rosenburg Cpa Pc","14 Taylor St","St. Stephens Ward","Kent","CT2 7PP","01835-703597","01944-369967","atomkiewicz@hotmail.com","http://www.alandrosenburgcpapc.co.uk" -"Evan","Zigomalas","Cap Gemini America","5 Binney St","Abbey Ward","Buckinghamshire","HP11 2AX","01937-864715","01714-737668","evan.zigomalas@gmail.com","http://www.capgeminiamerica.co.uk" -France","Andrade","Elliott, John W Esq","8 Moor Place","East Southbourne and Tuckton W","Bournemouth","BH6 3BE","01347-368222","01935-821636","france.andrade@hotmail.com","http://www.elliottjohnwesq.co.uk" diff --git a/Sd1/P/HtmlFormatting/Simple/Solution/addresses.txt b/Sd1/P/HtmlFormatting/Simple/Solution/addresses.txt deleted file mode 100644 index 5efa953ea..000000000 --- a/Sd1/P/HtmlFormatting/Simple/Solution/addresses.txt +++ /dev/null @@ -1,501 +0,0 @@ -"firstName","lastName","companyName","address","city","county","postal","phone1","phone2","email","web" -"Aleshia","Tomkiewicz","Alan D Rosenburg Cpa Pc","14 Taylor St","St. Stephens Ward","Kent","CT2 7PP","01835-703597","01944-369967","atomkiewicz@hotmail.com","http://www.alandrosenburgcpapc.co.uk" -"Evan","Zigomalas","Cap Gemini America","5 Binney St","Abbey Ward","Buckinghamshire","HP11 2AX","01937-864715","01714-737668","evan.zigomalas@gmail.com","http://www.capgeminiamerica.co.uk" -"France","Andrade","Elliott, John W Esq","8 Moor Place","East Southbourne and Tuckton W","Bournemouth","BH6 3BE","01347-368222","01935-821636","france.andrade@hotmail.com","http://www.elliottjohnwesq.co.uk" -"Ulysses","Mcwalters","Mcmahan, Ben L","505 Exeter Rd","Hawerby cum Beesby","Lincolnshire","DN36 5RP","01912-771311","01302-601380","ulysses@hotmail.com","http://www.mcmahanbenl.co.uk" -"Tyisha","Veness","Champagne Room","5396 Forth Street","Greets Green and Lyng Ward","West Midlands","B70 9DT","01547-429341","01290-367248","tyisha.veness@hotmail.com","http://www.champagneroom.co.uk" -"Eric","Rampy","Thompson, Michael C Esq","9472 Lind St","Desborough","Northamptonshire","NN14 2GH","01969-886290","01545-817375","erampy@rampy.co.uk","http://www.thompsonmichaelcesq.co.uk" -"Marg","Grasmick","Wrangle Hill Auto Auct & Slvg","7457 Cowl St #70","Bargate Ward","Southampton","SO14 3TY","01865-582516","01362-620532","marg@hotmail.com","http://www.wranglehillautoauctslvg.co.uk" -"Laquita","Hisaw","In Communications Inc","20 Gloucester Pl #96","Chirton Ward","Tyne & Wear","NE29 7AD","01746-394243","01590-982428","laquita@yahoo.com","http://www.incommunicationsinc.co.uk" -"Lura","Manzella","Bizerba Usa Inc","929 Augustine St","Staple Hill Ward","South Gloucestershire","BS16 4LL","01907-538509","01340-713951","lura@hotmail.com","http://www.bizerbausainc.co.uk" -"Yuette","Klapec","Max Video","45 Bradfield St #166","Parwich","Derbyshire","DE6 1QN","01903-649460","01933-512513","yuette.klapec@klapec.co.uk","http://www.maxvideo.co.uk" -"Fernanda","Writer","K & R Associates Inc","620 Northampton St","Wilmington","Kent","DA2 7PP","01630-202053","01687-879391","fernanda@writer.co.uk","http://www.krassociatesinc.co.uk" -"Charlesetta","Erm","Cain, John M Esq","5 Hygeia St","Loundsley Green Ward","Derbyshire","S40 4LY","01276-816806","01517-624517","charlesetta_erm@gmail.com","http://www.cainjohnmesq.co.uk" -"Corrinne","Jaret","Sound Vision Corp","2150 Morley St","Dee Ward","Dumfries and Galloway","DG8 7DE","01625-932209","01642-322954","corrinne_jaret@gmail.com","http://www.soundvisioncorp.co.uk" -"Niesha","Bruch","Rowley/hansell Petetin","24 Bolton St","Broxburn, Uphall and Winchburg","West Lothian","EH52 5TL","01874-856950","01342-793603","niesha.bruch@yahoo.com","http://www.rowleyhansellpetetin.co.uk" -"Rueben","Gastellum","Industrial Engineering Assocs","4 Forrest St","Weston-Super-Mare","North Somerset","BS23 3HG","01976-755279","01956-535511","rueben_gastellum@gastellum.co.uk","http://www.industrialengineeringassocs.co.uk" -"Michell","Throssell","Weiss Spirt & Guyer","89 Noon St","Carbrooke","Norfolk","IP25 6JQ","01967-580851","01672-496478","mthrossell@throssell.co.uk","http://www.weissspirtguyer.co.uk" -"Edgar","Kanne","Crowan, Kenneth W Esq","99 Guthrie St","New Milton","Hampshire","BH25 5DF","01326-532337","01666-638176","edgar.kanne@yahoo.com","http://www.crowankennethwesq.co.uk" -"Dewitt","Julio","Rittenhouse Motor Co","7 Richmond St","Parkham","Devon","EX39 5DJ","01253-528327","01241-964675","dewitt.julio@hotmail.com","http://www.rittenhousemotorco.co.uk" -"Charisse","Spinello","Modern Plastics Corp","9165 Primrose St","Darnall Ward","Yorkshire, South","S4 7WN","01719-831436","01207-428520","charisse_spinello@spinello.co.uk","http://www.modernplasticscorp.co.uk" -"Mee","Lapinski","Galloway Electric Co Inc","9 Pengwern St","Marldon","Devon","TQ3 1SA","01578-287816","01939-815208","mee.lapinski@yahoo.com","http://www.gallowayelectriccoinc.co.uk" -"Peter","Gutierres","Niagara Custombuilt Mfg Co","4410 Tarlton St","Prestatyn Community","Denbighshire","LL19 9EG","01842-767201","01859-648598","peter_gutierres@yahoo.com","http://www.niagaracustombuiltmfgco.co.uk" -"Octavio","Salvadore","Practical Periphrals","6949 Bourne St","Lye and Stourbridge North Ward","West Midlands","DY5 2QP","01552-709248","01743-139456","octavio.salvadore@yahoo.com","http://www.practicalperiphrals.co.uk" -"Martha","Teplica","Curtin, Patricia M Esq","148 Rembrandt St","Warlingham","Surrey","CR6 9SW","01677-684257","01583-287367","mteplica@teplica.co.uk","http://www.curtinpatriciamesq.co.uk" -"Tamesha","Veigel","Wilhelm, James E Jr","2200 Nelson St #58","Newport","Isle of Wight","PO30 5AL","01217-342071","01280-786847","tveigel@veigel.co.uk","http://www.wilhelmjamesejr.co.uk" -"Tess","Sitra","Smart Signs","61 Rossett St","Chichester","West Sussex","PO19 1RH","01473-229124","01848-116775","tess_sitra@hotmail.com","http://www.smartsigns.co.uk" -"Leonard","Kufner","Arctic Star Distributing Inc","41 Canning St","Steornabhagh a Deas Ward","Western Isles","HS1 2PZ","01230-623547","01604-718601","lkufner@kufner.co.uk","http://www.arcticstardistributinginc.co.uk" -"Svetlana","Tauras","Lensbower, Gregory L Esq","8289 Cadogan St","South Ward","North Eart Lincolnshire","DN33 1AU","01781-827317","01509-121140","svetlana_tauras@tauras.co.uk","http://www.lensbowergregorylesq.co.uk" -"Pok","Molaison","Portal Metal Products","211 Hobart St","Newquay","Cornwall","TR7 1LS","01866-248660","01315-284286","pok@yahoo.com","http://www.portalmetalproducts.co.uk" -"Augustine","Growcock","Lynema, Cliff Cpa","114 Falkland St #8845","Brimpton","Berkshire","RG7 4RF","01541-802635","01926-108010","augustine.growcock@growcock.co.uk","http://www.lynemacliffcpa.co.uk" -"Karma","Quarto","J C S Machinery","1 Birkett St","Shard End Ward","West Midlands","B33 0NH","01857-864722","01307-667811","kquarto@gmail.com","http://www.jcsmachinery.co.uk" -"Reed","Weisinger","Berick, Joseph G Esq","5147 Blackstone St","Letchworth South West Ward","Hertfordshire","SG6 3LE","01243-678286","01292-297245","reed_weisinger@yahoo.com","http://www.berickjosephgesq.co.uk" -"German","Zelaya","Jackson & Heit Machine Co Inc","7 Shenstone St","Longhill Ward","Yorkshire, East (North Humbers","HU8 9PZ","01400-269033","01366-210656","german@hotmail.com","http://www.jacksonheitmachinecoinc.co.uk" -"Milly","Savidge","Bridgeway Plan For Health","129 Alexander Pope St","Franche Ward","Hereford and Worcester","DY11 9BW","01702-725589","01421-132652","milly@gmail.com","http://www.bridgewayplanforhealth.co.uk" -"Luis","Ear","Wa Inst For Plcy Studies","2 Birchfield Rd","Whittington","Shropshire","SY11 4PH","01462-648669","01405-648623","luis@hotmail.com","http://www.wainstforplcystudies.co.uk" -"Ciara","Cobbley","Wmgl 101.7 Fm","7523 Kempton Rd","Cockerton West Ward","Darlington","DL3 0JF","01235-647932","01809-443217","ciara_cobbley@hotmail.com","http://www.wmglfm.co.uk" -"Alethea","Mould","Hughlett, Henry T Jr","6305 Elstow St","Castle Ward","West Sussex","BN12 6PR","01662-114247","01351-868965","alethea@hotmail.com","http://www.hughletthenrytjr.co.uk" -"Margurite","Loperfido","Penrose Place Pharmacy Inc","218 Greenbank Drive","Devizes","Wiltshire","SN10 3DU","01407-866759","01640-661191","mloperfido@gmail.com","http://www.penroseplacepharmacyinc.co.uk" -"Vernice","Sperazza","Novak, Alan Paul Esq","8921 Forge St","Colnbrook with Poyle","Buckinghamshire","SL3 0PY","01822-563044","01765-519419","vernice@yahoo.com","http://www.novakalanpaulesq.co.uk" -"Vicente","Rawicki","B & S Tool And Cutter Svc Inc","3060 St Ambrose Grove #261","Aldridge Central and South War","West Midlands","WS9 8UR","01327-770774","01286-258121","vicente_rawicki@hotmail.com","http://www.bstoolandcuttersvcinc.co.uk" -"Craig","Cua","Berry, John M Esq","8388 Bessemer St #5","East Putney Ward","Greater London","SW15 2RP","01483-418969","01818-980469","craig@hotmail.com","http://www.berryjohnmesq.co.uk" -"Jenise","Dulle","Alden, Michael H Esq","87 Pownall Sq","Sawston","Cambridgeshire","CB22 3BB","01709-854691","01572-193368","jenise.dulle@hotmail.com","http://www.aldenmichaelhesq.co.uk" -"Marylin","Cornelison","Ernest E Heuer & Company Pc","39 Wye St","Wakefield North Ward","West Yorkshire","WF1 1DR","01609-882184","01295-331807","marylin_cornelison@yahoo.com","http://www.ernesteheuercompanypc.co.uk" -"Marget","Gunst","Frankel, Stephen","2732 Bostock St #1","St. Enoder","Cornwall","TR9 6NJ","01693-310794","01512-975244","mgunst@yahoo.com","http://www.frankelstephen.co.uk" -"Annett","Bunselmeyer","Guynes Design Inc","5562 Fairfield St #847","Ryde","Isle of Wight","PO33 1HH","01891-702579","01333-972244","abunselmeyer@hotmail.com","http://www.guynesdesigninc.co.uk" -"Kip","Turziano","General Appraisal Co","37 Meadow St","Laindon Park Ward","Essex","SS15 6LE","01850-347846","01222-164469","kip.turziano@yahoo.com","http://www.generalappraisalco.co.uk" -"Melina","Orizabal","Sheraton Inn Ocean Front","3 Nevison St","Lymington and Pennington","Hampshire","SO41 1DL","01420-307327","01245-559333","melina@gmail.com","http://www.sheratoninnoceanfront.co.uk" -"Tina","Clapham","Cooper Myers Y Co","5662 William Moult St","Aylesbury","Buckinghamshire","HP21 8PP","01567-296442","01493-245349","tclapham@gmail.com","http://www.coopermyersyco.co.uk" -"Luisa","Devereux","Cash 4 Checks","3 North View #35","Burmantofts and Richmond Hill ","West Yorkshire","LS9 7JH","01607-269930","01334-807355","ldevereux@gmail.com","http://www.cashchecks.co.uk" -"Pedro","Aschoff","Charlotte Chamber","135 Opie St","Howard Town Ward","Derbyshire","SK13 8BB","01386-981141","01823-517315","paschoff@yahoo.com","http://www.charlottechamber.co.uk" -"Carrol","Kunimitsu","Kisc 98 Kiss Fm","1 Askew St","Farnham","Surrey","GU9 9AS","01260-641258","01415-364461","carrol_kunimitsu@yahoo.com","http://www.kisckissfm.co.uk" -"Alba","Mosseri","Schwartzbard, Gail L Esq","4 Burnall St","Beeston West Ward","Nottinghamshire","NG9 1AE","01543-198690","01231-806535","alba@gmail.com","http://www.schwartzbardgaillesq.co.uk" -"Domonique","Sandlin","Marketing Horizons Inc","95 Denton St","Wollaton West Ward","Nottinghamshire","NG8 2NB","01355-500797","01987-728730","domonique@hotmail.com","http://www.marketinghorizonsinc.co.uk" -"Rory","Neufville","Brady, Brad J Esq","5 Chadwick St #7","Llangeler Community","Ceredigion","SA44 5HF","01252-621329","01442-700486","rory_neufville@neufville.co.uk","http://www.bradybradjesq.co.uk" -"Dustin","Klingaman","Welders Supply","67 Micawber St","Brockley Ward","Greater London","SE14 6RQ","01712-135466","01523-775781","dklingaman@gmail.com","http://www.welderssupply.co.uk" -"Lyndia","Moonshower","Bomarko Inc","43 Williamson St #7995","Meads Ward","East Sussex","BN20 7HB","01469-300335","01789-132579","lyndia_moonshower@moonshower.co.uk","http://www.bomarkoinc.co.uk" -"Jules","Hiltner","Benitez, Brigida Esq","5 Howe St","Broxburn, Uphall and Winchburg","West Lothian","EH52 6NF","01428-343825","01814-878359","jules@yahoo.com","http://www.benitezbrigidaesq.co.uk" -"Dong","Kopczynski","Kennedy Scales Inc","7 Cheapside #9","St. Ive","Cornwall","PL14 5PA","01770-129032","01639-518104","dkopczynski@kopczynski.co.uk","http://www.kennedyscalesinc.co.uk" -"Justine","Salta","Barajas & Bustamante Archl","85 Bridgewater St","Shard End Ward","West Midlands","B34 7BP","01689-253476","01376-851958","justine_salta@yahoo.com","http://www.barajasbustamantearchl.co.uk" -"Chantay","Kamens","Brewster Wallcoverings Co","763 Parkfield Rd","Norton Canes","Staffordshire","WS11 9RH","01823-383806","01245-146126","ckamens@hotmail.com","http://www.brewsterwallcoveringsco.co.uk" -"Tequila","Chisum","Bohs Well Drilling Inc","662 Grove Park","Bulwell Ward","Nottinghamshire","NG6 8RG","01835-634521","01702-946496","tequila.chisum@chisum.co.uk","http://www.bohswelldrillinginc.co.uk" -"Maybelle","Consolazio","Gavin, Lee W Esq","5410 Lawton St","Treorchy Community","Rhondda Cynon Taff","CF42 6PL","01383-647035","01351-200904","mconsolazio@yahoo.com","http://www.gavinleewesq.co.uk" -"Margarett","Bairo","Reid, Carleton B Esq","3 August Rd","Maybury and Sheerwater Ward","Surrey","GU21 5QL","01670-813697","01903-424890","margarett@gmail.com","http://www.reidcarletonbesq.co.uk" -"Janessa","Noonon","Canterbury, Christopher C","476 Starkie St","Westgate Ward","Gloucestershire","GL1 1QW","01472-324699","01841-979075","jnoonon@yahoo.com","http://www.canterburychristopherc.co.uk" -"Sol","Cowser","Omni Mandalay","6448 Tillard St","Conisbrough and Denaby Ward","South Yorkshire","DN12 4JF","01412-528394","01580-134516","sol@gmail.com","http://www.omnimandalay.co.uk" -"Louann","Smethers","Lba Savings Bank","3055 Creswick St","Newbold and Brownsover Ward","Warwickshire","CV21 1LN","01670-234959","01488-872531","louann@gmail.com","http://www.lbasavingsbank.co.uk" -"Lindsay","Yadao","Lutz, Christopher T Esq","7 Jolliffe St","Middlewich","Cheshire","CW10 9GB","01947-566661","01481-295251","lindsay_yadao@yadao.co.uk","http://www.lutzchristophertesq.co.uk" -"Malika","Hanton","Association Of Art Museum Dir","1175 Greig St","St. Marys Ward","Greater Manchester","M25 0ZN","01532-497454","01705-208145","malika@gmail.com","http://www.associationofartmuseumdir.co.uk" -"Stefany","Ferenz","L & L Sales Co Inc","636 Portland Place","Gresham Ward","Middlesbrough","TS1 4RG","01743-977277","01704-986828","stefany@hotmail.com","http://www.llsalescoinc.co.uk" -"Abraham","Cratch","Cavuto, John A","41 Benedict St","Aldborough Ward","Greater London","IG2 7QG","01599-245408","01695-305111","acratch@gmail.com","http://www.cavutojohna.co.uk" -"Giuseppe","Rohaley","Pacific Coast Packaging","62 Margaret St","Royal Hospital Ward","Greater London","SW3 4ND","01345-400452","01866-845669","giuseppe@yahoo.com","http://www.pacificcoastpackaging.co.uk" -"Kiera","Bassil","Storm Eye Institute","5152 Sophia St","Woodstock Ward","South Gloucestershire","BS15 8DS","01655-519837","01783-446052","kbassil@bassil.co.uk","http://www.stormeyeinstitute.co.uk" -"Wendell","Rubano","Automation Engrg & Mfg Inc","1 Back Canning St","Dunblane and Bridge of Allan W","Stirling","FK9 4LD","01837-530939","01752-386691","wendell_rubano@hotmail.com","http://www.automationengrgmfginc.co.uk" -"Stevie","Stifflemire","Packaging Corp Of America","9 Gradwell St","Kempshott Ward","Hampshire","RG22 5HA","01262-808399","01411-169215","stevie_stifflemire@stifflemire.co.uk","http://www.packagingcorpofamerica.co.uk" -"Yun","Paletta","Goe, Douglas E Esq","9205 Upper Hill St","City and Hunslet Ward","West Yorkshire","LS1 5QE","01350-332706","01374-255198","yun_paletta@paletta.co.uk","http://www.goedouglaseesq.co.uk" -"Brittani","Thurm","Burgess Steel Products Corp","9 Horatio St","Ruckinge","Kent","TN26 2PN","01686-306597","01970-890023","bthurm@yahoo.com","http://www.burgesssteelproductscorp.co.uk" -"Billy","Venus","Tipton & Hurst","61 Miriam St","Abbey Road Ward","Greater London","NW8 9BD","01537-356648","01703-435212","billy.venus@yahoo.com","http://www.tiptonhurst.co.uk" -"Brynn","Elkan","A O Hardee & Son Inc","67 Pulford St","Prittlewell Ward","Essex","SS2 6NL","01388-416867","01345-625433","brynn@yahoo.com","http://www.aohardeesoninc.co.uk" -"Elroy","Piehler","Jonson, Geo D Esq","821 Pembroke Place","Kirkby Stephen","Cumbria","CA17 4RZ","01589-654152","01586-387018","epiehler@piehler.co.uk","http://www.jonsongeodesq.co.uk" -"Anisha","Shulick","Dale Yoder Clu Life Hlth & Bus","3 Alder St","Eaton Park Ward","Stoke-on-Trent","ST2 9AW","01780-704167","01268-233798","ashulick@yahoo.com","http://www.daleyoderclulifehlthbus.co.uk" -"Bettina","Kham","Council Of Cmnty Blood Ctrs","80 Morecambe St","Bishop Auckland","County Durham","DL14 6NG","01355-192668","01340-622388","bettina.kham@kham.co.uk","http://www.councilofcmntybloodctrs.co.uk" -"Velda","Mancilla","Tremont, Michael A Esq","7866 Renshaw St #283","Falmouth","Cornwall","TR11 4QQ","01823-526645","01368-456268","velda_mancilla@mancilla.co.uk","http://www.tremontmichaelaesq.co.uk" -"Marta","Brace","Trautman, Eileen Esq","658 Lake St","Malmesbury","Wiltshire","SN16 0XZ","01777-469402","01631-454193","marta.brace@brace.co.uk","http://www.trautmaneileenesq.co.uk" -"Juan","Vanwyhe","Office Service Co","5382 Redfern St","West End Ward","Greater London","W1J 0QH","01961-642757","01728-150282","juan_vanwyhe@gmail.com","http://www.officeserviceco.co.uk" -"Lelia","Filion","Alphabetland Pre School Center","45 Bidder St #38","Town Ward","Greater London","EN1 3HT","01367-136951","01322-715065","lelia.filion@filion.co.uk","http://www.alphabetlandpreschoolcenter.co.uk" -"Una","Frankel","Shamrock Food Service","6766 Britton St #379","Crompton Ward","Greater Manchester","BL1 3EX","01912-749219","01308-356704","ufrankel@hotmail.com","http://www.shamrockfoodservice.co.uk" -"Eva","Joulwan","Central Hrdwr & Elec Corp","7 Lear Rd","Stroud","Hampshire","GU32 3PQ","01779-720349","01961-802899","eva.joulwan@gmail.com","http://www.centralhrdwreleccorp.co.uk" -"Mammie","Dormanen","Matt Parrott & Sons Co","2577 Toxteth St #5","Overton Ward","Lancashire","BB6 7UN","01527-579687","01439-184366","mammie_dormanen@hotmail.com","http://www.mattparrottsonsco.co.uk" -"Jeannetta","Coolidge","Tiny Tots Originals Div","761 Cockerell St #1","Midway Ward","Derbyshire","DE11 0HE","01927-790069","01440-276155","jeannetta_coolidge@gmail.com","http://www.tinytotsoriginalsdiv.co.uk" -"Elbert","Drawe","Lovitch, Alan F","9 Cypress St","Washington East Ward","Tyne and Wear","NE38 9AQ","01753-784273","01496-526674","edrawe@drawe.co.uk","http://www.lovitchalanf.co.uk" -"Lenny","Gazzola","Wise Industries","6 Romilly St","Walkergate Ward","Tyne and Wear","NE6 4YH","01312-233253","01342-706893","lenny.gazzola@yahoo.com","http://www.wiseindustries.co.uk" -"Mira","Alpheaus","East County Process","51 St Anne St #12","Stratfield Mortimer","Berkshire","RG7 3RA","01241-273991","01381-836777","mira.alpheaus@yahoo.com","http://www.eastcountyprocess.co.uk" -"Cathern","Ungar","Agopgee Enterprises Inc","823 Idris St","Selston","Nottinghamshire","NG16 5LG","01898-134749","01266-671305","cathern.ungar@ungar.co.uk","http://www.agopgeeenterprisesinc.co.uk" -"Malcom","Fleckles","L Winik & Associates Inc","8764 Nickleby St #877","Govan Ward","Glasgow City","G51 1BQ","01478-110943","01937-120539","malcom.fleckles@gmail.com","http://www.lwinikassociatesinc.co.uk" -"Monroe","Damato","Rosati, Marc D Esq","5344 Bengel St #5","Millwall Ward","Greater London","E14 5DR","01402-733903","01440-164945","mdamato@damato.co.uk","http://www.rosatimarcdesq.co.uk" -"Leota","Fletchen","Rust Evader Corp","8880 Great Howard St #7750","Sefton","Merseyside","L29 7WD","01358-446391","01414-780251","lfletchen@gmail.com","http://www.rustevadercorp.co.uk" -"Berry","Gutoski","Budget Annex","9 Oakleigh","Lancing","West Sussex","BN15 9BN","01448-211489","01929-400879","berry@gmail.com","http://www.budgetannex.co.uk" -"Meghan","Riherd","Kiqo Pure Gold Oldies 104 Fm","83 Denbigh St Bootle","St. Gluvias","Cornwall","TR3 7AZ","01462-474800","01650-129106","meghan@riherd.co.uk","http://www.kiqopuregoldoldiesfm.co.uk" -"Mike","Torner","Segall Majestic Inc","30 Aughton St","Hilton","Aberdeenshire","AB24 2RR","01240-600327","01408-918612","mike_torner@torner.co.uk","http://www.segallmajesticinc.co.uk" -"Elsa","Delisle","Taos Valley Resort Assn","260 Saxon St","Brooklands Ward","Greater Manchester","M33 4BP","01537-525550","01204-471598","elsa_delisle@gmail.com","http://www.taosvalleyresortassn.co.uk" -"Linwood","Rosenlof","Exhibit Crafts Inc","3 Pyramid St","Eccleston Ward","Merseyside","WA10 3BW","01546-942059","01244-769346","linwood.rosenlof@yahoo.com","http://www.exhibitcraftsinc.co.uk" -"Latosha","Alexy","Laitinen, Stephen B Esq","37 Langham St #948","St. Georges Hill Ward","Surrey","KT13 0AZ","01704-508066","01662-268374","latosha@yahoo.com","http://www.laitinenstephenbesq.co.uk" -"Alexia","Meenan","Herr Foods Inc","94 Villars St","Launcells","Cornwall","EX23 9LG","01560-328739","01270-931388","alexia.meenan@meenan.co.uk","http://www.herrfoodsinc.co.uk" -"Graham","Stanwick","Tiburon Pen Chmbr Commrce Inc","73 Hawkstone St","Renfrew South & Gallowhill War","Dunbartonshire","G52 4YG","01860-191930","01409-786106","gstanwick@gmail.com","http://www.tiburonpenchmbrcommrceinc.co.uk" -"Elinore","Fulda","Agri Business Insurance Agency","123 Sussex St","Astley Bridge Ward","Greater Manchester","BL1 6PY","01457-837447","01403-864306","elinore.fulda@fulda.co.uk","http://www.agribusinessinsuranceagency.co.uk" -"Lisbeth","Creecy","Gerstenfeld, Gerald F Esq","484 Barry St","Shiney Row Ward","County Durham","DH4 7RG","01931-620849","01825-623398","lcreecy@gmail.com","http://www.gerstenfeldgeraldfesq.co.uk" -"Eloisa","Faurote","Mcdonald, Michael J Esq","7033 Micawber St","Bintree","Norfolk","NR20 5NQ","01337-695353","01747-999761","eloisa.faurote@hotmail.com","http://www.mcdonaldmichaeljesq.co.uk" -"Shawana","Cantua","Best Western Riverview Inn","33 Vipond St","Woodhall Farm Ward","Hertfordshire","HP2 7JP","01413-348876","01659-621050","shawana@yahoo.com","http://www.bestwesternriverviewinn.co.uk" -"Alyssa","Ansbro","Berg, Michael D Esq","85 Hero St","Stanhope","County Durham","DL13 2TZ","01632-887825","01585-967862","alyssa_ansbro@gmail.com","http://www.bergmichaeldesq.co.uk" -"Kyoko","Mcmillian","Nature Conservancy","77 Reading St #8","North Tawton","Devon","EX20 2TR","01235-173362","01371-735347","kyoko_mcmillian@gmail.com","http://www.natureconservancy.co.uk" -"Terry","Gauthier","Walker, Susan S Esq","274 Altcar Ave","Catterick","North Yorkshire","DL10 7NU","01555-550015","01793-749131","tgauthier@yahoo.com","http://www.walkersusansesq.co.uk" -"Sena","Langenbach","Alternative Collection Svc Inc","38 Avondale Rd #79","Kilmersdon","Somerset","BA3 5SJ","01756-678490","01836-695245","sena.langenbach@hotmail.com","http://www.alternativecollectionsvcinc.co.uk" -"Cristen","Nesset","Johnson, Matthew E Esq","4679 Curzon St","Central Ward","Lancashire","BB5 0SJ","01354-864473","01994-347546","cnesset@nesset.co.uk","http://www.johnsonmattheweesq.co.uk" -"Lashawn","Ker","Thornsjo, Dale O Esq","13 Nelson Rd","Filwood Ward","Bristol","BS4 1HT","01676-780022","01470-187069","lashawn.ker@gmail.com","http://www.thornsjodaleoesq.co.uk" -"Wade","Sovel","Manhattan Supply Co Deer Pk","2546 Hunter St","Central Buchan Ward","Aberdeenshire","AB53 6YD","01712-978062","01317-960371","wade@hotmail.com","http://www.manhattansupplycodeerpk.co.uk" -"Whitney","Tishler","Clifford Standifer & Mcdowell","77 Mason St #650","Smallbridge and Firgrove Ward","Greater Manchester","OL16 3AW","01224-605237","01948-891701","whitney@gmail.com","http://www.cliffordstandifermcdowell.co.uk" -"Deja","Conatser","Universal Case Co","94 Wakefield St","Lavenham","Suffolk","CO10 9PU","01378-234592","01879-981256","deja.conatser@hotmail.com","http://www.universalcaseco.co.uk" -"Earnestine","Casper","A O J Mfg Corp","529 Stalmine Rd #3680","Saffron Walden","Essex","CB11 4DJ","01807-346103","01260-744622","earnestine_casper@hotmail.com","http://www.aojmfgcorp.co.uk" -"Frankie","Marruffo","Paralegal Personnel","52 Morningside Rd #1","Cilybebyll Community","Neath Port Talbot","SA8 3HE","01295-678319","01966-999493","fmarruffo@gmail.com","http://www.paralegalpersonnel.co.uk" -"Paola","Dease","Sunderland Publishing Co","94 Enid St","Birchington","Kent","CT7 9BG","01333-642646","01419-231768","pdease@gmail.com","http://www.sunderlandpublishingco.co.uk" -"Rodrigo","Hawkin","Godfroy, William Esq","661 Great Crosshall St","Forth Ward","City of Edinburgh","EH5 2LR","01936-611490","01280-275755","rodrigo@hotmail.com","http://www.godfroywilliamesq.co.uk" -"Luther","Alsman","Crossroads Travel Service Inc","227 Albert Terrace","Belvedere Ward","Greater London","DA17 6EF","01536-639256","01494-500403","luther@gmail.com","http://www.crossroadstravelserviceinc.co.uk" -"Casey","Dondero","Sarrail Lynch & Hall","464 Back Nile St #618","Acton Central Ward","Greater London","W3 6QJ","01728-100333","01862-338494","casey.dondero@hotmail.com","http://www.sarraillynchhall.co.uk" -"Ressie","Bontemps","Typesetters","42 Eastwood St","Walton Ward","Cambridgeshire","PE4 6HB","01996-854517","01616-608138","ressie_bontemps@bontemps.co.uk","http://www.typesetters.co.uk" -"Sean","Schurman","Cooper Electric Supply Co","2877 Grain St","Caversham Ward","Berkshire","RG4 5DE","01773-139510","01423-385669","sean.schurman@schurman.co.uk","http://www.cooperelectricsupplyco.co.uk" -"Celestina","Pince","Mcallister & Murphy Pc","13 Stockdale St #779","Abingdon on Thames","Oxfordshire","OX14 5QH","01763-475078","01434-734867","cpince@pince.co.uk","http://www.mcallistermurphypc.co.uk" -"Maira","Karas","Blanton, Mary R Attorney","9 Cropper St","Northgate Ward","West Sussex","RH10 1YJ","01582-839217","01927-384903","maira.karas@yahoo.com","http://www.blantonmaryrattorney.co.uk" -"Beth","Barbone","Upper Deck Co","3 Gaskell St","Tynemouth Ward","Tyne and Wear","NE30 2NB","01210-926114","01521-151330","bbarbone@barbone.co.uk","http://www.upperdeckco.co.uk" -"Wei","Nobel","Victory Coating","5221 Royston St","Eccleshall","Staffordshire","ST21 6GA","01912-146880","01608-570699","wei_nobel@hotmail.com","http://www.victorycoating.co.uk" -"Melissia","Slotemaker","Twining Nemia & Steflik","83 St Johns Lane #43","Linlithgow Ward","West Lothian","EH49 7LS","01515-360513","01936-295031","mslotemaker@gmail.com","http://www.twiningnemiasteflik.co.uk" -"Letha","Akey","Jeanettes Drapery & Upholstery","603 Pall Mall","Layton Ward","Lancashire","FY3 8ND","01694-424205","01605-583419","letha_akey@akey.co.uk","http://www.jeanettesdraperyupholstery.co.uk" -"Isaac","Semrad","Prugh, Pamela J Cpa","76 Dawber St #6","Blackheath Westcombe Ward","Greater London","SE3 7JY","01939-738818","01798-503274","isaac.semrad@semrad.co.uk","http://www.prughpamelajcpa.co.uk" -"Kristine","Klipfel","Neeley, Gregory W Esq","3380 Alexander St","Moulsham and Central Ward","Essex","CM1 9QQ","01710-435506","01396-935784","kristine.klipfel@yahoo.com","http://www.neeleygregorywesq.co.uk" -"Odette","Moussette","Village Business Center","216 Lissant St #8","Great Dunmow","Essex","CM6 1DQ","01712-248851","01626-260974","odette_moussette@gmail.com","http://www.villagebusinesscenter.co.uk" -"Hobert","Panfilov","Carlin, Angela G Esq","92 Phythian St #614","Gweek","Cornwall","TR11 5RR","01245-353227","01518-554407","hobert@gmail.com","http://www.carlinangelagesq.co.uk" -"Isadora","Mchughes","Fan Shop","792 Queens Rd","Stretford Ward","Greater Manchester","M32 8LR","01526-145485","01338-403471","isadora.mchughes@mchughes.co.uk","http://www.fanshop.co.uk" -"Emily","Pogorelc","Mccartney Printing Services","5196 York St","Orsett Ward","Essex","SS17 8NS","01416-913482","01439-493163","emily.pogorelc@yahoo.com","http://www.mccartneyprintingservices.co.uk" -"Desire","Barresi","Greater Cinc Schl Empl Crdt Un","428 Kearsley St","Hatton","Warwickshire","CV35 7UA","01819-701096","01970-482055","desire@gmail.com","http://www.greatercincschlemplcrdtun.co.uk" -"Rosalind","Stamps","Haar, Allen F","8 Chestnut St","Barrowford","Lancashire","BB9 6EW","01918-999052","01736-843257","rosalind.stamps@stamps.co.uk","http://www.haarallenf.co.uk" -"Vernell","Connley","Harmons","998 Roe St #6","Bellingham","Northumberland","NE48 2BX","01954-363885","01585-863534","vernell@hotmail.com","http://www.harmons.co.uk" -"Micheline","Mathieson","Mail Boxes Etc","3 Copenhagen Rd","George St","Aberdeenshire","AB25 3UZ","01857-518738","01247-541211","micheline.mathieson@yahoo.com","http://www.mailboxesetc.co.uk" -"Nathan","Outhouse","Grt Amercn Fed Svngs & Ln Assn","293 Vivian St","South Jesmond Ward","Tyne and Wear","NE2 1EY","01555-702650","01364-499130","nathan.outhouse@gmail.com","http://www.grtamercnfedsvngslnassn.co.uk" -"Allene","Burau","Allied Plastics","8 Barlow St #6","Barlow","Derbyshire","S18 7TH","01731-825958","01260-963065","allene.burau@hotmail.com","http://www.alliedplastics.co.uk" -"Julie","Sakshaug","Newton Clerk","5 Shakspeare St #66","St. Johns Ward","Hereford and Worcester","B61 8HD","01225-180983","01641-570473","julie@gmail.com","http://www.newtonclerk.co.uk" -"Francisca","Shuhi","Thompson, Chesney Md","7 Carolina St","Bodmin","Cornwall","PL31 1QF","01345-878334","01639-663121","fshuhi@shuhi.co.uk","http://www.thompsonchesneymd.co.uk" -"Marisha","Wilcoxon","Young Door Company","52 Trowbridge St","Knightsbridge and Belgravia Wa","Greater London","SW1X 9HB","01257-461104","01422-891030","marisha.wilcoxon@gmail.com","http://www.youngdoorcompany.co.uk" -"Telma","Maraia","Reliable Yard Service","25 Village St","Elgin City South Ward","Moray","IV30 1SB","01500-649863","01531-881940","telma@maraia.co.uk","http://www.reliableyardservice.co.uk" -"Luke","Crete","M D & W Railway","4 Peach St #5112","Halstead","Kent","TN14 7EF","01375-820236","01268-175772","luke.crete@crete.co.uk","http://www.mdwrailway.co.uk" -"Hubert","Mias","Chuckmaster Co","3614 Old Hall St #604","Fawley","Hampshire","SO45 2PT","01408-965643","01857-225719","hubert.mias@gmail.com","http://www.chuckmasterco.co.uk" -"Janella","Altobell","Shannon, Paul V Esq","3768 Hey Green Rd","Hartshill","Warwickshire","CV10 0TH","01746-505364","01411-597527","jaltobell@hotmail.com","http://www.shannonpaulvesq.co.uk" -"Angelo","Lavista","Computemp","97 Newlands St","Kensington and Fairfield Ward","Merseyside","L6 9DU","01544-247601","01210-307796","angelo.lavista@gmail.com","http://www.computemp.co.uk" -"Tran","Mandiola","N Rockland Educl Fed Crdt Un","6226 Maitland St","West Bromwich Central Ward","West Midlands","B70 6DR","01609-235350","01957-151083","tran.mandiola@hotmail.com","http://www.nrocklandeduclfedcrdtun.co.uk" -"Reynalda","Vanhooser","A All In One Construction","891 Crocus St","Rowley Ward","West Midlands","B65 8EZ","01951-872658","01350-811035","reynalda@vanhooser.co.uk","http://www.aallinoneconstruction.co.uk" -"Salley","Rieger","Barnett Industries Inc","1 Segrave St","Sutton Trinity Ward","West Midlands","B75 6HJ","01858-162078","01992-655281","salley.rieger@gmail.com","http://www.barnettindustriesinc.co.uk" -"Cheryll","Yurich","Blaineco Structural Movers","666 Moor Place","Shepway South Ward","Kent","ME15 8ST","01780-380120","01494-202350","cheryll_yurich@yurich.co.uk","http://www.blainecostructuralmovers.co.uk" -"Crista","Viengxay","Green Point Savings Bank","1554 Christopher St","Everton Ward","Merseyside","L6 1BG","01976-784016","01584-387727","crista@yahoo.com","http://www.greenpointsavingsbank.co.uk" -"Lino","Sutulovich","Sherpa Corp","55 Margaret Rd","Heaton Ward","Yorkshire, West","BD9 4DA","01316-590173","01980-890046","lino.sutulovich@gmail.com","http://www.sherpacorp.co.uk" -"Galen","Wendorf","Russell, Amelia Mosley Esq","8830 Antonio St","Gillingham North Ward","Kent","ME7 1DZ","01220-653456","01420-489285","galen.wendorf@wendorf.co.uk","http://www.russellameliamosleyesq.co.uk" -"Gilbert","Langarica","Inter American Press Assn","82 Sinclair St","Bangor Community","Gwynedd","LL57 1DW","01455-565046","01432-324277","gilbert.langarica@gmail.com","http://www.interamericanpressassn.co.uk" -"Whitney","Goossen","Eagle Newspapers","7568 Atlas St","Butterwick","Lincolnshire","PE22 0HY","01255-383731","01392-955534","whitney.goossen@hotmail.com","http://www.eaglenewspapers.co.uk" -"Socorro","Abrahams","Martin Morrissey","93 Clyde Rd #9","Deepdale Ward","Lancashire","PR1 6TN","01311-567052","01387-779081","socorro_abrahams@abrahams.co.uk","http://www.martinmorrissey.co.uk" -"Mauricio","Flam","Callender, William C Esq","18 Nimrod St","Walney North Ward","Cumbria","LA14 3SJ","01640-813748","01829-160968","mflam@gmail.com","http://www.callenderwilliamcesq.co.uk" -"Phillip","Aloi","Duffield, Michael C","6 Cannock St","Scarcroft","West Yorkshire","LS14 3BW","01490-898175","01867-710914","paloi@hotmail.com","http://www.duffieldmichaelc.co.uk" -"Gilberto","Erixon","Advanced Data Systems","2258 Benedict St","Penryn","Cornwall","TR10 8RP","01582-161403","01749-718702","gerixon@gmail.com","http://www.advanceddatasystems.co.uk" -"Thad","Puskarich","Drubner, Norman S Esq","9302 Ismay St #6","Tenterden","Kent","TN30 6JP","01506-152661","01686-258819","thad_puskarich@puskarich.co.uk","http://www.drubnernormansesq.co.uk" -"Bambi","Favaron","Desktop Center","3347 Lawrence Rd #456","Haverstock Ward","Greater London","NW5 4EU","01676-354943","01588-347636","bambi.favaron@yahoo.com","http://www.desktopcenter.co.uk" -"Marshall","Kozikowski","Viking Lodge","47 Elwy St","Kilpatrick Ward","West Dunbart","G81 6RT","01913-454226","01738-622885","marshall@hotmail.com","http://www.vikinglodge.co.uk" -"Chery","Wiederin","Rosenkrance, Brent","553 Picton Rd","Astley Mosley Common Ward","Greater Manchester","M29 7AA","01274-659801","01411-236922","cwiederin@yahoo.com","http://www.rosenkrancebrent.co.uk" -"Eileen","Montecalvo","Holiday House Apts","9986 Cantsfield St","St. Peters Ward","Tyne and Wear","SR6 9SD","01904-227024","01278-578708","eileen@yahoo.com","http://www.holidayhouseapts.co.uk" -"Melita","Szpak","Or Draymen & Warehousemans","1 Sussex St","Cyfarthfa Community","Merthyr Tydfil","CF48 1AR","01431-484822","01294-348695","melita.szpak@szpak.co.uk","http://www.ordraymenwarehousemans.co.uk" -"Ashley","Jessie","Haney, Tom C Md","9548 Ogwen St #84","Baguley Ward","Greater Manchester","M23 9GB","01740-739731","01598-368995","ashley_jessie@jessie.co.uk","http://www.haneytomcmd.co.uk" -"Laila","Fend","Burlington Co Library","57 St Georges Hill","Crawcrook and Greenside Ward","Tyne and Wear","NE40 4LJ","01550-206220","01624-621665","lfend@gmail.com","http://www.burlingtoncolibrary.co.uk" -"Bobbie","Guillereault","Geneva Woods Professional Ctr","385 Upper Hampton St #39","Southey Ward","South Yorkshire","S5 8LL","01496-781616","01606-682963","bguillereault@gmail.com","http://www.genevawoodsprofessionalctr.co.uk" -"Dana","Paluszynski","Chile Pepper Magazine","6378 Lyell St #48","Trossachs and Teith Ward","Stirling","FK21 8TJ","01847-224345","01907-198323","dpaluszynski@paluszynski.co.uk","http://www.chilepeppermagazine.co.uk" -"Freida","Newyear","Flash, Elena Salerno Esq","675 Falstaff St #170","Chapel-en-le-Frith","Derbyshire","SK23 0QG","01773-691786","01890-803440","freida_newyear@yahoo.com","http://www.flashelenasalernoesq.co.uk" -"Val","Cellucci","Owensboro Brick & Tile","87 Pelops St","Kings Norton Ward","West Midlands","B38 8PL","01387-155607","01488-893833","vcellucci@yahoo.com","http://www.owensborobricktile.co.uk" -"Horace","Knapp","Mouw & Celello Pc","5 Eyes St","Mid and Upper Nithsdale Ward","Dumfries and Galloway","DG4 6LF","01924-556297","01459-140651","horace.knapp@yahoo.com","http://www.mouwcelellopc.co.uk" -"Joana","Reinecke","Visiting Nur Assn Ctrl Jersey","2427 Olney St #7","Amersham","Buckinghamshire","HP6 6JH","01320-402522","01866-827990","jreinecke@reinecke.co.uk","http://www.visitingnurassnctrljersey.co.uk" -"Tiara","Schlichter","C C Industries","805 Westbank Rd","North Heywood Ward","Greater Manchester","OL10 2DU","01270-562265","01769-234788","tiara_schlichter@schlichter.co.uk","http://www.ccindustries.co.uk" -"Dacia","Swaisgood","Nelson & Paulson Chartered","36 Cranmer St #4697","Little Hereford","Shropshire","SY8 4LE","01984-926059","01275-123842","dacia.swaisgood@swaisgood.co.uk","http://www.nelsonpaulsonchartered.co.uk" -"Myong","Babineaux","Capital Thrpy & Spts Medcn Inc","2 Kirkdale Rd","Canning Town North Ward","Greater London","E16 4NF","01897-419567","01801-288675","mbabineaux@babineaux.co.uk","http://www.capitalthrpysptsmedcninc.co.uk" -"Gene","Bleile","Sun Toledo Refinery Co","4687 Atherton St","Springfield Ward","West Midlands","B11 4HB","01257-354396","01546-626491","gene_bleile@bleile.co.uk","http://www.suntoledorefineryco.co.uk" -"Kanisha","Difiora","Mata, Mario A Esq","513 Bailey St","Bontnewydd Community","Gwynedd","LL54 7UP","01770-697837","01426-535429","kanisha@gmail.com","http://www.matamarioaesq.co.uk" -"Ayesha","Moeder","Meredith Paving Corp","620 Old Leeds St","Sheviock","Cornwall","PL11 3DF","01284-871485","01800-737237","ayesha@gmail.com","http://www.meredithpavingcorp.co.uk" -"Lanie","Smalarz","Philosophical Rsrch Scty Bkstr","5149 Maria Rd","Peterlee","County Durham","SR8 5RL","01218-415062","01279-431606","lanie.smalarz@yahoo.com","http://www.philosophicalrsrchsctybkstr.co.uk" -"Jaleesa","Polintan","New Jersey Tanning Co Inc","8 Taylor St","Shrub End Ward","Essex","CO2 9LW","01507-519053","01973-332478","jpolintan@polintan.co.uk","http://www.newjerseytanningcoinc.co.uk" -"Tamekia","Flotow","All County Inc","588 Venmore St","Twickenham Riverside Ward","Greater London","TW1 2QH","01794-317624","01958-330790","tamekia.flotow@hotmail.com","http://www.allcountyinc.co.uk" -"Ula","Otey","Mail Boxes Etc","1 Newby St","Coleshill","Warwickshire","B46 3LZ","01291-565542","01581-469043","ula@hotmail.com","http://www.mailboxesetc.co.uk" -"Rosendo","Ratel","Elmark Graphics Inc","5588 Lake St #903","Crystal Palace Ward","Greater London","SE19 2TJ","01404-343160","01276-749323","rratel@yahoo.com","http://www.elmarkgraphicsinc.co.uk" -"Timmy","Lintner","Interdependence Associates Inc","9112 Hardwick St","Bowes","County Durham","DL12 9JB","01651-232745","01711-826233","tlintner@hotmail.com","http://www.interdependenceassociatesinc.co.uk" -"Zita","Speltz","Mmm Design Group","2395 Gloucester Pl","Halliwell Ward","Greater Manchester","BL1 6DS","01368-497445","01215-755682","zita_speltz@yahoo.com","http://www.mmmdesigngroup.co.uk" -"Aleisha","Lemm","Pathe Cmptr Cntrl Systems Corp","341 Birchfield St","Wareham St. Martin","Dorset","BH16 6JJ","01341-997268","01864-899304","aleisha.lemm@gmail.com","http://www.pathecmptrcntrlsystemscorp.co.uk" -"Naomi","Lavezzo","Torrefazione Italia Inc","9854 Ranelagh Place","Finedon","Northamptonshire","NN9 5EN","01469-888112","01367-310764","naomi.lavezzo@yahoo.com","http://www.torrefazioneitaliainc.co.uk" -"Aretha","Bowling","Sawyer, Robert M Esq","8 Nova Scotia","Caerphilly Community","Caerphilly","CF83 3AF","01816-462521","01486-709301","aretha@hotmail.com","http://www.sawyerrobertmesq.co.uk" -"Mila","Figuera","U S Sapporo A Inc","72 Lime Place","Old Newton with Dagworth","Suffolk","IP14 4HG","01300-650262","01573-159208","mila_figuera@yahoo.com","http://www.ussapporoainc.co.uk" -"Orville","Zuehl","Teti, Louis N Esq","907 Denman St","Crowle and Ealand","North Lincolnshire","DN17 4EN","01998-694754","01752-405851","orville_zuehl@zuehl.co.uk","http://www.tetilouisnesq.co.uk" -"Gabriele","Geschke","Levy Security Consultants Ltd","5 Garfield St #9","Milton Regis Ward","Kent","ME10 2EJ","01404-425588","01902-692529","gabriele@geschke.co.uk","http://www.levysecurityconsultantsltd.co.uk" -"Kara","Jaquish","El Adobe Inn","345 Feltwell Rd","St. Michaels and Wicksteed War","Northamptonshire","NN15 6BB","01691-316298","01503-303797","kara@yahoo.com","http://www.eladobeinn.co.uk" -"Kenny","Lin","Mcmahan Mcmahan & Brinkley","1 Towson St","Howe of Fife and Tay Coast War","Fife","KY14 6AH","01753-900033","01473-417906","kenny@lin.co.uk","http://www.mcmahanmcmahanbrinkley.co.uk" -"Vashti","Sugai","Accurate Engraving Co","4 Candia St #6","Shipston on Stour","Warwickshire","CV36 4HE","01311-723137","01528-551210","vashti@gmail.com","http://www.accurateengravingco.co.uk" -"Jordan","Handsaker","Shirleys Print Shoppe","2 Cherry Lane","Strood South Ward","Kent","ME2 2NJ","01793-443665","01964-984369","jordan_handsaker@gmail.com","http://www.shirleysprintshoppe.co.uk" -"Carisa","Degenhardt","Schwend Signs","7 Britannia Ave #875","Newton-with-Clifton","Lancashire","PR4 3RQ","01911-775929","01913-319581","carisa.degenhardt@degenhardt.co.uk","http://www.schwendsigns.co.uk" -"Audrie","Danaher","K C Products Co","63 Brunswick Sq","Llanelli Rural Community","Carmarthenshire","SA15 5YN","01344-670413","01956-885635","adanaher@yahoo.com","http://www.kcproductsco.co.uk" -"Shaunna","Rodamis","Engelbrecht Ackerman & Hassman","5 Gainsborough Rd","Newington Ward","Greater London","SE1 6EH","01658-509610","01529-959860","shaunna.rodamis@yahoo.com","http://www.engelbrechtackermanhassman.co.uk" -"Coleen","Langer","Valley Prodn Ctr For Vid & Aud","745 Goodall St #9309","Much Wenlock","Shropshire","TF13 6HB","01956-525612","01746-728526","coleen.langer@hotmail.com","http://www.valleyprodnctrforvidaud.co.uk" -"Katie","Choinski","Coastal Technologies","1267 Alderson Rd","Churchdown","Gloucestershire","GL3 2BA","01606-772920","01762-227896","katie@choinski.co.uk","http://www.coastaltechnologies.co.uk" -"Dannie","Brau","Goodfellow Agency","2 Gay St #3702","Werrington South Ward","Cambridgeshire","PE7 2QA","01675-779811","01380-595884","dbrau@brau.co.uk","http://www.goodfellowagency.co.uk" -"Ashanti","Donn","Denticator","3409 Benns Gardens","Hollington Ward","East Sussex","TN38 9NE","01352-599278","01721-697548","adonn@yahoo.com","http://www.denticator.co.uk" -"Madalyn","Dubberly","L & M Industrial Chemicals Inc","1 Lower Burlington St","Northfleet South Ward","Kent","DA11 8RN","01974-720949","01910-745476","madalyn.dubberly@gmail.com","http://www.lmindustrialchemicalsinc.co.uk" -"Santos","Signore","Gallagher, John J Esq","4706 Chapel Place #5993","Steyning","West Sussex","BN44 3DF","01614-431131","01670-346228","santos@gmail.com","http://www.gallagherjohnjesq.co.uk" -"Alyce","Flamino","Sadowski, Jeffrey A","4 Mather St","Holbrook Ward","West Midlands","CV6 4BN","01361-927368","01678-781372","alyce@yahoo.com","http://www.sadowskijeffreya.co.uk" -"Pearly","Ero","Rug Gallery","9960 Gilroy Rd","Woodhouse Ward","Greater London","N12 9JT","01329-374051","01408-866700","pero@hotmail.com","http://www.ruggallery.co.uk" -"Cherrie","Nitschke","Watson, Richard I Md","3 Burnall St","Keighley","West Yorkshire","BD20 6DA","01373-498883","01955-289452","cherrie_nitschke@yahoo.com","http://www.watsonrichardimd.co.uk" -"Maia","Shadd","Pigeon Falls State Bank","8 Bigham Rd","Deal","Kent","CT14 9QJ","01950-708083","01295-412046","maia_shadd@gmail.com","http://www.pigeonfallsstatebank.co.uk" -"Edwin","Logghe","Joseph Victor & Son Inc","950 Gordon St","Heanor and Loscoe","Derbyshire","DE75 7FZ","01366-667615","01627-549610","edwin_logghe@hotmail.com","http://www.josephvictorsoninc.co.uk" -"Leigha","Semenza","Unique Epoxy","784 Juno St #7653","North Horsham","West Sussex","RH12 4GW","01406-216625","01286-731684","lsemenza@yahoo.com","http://www.uniqueepoxy.co.uk" -"Walker","Seeger","Jim Dunnam Builder Inc","69 Chantrey St #90","Hickling","Norfolk","NR12 0YB","01245-616596","01531-463162","walker.seeger@yahoo.com","http://www.jimdunnambuilderinc.co.uk" -"Nakita","Rodrigues","Richard Mulholland Prop Inc","4 Northbrook St #600","Edmonton Green Ward","Greater London","N18 2NF","01679-150583","01607-496390","nakita_rodrigues@gmail.com","http://www.richardmulhollandpropinc.co.uk" -"Kattie","Ozane","Page, Patricia A Esq","526 Liffey St #759","Westbury","Wiltshire","BA13 3QU","01322-491007","01807-524286","kozane@gmail.com","http://www.pagepatriciaaesq.co.uk" -"Lamar","Suite","T J Boyle & Associates","6301 Dorset Rd","Harefield Ward","Greater London","UB9 6LF","01716-613102","01885-144424","lsuite@yahoo.com","http://www.tjboyleassociates.co.uk" -"Juliana","Uken","Charles S Cavadini Cic","4 Summer Seat Bootle","Moulsecoomb and Bevendean Ward","Brighton and Hove","BN2 4TL","01962-844141","01981-109913","juliana.uken@yahoo.com","http://www.charlesscavadinicic.co.uk" -"Chan","Loftin","Hydrick Law Offices","84 Walton Village","Horfield Ward","Bristol","BS7 0AX","01507-583669","01698-163177","chan@gmail.com","http://www.hydricklawoffices.co.uk" -"Delpha","Detamore","Bilar Tool & Die Inc","8 Tagus St #9814","Cleator Moor","Cumbria","CA25 5EF","01322-480025","01517-750609","delpha.detamore@yahoo.com","http://www.bilartooldieinc.co.uk" -"Floyd","Tivis","Sheplers Western Wear","770 Jamaica St","Penmaenmawr Community","Conwy","LL34 6BH","01882-970809","01838-712829","floyd_tivis@hotmail.com","http://www.sheplerswesternwear.co.uk" -"Chantell","Besong","Kelly, Mark C","11 Tetlow St","Parsons Green and Walham Ward","Greater London","SW6 4QP","01607-329400","01218-142767","chantell_besong@gmail.com","http://www.kellymarkc.co.uk" -"Martin","Fonua","Aviation Insurance Inc","7642 Ledward St","Cressington Ward","Merseyside","L19 0LN","01919-185409","01921-686016","mfonua@yahoo.com","http://www.aviationinsuranceinc.co.uk" -"Hyun","Erdman","Hall, Ronald A","1432 Rutland Ave","Uckfield","East Sussex","TN22 9EF","01594-744010","01356-404829","hyun@gmail.com","http://www.hallronalda.co.uk" -"Nada","Arey","Advanced Engineering Assocs","22 Harewood St #95","Acton Trussell and Bednall","Staffordshire","ST17 0RU","01576-627827","01822-753601","nada@hotmail.com","http://www.advancedengineeringassocs.co.uk" -"Elizabeth","Pata","Hirsch, Henry L Esq","645 Lister Drive","Denwick","Northumberland","NE66 2LQ","01634-662999","01571-674820","elizabeth@gmail.com","http://www.hirschhenrylesq.co.uk" -"Dominic","Washmuth","Bremer, Duncan S Esq","8977 Old Leeds St #87","Beaminster","Dorset","DT8 3DR","01725-615270","01722-996936","dwashmuth@hotmail.com","http://www.bremerduncansesq.co.uk" -"Alise","Packebush","Wnc Forklift Inc","22 Delamore St","Hereford","Hereford and Worcester","HR1 2EA","01266-695304","01517-702273","alise.packebush@gmail.com","http://www.wncforkliftinc.co.uk" -"Flo","Bardsley","Hancock, John J Esq","35 Walton Lane","Loughborough Ashby Ward","Leicestershire","LE11 4PF","01983-847833","01418-645161","flo.bardsley@hotmail.com","http://www.hancockjohnjesq.co.uk" -"Bonita","Sandblom","Transbay Steel Corp","22 Kilshaw St","Wimbledon Park Ward","Greater London","SW19 7DT","01989-617161","01723-502274","bsandblom@gmail.com","http://www.transbaysteelcorp.co.uk" -"Royal","Rush","Severt, Todd D Esq","1 Argyle St","Hyde Werneth Ward","Greater Manchester","SK14 5AR","01934-427282","01809-860488","royal.rush@yahoo.com","http://www.severttodddesq.co.uk" -"Erasmo","Talentino","Active Air Systems","3 Garden Lane","Darton West Ward","South Yorkshire","S75 5JY","01492-454455","01304-185373","erasmo.talentino@hotmail.com","http://www.activeairsystems.co.uk" -"Mari","Smeby","A B E Doors & Windows","4309 Chisenhale St","Rock","Hereford and Worcester","DY14 9XQ","01423-202676","01733-169475","msmeby@gmail.com","http://www.abedoorswindows.co.uk" -"Eleonora","Ventry","Jackson, Donald M Esq","758 Woodhouse St","Soho Ward","West Midlands","B21 0UE","01966-685595","01762-396161","eleonora@gmail.com","http://www.jacksondonaldmesq.co.uk" -"Therese","Shiraki","Wuhf Fox 31","18 Ouse St","Oakridge and Castlefield Ward","Buckinghamshire","HP11 2PJ","01611-691262","01703-441371","tshiraki@gmail.com","http://www.wuhffox.co.uk" -"Rodolfo","Scavuzzo","Gulf Atlantic Equipment Co Inc","5 Ruskin St","Irvine East Ward","North Ayrshire","KA11 2BP","01576-536794","01501-755479","rodolfo_scavuzzo@yahoo.com","http://www.gulfatlanticequipmentcoinc.co.uk" -"Cruz","Fanelli","Graham, John A Esq","4565 Blackstock St","Springfields and Trent Vale Wa","Stoke-on-Trent","ST4 5BW","01710-616480","01314-202428","cruz@hotmail.com","http://www.grahamjohnaesq.co.uk" -"Arlyne","Dellinger","Holzgrafe, Roger E Esq","8361 Cottenham St","Fawley","Hampshire","SO45 1QQ","01907-958462","01821-459979","arlyne.dellinger@yahoo.com","http://www.holzgraferogereesq.co.uk" -"Edward","Strejan","Kaysers Nutrition Center","1267 Audley St","Ise Lodge Ward","Northamptonshire","NN15 5DB","01242-422459","01659-505806","edward_strejan@gmail.com","http://www.kaysersnutritioncenter.co.uk" -"Christoper","Sheneman","Jones, Brigham P Esq","845 Atherton St","Tatsfield","Kent","TN16 2AR","01455-958797","01732-922087","christoper@gmail.com","http://www.jonesbrighampesq.co.uk" -"Melda","Colamarino","Proctor & Associates Co","150 Margaret Rd","Kings Hill","Kent","ME19 4DT","01879-572287","01708-292140","melda.colamarino@colamarino.co.uk","http://www.proctorassociatesco.co.uk" -"Margot","Peay","Bork, Terry D Esq","9923 Dinorben St #4838","Childs Hill Ward","Greater London","NW11 8DY","01925-895879","01913-339706","margot.peay@yahoo.com","http://www.borkterrydesq.co.uk" -"Gerald","Drozdenko","Diamond Cbnts Div Wht Cons Ind","186 Craven St #68","Little Ness","Shropshire","SY4 2JX","01593-647422","01210-465236","gdrozdenko@yahoo.com","http://www.diamondcbntsdivwhtconsind.co.uk" -"Tomoko","Renno","Trico Prods Corp","5160 High St #38","Goldsmid Ward","Brighton and Hove","BN3 6EA","01731-573285","01873-329707","tomoko@renno.co.uk","http://www.tricoprodscorp.co.uk" -"Mendy","Wassmann","Ruello, Joseph F","3833 Sidney Rd","Cherryfield Ward","Merseyside","L32 3XS","01378-845450","01509-540345","mendy.wassmann@wassmann.co.uk","http://www.ruellojosephf.co.uk" -"Daryl","Hilcher","Petaluma Area Chamber Commrce","6267 Greenland St","Wakefield East Ward","West Yorkshire","WF1 4LW","01391-238570","01517-862819","dhilcher@hotmail.com","http://www.petalumaareachambercommrce.co.uk" -"Ty","Feeback","Barnett Travel","14 Landseer Rd","Nith Ward","Dumfries and Galloway","DG1 9SY","01964-503521","01661-450622","tfeeback@gmail.com","http://www.barnetttravel.co.uk" -"King","Vanacore","Sdse Public Tv","30 Seville St","Meads Ward","East Sussex","BN20 7QU","01908-714833","01651-442812","king_vanacore@yahoo.com","http://www.sdsepublictv.co.uk" -"Isidra","Varnado","Howland Machine Corp","79 Chelmsford St","Holywell Community","Flintshire","CH8 7UP","01600-982590","01591-464964","ivarnado@varnado.co.uk","http://www.howlandmachinecorp.co.uk" -"Tonja","Driesenga","First Ozaukee Savings Bank","8 South John St","Lamport","Northamptonshire","NN6 9XW","01683-204727","01384-883931","tdriesenga@driesenga.co.uk","http://www.firstozaukeesavingsbank.co.uk" -"Shaquana","Featherston","General Truck Part & Equipment","50 Townsend St","Chadderton Central Ward","Greater Manchester","OL9 0NS","01641-726098","01327-255886","shaquana@hotmail.com","http://www.generaltruckpartequipment.co.uk" -"Gilberto","Feagins","Finlay, Joseph B Jr","7643 Campbell St","Penge and Cator Ward","Greater London","BR3 1LT","01304-758732","01315-831243","gfeagins@gmail.com","http://www.finlayjosephbjr.co.uk" -"Rex","Faehnle","Hering, Glenn Z Esq","371 Oakleigh","Warminster","Wiltshire","BA12 8NR","01955-496773","01529-779988","rfaehnle@faehnle.co.uk","http://www.heringglennzesq.co.uk" -"Adolph","Cunningham","Moorhead, Bridget Klein Esq","9874 Oakfield Rd","Redhill Ward","Tyne and Wear","SR5 5PT","01731-429712","01252-511174","adolph_cunningham@hotmail.com","http://www.moorheadbridgetkleinesq.co.uk" -"Queen","Leader","Ottumwa Glass Co","6 Princes St","East Kilbride West Ward","South Lanarkshire","G75 8YR","01567-846944","01445-288807","queen_leader@gmail.com","http://www.ottumwaglassco.co.uk" -"Rebbecca","Rufenacht","Ithaca Guitar Works Inc","4190 Seacombe St","Tiffield","Northamptonshire","NN12 8AA","01583-168158","01926-842843","rrufenacht@yahoo.com","http://www.ithacaguitarworksinc.co.uk" -"Ardella","Goldrup","Bedford Books St Martins Prs","3145 Rhyl St","Londesborough","E Riding of Yorkshire","YO43 3QE","01813-786468","01451-433176","ardella.goldrup@goldrup.co.uk","http://www.bedfordbooksstmartinsprs.co.uk" -"Dallas","Miyashiro","Em Building Products Inc","4919 Lime Grove","Whitchurch Urban","Cheshire","SY13 4HB","01356-551432","01752-585779","dallas_miyashiro@miyashiro.co.uk","http://www.embuildingproductsinc.co.uk" -"Vivan","Jenious","Mnpls Arprt Marriott","8 Carolina St","Northgate Ward","West Sussex","RH10 8EZ","01907-573672","01404-240746","vjenious@yahoo.com","http://www.mnplsarprtmarriott.co.uk" -"Han","Dzledzic","Captain Copy","1592 Price St","Ponteland","Northumberland","NE20 9TF","01532-163009","01303-831633","han_dzledzic@hotmail.com","http://www.captaincopy.co.uk" -"Emilio","Guitierrez","Register Printing Co","2 Weller St","Appleton Wiske","North Yorkshire","DL6 2AS","01845-679016","01363-466980","emilio_guitierrez@guitierrez.co.uk","http://www.registerprintingco.co.uk" -"Latia","Cos","Capitol Cadillac Company","18 Thomas St","Barnham","West Sussex","PO22 0JT","01695-303367","01871-192422","lcos@yahoo.com","http://www.capitolcadillaccompany.co.uk" -"Lilli","Cureau","A 1 Plumbers Supply","42 Hey Green Rd","Deepdale Ward","Lancashire","PR1 6TL","01752-399931","01363-139614","lilli@yahoo.com","http://www.aplumberssupply.co.uk" -"Maryanne","Siske","Levering, Charles B Esq","256 Vesuvius St #159","Stutton with Hazlewood","North Yorkshire","LS24 9UA","01455-447890","01597-966938","maryanne@hotmail.com","http://www.leveringcharlesbesq.co.uk" -"Eliz","Strimple","Karl May General Contractor","82 Denison St #2642","Holyrood Ward","Greater Manchester","M25 1JB","01699-467608","01844-754890","eliz@gmail.com","http://www.karlmaygeneralcontractor.co.uk" -"Laura","Gumaer","C Leasing Company","1779 Bird St","East Sheen Ward","Greater London","SW14 8JZ","01821-208235","01798-839362","laura_gumaer@gmail.com","http://www.cleasingcompany.co.uk" -"Leanora","Respicio","Fire Protection Consultants","99 College St South #1","Byker Ward","Tyne and Wear","NE6 2RX","01564-503370","01694-477023","lrespicio@respicio.co.uk","http://www.fireprotectionconsultants.co.uk" -"Sherell","Pomarico","Kxlt Radio (k 108 Fm)","29 Greenleaf St","Llangristiolus Community","Isle of Anglesey","LL62 5HD","01523-372834","01323-831572","spomarico@hotmail.com","http://www.kxltradiokfm.co.uk" -"Charlie","Isita","Sotorrio, Rene A Esq","39 Hooton Place","Neilston, Uplawmoor and Newton","East Renfrewshire","G78 3AB","01295-844061","01796-315694","charlie@isita.co.uk","http://www.sotorrioreneaesq.co.uk" -"Veronique","Nuckolls","Cinemax Cable Pay Tv Svce","198 Ranelagh Place","Central Buchan Ward","Aberdeenshire","AB43 6RD","01632-762032","01699-696279","vnuckolls@gmail.com","http://www.cinemaxcablepaytvsvce.co.uk" -"Antonio","Villamarin","Combs Sheetmetal","353 Standish St #8264","Little Parndon and Hare Street","Hertfordshire","CM20 2HT","01559-403415","01388-777812","antonio.villamarin@gmail.com","http://www.combssheetmetal.co.uk" -"Louvenia","Kincannon","Fineshriber, Marilyn Esq","87 Eldon Place","Read","Lancashire","BB12 7RY","01315-409372","01600-973642","lkincannon@kincannon.co.uk","http://www.fineshribermarilynesq.co.uk" -"Roxanne","Hedegore","Wallace, Bruce R Esq","592 Catharine St","Blantyre Ward","South Lanarkshire","G72 0RZ","01317-299836","01512-894063","roxanne_hedegore@gmail.com","http://www.wallacebruceresq.co.uk" -"Eve","Hoffstot","Domestic Intrntl Techlgy Ltd","1661 Arrow St","Kirk Hammerton","York","YO26 8DA","01746-129962","01314-564188","eve.hoffstot@yahoo.com","http://www.domesticintrntltechlgyltd.co.uk" -"Kenda","Koza","General Bindery Co Inc","7 Netley St","Custom House Ward","Greater London","E16 3DP","01840-188852","01476-264977","kkoza@koza.co.uk","http://www.generalbinderycoinc.co.uk" -"Elden","Mercik","Lee, Stan Dvm","7 St Edmonds Rd","Nonington","Kent","CT15 4HH","01539-784239","01550-347724","elden_mercik@mercik.co.uk","http://www.leestandvm.co.uk" -"Kami","Ferre","Chomsky, Charles Esq","6996 Wrenbury St","Foleshill Ward","West Midlands","CV6 5RS","01775-876516","01542-149965","kami@yahoo.com","http://www.chomskycharlesesq.co.uk" -"Selene","Zeng","Dustbooks","2 Prince Rupert St","West Wickham Ward","Greater London","BR3 6SX","01741-833047","01345-685146","selene@yahoo.com","http://www.dustbooks.co.uk" -"Deangelo","Rardon","Ric Lo Productions Ltd","9970 Clyde Rd","Woodham Ward","Surrey","KT15 3NW","01748-535438","01788-520912","deangelo_rardon@yahoo.com","http://www.ricloproductionsltd.co.uk" -"Olen","Ailey","Shohet, Grace C Esq","9 Fielding St","Wombourne","Staffordshire","WV5 0BB","01654-865551","01354-169004","olen@gmail.com","http://www.shohetgracecesq.co.uk" -"Lanie","Smarsh","Lbt","555 Ludlow St","Trowbridge","Wiltshire","BA14 9JB","01973-841918","01731-921990","lanie@yahoo.com","http://www.lbt.co.uk" -"Lynna","Breheny","Wky Am 930 Stereo","1 James St #4","St. Andrews Ward","Fife","KY16 9EE","01914-909214","01868-440687","lynna@yahoo.com","http://www.wkyamstereo.co.uk" -"Jody","Klitzing","Dan Dee Belt & Bag Co Inc","3 Byng St #524","Pinhoe Ward","Devon","EX1 3SF","01822-390245","01783-870336","jody_klitzing@hotmail.com","http://www.dandeebeltbagcoinc.co.uk" -"Antonio","Glasford","Saint Thomas Creations","425 Howley St","Gaer Community","Newport","NP20 3DE","01463-409090","01242-318420","antonio_glasford@glasford.co.uk","http://www.saintthomascreations.co.uk" -"Merilyn","Scurci","New York C Liquidators Inc","4041 Virgil St","Headley","Surrey","KT18 6PZ","01770-233355","01617-651554","merilyn_scurci@hotmail.com","http://www.newyorkcliquidatorsinc.co.uk" -"Elliott","Kins","John Noda A Law Ofc Lawrence E","32 High Park St #44","St. Margarets with St. Nichola","Norfolk","PE30 1QE","01727-926540","01422-984862","elliott@gmail.com","http://www.johnnodaalawofclawrencee.co.uk" -"Leonie","Devereux","Mr Bar B Q Inc","88 Vernon St","Dunbar and East Linton Ward","East Lothian","EH42 1SJ","01515-840778","01859-764851","leonie_devereux@gmail.com","http://www.mrbarbqinc.co.uk" -"Eulah","Syrop","Atec","62 Euston St","Bunhill Ward","Greater London","EC1Y 8RT","01666-133305","01295-758471","eulah@syrop.co.uk","http://www.atec.co.uk" -"Marsha","Tarry","Allgood Industries","74 Medlock St","Chorlton Park Ward","Greater Manchester","M20 1JG","01203-684728","01490-554237","marsha.tarry@yahoo.com","http://www.allgoodindustries.co.uk" -"Mignon","Luger","National Lime Association","80 Talbot St","Edgeley and Cheadle Heath Ward","Cheshire","SK3 9RD","01934-252795","01491-473626","mignon@gmail.com","http://www.nationallimeassociation.co.uk" -"Tu","Rivet","Gemini Hats & Accessories Inc","31 Buckingham Ave #3785","Cotham Ward","Bristol","BS6 5SR","01578-744350","01577-559109","tu_rivet@gmail.com","http://www.geminihatsaccessoriesinc.co.uk" -"Adelle","Schantini","Creative Photography Inc","162 Grayson St","Greenlands Ward","Lancashire","FY2 0TD","01624-595660","01938-262356","adelle_schantini@yahoo.com","http://www.creativephotographyinc.co.uk" -"Douglass","Fonnesbeck","Goodspeed, Paul E Esq","5 Webb St #8","Boothen and Oak Hill Ward","Stoke-on-Trent","ST4 1EB","01305-958705","01591-592334","douglass@fonnesbeck.co.uk","http://www.goodspeedpauleesq.co.uk" -"Evette","Mazierski","Consolidated Aluminum","8092 Firdale Rd","Stoneygate Ward","Leicester","LE5 5RE","01277-740331","01371-832134","emazierski@mazierski.co.uk","http://www.consolidatedaluminum.co.uk" -"Geraldo","Okoren","Guadalajara Bar & Grille","68 Carno St","City and Hunslet Ward","West Yorkshire","LS10 1SJ","01374-376226","01460-792423","gokoren@okoren.co.uk","http://www.guadalajarabargrille.co.uk" -"Clarinda","Pelayo","Tejas Loans","714 Moored St","Trelawnyd and Gwaenysgor Commu","Denbighshire","LL18 6DH","01902-887021","01824-104045","cpelayo@pelayo.co.uk","http://www.tejasloans.co.uk" -"Reuben","Mccorrison","Kyes Tv Channel 5","545 North John St","Cobham and Downside Ward","Surrey","KT11 2HT","01337-407282","01261-922803","reuben.mccorrison@hotmail.com","http://www.kyestvchannel.co.uk" -"Yen","Groody","Daily Advance","21 Pilgrim St","Leighton-Linslade","Bedfordshire","LU7 2NZ","01882-911812","01487-684191","ygroody@groody.co.uk","http://www.dailyadvance.co.uk" -"Tanja","Milne","Austin Periodical Services","9772 Teilo St","Hetton","Tyne and Wear","DH5 0PH","01584-615989","01646-529634","tanja.milne@yahoo.com","http://www.austinperiodicalservices.co.uk" -"Jerlene","Holtgrewe","Granite Construction Co","33 Fonthill Rd","Hodge Hill Ward","West Midlands","B36 8JE","01993-956208","01993-323238","jholtgrewe@yahoo.com","http://www.graniteconstructionco.co.uk" -"Almeta","Keehner","Hoolahan, Catherine G Esq","3 Ivyleigh","Loundsley Green Ward","Derbyshire","S40 4LW","01291-250423","01221-177854","akeehner@hotmail.com","http://www.hoolahancatherinegesq.co.uk" -"Wilda","Brigham","Morelli Hoskins Ford","501 Sandon Terrace #200","Little Clacton","Essex","CO16 9LZ","01950-109108","01300-561046","wilda@brigham.co.uk","http://www.morellihoskinsford.co.uk" -"Remedios","Arlinghaus","Miller, Martin M Esq","9 Duckenfield St","Aldbrough","E Riding of Yorkshire","HU11 4QA","01536-498792","01883-435283","remedios.arlinghaus@gmail.com","http://www.millermartinmesq.co.uk" -"Margret","Alcazar","Advantage Title & Escrow Inc","5466 Sedley St","Coatbridge South Ward","North Lanarkshire","ML5 4LJ","01626-590776","01633-731246","margret@alcazar.co.uk","http://www.advantagetitleescrowinc.co.uk" -"Denny","Casalenda","Ringo International Inc","75 Brewster St #453","Redlands Ward","Berkshire","RG1 5EX","01349-134533","01589-277770","dcasalenda@gmail.com","http://www.ringointernationalinc.co.uk" -"Carolynn","Atkison","Dorval Trading Co Ltd","7901 Beech St","St. Helier Ward","Greater London","SM4 5PY","01815-665993","01508-291713","carolynn.atkison@hotmail.com","http://www.dorvaltradingcoltd.co.uk" -"Amina","Goulbourne","Poag Grain Inc","684 Cotswold St","Victoria Ward","Greater London","E9 7NG","01536-114519","01830-969710","amina@yahoo.com","http://www.poaggraininc.co.uk" -"Janna","Przybyl","Southwest Ms Shopg Bag","5 April Rd #13","Wheatley Ward","South Yorkshire","DN1 2TU","01684-628072","01560-680129","jprzybyl@przybyl.co.uk","http://www.southwestmsshopgbag.co.uk" -"Emiko","Sayre","Scott Marlow Agency","8 Village St","Windlesham","Surrey","GU18 5YQ","01660-135336","01348-284404","emiko.sayre@yahoo.com","http://www.scottmarlowagency.co.uk" -"In","Muns","Nursefinders","7 Haddock St #34","Saint Annes on the Sea","Lancashire","FY8 3TF","01574-363346","01381-491881","in_muns@muns.co.uk","http://www.nursefinders.co.uk" -"Eleni","Vanscoik","Simpson, Fred B Esq","9 Mather St","Sutton Vesey Ward","West Midlands","B73 6HH","01208-373467","01628-638196","eleni_vanscoik@gmail.com","http://www.simpsonfredbesq.co.uk" -"Kandis","Alsbury","Fast Cash","70 Rose Vale","Reydon","Suffolk","IP18 6PE","01797-837270","01651-807856","kalsbury@hotmail.com","http://www.fastcash.co.uk" -"Kina","Saltman","Mitchell Silliman Co Inc","29 Oregon St","Ruddington","Nottinghamshire","NG11 6JT","01515-506025","01788-849591","kina_saltman@gmail.com","http://www.mitchellsillimancoinc.co.uk" -"Jacki","Sterback","Praver, David L Esq","15 East Albert Rd","Kingston Bagpuize with Southmo","Oxfordshire","OX13 5AW","01820-396117","01935-736077","jacki.sterback@gmail.com","http://www.praverdavidlesq.co.uk" -"Fallon","Kerfoot","Rotenstreich, H Andrew Esq","3186 Naylor St","Manor Castle Ward","South Yorkshire","S2 1HP","01538-649750","01505-472052","fallon.kerfoot@gmail.com","http://www.rotenstreichhandrewesq.co.uk" -"Precious","Brabble","Sigmacom Corporation","9 Herbert St #77","Shenley","Hertfordshire","WD7 9AQ","01687-288043","01800-154821","precious_brabble@brabble.co.uk","http://www.sigmacomcorporation.co.uk" -"Glory","Ona","Real Isle Properties","9830 Croxteth Rd","Pontefract North Ward","West Yorkshire","WF8 3YR","01469-868357","01535-699216","glory_ona@gmail.com","http://www.realisleproperties.co.uk" -"Tamesha","Tyburski","Liss, Amy Esq","1054 Gladys St","Bellshill Ward","North Lanarkshire","ML4 3EJ","01954-979729","01834-599647","tamesha.tyburski@gmail.com","http://www.lissamyesq.co.uk" -"Brande","Cutlip","Real Estate Appraisals Inc","921 Douro St #1520","Rhoose Community","Vale of Glamorgan","CF62 3HN","01947-472569","01502-230191","bcutlip@yahoo.com","http://www.realestateappraisalsinc.co.uk" -"Olene","Skubis","Luby, Joseph K Esq","180 Frodsham St","Grovehill Ward","Hertfordshire","HP2 7BD","01250-453315","01805-925115","olene_skubis@yahoo.com","http://www.lubyjosephkesq.co.uk" -"Carey","Marchetta","New River Tire Company Inc","7217 Edge Grove","Sharston Ward","Greater Manchester","M22 4ZB","01750-379103","01498-699971","cmarchetta@hotmail.com","http://www.newrivertirecompanyinc.co.uk" -"Launa","Torez","Farber, Mindy Esq","12 Gelling St","Trossachs and Teith Ward","Stirling","FK16 6DU","01670-547878","01919-422541","launa.torez@yahoo.com","http://www.farbermindyesq.co.uk" -"Dominga","Whitrock","Nohr, Katharine M Esq","763 Roscoe St","Lobley Hill and Bensham Ward","Tyne and Wear","NE11 0AN","01341-700830","01382-638017","dominga@whitrock.co.uk","http://www.nohrkatharinemesq.co.uk" -"Dwight","Belyea","Skuttle Mfg Co","419 St Andrew St","Tibberton","Hereford and Worcester","WR9 7NS","01822-404490","01498-287540","dbelyea@belyea.co.uk","http://www.skuttlemfgco.co.uk" -"Cornell","Mccrossin","Cheek, John D Esq","623 Cornhill","Stretton","Staffordshire","DE13 0DH","01608-748971","01279-418098","cornell.mccrossin@mccrossin.co.uk","http://www.cheekjohndesq.co.uk" -"Alverta","Topete","National Catholic Reporter","328 Havelock St #61","Addlestone Bourneside Ward","Surrey","KT15 2NL","01685-141932","01665-348077","alverta.topete@gmail.com","http://www.nationalcatholicreporter.co.uk" -"Felicia","Claybrooks","Strescon Industries Inc","1056 College St South","Chester-le-Street North and Ea","County Durham","DH2 2JZ","01722-395799","01451-992860","felicia@claybrooks.co.uk","http://www.stresconindustriesinc.co.uk" -"Carmen","Gillham","Norda, Beth Dorsey Esq","11 Denison St #7","Orford Ward","Cheshire","WA2 9QB","01692-491267","01417-973243","carmen@hotmail.com","http://www.nordabethdorseyesq.co.uk" -"Ashlee","Beyl","Indiana Electronics Corp","30 Daulby St","Brympton","Somerset","BA20 2EJ","01832-837946","01605-854121","ashlee.beyl@hotmail.com","http://www.indianaelectronicscorp.co.uk" -"Vannessa","Land","Port Delivery Systems","201 Bran St","Ashford Common Ward","Surrey","TW15 2AJ","01206-207771","01553-402712","vannessa.land@yahoo.com","http://www.portdeliverysystems.co.uk" -"Patti","Rempel","Meder, Randy F Cpa","1346 Vandyke St","Hove Park Ward","Brighton and Hove","BN3 6NS","01539-157435","01334-638031","patti@rempel.co.uk","http://www.mederrandyfcpa.co.uk" -"German","Meyerhoff","S M Copiers","883 Howe St","Clayton-le-Moors Ward","Lancashire","BB5 5TJ","01790-887225","01808-674829","german@meyerhoff.co.uk","http://www.smcopiers.co.uk" -"Anika","Marse","Milton Terry Associates","231 Wordsworth St","Harrow Weald Ward","Greater London","HA3 6TH","01942-654793","01654-746253","anika@marse.co.uk","http://www.miltonterryassociates.co.uk" -"Cristina","Marola","Pro Img Mktng & Pub Rel Inc","2449 Amberly St #6364","Temple Newsam Ward","West Yorkshire","LS15 0PQ","01264-145506","01538-230493","cmarola@gmail.com","http://www.proimgmktngpubrelinc.co.uk" -"Lemuel","Allis","Computer Security Cnslnts Inc","8430 Shadwell St","Great Barr with Yew Tree Ward","West Midlands","WS5 4SU","01580-252868","01704-416123","lemuel_allis@yahoo.com","http://www.computersecuritycnslntsinc.co.uk" -"Joaquin","Hysom","Sport Toyota","115 Lister Rd","Barnfield Ward","Lancashire","BB5 2EY","01616-548910","01475-223867","jhysom@gmail.com","http://www.sporttoyota.co.uk" -"Kerrie","Makuch","Kinkos Copies","7855 Sir Thomas St #7499","Calstock","Cornwall","PL17 8AR","01854-749084","01966-883088","kmakuch@gmail.com","http://www.kinkoscopies.co.uk" -"Alaine","Raterman","Putnam Co Inc","1 Milton St","Little Missenden","Buckinghamshire","HP16 0DH","01927-151413","01525-172423","alaine@hotmail.com","http://www.putnamcoinc.co.uk" -"Shannon","Kobayashi","Hungs","1111 Nesfield St","Tonge with the Haulgh Ward","Greater Manchester","BL2 2SU","01620-435994","01436-122588","shannon@yahoo.com","http://www.hungs.co.uk" -"Corinne","Holman","Herculite Mason Supply Inc","1831 Richards St #8","Berkhamsted","Hertfordshire","HP4 2AF","01933-753592","01857-675359","corinne@holman.co.uk","http://www.herculitemasonsupplyinc.co.uk" -"Heidy","Hallford","New England Die Co Inc","8054 Low Hill","Prestbury","Gloucestershire","GL52 3BY","01958-748582","01753-105955","hhallford@hotmail.com","http://www.newenglanddiecoinc.co.uk" -"Marylyn","Shonerd","Barker Electronics","7252 Dansie St","East Finchley Ward","Greater London","N2 9JL","01721-694690","01449-123164","marylyn_shonerd@yahoo.com","http://www.barkerelectronics.co.uk" -"Maryln","Mortenson","Mullins, Glen Esq","76 Paulton St","Lancaster Gate Ward","Greater London","W2 3JT","01618-628525","01421-574935","maryln@gmail.com","http://www.mullinsglenesq.co.uk" -"Pearlie","Flori","Marine Safety International","4 Cochrane St","Iwade","Kent","ME9 8UJ","01235-935599","01583-844244","pearlie_flori@gmail.com","http://www.marinesafetyinternational.co.uk" -"Nina","Yaklin","Ramm Metals Inc","5679 Gloucester Pl","Calton Ward","Dunbartonshire","G40 4BH","01434-621318","01370-171283","nyaklin@hotmail.com","http://www.rammmetalsinc.co.uk" -"Vivienne","Torrain","Finley Colmer & Co","45 Ledward St","Wilsden","West Yorkshire","BD15 0NJ","01782-100832","01377-242360","vivienne@hotmail.com","http://www.finleycolmerco.co.uk" -"Jacob","Kippel","Acc Automation Inc","4 Monmouth Rd","Llwyn-y-Pia Community","Rhondda Cynon Taff","CF40 2JJ","01550-463222","01567-215689","jacob.kippel@yahoo.com","http://www.accautomationinc.co.uk" -"Tula","Nahmias","Anstoetter, Mark D Esq","64 Croyland St","Clackmannanshire South Ward","Clackmannanshire","FK10 2LA","01846-815511","01320-223056","tnahmias@nahmias.co.uk","http://www.anstoettermarkdesq.co.uk" -"Berry","Scandalis","American Fine Foods Inc","4 Vivian St","Corporation Park Ward","Lancashire","BB2 6LB","01379-603039","01375-150068","berry.scandalis@gmail.com","http://www.americanfinefoodsinc.co.uk" -"Kaycee","Carsten","Dohn Law Offices Inc Ps","35 Dublin St","Cirencester","Gloucestershire","GL7 2EY","01270-893129","01837-463418","kaycee.carsten@gmail.com","http://www.dohnlawofficesincps.co.uk" -"Melvin","Setter","Rex Internatl","87 Pickup St","Franche Ward","Hereford and Worcester","DY10 2ZQ","01401-151569","01938-566719","melvin_setter@setter.co.uk","http://www.rexinternatl.co.uk" -"Brianne","Matsumura","Bender & Associates","7 Cottenham St","Mossend and Holytown Ward","North Lanarkshire","ML1 4TD","01519-417660","01979-425319","brianne@matsumura.co.uk","http://www.benderassociates.co.uk" -"Eugene","Pelzer","Fashion Corner Inc","622 Holmes St","Heath Town Ward","Staffordshire","WV10 0AW","01839-920108","01413-591144","eugene_pelzer@gmail.com","http://www.fashioncornerinc.co.uk" -"Margery","Rohrs","C G Mccullough Insurance Agcy","40 Peters Lane","Long Preston","North Yorkshire","BD23 4NF","01634-340524","01933-273913","margery@hotmail.com","http://www.cgmcculloughinsuranceagcy.co.uk" -"Noel","Sarra","Orkin Exterminating Co Inc","2 Cockburn St","Seaham","County Durham","SR7 0AR","01868-736780","01874-679913","nsarra@gmail.com","http://www.orkinexterminatingcoinc.co.uk" -"Beula","Lingo","Bauer Coatings","65 Oban Rd","St. Austell","Cornwall","PL25 5AH","01322-144392","01525-977834","beula_lingo@yahoo.com","http://www.bauercoatings.co.uk" -"Sheridan","Mckenize","Word & Image Workshop Inc","31 Davy St","Aveton Gifford","Devon","TQ7 4NF","01512-765064","01776-874349","sheridan.mckenize@hotmail.com","http://www.wordimageworkshopinc.co.uk" -"Dino","Meinert","Container Decorating Inc","80 Ellerslie Rd","Trotton with Chithurst","West Sussex","GU31 5JN","01802-634391","01636-635483","dino.meinert@yahoo.com","http://www.containerdecoratinginc.co.uk" -"Rebbeca","Rubinstein","Cullen, Jack J Esq","4 Sherwood St","Speke-Garston Ward","Merseyside","L24 6SH","01708-724957","01862-469721","rebbeca_rubinstein@hotmail.com","http://www.cullenjackjesq.co.uk" -"Celia","Reisling","Bridger Valley General Store","8362 Whithorn St","Leatherhead South Ward","Surrey","KT22 8AP","01309-159593","01299-509105","celia.reisling@hotmail.com","http://www.bridgervalleygeneralstore.co.uk" -"Stefania","Weatherwax","Robert Vance Ltd","25 Dale St #2","Kirkintilloch East and Twechar","East Dunbartonshire","G66 3LX","01698-705920","01879-295373","sweatherwax@yahoo.com","http://www.robertvanceltd.co.uk" -"Leah","Luchterhand","Safeguard Chemical Corp","68 Scotland Place","Loughborough Hastings Ward","Leicestershire","LE11 2NX","01777-851028","01615-475126","leah@hotmail.com","http://www.safeguardchemicalcorp.co.uk" -"Billy","Selma","Taylor Inn","338 Alfonso Rd","Alphington Ward","Devon","EX2 8LL","01270-345115","01907-239135","billy.selma@yahoo.com","http://www.taylorinn.co.uk" -"Doug","Lucore","Barr, Albert S Iii","65 Rankin St","Woodford cum Membris","Northamptonshire","NN11 3QR","01943-467489","01744-123819","dlucore@yahoo.com","http://www.barralbertsiii.co.uk" -"Veronica","Mcclodden","Las Vegas Art Museum","8 Cookson St","Temple Newsam Ward","West Yorkshire","LS15 9EP","01456-906658","01238-284853","veronica@hotmail.com","http://www.lasvegasartmuseum.co.uk" -"Laquanda","Kho","Bayou Welding Works Inc","7 Lockhart St","Billesley Ward","West Midlands","B14 5HS","01725-370369","01271-465942","laquanda.kho@yahoo.com","http://www.bayouweldingworksinc.co.uk" -"Mohammad","Poitra","Kenyon, William R Esq","363 Vandries St","Milton Ward","Essex","SS0 7TF","01705-240007","01216-234330","mpoitra@yahoo.com","http://www.kenyonwilliamresq.co.uk" -"Mozell","Westad","Fox Vision Center","8 Gertrude St","Mossley","Greater Manchester","OL5 0QJ","01348-989703","01766-783716","mozell.westad@westad.co.uk","http://www.foxvisioncenter.co.uk" -"Bronwyn","Bridgford","Edgemere Finance Company","826 Rumney Rd West #7","Dingwall and Seaforth Ward","Highland","IV15 9SD","01407-312329","01917-604110","bronwyn.bridgford@yahoo.com","http://www.edgemerefinancecompany.co.uk" -"Jeff","Brossoit","Jeh Construction Co","954 Madelaine St","Central Ward","Wiltshire","SN5 8WG","01593-501965","01383-683074","jeff.brossoit@yahoo.com","http://www.jehconstructionco.co.uk" -"Shantay","Hopman","Smith & Dekay Ps","7602 Brook St #86","Broomhill Ward","Nottinghamshire","NG18 9SZ","01516-850881","01252-239714","shopman@hopman.co.uk","http://www.smithdekayps.co.uk" -"Chantay","Jirsa","Posey Company","966 Bower St","Frimley Green Ward","Surrey","GU16 9BB","01721-910475","01324-899303","chantay_jirsa@jirsa.co.uk","http://www.poseycompany.co.uk" -"Keneth","Stpierrie","Mueller Repro Blue Printg","2 Seacombe St","Littleborough Lakeside Ward","Greater Manchester","OL15 0JP","01919-731224","01325-412836","keneth_stpierrie@hotmail.com","http://www.muellerreproblueprintg.co.uk" -"Alton","Rampy","Reliable Metalcraft Inc","83 Battenburg St","Girvan and South Carrick Ward","South Ayrshire","KA26 0DY","01767-568989","01506-160673","alton_rampy@gmail.com","http://www.reliablemetalcraftinc.co.uk" -"Patrick","Teisberg","Dworkin, Michael L","2 Whitefield Rd","Leigh-on-Sea","Essex","SS9 2DJ","01842-131065","01217-730044","patrick@hotmail.com","http://www.dworkinmichaell.co.uk" -"Theron","Merriam","Percival, Mark R Esq","869 Luke St","Wonersh","Surrey","GU5 0QU","01655-809574","01859-311417","theron@merriam.co.uk","http://www.percivalmarkresq.co.uk" -"Pilar","Seelig","Demer Normann Smith Ltd","4 Ogwen St","Chichester","West Sussex","PO19 9PF","01356-866584","01814-760513","pilar@yahoo.com","http://www.demernormannsmithltd.co.uk" -"Lashunda","Argiro","Kluza Associates","205 Forge St #4021","Stainburn","North Yorkshire","LS21 2LS","01422-728149","01653-381714","lashunda@yahoo.com","http://www.kluzaassociates.co.uk" -"Verda","Chiphe","Ardrox","999 Upper Harrington St #61","Earlestown Ward","Merseyside","WA12 9WX","01754-426672","01349-935774","vchiphe@chiphe.co.uk","http://www.ardrox.co.uk" -"Ashley","Tropp","Everythings A Dollar","3 Greenleaf St #5644","Blyth","Northumberland","NE24 2RY","01951-324927","01602-307715","ashley.tropp@gmail.com","http://www.everythingsadollar.co.uk" -"Vesta","Havely","Tool Service Company Inc","493 Wellington Rd","Upper Rawcliffe-with-Tarnacre","Lancashire","PR3 0UH","01772-461124","01571-126025","vhavely@havely.co.uk","http://www.toolservicecompanyinc.co.uk" -"Emogene","Ritthaler","Mcdonald Service Station","1257 Stone St","Northwood Ward","Greater London","HA6 1AN","01681-212638","01638-969550","emogene.ritthaler@yahoo.com","http://www.mcdonaldservicestation.co.uk" -"Shayne","Mordhorst","Don Allen & Associates Pa","1 Bousfield St","Shrewsbury","Shropshire","SY3 8NG","01286-279043","01450-144052","smordhorst@mordhorst.co.uk","http://www.donallenassociatespa.co.uk" -"Franchesca","Charry","Cappello, A Barry Esq","59 Westminster Rd","Empress Ward","Hampshire","GU14 8AY","01748-827176","01707-624969","franchesca@gmail.com","http://www.cappelloabarryesq.co.uk" -"Elmira","Ringlein","Hyland, Richard S Esq","143 Clark St #802","Halliwell Ward","Greater Manchester","BL1 2PS","01934-672498","01347-140077","eringlein@gmail.com","http://www.hylandrichardsesq.co.uk" -"Destiny","Madlem","Diesel Recon","421 Monument Place #44","Hartburn Ward","Stockton-on-Tees","TS21 1BA","01421-624966","01819-393510","destiny@yahoo.com","http://www.dieselrecon.co.uk" -"Gaston","Szumski","Red Giant Foods Inc","8 Gullett St","West Garioch Ward","Aberdeenshire","AB51 0HT","01651-911453","01923-233578","gaston.szumski@hotmail.com","http://www.redgiantfoodsinc.co.uk" -"Ronna","Mittler","Bethesda Gazette","2767 Pembroke St #979","Roundway","Wiltshire","SN10 3FQ","01214-651738","01794-156776","ronna_mittler@hotmail.com","http://www.bethesdagazette.co.uk" -"Angelica","Poisso","Chemical Consultants","47 Orry St #8243","Castleford Central and Glassho","West Yorkshire","WF10 4DW","01472-449327","01758-700994","apoisso@gmail.com","http://www.chemicalconsultants.co.uk" -"Casie","Arzilli","Wenatchee Valley Fed Crdt Un","5 Noon St","Melton Dorian Ward","Leicestershire","LE13 0RG","01289-195823","01372-334070","casie@gmail.com","http://www.wenatcheevalleyfedcrdtun.co.uk" -"Magdalene","Cocherell","Southern Interiors Inc","510 Belvidere Rd","Patching Hall Ward","Essex","CM1 4BY","01546-162965","01420-141828","magdalene_cocherell@yahoo.com","http://www.southerninteriorsinc.co.uk" -"Erasmo","Gath","Pan Optx","860 Rokeby St","Sunningdale","Berkshire","SL5 0AZ","01445-796544","01650-307192","egath@hotmail.com","http://www.panoptx.co.uk" -"Rosalia","Ziv","Arias, Michele Ann Md","9362 Solomon St #97","Castle Ward","Northamptonshire","NN8 4DR","01414-349699","01552-437406","rosalia.ziv@ziv.co.uk","http://www.ariasmicheleannmd.co.uk" -"Lyda","Cronholm","Print Shop","916 Strand St #4753","Leek","Staffordshire","ST13 5AW","01672-538356","01347-674237","lyda.cronholm@cronholm.co.uk","http://www.printshop.co.uk" -"Lisandra","Stueber","Wstu 1450 Am Radio Station","5 Bentinck St","Churchill Ward","Greater London","SW1V 3EW","01831-806301","01876-118051","lisandra_stueber@hotmail.com","http://www.wstuamradiostation.co.uk" -"Sabina","Prok","T J Ward & Associates Inc","954 Birchdale Rd","Aspley Ward","Nottinghamshire","NG8 5PY","01932-112259","01304-274937","sabina.prok@prok.co.uk","http://www.tjwardassociatesinc.co.uk" -"Elenore","Gomoran","Bell Service Systems Inc","7 Great Orford St","Callington","Cornwall","PL17 7DT","01470-383444","01863-322796","elenore_gomoran@yahoo.com","http://www.bellservicesystemsinc.co.uk" -"Brynn","Capra","Magic Valley Irrigation Supply","488 Mulberry St","Ravenshead","Nottinghamshire","NG15 9AE","01963-124789","01702-314016","brynn_capra@yahoo.com","http://www.magicvalleyirrigationsupply.co.uk" -"Leeann","Flory","Fleetwood Area School District","1761 Johnstone St","Church Langley Ward","Essex","CM17 9TZ","01906-807997","01997-771926","leeann@gmail.com","http://www.fleetwoodareaschooldistrict.co.uk" -"Janet","Steimer","Alaska State Troopers","8899 Mere Lane","Midlothian West Ward","City of Edinburgh","EH20 9SJ","01506-627051","01698-817116","janet_steimer@hotmail.com","http://www.alaskastatetroopers.co.uk" -"Lewis","Mellom","Lasting Impressions","6 St Hilda St","Central Ward","South Yorkshire","S1 1EQ","01954-643657","01511-606180","lewis@yahoo.com","http://www.lastingimpressions.co.uk" -"Jestine","Driscol","Glass Express","2725 Underley St #6452","Grangemouth Ward","Falkirk","FK3 8UB","01257-928278","01811-872937","jestine_driscol@driscol.co.uk","http://www.glassexpress.co.uk" -"Tatum","Parks","Quantum Consultants Inc","6061 Back Nile St","Rhos-on-Sea Community","Conwy","LL28 4NL","01567-457572","01818-141397","tparks@parks.co.uk","http://www.quantumconsultantsinc.co.uk" -"Kayleigh","Bendle","J A Associates","9735 Linton St #2284","Kingswells","Aberdeenshire","AB16 7RW","01312-772111","01355-733333","kayleigh.bendle@bendle.co.uk","http://www.jaassociates.co.uk" -"Lili","Imondi","Ide Haigney & Radio","9 Herbert St","Blyth","Northumberland","NE24 3DQ","01600-986258","01934-479439","lili_imondi@hotmail.com","http://www.idehaigneyradio.co.uk" -"Sunshine","Senechal","Dale, George F Esq","40 Cairo St","Warwick","Warwickshire","CV34 5LQ","01416-686933","01839-700945","sunshine.senechal@hotmail.com","http://www.dalegeorgefesq.co.uk" -"Remona","Heier","M A C Insurance Agency","7199 St Clare Rd","Inverclyde South Ward","Inverclyde","PA16 7BT","01718-274321","01967-508345","remona.heier@heier.co.uk","http://www.macinsuranceagency.co.uk" -"Gail","Carris","Audrey M Borland Studios","6 Conyers St #3346","Hamilton South Ward","South Lanarkshire","ML3 7TE","01292-196869","01547-190531","gcarris@hotmail.com","http://www.audreymborlandstudios.co.uk" -"Dong","Oropeza","Mayo, Timothy L Esq","8657 Cedar St #2","Kinross-shire Ward","Perth and Kinross","KY13 8EQ","01573-788734","01955-221720","doropeza@hotmail.com","http://www.mayotimothylesq.co.uk" -"Larue","Ocacio","Hollett, Byron P Esq","8 Jacob St","Daybrook Ward","Nottinghamshire","NG5 6JB","01577-443040","01654-933782","larue@yahoo.com","http://www.hollettbyronpesq.co.uk" -"Goldie","Sonkens","Veri Nu Products Corp","6174 Botanic Pl","Ravensthorpe Ward","Cambridgeshire","PE3 7BJ","01867-720033","01523-949034","gsonkens@sonkens.co.uk","http://www.verinuproductscorp.co.uk" -"Shelia","Plues","Schen, Sanford E Md","9730 Dunnet St","Silloth-on-Solway","Cumbria","CA7 4RB","01818-260618","01574-927461","shelia@gmail.com","http://www.schensanfordemd.co.uk" -"Narcisa","Araiza","Danka Business Systems","8783 High St","Milton","Cambridgeshire","CB24 6ZR","01724-644767","01689-339758","naraiza@hotmail.com","http://www.dankabusinesssystems.co.uk" -"Evelynn","Frede","Hasselberg, Michael R Esq","8 Breckfield Road North","Seaham","County Durham","SR7 0AZ","01289-621482","01571-460710","evelynn.frede@gmail.com","http://www.hasselbergmichaelresq.co.uk" -"Arlean","Calaf","Ed Miniat Inc","82 Waterhouse Lane","Llantrisant Community","Rhondda Cynon Taff","CF72 8LB","01448-395723","01407-700390","acalaf@yahoo.com","http://www.edminiatinc.co.uk" -"Tamra","Yu","Davis Commercial Contracting","2 Park Rd Walton #4338","Lansdown Ward","Gloucestershire","GL50 2LF","01891-816938","01635-523740","tamra.yu@hotmail.com","http://www.daviscommercialcontracting.co.uk" -"Dusti","Maricle","Garton, Jeffrey P Esq","59 Charles St","Victoria Ward","Kent","TN23 4GF","01642-202972","01806-219415","dusti@gmail.com","http://www.gartonjeffreypesq.co.uk" -"Aracelis","Donham","Sm Toth Baldridge & Van Belkum","593 Kinglake St","Fowlmere","Cambridgeshire","SG8 7TP","01924-111018","01420-311467","aracelis.donham@hotmail.com","http://www.smtothbaldridgevanbelkum.co.uk" -"Filiberto","Fredrikson","Westoaks Glass","404 Aigburth St #4246","Audley Ward","Lancashire","BB1 2AA","01559-323337","01727-322116","filiberto_fredrikson@gmail.com","http://www.westoaksglass.co.uk" -"Leana","Stackpole","Direct Tools & Fasteners","690 Copenhagen Rd","Warham","Norfolk","NR23 1NJ","01248-325090","01386-257445","lstackpole@yahoo.com","http://www.directtoolsfasteners.co.uk" -"Man","Homer","Applied Robotic Tech Inc","7 Canton St","Mildmay Ward","Greater London","N1 4RF","01590-219449","01855-550515","man.homer@gmail.com","http://www.appliedrobotictechinc.co.uk" -"Lennie","Asley","Air Tech Streamlining","79 Pine St","Radcliffe West Ward","Greater Manchester","M26 1GH","01585-487560","01802-349902","lennie_asley@gmail.com","http://www.airtechstreamlining.co.uk" -"Arletta","Naomi","E Zaks & Co","9 Lodwick St","City and Hunslet Ward","West Yorkshire","LS1 8HZ","01255-805722","01518-773815","arletta_naomi@naomi.co.uk","http://www.ezaksco.co.uk" -"Chana","Perera","Olden Camera & Lens Co Inc","9 Ogwen St","Murdostoun Ward","North Lanarkshire","ML2 8LW","01477-796750","01858-335054","chana.perera@hotmail.com","http://www.oldencameralenscoinc.co.uk" -"Nell","Pao","Madaus, Gerald F Jr","1730 Seymour St","Eastbrook Ward","Brighton and Hove","BN41 1QH","01308-582144","01773-576318","npao@gmail.com","http://www.madausgeraldfjr.co.uk" -"Antonio","Heilig","Radisson Suite Hotel","35 Elton St #3","Ipplepen","Devon","TQ12 5LL","01324-171614","01442-946357","antonio.heilig@gmail.com","http://www.radissonsuitehotel.co.uk" -"Gerald","Kernagis","Digital Solutions Inc","8 Hinton St #8241","Stowting","Kent","TN25 6BQ","01504-620944","01685-678054","gerald_kernagis@kernagis.co.uk","http://www.digitalsolutionsinc.co.uk" -"Sueann","Mandril","El Hispanic News","751 Stamford St","Werrington","Staffordshire","ST9 0AH","01886-226100","01717-449960","smandril@hotmail.com","http://www.elhispanicnews.co.uk" -"Alayna","Hoyal","South Bldg Code Congres","70 Royal St","Banchory and Mid Deeside Ward","Aberdeenshire","AB31 4AH","01964-720542","01983-132813","alayna_hoyal@hotmail.com","http://www.southbldgcodecongres.co.uk" -"Talia","Marthe","Kenney Mfg Co","5 Minerva St","Westbury","Wiltshire","BA13 3QR","01711-170147","01607-480159","talia.marthe@gmail.com","http://www.kenneymfgco.co.uk" -"Pansy","Kopan","Oncor Inc","1 Northampton St","Madeley","Shropshire","TF7 4GA","01674-842315","01627-571972","pansy@kopan.co.uk","http://www.oncorinc.co.uk" -"Royce","Saik","Best Western Caprock Inn","2 Maple Grove","Kincorth","Aberdeenshire","AB12 5EJ","01972-770618","01431-812225","royce@hotmail.com","http://www.bestwesterncaprockinn.co.uk" -"Cherelle","Sorrel","Wiltgen, Nancy A Esq","794 Hook St","Benwell and Scotswood Ward","Tyne and Wear","NE15 7JA","01753-327307","01212-458253","cherelle_sorrel@gmail.com","http://www.wiltgennancyaesq.co.uk" -"Dudley","Dibartolo","Mcknight, H Vincent Jr","91 Ludlow St","Woodhouse Ward","Greater London","N12 0EF","01997-409950","01722-935404","dudley_dibartolo@yahoo.com","http://www.mcknighthvincentjr.co.uk" -"Nettie","Aldaco","Miller Searl & Fitch","51 Freehold St #224","Wheatley Ward","Yorkshire, South","DN2 4PP","01388-974910","01681-983353","nettie.aldaco@yahoo.com","http://www.millersearlfitch.co.uk" -"Carline","Bulcao","Brenner, Steven G Esq","7 Hey Green Rd #4","Rothwell Ward","West Yorkshire","LS26 8XE","01885-707109","01381-330004","carline@yahoo.com","http://www.brennerstevengesq.co.uk" -"Shanda","Lunger","Western Packing Co","2476 Marsh St","Markhouse Ward","Greater London","E17 8NP","01329-303595","01620-180931","slunger@gmail.com","http://www.westernpackingco.co.uk" -"Emilio","Withers","Ardent Studios Inc","597 Threlfall St #72","Stokenham","Devon","TQ7 2HS","01523-697097","01890-447894","emilio_withers@yahoo.com","http://www.ardentstudiosinc.co.uk" -"Lovetta","Study","Borton Petrini & Conron","1 Jervis St","High Barnet Ward","Greater London","EN5 4LH","01593-438141","01424-249976","lovetta@study.co.uk","http://www.bortonpetriniconron.co.uk" -"Felice","Gone","A F Supl Co Div Automtc Firing","7602 Grantham St","Hexham","Northumberland","NE46 1QQ","01691-816025","01888-857515","felice.gone@hotmail.com","http://www.afsuplcodivautomtcfiring.co.uk" -"Stefania","Leadbeater","Murray Whisnant Architects","10 Carisbrooke St","Shorne","Kent","DA12 3ED","01706-546951","01356-906646","stefania_leadbeater@hotmail.com","http://www.murraywhisnantarchitects.co.uk" -"Margarita","Orloski","1893 Shops","78 Pine Grove","Stannington Ward","South Yorkshire","S6 5HE","01215-422453","01958-497953","margarita_orloski@yahoo.com","http://www.shops.co.uk" -"Paul","Farrin","Dering, James E Esq","7 Varthen St","Town Ward","Kent","DA1 2DL","01407-775572","01879-963638","paul.farrin@farrin.co.uk","http://www.deringjameseesq.co.uk" -"Anglea","Tritten","Waltons Carson Gardens","8 Thomaston St","Astley Bridge Ward","Greater Manchester","BL1 8RG","01818-292728","01436-350784","anglea_tritten@hotmail.com","http://www.waltonscarsongardens.co.uk" -"Ona","Bowhall","Cohen And Fromm Pc","527 Harding St","Market Rasen","Lincolnshire","LN8 3AD","01467-554624","01984-207421","ona@yahoo.com","http://www.cohenandfrommpc.co.uk" -"Germaine","Hascall","Prg Company","1616 Menzies St #453","Tadworth and Walton Ward","Surrey","KT20 7PA","01366-388506","01957-962781","ghascall@hotmail.com","http://www.prgcompany.co.uk" -"Vicky","Schellenberge","Medlab Environmental Test Inc","3922 Leda St","Moreton Morrell","Warwickshire","CV35 9BX","01625-805645","01602-772009","vschellenberge@hotmail.com","http://www.medlabenvironmentaltestinc.co.uk" -"Carolann","Gross","Leem Company Inc","6352 Grosvenor St","Wombourne","Staffordshire","WV5 0LP","01470-609953","01672-859754","carolann@gross.co.uk","http://www.leemcompanyinc.co.uk" -"Rusty","Adelsperger","Clarke, James H Esq","4313 Princes Park Terrace","Launceston","Cornwall","PL15 9QN","01467-172590","01338-121225","rusty.adelsperger@yahoo.com","http://www.clarkejameshesq.co.uk" -"Cassandra","Bludworth","Lykes Bros Inc","9 Sydney Place","Henllan Community","Conwy","LL16 5AF","01903-614855","01583-648675","cbludworth@yahoo.com","http://www.lykesbrosinc.co.uk" -"Teresita","Gesell","Mason Insurance Agency Inc","2015 Suburban Rd","Springfield Ward","Greater London","N16 6TD","01914-501391","01372-236506","teresita_gesell@hotmail.com","http://www.masoninsuranceagencyinc.co.uk" -"Evangelina","Gius","J T Painting Corp","769 Euston St","Glastonbury","Somerset","BA6 8EY","01563-997671","01377-310696","evangelina.gius@yahoo.com","http://www.jtpaintingcorp.co.uk" -"Marlon","Tromblay","Solomon Metals Inc","46 Stevenson St","West End Ward","Dundee City","DD1 5EF","01919-394681","01869-607955","mtromblay@yahoo.com","http://www.solomonmetalsinc.co.uk" -"Quiana","Scarsella","Looking Good","1400 Ash St","Thorpe Hamlet Ward","Norfolk","NR1 4HS","01446-936944","01492-687388","quiana_scarsella@hotmail.com","http://www.lookinggood.co.uk" -"Viki","Humeniuk","Guldstrand Engineering Inc","8822 Trafalgar St","Yalding","Kent","ME18 6JE","01721-747819","01381-985978","vhumeniuk@gmail.com","http://www.guldstrandengineeringinc.co.uk" -"Domitila","Weissmann","Ciocia, James A Esq","28 Berwick St","Moordown Ward","Bournemouth","BH9 1TT","01606-833878","01928-189722","domitila@gmail.com","http://www.ciociajamesaesq.co.uk" -"Ivan","Aronov","Center For Pediatrics","94 Regent St","Over Kellet","Lancashire","LA6 1DB","01478-392232","01410-877250","ivan@gmail.com","http://www.centerforpediatrics.co.uk" -"Anabel","Baldock","William A Geppert True Value","30 Marine Parade #1","Staina Ward","Lancashire","FY5 4FN","01994-675650","01845-742562","anabel_baldock@hotmail.com","http://www.williamagepperttruevalue.co.uk" -"Carlton","Blyler","Hardware Specialty Co Inc","8 Pim Hill St","Portobello","City of Edinburgh","EH15 2HW","01437-681317","01604-200932","carlton@blyler.co.uk","http://www.hardwarespecialtycoinc.co.uk" -"Rashida","Vera","Creative Consultants","8451 Bengel St","Brixham","Devon","TQ5 9JW","01286-317691","01913-489634","rashida@hotmail.com","http://www.creativeconsultants.co.uk" -"Sherron","Knodel","Fhk Corp","159 Carlton St","Windle Ward","Merseyside","WA10 6QG","01481-744296","01222-556548","sherron@knodel.co.uk","http://www.fhkcorp.co.uk" -"Cora","Mossing","Regis Brd Pro Engrs & Land","38 Raffles St","Newmarket","Cambridgeshire","CB8 8QE","01285-381062","01699-194090","cora@yahoo.com","http://www.regisbrdproengrsland.co.uk" -"Altha","Tischner","Male Power Ltd","650 Goring St","Rainham South Ward","Kent","ME8 9PN","01373-594236","01698-785700","altha@hotmail.com","http://www.malepowerltd.co.uk" -"Dortha","Yaccarino","Atc Power Systems","6 Chestnut St","Gwersyllt Community","Wrexham","LL11 4RJ","01528-240870","01254-458143","dortha@hotmail.com","http://www.atcpowersystems.co.uk" -"Diego","Augle","Farmers Electric Co Op Inc","4 Peover St","Walcot Ward","Bath Avon","BA1 6EF","01275-397587","01933-666689","diego.augle@gmail.com","http://www.farmerselectriccoopinc.co.uk" -"Peggy","Khov","Goldberg, Stephen M Esq","328 Pallas St","Longford Ward","Greater Manchester","M32 8LJ","01619-237602","01648-417310","peggy.khov@gmail.com","http://www.goldbergstephenmesq.co.uk" -"Walton","Yuki","Best Wstrn Host Mtr Htl Palm","9 Waltham Rd","Yealmpton","Devon","PL8 2NS","01872-808403","01885-290666","wyuki@gmail.com","http://www.bestwstrnhostmtrhtlpalm.co.uk" -"Vallie","Yafaie","Micro Lan","352 Strathmore Rd","Shiphay-with-the-Willows Ward","Devon","TQ2 7JB","01251-120872","01630-603260","vyafaie@hotmail.com","http://www.microlan.co.uk" -"Tony","Diazdeleon","Dilling Harris Inc","529 Llanrwst St","Southam","Gloucestershire","GL52 8TW","01765-102036","01877-593275","tony@gmail.com","http://www.dillingharrisinc.co.uk" -"Val","Villot","Horizon Air Magazine","1980 Tynemouth St","Almond Ward","West Lothian","EH52 5PY","01375-870188","01602-987840","val@yahoo.com","http://www.horizonairmagazine.co.uk" -"Mel","Picciuto","Avante Limited","8598 Rumney Rd","Hylands Ward","Essex","RM11 1QL","01885-270480","01268-443299","mel.picciuto@gmail.com","http://www.avantelimited.co.uk" -"Isabella","Piatkowski","Miller, William E Iii","9283 Ruth St #81","Dormers Wells Ward","Greater London","UB1 2FH","01979-186995","01998-980054","isabella_piatkowski@piatkowski.co.uk","http://www.millerwilliameiii.co.uk" -"Erasmo","Rhea","Martin Morrissey","5544 Sutherland St","Mortehoe","Devon","EX34 7DQ","01507-386397","01899-316385","erasmo_rhea@hotmail.com","http://www.martinmorrissey.co.uk" -"Ivory","Lohrenz","Auto Body Color","9 Jackson St","Parr Ward","Merseyside","WA9 3QW","01876-642683","01651-132519","ivory@hotmail.com","http://www.autobodycolor.co.uk" -"Nikita","Walka","Fred, Anthony Esq","3612 Bixteth St","Hucknall North Ward","Nottinghamshire","NG15 8DD","01282-123434","01724-455145","nwalka@hotmail.com","http://www.fredanthonyesq.co.uk" -"Aleta","Ligons","Advantage Bookkeeping","4545 Victoria Rd","Kilbirnie and Beith Ward","North Ayrshire","KA15 1AT","01952-535977","01715-637895","aleta_ligons@hotmail.com","http://www.advantagebookkeeping.co.uk" -"Owen","Jentzen","Capital Fasteners Inc","5 Hampden St","Liscard Ward","Merseyside","CH45 4RN","01467-142439","01917-137038","owen_jentzen@jentzen.co.uk","http://www.capitalfastenersinc.co.uk" -"Pauline","Fling","Cumberland Vacuum Products","6452 Pilgrim St #5","Seven Sisters Ward","Greater London","N15 6TH","01990-476494","01458-113457","pfling@fling.co.uk","http://www.cumberlandvacuumproducts.co.uk" -"Tijuana","Machalek","Schwartz, Thomas E Esq","1149 Highfield Rd #996","Fareham South Ward","Hampshire","PO14 9JJ","01242-532395","01336-686264","tijuana.machalek@gmail.com","http://www.schwartzthomaseesq.co.uk" -"Ahmad","Alsaqri","Alliance Construction Co Inc","21 Pickwick St","Sutton cum Duckmanton","Derbyshire","S44 5DS","01567-555570","01852-550588","ahmad.alsaqri@yahoo.com","http://www.allianceconstructioncoinc.co.uk" -"Jamika","Conoly","Keller, Raymond C","19 Soho St","Whitley Ward","Berkshire","RG1 9XH","01726-595316","01597-168997","jamika_conoly@conoly.co.uk","http://www.kellerraymondc.co.uk" -"Derrick","Dolloff","Proto Tek Manufacturing","236 Blantyre Rd","Everton Ward","Merseyside","L6 2EN","01982-734773","01619-554437","derrick_dolloff@gmail.com","http://www.prototekmanufacturing.co.uk" -"Jacquelyne","Reibman","Great Clips For Hair","70 Lilly Rd","Shirley Ward","Greater London","CR0 7PT","01846-581451","01850-754504","jacquelyne_reibman@yahoo.com","http://www.greatclipsforhair.co.uk" -"Zachary","Freeburger","Country Kitchen","58 Gloucester Rd","Holbrook","Derbyshire","DE56 0TX","01888-641397","01240-433924","zachary.freeburger@freeburger.co.uk","http://www.countrykitchen.co.uk" -"Sophia","Gaucher","T C E Systems Inc","88 Upper Harrington St","North East Ward","North Lanarkshire","G69 8EL","01504-539114","01254-919378","sophia.gaucher@hotmail.com","http://www.tcesystemsinc.co.uk" -"Isabelle","Kono","Rock Springs Petroleum Equip","4920 Fazakerley Rd","Plymstock Dunstone Ward","Devon","PL9 8RD","01552-682601","01953-816728","isabelle.kono@yahoo.com","http://www.rockspringspetroleumequip.co.uk" -"Ronnie","Brigman","Howard Johnson","6 Morley St","Batchwood Ward","Hertfordshire","AL3 5JN","01943-754681","01972-686199","ronnie@brigman.co.uk","http://www.howardjohnson.co.uk" -"Krystina","Schlabaugh","Harris Oldsmobile Inc","7316 Friar St","Salvington Ward","West Sussex","BN13 3FL","01441-846477","01332-799979","kschlabaugh@schlabaugh.co.uk","http://www.harrisoldsmobileinc.co.uk" -"Rosita","Ausdemore","Jurdem, Scott Esq","8 Heathfield St #657","Hailsham","East Sussex","BN27 1AJ","01273-236188","01997-765432","rausdemore@hotmail.com","http://www.jurdemscottesq.co.uk" -"Huey","Stancil","Lindner Funds","275 Peel Sq","Park Ward","North Eart Lincolnshire","DN32 0PT","01502-139578","01468-195646","hstancil@hotmail.com","http://www.lindnerfunds.co.uk" -"Elbert","Fiorino","Donald, G Nelson Esq","726 Westmoreland Place","Ballochmyle Ward","East Ayrshire","KA5 6EL","01724-467889","01992-537553","elbert@hotmail.com","http://www.donaldgnelsonesq.co.uk" -"Pura","Manciel","Cia Inspection","7 Water St","Priory Heath Ward","Suffolk","IP3 9RB","01853-412588","01386-437186","pura.manciel@yahoo.com","http://www.ciainspection.co.uk" -"Alesia","Katie","Nelsons Trmt & Pest Cntrl Co","4 Covent Garden","Farnworth Ward","Greater Manchester","BL4 7AF","01333-436799","01240-614527","alesia_katie@gmail.com","http://www.nelsonstrmtpestcntrlco.co.uk" -"Avery","Veit","Plaza Gourmet Delicatessen","9166 Devon St #905","Knightsbridge and Belgravia Wa","Greater London","SW1W 8JY","01748-625058","01369-185737","avery@veit.co.uk","http://www.plazagourmetdelicatessen.co.uk" -"Reid","Euresti","Fitzgerald, Edward J","70 Foster St","Inverness Ness-Side Ward","Highland","IV2 6WT","01916-963261","01370-319414","reuresti@euresti.co.uk","http://www.fitzgeraldedwardj.co.uk" -"Charlette","Brenning","Furey & Associates","714 Fonthill Rd","Darton West Ward","South Yorkshire","S75 5EJ","01888-152110","01301-312487","cbrenning@brenning.co.uk","http://www.fureyassociates.co.uk" -"Celestina","Keeny","Bfg Federal Credit Union","9 Milton St","Consett North ED","County Durham","DH8 5LP","01877-379681","01600-463475","celestina_keeny@gmail.com","http://www.bfgfederalcreditunion.co.uk" -"Mi","Richan","Nelson Wright Haworth Golf Crs","6 Norwood Grove","Tanworth-in-Arden","Warwickshire","B94 5RZ","01451-785624","01202-738406","mi@hotmail.com","http://www.nelsonwrighthaworthgolfcrs.co.uk" diff --git a/Sd1/P/HtmlFormatting/Simple/Solution/pom.xml b/Sd1/P/HtmlFormatting/Simple/Solution/pom.xml deleted file mode 100644 index 7a7630643..000000000 --- a/Sd1/P/HtmlFormatting/Simple/Solution/pom.xml +++ /dev/null @@ -1,72 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm_stuttgart.mi.sd1</groupId> - <artifactId>htmlformat</artifactId> - <version>2.0</version> - <packaging>jar</packaging> - - <name>htmlformat</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <version>2.4</version> - <configuration> - <archive> - <manifest> - <addClasspath>true</addClasspath> - <mainClass>de.hdm_stuttgart.mi.sd1.textstat/TextStatistics</mainClass> - </manifest> - </archive> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/HtmlFormatting/Simple/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/Address.java b/Sd1/P/HtmlFormatting/Simple/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/Address.java deleted file mode 100644 index 6fe5416e0..000000000 --- a/Sd1/P/HtmlFormatting/Simple/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/Address.java +++ /dev/null @@ -1,55 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.htmlformat; - -/** - * A single address record holding a representation as being - * described in {@link AddressDataHandler#AddressDataHandler(String)} - * - */ -public class Address { - - final String firstName, lastName, companyName, - address, city, county, postal, - phone1, phone2, email, web; - - - /** - * Initializing from an address string obeying the description given - * in {@link AddressDataHandler#AddressDataHandler(String)}. - * - * @param csvRecord An input address record like - * <code>"Aleshia","Tomkies","Alan Co.","14 Taylor St",...</code> - * @param lineNumber Indication the current file position in case of parsing errors. - * @throws AddressParseError Data source is corrupt. - */ - public Address(final String csvRecord, final int lineNumber) - throws AddressParseError { - if (!csvRecord.startsWith("\"")) { - throw new AddressParseError( - "Record does not start with \":\n" + csvRecord, lineNumber); - } - if (!csvRecord.endsWith("\"")) { - throw new AddressParseError( - "Record does not end with \":\n" + csvRecord, lineNumber); - } - // Split input record at "," positions. - final String[] csvComponents = csvRecord.substring(1, csvRecord.length() - 1).split("\",\""); - if (11 == csvComponents.length) {// Does the current record have 11 address components? - - firstName = csvComponents[0]; - lastName = csvComponents[1]; - companyName = csvComponents[2]; - address = csvComponents[3]; - city = csvComponents[4]; - county = csvComponents[5]; - postal = csvComponents[6]; - phone1 = csvComponents[7]; - phone2 = csvComponents[8]; - email = csvComponents[9]; - web = csvComponents[10]; - } else { // more or less than 11 components - throw new AddressParseError( - "Record does not contain 11 address components:\n" + csvRecord, - lineNumber); - } - } -} diff --git a/Sd1/P/HtmlFormatting/Simple/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/Address2html.java b/Sd1/P/HtmlFormatting/Simple/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/Address2html.java deleted file mode 100644 index 3d07afc4c..000000000 --- a/Sd1/P/HtmlFormatting/Simple/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/Address2html.java +++ /dev/null @@ -1,36 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.htmlformat; - -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.PrintStream; - -/** - * Format address data as ordinary text - * - */ -public class Address2html { - - /** - * @param args unused - */ - public static void main(String[] args) { - final String addressFileName = "addresses.txt", - addressFileHtmlName = addressFileName + ".xhtml"; - try { - final AddressDataHandler addresses = new AddressDataHandler(addressFileName); - final AddressFormatter htmlFormatter = new Address2htmlFormatter(); - - final PrintStream outputStream = new PrintStream(addressFileHtmlName); - - addresses.printAddresses(outputStream, htmlFormatter); - outputStream.close(); - } catch (FileNotFoundException e) { - System.err.println("File '" + addressFileName + "' not found"); - } catch (IOException e){ - System.err.println("Unable to read from file '" + addressFileName + "'"); - } catch (AddressParseError e) { - System.err.println("Error in file '" + addressFileHtmlName + "' at line " + e.getErrorOffset() + ":" - + e.getMessage()); - } - } -} \ No newline at end of file diff --git a/Sd1/P/HtmlFormatting/Simple/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/Address2htmlFormatter.java b/Sd1/P/HtmlFormatting/Simple/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/Address2htmlFormatter.java deleted file mode 100644 index 07c49a8b0..000000000 --- a/Sd1/P/HtmlFormatting/Simple/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/Address2htmlFormatter.java +++ /dev/null @@ -1,59 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.htmlformat; - -import java.io.PrintStream; - -/** - * Formatting {@link Address} records - * - */ -public class Address2htmlFormatter implements AddressFormatter { - - public void printHead (PrintStream out) { - - out.println("<html xmlns='http://www.w3.org/1999/xhtml'>"); - out.println(" <head>"); - out.println(" <title>Address list:</title>"); - out.println(" </head>"); - out.println(" <body>"); - out.println(" <h1>Address list:</h1>"); - out.println(" <table border='1'>"); - out.println(" <colgroup style='width: 20%'/>"); - out.println(" <colgroup style='width: 30%'/>"); - out.println(" <colgroup style='width: 25%'/>"); - out.println(" <colgroup style='width: 25%'/>"); - out.println(" <tr>"); - out.println(" <th>Name</th>"); - out.println(" <th>Address</th>"); - out.println(" <th>Phone</th>"); - out.println(" <th>E-Mail</th>"); - out.println(" </tr>"); - } - public void printRecord(Address address, PrintStream out) { - - out.println(" <tr>"); - out.println(" <td>" + wrap(address.firstName) + " " + wrap("b", address.lastName) + "</td>"); - out.println(" <td>" + wrap(address.address + ", " + address.city) + ", " + - wrap("b", address.postal) + "</td>"); - out.println(" " + wrap("td",address.phone1)); - out.println(" " + wrap("td", address.email)); - out.println(" </tr>"); - } - public void printTail (PrintStream out) { - out.println(" </table>"); - out.println(" </body>"); - out.println("</html>"); - } - - private static String wrap(final String htmlTag, final String s) { - - return "<" + htmlTag + ">" + wrap(s) + "</" + htmlTag + ">"; - } - - private static String wrap(final String s) { - if (s.contains("<") || s.contains(">") || s.contains("&")) { - return "<![CDATA[" + s + "]]>"; - } else { - return s; - } - } -} \ No newline at end of file diff --git a/Sd1/P/HtmlFormatting/Simple/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/AddressDataHandler.java b/Sd1/P/HtmlFormatting/Simple/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/AddressDataHandler.java deleted file mode 100644 index a51f9c5e8..000000000 --- a/Sd1/P/HtmlFormatting/Simple/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/AddressDataHandler.java +++ /dev/null @@ -1,64 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.htmlformat; - -import java.io.BufferedReader; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.IOException; -import java.io.PrintStream; -import java.util.ArrayList; -import java.util.List; - -/** - * Reading address data from text file data source. - */ -public class AddressDataHandler { - - /** - * Available address records. - */ - public final List<Address> addresses = new ArrayList<Address>(); - - /** - * Parsing text file address data having the following format: - * - * <pre>"firstName","lastName","companyName","address","city","county","postal","phone1","phone2","email","web"</pre> - * - * The first line is expected to contain the above description and will be ignored. - * - * @param filename Address data source. - * - * @throws IOException Input file cannot be read - * @throws FileNotFoundException File does not exist - * @throws AddressParseError Invalid input data. - * - */ - public AddressDataHandler(final String filename) - throws FileNotFoundException, IOException, AddressParseError { - - final BufferedReader reader = new BufferedReader(new FileReader(filename)); - int lineNumber = 0; // Needed to supply file positions for error messages - for (String lineContent = reader.readLine(); lineContent != null; lineContent = reader.readLine()) { - lineNumber ++; - if (1 < lineNumber) { - addresses.add(new Address(lineContent, lineNumber)); - } - } - reader.close(); // Freeing OS resources no longer being needed. - } - - /** - * Format the set of address records and write the result - * to a stream. - * @param out Desired output stream - * @param formatter Formatting instance (may e.g. be text, HTML,...) - */ - public void printAddresses(final PrintStream out, final AddressFormatter formatter) { - formatter.printHead(out); - - for (final Address address: addresses) { - formatter.printRecord(address, out); - } - - formatter.printTail(out); - } -} diff --git a/Sd1/P/HtmlFormatting/Simple/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/AddressFormatter.java b/Sd1/P/HtmlFormatting/Simple/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/AddressFormatter.java deleted file mode 100644 index 3b0e89618..000000000 --- a/Sd1/P/HtmlFormatting/Simple/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/AddressFormatter.java +++ /dev/null @@ -1,46 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.htmlformat; - -import java.io.PrintStream; - -/** - * Formatting {@link Address} records. The generated - * output layout can be described as: - * - * ****************************** - * * head * - * ****************************** - * * * - * * body * - * * * - * ****************************** - * * tail * - * ****************************** - */ -public interface AddressFormatter { - - /** - * When formatting an address list this method - * will be called exactly once initiating - * output to the head section. - * - * @param out The output stream - */ - public void printHead (PrintStream out); - - /** - * This method will be called for each address record. - * Corresponding data will populate the body section. - * - * @param address The current address record. - * @param out The output stream. - */ - public void printRecord(Address address, PrintStream out); - /** - * When formatting an address list this method - * will be called at last to finish - * output generation of the tail section. - * - * @param out The output stream - */ - public void printTail (PrintStream out); -} \ No newline at end of file diff --git a/Sd1/P/HtmlFormatting/Simple/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/AddressParseError.java b/Sd1/P/HtmlFormatting/Simple/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/AddressParseError.java deleted file mode 100644 index e3d33da2e..000000000 --- a/Sd1/P/HtmlFormatting/Simple/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/AddressParseError.java +++ /dev/null @@ -1,19 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.htmlformat; - -import java.text.ParseException; - -/** - * Address data files may contain corrupted entries - * - */ -@SuppressWarnings("serial") -public class AddressParseError extends ParseException { - - /** - * @param messageString Supply a parse error explanation. - * @param lineNumber the current line number within the parsing process - */ - public AddressParseError(final String messageString, int lineNumber) { - super(messageString, lineNumber); - } -} diff --git a/Sd1/P/HtmlFormatting/Simple/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/package-info.java b/Sd1/P/HtmlFormatting/Simple/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/package-info.java deleted file mode 100644 index 56fbf9b1e..000000000 --- a/Sd1/P/HtmlFormatting/Simple/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/htmlformat/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * Formatting address records - */ -package de.hdm_stuttgart.mi.sd1.htmlformat; \ No newline at end of file diff --git a/Sd1/P/HtmlFormatting/Simple/Solution/src/test/java/htmlformat/TestExceptions.java b/Sd1/P/HtmlFormatting/Simple/Solution/src/test/java/htmlformat/TestExceptions.java deleted file mode 100644 index 7c59dfc68..000000000 --- a/Sd1/P/HtmlFormatting/Simple/Solution/src/test/java/htmlformat/TestExceptions.java +++ /dev/null @@ -1,60 +0,0 @@ -package htmlformat; - -import java.io.FileNotFoundException; -import java.io.IOException; - -import org.junit.Assert; -import org.junit.Test; - -import de.hdm_stuttgart.mi.sd1.htmlformat.AddressDataHandler; -import de.hdm_stuttgart.mi.sd1.htmlformat.AddressParseError; - -/** - * Testing address file parsing exceptions - * - */ -public class TestExceptions { - - /** - * Test file "Testdata/missingAttribute.txt" contains a record with missing last component. - */ - @Test - public void testMissingAttribute() { - final String data = "Testdata/missingAttribute.txt"; - AddressParseError parseException = null; - try { - new AddressDataHandler(data); - } catch (FileNotFoundException e) { - Assert.fail("File " + data + "should be readable"); - } catch (IOException e) { - Assert.fail("File " + data + "should be readable"); - } catch(AddressParseError e) { - parseException = e; - } - Assert.assertNotNull("Error was expected alt line ", parseException); - Assert.assertEquals("Error was expected at line 3", 3, parseException.getErrorOffset()); - Assert.assertTrue(parseException.getMessage().startsWith("Record does not contain")); - } - - /** - * Test file "Testdata/missingStartQuotes.txt" contains a record with missing quote at beginning. - */ - @Test - public void testMissingStartQuote() { - final String data = "Testdata/missingStartQuote.txt"; - AddressParseError parseException = null; - try { - new AddressDataHandler(data); - } catch (FileNotFoundException e) { - Assert.fail("File " + data + "should be readable"); - } catch (IOException e) { - Assert.fail("File " + data + "should be readable"); - } catch(AddressParseError e) { - parseException = e; - } - Assert.assertNotNull("Error was expected", parseException); - Assert.assertEquals("Error was expected at line 4", 4, parseException.getErrorOffset()); - Assert.assertTrue(parseException.getMessage().startsWith("Record does not start with \":")); - } - // Two more test cases but I'm too lazy tonight. -} diff --git a/Sd1/P/Marks/Solution1/.gitignore b/Sd1/P/Marks/Solution1/.gitignore deleted file mode 100644 index 954270fb2..000000000 --- a/Sd1/P/Marks/Solution1/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project \ No newline at end of file diff --git a/Sd1/P/Marks/Solution1/pom.xml b/Sd1/P/Marks/Solution1/pom.xml deleted file mode 100644 index 255536797..000000000 --- a/Sd1/P/Marks/Solution1/pom.xml +++ /dev/null @@ -1,72 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm_stuttgart.mi.sd1.textstat</groupId> - <artifactId>marks</artifactId> - <version>1.0</version> - <packaging>jar</packaging> - - <name>marks</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <version>2.4</version> - <configuration> - <archive> - <manifest> - <addClasspath>true</addClasspath> - <mainClass>de.hdm_stuttgart.mi.sd1.textstat/TextStatistics</mainClass> - </manifest> - </archive> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/Marks/Solution1/src/main/java/de/hdm_stuttgart/mi/sd1/marks/MarkStatistics.java b/Sd1/P/Marks/Solution1/src/main/java/de/hdm_stuttgart/mi/sd1/marks/MarkStatistics.java deleted file mode 100644 index 2481f2247..000000000 --- a/Sd1/P/Marks/Solution1/src/main/java/de/hdm_stuttgart/mi/sd1/marks/MarkStatistics.java +++ /dev/null @@ -1,31 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.marks; - -import java.io.IOException; - -/** - * Reading a text file and creating an overview of grades. - */ -public class MarkStatistics { - - /** - * @param fileNames counting grade occurrences - */ - public static void main(String[] fileNames) { - - TextFileHandler textFileHandler = null; - - if (1 == fileNames.length){ // Try to read from input file - try { - textFileHandler = new TextFileHandler(fileNames[0]); - } catch (IOException e) { - System.err.println("unable to read from file '" + fileNames[0] + "'"); - System.exit(1); - } - } else { - System.err.println("I need exactly one file name argument"); - System.exit(1); - } - System.out.println("Overview of marks:"); - textFileHandler.printMarkFrequencies(); - } -} \ No newline at end of file diff --git a/Sd1/P/Marks/Solution1/src/main/java/de/hdm_stuttgart/mi/sd1/marks/TextFileHandler.java b/Sd1/P/Marks/Solution1/src/main/java/de/hdm_stuttgart/mi/sd1/marks/TextFileHandler.java deleted file mode 100644 index 5eaa19940..000000000 --- a/Sd1/P/Marks/Solution1/src/main/java/de/hdm_stuttgart/mi/sd1/marks/TextFileHandler.java +++ /dev/null @@ -1,96 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.marks; - -import java.io.BufferedReader; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.Hashtable; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - -/** - * Creating mark statistics. - * - */ -public class TextFileHandler { - - /** - * The input file name to read from. - */ - public final String filename; - - /** - * The list of marks found so far among with their frequencies. - */ - final Map<Character, Integer> frequencyByMark = new Hashtable<Character, Integer>(); - - /** - * @param filename The filename input to read input, see {@link #filename} - * - * @throws IOException Input file cannot be read - * @throws FileNotFoundException File does not exist - */ - public TextFileHandler(final String filename) - throws FileNotFoundException, IOException { - - this.filename = filename; - final BufferedReader reader = new BufferedReader(new FileReader(filename)); - for (String line = reader.readLine(); line != null; line = reader.readLine()) { - // Ignore white space and some common text markers. - final String[] words = line.trim().split("[ \t]*,[ \t]*"); - - if (2 == words.length ) {// Line has got three comma separated components - final String markString = words[1].trim(); - switch (markString) {// Third component really corresponds to a valid mark - case "A": - case "B": - case "C": - case "D": - final Character mark = markString.charAt(0); - final Integer currentFrequency = frequencyByMark.get(mark); - if (null == currentFrequency) { // No such mark found yet - frequencyByMark.put(mark, new Integer(1)); - } else {// Mark already exists, increment frequency - frequencyByMark.put(mark, new Integer(currentFrequency + 1)); - } - break; - default: - System.err.println("Ignoring erroneous mark '" + markString + "' in '" + line + "'"); - } - - } else { // Fewer or more than two components - System.err.println("Ignoring erroneous line '" + line + "'"); - } - } - reader.close(); - } - - /** - * Print sorted list of marks along with corresponding frequencies - */ - public void printMarkFrequencies() { - - final List<Entry<Character, Integer>> markList = new ArrayList<>(frequencyByMark.entrySet()); - - Collections.sort(markList, new MarkComparator()); - for (final Entry<Character, Integer> entry : markList) { - System.out.format("%s: %d\n", - entry.getKey(), - entry.getValue()); - } - } - - static class MarkComparator implements Comparator<Entry<Character, Integer>> { - - @Override - public int compare(Entry<Character, Integer> e1, - Entry<Character, Integer> e2) { - return e1.getKey().compareTo(e2.getKey()); - } - - } -} diff --git a/Sd1/P/Marks/Solution1/src/main/java/de/hdm_stuttgart/mi/sd1/marks/package-info.java b/Sd1/P/Marks/Solution1/src/main/java/de/hdm_stuttgart/mi/sd1/marks/package-info.java deleted file mode 100644 index 5410eba46..000000000 --- a/Sd1/P/Marks/Solution1/src/main/java/de/hdm_stuttgart/mi/sd1/marks/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Gathering word frequency statistics on text files - * - */ -package de.hdm_stuttgart.mi.sd1.marks; \ No newline at end of file diff --git a/Sd1/P/Marks/Solution1/src/test/java/de/hdm_stuttgart/mi/sd1/marks/test/package-info.java b/Sd1/P/Marks/Solution1/src/test/java/de/hdm_stuttgart/mi/sd1/marks/test/package-info.java deleted file mode 100644 index a6efd887b..000000000 --- a/Sd1/P/Marks/Solution1/src/test/java/de/hdm_stuttgart/mi/sd1/marks/test/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Testing text statistics - * - */ -package de.hdm_stuttgart.mi.sd1.marks.test; \ No newline at end of file diff --git a/Sd1/P/Marks/Solution1/testdata.txt b/Sd1/P/Marks/Solution1/testdata.txt deleted file mode 100644 index 5b9c7f447..000000000 --- a/Sd1/P/Marks/Solution1/testdata.txt +++ /dev/null @@ -1,8 +0,0 @@ -Tim Bone, D -Eve Thunder, A -Aaron King, B -Joan White, B -Mark Singer, C -Jane Simmonds, D -Ethan Clarke, C -Paula Beam, C diff --git a/Sd1/P/Marks/Solution2/.gitignore b/Sd1/P/Marks/Solution2/.gitignore deleted file mode 100644 index 954270fb2..000000000 --- a/Sd1/P/Marks/Solution2/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project \ No newline at end of file diff --git a/Sd1/P/Marks/Solution2/pom.xml b/Sd1/P/Marks/Solution2/pom.xml deleted file mode 100644 index 255536797..000000000 --- a/Sd1/P/Marks/Solution2/pom.xml +++ /dev/null @@ -1,72 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm_stuttgart.mi.sd1.textstat</groupId> - <artifactId>marks</artifactId> - <version>1.0</version> - <packaging>jar</packaging> - - <name>marks</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <version>2.4</version> - <configuration> - <archive> - <manifest> - <addClasspath>true</addClasspath> - <mainClass>de.hdm_stuttgart.mi.sd1.textstat/TextStatistics</mainClass> - </manifest> - </archive> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/Marks/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/marks/MarkStatistics.java b/Sd1/P/Marks/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/marks/MarkStatistics.java deleted file mode 100644 index 40fd22438..000000000 --- a/Sd1/P/Marks/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/marks/MarkStatistics.java +++ /dev/null @@ -1,32 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.marks; - -import java.io.IOException; - -/** - * Reading a text file and summing up marks among with - * the corresponding list of names. - */ -public class MarkStatistics { - - /** - * @param fileNames Mark statistics of this file name's data - */ - public static void main(String[] fileNames) { - - TextFileHandler textFileHandler = null; - - if (1 == fileNames.length){ // Try to read from input file - try { - textFileHandler = new TextFileHandler(fileNames[0]); - } catch (IOException e) { - System.err.println("unable to read from file '" + fileNames[0] + "'"); - System.exit(1); - } - } else { - System.err.println("I need exactly one file name argument"); - System.exit(1); - } - System.out.println("Overview of marks:"); - textFileHandler.printMarkFrequencies(); - } -} \ No newline at end of file diff --git a/Sd1/P/Marks/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/marks/TextFileHandler.java b/Sd1/P/Marks/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/marks/TextFileHandler.java deleted file mode 100644 index 9df3832e7..000000000 --- a/Sd1/P/Marks/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/marks/TextFileHandler.java +++ /dev/null @@ -1,104 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.marks; - -import java.io.BufferedReader; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.Hashtable; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - -/** - * Getting mark statistics. - * - */ -public class TextFileHandler { - - /** - * The input file name to read from. - */ - public final String filename; - - /** - * The marks found so far among with their name lists. - */ - final Map<Character, List<String>> frequencyByMark = new Hashtable<Character, List<String>>(); - - /** - * @param filename The filename input to read input, see {@link #filename} - * - * @throws IOException Input file cannot be read - * @throws FileNotFoundException File does not exist - */ - public TextFileHandler(final String filename) - throws FileNotFoundException, IOException { - - this.filename = filename; - final BufferedReader reader = new BufferedReader(new FileReader(filename)); - for (String line = reader.readLine(); line != null; line = reader.readLine()) { - // Ignore white space and some common text markers. - final String[] words = line.trim().split("[ \t]*,[ \t]*"); - - if (2 == words.length ) {// Line has got three comma separated components - final String markString = words[1].trim(); - switch (markString) {// Third component really corresponds to a valid mark - case "A": - case "B": - case "C": - case "D": - final String name = words[0]; - final Character mark = markString.charAt(0); - List<String> currentFrequency = frequencyByMark.get(mark); - if (null == currentFrequency) { // No such mark found yet - currentFrequency = new ArrayList<String>(); - frequencyByMark.put(mark, currentFrequency); - } - currentFrequency.add(name);// Add new name to list - break; - default: - System.err.println("Ignoring erroneous mark '" + markString + "' in '" + line + "'"); - } - } else { - System.err.println("Ignoring erroneous line '" + line + "'"); - } - } - reader.close(); - } - - /** - * Print sorted list of marks along with corresponding frequencies - */ - public void printMarkFrequencies() { - - final List<Entry<Character, List<String>>> markList = new ArrayList<>(frequencyByMark.entrySet()); - - Collections.sort(markList, new MarkComparator()); - for (final Entry<Character, List<String>> entry : markList) { - System.out.print(entry.getKey() + ": "); - printList(entry.getValue()); - System.out.println(); - } - } - - static void printList(final List<String> names) { - Collections.sort(names); - String separator = ""; - for (final String name: names) { - System.out.print(separator + name); - separator = ", "; - } - } - - static class MarkComparator implements Comparator<Entry<Character, List<String>>> { - - @Override - public int compare(Entry<Character, List<String>> e1, - Entry<Character, List<String>> e2) { - return e1.getKey().compareTo(e2.getKey()); - } - } -} \ No newline at end of file diff --git a/Sd1/P/Marks/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/marks/package-info.java b/Sd1/P/Marks/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/marks/package-info.java deleted file mode 100644 index 5410eba46..000000000 --- a/Sd1/P/Marks/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/marks/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Gathering word frequency statistics on text files - * - */ -package de.hdm_stuttgart.mi.sd1.marks; \ No newline at end of file diff --git a/Sd1/P/Marks/Solution2/src/test/java/de/hdm_stuttgart/mi/sd1/marks/test/package-info.java b/Sd1/P/Marks/Solution2/src/test/java/de/hdm_stuttgart/mi/sd1/marks/test/package-info.java deleted file mode 100644 index a6efd887b..000000000 --- a/Sd1/P/Marks/Solution2/src/test/java/de/hdm_stuttgart/mi/sd1/marks/test/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Testing text statistics - * - */ -package de.hdm_stuttgart.mi.sd1.marks.test; \ No newline at end of file diff --git a/Sd1/P/Marks/Solution2/testdata.txt b/Sd1/P/Marks/Solution2/testdata.txt deleted file mode 100644 index efed0ad95..000000000 --- a/Sd1/P/Marks/Solution2/testdata.txt +++ /dev/null @@ -1,8 +0,0 @@ -Tim Bone, D -Eve Thunder, A -Aaron King, B -Joan White, B -Mark Singer, C -Jane Simmonds, D -Ethan Clarke, C -Paula Beam, C \ No newline at end of file diff --git a/Sd1/P/Prime/V1/.gitignore b/Sd1/P/Prime/V1/.gitignore deleted file mode 100644 index 128b1c231..000000000 --- a/Sd1/P/Prime/V1/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -/.settings -/target -/.classpath -/.project -/bin diff --git a/Sd1/P/Prime/V1/pom.xml b/Sd1/P/Prime/V1/pom.xml deleted file mode 100644 index 72698e995..000000000 --- a/Sd1/P/Prime/V1/pom.xml +++ /dev/null @@ -1,59 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>prime</artifactId> - <version>1.0</version> - <packaging>jar</packaging> - - <name>Prime_V1</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/Prime/V1/src/main/java/de/hdm_stuttgart/mi/sd1/main/PrimeNumbers.java b/Sd1/P/Prime/V1/src/main/java/de/hdm_stuttgart/mi/sd1/main/PrimeNumbers.java deleted file mode 100644 index 9b1b74c0d..000000000 --- a/Sd1/P/Prime/V1/src/main/java/de/hdm_stuttgart/mi/sd1/main/PrimeNumbers.java +++ /dev/null @@ -1,57 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.main; - -/** - * Calculate prime numbers in a yet inefficient way - * - */ -public class PrimeNumbers { - /** - * @param args unused - */ - public static void main(String[] args) { - - final long startTime = System.currentTimeMillis(); - System.out.println("prime numbers found:" + findPrimeNumbers(10_000_000)); - final long endTime = System.currentTimeMillis(); - System.out.println("Elapsed time:" + (endTime - startTime)); - } - - /** - * Find all prime numbers up to a given limit. - * - * @param limit Test all integers from [2, limit] - * whether they are prime numbers or not. - * @return The number of primes found within [2, limit]. - * <dl> - <dt>Precondition:</dt> - <dd>2 <= limit</dd> - </dl> - */ - public static long findPrimeNumbers(long limit) { - long numPrimes = 0; - for (int i = 2; i <= limit; i++) { - if (isPrime(i)) { - numPrimes++; - } - } - return numPrimes; - } - - /** - * Test, whether a given number is prime. - * @param candidate The number to be assessed - * @return true if candidate is prime, false otherwise - * <dl> - <dt>Precondition:</dt> - <dd>2 <= candidate</dd> - </dl> - */ - public static boolean isPrime(final long candidate) { - for (long i = 2; i * i <= candidate; i++) { // Just test up to square - if (0 == candidate % i) { // root of candidate. - return false; - } - } - return true; - } -} diff --git a/Sd1/P/Prime/V1/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java b/Sd1/P/Prime/V1/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java deleted file mode 100644 index 3b955ea0b..000000000 --- a/Sd1/P/Prime/V1/src/main/java/de/hdm_stuttgart/mi/sd1/store/package-info.java +++ /dev/null @@ -1,6 +0,0 @@ -/** - * Dealing with integer stores. We add a method - * to compute a given sample's median - * - */ -package de.hdm_stuttgart.mi.sd1.store; \ No newline at end of file diff --git a/Sd1/P/Prime/V1/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestPrimes.java b/Sd1/P/Prime/V1/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestPrimes.java deleted file mode 100644 index 96f838f25..000000000 --- a/Sd1/P/Prime/V1/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestPrimes.java +++ /dev/null @@ -1,28 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.store; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; - -import de.hdm_stuttgart.mi.sd1.main.PrimeNumbers; - -public class TestPrimes { - - @Test - public void primeTest() { - final int[] primeNumbers = { 2, 3, 5, 7, 11, 13, 17, 19, 23, - 31, 37, 41, 43, 47, 53, 59, 29, - 61, 67, 71, 73, 79, 83, 89, 97}; - - final boolean[] isPrime = new boolean[101]; //Testing 2,3,..,98,99,100 - for (int i = 2; i <= 100; i++) { - isPrime[i] = false; - } - for (final int prime: primeNumbers) { - isPrime[prime] = true; - } - for (int i = 2; i <= 100; i++) { - assertEquals("Index=" + i , isPrime[i], PrimeNumbers.isPrime(i)); - } - } -} diff --git a/Sd1/P/Prime/V2/.gitignore b/Sd1/P/Prime/V2/.gitignore deleted file mode 100644 index 128b1c231..000000000 --- a/Sd1/P/Prime/V2/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -/.settings -/target -/.classpath -/.project -/bin diff --git a/Sd1/P/Prime/V2/pom.xml b/Sd1/P/Prime/V2/pom.xml deleted file mode 100644 index 555d110ed..000000000 --- a/Sd1/P/Prime/V2/pom.xml +++ /dev/null @@ -1,65 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>prime</artifactId> - <version>2.0</version> - <packaging>jar</packaging> - - <name>Prime_V2</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>intstore</artifactId> - <version>3.0</version> - </dependency> - - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/Prime/V2/src/main/java/de/hdm_stuttgart/mi/sd1/main/PrimeNumbers.java b/Sd1/P/Prime/V2/src/main/java/de/hdm_stuttgart/mi/sd1/main/PrimeNumbers.java deleted file mode 100644 index 5a959bd16..000000000 --- a/Sd1/P/Prime/V2/src/main/java/de/hdm_stuttgart/mi/sd1/main/PrimeNumbers.java +++ /dev/null @@ -1,64 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.main; - -import de.hdm_stuttgart.mi.sd1.store.IntegerStore; - -/** - * Calculate prime numbers in a yet inefficient way - * - */ -public class PrimeNumbers { - - private static IntegerStore primes = new IntegerStore(1000); - - /** - * @param args unused - */ - public static void main(String[] args) { - - final long startTime = System.currentTimeMillis(); - System.out.println("prime numbers found:" + findPrimeNumbers(10_000_000)); - final long endTime = System.currentTimeMillis(); - System.out.println("Elapsed time:" + (endTime - startTime)); - } - - /** - * Find all prime numbers up to a given limit. - * - * @param limit Test all integers from [2, limit] - * whether they are prime numbers or not. - * @return The number of primes found within [2, limit]. - * <dl> - <dt>Precondition:</dt> - <dd>2 <= limit</dd> - </dl> - */ - public static long findPrimeNumbers(long limit) { - primes.addValue(2); // Add a seed: The first prime number - for (long i = 3; i <= limit; i++) { - if (isPrime(i)) { - } - } - return primes.getNumValues(); - } - - /** - * Test, whether a given number is prime. - * @param candidate The number to be assessed - * @return true if candidate is prime, false otherwise - * <dl> - <dt>Precondition:</dt> - <dd>2 <= candidate</dd> - </dl> - */ - public static boolean isPrime(final long candidate) { - for (int i = 0; - primes.getValue(i) * primes.getValue(i) <= candidate; - i++) { // Just test up to square - if (0 == candidate % primes.getValue(i)) { - return false; - } - } - primes.addValue(candidate); - return true; - } -} diff --git a/Sd1/P/StringLengthSort/Solution/.gitignore b/Sd1/P/StringLengthSort/Solution/.gitignore deleted file mode 100644 index 4e247eee2..000000000 --- a/Sd1/P/StringLengthSort/Solution/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project diff --git a/Sd1/P/StringLengthSort/Solution/pom.xml b/Sd1/P/StringLengthSort/Solution/pom.xml deleted file mode 100644 index 590e2a8b4..000000000 --- a/Sd1/P/StringLengthSort/Solution/pom.xml +++ /dev/null @@ -1,72 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.mi.sd1</groupId> - <artifactId>lengthsort</artifactId> - <version>1.0</version> - <packaging>jar</packaging> - - <name>lengthsort</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <version>2.4</version> - <configuration> - <archive> - <manifest> - <addClasspath>true</addClasspath> - <mainClass>de.hdm_stuttgart.mi.sd1.readfile.ReadFile</mainClass> - </manifest> - </archive> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/StringLengthSort/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/LengthCompare.java b/Sd1/P/StringLengthSort/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/LengthCompare.java deleted file mode 100644 index 26f94671a..000000000 --- a/Sd1/P/StringLengthSort/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/LengthCompare.java +++ /dev/null @@ -1,20 +0,0 @@ -package de.hdm_stuttgart.mi.sd1; - -import java.util.Comparator; - -/** - * Compare strings first by their length. If two strings do have - * common length, sort them alphabetically. - * - */ -public class LengthCompare implements Comparator<String> { - @Override - public int compare(String s1, String s2) { - final int lengthDiff = s1.length() - s2.length(); - if (0 == lengthDiff) { - return s1.compareTo(s2); - } else { - return lengthDiff; - } - } -} diff --git a/Sd1/P/StringLengthSort/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/package-info.java b/Sd1/P/StringLengthSort/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/package-info.java deleted file mode 100644 index 1451dfab8..000000000 --- a/Sd1/P/StringLengthSort/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * Simple exercise to reading text files - */ -package de.hdm_stuttgart.mi.sd1; \ No newline at end of file diff --git a/Sd1/P/StringLengthSort/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/TestOrder.java b/Sd1/P/StringLengthSort/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/TestOrder.java deleted file mode 100644 index d6525513a..000000000 --- a/Sd1/P/StringLengthSort/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/TestOrder.java +++ /dev/null @@ -1,36 +0,0 @@ -package de.hdm_stuttgart.mi.sd1; - -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - -import org.junit.Assert; -import org.junit.Test; - -import de.hdm_stuttgart.mi.sd1.LengthCompare; - - -@SuppressWarnings("javadoc") -public class TestOrder { - - @Test - public void testReadFileOk() { - final List<String> expectedOrder = - Arrays.asList(new String[]{ - "by", "it", "ant", "eye", "van", "apple", "x-ray", "printer" - }); - - final List<String> initiallyAlphabetOrder = - Arrays.asList(new String[]{ - "ant", "apple", "by", "eye", "it", "printer", "van", "x-ray" - }); - - // Lists contain the same elements but in different order - Assert.assertTrue(!expectedOrder.equals(initiallyAlphabetOrder)); - - Collections.sort(initiallyAlphabetOrder, new LengthCompare()); - - // By now our list should have been re-ordered accordingly. - Assert.assertTrue(expectedOrder.equals(initiallyAlphabetOrder)); - } -} diff --git a/Sd1/P/Wc/readFile/.gitignore b/Sd1/P/Wc/readFile/.gitignore deleted file mode 100644 index 128b1c231..000000000 --- a/Sd1/P/Wc/readFile/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -/.settings -/target -/.classpath -/.project -/bin diff --git a/Sd1/P/Wc/readFile/Testdata/input.txt b/Sd1/P/Wc/readFile/Testdata/input.txt deleted file mode 100644 index a3722d034..000000000 --- a/Sd1/P/Wc/readFile/Testdata/input.txt +++ /dev/null @@ -1,8 +0,0 @@ -<html> - <head> - <title>A simple HTML example</title> - </head> - <body> - <p>Some text ... </p> - </body> -</html> \ No newline at end of file diff --git a/Sd1/P/Wc/readFile/pom.xml b/Sd1/P/Wc/readFile/pom.xml deleted file mode 100644 index ca7439c96..000000000 --- a/Sd1/P/Wc/readFile/pom.xml +++ /dev/null @@ -1,72 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>readfile</artifactId> - <version>1.0</version> - <packaging>jar</packaging> - - <name>statistics</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <version>2.4</version> - <configuration> - <archive> - <manifest> - <addClasspath>true</addClasspath> - <mainClass>de.hdm_stuttgart.mi.sd1.readfile.ReadFile</mainClass> - </manifest> - </archive> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/Wc/readFile/src/main/java/de/hdm_stuttgart/mi/sd1/readfile/ReadFile.java b/Sd1/P/Wc/readFile/src/main/java/de/hdm_stuttgart/mi/sd1/readfile/ReadFile.java deleted file mode 100644 index 9725187bf..000000000 --- a/Sd1/P/Wc/readFile/src/main/java/de/hdm_stuttgart/mi/sd1/readfile/ReadFile.java +++ /dev/null @@ -1,49 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.readfile; - -import java.io.BufferedReader; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.IOException; - -/** - * Reading a text file and writing all content - * to standard output - */ -public class ReadFile { - - /** - * @param args unused - */ - public static void main(String[] args) { - final String inputFileName = "Testdata/input.txt"; // serving as a sample input file - try { - openStream(inputFileName); - } catch (FileNotFoundException e) { - System.err.println("File not found: " + inputFileName); - } catch (IOException e) { - System.err.println("Error reading file: " + inputFileName); - System.err.println("Message was: " + e.getLocalizedMessage()); - } - } - - /** - * Trying to read a given filename or -path - * - * @param inputFileName The intended file's pathname - * @throws FileNotFoundException inputFileName does not exist - * @throws IOException inputFileName cannot be read - */ - public static void openStream(final String inputFileName) - throws FileNotFoundException, IOException { - final FileReader fileReader = new FileReader(inputFileName); - final BufferedReader inputBufferedReader = new BufferedReader(fileReader); - readStream(inputBufferedReader); - } - - static void readStream(final BufferedReader inputStream) throws IOException { - int lineCounter = 1; - for (String line = inputStream.readLine(); line != null; line = inputStream.readLine()) { - System.out.println(lineCounter++ + ": " + line); - } - } -} \ No newline at end of file diff --git a/Sd1/P/Wc/readFile/src/main/java/de/hdm_stuttgart/mi/sd1/readfile/package-info.java b/Sd1/P/Wc/readFile/src/main/java/de/hdm_stuttgart/mi/sd1/readfile/package-info.java deleted file mode 100644 index e18bc7447..000000000 --- a/Sd1/P/Wc/readFile/src/main/java/de/hdm_stuttgart/mi/sd1/readfile/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * Simple exercise to reading text files - */ -package de.hdm_stuttgart.mi.sd1.readfile; \ No newline at end of file diff --git a/Sd1/P/Wc/readFile/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestRead.java b/Sd1/P/Wc/readFile/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestRead.java deleted file mode 100644 index 5bd14106c..000000000 --- a/Sd1/P/Wc/readFile/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestRead.java +++ /dev/null @@ -1,23 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.store; - - -import java.io.FileNotFoundException; -import java.io.IOException; - -import org.junit.Test; - -import de.hdm_stuttgart.mi.sd1.readfile.ReadFile; - - -@SuppressWarnings("javadoc") -public class TestRead { - - @Test - public void testReadFileOk() throws FileNotFoundException, IOException { - ReadFile.openStream("Testdata/input.txt"); // Existing file - } - @Test (expected=FileNotFoundException.class) // We expect this exception to be thrown - public void testReadMissingFile() throws FileNotFoundException, IOException { - ReadFile.openStream("Testdata/input.java"); // Does not exist - } -} diff --git a/Sd1/P/Wc/wc/.gitignore b/Sd1/P/Wc/wc/.gitignore deleted file mode 100644 index 954270fb2..000000000 --- a/Sd1/P/Wc/wc/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project \ No newline at end of file diff --git a/Sd1/P/Wc/wc/Testdata/input.html b/Sd1/P/Wc/wc/Testdata/input.html deleted file mode 100644 index 1fab06b23..000000000 --- a/Sd1/P/Wc/wc/Testdata/input.html +++ /dev/null @@ -1,9 +0,0 @@ -<html> - <head> - <title>A simple HTML example</title> - </head> - <body> - <p>Some text ... </p> - </body> -</html> - diff --git a/Sd1/P/Wc/wc/Testdata/model.css b/Sd1/P/Wc/wc/Testdata/model.css deleted file mode 100644 index d75ee22f9..000000000 --- a/Sd1/P/Wc/wc/Testdata/model.css +++ /dev/null @@ -1,4 +0,0 @@ -body { - background-color: #d0e4fe; - } - diff --git a/Sd1/P/Wc/wc/pom.xml b/Sd1/P/Wc/wc/pom.xml deleted file mode 100644 index 258a32beb..000000000 --- a/Sd1/P/Wc/wc/pom.xml +++ /dev/null @@ -1,72 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>wc</artifactId> - <version>1.0</version> - <packaging>jar</packaging> - - <name>statistics</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <version>2.4</version> - <configuration> - <archive> - <manifest> - <addClasspath>true</addClasspath> - <mainClass>de.hdm_stuttgart.mi.sd1.wc/Wc</mainClass> - </manifest> - </archive> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/Wc/wc/src/main/java/de/hdm_stuttgart/mi/sd1/wc/TextFileStatistics.java b/Sd1/P/Wc/wc/src/main/java/de/hdm_stuttgart/mi/sd1/wc/TextFileStatistics.java deleted file mode 100644 index 56360a7be..000000000 --- a/Sd1/P/Wc/wc/src/main/java/de/hdm_stuttgart/mi/sd1/wc/TextFileStatistics.java +++ /dev/null @@ -1,120 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.wc; - -import java.io.BufferedReader; -import java.io.FileNotFoundException; -import java.io.IOException; - -/** - * Count lines, words and characters for an individual - * file name. - * - */ -public class TextFileStatistics { - - private static int // In case of multiple input files we need to calculate totals - totalNumLines = 0, - totalNumWords = 0, - totalNumCharacters = 0; - - /** - * The name of the file content had been read, empty string if content - * was read from standard input. - */ - public final String filename; - - /** - * @return The total number of lines from all files being read so far. - */ - public static int getTotalNumLines() { - return totalNumLines; - } - - /** - * @return The total number of words from all files being read so far. - */ - public static int getTotalNumWords() { - return totalNumWords; - } - - /** - * @return The total number of characters from all files being read so far. - */ - public static int getTotalNumCharacters() { - return totalNumCharacters; - } - - /** - * The current text file's number of lines - */ - public final int numLines; - - /** - * The current text file's number of words - */ - public final int numWords; - - /** - * The current text file's number of characters - */ - public final int numCharacters; - - /** - * @param reader Reader supplying content to be read and parsed. - * @param filename The filename input has been read from, empty string - * if reading from standard input, see {@link #filename} - * - * @throws IOException File fileName cannot be read - * @throws FileNotFoundException File fileName does not exist - */ - public TextFileStatistics(final BufferedReader reader, final String filename) - throws FileNotFoundException, IOException { - - this.filename = filename; - - int tmpNumLines = 0, // We need local variables to sum up and assign the results - tmpNumWords = 0, // to their final (immutable) counterparts numLines, - tmpNumCharacters = 0; // numWords and numCharacters. - - for (String line = reader.readLine(); line != null; line = reader.readLine()) { - tmpNumLines++; - tmpNumWords += findNoOfWords(line); - tmpNumCharacters += line.length() + 1; // +1 representing the chopped newline character - } - - numLines = tmpNumLines; // Now assign the immutable - numWords = tmpNumWords; // instance attributes. - numCharacters = tmpNumCharacters; - - totalNumLines += numLines; // We need these in case of multiple input - totalNumWords += numWords; // files for presenting the grand total. - totalNumCharacters += numCharacters; - } - - /** - * Count the number of words in a string. Any sequence of non-whitespace - * characters (space, \t and \n) is being considered a word. - * - * @param line The input string to be examined - * @return The number of words in the given String. - */ - public static int findNoOfWords (final String line) { - int noOfWords = 0; - boolean isWhitespace = true; - for (final char ch: line.toCharArray()) { - switch (ch) { - case ' ': // Whitespace - case '\t': // Whitespace - case '\n': // Whitespace - isWhitespace = true; - break; - - default: // Non-whitespace - if (isWhitespace) { - isWhitespace = false; - noOfWords++; - } - } - } - return noOfWords; - } -} \ No newline at end of file diff --git a/Sd1/P/Wc/wc/src/main/java/de/hdm_stuttgart/mi/sd1/wc/Wc.java b/Sd1/P/Wc/wc/src/main/java/de/hdm_stuttgart/mi/sd1/wc/Wc.java deleted file mode 100644 index 0b5e31b3e..000000000 --- a/Sd1/P/Wc/wc/src/main/java/de/hdm_stuttgart/mi/sd1/wc/Wc.java +++ /dev/null @@ -1,56 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.wc; - -import java.io.BufferedReader; -import java.io.FileReader; -import java.io.IOException; -import java.io.InputStreamReader; - -/** - * Reading a text file and writing all content - * to standard output - */ -public class Wc { - - /** - * @param fileNames counting lines, words and characters of these file names - */ - public static void main(String[] fileNames) { - - TextFileStatistics[] textHandler = null; - - if (0 == fileNames.length) { // Try to read from standard input - try { - textHandler = new TextFileStatistics[] { new TextFileStatistics(new BufferedReader(new InputStreamReader(System.in)), "")}; - } catch(IOException ex) { - System.err.println("unable to read from standard input"); - System.exit(1); - } - } else { // Try to read from given set of filenames - textHandler = new TextFileStatistics[fileNames.length]; - for (int i = 0; i < fileNames.length; i++) { - final String filename = fileNames[i]; - try { - textHandler[i] = new TextFileStatistics(new BufferedReader(new FileReader(filename)), filename); - } catch (IOException e) { - System.err.println("unable to read from file '" + filename + "'"); - System.exit(1); - } - } - } - // We're done reading and parsing input(s). - // Write results to standard output. - final String outputFormat = "%3d %4d %6d %s %n"; - // int int int string - // newline - for (TextFileStatistics th : textHandler) { - System.out.format(outputFormat, th.numLines, th.numWords, th.numCharacters, th.filename); - } - if (1 < textHandler.length) { // Multiple input files? - System.out.format(outputFormat, - TextFileStatistics.getTotalNumLines() - , TextFileStatistics.getTotalNumWords() - , TextFileStatistics.getTotalNumCharacters() - , "total"); - } - } -} \ No newline at end of file diff --git a/Sd1/P/Wc/wc/src/main/java/de/hdm_stuttgart/mi/sd1/wc/package-info.java b/Sd1/P/Wc/wc/src/main/java/de/hdm_stuttgart/mi/sd1/wc/package-info.java deleted file mode 100644 index 511e16bf9..000000000 --- a/Sd1/P/Wc/wc/src/main/java/de/hdm_stuttgart/mi/sd1/wc/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * Simple exercise to reading text files - */ -package de.hdm_stuttgart.mi.sd1.wc; \ No newline at end of file diff --git a/Sd1/P/Wc/wc/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestCountWords.java b/Sd1/P/Wc/wc/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestCountWords.java deleted file mode 100644 index 990b27628..000000000 --- a/Sd1/P/Wc/wc/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestCountWords.java +++ /dev/null @@ -1,47 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.store; - - -import org.junit.Assert; -import org.junit.Test; - -import de.hdm_stuttgart.mi.sd1.wc.TextFileStatistics; - - -@SuppressWarnings("javadoc") -public class TestCountWords { - - @Test - public void testNoWord() { - Assert.assertEquals("Just white space", 0, TextFileStatistics.findNoOfWords(" \t")); - } - - @Test - public void testSingleWord() { - final String s = "We're"; - Assert.assertEquals("text='" + s + "'", 1, TextFileStatistics.findNoOfWords(s)); - } - - @Test - public void testTwoWords() { - final String s = "We are"; - Assert.assertEquals("text='" + s + "'", 2, TextFileStatistics.findNoOfWords(s)); - } - - @Test - public void testWordsWhiteHead() { - final String s = "\t \tBegin_space"; - Assert.assertEquals("text='" + s + "'", 1, TextFileStatistics.findNoOfWords(s)); - } - - @Test - public void testWordsWhiteTail() { - final String s = "End_space \t "; - Assert.assertEquals("text='" + s + "'", 1, TextFileStatistics.findNoOfWords(s)); - } - - @Test - public void testWhiteMulti() { - final String s = " some\t\tinterspersed \t spaces \t\t "; - Assert.assertEquals("text='" + s + "'", 3, TextFileStatistics.findNoOfWords(s)); - } -} diff --git a/Sd1/P/Wc/wc/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestWc.java b/Sd1/P/Wc/wc/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestWc.java deleted file mode 100644 index f33efc03a..000000000 --- a/Sd1/P/Wc/wc/src/test/java/de/hdm_stuttgart/mi/sd1/store/TestWc.java +++ /dev/null @@ -1,46 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.store; - -import java.io.BufferedReader; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.IOException; - -import org.junit.Assert; -import org.junit.Test; - -import de.hdm_stuttgart.mi.sd1.wc.TextFileStatistics; - -@SuppressWarnings("javadoc") -public class TestWc { - - @Test - public void testTwoInputFiles() throws FileNotFoundException, IOException { - - final String model_css_filename = "Testdata/model.css", // 4 lines 5 words 41 character - input_html_filename = "Testdata/input.html"; // 9 lines 14 words 137 character - //_________________________________________ - // total 13 lines 19 words 178 character - - final TextFileStatistics - model_css = new TextFileStatistics( - new BufferedReader(new FileReader(model_css_filename)), model_css_filename), - - input_html = new TextFileStatistics(new BufferedReader( - new FileReader(input_html_filename)), input_html_filename); - - // File Testdata/model.css - Assert.assertEquals( 4, model_css.numLines); - Assert.assertEquals( 5, model_css.numWords); - Assert.assertEquals(41, model_css.numCharacters); - - // File Testdata/input.html - Assert.assertEquals( 9, input_html.numLines); - Assert.assertEquals( 14, input_html.numWords); - Assert.assertEquals(137, input_html.numCharacters); - - // Grand total - Assert.assertEquals( 13, TextFileStatistics.getTotalNumLines()); - Assert.assertEquals( 19, TextFileStatistics.getTotalNumWords()); - Assert.assertEquals(178, TextFileStatistics.getTotalNumCharacters()); - } -} diff --git a/Sd1/P/WordFrequency1/Solution/.gitignore b/Sd1/P/WordFrequency1/Solution/.gitignore deleted file mode 100644 index 954270fb2..000000000 --- a/Sd1/P/WordFrequency1/Solution/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project \ No newline at end of file diff --git a/Sd1/P/WordFrequency1/Solution/pom.xml b/Sd1/P/WordFrequency1/Solution/pom.xml deleted file mode 100644 index 81bc5099a..000000000 --- a/Sd1/P/WordFrequency1/Solution/pom.xml +++ /dev/null @@ -1,72 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm_stuttgart.mi.sd1.textstat</groupId> - <artifactId>textstat</artifactId> - <version>1.0</version> - <packaging>jar</packaging> - - <name>textstat</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <version>2.4</version> - <configuration> - <archive> - <manifest> - <addClasspath>true</addClasspath> - <mainClass>de.hdm_stuttgart.mi.sd1.textstat/TextStatistics</mainClass> - </manifest> - </archive> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/WordFrequency1/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/TextFileHandler.java b/Sd1/P/WordFrequency1/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/TextFileHandler.java deleted file mode 100644 index eb49ff83c..000000000 --- a/Sd1/P/WordFrequency1/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/TextFileHandler.java +++ /dev/null @@ -1,68 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.textstat; - -import java.io.BufferedReader; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -/** - * Count words and their respective frequencies of appearance. - * - */ -public class TextFileHandler { - - /** - * The input file name to read from. - */ - public final String filename; - - /** - * The list of words found so far among with their frequencies. - */ - final List<WordFrequency> wordFrequencies = new ArrayList<WordFrequency>(); - - /** - * @param filename The filename input to read input, see {@link #filename} - * - * @throws IOException Input file cannot be read - * @throws FileNotFoundException File does not exist - */ - public TextFileHandler(final String filename) - throws FileNotFoundException, IOException { - - this.filename = filename; - final BufferedReader reader = new BufferedReader(new FileReader(filename)); - for (String line = reader.readLine(); line != null; line = reader.readLine()) { - // Ignore white space and some common text markers. - final String[] words = line.split("[ \t\"!?.,'´`]+"); - for (final String word: words) { - - // Word might be new - final WordFrequency newWordCandidate = new WordFrequency(word); - final int existingIndex = wordFrequencies.indexOf(newWordCandidate); - if (existingIndex < 0) { // Word is not yet in list. - wordFrequencies.add(newWordCandidate); - } else { // Word is already in our list. Just increment its frequency value. - wordFrequencies.get(existingIndex).incrementFrequency(); - } - } - } - reader.close(); - Collections.sort(wordFrequencies, new WordFrequency.CompareByFrequency()); - } - - /** - * Print a list of all words sorted by their respective - * frequencies. - */ - public void printFrequencies() { - for (final WordFrequency wordFrequency : wordFrequencies) { - System.out.format("%3d: %s\n", - wordFrequency.getFrequency(), - wordFrequency.word ); - } - } -} diff --git a/Sd1/P/WordFrequency1/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/TextStatistics.java b/Sd1/P/WordFrequency1/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/TextStatistics.java deleted file mode 100644 index cd4c48b00..000000000 --- a/Sd1/P/WordFrequency1/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/TextStatistics.java +++ /dev/null @@ -1,31 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.textstat; - -import java.io.IOException; - -/** - * Reading a text file and writing all content - * to standard output - */ -public class TextStatistics { - - /** - * @param fileNames counting lines, words and characters of these file names - */ - public static void main(String[] fileNames) { - - TextFileHandler textFileHandler = null; - - if (1 == fileNames.length){ // Try to read from input file - try { - textFileHandler = new TextFileHandler(fileNames[0]); - } catch (IOException e) { - System.err.println("unable to read from file '" + fileNames[0] + "'"); - System.exit(1); - } - } else { - System.err.println("I need exactly one file name argument"); - System.exit(1); - } - textFileHandler.printFrequencies(); - } -} \ No newline at end of file diff --git a/Sd1/P/WordFrequency1/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/WordFrequency.java b/Sd1/P/WordFrequency1/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/WordFrequency.java deleted file mode 100644 index 3e58520cc..000000000 --- a/Sd1/P/WordFrequency1/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/WordFrequency.java +++ /dev/null @@ -1,67 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.textstat; - -import java.util.Comparator; - -/** - * A helper class to account for frequencies of words found in textual input. - * - */ -public class WordFrequency { - /** - * The frequency of this word will be counted. - */ - public final String word; - private int frequency; - - /** - * @param word The immutable value. Has to be non-null. - */ - public WordFrequency(final String word) { - this.word = word; - frequency = 1; - } - - /** - * We found another one. Thus increment the total number - * to be returned by {@link #getFrequency()}. - */ - public void incrementFrequency() { - frequency++; - } - /** - * @return The number of appearances so far. - */ - public int getFrequency() { - return frequency; - } - - @Override - public int hashCode() { - return word.hashCode(); - } - - @Override - public boolean equals(Object obj) { - if (obj instanceof WordFrequency) { // WordFrequency instances are equal if and - return ((WordFrequency) obj).word.equals(word); // only if the underlying words are equals - } else { - return false; - } - } - /** - * Compare by word frequencies - * - */ - public static class CompareByFrequency implements Comparator<WordFrequency> { - - @Override - public int compare(WordFrequency wf1, WordFrequency wf2) { - final int frequencyDifference = wf2.frequency - wf1.frequency; - if (0 == frequencyDifference) { // Frequencies are equal, thus sort alphabetically - return wf1.word.compareTo(wf2.word); - } else { - return frequencyDifference; - } - } - } -} diff --git a/Sd1/P/WordFrequency1/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/package-info.java b/Sd1/P/WordFrequency1/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/package-info.java deleted file mode 100644 index 2498a183f..000000000 --- a/Sd1/P/WordFrequency1/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Gathering statistical information from text files - * - */ -package de.hdm_stuttgart.mi.sd1.textstat; \ No newline at end of file diff --git a/Sd1/P/WordFrequency1/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/textstat/test/package-info.java b/Sd1/P/WordFrequency1/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/textstat/test/package-info.java deleted file mode 100644 index aec2e894f..000000000 --- a/Sd1/P/WordFrequency1/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/textstat/test/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Testing text statistics - * - */ -package de.hdm_stuttgart.mi.sd1.textstat.test; \ No newline at end of file diff --git a/Sd1/P/WordFrequency1/Solution/testdata.txt b/Sd1/P/WordFrequency1/Solution/testdata.txt deleted file mode 100644 index afbfc6796..000000000 --- a/Sd1/P/WordFrequency1/Solution/testdata.txt +++ /dev/null @@ -1,11 +0,0 @@ -One day, Einstein, Newton, and Pascal meet up -and decide to play a game of hide and seek. -Einstein volunteered to be "It". As Einstein -counted, eyes closed, to 100, Pascal ran away -and hid, but Newton stood right in front of -Einstein and drew a one meter by one meter -square on the floor around himself. When -Einstein opened his eyes, he immediately saw -Newton and said "I found you Newton", but Newton -replied, "No, you found one Newton per square meter. -You found Pascal!" \ No newline at end of file diff --git a/Sd1/P/WordFrequency2/Solution1/.gitignore b/Sd1/P/WordFrequency2/Solution1/.gitignore deleted file mode 100644 index 954270fb2..000000000 --- a/Sd1/P/WordFrequency2/Solution1/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project \ No newline at end of file diff --git a/Sd1/P/WordFrequency2/Solution1/pom.xml b/Sd1/P/WordFrequency2/Solution1/pom.xml deleted file mode 100644 index 81bc5099a..000000000 --- a/Sd1/P/WordFrequency2/Solution1/pom.xml +++ /dev/null @@ -1,72 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm_stuttgart.mi.sd1.textstat</groupId> - <artifactId>textstat</artifactId> - <version>1.0</version> - <packaging>jar</packaging> - - <name>textstat</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <version>2.4</version> - <configuration> - <archive> - <manifest> - <addClasspath>true</addClasspath> - <mainClass>de.hdm_stuttgart.mi.sd1.textstat/TextStatistics</mainClass> - </manifest> - </archive> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/WordFrequency2/Solution1/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/TextFileHandler.java b/Sd1/P/WordFrequency2/Solution1/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/TextFileHandler.java deleted file mode 100644 index 5f50b61c1..000000000 --- a/Sd1/P/WordFrequency2/Solution1/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/TextFileHandler.java +++ /dev/null @@ -1,65 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.textstat; - -import java.io.BufferedReader; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.IOException; -import java.util.Hashtable; -import java.util.Map; -import java.util.Map.Entry; - -/** - * Count words and their respective frequencies of appearance. - * - */ -public class TextFileHandler { - - /** - * The input file name to read from. - */ - public final String filename; - - /** - * The list of words found so far among with their frequencies. - */ - final Map<String, Integer> wordFrequencies = new Hashtable<String, Integer>(); - - /** - * @param filename The filename input to read input, see {@link #filename} - * - * @throws IOException Input file cannot be read - * @throws FileNotFoundException File does not exist - */ - public TextFileHandler(final String filename) - throws FileNotFoundException, IOException { - - this.filename = filename; - final BufferedReader reader = new BufferedReader(new FileReader(filename)); - for (String line = reader.readLine(); line != null; line = reader.readLine()) { - // Ignore white space and some common text markers. - final String[] words = line.split("[ \t\"!?.,'´`]+"); - for (final String word: words) { - - // Word might be new - final Integer existingFrequency = wordFrequencies.get(word); - if (null == existingFrequency) { // Word is not yet in list. - wordFrequencies.put(word, new Integer(1)); - } else { // Word is already in our list. Replace by frequency+1 value. - wordFrequencies.put(word, existingFrequency + 1); - } - } - } - reader.close(); - } - - /** - * Print an unsorted list of all words - */ - public void printFrequencies() { - for (final Entry<String, Integer> entry : wordFrequencies.entrySet()) { - System.out.format("%3d: %s\n", - entry.getValue(), - entry.getKey()); - } - } -} diff --git a/Sd1/P/WordFrequency2/Solution1/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/TextStatistics.java b/Sd1/P/WordFrequency2/Solution1/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/TextStatistics.java deleted file mode 100644 index f9f78308f..000000000 --- a/Sd1/P/WordFrequency2/Solution1/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/TextStatistics.java +++ /dev/null @@ -1,32 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.textstat; - -import java.io.IOException; - -/** - * Reading a text file and creating the set of words being contained - * among with their respective frequencies of appearance. - */ -public class TextStatistics { - - /** - * @param fileNames counting word frequencies of this file name - */ - public static void main(String[] fileNames) { - - TextFileHandler textFileHandler = null; - - if (1 == fileNames.length){ // Try to read from input file - try { - textFileHandler = new TextFileHandler(fileNames[0]); - } catch (IOException e) { - System.err.println("unable to read from file '" + fileNames[0] + "'"); - System.exit(1); - } - } else { - System.err.println("I need exactly one file name argument"); - System.exit(1); - } - System.out.println("Unsorted frequencies:"); - textFileHandler.printFrequencies(); - } -} \ No newline at end of file diff --git a/Sd1/P/WordFrequency2/Solution1/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/package-info.java b/Sd1/P/WordFrequency2/Solution1/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/package-info.java deleted file mode 100644 index aaf29dc85..000000000 --- a/Sd1/P/WordFrequency2/Solution1/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Gathering word frequency statistics on text files - * - */ -package de.hdm_stuttgart.mi.sd1.textstat; \ No newline at end of file diff --git a/Sd1/P/WordFrequency2/Solution1/src/test/java/de/hdm_stuttgart/mi/sd1/textstat/test/package-info.java b/Sd1/P/WordFrequency2/Solution1/src/test/java/de/hdm_stuttgart/mi/sd1/textstat/test/package-info.java deleted file mode 100644 index aec2e894f..000000000 --- a/Sd1/P/WordFrequency2/Solution1/src/test/java/de/hdm_stuttgart/mi/sd1/textstat/test/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Testing text statistics - * - */ -package de.hdm_stuttgart.mi.sd1.textstat.test; \ No newline at end of file diff --git a/Sd1/P/WordFrequency2/Solution1/testdata.txt b/Sd1/P/WordFrequency2/Solution1/testdata.txt deleted file mode 100644 index afbfc6796..000000000 --- a/Sd1/P/WordFrequency2/Solution1/testdata.txt +++ /dev/null @@ -1,11 +0,0 @@ -One day, Einstein, Newton, and Pascal meet up -and decide to play a game of hide and seek. -Einstein volunteered to be "It". As Einstein -counted, eyes closed, to 100, Pascal ran away -and hid, but Newton stood right in front of -Einstein and drew a one meter by one meter -square on the floor around himself. When -Einstein opened his eyes, he immediately saw -Newton and said "I found you Newton", but Newton -replied, "No, you found one Newton per square meter. -You found Pascal!" \ No newline at end of file diff --git a/Sd1/P/WordFrequency2/Solution2/.gitignore b/Sd1/P/WordFrequency2/Solution2/.gitignore deleted file mode 100644 index 954270fb2..000000000 --- a/Sd1/P/WordFrequency2/Solution2/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project \ No newline at end of file diff --git a/Sd1/P/WordFrequency2/Solution2/pom.xml b/Sd1/P/WordFrequency2/Solution2/pom.xml deleted file mode 100644 index 81bc5099a..000000000 --- a/Sd1/P/WordFrequency2/Solution2/pom.xml +++ /dev/null @@ -1,72 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm_stuttgart.mi.sd1.textstat</groupId> - <artifactId>textstat</artifactId> - <version>1.0</version> - <packaging>jar</packaging> - - <name>textstat</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <version>2.4</version> - <configuration> - <archive> - <manifest> - <addClasspath>true</addClasspath> - <mainClass>de.hdm_stuttgart.mi.sd1.textstat/TextStatistics</mainClass> - </manifest> - </archive> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/WordFrequency2/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/TextFileHandler.java b/Sd1/P/WordFrequency2/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/TextFileHandler.java deleted file mode 100644 index fc0dd76b3..000000000 --- a/Sd1/P/WordFrequency2/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/TextFileHandler.java +++ /dev/null @@ -1,84 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.textstat; - -import java.io.BufferedReader; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Hashtable; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - -/** - * Count words and their respective frequencies of appearance. - * - */ -public class TextFileHandler { - - /** - * The input file name to read from. - */ - public final String filename; - - /** - * The list of words found so far among with their frequencies. - */ - final Map<String, Integer> wordFrequencies = new Hashtable<String, Integer>(); - - /** - * @param filename The filename input to read input, see {@link #filename} - * - * @throws IOException Input file cannot be read - * @throws FileNotFoundException File does not exist - */ - public TextFileHandler(final String filename) - throws FileNotFoundException, IOException { - - this.filename = filename; - final BufferedReader reader = new BufferedReader(new FileReader(filename)); - for (String line = reader.readLine(); line != null; line = reader.readLine()) { - // Ignore white space and some common text markers. - final String[] words = line.split("[ \t\"!?.,'´`]+"); - for (final String word: words) { - - // Word might be new - final Integer existingFrequency = wordFrequencies.get(word); - if (null == existingFrequency) { // Word is not yet in list. - wordFrequencies.put(word, new Integer(1)); - } else { // Word is already in our list. Replace by frequency+1 value. - wordFrequencies.put(word, existingFrequency + 1); - } - } - } - reader.close(); - } - - /** - * Print an unsorted list of all words - */ - public void printFrequencies() { - for (final Entry<String, Integer> entry : wordFrequencies.entrySet()) { - System.out.format("%3d: %s\n", - entry.getValue(), - entry.getKey()); - } - } - /** - * Print a list of all words first sorted descending by frequency and - * second alphabetically. - */ - public void printSortedFrequencies() { - - final List<Entry<String, Integer>> wordFrequencyList = - new ArrayList<Map.Entry<String,Integer>>(wordFrequencies.entrySet()); - - Collections.sort(wordFrequencyList, new WordFrequencyCompare()); - for (final Entry<String, Integer> entry : wordFrequencyList) { - System.out.format("%3d: %s\n", - entry.getValue(), - entry.getKey()); - } - } -} diff --git a/Sd1/P/WordFrequency2/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/TextStatistics.java b/Sd1/P/WordFrequency2/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/TextStatistics.java deleted file mode 100644 index ef9d4a40f..000000000 --- a/Sd1/P/WordFrequency2/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/TextStatistics.java +++ /dev/null @@ -1,36 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.textstat; - -import java.io.IOException; - -/** - * Reading a text file and creating a list of words being contained - * among with their respective frequencies of appearance sorted - * by frequency of appearance. - */ -public class TextStatistics { - - /** - * @param fileNames counting word frequencies of this file name - */ - public static void main(String[] fileNames) { - - TextFileHandler textFileHandler = null; - - if (1 == fileNames.length){ // Try to read from input file - try { - textFileHandler = new TextFileHandler(fileNames[0]); - } catch (IOException e) { - System.err.println("unable to read from file '" + fileNames[0] + "'"); - System.exit(1); - } - } else { - System.err.println("I need exactly one file name argument"); - System.exit(1); - } - System.out.println("Unsorted frequencies:"); - textFileHandler.printFrequencies(); - - System.out.println("Sorted frequencies:"); - textFileHandler.printSortedFrequencies(); - } -} \ No newline at end of file diff --git a/Sd1/P/WordFrequency2/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/WordFrequencyCompare.java b/Sd1/P/WordFrequency2/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/WordFrequencyCompare.java deleted file mode 100644 index 6c5582eca..000000000 --- a/Sd1/P/WordFrequency2/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/WordFrequencyCompare.java +++ /dev/null @@ -1,36 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.textstat; - -import java.util.Comparator; -import java.util.Map.Entry; - -/** - * Comparing word frequencies first by frequency (descending) and second - * alphabetically ignoring case (ascending). - * - * Consider three entry examples ("software"|35), - * ("function"|35) and ("error"|10). These entries - * reflect the words "software", "function" and "error" appearing in a text file with - * frequencies 35, 35 and 10 respectively. - * - * The intended sorting order should be: - * <ul> - * <li>("function"|35)</li> - * <li>("software"|35)</li> - * <li>("error"|10)</li> - * </ul> - * - * - */ -public class WordFrequencyCompare implements Comparator<Entry<String, Integer>> { - - @Override - public int compare(Entry<String, Integer> e1, Entry<String, Integer> e2) { - - if (e1.getValue().equals(e2.getValue())) { // Word frequencies are equal - // Just compare the strings in question alphabetically. - return e1.getKey().toLowerCase().compareTo(e2.getKey().toLowerCase()); - } else { - return e2.getValue() - e1.getValue(); // Sort by frequency value - } - } -} diff --git a/Sd1/P/WordFrequency2/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/package-info.java b/Sd1/P/WordFrequency2/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/package-info.java deleted file mode 100644 index aaf29dc85..000000000 --- a/Sd1/P/WordFrequency2/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Gathering word frequency statistics on text files - * - */ -package de.hdm_stuttgart.mi.sd1.textstat; \ No newline at end of file diff --git a/Sd1/P/WordFrequency2/Solution2/src/test/java/de/hdm_stuttgart/mi/sd1/textstat/test/package-info.java b/Sd1/P/WordFrequency2/Solution2/src/test/java/de/hdm_stuttgart/mi/sd1/textstat/test/package-info.java deleted file mode 100644 index aec2e894f..000000000 --- a/Sd1/P/WordFrequency2/Solution2/src/test/java/de/hdm_stuttgart/mi/sd1/textstat/test/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Testing text statistics - * - */ -package de.hdm_stuttgart.mi.sd1.textstat.test; \ No newline at end of file diff --git a/Sd1/P/WordFrequency2/Solution2/testdata.txt b/Sd1/P/WordFrequency2/Solution2/testdata.txt deleted file mode 100644 index afbfc6796..000000000 --- a/Sd1/P/WordFrequency2/Solution2/testdata.txt +++ /dev/null @@ -1,11 +0,0 @@ -One day, Einstein, Newton, and Pascal meet up -and decide to play a game of hide and seek. -Einstein volunteered to be "It". As Einstein -counted, eyes closed, to 100, Pascal ran away -and hid, but Newton stood right in front of -Einstein and drew a one meter by one meter -square on the floor around himself. When -Einstein opened his eyes, he immediately saw -Newton and said "I found you Newton", but Newton -replied, "No, you found one Newton per square meter. -You found Pascal!" \ No newline at end of file diff --git a/Sd1/P/Wordlist/Solution/.gitignore b/Sd1/P/Wordlist/Solution/.gitignore deleted file mode 100644 index 954270fb2..000000000 --- a/Sd1/P/Wordlist/Solution/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project \ No newline at end of file diff --git a/Sd1/P/Wordlist/Solution/pom.xml b/Sd1/P/Wordlist/Solution/pom.xml deleted file mode 100644 index 794d37a25..000000000 --- a/Sd1/P/Wordlist/Solution/pom.xml +++ /dev/null @@ -1,72 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm_stuttgart.mi.sd1.wordlist</groupId> - <artifactId>wordlist</artifactId> - <version>1.0</version> - <packaging>jar</packaging> - - <name>wordlist</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <version>2.4</version> - <configuration> - <archive> - <manifest> - <addClasspath>true</addClasspath> - <mainClass>de.hdm_stuttgart.mi.sd1.textstat/TextStatistics</mainClass> - </manifest> - </archive> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/Wordlist/Solution/smalltest.txt b/Sd1/P/Wordlist/Solution/smalltest.txt deleted file mode 100644 index 8b175cf6d..000000000 --- a/Sd1/P/Wordlist/Solution/smalltest.txt +++ /dev/null @@ -1,2 +0,0 @@ -A simple collection of words. - Some words may appear multiple times. \ No newline at end of file diff --git a/Sd1/P/Wordlist/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/TextFileHandler.java b/Sd1/P/Wordlist/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/TextFileHandler.java deleted file mode 100644 index 3d15a640f..000000000 --- a/Sd1/P/Wordlist/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/TextFileHandler.java +++ /dev/null @@ -1,68 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.textstat; - -import java.io.BufferedReader; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.IOException; -import java.util.HashSet; -import java.util.Set; - -/** - * Collect words from a text. - * - */ -public class TextFileHandler { - - /** - * The set of words found so far. - */ - final Set<String> words = new HashSet<String>(); - - /** - * @param filename The filename input to read input. - * - * @throws IOException Input file cannot be read - * @throws FileNotFoundException File does not exist - */ - public TextFileHandler(final String filename) - throws FileNotFoundException, IOException { - - final BufferedReader reader = new BufferedReader(new FileReader(filename)); - for (String inputLine = reader.readLine(); inputLine != null; inputLine = reader.readLine()) { - // Ignore white space and some common text markers. - final String[] inputWords = inputLine.split("[ \t\"!?.,'´`:;]+"); - for (final String word: inputWords) { - if (0 < word.trim().length()) { // Exclude empty text strings at beginning or end of line - words.add(word); - } - } - } - reader.close(); // Free OS resources no longer being needed. - } - - - - /** - * @return The set of words being found. - */ - public Set<String> getWords() { - return words; - } - - - - /** - * - * @return A comma separated list of words being found. - */ - public String getCsWordList() { - StringBuffer buffer = new StringBuffer(); - - String separator = ""; - for (final String word: words) { - buffer.append(separator + word); - separator = ", "; - } - return buffer.toString(); - } -} \ No newline at end of file diff --git a/Sd1/P/Wordlist/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/WordCollector.java b/Sd1/P/Wordlist/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/WordCollector.java deleted file mode 100644 index b72d151f5..000000000 --- a/Sd1/P/Wordlist/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/WordCollector.java +++ /dev/null @@ -1,31 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.textstat; - -import java.io.IOException; - -/** - * Reading a text file and writing all content - * to standard output - */ -public class WordCollector { - - /** - * @param fileNames counting lines, words and characters of these file names - */ - public static void main(String[] fileNames) { - - TextFileHandler textFileHandler = null; - - if (1 == fileNames.length){ // Interpret the user supplied command argument as an input filename. - try { - textFileHandler = new TextFileHandler(fileNames[0]); - } catch (IOException e) { - System.err.println("unable to read from file '" + fileNames[0] + "'"); - System.exit(1); - } - } else { // Either none ore more than one command line argument. - System.err.println("I need exactly one file name argument"); - System.exit(1); - } - System.out.println ("List of words:\n\n" + textFileHandler.getCsWordList()); - } -} \ No newline at end of file diff --git a/Sd1/P/Wordlist/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/package-info.java b/Sd1/P/Wordlist/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/package-info.java deleted file mode 100644 index 2498a183f..000000000 --- a/Sd1/P/Wordlist/Solution/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Gathering statistical information from text files - * - */ -package de.hdm_stuttgart.mi.sd1.textstat; \ No newline at end of file diff --git a/Sd1/P/Wordlist/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/textstat/test/TestWordCollect.java b/Sd1/P/Wordlist/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/textstat/test/TestWordCollect.java deleted file mode 100644 index 91793d1dd..000000000 --- a/Sd1/P/Wordlist/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/textstat/test/TestWordCollect.java +++ /dev/null @@ -1,29 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.textstat.test; - -import java.io.FileNotFoundException; -import java.io.IOException; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Set; - -import org.junit.Assert; -import org.junit.Test; - -import de.hdm_stuttgart.mi.sd1.textstat.TextFileHandler; - -@SuppressWarnings("javadoc") -public class TestWordCollect { - - @Test - public void testWordSet() throws FileNotFoundException, IOException { - - final Set<String> expectedStrings = - new HashSet <String>(Arrays.asList(new String[]{ - "A", "simple", "collection", "of", "words", - "Some", "may", "appear", "multiple", "times" - })); - - final TextFileHandler tfh = new TextFileHandler("smalltest.txt"); - Assert.assertTrue(tfh.getWords().equals(expectedStrings)); - } -} diff --git a/Sd1/P/Wordlist/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/textstat/test/package-info.java b/Sd1/P/Wordlist/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/textstat/test/package-info.java deleted file mode 100644 index cc2950772..000000000 --- a/Sd1/P/Wordlist/Solution/src/test/java/de/hdm_stuttgart/mi/sd1/textstat/test/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Testing word collecting. - * - */ -package de.hdm_stuttgart.mi.sd1.textstat.test; \ No newline at end of file diff --git a/Sd1/P/Wordlist/Solution/testdata.txt b/Sd1/P/Wordlist/Solution/testdata.txt deleted file mode 100644 index c7f53af74..000000000 --- a/Sd1/P/Wordlist/Solution/testdata.txt +++ /dev/null @@ -1,7 +0,0 @@ -A woman asks her husband, a programmer, to go shopping. - -Wife: "Dear, please, go to the nearby grocery store to -buy some bread. If they have eggs, buy 6." -Husband: "O.K., hun." - -Twenty minutes later the husband comes back bringing 6 loaves of bread. \ No newline at end of file diff --git a/Sd1/P/Wordlist/Solution2/.gitignore b/Sd1/P/Wordlist/Solution2/.gitignore deleted file mode 100644 index 954270fb2..000000000 --- a/Sd1/P/Wordlist/Solution2/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project \ No newline at end of file diff --git a/Sd1/P/Wordlist/Solution2/pom.xml b/Sd1/P/Wordlist/Solution2/pom.xml deleted file mode 100644 index 794d37a25..000000000 --- a/Sd1/P/Wordlist/Solution2/pom.xml +++ /dev/null @@ -1,72 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm_stuttgart.mi.sd1.wordlist</groupId> - <artifactId>wordlist</artifactId> - <version>1.0</version> - <packaging>jar</packaging> - - <name>wordlist</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <version>2.4</version> - <configuration> - <archive> - <manifest> - <addClasspath>true</addClasspath> - <mainClass>de.hdm_stuttgart.mi.sd1.textstat/TextStatistics</mainClass> - </manifest> - </archive> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/Wordlist/Solution2/smalltest.txt b/Sd1/P/Wordlist/Solution2/smalltest.txt deleted file mode 100644 index 8b175cf6d..000000000 --- a/Sd1/P/Wordlist/Solution2/smalltest.txt +++ /dev/null @@ -1,2 +0,0 @@ -A simple collection of words. - Some words may appear multiple times. \ No newline at end of file diff --git a/Sd1/P/Wordlist/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/TextFileHandler.java b/Sd1/P/Wordlist/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/TextFileHandler.java deleted file mode 100644 index b09b648d3..000000000 --- a/Sd1/P/Wordlist/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/TextFileHandler.java +++ /dev/null @@ -1,69 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.textstat; - -import java.io.BufferedReader; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.IOException; -import java.util.Set; -import java.util.SortedSet; -import java.util.TreeSet; - -/** - * Collect words from a text. - * - */ -public class TextFileHandler { - - /** - * The set of words found so far. - */ - final SortedSet<String> words = new TreeSet<String>(); - - /** - * @param filename The filename input to read input. - * - * @throws IOException Input file cannot be read - * @throws FileNotFoundException File does not exist - */ - public TextFileHandler(final String filename) - throws FileNotFoundException, IOException { - - final BufferedReader reader = new BufferedReader(new FileReader(filename)); - for (String inputLine = reader.readLine(); inputLine != null; inputLine = reader.readLine()) { - // Ignore white space and some common text markers. - final String[] inputWords = inputLine.split("[ \t\"!?.,'´`:;]+"); - for (final String word: inputWords) { - if (0 < word.trim().length()) { // Exclude empty text strings at beginning or end of line - words.add(word); - } - } - } - reader.close(); // Free OS resources no longer being needed. - } - - - - /** - * @return The set of words being found. - */ - public Set<String> getWords() { - return words; - } - - - - /** - * - * @return A comma separated list of words being found. - */ - public String getCsWordList() { - StringBuffer buffer = new StringBuffer(); - - String separator = ""; - for (final String word: words) { - buffer.append(separator + word); - separator = ", "; - } - return buffer.toString(); - } -} \ No newline at end of file diff --git a/Sd1/P/Wordlist/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/WordCollector.java b/Sd1/P/Wordlist/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/WordCollector.java deleted file mode 100644 index b72d151f5..000000000 --- a/Sd1/P/Wordlist/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/WordCollector.java +++ /dev/null @@ -1,31 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.textstat; - -import java.io.IOException; - -/** - * Reading a text file and writing all content - * to standard output - */ -public class WordCollector { - - /** - * @param fileNames counting lines, words and characters of these file names - */ - public static void main(String[] fileNames) { - - TextFileHandler textFileHandler = null; - - if (1 == fileNames.length){ // Interpret the user supplied command argument as an input filename. - try { - textFileHandler = new TextFileHandler(fileNames[0]); - } catch (IOException e) { - System.err.println("unable to read from file '" + fileNames[0] + "'"); - System.exit(1); - } - } else { // Either none ore more than one command line argument. - System.err.println("I need exactly one file name argument"); - System.exit(1); - } - System.out.println ("List of words:\n\n" + textFileHandler.getCsWordList()); - } -} \ No newline at end of file diff --git a/Sd1/P/Wordlist/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/package-info.java b/Sd1/P/Wordlist/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/package-info.java deleted file mode 100644 index 2498a183f..000000000 --- a/Sd1/P/Wordlist/Solution2/src/main/java/de/hdm_stuttgart/mi/sd1/textstat/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Gathering statistical information from text files - * - */ -package de.hdm_stuttgart.mi.sd1.textstat; \ No newline at end of file diff --git a/Sd1/P/Wordlist/Solution2/src/test/java/de/hdm_stuttgart/mi/sd1/textstat/test/TestWordCollect.java b/Sd1/P/Wordlist/Solution2/src/test/java/de/hdm_stuttgart/mi/sd1/textstat/test/TestWordCollect.java deleted file mode 100644 index 91793d1dd..000000000 --- a/Sd1/P/Wordlist/Solution2/src/test/java/de/hdm_stuttgart/mi/sd1/textstat/test/TestWordCollect.java +++ /dev/null @@ -1,29 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.textstat.test; - -import java.io.FileNotFoundException; -import java.io.IOException; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Set; - -import org.junit.Assert; -import org.junit.Test; - -import de.hdm_stuttgart.mi.sd1.textstat.TextFileHandler; - -@SuppressWarnings("javadoc") -public class TestWordCollect { - - @Test - public void testWordSet() throws FileNotFoundException, IOException { - - final Set<String> expectedStrings = - new HashSet <String>(Arrays.asList(new String[]{ - "A", "simple", "collection", "of", "words", - "Some", "may", "appear", "multiple", "times" - })); - - final TextFileHandler tfh = new TextFileHandler("smalltest.txt"); - Assert.assertTrue(tfh.getWords().equals(expectedStrings)); - } -} diff --git a/Sd1/P/Wordlist/Solution2/src/test/java/de/hdm_stuttgart/mi/sd1/textstat/test/package-info.java b/Sd1/P/Wordlist/Solution2/src/test/java/de/hdm_stuttgart/mi/sd1/textstat/test/package-info.java deleted file mode 100644 index cc2950772..000000000 --- a/Sd1/P/Wordlist/Solution2/src/test/java/de/hdm_stuttgart/mi/sd1/textstat/test/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Testing word collecting. - * - */ -package de.hdm_stuttgart.mi.sd1.textstat.test; \ No newline at end of file diff --git a/Sd1/P/Wordlist/Solution2/testdata.txt b/Sd1/P/Wordlist/Solution2/testdata.txt deleted file mode 100644 index c7f53af74..000000000 --- a/Sd1/P/Wordlist/Solution2/testdata.txt +++ /dev/null @@ -1,7 +0,0 @@ -A woman asks her husband, a programmer, to go shopping. - -Wife: "Dear, please, go to the nearby grocery store to -buy some bread. If they have eggs, buy 6." -Husband: "O.K., hun." - -Twenty minutes later the husband comes back bringing 6 loaves of bread. \ No newline at end of file diff --git a/Sd1/P/crab/V1/.gitignore b/Sd1/P/crab/V1/.gitignore deleted file mode 100644 index 4e247eee2..000000000 --- a/Sd1/P/crab/V1/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project diff --git a/Sd1/P/crab/V1/pom.xml b/Sd1/P/crab/V1/pom.xml deleted file mode 100644 index 97b9d7982..000000000 --- a/Sd1/P/crab/V1/pom.xml +++ /dev/null @@ -1,73 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.mi.sd1</groupId> - <artifactId>crab</artifactId> - <version>0.0.1-SNAPSHOT</version> - <packaging>jar</packaging> - - <name>crab</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - <links> - <link>http://www.greenfoot.org/files/javadoc/</link> - </links> - <additionalDependencies> - <additionalDependency> - <groupId>de.hdm-stuttgart.mi</groupId> - <artifactId>greenfoot</artifactId> - <version>2.3.0</version> - </additionalDependency> - </additionalDependencies> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>de.hdm-stuttgart.mi</groupId> - <artifactId>greenfoot</artifactId> - <version>2.3.0</version> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/crab/V1/src/main/java/Animal.java b/Sd1/P/crab/V1/src/main/java/Animal.java deleted file mode 100644 index 8a8c79ea2..000000000 --- a/Sd1/P/crab/V1/src/main/java/Animal.java +++ /dev/null @@ -1,80 +0,0 @@ -import greenfoot.Actor; - -/** - * Animal. This is the base class for all animals. In addition to the standard - * Actor methods, it provides the ability to move and turn. - * - * @author Michael Kolling - * @version 1.0 - */ -public class Animal extends Actor { - private static final double WALKING_SPEED = 5.0; - - /** - * Constructor for Animal - nothing to do. - */ - public Animal() { - } - - /** - * Act - empty method. Animals have no default action. - */ - public void act() { - } - - /** - * Turn 'angle' degrees towards the right (clockwise). - */ - public void turn(int angle) { - setRotation(getRotation() + angle); - } - - /** - * Move forward in the current direction. - */ - public void move() { - double angle = Math.toRadians(getRotation()); - int x = (int) Math.round(getX() + Math.cos(angle) * WALKING_SPEED); - int y = (int) Math.round(getY() + Math.sin(angle) * WALKING_SPEED); - - setLocation(x, y); - } - - /** - * Test if we are close to one of the edges of the world. Return true is we - * are. - * @return true, if we are at our world's edge, false otherwise - */ - public boolean atWorldEdge() { - if (getX() < 20 || getX() > getWorld().getWidth() - 20) - return true; - if (getY() < 20 || getY() > getWorld().getHeight() - 20) - return true; - else - return false; - } - - /** - * Return true if we can see an object of class 'clss' right where we are. - * False if there is no such object here. - * @param clss The type of object to look for - * @return true, if any object can be seen, false otherwise - */ - public boolean canSee(Class<?> clss) { - Actor actor = getOneObjectAtOffset(0, 0, clss); - return actor != null; - } - - /** - * Try to eat an object of class 'clss'. This is only successful if there is - * such an object where we currently are. Otherwise this method does - * nothing. - * @param clss The type of object to eat. - */ - public void eat(Class<?> clss) { - Actor actor = getOneObjectAtOffset(0, 0, clss); - if (actor != null) { - getWorld().removeObject(actor); - } - } -} diff --git a/Sd1/P/crab/V1/src/main/java/Crab.java b/Sd1/P/crab/V1/src/main/java/Crab.java deleted file mode 100644 index 56ac98f4a..000000000 --- a/Sd1/P/crab/V1/src/main/java/Crab.java +++ /dev/null @@ -1,89 +0,0 @@ -import greenfoot.Actor; -import greenfoot.Greenfoot; -import greenfoot.GreenfootImage; // (World, Actor, GreenfootImage, and Greenfoot) - -/** - * This class defines a crab. Crabs live on the beach. They like sand worms - * (very yummy, especially the green ones). - * - */ - -public class Crab extends Animal { - - private final static GreenfootImage image1 = new GreenfootImage("crab.png"); - private GreenfootImage image2 = new GreenfootImage("crab2.png"); - private int wormsEaten; - - // Initialize a crab's two images. - private void commonConstructor(int rotation) { - setRotation(rotation); - setImage(image1); - wormsEaten = 0; - } - - /** - * Create a crab. - */ - public Crab() { - commonConstructor(0); - } - - /** - * @param rotation See {@link Actor#setRotation(int)} - */ - public Crab(int rotation) { - commonConstructor(rotation); - } - - /** - * Act - do whatever the crab wants to do. This method is called whenever the - * 'Act' or 'Run' button gets pressed in the environment. - */ - public void act() { - checkKeypress(); - move(); - lookForWorm(); - switchImage(); - } - - /** - * Alternate the crab's image between image1 and image2. - */ - public void switchImage() { - if (getImage() == image1) { - setImage(image2); - } else { - setImage(image1); - } - } - - /** - * Check whether a control key on the keyboard has been pressed. If it has, - * react accordingly. - */ - public void checkKeypress() { - if (Greenfoot.isKeyDown("left")) { - turn(-4); - } - if (Greenfoot.isKeyDown("right")) { - turn(4); - } - } - - /** - * Check whether we have stumbled upon a worm. If we have, eat it. If not, do - * nothing. If we have eaten eight worms, we win. - */ - public void lookForWorm() { - if (canSee(Worm.class)) { - eat(Worm.class); - Greenfoot.playSound("slurp.wav"); - - wormsEaten = wormsEaten + 1; - if (wormsEaten == 8) { - Greenfoot.playSound("fanfare.wav"); - Greenfoot.stop(); - } - } - } -} \ No newline at end of file diff --git a/Sd1/P/crab/V1/src/main/java/CrabWorld.java b/Sd1/P/crab/V1/src/main/java/CrabWorld.java deleted file mode 100644 index 37ea26b9b..000000000 --- a/Sd1/P/crab/V1/src/main/java/CrabWorld.java +++ /dev/null @@ -1,64 +0,0 @@ -import greenfoot.Greenfoot; -import greenfoot.World; // imports Actor, World, Greenfoot, GreenfootImage - -/** - * A crab's world of configurable size and other nifty - * features. - * - */ -public class CrabWorld extends World { - - private final static int // Width and height of our - worldWidth = 700, // crab's world. - worldHeight = 560, - - initialLobsterCount = 3, - initialWormCount = 10; - - /** - * @return A random x-coordinate ranging from 0 to the worlds's width in pixel units - * - 1. A width of e.g. 100 sets the range to {0, 1,..., 99}. - */ - public static int getRandomX() { - return Greenfoot.getRandomNumber(worldWidth); - } - - /** - * @return A random y-ccordinate ranging from 0 to the worlds's height in pixel - * units - 1. A height of e.g. 70 sets the range to {0, 1,..., 69}. - */ - public static int getRandomY() { - return Greenfoot.getRandomNumber(worldHeight); - } - - /** - * @return A random rotation within the range [0, 1, ..., 360[. - */ - public static int getRandomRotation() { - return Greenfoot.getRandomNumber(360); - } - - /** - * Create the crab world (the beach). Every cell of our world is just 1 pixel. - */ - public CrabWorld() { - super(worldWidth, worldHeight, 1); - populateWorld(); - } - - /** - * Create the objects for the start of the game. - */ - public void populateWorld() { - addObject(new Crab(getRandomRotation()), getRandomX(), getRandomY()); - - // Creating lobsters. - for (int i = 0; i < initialLobsterCount; i++) { - addObject(new Lobster(getRandomRotation()), getRandomX(), getRandomY()); - } - // Creating worms. - for (int i = 0; i < initialWormCount; i++) { - addObject(new Worm(), getRandomX(), getRandomY()); - } - } -} \ No newline at end of file diff --git a/Sd1/P/crab/V1/src/main/java/Lobster.java b/Sd1/P/crab/V1/src/main/java/Lobster.java deleted file mode 100644 index 2a6779dca..000000000 --- a/Sd1/P/crab/V1/src/main/java/Lobster.java +++ /dev/null @@ -1,69 +0,0 @@ -import greenfoot.*; // (World, Actor, GreenfootImage, and Greenfoot) - -/** - * A lobster. Lobsters live on the beach. They like to eat crabs. (Well, in our - * game they do...) - * - * Version: 2 - * - * The lobster walks around randomly. If it runs into a crab it eats it. In this - * version, we have added a sound effect, and the game stops when a lobster eats - * the crab. - */ - -public class Lobster extends Animal { - - /** - * Defaults - */ - public Lobster() {} - - /** - * @param rotation See {@link Actor#setRotation(int)} - */ - public Lobster(int rotation) { - setRotation(rotation); - } - - /** - * Do whatever lobsters do. - */ - public void act() { - turnAtEdge(); - randomTurn(); - move(); - lookForCrab(); - } - - /** - * Check whether we are at the edge of the world. If we are, turn a bit. If - * not, do nothing. - */ - public void turnAtEdge() { - if (atWorldEdge()) { - turn(17); - } - } - - /** - * Randomly decide to turn from the current direction, or not. If we turn turn - * a bit left or right by a random degree. - */ - public void randomTurn() { - if (Greenfoot.getRandomNumber(100) > 90) { - turn(Greenfoot.getRandomNumber(90) - 45); - } - } - - /** - * Try to pinch a crab. That is: check whether we have stumbled upon a crab. - * If we have, remove the crab from the game, and stop the program running. - */ - public void lookForCrab() { - if (canSee(Crab.class)) { - eat(Crab.class); - Greenfoot.playSound("au.wav"); - Greenfoot.stop(); - } - } -} \ No newline at end of file diff --git a/Sd1/P/crab/V1/src/main/java/Worm.java b/Sd1/P/crab/V1/src/main/java/Worm.java deleted file mode 100644 index 5cbd9f17c..000000000 --- a/Sd1/P/crab/V1/src/main/java/Worm.java +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Worm. A sand worm. Very yummy. Especially crabs really like it. Author: - * Michael Kolling - */ -public class Worm extends Animal { - -} \ No newline at end of file diff --git a/Sd1/P/crab/V1/src/test/java/.ignore b/Sd1/P/crab/V1/src/test/java/.ignore deleted file mode 100644 index e69de29bb..000000000 diff --git a/Sd1/P/crab/V2/.gitignore b/Sd1/P/crab/V2/.gitignore deleted file mode 100644 index c708c363d..000000000 --- a/Sd1/P/crab/V2/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/target -/.settings -/.classpath -/.project diff --git a/Sd1/P/crab/V2/pom.xml b/Sd1/P/crab/V2/pom.xml deleted file mode 100644 index f6f769afd..000000000 --- a/Sd1/P/crab/V2/pom.xml +++ /dev/null @@ -1,76 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.mi.sd1</groupId> - <artifactId>crab</artifactId> - <version>2.0</version> - <packaging>jar</packaging> - - <name>crab</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - <links> - <link>http://www.greenfoot.org/files/javadoc/</link> - </links> - <additionalDependencies> - <additionalDependency> - <groupId>de.hdm-stuttgart.mi</groupId> - <artifactId>greenfoot</artifactId> - <version>2.3.0</version> - </additionalDependency> - </additionalDependencies> - - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - - <dependency> - <groupId>de.hdm-stuttgart.mi</groupId> - <artifactId>greenfoot</artifactId> - <version>2.3.0</version> - </dependency> - - </dependencies> -</project> diff --git a/Sd1/P/crab/V2/src/main/java/Animal.java b/Sd1/P/crab/V2/src/main/java/Animal.java deleted file mode 100644 index 69e477c3c..000000000 --- a/Sd1/P/crab/V2/src/main/java/Animal.java +++ /dev/null @@ -1,85 +0,0 @@ -import greenfoot.Actor; - -/** - * Animal. This is the base class for all animals. In addition to the standard - * Actor methods, it provides the ability to move and turn. - * - * @author Michael Kolling - * @version 1.0 - */ -public class Animal extends Actor { - private static final double WALKING_SPEED = 5.0; - - /** - * Constructor for Animal - nothing to do. - */ - public Animal() { - } - - /** - * Act - empty method. Animals have no default action. - */ - public void act() { - } - - /** - * Turn 'angle' degrees towards the right (clockwise). - */ - public void turn(int angle) { - setRotation(getRotation() + angle); - } - - /** - * Move forward in the current direction. - */ - public void move() { - double angle = Math.toRadians(getRotation()); - int x = (int) Math.round(getX() + Math.cos(angle) * WALKING_SPEED); - int y = (int) Math.round(getY() + Math.sin(angle) * WALKING_SPEED); - - setLocation(x, y); - } - - /** - * Test if we are close to one of the edges of the world. - * - * @return true if we are closer than 20 pixel to one - * of the world's edges, false otherwise. - * - */ - public boolean atWorldEdge() { - if (getX() < 20 || getX() > getWorld().getWidth() - 20) - return true; - if (getY() < 20 || getY() > getWorld().getHeight() - 20) - return true; - else - return false; - } - - /** - * - * @param clss Are we able to see an object exactly at our position? - * - * @return true if we can see an object of class 'clss' right where we are. - * false if there is no such object here. - */ - public boolean canSee(Class<?> clss) { - Actor actor = getOneObjectAtOffset(0, 0, clss); - return actor != null; - } - - /** - * Try to eat an object of class 'clss'. This is only successful if there is - * such an object where we currently are. Only one such - * object will be eaten. If no object of the given class is being found - * nothing happens at all. - * - * @param clss The type of object to be hunted for having dinner. - */ - public void eat(Class<?> clss) { - Actor actor = getOneObjectAtOffset(0, 0, clss); - if (actor != null) { - getWorld().removeObject(actor); - } - } -} diff --git a/Sd1/P/crab/V2/src/main/java/Crab.java b/Sd1/P/crab/V2/src/main/java/Crab.java deleted file mode 100644 index 56ac98f4a..000000000 --- a/Sd1/P/crab/V2/src/main/java/Crab.java +++ /dev/null @@ -1,89 +0,0 @@ -import greenfoot.Actor; -import greenfoot.Greenfoot; -import greenfoot.GreenfootImage; // (World, Actor, GreenfootImage, and Greenfoot) - -/** - * This class defines a crab. Crabs live on the beach. They like sand worms - * (very yummy, especially the green ones). - * - */ - -public class Crab extends Animal { - - private final static GreenfootImage image1 = new GreenfootImage("crab.png"); - private GreenfootImage image2 = new GreenfootImage("crab2.png"); - private int wormsEaten; - - // Initialize a crab's two images. - private void commonConstructor(int rotation) { - setRotation(rotation); - setImage(image1); - wormsEaten = 0; - } - - /** - * Create a crab. - */ - public Crab() { - commonConstructor(0); - } - - /** - * @param rotation See {@link Actor#setRotation(int)} - */ - public Crab(int rotation) { - commonConstructor(rotation); - } - - /** - * Act - do whatever the crab wants to do. This method is called whenever the - * 'Act' or 'Run' button gets pressed in the environment. - */ - public void act() { - checkKeypress(); - move(); - lookForWorm(); - switchImage(); - } - - /** - * Alternate the crab's image between image1 and image2. - */ - public void switchImage() { - if (getImage() == image1) { - setImage(image2); - } else { - setImage(image1); - } - } - - /** - * Check whether a control key on the keyboard has been pressed. If it has, - * react accordingly. - */ - public void checkKeypress() { - if (Greenfoot.isKeyDown("left")) { - turn(-4); - } - if (Greenfoot.isKeyDown("right")) { - turn(4); - } - } - - /** - * Check whether we have stumbled upon a worm. If we have, eat it. If not, do - * nothing. If we have eaten eight worms, we win. - */ - public void lookForWorm() { - if (canSee(Worm.class)) { - eat(Worm.class); - Greenfoot.playSound("slurp.wav"); - - wormsEaten = wormsEaten + 1; - if (wormsEaten == 8) { - Greenfoot.playSound("fanfare.wav"); - Greenfoot.stop(); - } - } - } -} \ No newline at end of file diff --git a/Sd1/P/crab/V2/src/main/java/CrabWorld.java b/Sd1/P/crab/V2/src/main/java/CrabWorld.java deleted file mode 100644 index 4bbc69fb5..000000000 --- a/Sd1/P/crab/V2/src/main/java/CrabWorld.java +++ /dev/null @@ -1,91 +0,0 @@ -import greenfoot.Greenfoot; -import greenfoot.World; // imports Actor, World, Greenfoot, GreenfootImage - -/** - * A crab's world of configurable size and other nifty - * features. - * - */ -public class CrabWorld extends World { - - private final static int - worldWidth = 700, // Width and height of - worldHeight = 560, // our crab's world. - - initialLobsterCount = 3, // Start a game with these numbers - initialWormCount = 10, // of lobsters and worms. - - minimalLobsterCrabDistance = 100; // The minimal distance from our crab to - // any lobster when starting the game. - - /** - * @return A random x-coordinate ranging from 0 to the worlds's width in pixel units - * - 1. A width of e.g. 100 sets the range to {0, 1,..., 99}. - */ - public static int getRandomX() { - return Greenfoot.getRandomNumber(worldWidth); - } - - /** - * @return A random y-ccordinate ranging from 0 to the worlds's height in pixel - * units - 1. A height of e.g. 70 sets the range to {0, 1,..., 69}. - */ - public static int getRandomY() { - return Greenfoot.getRandomNumber(worldHeight); - } - - /** - * @return A random rotation within the range [0, 1, ..., 360[. - */ - public static int getRandomRotation() { - return Greenfoot.getRandomNumber(360); - } - - /** - * Create the crab world (the beach). Every cell of our world is just 1 pixel. - */ - public CrabWorld() { - super(worldWidth, worldHeight, 1); - populateWorld(); - } - - /** - * Create the objects for the start of the game. - */ - public void populateWorld() { - - final int crabX = getRandomX(), // Our crab's initial (x|y) coordinates are - crabY = getRandomY(); // needed for later calculations, see below. - - // Create our crab. - addObject(new Crab(getRandomRotation()), crabX, crabY); - - // Creating lobsters. - int numLobsters = 0; - while (numLobsters < initialLobsterCount) { // We use a while loop instead of for since - // numLobsters gets incremented condionally. - - final int lobsterX = getRandomX(), // Potential lobster's position - lobsterY = getRandomY(), // at (lobsterX|lobsterY). - deltaX = lobsterX - crabX, - deltaY = lobsterY - crabY; - - // Pythagoras is talking to us. Do you listen? If you can't hear him, take a pencil - // and a sheet of paper to sketch the problem's geometry. - // - // We only add a lobster at coordinate position (lobsterX|lobsterY) if - // its distance to our crab is sufficiently large. - // - if (minimalLobsterCrabDistance * minimalLobsterCrabDistance < // Distance between lobster and crab is - deltaX * deltaX + deltaY * deltaY) { // larger than minimalLobsterCrabDistance. - addObject(new Lobster(getRandomRotation()), lobsterX, lobsterY); - numLobsters++; - } - } - - // Creating worms. Easy: No conditions apply. - for (int i = 0; i < initialWormCount; i++) { - addObject(new Worm(), getRandomX(), getRandomY()); - } - } -} \ No newline at end of file diff --git a/Sd1/P/crab/V2/src/main/java/Lobster.java b/Sd1/P/crab/V2/src/main/java/Lobster.java deleted file mode 100644 index 2a6779dca..000000000 --- a/Sd1/P/crab/V2/src/main/java/Lobster.java +++ /dev/null @@ -1,69 +0,0 @@ -import greenfoot.*; // (World, Actor, GreenfootImage, and Greenfoot) - -/** - * A lobster. Lobsters live on the beach. They like to eat crabs. (Well, in our - * game they do...) - * - * Version: 2 - * - * The lobster walks around randomly. If it runs into a crab it eats it. In this - * version, we have added a sound effect, and the game stops when a lobster eats - * the crab. - */ - -public class Lobster extends Animal { - - /** - * Defaults - */ - public Lobster() {} - - /** - * @param rotation See {@link Actor#setRotation(int)} - */ - public Lobster(int rotation) { - setRotation(rotation); - } - - /** - * Do whatever lobsters do. - */ - public void act() { - turnAtEdge(); - randomTurn(); - move(); - lookForCrab(); - } - - /** - * Check whether we are at the edge of the world. If we are, turn a bit. If - * not, do nothing. - */ - public void turnAtEdge() { - if (atWorldEdge()) { - turn(17); - } - } - - /** - * Randomly decide to turn from the current direction, or not. If we turn turn - * a bit left or right by a random degree. - */ - public void randomTurn() { - if (Greenfoot.getRandomNumber(100) > 90) { - turn(Greenfoot.getRandomNumber(90) - 45); - } - } - - /** - * Try to pinch a crab. That is: check whether we have stumbled upon a crab. - * If we have, remove the crab from the game, and stop the program running. - */ - public void lookForCrab() { - if (canSee(Crab.class)) { - eat(Crab.class); - Greenfoot.playSound("au.wav"); - Greenfoot.stop(); - } - } -} \ No newline at end of file diff --git a/Sd1/P/crab/V2/src/main/java/Worm.java b/Sd1/P/crab/V2/src/main/java/Worm.java deleted file mode 100644 index 5cbd9f17c..000000000 --- a/Sd1/P/crab/V2/src/main/java/Worm.java +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Worm. A sand worm. Very yummy. Especially crabs really like it. Author: - * Michael Kolling - */ -public class Worm extends Animal { - -} \ No newline at end of file diff --git a/Sd1/P/crab/V2/src/test/java/.gitignore b/Sd1/P/crab/V2/src/test/java/.gitignore deleted file mode 100644 index e69de29bb..000000000 diff --git a/Sd1/P/fraction/V05/.gitignore b/Sd1/P/fraction/V05/.gitignore deleted file mode 100644 index 4e247eee2..000000000 --- a/Sd1/P/fraction/V05/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project diff --git a/Sd1/P/fraction/V05/pom.xml b/Sd1/P/fraction/V05/pom.xml deleted file mode 100644 index ee56a676d..000000000 --- a/Sd1/P/fraction/V05/pom.xml +++ /dev/null @@ -1,65 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>fraction</artifactId> - <version>1.0</version> - <packaging>jar</packaging> - - <name>fraction</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - - <taglets> - <taglet> - <tagletClass>de.hdm_stuttgart.de.sd1.taglet.HtmlExtensionTaglet</tagletClass> - </taglet> - </taglets> - <tagletpath>../../../../../../../ws/eclipse/HtmlExtensionTaglet/target/classes</tagletpath> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/fraction/V05/src/main/java/de/hdm_stuttgart/mi/sd1/fraction/App.java b/Sd1/P/fraction/V05/src/main/java/de/hdm_stuttgart/mi/sd1/fraction/App.java deleted file mode 100644 index 720cc0d13..000000000 --- a/Sd1/P/fraction/V05/src/main/java/de/hdm_stuttgart/mi/sd1/fraction/App.java +++ /dev/null @@ -1,23 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.fraction; - -/** - * Playing with fraction objects, producing some output. - * - */ -public class App { - public static void main(String[] args) { - - // Input - final Fraction - twoThird = new Fraction(2, 3), // Construct a fraction object (2/3) - threeSeven = new Fraction(3, 7); // Construct a fraction object (3/7) - - // Computed results - final Fraction - sum = twoThird.add(threeSeven), // (2/3) + (3/7) - product = twoThird.mult(threeSeven); // (2/3) * (3/7) - - System.out.println("(2/3) + (3/7) = (23/21) = " + sum.getValue()); - System.out.println("(2/3) * (3/7) = (2/7) = " + product.getValue()); - } -} diff --git a/Sd1/P/fraction/V05/src/main/java/de/hdm_stuttgart/mi/sd1/fraction/Fraction.java b/Sd1/P/fraction/V05/src/main/java/de/hdm_stuttgart/mi/sd1/fraction/Fraction.java deleted file mode 100644 index c02e6b486..000000000 --- a/Sd1/P/fraction/V05/src/main/java/de/hdm_stuttgart/mi/sd1/fraction/Fraction.java +++ /dev/null @@ -1,125 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.fraction; - - -public class Fraction { - - /** - * @param numerator The fraction's numerator. - * @param denominator The fraction's denominator. - */ - public Fraction(long numerator, long denominator) { - // TODO - } - /** - * @return The fraction's decimal value e.g. 1/3 = 0.3333... - */ - public double getValue(){ - return 0;// TODO - } - /** - * @return The fraction's numerator - */ - public long getNumerator() { - return 0;// TODO - } - /** - * @param numerator Set the fraction's numerator. - */ - public void setNumerator(long numerator) { - // TODO - } - /** - * @return - * The fraction's denominator value - */ - public long getDenominator() { - return 0;// TODO - } - /** - * - * @param denominator Set the fraction's denominator - */ - public void setDenominator(long denominator) { - // TODO - } - - /** - * Add a second fraction to the current instance. - * - * @param f A second fraction. - * - * @return The sum of the current instance and f according to: - * -{@html.extend <math display="block" xmlns="http://www.w3.org/1998/Math/MathML"> - <mrow> - <mrow> - <mfrac> - <mi>a</mi> - <mi>b</mi> - </mfrac> - <mo>+</mo> - <mfrac> - <mi>x</mi> - <mi>y</mi> - </mfrac> - </mrow> - <mo>=</mo> - <mfrac> - <mrow> - <mrow> - <mi>a</mi> - <mi>y</mi> - </mrow> - <mo>+</mo> - <mrow> - <mi>b</mi> - <mi>x</mi> - </mrow> - </mrow> - <mrow> - <mi>b</mi> - <mi>y</mi> - </mrow> - </mfrac> - </mrow> -</math>} - */ - public Fraction add(Fraction f) { - return null;// TODO - } - /** - * Multiply a second fraction by this instance - * @param f Building the product with this second fraction. - * @return The result of multiplying the current instance by f according to: - {@html.extend <math display="block" xmlns="http://www.w3.org/1998/Math/MathML"> - <mrow> - <mrow> - <mrow> - <mfrac> - <mi>a</mi> - <mi>b</mi> - </mfrac> - <mfrac> - <mi>x</mi> - <mi>y</mi> - </mfrac> - </mrow> - <mo>=</mo> - <mfrac> - <mrow> - <mi>a</mi> - <mi>x</mi> - </mrow> - <mrow> - <mi>b</mi> - <mi>y</mi> - </mrow> - </mfrac> - </mrow> - </mrow> -</math>} - */ - public Fraction mult(Fraction f) { - return null;// TODO - } -} diff --git a/Sd1/P/fraction/V05/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/FractionTest.java b/Sd1/P/fraction/V05/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/FractionTest.java deleted file mode 100644 index 7955fc4bc..000000000 --- a/Sd1/P/fraction/V05/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/FractionTest.java +++ /dev/null @@ -1,27 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.fraction; - -import static org.junit.Assert.*; - -import org.junit.Test; - -public class FractionTest { - /** - * Sums and products of fractions - */ - @Test - public void testAdditionMultiply() { - // Input - final Fraction - twoThird = new Fraction(2, 3), // Construct a fraction object (2/3) - threeSeven = new Fraction(3, 7); // Construct a fraction object (3/7) - - // Computed results - final Fraction - sum = twoThird.add(threeSeven), // (2/3) + (3/7) - product = twoThird.mult(threeSeven); // (2/3) * (3/7) - - assertTrue(Math.abs(sum.getValue() - 23./21) < 1.E-15); // Mind limited computational accuracy! - assertTrue(Math.abs(product.getValue() - 2./7) < 1.E-15); - - } -} diff --git a/Sd1/P/fraction/V1/.gitignore b/Sd1/P/fraction/V1/.gitignore deleted file mode 100644 index 4e247eee2..000000000 --- a/Sd1/P/fraction/V1/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project diff --git a/Sd1/P/fraction/V1/pom.xml b/Sd1/P/fraction/V1/pom.xml deleted file mode 100644 index ee56a676d..000000000 --- a/Sd1/P/fraction/V1/pom.xml +++ /dev/null @@ -1,65 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>fraction</artifactId> - <version>1.0</version> - <packaging>jar</packaging> - - <name>fraction</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - - <taglets> - <taglet> - <tagletClass>de.hdm_stuttgart.de.sd1.taglet.HtmlExtensionTaglet</tagletClass> - </taglet> - </taglets> - <tagletpath>../../../../../../../ws/eclipse/HtmlExtensionTaglet/target/classes</tagletpath> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/fraction/V1/src/main/java/de/hdm_stuttgart/mi/sd1/fraction/App.java b/Sd1/P/fraction/V1/src/main/java/de/hdm_stuttgart/mi/sd1/fraction/App.java deleted file mode 100644 index 720cc0d13..000000000 --- a/Sd1/P/fraction/V1/src/main/java/de/hdm_stuttgart/mi/sd1/fraction/App.java +++ /dev/null @@ -1,23 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.fraction; - -/** - * Playing with fraction objects, producing some output. - * - */ -public class App { - public static void main(String[] args) { - - // Input - final Fraction - twoThird = new Fraction(2, 3), // Construct a fraction object (2/3) - threeSeven = new Fraction(3, 7); // Construct a fraction object (3/7) - - // Computed results - final Fraction - sum = twoThird.add(threeSeven), // (2/3) + (3/7) - product = twoThird.mult(threeSeven); // (2/3) * (3/7) - - System.out.println("(2/3) + (3/7) = (23/21) = " + sum.getValue()); - System.out.println("(2/3) * (3/7) = (2/7) = " + product.getValue()); - } -} diff --git a/Sd1/P/fraction/V1/src/main/java/de/hdm_stuttgart/mi/sd1/fraction/Fraction.java b/Sd1/P/fraction/V1/src/main/java/de/hdm_stuttgart/mi/sd1/fraction/Fraction.java deleted file mode 100644 index 226a1d6b5..000000000 --- a/Sd1/P/fraction/V1/src/main/java/de/hdm_stuttgart/mi/sd1/fraction/Fraction.java +++ /dev/null @@ -1,129 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.fraction; - -public class Fraction { - - long numerator,denominator; - - /** - * @param numerator The fraction's numerator. - * @param denominator The fraction's denominator. - */ - public Fraction(long numerator, long denominator) { - setNumerator(numerator); - setDenominator(denominator); - } - /** - * @return The fraction's decimal value e.g. 1/3 = 0.3333... - */ - public double getValue(){ - return (double) numerator / denominator; - } - /** - * @return The fraction's numerator - */ - public long getNumerator() { - return numerator; - } - /** - * @param numerator Set the fraction's numerator. - */ - public void setNumerator(long numerator) { - this.numerator = numerator; - } - /** - * @return - * The fraction's denominator value - */ - public long getDenominator() { - return denominator; - } - /** - * - * @param denominator Set the fraction's denominator - */ - public void setDenominator(long denominator) { - this.denominator = denominator; - } - - /** - * Add a second fraction to the current instance. - * - * @param f A second fraction. - * - * @return The sum of the current instance and f according to: - * -{@html.extend <math display="block" xmlns="http://www.w3.org/1998/Math/MathML"> - <mrow> - <mrow> - <mfrac> - <mi>a</mi> - <mi>b</mi> - </mfrac> - <mo>+</mo> - <mfrac> - <mi>x</mi> - <mi>y</mi> - </mfrac> - </mrow> - <mo>=</mo> - <mfrac> - <mrow> - <mrow> - <mi>a</mi> - <mi>y</mi> - </mrow> - <mo>+</mo> - <mrow> - <mi>b</mi> - <mi>x</mi> - </mrow> - </mrow> - <mrow> - <mi>b</mi> - <mi>y</mi> - </mrow> - </mfrac> - </mrow> -</math>} - */ - public Fraction add(Fraction f) { - return new Fraction( numerator * f.denominator + denominator * f.numerator, - denominator * f.denominator); - } - /** - * Multiply a second fraction by this instance - * @param f Building the product with this second fraction. - * @return The result of multiplying the current instance by f according to: - {@html.extend <math display="block" xmlns="http://www.w3.org/1998/Math/MathML"> - <mrow> - <mrow> - <mrow> - <mfrac> - <mi>a</mi> - <mi>b</mi> - </mfrac> - <mfrac> - <mi>x</mi> - <mi>y</mi> - </mfrac> - </mrow> - <mo>=</mo> - <mfrac> - <mrow> - <mi>a</mi> - <mi>x</mi> - </mrow> - <mrow> - <mi>b</mi> - <mi>y</mi> - </mrow> - </mfrac> - </mrow> - </mrow> -</math>} - */ - public Fraction mult(Fraction f) { - return new Fraction(numerator * f.numerator, - denominator * f.denominator); - } -} diff --git a/Sd1/P/fraction/V1/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/FractionTest.java b/Sd1/P/fraction/V1/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/FractionTest.java deleted file mode 100644 index 7955fc4bc..000000000 --- a/Sd1/P/fraction/V1/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/FractionTest.java +++ /dev/null @@ -1,27 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.fraction; - -import static org.junit.Assert.*; - -import org.junit.Test; - -public class FractionTest { - /** - * Sums and products of fractions - */ - @Test - public void testAdditionMultiply() { - // Input - final Fraction - twoThird = new Fraction(2, 3), // Construct a fraction object (2/3) - threeSeven = new Fraction(3, 7); // Construct a fraction object (3/7) - - // Computed results - final Fraction - sum = twoThird.add(threeSeven), // (2/3) + (3/7) - product = twoThird.mult(threeSeven); // (2/3) * (3/7) - - assertTrue(Math.abs(sum.getValue() - 23./21) < 1.E-15); // Mind limited computational accuracy! - assertTrue(Math.abs(product.getValue() - 2./7) < 1.E-15); - - } -} diff --git a/Sd1/P/fraction/V2/.gitignore b/Sd1/P/fraction/V2/.gitignore deleted file mode 100644 index 4e247eee2..000000000 --- a/Sd1/P/fraction/V2/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project diff --git a/Sd1/P/fraction/V2/pom.xml b/Sd1/P/fraction/V2/pom.xml deleted file mode 100644 index a33bf123a..000000000 --- a/Sd1/P/fraction/V2/pom.xml +++ /dev/null @@ -1,66 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>fraction</artifactId> - <version>1.0</version> - <packaging>jar</packaging> - - <name>fraction</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - - <taglets> - <taglet> - <tagletClass>de.hdm_stuttgart.de.sd1.taglet.HtmlExtensionTaglet</tagletClass> - </taglet> - </taglets> - <tagletpath>../../../../../../../ws/eclipse/HtmlExtensionTaglet/target/classes</tagletpath> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - - <dependency> - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>gcd</artifactId> - <version>1.0</version> - </dependency> - - </dependencies> -</project> diff --git a/Sd1/P/fraction/V2/src/main/java/de/hdm_stuttgart/mi/sd1/fraction/Driver.java b/Sd1/P/fraction/V2/src/main/java/de/hdm_stuttgart/mi/sd1/fraction/Driver.java deleted file mode 100644 index b7a075c44..000000000 --- a/Sd1/P/fraction/V2/src/main/java/de/hdm_stuttgart/mi/sd1/fraction/Driver.java +++ /dev/null @@ -1,26 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.fraction; - -/** - * Playing with fraction objects, producing some output. - * - */ -public class Driver { - /** - * @param args unused - */ - public static void main(String[] args) { - - // Input - final Fraction - twoThird = new Fraction(2, 3), // Construct a fraction object (2/3) - threeSeven = new Fraction(3, 7); // Construct a fraction object (3/7) - - // Computed results - final Fraction - sum = twoThird.add(threeSeven), // (2/3) + (3/7) - product = twoThird.mult(threeSeven); // (2/3) * (3/7) - - System.out.println("(2/3) + (3/7) = (23/21) = " + sum.getValue()); - System.out.println("(2/3) * (3/7) = (2/7) = " + product.getValue()); - } -} diff --git a/Sd1/P/fraction/V2/src/main/java/de/hdm_stuttgart/mi/sd1/fraction/Fraction.java b/Sd1/P/fraction/V2/src/main/java/de/hdm_stuttgart/mi/sd1/fraction/Fraction.java deleted file mode 100644 index 4f49d34e1..000000000 --- a/Sd1/P/fraction/V2/src/main/java/de/hdm_stuttgart/mi/sd1/fraction/Fraction.java +++ /dev/null @@ -1,144 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.fraction; - -import de.hdm_stuttgart.mi.sd1.gcd.Math; - -/** - * Representing Fractions - * - */ -public class Fraction { - - long numerator,denominator; - - - /** - * @param numerator The fraction's numerator. - * @param denominator The fraction's denominator. - */ - public Fraction(long numerator, long denominator) { - final long gcd = Math.getGcd(numerator, denominator); - - setNumerator(numerator / gcd); - setDenominator(denominator / gcd); - } - /** - * @return The fraction's decimal value e.g. 1/3 = 0.3333... - */ - public double getValue(){ - return (double) numerator / denominator; - } - /** - * @return The fraction's numerator - */ - public long getNumerator() { - return numerator; - } - /** - * @param numerator Set the fraction's numerator. - */ - public void setNumerator(long numerator) { - this.numerator = numerator; - } - /** - * @return - * The fraction's denominator value - */ - public long getDenominator() { - return denominator; - } - /** - * - * @param denominator Set the fraction's denominator - */ - public void setDenominator(long denominator) { - this.denominator = denominator; - } - - /** - * Add a second fraction to the current instance. - * - * @param f A second fraction. - * - * @return The sum of the current instance and f according to: - * -{@html.extend <math display="block" xmlns="http://www.w3.org/1998/Math/MathML"> - <mrow> - <mrow> - <mfrac> - <mi>a</mi> - <mi>b</mi> - </mfrac> - <mo>+</mo> - <mfrac> - <mi>x</mi> - <mi>y</mi> - </mfrac> - </mrow> - <mo>=</mo> - <mfrac> - <mrow> - <mrow> - <mi>a</mi> - <mi>y</mi> - </mrow> - <mo>+</mo> - <mrow> - <mi>b</mi> - <mi>x</mi> - </mrow> - </mrow> - <mrow> - <mi>b</mi> - <mi>y</mi> - </mrow> - </mfrac> - </mrow> -</math>} - */ - public Fraction add(Fraction f) { - - final long gcd = Math.getGcd(denominator, f.denominator); - - return new Fraction( numerator * (f.denominator / gcd) + (denominator / gcd) * f.numerator, - (denominator / gcd) * f.denominator); - } - /** - * Multiply a second fraction by this instance - * @param f Building the product with this second fraction. - * @return The result of multiplying the current instance by f according to: - {@html.extend <math display="block" xmlns="http://www.w3.org/1998/Math/MathML"> - <mrow> - <mrow> - <mrow> - <mfrac> - <mi>a</mi> - <mi>b</mi> - </mfrac> - <mfrac> - <mi>x</mi> - <mi>y</mi> - </mfrac> - </mrow> - <mo>=</mo> - <mfrac> - <mrow> - <mi>a</mi> - <mi>x</mi> - </mrow> - <mrow> - <mi>b</mi> - <mi>y</mi> - </mrow> - </mfrac> - </mrow> - </mrow> -</math>} - */ - public Fraction mult(Fraction f) { - final Fraction f1 = new Fraction(f.numerator, denominator), - f2 = new Fraction(numerator, f.denominator); - - return new Fraction(f1.numerator * f2.numerator, - f1.denominator * f2.denominator); - } -} diff --git a/Sd1/P/fraction/V2/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/FractionTest.java b/Sd1/P/fraction/V2/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/FractionTest.java deleted file mode 100644 index 4f993ab37..000000000 --- a/Sd1/P/fraction/V2/src/test/java/de/hdm_stuttgart/mi/sd1/fraction/FractionTest.java +++ /dev/null @@ -1,44 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.fraction; - -import static org.junit.Assert.*; - -import org.junit.Test; - -@SuppressWarnings("javadoc") -public class FractionTest { - - /** - * Sums and products of fractions - */ - @Test - public void testAddMultiplyReduce() { - - // Just constructor - final Fraction twoThirds = new Fraction(4, 6); - assertEquals(2, twoThirds.getNumerator()); - assertEquals(3, twoThirds.getDenominator()); - - // Input - final Fraction - twoThird = new Fraction(5, 6), // Construct a fraction object (2/3) - threeSeven = new Fraction(2, 9); // Construct a fraction object (3/7) - - // Computed results - final Fraction - sum = twoThird.add(threeSeven), // (5/6) + (2/9) - product = twoThird.mult(threeSeven); // (2/3) * (3/7) - - assertTrue(sum.getNumerator() == 19 && sum.getDenominator() == 18); - assertTrue(product.getNumerator() == 5 && product.getDenominator() == 27); - - final Fraction sum2 = new Fraction(5, 18).add(new Fraction(7, 12)); - assertTrue(sum2.getNumerator() == 31 && sum2.getDenominator() == 36); - - final Fraction product2 = new Fraction(5, 18).mult(new Fraction(12, 7)); - assertTrue(product2.getNumerator() == 10 && product2.getDenominator() == 21); - - - - - } -} diff --git a/Sd1/P/interest/V1/.gitignore b/Sd1/P/interest/V1/.gitignore deleted file mode 100644 index 4e247eee2..000000000 --- a/Sd1/P/interest/V1/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project diff --git a/Sd1/P/interest/V1/pom.xml b/Sd1/P/interest/V1/pom.xml deleted file mode 100644 index 26cd5ebe6..000000000 --- a/Sd1/P/interest/V1/pom.xml +++ /dev/null @@ -1,66 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>interest</artifactId> - <version>0.0.1-SNAPSHOT</version> - <packaging>jar</packaging> - - <name>V1</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - - <taglets> - <taglet> - <tagletClass>de.hdm_stuttgart.de.sd1.taglet.HtmlExtensionTaglet</tagletClass> - </taglet> - </taglets> - <tagletpath>../../../../../../../ws/eclipse/HtmlExtensionTaglet/target/classes</tagletpath> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/interest/V1/src/main/java/de/hdm_stuttgart/mi/sd1/interest/Account.java b/Sd1/P/interest/V1/src/main/java/de/hdm_stuttgart/mi/sd1/interest/Account.java deleted file mode 100644 index 838596123..000000000 --- a/Sd1/P/interest/V1/src/main/java/de/hdm_stuttgart/mi/sd1/interest/Account.java +++ /dev/null @@ -1,147 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.interest; - -/** - * Dealing with account balances and interest calculations. - * - */ -public class Account { - - private static double // All accounts share a common interest rate. Thus - interestRate = 1.5; // this parameter is being declared as "static". - - private double balance; // Balances apply per-account thus in contrast - // "static" must not appear here. - - /** - * Create a new account having a balance of 0. - */ - public Account() { // Default Constructor. This one has no parameters and - setBalance(0); // thus creates an initially empty account. - } - - /** - * Create a new account having of given initial balance. - * - * @param balance - * The account's initial balance. - */ - public Account(double balance) { // Non-default constructor creating an account - setBalance(balance); // with (possibly) non-zero balance. - } - - /** - * @return The account's current balance. - */ - public double getBalance() { - return balance; - } - /** - * Setting a (possibly) new balance. - * - * @param balance - * The desired new balance value. If greater than 10000 - * a warning message is being issued and the accounts current value will be retained. - */ - public void setBalance(double balance) { - if (balance <= 10000) { - this.balance = balance; // "this" required to resolve name shadowing conflict of formal - // parameter name "double stand" with respect to Account.stand . - } else { - System.out.println("Balance" + balance + " exceeds " + 10000); - } - } - /** - * Setting the interest rate common to all accounts. - * - * @param z - * the desired (global) interest rate. - */ - public static void setInterestRate(double z) { // Scope of variable "z" limited is just the next block {...}, - interestRate = z; // in contrast interestRate has class scope. - } - /** - * @return the current globally used interest rate - */ - public static double getInterestRate() { - return interestRate; - } - /** - * <p>Adding the annual interest to the current balance according to:</p> - * {@html.extend -<math display="block" xmlns="http://www.w3.org/1998/Math/MathML"> - <mrow> - <msub> - <mi>balance</mi> - <mi>1</mi> - </msub> - <mo>=</mo> - <mrow> - <mi>balance</mi> - <mrow> - <mo>(</mo> - <mrow> - <mi>1</mi> - <mo>+</mo> - <mfrac> - <mi>interestRate</mi> - <mi>100</mi> - </mfrac> - </mrow> - <mo>)</mo> - </mrow> - </mrow> - </mrow> - </math>} - */ - public void applyInterest() { - balance = balance * (1 + interestRate / 100); - } - - /** - * <p>Adding the interest of several years to the current balance according to:</p> - * {@html.extend -<math display="block" xmlns="http://www.w3.org/1998/Math/MathML"> - <mrow> - <msub> - <mi>balance</mi> - <mi>years</mi> - </msub> - <mo>=</mo> - <mrow> - <mi>balance</mi> - <msup> - <mrow> - <mo>(</mo> - <mrow> - <mi>1</mi> - <mo>+</mo> - <mfrac> - <mi>interestRate</mi> - <mi>100</mi> - </mfrac> - </mrow> - <mo>)</mo> - </mrow> - <mi>years</mi> - </msup> - </mrow> - </mrow> - </math>} - * - * @param years - * the given time period. - */ - public void applyInterest(int years) { - balance = balance * Math.pow((1 + interestRate / 100), years) ; // interest factor raised to the power of years, see javadoc. - } - - /** - * Calculate the expected annual interest without changing the account's balance. - * - * @return - * Annual interest to be expected - */ - public double getYearlyInterest() { - return balance * interestRate / 100; - } -} \ No newline at end of file diff --git a/Sd1/P/interest/V1/src/main/java/de/hdm_stuttgart/mi/sd1/interest/App.java b/Sd1/P/interest/V1/src/main/java/de/hdm_stuttgart/mi/sd1/interest/App.java deleted file mode 100644 index 688f023f4..000000000 --- a/Sd1/P/interest/V1/src/main/java/de/hdm_stuttgart/mi/sd1/interest/App.java +++ /dev/null @@ -1,27 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.interest; - - -/** - * Testing simple accounts - * - */ -public class App { - /** - * @param args unused - */ - public static void main(String[] args) { - - Account account = new Account(20.); // Create a new instance of class Account - - account.setBalance(100.); // set account's balance - System.out.println("Balance:" + account.getBalance()); // Display account's balance - - Account.setInterestRate(1.0); // Setting the global interest rate - - account.applyInterest(); // raise balance by one year's interest. - - account.applyInterest(3); // raise balance by three years compounded interest - - System.out.println("balance:" + account.getBalance()); // Display account's balance again - } -} diff --git a/Sd1/P/interest/V1/src/test/java/de/hdm_stuttgart/mi/sd1/interest/AccountTest.java b/Sd1/P/interest/V1/src/test/java/de/hdm_stuttgart/mi/sd1/interest/AccountTest.java deleted file mode 100644 index 0a040792f..000000000 --- a/Sd1/P/interest/V1/src/test/java/de/hdm_stuttgart/mi/sd1/interest/AccountTest.java +++ /dev/null @@ -1,25 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.interest; - -import static org.junit.Assert.*; - -import org.junit.Test; -/** - * Unit test for simple App. - */ -public class AccountTest { - /** - * Testing account balance and interest calculations - */ - @Test - public void testApp() { - - Account account = new Account(20.); // Create a new instance of class Account - - account.setBalance(100.); // set account's balance - Account.setInterestRate(1.0); // Setting the global interest rate - account.applyInterest(); // raise balance by one year's interest. - account.applyInterest(3); // raise balance by three years compounded interest - - assertTrue(account.getBalance() == 104.06040100000001); - } -} diff --git a/Sd1/P/interest/V2/.gitignore b/Sd1/P/interest/V2/.gitignore deleted file mode 100644 index 4e247eee2..000000000 --- a/Sd1/P/interest/V2/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project diff --git a/Sd1/P/interest/V2/pom.xml b/Sd1/P/interest/V2/pom.xml deleted file mode 100644 index 26cd5ebe6..000000000 --- a/Sd1/P/interest/V2/pom.xml +++ /dev/null @@ -1,66 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>interest</artifactId> - <version>0.0.1-SNAPSHOT</version> - <packaging>jar</packaging> - - <name>V1</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - - <taglets> - <taglet> - <tagletClass>de.hdm_stuttgart.de.sd1.taglet.HtmlExtensionTaglet</tagletClass> - </taglet> - </taglets> - <tagletpath>../../../../../../../ws/eclipse/HtmlExtensionTaglet/target/classes</tagletpath> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/interest/V2/src/main/java/de/hdm_stuttgart/mi/sd1/interest/Account.java b/Sd1/P/interest/V2/src/main/java/de/hdm_stuttgart/mi/sd1/interest/Account.java deleted file mode 100644 index abddf847a..000000000 --- a/Sd1/P/interest/V2/src/main/java/de/hdm_stuttgart/mi/sd1/interest/Account.java +++ /dev/null @@ -1,182 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.interest; - -/** - * Dealing with account balances and interest calculations. - * - */ -public class Account { - - private static double - interestRate = 1.5, // applied to positive balances - defaultInterestRate = 15.; // applied to negative balances - - private double balance; // Balances apply per-account thus in contrast - // "static" must not appear here. - - /** - * Create a new account having a balance of 0. - */ - public Account() { // Default Constructor. This one has no parameters and - setBalance(0); // thus creates an initially empty account. - } - - /** - * Create a new account having of given initial balance. - * - * @param balance - * The account's initial balance. - */ - public Account(double balance) { // Non-default constructor creating an account - setBalance(balance); // with (possibly) non-zero balance. - } - - /** - * @return The account's current balance. - */ - public double getBalance() { - return balance; - } - /** - * Setting a (possibly) new balance. - * - * @param balance - * The desired new balance value. If greater than 10000 - * a warning message is being issued and the accounts current value will be retained. - */ - public void setBalance(double balance) { - if (balance <= 10000) { - this.balance = balance; // "this" required to resolve name shadowing conflict of formal - // parameter name "double stand" with respect to Account.stand . - } else { - System.out.println("Balance" + balance + " exceeds " + 10000); - } - } - /** - * Setting the interest rate common to all accounts. This one - * will be applied to positive balances only. For handling - * negative balances see {{@link #setDefaultInterestRate(double)}. - * - * @param interestRate The desired (global) interest rate. - */ - public static void setInterestRate(double interestRate) { - Account.interestRate = interestRate; - } - /** - * @return The current global interest rate - */ - public static double getInterestRate() { - return interestRate; - } - - /** - * @return - * the current default interest rate value. - */ - public static double getDefaultInterestRate() { - return defaultInterestRate; - } - - /** - * This interest rate will be applied to negative balances. In contrast - * {{@link #setInterestRate(double)} will handle positive balance values. - * - * @param defaultInterestRate - * the desired default interest rate value. - */ - public static void setDefaultInterestRate(double defaultInterestRate) { - Account.defaultInterestRate = defaultInterestRate; - } - - /** - * <p>Adding the annual interest to the current balance according to:</p> - * {@html.extend -<math display="block" xmlns="http://www.w3.org/1998/Math/MathML"> - <mrow> - <msub> - <mi>balance</mi> - <mi>1</mi> - </msub> - <mo>=</mo> - <mrow> - <mi>balance</mi> - <mrow> - <mo>(</mo> - <mrow> - <mi>1</mi> - <mo>+</mo> - <mfrac> - <mi>interestRate</mi> - <mi>100</mi> - </mfrac> - </mrow> - <mo>)</mo> - </mrow> - </mrow> - </mrow> - </math>} - * <p>Positive balances will receive the value of {{@link #setInterestRate(double)} whereas the - * calculation of negative balances will be based on {{@link #setDefaultInterestRate(double)}.</p> - */ - public void applyInterest() { - if (0 < balance) { - balance = balance * (1 + interestRate / 100); - } else if (balance < 0){ - balance = balance * (1 + defaultInterestRate / 100); - } - } - - /** - * <p>Adding the interest of several years to the current balance according to:</p> - * {@html.extend -<math display="block" xmlns="http://www.w3.org/1998/Math/MathML"> - <mrow> - <msub> - <mi>balance</mi> - <mi>years</mi> - </msub> - <mo>=</mo> - <mrow> - <mi>balance</mi> - <msup> - <mrow> - <mo>(</mo> - <mrow> - <mi>1</mi> - <mo>+</mo> - <mfrac> - <mi>interestRate</mi> - <mi>100</mi> - </mfrac> - </mrow> - <mo>)</mo> - </mrow> - <mi>years</mi> - </msup> - </mrow> - </mrow> - </math>} - * - *<p>Positive balances will receive the value of {{@link #setInterestRate(double)} whereas the - * calculation of negative balances will be based on {{@link #setDefaultInterestRate(double)}.</p> - * - * @param years - * the given time period. - */ - public void applyInterest(int years) { - if (0 < balance) { - balance = balance * Math.pow((1 + interestRate / 100), years) ; - } else if (balance < 0){ - balance = balance * Math.pow((1 + defaultInterestRate / 100), years) ; - } - } - - /** - * Calculate the expected annual interest without changing the account's balance. - * - * @return - * Annual interest to be expected - */ - public double getYearlyInterest() { - return balance * interestRate / 100; - } -} \ No newline at end of file diff --git a/Sd1/P/interest/V2/src/main/java/de/hdm_stuttgart/mi/sd1/interest/App.java b/Sd1/P/interest/V2/src/main/java/de/hdm_stuttgart/mi/sd1/interest/App.java deleted file mode 100644 index ff6ee04b9..000000000 --- a/Sd1/P/interest/V2/src/main/java/de/hdm_stuttgart/mi/sd1/interest/App.java +++ /dev/null @@ -1,32 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.interest; - - -/** - * Testing simple accounts - * - */ -public class App { - /** - * @param args unused - */ - public static void main(String[] args) { - - Account account = new Account(20.); // Create a new instance of class Account - - account.setBalance(100.); // set account's balance - System.out.println("Balance:" + account.getBalance()); // Display account's balance - - Account.setInterestRate(1.0); // Setting the global interest rate - - account.applyInterest(3); // raise balance by three years compounded interest - - System.out.println("balance:" + account.getBalance()); // Display account's balance again - - - Account.setInterestRate(15.); - account.setBalance(-1000.); // You owe me something! - account.applyInterest(3); - - System.out.println("balance:" + account.getBalance()); // Display account's balance again - } -} diff --git a/Sd1/P/interest/V2/src/test/java/de/hdm_stuttgart/mi/sd1/interest/AccountTest.java b/Sd1/P/interest/V2/src/test/java/de/hdm_stuttgart/mi/sd1/interest/AccountTest.java deleted file mode 100644 index 501664acb..000000000 --- a/Sd1/P/interest/V2/src/test/java/de/hdm_stuttgart/mi/sd1/interest/AccountTest.java +++ /dev/null @@ -1,33 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.interest; - -import static org.junit.Assert.*; - -import org.junit.Test; - -/** - * Unit test for simple App. - */ -public class AccountTest { - - /** - * Testing account balance and interest calculations - */ - @Test - public void testBalanceInterest() { - - Account account = new Account(20.); // Create a new instance of class Account - - account.setBalance(100.); // set account's balance - Account.setInterestRate(1.0); // Setting the global interest rate - account.applyInterest(); // raise balance by one year's interest. - account.applyInterest(3); // raise balance by three years compounded interest - - assertTrue(account.getBalance() == 104.06040100000001); - - account.setBalance(-1000.); // You owe me something! - account.applyInterest(3); - - assertTrue(account.getBalance() == -1520.8749999999998); - - } -} diff --git a/Sd1/P/life/V1/.gitignore b/Sd1/P/life/V1/.gitignore deleted file mode 100644 index 128b1c231..000000000 --- a/Sd1/P/life/V1/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -/.settings -/target -/.classpath -/.project -/bin diff --git a/Sd1/P/life/V1/pom.xml b/Sd1/P/life/V1/pom.xml deleted file mode 100644 index 113fab5f2..000000000 --- a/Sd1/P/life/V1/pom.xml +++ /dev/null @@ -1,75 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>life</artifactId> - <version>3.0</version> - <packaging>jar</packaging> - - <name>Game of Life</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - <links> - <link>http://www.greenfoot.org/files/javadoc/</link> - </links> -<!-- - <additionalDependencies> - <additionalDependency> - <groupId>org.greenfoot</groupId> - <artifactId>greenfoot-core</artifactId> - <version>2.5</version> - </additionalDependency> - </additionalDependencies> - --> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>de.hdm-stuttgart.mi</groupId> - <artifactId>greenfoot</artifactId> - <version>2.3.0</version> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/life/V1/src/main/java/Cell.java b/Sd1/P/life/V1/src/main/java/Cell.java deleted file mode 100755 index ad19dc804..000000000 --- a/Sd1/P/life/V1/src/main/java/Cell.java +++ /dev/null @@ -1,54 +0,0 @@ -import greenfoot.Actor; -import greenfoot.GreenfootImage; - -/** - * Implementing a single cell. Each cell has its own state information - * and a reference to its surrounding neighbors, - * - */ -public class Cell extends Actor { - - CellState state; - final GreenfootImage myBody; - final int myBodySize; - - /** - * Create the cell body's image and initialize state. - * - * @param cellSize The cell's size in pixel units, - * @param intialState Indicating {@link CellState#living} or {@link CellState#dead} - */ - public Cell(int cellSize, CellState intialState) { - super(); - state = intialState; - myBody = new GreenfootImage(cellSize, cellSize); - setImage(myBody); - myBodySize = cellSize - 2; - displayState(); - } - - /** - * Set the state of the cell. - * @param state See {@link #getState()}} - */ - public void setState(final CellState state) { - this.state = state; - displayState(); - } - - /** - * Get the state of the cell. - * @return Either {@link CellState#living} or {@link CellState#dead}. - */ - public CellState getState() { - return state; - } - - /** - * Draw the cell's body based on its state. - */ - private void displayState() { - myBody.setColor(state.color); - myBody.fillRect(1, 1, myBodySize, myBodySize); - } -} diff --git a/Sd1/P/life/V1/src/main/java/CellState.java b/Sd1/P/life/V1/src/main/java/CellState.java deleted file mode 100644 index 9bf242083..000000000 --- a/Sd1/P/life/V1/src/main/java/CellState.java +++ /dev/null @@ -1,34 +0,0 @@ -import java.awt.Color; - -/** - * A cell's state: Either alive or dead - * - */ -public enum CellState { - - /** - * Cell is alive. - */ - living(Color.black, "Cell is in 'alive' state") , - /** - * Cell is dead. - */ - dead(Color.white, "Cell is in 'dead' state"); - - /** - * The cell's color when rendered. - */ - public final Color color; - - private final String description; - - CellState(final Color color, final String description) { - this.color = color; - this.description = description; - } - - @Override - public String toString() { - return description; - } -} diff --git a/Sd1/P/life/V1/src/main/java/LifeWorld.java b/Sd1/P/life/V1/src/main/java/LifeWorld.java deleted file mode 100755 index 73d97e3ca..000000000 --- a/Sd1/P/life/V1/src/main/java/LifeWorld.java +++ /dev/null @@ -1,118 +0,0 @@ -import greenfoot.Greenfoot; -import greenfoot.GreenfootImage; -import greenfoot.World; - -import java.awt.Color; - -/** - * A <a href="http://en.wikipedia.org/wiki/Conway's_Game_of_Life" target="_blank">game of live</a> world consisting of lines and cells. - * - */ -public class LifeWorld extends World { - - private static int initialLivingPercentage = 25; - - private final GreenfootImage gridImage; - - private static final int width = 50; - private static final int height = 50; - private static final int cellSize = 10; - - /** - * The probability for a newly born cell - * to be in 'living' ( See {@link Cell#setState(CellState)}) state. - * - * @param initialLivingPercentage A value from [0, 100] ranging from - * 'all cells dead' to 'all cells alive' - */ - public static void setInitialLivingPercentage(int initialLivingPercentage) { - LifeWorld.initialLivingPercentage = initialLivingPercentage; - } - - /** Randomly return the two states {@link CellState#living} and {@link CellState#dead}. The - * corresponding probabilities depend on the value of {@link #setInitialLivingPercentage(int)}. - * - * @return Either {@link CellState#living} or {@link CellState#dead}. - */ - public static CellState getRandomLifeOrDeadState() { - return Greenfoot.getRandomNumber(100) < initialLivingPercentage ? - CellState.living : CellState.dead; - } - - /** - * Constructor for objects of class Grid. Calls methods to draw the grid - * lines, to create the array of randomly initialized cells . - * - */ - public LifeWorld() { - super(width, height, cellSize); - gridImage = getBackground(); - drawGrid(); - createCells(); // Create an initialize array all cells. - } - - /** - * Draw the cell grid's lines. - */ - private void drawGrid() { - gridImage.setColor(Color.red); - - final int endX = cellSize * width, - endY = cellSize * height; - - for (int x = 0; x < endX; x += cellSize) { // Drawing vertical grid lines. Diagram - gridImage.drawLine(x, 0, x, endY); // is being scaled by cellSize: - } // - // 0 1 2 ...(width - 1) - // 0 | | | ... | - // 1 | | | ... | - // 2 | | | ... | - // ... ... ... ... - // (height-1) | | | ... | - - for (int y = 0; y < endY; y += cellSize) { // Drawing horizontal grid lines. Diagram - gridImage.drawLine(0, y, endX, y); // is being scaled by cellSize: - } // - // 0 1 2 ...(width - 1) - // 0 __________..._____ - // 1 __________..._____ - // 2 __________..._____ - // ..................... - // (height-1) __________..._____ - } - - /** - * Turn (x|y) coordinates into linear cell array index - * values ranging from 0 to (width * height - 1). - * - * Consider a simplified example of an array having width = 4 and - * height = 3: - * - * {(0|0) (1|0) (2|0) (3|0)} --> Linear array Index values {0, 1, 2, 3} - * {(0|1) (1|1) (2|1) (4|1)} --> Linear array Index values {4, 5, 6, 7} - * {(0|2) (1|2) (2|2) (4|2)} --> Linear array Index values {8, 9, 10, 11} - * - * @param x horizontal position in cell coordinates - * @param y vertical position in cell coordinates - * @return The linear array index. - */ - private int getCellIndex(int x, int y) { - return x + y * width; - } - - /** Create the array of cells and randomly turn some of them on - * according to {@link #setInitialLivingPercentage(int)}. - */ - private void createCells() { - final Cell [] cellsToReturn = // Variable name has to be different from LifeWorld.cells - new Cell[width * height]; // in order to initialize final variable. - for (int x = 0; x < width; x++) { - for (int y = 0; y < height; y++) { - final Cell c = new Cell(cellSize, getRandomLifeOrDeadState()); - cellsToReturn[getCellIndex(x, y)] = c; // A separate array allows for easier access than via - // Greenfoot's own "world" object accounting mechanism. - addObject(c, x, y); // Add to Greenfoot world. - } - } - } -} diff --git a/Sd1/P/life/V1/src/test/.gitignore b/Sd1/P/life/V1/src/test/.gitignore deleted file mode 100644 index 80d3726c8..000000000 --- a/Sd1/P/life/V1/src/test/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/java diff --git a/Sd1/P/life/V3/.gitignore b/Sd1/P/life/V3/.gitignore deleted file mode 100644 index 128b1c231..000000000 --- a/Sd1/P/life/V3/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -/.settings -/target -/.classpath -/.project -/bin diff --git a/Sd1/P/life/V3/pom.xml b/Sd1/P/life/V3/pom.xml deleted file mode 100644 index 3de816165..000000000 --- a/Sd1/P/life/V3/pom.xml +++ /dev/null @@ -1,74 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>life</artifactId> - <version>3.0</version> - <packaging>jar</packaging> - - <name>Game of Life</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - <links> - <link>http://www.greenfoot.org/files/javadoc/</link> - </links> - <additionalDependencies> - <additionalDependency> - <groupId>de.hdm-stuttgart.mi</groupId> - <artifactId>greenfoot</artifactId> - <version>2.3.0</version> - </additionalDependency> - </additionalDependencies> - - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>de.hdm-stuttgart.mi</groupId> - <artifactId>greenfoot</artifactId> - <version>2.3.0</version> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/life/V3/src/main/java/Cell.java b/Sd1/P/life/V3/src/main/java/Cell.java deleted file mode 100755 index abc4a54aa..000000000 --- a/Sd1/P/life/V3/src/main/java/Cell.java +++ /dev/null @@ -1,86 +0,0 @@ -import greenfoot.Actor; - -/** - * Implementing a single cell. Each cell has its own live or death state information - * and a reference to an array containing its surrounding neighbours, - * - */ -public class Cell extends Actor { - - CellState currentState, previousState; - Cell[] neighbours; // Will be initialized in by LifeWorld.getCellsNeighbours - - private void setState(final CellState newState) { - currentState = newState; - setImage(currentState.image); - } - - /** - * Setting the current cell's array of neighbours. - * - * @param neighbors The cell's set of neighbours - */ - public void setNeighbors(Cell[] neighbors) { - this.neighbours = neighbors; - } - - /** - * Create the cell body's image and initialize state. - * - * @param intialState Indicating {@link CellState#ALIVE} or {@link CellState#DEAD} - */ - public Cell(final CellState intialState) { - super(); - setState(intialState); - saveCurrentToPreviousState(); - } - - /** - * Count neighbouring cells currently living based on the result - * of {@link #setNeighbors(Cell[])}. Then apply Game of Life - * rules and show cell state. - */ - public void act() { - final int livingNeighboursCount = getLivingNeighbourCount(); - switch(previousState) { - - case ALIVE: - if (livingNeighboursCount < 2 || // Dying on account of under-population - 3 < livingNeighboursCount) { // Dying on account of over-population - setState(CellState.DEAD); - } - break; - - case DEAD: - if (3 == livingNeighboursCount) { // Born by reproduction - setState(CellState.ALIVE); - } - break; - } - } - - /** - * Save the previous state in preparation for the next time step. - */ - public void saveCurrentToPreviousState() { - previousState = currentState; - } - - /** - * @return Number of living neighbouring cells - */ - public int getLivingNeighbourCount() { - int sum = 0; - for (final Cell neighbor: neighbours) { - sum += neighbor.previousState.liveCount; - } - return sum; - } - - /** - * Set cell alive - */ - public void setAlive() { - setState(CellState.ALIVE); - } -} diff --git a/Sd1/P/life/V3/src/main/java/CellState.java b/Sd1/P/life/V3/src/main/java/CellState.java deleted file mode 100644 index 99d3b0559..000000000 --- a/Sd1/P/life/V3/src/main/java/CellState.java +++ /dev/null @@ -1,34 +0,0 @@ -import greenfoot.GreenfootImage; - -/** - * A cell's state: Either alive or dead - * - */ -public enum CellState { - - /** Cell is alive. */ - ALIVE(LifeWorld.imageAlive, 1, "Cell is in 'alive' state") , - - /** Cell is dead. */ - DEAD(LifeWorld.imageDead, 0, "Cell is in 'dead' state"); - - /** Image corresponding to the given state. */ - public final GreenfootImage image; - - /** - * 0 if dead, 1 if living - */ - public final int liveCount; - private final String description; - - CellState(GreenfootImage image, final int liveCount, final String description) { - this.image = image; - this.liveCount = liveCount; - this.description = description; - } - - @Override - public String toString() { - return description; - } -} diff --git a/Sd1/P/life/V3/src/main/java/LifeWorld.java b/Sd1/P/life/V3/src/main/java/LifeWorld.java deleted file mode 100755 index c47231bd2..000000000 --- a/Sd1/P/life/V3/src/main/java/LifeWorld.java +++ /dev/null @@ -1,183 +0,0 @@ -import greenfoot.Actor; -import greenfoot.Greenfoot; -import greenfoot.GreenfootImage; -import greenfoot.World; - -import java.awt.Color; - -/** - * A <a href="http://en.wikipedia.org/wiki/Conway's_Game_of_Life" target="_blank">game of live</a> world consisting of lines and cells. - * - */ -public class LifeWorld extends World { - - static private final int - initialLivingPercentage = 25 - ,width = 80 - ,height = 50; - - /** - * default cell size - */ - public static final int cellSize = 10; // Minimum of 3 pixel in width here yields a (cellSize-2)x(cellSize-2) pixel visible cell - - /** - * image of living cell - */ - static public GreenfootImage imageAlive = new GreenfootImage(cellSize, cellSize); - /** - * image of dead cell - */ - static public GreenfootImage imageDead = new GreenfootImage(cellSize, cellSize); - - // "Class" constructor initializing static fields. You may want to read Ivor Horton's - // "Using Initialization Blocks" / "Initializing Data Members" subsection. - static { - imageDead.setColor(Color.WHITE); - imageDead.fillRect(1, 1, cellSize - 1, cellSize - 1); - - imageAlive.setColor(Color.black); - imageAlive.fillRect(1, 1, cellSize - 1, cellSize - 1); - } - - private final GreenfootImage gridImage; - private final Cell[][] cells; - - /** - * Constructor for objects of class Grid. Calls methods to draw the grid - * lines, to create the array of randomly initialized cells . - * - */ - public LifeWorld() { - super(width, height, cellSize); - gridImage = getBackground(); - drawGrid(); - cells = new Cell[width][height]; // Create cells array container. - createCells(); - - // Having created all cells we may now determine and set each cell's set of neighbors. - for (int x = 0; x < width; x++) { - for (int y = 0; y < height; y++) { - cells[x][y].setNeighbors(getCellNeighbours(x, y)); - } - } - } - - /** - * Tell each cell to save its current state in preparation of the game's - * next step. According to {@link World#act()} this happens prior to - * calling any actor's {@link Actor#act()} methods methods. - */ - public void act() { - for (int x = 0; x < width; x++) { - for (int y = 0; y < height; y++) { - cells[x][y].saveCurrentToPreviousState(); - } - } - } - - /** - * Draw the cell separating grid lines. - */ - private void drawGrid() { - gridImage.setColor(Color.red); - - final int endX = cellSize * width, - endY = cellSize * height; - - for (int x = 0; x < endX; x += cellSize) { // Drawing vertical grid lines. Diagram - gridImage.drawLine(x, 0, x, endY); // is being scaled by cellSize: - } // - // 0 1 2 ...(width - 1) - // 0 | | | ... | - // 1 | | | ... | - // 2 | | | ... | - // ... ... ... ... - // (height-1) | | | ... | - - for (int y = 0; y < endY; y += cellSize) { // Drawing horizontal grid lines. Diagram - gridImage.drawLine(0, y, endX, y); // is being scaled by cellSize: - } // - // 0 1 2 ...(width - 1) - // 0 __________..._____ - // 1 __________..._____ - // 2 __________..._____ - // ..................... - // (height-1) __________..._____ - } - - /** Create the array of cells and randomly turn some of them on - * according to {@link #setInitialLivingPercentage(int)}. - */ - private void createCells() { - for (int x = 0; x < width; x++) { - for (int y = 0; y < height; y++) { - // New cell will have a probability of - // LifeWorld.initialLivingPercentage / 100 to be created - // in "live" state. - final Cell c = new Cell(getRandomLifeOrDeadState()); - - cells[x][y] = c; // A separate array allows for faster access than via - // Greenfoot's own "world" object accounting mechanism. - addObject(c, x, y); // Add to LifeWorld as well. - } - } - } - - /** - * Find the set of all neighbors (n) of a given cell (c). A cell may have - * a maximum of eight , five or just three neighbors depending on its - * relative position to the world's boundary: - * - * Middle: Edge: Corner: - * 8 Neigh- 5 Neigh- 3 Neigh- - * bours bours bours - * ......... _________ _____ - * ...nnn... ...ncn... |cn... 3 other corner positions left / right / bottom - * ...ncn... ...nnn... |nn... and 3 more edge positions upper right / - * ...nnn... ......... |..... lower left / lower right omitted). So we have - * ......... ......... |..... 9 different world boundary related situations. - * - * @param x The given cell's x-position - * @param y The given cell's y-position - * @return The array of all neighboring cells. - */ - private Cell[] getCellNeighbours(final int x, final int y) { - // Rectangular limits corresponding to the 9 different boundary - // related situations being described in the above Javadoc. - // - final int - xMin = Math.max( 0, x - 1), // Possibly limited by left border - xMax = Math.min( getWidth() - 1, x + 1), // Possibly limited by right border - - yMin = Math.max(0 , y - 1), // Possibly limited by top border - yMax = Math.min(getHeight() - 1, y + 1); // Possibly limited by bottom border - - // Allocate array of appropriate size - // to hold references to neighbouring cells - final Cell[] neighbours = new Cell[ // Middle / Edge / Corner: - (xMax - xMin + 1) * (yMax - yMin + 1) - 1]; // 3*3-1 == 5 / 2*3-1 == 5/ 2*2-1 == 3 neighbours - - // Fill in cell neighbours - int neighborIndexCount = 0; - for (int dx = xMin; dx <= xMax; dx++) { - for (int dy = yMin; dy <= yMax; dy++) { - if (dx != x || dy != y) {// Exclude center cell, aka "this" - neighbours[neighborIndexCount++] = cells[dx][dy]; - } - } - } - return neighbours; - } - - /** Randomly return the two states {@link CellState#ALIVE} and {@link CellState#DEAD}. The - * corresponding probabilities are initialLivingPercentage/100 and - * its complement. - * - * @return Either {@link CellState#ALIVE} or {@link CellState#DEAD}. - */ - public static CellState getRandomLifeOrDeadState() { - return Greenfoot.getRandomNumber(100) < initialLivingPercentage ? - CellState.ALIVE : CellState.DEAD; - } -} diff --git a/Sd1/P/life/V3/src/test/.gitignore b/Sd1/P/life/V3/src/test/.gitignore deleted file mode 100644 index 80d3726c8..000000000 --- a/Sd1/P/life/V3/src/test/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/java diff --git a/Sd1/P/loop/answer/.gitignore b/Sd1/P/loop/answer/.gitignore deleted file mode 100644 index c708c363d..000000000 --- a/Sd1/P/loop/answer/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/target -/.settings -/.classpath -/.project diff --git a/Sd1/P/loop/answer/pom.xml b/Sd1/P/loop/answer/pom.xml deleted file mode 100644 index ceeba71ad..000000000 --- a/Sd1/P/loop/answer/pom.xml +++ /dev/null @@ -1,53 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>loop</artifactId> - <version>0.0.1-SNAPSHOT</version> - <packaging>jar</packaging> - - <name>loop</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - <links> - <link>http://www.greenfoot.org/files/javadoc/</link> - </links> - - </configuration> - </plugin> - </plugins> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/loop/answer/src/main/java/de/hdm_stuttgart/de/sd1/loop/LoopExample.java b/Sd1/P/loop/answer/src/main/java/de/hdm_stuttgart/de/sd1/loop/LoopExample.java deleted file mode 100644 index c000dc407..000000000 --- a/Sd1/P/loop/answer/src/main/java/de/hdm_stuttgart/de/sd1/loop/LoopExample.java +++ /dev/null @@ -1,48 +0,0 @@ -package de.hdm_stuttgart.de.sd1.loop; - -public class LoopExample { - - public static void main(String [] args) { - - final int upperLimit = 14; - while_squareNumbers(upperLimit); - doWhile_squareNumbers(upperLimit); - } - - /** - * Compute all square numbers starting from 4 in steps of 3 - * being smaller than a given limit. The results are being written to standard output. - * Implemented by a while -loop. - * - * @param limit An upper exclusive bound for the highest number to be squared.. - */ - public static void while_squareNumbers(final int limit) { - System.out.println("Computing square numbers"); - int i = 4; - while (i < limit) { - System.out.println("i = " + i + ", i * i = " + i * i); - i += 3; - } - System.out.println("Finished computing square numbers"); - } - - - /** - * Compute all square numbers starting from 4 in steps of 3 - * being smaller than a given limit. The results are being written to standard output. - * Implemented by a do ... while -loop. - * - * @param limit An upper exclusive bound for the highest number to be squared.. - */ - public static void doWhile_squareNumbers(final int limit) { - System.out.println("Computing square numbers"); - int i = 4; - if (i < limit) { // Needed !!! - do { - System.out.println("i = " + i + ", i * i = " + i * i); - i += 3; - } while (i < limit); - } - System.out.println("Finished computing square numbers"); - } -} diff --git a/Sd1/P/loop/answer/src/test/java/de/hdm_stuttgart/de/sd1/loop/AppTest.java b/Sd1/P/loop/answer/src/test/java/de/hdm_stuttgart/de/sd1/loop/AppTest.java deleted file mode 100644 index 6d035096a..000000000 --- a/Sd1/P/loop/answer/src/test/java/de/hdm_stuttgart/de/sd1/loop/AppTest.java +++ /dev/null @@ -1,15 +0,0 @@ -package de.hdm_stuttgart.de.sd1.loop; - -import static org.junit.Assert.assertTrue; - -import org.junit.Test; - -/** - * Empty! - */ -public class AppTest { - @Test - public void testApp() { - assertTrue(true); - } -} diff --git a/Sd1/P/loop/question/.gitignore b/Sd1/P/loop/question/.gitignore deleted file mode 100644 index ea8c4bf7f..000000000 --- a/Sd1/P/loop/question/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/target diff --git a/Sd1/P/loop/question/pom.xml b/Sd1/P/loop/question/pom.xml deleted file mode 100644 index 9ff7a9dff..000000000 --- a/Sd1/P/loop/question/pom.xml +++ /dev/null @@ -1,52 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>loop</artifactId> - <version>0.0.1-SNAPSHOT</version> - <packaging>jar</packaging> - - <name>loop</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - <links> - <link>http://www.greenfoot.org/files/javadoc/</link> - </links> - </configuration> - </plugin> - </plugins> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/loop/question/src/main/java/de/hdm_stuttgart/de/sd1/loop/LoopSolve.java b/Sd1/P/loop/question/src/main/java/de/hdm_stuttgart/de/sd1/loop/LoopSolve.java deleted file mode 100644 index 40e429b7b..000000000 --- a/Sd1/P/loop/question/src/main/java/de/hdm_stuttgart/de/sd1/loop/LoopSolve.java +++ /dev/null @@ -1,23 +0,0 @@ -package de.hdm_stuttgart.de.sd1.loop; - -public class LoopSolve { - - public static void main(String [] args) { - squareNumbers(14); - } - - /** - * Compute all square numbers starting from 4 in steps of 3 - * being smaller than a given limit. The results are being written to standard output. - * Implemented by a for -loop. - * - * @param limit An upper exclusive bound for the highest number to be squared.. - */ - public static void squareNumbers(final int limit) { - System.out.println("Computing square numbers"); - for (int i = 4; i < limit; i += 3) { - System.out.println("i = " + i + ", i * i = " + i * i); - } - System.out.println("Finished computing square numbers"); - } -} diff --git a/Sd1/P/loop/question/src/test/java/de/hdm_stuttgart/de/sd1/loop/AppTest.java b/Sd1/P/loop/question/src/test/java/de/hdm_stuttgart/de/sd1/loop/AppTest.java deleted file mode 100644 index d2b6234b7..000000000 --- a/Sd1/P/loop/question/src/test/java/de/hdm_stuttgart/de/sd1/loop/AppTest.java +++ /dev/null @@ -1,18 +0,0 @@ -package de.hdm_stuttgart.de.sd1.loop; - -import static org.junit.Assert.*; - -import org.junit.Test; - -/** - * Unit test for simple App. - */ -public class AppTest { - /** - * Empty - */ - @Test - public void testApp() { - assertTrue(true); - } -} diff --git a/Sd1/P/math/V0_5/.gitignore b/Sd1/P/math/V0_5/.gitignore deleted file mode 100644 index 4e247eee2..000000000 --- a/Sd1/P/math/V0_5/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project diff --git a/Sd1/P/math/V0_5/pom.xml b/Sd1/P/math/V0_5/pom.xml deleted file mode 100644 index c2a1416ea..000000000 --- a/Sd1/P/math/V0_5/pom.xml +++ /dev/null @@ -1,59 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>math</artifactId> - <version>0.5</version> - <packaging>jar</packaging> - - <name>math</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/math/V0_5/src/main/java/de/hdm_stuttgart/de/sd1/math/Driver.java b/Sd1/P/math/V0_5/src/main/java/de/hdm_stuttgart/de/sd1/math/Driver.java deleted file mode 100644 index 8644c71e6..000000000 --- a/Sd1/P/math/V0_5/src/main/java/de/hdm_stuttgart/de/sd1/math/Driver.java +++ /dev/null @@ -1,18 +0,0 @@ -package de.hdm_stuttgart.de.sd1.math; - -/** - * Testing - * - */ -public class Driver { - - /** - * @param args Unused - */ - public static void main(String[] args) { - - System.out.println("max (1, 7, 2)=" + Math.max(1, 7, 2)); - - } - -} diff --git a/Sd1/P/math/V0_5/src/main/java/de/hdm_stuttgart/de/sd1/math/Math.java b/Sd1/P/math/V0_5/src/main/java/de/hdm_stuttgart/de/sd1/math/Math.java deleted file mode 100644 index 6b9a4505e..000000000 --- a/Sd1/P/math/V0_5/src/main/java/de/hdm_stuttgart/de/sd1/math/Math.java +++ /dev/null @@ -1,53 +0,0 @@ -package de.hdm_stuttgart.de.sd1.math; - -/** - * Some class methods. - */ -public class Math { - - /** - * Return the absolute value of a given argument - * @param value The argument to be considered - * @return the argument's absolute (positive) value. - */ - public static double abs(double value) { - if (value < 0) { - return -value; - } else { - return value; - } - } - - /** - * The maximum of two arguments - * @param a First argument - * @param b Second argument - * @return The maximum of a and b - */ - public static double max(double a, double b) { - return a < b ? b : a; // very compact, avoiding "if". Readability?? - } - - /** - * The maximum of three arguments - * - * @param a First argument - * @param b Second argument - * @param c Third argument - * @return The maximum of a, b and c - */ - public static double max(double a, double b, double c) { - final double max_A_B; - if (a < b) { - max_A_B = b; - } else { - max_A_B = a; - } - - if (c < max_A_B) { - return max_A_B; - } else { - return c; - } - } -} diff --git a/Sd1/P/math/V0_5/src/test/java/de/hdm_stuttgart/de/sd1/math/MaxAbsTest.java b/Sd1/P/math/V0_5/src/test/java/de/hdm_stuttgart/de/sd1/math/MaxAbsTest.java deleted file mode 100644 index e5bfd5a93..000000000 --- a/Sd1/P/math/V0_5/src/test/java/de/hdm_stuttgart/de/sd1/math/MaxAbsTest.java +++ /dev/null @@ -1,52 +0,0 @@ -package de.hdm_stuttgart.de.sd1.math; - -import static org.junit.Assert.*; - -import org.junit.Test; - -/** - * Testing exponential implementation - * - */ -public class MaxAbsTest{ - - /** - * Absolute value. - */ - @Test - public void testAbsoluteValue() { - - assertTrue(nearlyEqualCheck(Math.abs(4.1), 4.1, 1E-14)); - assertTrue(nearlyEqualCheck(Math.abs(-3.1), 3.1, 1E-14)); - assertTrue(nearlyEqualCheck(Math.abs(0.), 0., 1E-14)); - } - - /** - * Max value. - */ - @Test - public void testMaxValue() { - assertTrue(nearlyEqualCheck(Math.max(4.1, 5.2), 5.2, 1E-14)); - assertTrue(nearlyEqualCheck(Math.max(-4.1, 3.2), 3.2, 1E-14)); - assertTrue(nearlyEqualCheck(Math.max(3.2, -4.1), 3.2, 1E-14)); - assertTrue(nearlyEqualCheck(Math.max(-5.7, -4.1), -4.1, 1E-14)); - assertTrue(nearlyEqualCheck(Math.max(-4.1, -5.7), -4.1, 1E-14)); - } - - /** - * Test, whether a given value value is within the - * interval [reference - epsilon, reference + epsilon] - * - * This is helpful to assure two values are identical within - * a given tolerance limit being impose by e.g. limited - * computational precision. - * - * @param value The value to be tested - * @param reference The center of the interval - * @param epsilon Twice the inverval's length - * @return - */ - static boolean nearlyEqualCheck(double value, double reference, double epsilon) { - return reference - epsilon < value && value < reference + epsilon; - } -} diff --git a/Sd1/P/math/V1/.gitignore b/Sd1/P/math/V1/.gitignore deleted file mode 100644 index 4e247eee2..000000000 --- a/Sd1/P/math/V1/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project diff --git a/Sd1/P/math/V1/pom.xml b/Sd1/P/math/V1/pom.xml deleted file mode 100644 index dce1fbfc9..000000000 --- a/Sd1/P/math/V1/pom.xml +++ /dev/null @@ -1,65 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>math</artifactId> - <version>1.0</version> - <packaging>jar</packaging> - - <name>math</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - - <taglets> - <taglet> - <tagletClass>de.hdm_stuttgart.de.sd1.taglet.HtmlExtensionTaglet</tagletClass> - </taglet> - </taglets> - <tagletpath>../../../../../../../ws/eclipse/HtmlExtensionTaglet/target/classes</tagletpath> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/math/V1/src/main/java/de/hdm_stuttgart/de/sd1/math/Driver.java b/Sd1/P/math/V1/src/main/java/de/hdm_stuttgart/de/sd1/math/Driver.java deleted file mode 100644 index f6be81c32..000000000 --- a/Sd1/P/math/V1/src/main/java/de/hdm_stuttgart/de/sd1/math/Driver.java +++ /dev/null @@ -1,27 +0,0 @@ -package de.hdm_stuttgart.de.sd1.math; - -/** - * Testing {@link Math#exp(double)}in - * - */ -public class Driver { - - /** - * @param args Unused - */ - public static void main(String[] args) { - - Math.setSeriesLimit(6); - - double byPowerSeries = Math.exp(1.); - System.out.println("e=" + byPowerSeries + ", diff=" + (byPowerSeries - java.lang.Math.exp(1.))); - - byPowerSeries = Math.exp(2.); - System.out.println("e=" + byPowerSeries + ", diff=" + (byPowerSeries - java.lang.Math.exp(2.))); - - byPowerSeries = Math.exp(3.); - System.out.println("e=" + byPowerSeries + ", diff=" + (byPowerSeries - java.lang.Math.exp(3.))); - - } - -} diff --git a/Sd1/P/math/V1/src/main/java/de/hdm_stuttgart/de/sd1/math/Math.java b/Sd1/P/math/V1/src/main/java/de/hdm_stuttgart/de/sd1/math/Math.java deleted file mode 100644 index b445a5a22..000000000 --- a/Sd1/P/math/V1/src/main/java/de/hdm_stuttgart/de/sd1/math/Math.java +++ /dev/null @@ -1,148 +0,0 @@ -package de.hdm_stuttgart.de.sd1.math; - -/** - * Hint: Embedded formulas can only be viewed correctly when - * using Firefox or Safari web browsers. - * - * This class is used to illustrate the implementation of a subset of functions from - * {@link java.lang.Math} by means of their corresponding power series. - * - */ -public class Math { - - static int seriesLimit = 1; - - /** - * - * @param seriesLimit The last term's index of a power series to be included, - * - */ - public static void setSeriesLimit(int seriesLimit) { - Math.seriesLimit = seriesLimit; - } - - /** - * Approximating the natural exponential function by a finite - * number of terms from the corresponding power series: - * - * {@html.extend -<math display="block" xmlns="http://www.w3.org/1998/Math/MathML"> - <mtable> - <mtr> - <mtd> - <mrow> - <msup> - <mi>e</mi> - <mi>x</mi> - </msup> - <mo>=</mo> - <mrow> - <mi>1</mi> - <mo>+</mo> - <mfrac> - <msup> - <mi>x</mi> - <mi>1</mi> - </msup> - <mi>1!</mi> - </mfrac> - <mo>+</mo> - <mfrac> - <msup> - <mi>x</mi> - <mi>2</mi> - </msup> - <mi>2!</mi> - </mfrac> - <mo>+</mo> - <mfrac> - <msup> - <mi>x</mi> - <mi>3</mi> - </msup> - <mi>3!</mi> - </mfrac> - <mo>+</mo> - <mn>...</mn> - <mo>+</mo> - <mfrac> - <msup> - <mi>x</mi> - <mi>seriesLimit</mi> - </msup> - <mrow> - <mi>seriesLimit</mi> - <mi>!</mi> - </mrow> - </mfrac> - </mrow> - </mrow> - </mtd> - </mtr> - <mtr> - <mtd> - <mrow> - <mo>=</mo> - <mrow> - <munderover> - <mo>∑</mo> - <mrow> - <mi>i</mi> - <mo>=</mo> - <mi>0</mi> - </mrow> - <mi mathvariant="normal">seriesLimit</mi> - </munderover> - <mfrac> - <msup> - <mi>x</mi> - <mi>i</mi> - </msup> - <mrow> - <mi>i</mi> - <mi>!</mi> - </mrow> - </mfrac> - </mrow> - </mrow> - </mtd> - </mtr> - </mtable> -</math>} - * - * A power series implementation has to be finite since an - * infinite number of terms requires infinite execution time. - * - * The number of terms to be considered can be set by {@link #setSeriesLimit(int)}} - * - * @param x The exponential's argument as in {@html.extend -<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> - <mrow> - <msup> - <mi>e</mi> - <mi>x</mi> - </msup> - </mrow> -</math>} - - * @return The value {@html.extend -<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> - <mrow> - <msup> - <mi>e</mi> - <mi>x</mi> - </msup> - </mrow> -</math>} itself. - */ - public static double exp(double x) { - double currentTerm = 1., // the first (i == 0) term x^0/0! - sum = currentTerm; // initialize to the power series' first term - - for (int i = 1; i <= seriesLimit; i++) { // i = 0 has already been completed. - currentTerm *= x / i; - sum += currentTerm; - } - return sum; - } -} diff --git a/Sd1/P/math/V1/src/test/java/de/hdm_stuttgart/de/sd1/math/ExpTest.java b/Sd1/P/math/V1/src/test/java/de/hdm_stuttgart/de/sd1/math/ExpTest.java deleted file mode 100644 index 6a2572c7f..000000000 --- a/Sd1/P/math/V1/src/test/java/de/hdm_stuttgart/de/sd1/math/ExpTest.java +++ /dev/null @@ -1,18 +0,0 @@ -package de.hdm_stuttgart.de.sd1.math; - -import static org.junit.Assert.*; - -import org.junit.Test; - -/** - * Testing exponential implementation - * - */ -public class ExpTest { - - @Test - public void testApp() { - Math.setSeriesLimit(8); - assertTrue(java.lang.Math.abs(Math.exp(1) - java.lang.Math.E) < 1.E-5); // Mind limited computational accuracy! - } -} diff --git a/Sd1/P/math/V2/.gitignore b/Sd1/P/math/V2/.gitignore deleted file mode 100644 index 4e247eee2..000000000 --- a/Sd1/P/math/V2/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project diff --git a/Sd1/P/math/V2/pom.xml b/Sd1/P/math/V2/pom.xml deleted file mode 100644 index 7b93566e0..000000000 --- a/Sd1/P/math/V2/pom.xml +++ /dev/null @@ -1,65 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>math</artifactId> - <version>2.0</version> - <packaging>jar</packaging> - - <name>math</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - - <taglets> - <taglet> - <tagletClass>de.hdm_stuttgart.de.sd1.taglet.HtmlExtensionTaglet</tagletClass> - </taglet> - </taglets> - <tagletpath>../../../../../../../ws/eclipse/HtmlExtensionTaglet/target/classes</tagletpath> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/math/V2/src/main/java/de/hdm_stuttgart/de/sd1/math/Driver.java b/Sd1/P/math/V2/src/main/java/de/hdm_stuttgart/de/sd1/math/Driver.java deleted file mode 100644 index 856beb072..000000000 --- a/Sd1/P/math/V2/src/main/java/de/hdm_stuttgart/de/sd1/math/Driver.java +++ /dev/null @@ -1,27 +0,0 @@ -package de.hdm_stuttgart.de.sd1.math; - -/** - * Testing {@link Math#sin(double)}in - * - */ -public class Driver { - - /** - * @param args Unused - */ - public static void main(String[] args) { - - final double PI = java.lang.Math.PI; - - Math.setSeriesLimit(7); - - double byPowerSeries = Math.sin(PI / 2); - System.out.println("sin(pi/2)=" + byPowerSeries + ", difference=" + (byPowerSeries - 1)); - - byPowerSeries = Math.sin(PI); - System.out.println("sin(pi)=" + byPowerSeries + ", difference=" + byPowerSeries); - - byPowerSeries = Math.sin(4 * PI); - System.out.println("sin(4 * PI)=" + byPowerSeries + ", difference=" + byPowerSeries); - } -} diff --git a/Sd1/P/math/V2/src/main/java/de/hdm_stuttgart/de/sd1/math/Math.java b/Sd1/P/math/V2/src/main/java/de/hdm_stuttgart/de/sd1/math/Math.java deleted file mode 100644 index 42ba8bd33..000000000 --- a/Sd1/P/math/V2/src/main/java/de/hdm_stuttgart/de/sd1/math/Math.java +++ /dev/null @@ -1,300 +0,0 @@ -package de.hdm_stuttgart.de.sd1.math; - -/** - * Hint: Embedded formulas can only be viewed correctly when - * using Firefox or Safari web browsers. - * - * This class is used to illustrate the implementation of a subset of functions from - * {@link java.lang.Math} by means of their corresponding power series. - * - */ -public class Math { - - static int seriesLimit = 1; - - /** - * - * @param seriesLimit The number of terms of a power series to be included. - * - */ - public static void setSeriesLimit(int seriesLimit) { - Math.seriesLimit = seriesLimit; - } - - /** - * Approximating the natural exponential function by a finite - * number of terms from the corresponding power series: - * - * {@html.extend -<math display="block" xmlns="http://www.w3.org/1998/Math/MathML"> - <mtable> - <mtr> - <mtd> - <mrow> - <msup> - <mi>e</mi> - <mi>x</mi> - </msup> - <mo>=</mo> - <mrow> - <mi>1</mi> - <mo>+</mo> - <mfrac> - <msup> - <mi>x</mi> - <mi>1</mi> - </msup> - <mi>1!</mi> - </mfrac> - <mo>+</mo> - <mfrac> - <msup> - <mi>x</mi> - <mi>2</mi> - </msup> - <mi>2!</mi> - </mfrac> - <mo>+</mo> - <mfrac> - <msup> - <mi>x</mi> - <mi>3</mi> - </msup> - <mi>3!</mi> - </mfrac> - <mo>+</mo> - <mn>...</mn> - <mo>+</mo> - <mfrac> - <msup> - <mi>x</mi> - <mi>seriesLimit</mi> - </msup> - <mrow> - <mi>seriesLimit</mi> - <mi>!</mi> - </mrow> - </mfrac> - </mrow> - </mrow> - </mtd> - </mtr> - <mtr> - <mtd> - <mrow> - <mo>=</mo> - <mrow> - <munderover> - <mo>∑</mo> - <mrow> - <mi>i</mi> - <mo>=</mo> - <mi>0</mi> - </mrow> - <mi>seriesLimit</mi> - </munderover> - <mfrac> - <msup> - <mi>x</mi> - <mi>i</mi> - </msup> - <mrow> - <mi>i</mi> - <mi>!</mi> - </mrow> - </mfrac> - </mrow> - </mrow> - </mtd> - </mtr> - </mtable> -</math>} - * - * A power series implementation has to be finite since an - * infinite number of terms requires infinite execution time. - * - * The number of terms to be considered can be set by {@link #setSeriesLimit(int)}} - * - * @param x The exponential's argument as in {@html.extend -<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> - <mrow> - <msup> - <mi>e</mi> - <mi>x</mi> - </msup> - </mrow> -</math>} - - * @return The value {@html.extend -<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> - <mrow> - <msup> - <mi>e</mi> - <mi>x</mi> - </msup> - </mrow> -</math>} itself. - */ - public static double exp(double x) { - double currentTerm = 1., // the first (i == 0) term x^0/0! - sum = currentTerm; // initialize to the power series' first term - - for (int i = 1; i <= seriesLimit; i++) { // i = 0 has already been completed. - currentTerm *= x / i; - sum += currentTerm; - } - return sum; - } - - /** - * Calculating the sine by means of the corresponding power series: - {@html.extend -<math display="block" xmlns="http://www.w3.org/1998/Math/MathML"> - <mtable> - <mtr> - <mtd> - <mrow> - <mrow> - <mi>sin</mi> - <mo>â¡</mo> - <mrow> - <mo>(</mo> - <mi>x</mi> - <mo>)</mo> - </mrow> - </mrow> - <mo>=</mo> - <mrow> - <mi>x</mi> - <mo>-</mo> - <mfrac> - <msup> - <mi>x</mi> - <mi>3</mi> - </msup> - <mrow> - <mi>3</mi> - <mo>!</mo> - </mrow> - </mfrac> - <mo>+</mo> - <mfrac> - <msup> - <mi>x</mi> - <mi>5</mi> - </msup> - <mrow> - <mi>5</mi> - <mo>!</mo> - </mrow> - </mfrac> - <mo>-</mo> - <mfrac> - <msup> - <mi>x</mi> - <mi>7</mi> - </msup> - <mrow> - <mi>7</mi> - <mo>!</mo> - </mrow> - </mfrac> - <mo>+</mo> - <mi>...</mi> - </mrow> - </mrow> - </mtd> - </mtr> - <mtr> - <mtd> - <mrow> - <mo>=</mo> - <mrow> - <munderover> - <mo>∑</mo> - <mrow> - <mi>i</mi> - <mo>=</mo> - <mi>0</mi> - </mrow> - <mi>seriesLimit</mi> - </munderover> - <mrow> - <msup> - <mrow> - <mo>(</mo> - <mi>-1</mi> - <mo>)</mo> - </mrow> - <mrow> - <mi>2</mi> - <mi>i</mi> - </mrow> - </msup> - <mfrac> - <msup> - <mi>x</mi> - <mrow> - <mi>2</mi> - <mo>i</mo> - <mo>+</mo> - <mi>1</mi> - </mrow> - </msup> - <mrow> - <mrow> - <mo>(</mo> - <mi>2</mi> - <mi>i</mi> - <mo>+</mo> - <mi>1</mi> - <mo>)</mo> - </mrow> - <mo>!</mo> - </mrow> - </mfrac> - </mrow> - </mrow> - </mrow> - </mtd> - </mtr> - </mtable> -</math>} - * - * @param x The sine's argument as in {@html.extend -<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> - <mrow> - <mi>sin</mi> - <mo>â¡</mo> - <mrow> - <mo>(</mo> - <mi>x</mi> - <mo>)</mo> - </mrow> - </mrow> -</math>} - * - * @return The value {@html.extend -<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> - <mrow> - <mi>sin</mi> - <mo>â¡</mo> - <mrow> - <mo>(</mo> - <mi>x</mi> - <mo>)</mo> - </mrow> - </mrow> -</math>} itself. -*/ - public static double sin(double x) { - double currentTerm = x, // the first (i == 0) term x^1/1! - sum = currentTerm; // initialize to the power series' first term - - for (int i = 1; i <= seriesLimit; i++) { - currentTerm *= -1 * x * x / (2 * i) / (2 * i + 1); - sum += currentTerm; - } - return sum; - } -} diff --git a/Sd1/P/math/V2/src/test/java/de/hdm_stuttgart/de/sd1/math/ExpTest.java b/Sd1/P/math/V2/src/test/java/de/hdm_stuttgart/de/sd1/math/ExpTest.java deleted file mode 100644 index bac0201f9..000000000 --- a/Sd1/P/math/V2/src/test/java/de/hdm_stuttgart/de/sd1/math/ExpTest.java +++ /dev/null @@ -1,21 +0,0 @@ -package de.hdm_stuttgart.de.sd1.math; - -import static org.junit.Assert.*; - -import org.junit.Test; - -/** - * Testing exponential implementation - * - */ -public class ExpTest { - - /** - * Sums and products of fractions - */ - @Test - public void testApp() { - Math.setSeriesLimit(8); - assertTrue(java.lang.Math.abs(Math.exp(1) - java.lang.Math.E) < 1.E-4); // Mind limited computational accuracy! - } -} diff --git a/Sd1/P/math/V3/.gitignore b/Sd1/P/math/V3/.gitignore deleted file mode 100644 index 4e247eee2..000000000 --- a/Sd1/P/math/V3/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project diff --git a/Sd1/P/math/V3/pom.xml b/Sd1/P/math/V3/pom.xml deleted file mode 100644 index 3ab21d89f..000000000 --- a/Sd1/P/math/V3/pom.xml +++ /dev/null @@ -1,65 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>math</artifactId> - <version>3.0</version> - <packaging>jar</packaging> - - <name>math</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - - <taglets> - <taglet> - <tagletClass>de.hdm_stuttgart.de.sd1.taglet.HtmlExtensionTaglet</tagletClass> - </taglet> - </taglets> - <tagletpath>../../../../../../../ws/eclipse/HtmlExtensionTaglet/target/classes</tagletpath> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/math/V3/src/main/java/de/hdm_stuttgart/de/sd1/math/Driver.java b/Sd1/P/math/V3/src/main/java/de/hdm_stuttgart/de/sd1/math/Driver.java deleted file mode 100644 index 1c11b947f..000000000 --- a/Sd1/P/math/V3/src/main/java/de/hdm_stuttgart/de/sd1/math/Driver.java +++ /dev/null @@ -1,41 +0,0 @@ -package de.hdm_stuttgart.de.sd1.math; - -/** - * Testing {@link Math#sinOld(double)}in - * - */ -public class Driver { - - /** - * @param args Unused - */ - public static void main(String[] args) { - - final double PI = java.lang.Math.PI; - - Math.setSeriesLimit(7); - - System.out.println("Old Implementation:+++++++++++++++++++++++++++++++++++++++\n"); - double byPowerSeriesOld = Math.sinOld(PI / 2); - System.out.println("sinOld(pi/2)=" + byPowerSeriesOld + ", difference=" + (byPowerSeriesOld - 1)); - - byPowerSeriesOld = Math.sinOld(PI); - System.out.println("sinOld(pi)=" + byPowerSeriesOld + ", difference=" + byPowerSeriesOld); - - byPowerSeriesOld = Math.sinOld(4 * PI); - System.out.println("sinOld(4 * PI)=" + byPowerSeriesOld + ", difference=" + byPowerSeriesOld); - - System.out.println("\nNew reorder Implementation:+++++++++++++++++++++++++++++++++++++\n"); - double byPowerSeriesReorder = Math.sin(PI / 2); - System.out.println("sin(pi/2)=" + byPowerSeriesReorder + ", difference=" + (byPowerSeriesReorder - 1)); - - byPowerSeriesReorder = Math.sin(PI); - System.out.println("sin(pi)=" + byPowerSeriesReorder + ", difference=" + byPowerSeriesReorder); - - byPowerSeriesReorder = Math.sin(4 * PI); - System.out.println("sin(4 * PI)=" + byPowerSeriesReorder + ", difference=" + byPowerSeriesReorder); - - - } - -} diff --git a/Sd1/P/math/V3/src/main/java/de/hdm_stuttgart/de/sd1/math/LimitedPrecision.java b/Sd1/P/math/V3/src/main/java/de/hdm_stuttgart/de/sd1/math/LimitedPrecision.java deleted file mode 100644 index ed2b420c5..000000000 --- a/Sd1/P/math/V3/src/main/java/de/hdm_stuttgart/de/sd1/math/LimitedPrecision.java +++ /dev/null @@ -1,20 +0,0 @@ -package de.hdm_stuttgart.de.sd1.math; - -/** - * Demonstrating limited precision problems - * - */ -public class LimitedPrecision { - - /** - * @param args unused - */ - public static void main(String[] args) { - double one = 1., - a = 0.000000000000200, - b = 0.000000000000201; - - System.out.println("(1 + (a - b)) - 1:" + ((one + (a - b)) - one)); - System.out.println("((1 + a) - b) - 1:" + (((one + a) - b) - one)); - } -} diff --git a/Sd1/P/math/V3/src/main/java/de/hdm_stuttgart/de/sd1/math/Math.java b/Sd1/P/math/V3/src/main/java/de/hdm_stuttgart/de/sd1/math/Math.java deleted file mode 100644 index b30109d36..000000000 --- a/Sd1/P/math/V3/src/main/java/de/hdm_stuttgart/de/sd1/math/Math.java +++ /dev/null @@ -1,319 +0,0 @@ -package de.hdm_stuttgart.de.sd1.math; - -/** - * Hint: Embedded formulas can only be viewed correctly when - * using Firefox or Safari web browsers. - * - * This class is used to illustrate the implementation of a subset of functions from - * {@link java.lang.Math} by means of their corresponding power series. - * - */ -public class Math { - - static int seriesLimit = 1; - - /** - * - * @param seriesLimit The number of terms of a power series to be included. - * - */ - public static void setSeriesLimit(int seriesLimit) { - Math.seriesLimit = seriesLimit; - } - - /** - * Approximating the natural exponential function by a finite - * number of terms from the corresponding power series: - * - * {@html.extend -<math display="block" xmlns="http://www.w3.org/1998/Math/MathML"> - <mtable> - <mtr> - <mtd> - <mrow> - <msup> - <mi>e</mi> - <mi>x</mi> - </msup> - <mo>=</mo> - <mrow> - <mi>1</mi> - <mo>+</mo> - <mfrac> - <msup> - <mi>x</mi> - <mi>1</mi> - </msup> - <mi>1!</mi> - </mfrac> - <mo>+</mo> - <mfrac> - <msup> - <mi>x</mi> - <mi>2</mi> - </msup> - <mi>2!</mi> - </mfrac> - <mo>+</mo> - <mfrac> - <msup> - <mi>x</mi> - <mi>3</mi> - </msup> - <mi>3!</mi> - </mfrac> - <mo>+</mo> - <mn>...</mn> - <mo>+</mo> - <mfrac> - <msup> - <mi>x</mi> - <mi>seriesLimit</mi> - </msup> - <mrow> - <mi>seriesLimit</mi> - <mi>!</mi> - </mrow> - </mfrac> - </mrow> - </mrow> - </mtd> - </mtr> - <mtr> - <mtd> - <mrow> - <mo>=</mo> - <mrow> - <munderover> - <mo>∑</mo> - <mrow> - <mi>i</mi> - <mo>=</mo> - <mi>0</mi> - </mrow> - <mi>seriesLimit</mi> - </munderover> - <mfrac> - <msup> - <mi>x</mi> - <mi>i</mi> - </msup> - <mrow> - <mi>i</mi> - <mi>!</mi> - </mrow> - </mfrac> - </mrow> - </mrow> - </mtd> - </mtr> - </mtable> -</math>} - * - * A power series implementation has to be finite since an - * infinite number of terms requires infinite execution time. - * - * The number of terms to be considered can be set by {@link #setSeriesLimit(int)}} - * - * @param x The exponential's argument as in {@html.extend -<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> - <mrow> - <msup> - <mi>e</mi> - <mi>x</mi> - </msup> - </mrow> -</math>} - - * @return The value {@html.extend -<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> - <mrow> - <msup> - <mi>e</mi> - <mi>x</mi> - </msup> - </mrow> -</math>} itself. - */ - public static double exp(double x) { - double currentTerm = 1., // the first (i == 0) term x^0/0! - sum = currentTerm; // initialize to the power series' first term - - for (int i = 1; i <= seriesLimit; i++) { // i = 0 has already been completed. - currentTerm *= x / i; - sum += currentTerm; - } - return sum; - } - - /** - * Calculating the sine by means of the corresponding power series: - {@html.extend -<math display="block" xmlns="http://www.w3.org/1998/Math/MathML"> - <mtable> - <mtr> - <mtd> - <mrow> - <mrow> - <mi>sin</mi> - <mo>â¡</mo> - <mrow> - <mo>(</mo> - <mi>x</mi> - <mo>)</mo> - </mrow> - </mrow> - <mo>=</mo> - <mrow> - <mi>x</mi> - <mo>-</mo> - <mfrac> - <msup> - <mi>x</mi> - <mi>3</mi> - </msup> - <mrow> - <mi>3</mi> - <mo>!</mo> - </mrow> - </mfrac> - <mo>+</mo> - <mfrac> - <msup> - <mi>x</mi> - <mi>5</mi> - </msup> - <mrow> - <mi>5</mi> - <mo>!</mo> - </mrow> - </mfrac> - <mo>-</mo> - <mfrac> - <msup> - <mi>x</mi> - <mi>7</mi> - </msup> - <mrow> - <mi>7</mi> - <mo>!</mo> - </mrow> - </mfrac> - <mo>+</mo> - <mi>...</mi> - </mrow> - </mrow> - </mtd> - </mtr> - <mtr> - <mtd> - <mrow> - <mo>=</mo> - <mrow> - <munderover> - <mo>∑</mo> - <mrow> - <mi>i</mi> - <mo>=</mo> - <mi>0</mi> - </mrow> - <mi>seriesLimit</mi> - </munderover> - <mrow> - <msup> - <mrow> - <mo>(</mo> - <mi>-1</mi> - <mo>)</mo> - </mrow> - <mrow> - <mi>2</mi> - <mi>i</mi> - </mrow> - </msup> - <mfrac> - <msup> - <mi>x</mi> - <mrow> - <mi>2</mi> - <mo>i</mo> - <mo>+</mo> - <mi>1</mi> - </mrow> - </msup> - <mrow> - <mrow> - <mo>(</mo> - <mi>2</mi> - <mi>i</mi> - <mo>+</mo> - <mi>1</mi> - <mo>)</mo> - </mrow> - <mo>!</mo> - </mrow> - </mfrac> - </mrow> - </mrow> - </mrow> - </mtd> - </mtr> - </mtable> -</math>} - * - * @param x The sine's argument as in {@html.extend -<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> - <mrow> - <mi>sin</mi> - <mo>â¡</mo> - <mrow> - <mo>(</mo> - <mi>x</mi> - <mo>)</mo> - </mrow> - </mrow> -</math>} - * - * @return The value {@html.extend -<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> - <mrow> - <mi>sin</mi> - <mo>â¡</mo> - <mrow> - <mo>(</mo> - <mi>x</mi> - <mo>)</mo> - </mrow> - </mrow> -</math>} itself. -*/ - public static double sinOld(double x) { - double currentTerm = x, // the first (i == 0) term x^1/1! - sum = currentTerm; // initialize to the power series' first term - - for (int i = 1; i <= seriesLimit; i++) { - currentTerm *= -1 * x * x / (2 * i) / (2 * i + 1); - sum += currentTerm; - } - return sum; - } - /** - * Implementing sine slightly different by reordering terms. - * @param x See {@link #sinOld(double)}} - * @return See {@link #sinOld(double)}} - * - */ - public static double sin(double x) { - double currentTerm = x, // the first (i == 0) term x^1/1! - sum = currentTerm; // initialize to the power series' first term - - // Slightly incorrect if seriesLimit is even - for (int i = 1; i <= seriesLimit; i += 2) { // Caution: Steps of two!! - final double previousTerm = // save the current term - currentTerm *= x * x / (2 * i) / (2 * i + 1) ; - currentTerm *= x * x / (2 * i + 2) / (2 * i + 3); - sum += currentTerm - previousTerm; //Summing up reordered - } - return sum; - } -} diff --git a/Sd1/P/math/V3/src/test/java/de/hdm_stuttgart/de/sd1/math/ExpSinSinoldTest.java b/Sd1/P/math/V3/src/test/java/de/hdm_stuttgart/de/sd1/math/ExpSinSinoldTest.java deleted file mode 100644 index baf3977a5..000000000 --- a/Sd1/P/math/V3/src/test/java/de/hdm_stuttgart/de/sd1/math/ExpSinSinoldTest.java +++ /dev/null @@ -1,28 +0,0 @@ -package de.hdm_stuttgart.de.sd1.math; - -import static org.junit.Assert.*; - -import org.junit.Test; -/** - * Testing exponential implementation - * - */ -public class ExpSinSinoldTest { - - /** - * Sine and exponential - */ - @Test - public void testApp() { - Math.setSeriesLimit(9); - - assertTrue(java.lang.Math.abs( - Math.exp(1) - java.lang.Math.E) < 1.E-6); - - assertTrue(java.lang.Math.abs( - Math.sin(java.lang.Math.PI)) < 1.E-10); - - assertFalse(java.lang.Math.abs( // Lower precision - Math.sinOld(java.lang.Math.PI)) < 1.E-10); - } -} diff --git a/Sd1/P/math/V4/.gitignore b/Sd1/P/math/V4/.gitignore deleted file mode 100644 index 4e247eee2..000000000 --- a/Sd1/P/math/V4/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/target -/.classpath -/.project diff --git a/Sd1/P/math/V4/pom.xml b/Sd1/P/math/V4/pom.xml deleted file mode 100644 index 9131714bd..000000000 --- a/Sd1/P/math/V4/pom.xml +++ /dev/null @@ -1,65 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>math</artifactId> - <version>4.0</version> - <packaging>jar</packaging> - - <name>math</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - - <taglets> - <taglet> - <tagletClass>de.hdm_stuttgart.de.sd1.taglet.HtmlExtensionTaglet</tagletClass> - </taglet> - </taglets> - <tagletpath>../../../../../../../ws/eclipse/HtmlExtensionTaglet/target/classes</tagletpath> - </configuration> - </plugin> - </plugins> - - <resources> - <resource> - <directory>src/main/java</directory> - <includes> - <include> **/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/math/V4/src/main/java/de/hdm_stuttgart/de/sd1/math/Driver.java b/Sd1/P/math/V4/src/main/java/de/hdm_stuttgart/de/sd1/math/Driver.java deleted file mode 100644 index 1ee20564d..000000000 --- a/Sd1/P/math/V4/src/main/java/de/hdm_stuttgart/de/sd1/math/Driver.java +++ /dev/null @@ -1,32 +0,0 @@ -package de.hdm_stuttgart.de.sd1.math; - -/** - * Testing {@link Math#sin(double)}in - * - */ -public class Driver { - - /** - * @param args Unused - */ - public static void main(String[] args) { - - final double PI = java.lang.Math.PI; - - Math.setSeriesLimit(7); - - double byPowerSeries = Math.sin(PI / 2); - System.out.println("sin(pi/2)=" + byPowerSeries + ", difference=" + (byPowerSeries - 1)); - - byPowerSeries = Math.sin(PI); - System.out.println("sin(pi)=" + byPowerSeries + ", difference=" + byPowerSeries); - - byPowerSeries = Math.sin(4 * PI); - System.out.println("sin(4 * PI)=" + byPowerSeries + ", difference=" + byPowerSeries); - - byPowerSeries = Math.sin(-9 * PI / 2); - System.out.println("sin(-9/2 * PI)=" + byPowerSeries + ", difference=" + (byPowerSeries + 1)); - - } - -} diff --git a/Sd1/P/math/V4/src/main/java/de/hdm_stuttgart/de/sd1/math/Math.java b/Sd1/P/math/V4/src/main/java/de/hdm_stuttgart/de/sd1/math/Math.java deleted file mode 100644 index c1a1cb94d..000000000 --- a/Sd1/P/math/V4/src/main/java/de/hdm_stuttgart/de/sd1/math/Math.java +++ /dev/null @@ -1,321 +0,0 @@ -package de.hdm_stuttgart.de.sd1.math; - -/** - * Hint: Embedded formulas can only be viewed correctly when - * using Firefox or Safari web browsers. - * - * This class is used to illustrate the implementation of a subset of functions from - * {@link java.lang.Math} by means of their corresponding power series. - * - */ -public class Math { - - private static final double PI = java.lang.Math.PI; - - static int seriesLimit = 1; - - /** - * - * @param seriesLimit The number of terms of a power series to be included. - * - */ - public static void setSeriesLimit(int seriesLimit) { - Math.seriesLimit = seriesLimit; - } - - /** - * Approximating the natural exponential function by a finite - * number of terms from the corresponding power series: - * - * {@html.extend -<math display="block" xmlns="http://www.w3.org/1998/Math/MathML"> - <mtable> - <mtr> - <mtd> - <mrow> - <msup> - <mi>e</mi> - <mi>x</mi> - </msup> - <mo>=</mo> - <mrow> - <mi>1</mi> - <mo>+</mo> - <mfrac> - <msup> - <mi>x</mi> - <mi>1</mi> - </msup> - <mi>1!</mi> - </mfrac> - <mo>+</mo> - <mfrac> - <msup> - <mi>x</mi> - <mi>2</mi> - </msup> - <mi>2!</mi> - </mfrac> - <mo>+</mo> - <mfrac> - <msup> - <mi>x</mi> - <mi>3</mi> - </msup> - <mi>3!</mi> - </mfrac> - <mo>+</mo> - <mn>...</mn> - <mo>+</mo> - <mfrac> - <msup> - <mi>x</mi> - <mi>seriesLimit</mi> - </msup> - <mrow> - <mi>seriesLimit</mi> - <mi>!</mi> - </mrow> - </mfrac> - </mrow> - </mrow> - </mtd> - </mtr> - <mtr> - <mtd> - <mrow> - <mo>=</mo> - <mrow> - <munderover> - <mo>∑</mo> - <mrow> - <mi>i</mi> - <mo>=</mo> - <mi>0</mi> - </mrow> - <mi>seriesLimit</mi> - </munderover> - <mfrac> - <msup> - <mi>x</mi> - <mi>i</mi> - </msup> - <mrow> - <mi>i</mi> - <mi>!</mi> - </mrow> - </mfrac> - </mrow> - </mrow> - </mtd> - </mtr> - </mtable> -</math>} - * - * A power series implementation has to be finite since an - * infinite number of terms requires infinite execution time. - * - * The number of terms to be considered can be set by {@link #setSeriesLimit(int)}} - * - * @param x The exponential's argument as in {@html.extend -<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> - <mrow> - <msup> - <mi>e</mi> - <mi>x</mi> - </msup> - </mrow> -</math>} - - * @return The value {@html.extend -<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> - <mrow> - <msup> - <mi>e</mi> - <mi>x</mi> - </msup> - </mrow> -</math>} itself. - */ - public static double exp(double x) { - double currentTerm = 1., // the first (i == 0) term x^0/0! - sum = currentTerm; // initialize to the power series' first term - - for (int i = 1; i <= seriesLimit; i++) { // i = 0 has already been completed. - currentTerm *= x / i; - sum += currentTerm; - } - return sum; - } - - /** - * Calculating the sine by means of the corresponding power series: - {@html.extend -<math display="block" xmlns="http://www.w3.org/1998/Math/MathML"> - <mtable> - <mtr> - <mtd> - <mrow> - <mrow> - <mi>sin</mi> - <mo>â¡</mo> - <mrow> - <mo>(</mo> - <mi>x</mi> - <mo>)</mo> - </mrow> - </mrow> - <mo>=</mo> - <mrow> - <mi>x</mi> - <mo>-</mo> - <mfrac> - <msup> - <mi>x</mi> - <mi>3</mi> - </msup> - <mrow> - <mi>3</mi> - <mo>!</mo> - </mrow> - </mfrac> - <mo>+</mo> - <mfrac> - <msup> - <mi>x</mi> - <mi>5</mi> - </msup> - <mrow> - <mi>5</mi> - <mo>!</mo> - </mrow> - </mfrac> - <mo>-</mo> - <mfrac> - <msup> - <mi>x</mi> - <mi>7</mi> - </msup> - <mrow> - <mi>7</mi> - <mo>!</mo> - </mrow> - </mfrac> - <mo>+</mo> - <mi>...</mi> - </mrow> - </mrow> - </mtd> - </mtr> - <mtr> - <mtd> - <mrow> - <mo>=</mo> - <mrow> - <munderover> - <mo>∑</mo> - <mrow> - <mi>i</mi> - <mo>=</mo> - <mi>0</mi> - </mrow> - <mi>seriesLimit</mi> - </munderover> - <mrow> - <msup> - <mrow> - <mo>(</mo> - <mi>-1</mi> - <mo>)</mo> - </mrow> - <mrow> - <mi>2</mi> - <mi>i</mi> - </mrow> - </msup> - <mfrac> - <msup> - <mi>x</mi> - <mrow> - <mi>2</mi> - <mo>i</mo> - <mo>+</mo> - <mi>1</mi> - </mrow> - </msup> - <mrow> - <mrow> - <mo>(</mo> - <mi>2</mi> - <mi>i</mi> - <mo>+</mo> - <mi>1</mi> - <mo>)</mo> - </mrow> - <mo>!</mo> - </mrow> - </mfrac> - </mrow> - </mrow> - </mrow> - </mtd> - </mtr> - </mtable> -</math>} - * - * @param x The sine's argument as in {@html.extend -<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> - <mrow> - <mi>sin</mi> - <mo>â¡</mo> - <mrow> - <mo>(</mo> - <mi>x</mi> - <mo>)</mo> - </mrow> - </mrow> -</math>} - * - * @return The value {@html.extend -<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> - <mrow> - <mi>sin</mi> - <mo>â¡</mo> - <mrow> - <mo>(</mo> - <mi>x</mi> - <mo>)</mo> - </mrow> - </mrow> -</math>} itself. -*/ - public static double sin(double x) { - // Step 1: Normalize x to [-PI, +PI[ - final long countTimes2PI = (long) java.lang.Math.rint(x / 2 / PI); - if (countTimes2PI != 0) { - x -= 2 * PI * countTimes2PI; - } - - // Step 2: Normalize x to [-PI/2, +PI/2] - // Since sin(x) = sin (PI - x) we continue to normalize - // having x in [-PI/2, +PI/2] - if (PI/2 < x) { - x = PI - x; - } else if (x < -PI/2) { - x = -x - PI; - } - - // Step 3: Continue with business as usual - - double currentTerm = x, // the first (i == 0) term x^1/1! - sum = currentTerm; // initialize to the power series' first term - - // Slightly incorrect if seriesLimit is even - for (int i = 1; i <= seriesLimit; i += 2) { // Caution: Steps of two!! - final double previousTerm = // save the current term - currentTerm *= x * x / (2 * i) / (2 * i + 1) ; - currentTerm *= x * x / (2 * i + 2) / (2 * i + 3); - sum += currentTerm - previousTerm; //Summing up reordered - } - return sum; - }} diff --git a/Sd1/P/math/V4/src/test/java/de/hdm_stuttgart/de/sd1/math/ExpTest.java b/Sd1/P/math/V4/src/test/java/de/hdm_stuttgart/de/sd1/math/ExpTest.java deleted file mode 100644 index f438c5f2c..000000000 --- a/Sd1/P/math/V4/src/test/java/de/hdm_stuttgart/de/sd1/math/ExpTest.java +++ /dev/null @@ -1,18 +0,0 @@ -package de.hdm_stuttgart.de.sd1.math; - -import static org.junit.Assert.*; - -import org.junit.Test; - -/** - * Testing exponential implementation - * - */ -public class ExpTest { - -@Test -public void testApp() { - Math.setSeriesLimit(8); - assertTrue(java.lang.Math.abs(Math.exp(1) - java.lang.Math.E) < 1.E-4); // Mind limited computational accuracy! - } -} diff --git a/Sd1/P/plot/.gitignore b/Sd1/P/plot/.gitignore deleted file mode 100644 index 60016e96d..000000000 --- a/Sd1/P/plot/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -/target/ -/.settings/ -.classpath -.project -A1.log diff --git a/Sd1/P/plot/pom.xml b/Sd1/P/plot/pom.xml deleted file mode 100644 index 65e295b0a..000000000 --- a/Sd1/P/plot/pom.xml +++ /dev/null @@ -1,84 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.mi.sd1</groupId> - <artifactId>plot</artifactId> - <version>0.0.1-SNAPSHOT</version> - <packaging>jar</packaging> - - <name>plot</name> - - <!--Fixme: Add a sensible project related domain here --> - <url>http://somedomain.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - </properties> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-api</artifactId> - <version>2.1</version> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-core</artifactId> - <version>2.1</version> - </dependency> - - </dependencies> - - <build> - <plugins> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>3.1</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.10.1</version> - <configuration/> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-shade-plugin</artifactId> - <version>2.3</version> - <configuration> - <transformers> - <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> - <manifestEntries> - <Main-Class>de.hdm_stuttgart.mi.sd1.plot.App</Main-Class> - </manifestEntries> - </transformer> - </transformers> - </configuration> - <executions> - <execution> - <phase>package</phase> - <goals> - <goal>shade</goal> - </goals> - </execution> - </executions> - </plugin> - - </plugins> - </build> -</project> diff --git a/Sd1/P/plot/src/main/java/de/hdm_stuttgart/mi/sd1/plot/Driver.java b/Sd1/P/plot/src/main/java/de/hdm_stuttgart/mi/sd1/plot/Driver.java deleted file mode 100644 index cc9944702..000000000 --- a/Sd1/P/plot/src/main/java/de/hdm_stuttgart/mi/sd1/plot/Driver.java +++ /dev/null @@ -1,24 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.plot; - - -/** - * A simple http://logging.apache.org/log4j/2.x demo, - * see file log4j2.xml for configuration options. - * - */ -public class Driver { - - /** - * @param args Unused - */ - public static void main( String[] args ) { - final Plotter plotter = new Plotter(); - - plotter.setNumTics(170, 60); - plotter.setXrange(0, 2 * Math.PI); - plotter.setYrange(-1, 1); - - plotter.plotSine(x -> Math.sin(x)); - plotter.plotSine(x -> Math.cos(x)); - } -} diff --git a/Sd1/P/plot/src/main/java/de/hdm_stuttgart/mi/sd1/plot/PlotSine.java b/Sd1/P/plot/src/main/java/de/hdm_stuttgart/mi/sd1/plot/PlotSine.java deleted file mode 100644 index ecaffbe6f..000000000 --- a/Sd1/P/plot/src/main/java/de/hdm_stuttgart/mi/sd1/plot/PlotSine.java +++ /dev/null @@ -1,59 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.plot; - -/** - * 2-dimensional sine function plot - * - */ -public class PlotSine { - - /** - * @param args Unused - */ - public static void main( String[] args ) { - plotSine(); - } - - static final int // Effective size of plotting region - numTicsX = 170 // Number of plotting positions in x-direction - ,numTicsY = 60; // Number of plotting positions in y-direction - - static final double - xMin = 0. // x-values ranging from xMin to xMax - ,xMax = 2 * Math.PI - - ,yMin = -1. // y-values ranging from yMin to yMax - ,yMax = 1. - - ,xStepWidth = (xMax - xMin) / (numTicsX - 1) // per step width in x-direction - ,yStepWidth = (yMax - yMin) / (numTicsY - 1); // per step width in y-direction - - static final char [][] plotRegion = new char[numTicsX][numTicsY]; - - static void init() { // Initialize plotting region by spaces - for (int xTics = 0; xTics < numTicsX; xTics++) { - for (int yTics = 0; yTics < numTicsY; yTics++) { - plotRegion[xTics][yTics] = ' '; - } - } - } - - static void plotSine() { - init(); - - for (int xTics = 0; xTics < numTicsX; xTics++) { - double x = xMin + xTics * xStepWidth; - double sinOfX = Math.sin(x); - - if (yMin <= sinOfX && sinOfX <= yMax ) { - int ySinTics = (int) Math.round((sinOfX - yMin) / (yMax - yMin) * (numTicsY - 1)); - plotRegion[xTics][ySinTics] = '*'; - } - } - for (int yTic = numTicsY - 1; 0 <= yTic; yTic--) { - for (int xTic = 0; xTic < numTicsX; xTic++) { - System.out.print(plotRegion[xTic][yTic]); - } - System.out.print('\n'); // Newline - } - } -} diff --git a/Sd1/P/plot/src/main/java/de/hdm_stuttgart/mi/sd1/plot/Plotter.java b/Sd1/P/plot/src/main/java/de/hdm_stuttgart/mi/sd1/plot/Plotter.java deleted file mode 100644 index 9fe2e6097..000000000 --- a/Sd1/P/plot/src/main/java/de/hdm_stuttgart/mi/sd1/plot/Plotter.java +++ /dev/null @@ -1,113 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.plot; - -/** - * 2-dimensional sine function plot - * - */ -public class Plotter { - - /** - * An interface describing functions expecting and returning double values. - * Lambda expressions may be used to pass functions - * - */ - public interface DoubleOfDouble { - /** - * A function expecting a double argument and returning - * a double value like e.g. double Math.sin(double) - * @param x An argument - * @return A value - */ - public double compute(double x); - } - - int // Effective size of plotting region - numTicsX // Number of plotting positions in x-direction - ,numTicsY; // Number of plotting positions in y-direction - - double - xMin // x-values ranging from xMin to xMax - ,xMax - - ,yMin // y-values ranging from yMin to yMax - ,yMax - - ,xStepWidth // per step width in x-direction - ,yStepWidth; // per step width in y-direction - - char [][] plotRegion; - /** - * The plot regions character size like e.g. - * "30 lines by 120 characters each" - * - * @param numTicsX Number of characters per line - * @param numTicsY Number of lines - */ - public void setNumTics(int numTicsX, int numTicsY) { - this.numTicsX = numTicsX; - this.numTicsY = numTicsY; - } - - /** - * Argument range to be plotted - * i.e sin(x), x in the range of [0, 2 * PI[ - * - * @param xMin - * @param xMax - */ - public void setXrange(final double xMin, final double xMax) { - this.xMin = xMin; - this.xMax = xMax; - } - - /** - * Value range to be plotted - * i.e sin(x) having values in the range of [-1, 1] - * - * @param yMin lowest function value - * @param yMax highest function value - */ - public void setYrange(final double yMin, final double yMax) { - this.yMin = yMin; - this.yMax = yMax; - } - - void init() { // Initialize plotting region by spaces - xStepWidth = (xMax - xMin) / (numTicsX - 1); - yStepWidth = (yMax - yMin) / (numTicsY - 1); - plotRegion = new char[numTicsX][numTicsY]; - - for (int xTics = 0; xTics < numTicsX; xTics++) { - for (int yTics = 0; yTics < numTicsY; yTics++) { - plotRegion[xTics][yTics] = ' '; - } - } - } - - /** - * Plot a function. Ranges and plot sizes must be set accordingly - * by previously calling {@link #setNumTics(int, int)}, {@link #setXrange(double, double)} - * and {@link #setYrange(double, double)} - * - * @param f The function to be plotted - */ - public void plotSine(final DoubleOfDouble f) { - init(); - - for (int xTics = 0; xTics < numTicsX; xTics++) { - double x = xMin + xTics * xStepWidth; - double functionValue = f.compute(x); - - if (yMin <= functionValue && functionValue <= yMax ) { - int ySinTics = (int) Math.round((functionValue - yMin) / (yMax - yMin) * (numTicsY - 1)); - plotRegion[xTics][ySinTics] = '*'; - } - } - for (int yTic = numTicsY - 1; 0 <= yTic; yTic--) { - for (int xTic = 0; xTic < numTicsX; xTic++) { - System.out.print(plotRegion[xTic][yTic]); - } - System.out.print('\n'); // Newline - } - } -} diff --git a/Sd1/P/plot/src/main/resources/log4j2.xml b/Sd1/P/plot/src/main/resources/log4j2.xml deleted file mode 100644 index f149b1b40..000000000 --- a/Sd1/P/plot/src/main/resources/log4j2.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Configuration> - <Appenders> - <File name="A1" fileName="A1.log" append="false"> - <PatternLayout pattern="%t %-5p %c{2} - %m%n"/> - </File> - <Console name="STDOUT" target="SYSTEM_OUT"> - <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/> - </Console> - </Appenders> - <Loggers> - - <!-- You my want to define class or package level per-logger rules --> - <Logger name="de.hdm_stuttgart.mi.sd1.plot.App" level="debug"> - <AppenderRef ref="A1"/> - </Logger> - <Root level="info"> - <AppenderRef ref="STDOUT"/> - </Root> - </Loggers> -</Configuration> \ No newline at end of file diff --git a/Sd1/P/plot/src/test/java/de/hdm_stuttgart/mi/sd1/plot/AppTest.java b/Sd1/P/plot/src/test/java/de/hdm_stuttgart/mi/sd1/plot/AppTest.java deleted file mode 100644 index ce0a7f5f8..000000000 --- a/Sd1/P/plot/src/test/java/de/hdm_stuttgart/mi/sd1/plot/AppTest.java +++ /dev/null @@ -1,17 +0,0 @@ -package de.hdm_stuttgart.mi.sd1.plot; - -import org.junit.Assert; -import org.junit.Test; - -/** - * Unit test for simple App. - */ -public class AppTest { - /** - * Dummy test method - */ - @Test - public void testApp() { - Assert.assertTrue( true ); - } -} diff --git a/Sd1/P/rounding/.gitignore b/Sd1/P/rounding/.gitignore deleted file mode 100644 index c277ec491..000000000 --- a/Sd1/P/rounding/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.settings -/.classpath -/.project -/target diff --git a/Sd1/P/rounding/pom.xml b/Sd1/P/rounding/pom.xml deleted file mode 100644 index 58fc043d7..000000000 --- a/Sd1/P/rounding/pom.xml +++ /dev/null @@ -1,49 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.de.sd1</groupId> - <artifactId>rounding</artifactId> - <version>1.0</version> - <packaging>jar</packaging> - - <name>rounding</name> - <url>http://maven.apache.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <javadocDestdir>~/tmp</javadocDestdir> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <linksource>true</linksource> - </configuration> - </plugin> - </plugins> - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/Sd1/P/rounding/src/main/java/de/hdm_stuttgart/de/sd1/leap/LeapYear.java b/Sd1/P/rounding/src/main/java/de/hdm_stuttgart/de/sd1/leap/LeapYear.java deleted file mode 100644 index c39078ad8..000000000 --- a/Sd1/P/rounding/src/main/java/de/hdm_stuttgart/de/sd1/leap/LeapYear.java +++ /dev/null @@ -1,34 +0,0 @@ -package de.hdm_stuttgart.de.sd1.leap; - -/** - * Leap year calculations - * - */ -public class LeapYear { - - /** - * @param args unused - */ - public static void main(String[] args) { - System.out.println("Is 1800 a leap year? " + isLeapYear(1800)); - System.out.println("Is 2000 a leap year? " + isLeapYear(2000)); - System.out.println("Is 2016 a leap year? " + isLeapYear(2016)); - } - - /** - * Characterizing a given year either as leap year or - * non- leap year - * - * @param year The year in question. - * @return true if year is a leap year, false otherwise. - */ - public static boolean isLeapYear(int year) { - if (year % 400 == 0) { // Every 400 years we do have a leap year. - return true; - } else if (year % 4 == 0 && 0 != year % 100) { // Every 4 years we do have a leap year unless the year - return true; // in question is a multiple of 100. - } else { - return false; - } - } -} diff --git a/Sd1/P/rounding/src/main/java/de/hdm_stuttgart/de/sd1/leap/LeapYearCompact.java b/Sd1/P/rounding/src/main/java/de/hdm_stuttgart/de/sd1/leap/LeapYearCompact.java deleted file mode 100644 index e26956ee9..000000000 --- a/Sd1/P/rounding/src/main/java/de/hdm_stuttgart/de/sd1/leap/LeapYearCompact.java +++ /dev/null @@ -1,31 +0,0 @@ -package de.hdm_stuttgart.de.sd1.leap; - -/** - * Leap year calculations - * - */ -public class LeapYearCompact { - - /** - * @param args unused - */ - public static void main(String[] args) { - System.out.println("Is 1800 a leap year? " + isLeapYear(1800)); - System.out.println("Is 2000 a leap year? " + isLeapYear(2000)); - System.out.println("Is 2016 a leap year? " + isLeapYear(2016)); - } - - /** - * Characterizing a given year either as leap year or - * non- leap year - * - * @param year The year in question. - * @return true if year is a leap year, false otherwise. - */ - public static boolean isLeapYear(int year) { - return - year % 400 == 0 || // Every 400 years we do have a leap year. - year % 4 == 0 && 0 != year % 100; // Every 4 years we do have a leap year unless the year - // in question is a multiple of 100. - } -} diff --git a/Sd1/P/rounding/src/main/java/de/hdm_stuttgart/de/sd1/rounding/MathTable.java b/Sd1/P/rounding/src/main/java/de/hdm_stuttgart/de/sd1/rounding/MathTable.java deleted file mode 100644 index 7e6906190..000000000 --- a/Sd1/P/rounding/src/main/java/de/hdm_stuttgart/de/sd1/rounding/MathTable.java +++ /dev/null @@ -1,56 +0,0 @@ -package de.hdm_stuttgart.de.sd1.rounding; - -/** - * Creating a math table providing sin values - * in the range [0, 355] for every 5 degrees - * - */ -public class MathTable { - - /** - * @param args unused - */ - public static void main(String[] args) { - - System.out.println(" x | sin(x)"); - System.out.println("----+------"); - for (int i = 0; i < 360; i += 5) { - - final double - sinValue = Math.sin(i * Math.PI / 180); // Turning degrees into radians - final long - precision = 1000,// Rounding to three decimal places - sinValueRounded = Math.round(precision * sinValue), - digits = sinValueRounded / precision; - - long fraction = sinValueRounded % precision; - - if (i < 9) { // index number right alignment - System.out.print(" "); // One digit, add two spaces - } else if (i < 99) { - System.out.print(" "); // Two digits, add one space - } - - if (fraction < 0) { - fraction *= -1; - System.out.print(i + " |-" + digits + "."); - } else if (-1 < digits){ - System.out.print(i + " | " + digits + "."); - } else { - System.out.print(i + " |" + digits + "."); - } - - if (fraction < 9) { // Padding fraction with zeros if required - System.out.print("00"); // One digit, add two leading zeros - } else if (fraction < 99) { - System.out.print("0"); // Two digits, add one leading zero - } - - System.out.println(fraction); - - if (0 < i && 0 == i % 20) { // Add extra seperator every four lines - System.out.println("----+------"); - } - } - } -} diff --git a/Sd1/P/rounding/src/main/java/de/hdm_stuttgart/de/sd1/sum/Summing.java b/Sd1/P/rounding/src/main/java/de/hdm_stuttgart/de/sd1/sum/Summing.java deleted file mode 100644 index 80092550c..000000000 --- a/Sd1/P/rounding/src/main/java/de/hdm_stuttgart/de/sd1/sum/Summing.java +++ /dev/null @@ -1,30 +0,0 @@ -package de.hdm_stuttgart.de.sd1.sum; - -/** - * Summing up integer values. - * - */ -public class Summing { - - /** - * @param args unused - */ - public static void main(String[] args) { - System.out.println("1 + 2 + ... + 150" + "=" + getSum(150)); - } - - /** - * Summing up all integers up to and including a given limit - * Example: Let the limit be 5, then the result is 1 + 2 + 3 + 4 + 5 - * - * @param limit The last number to include into the computed sum - * @return The sum of 1 + 2 + ... + limit - */ - public static long getSum (int limit) { - int sum = 0; - for (int i = 1; i <= limit; i++) { - sum += i; - } - return sum; - } -} diff --git a/Sd1/P/rounding/src/test/java/de/hdm_stuttgart/de/sd1/rounding/AppTest.java b/Sd1/P/rounding/src/test/java/de/hdm_stuttgart/de/sd1/rounding/AppTest.java deleted file mode 100644 index 95e28ae08..000000000 --- a/Sd1/P/rounding/src/test/java/de/hdm_stuttgart/de/sd1/rounding/AppTest.java +++ /dev/null @@ -1,33 +0,0 @@ -package de.hdm_stuttgart.de.sd1.rounding; - -import static org.junit.Assert.*; - -import org.junit.Test; - -import de.hdm_stuttgart.de.sd1.leap.LeapYear; -import de.hdm_stuttgart.de.sd1.sum.Summing; - -/** - * Unit tests - */ -public class AppTest { - - @Test - public void testLeapYear() { - assertTrue(LeapYear.isLeapYear(2000)); - assertTrue(LeapYear.isLeapYear(1984)); - - assertFalse(LeapYear.isLeapYear(2001)); - assertFalse(LeapYear.isLeapYear(1800)); - } - - @Test - public void testSum() { - assertEquals(15, Summing.getSum(5)); - assertEquals(5050, Summing.getSum(100)); - - assertEquals(0, Summing.getSum(0)); - assertEquals(1, Summing.getSum(1)); - assertEquals(3, Summing.getSum(2)); - } -} diff --git a/Sd1/swd1.xml b/Sd1/swd1.xml deleted file mode 100644 index 587e988ba..000000000 --- a/Sd1/swd1.xml +++ /dev/null @@ -1,1547 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<part version="5.0" xmlns="http://docbook.org/ns/docbook" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:xi="http://www.w3.org/2001/XInclude" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:m="http://www.w3.org/1998/Math/MathML" - xmlns:html="http://www.w3.org/1999/xhtml" - xmlns:db="http://docbook.org/ns/docbook"> - <title>Software development 1</title> - - <chapter xml:id="sd1IntroGreenfoot"> - <title>Lecture 2 - Introduction to <link - xlink:href="http://www.greenfoot.org">Greenfoot (8.10.)</link></title> - - <section xml:id="swd1IntrGreePrepare"> - <title>Preparations</title> - - <itemizedlist> - <listitem> - <para>Read Chapter 1: Introducing Java of <xref - linkend="bib_Horton2011"/> till the <quote>Java Program - Statements</quote> section.</para> - </listitem> - - <listitem> - <para>Read <xref linkend="bib_Koelling2010Ger"/> till section - 1.3.</para> - </listitem> - - <listitem> - <para>Video tutorials based on older <xref linkend="glo_Eclipse"/> - 3.3 version but still (march 2014) valid.</para> - - <itemizedlist> - <listitem> - <para>Workbench <link - xlink:href="http://eclipsetutorial.sourceforge.net/Workbench-Tutorial-Companion-Document.pdf">tutorial - companion</link></para> - </listitem> - - <listitem> - <para>Using the debugger <link - xlink:href="http://eclipsetutorial.sourceforge.net/Debugger-Tutorial-Companion-Document.pdf">tutorial - companion</link>.</para> - </listitem> - </itemizedlist> - </listitem> - </itemizedlist> - - <para>You may use the MI supplied <productname>Virtualbox</productname> - based <productname>Lubuntu</productname> installation. Alternatively you - may install the following components for your operating system of - choice:</para> - - <glosslist> - <glossentry> - <glossterm>Java</glossterm> - - <glossdef> - <itemizedlist> - <listitem> - <para><link - xlink:href="http://docs.oracle.com/javase/8/docs/technotes/guides/install/install_overview.html" - xml:id="sd1InstallJava">JDK 8 installation guide</link> (Yeah - buddy, you do need a <productname>JDK</productname> and - <emphasis role="bold">**not just**</emphasis> a - <productname>JRE</productname>)</para> - </listitem> - - <listitem> - <para><link - xlink:href="http://docs.oracle.com/javase/8/docs/api">Java 1.8 - API documentation</link>, optional download for offline - usage.</para> - </listitem> - </itemizedlist> - </glossdef> - </glossentry> - - <glossentry> - <glossterm><productname>Greenfoot</productname></glossterm> - - <glossdef> - <itemizedlist> - <listitem> - <para><link - xlink:href="http://blogs.kent.ac.uk/mik/2012/01/joc-installation">Installing</link> - the <link - xlink:href="http://www.greenfoot.org/download">software</link> - on top of an existing <link - linkend="sd1InstallJava">JDK</link>.</para> - </listitem> - - <listitem> - <para>Reference documentation to be considered later: The - <productname>Greenfoot</productname> Java <xref - linkend="glo_API"/> for <link - xlink:href="http://www.greenfoot.org/files/javadoc">online</link> - or <link - xlink:href="http://www.greenfoot.org/files/greenfoot-javadoc.zip">offline - usage</link>.</para> - </listitem> - - <listitem> - <para>Introductory videos</para> - - <itemizedlist> - <listitem> - <para><quote>The Joy of Code</quote> <link - xlink:href="http://blogs.kent.ac.uk/mik/category/joy-of-code">examples</link> - ranging from <link - xlink:href="http://blogs.kent.ac.uk/mik/2012/01/joc-intro">JoC - #1</link> to <link xlink:href="???"><link - xlink:href="http://blogs.kent.ac.uk/mik/2012/07/joc-33/">Joc - #33</link></link>. The order of items is somewhat - confusing.</para> - </listitem> - - <listitem> - <para><quote>The Joy of Code</quote> resembling examples - <link - xlink:href="http://blogs.kent.ac.uk/mik/2013/11/joc-german">available - in German</link>, courteously donated by <personname>Frajo - Ligmann</personname>.</para> - </listitem> - - <listitem> - <para>User supplied <link - xlink:href="http://www.greenfoot.org/scenarios?sort_by=weighted_popularity">scenarios</link>.</para> - </listitem> - </itemizedlist> - </listitem> - </itemizedlist> - </glossdef> - </glossentry> - </glosslist> - </section> - - <section xml:id="sd1StartGreenfoot"> - <title><abbrev>GF</abbrev> book 1. : Getting to know - <productname>Greenfoot</productname></title> - - <para>Quote from <xref linkend="bib_Koelling2010"/>, p. 3:</para> - - <blockquote> - <para>The best way to read this chapter (and indeed the whole book) is - by sitting at your computer with <productname>Greenfoot</productname> - open on your screen and the book open on your desk.</para> - </blockquote> - </section> - </chapter> - - <chapter xml:id="sd1Wombats"> - <title>Lecture 3 - Wombats (13.10.)</title> - - <section xml:id="sd1WombatsPrepare"> - <title>Preparations</title> - - <para>Complete reading chapter 1 of <xref - linkend="bib_Koelling2010Ger"/>.</para> - </section> - - <section xml:id="sw1ObjClass"> - <title>GF 1.1: Classes an objects</title> - - <itemizedlist> - <listitem> - <para>Compilation: .java --> .class</para> - </listitem> - - <listitem> - <para>Classes and objects</para> - </listitem> - - <listitem> - <para>Methods</para> - - <figure xml:id="sw1FigMethodVoidVoid"> - <title>A method named <code>move</code> having no arguments - returning nothing.</title> - - <mediaobject> - <imageobject> - <imagedata fileref="Ref/Fig/turnLeft.fig"/> - </imageobject> - </mediaobject> - </figure> - - <figure xml:id="sd1returnIntVoid"> - <title>A method named <methodname>getLeavesEaten</methodname> - having no arguments returning an integer value</title> - - <mediaobject> - <imageobject> - <imagedata fileref="Ref/Fig/returnValue.fig"/> - </imageobject> - </mediaobject> - </figure> - - <figure xml:id="sd1setDirection"> - <title>A method named <methodname>setDirection</methodname> - setting an object's direction of movement returning no - value.</title> - - <mediaobject> - <imageobject> - <imagedata fileref="Ref/Fig/setDirection.fig"/> - </imageobject> - </mediaobject> - </figure> - - <figure xml:id="sd1getAverageSpeed"> - <title>A method named <methodname>getAveragespeed</methodname> - having two arguments distance in kilometers and time in minutes - returning the average speed as kilometers per hour</title> - - <mediaobject> - <imageobject> - <imagedata fileref="Ref/Fig/getAverageSpeed.fig"/> - </imageobject> - </mediaobject> - </figure> - </listitem> - - <listitem> - <para>Command like methods may change an object's internal - state.</para> - </listitem> - - <listitem> - <para>Inspecting internal states of objects in - <productname>Greenfoot</productname>.</para> - </listitem> - - <listitem> - <para>Building models: Abstraction of real world entities</para> - - <itemizedlist> - <listitem> - <para>Books</para> - </listitem> - - <listitem> - <para>Humans</para> - </listitem> - </itemizedlist> - </listitem> - </itemizedlist> - - <qandaset defaultlabel="qanda" xml:id="sd1GrennAutoInitStartup"> - <title>Automatic initialization on startup</title> - - <qandadiv> - <qandaentry> - <question> - <para>On startup the <quote>leaves and wombats</quote> scenario - does not create leaves and wombats automatically. Open the - <classname>WombatWorld</classname> class (right click - <quote>Open editor</quote>). You will discover a method being - declared as <methodname>public void - populate()</methodname>.</para> - - <para>The name already suggests that this method may be used to - create wombats and leaves <emphasis>automatically</emphasis> on - startup. Modify the code accordingly to achieve this - behaviour.</para> - - <para>Hint: Whenever a new instance of - <classname>WombatWorld</classname> is being created the method - <methodname>public WombatWorld()</methodname> is being executed. - We will later explain the meaning of<methodname> public - WombatWorld()</methodname> being a so called - <emphasis>constructor</emphasis>. As the name suggests a - constructor is being executed whenever a new instance of a given - class is being created.</para> - </question> - - <answer> - <para>Calling the method <methodname>populate()</methodname> - <coref linkend="sw1CallPopulate"/> from within the - <classname>WombatWorld</classname> constructor's code achieves - the desired behaviour:</para> - - <programlisting language="java">public class WombatWorld { - public WombatWorld() { <emphasis role="bold">// Constructor will be called each time a WombatWorld</emphasis> - super(8, 8, 60); <emphasis role="bold">// is being created</emphasis> - setBackground("cell.jpg"); - setPaintOrder(Wombat.class, Leaf.class); - <emphasis role="bold">populate()</emphasis>; <co - xml:id="sw1CallPopulate"/> - } - /** - * Populate the world with a fixed scenario of wombats and leaves. - */ - public void populate() { - Wombat w1 = new Wombat(); - addObject(w1, 3, 3); -...</programlisting> - </answer> - </qandaentry> - </qandadiv> - </qandaset> - - <qandaset defaultlabel="qanda" xml:id="sd1RepresentDirections"> - <title>Representation of directions</title> - - <qandadiv xml:id="sd1DirParameterization"> - <qandaentry> - <question> - <para>Our Wombat class does have a method - <methodname>setDirection(int direction)</methodname>. This - allows for setting the direction a wombat is going to move. Call - this method inserting different values by right clicking on a - wombat instance. How do entered values relate to directions of a - wombat's movement? Complete the following table by adding North, - South, East and West accordingly:</para> - - <informaltable border="1" width="40%"> - <colgroup width="45%"/> - - <colgroup width="55%"/> - - <tr> - <th>Integer value</th> - - <th>Direction</th> - </tr> - - <tr> - <td>0</td> - - <td/> - </tr> - - <tr> - <td>1</td> - - <td/> - </tr> - - <tr> - <td>2</td> - - <td/> - </tr> - - <tr> - <td>3</td> - - <td/> - </tr> - - <tr> - <td>other</td> - - <td/> - </tr> - </informaltable> - - <para>You may evaluate the result by actually watching its - moving direction. Is there another way?</para> - - <para>Hint: The <productname>Greenfoot</productname> <xref - linkend="glo_framework"/> allows you to inspect an object's - internal attribute values.</para> - </question> - - <answer> - <para>Only integer values from {0,1,2,3} relate to - directions:</para> - - <informaltable border="1" width="40%"> - <colgroup width="45%"/> - - <colgroup width="55%"/> - - <tr> - <th>Integer value</th> - - <th>Direction</th> - </tr> - - <tr> - <td>0</td> - - <td>East</td> - </tr> - - <tr> - <td>1</td> - - <td>West</td> - </tr> - - <tr> - <td>2</td> - - <td>North</td> - </tr> - - <tr> - <td>3</td> - - <td>South</td> - </tr> - - <tr> - <td>other</td> - - <td>No effect</td> - </tr> - </informaltable> - - <para>We may right click on a wombat to inspect its internal - state as in the following screenshot:</para> - - <mediaobject> - <imageobject> - <imagedata fileref="Ref/Fig/wombatDirection.png"/> - </imageobject> - </mediaobject> - </answer> - </qandaentry> - </qandadiv> - - <qandadiv> - <qandaentry xml:id="sd1DirRepresentationProblems"> - <question> - <para>Representing directions by integer values ranging from 0 - to 3 may be considered error prone. Explain possible - problems.</para> - - <para>Hint: The <productname>Greenfoot</productname> - <filename>leaves-and-wombats</filename> scenario code contains - statements like <code>setDirection(EAST)</code>. But what about - <code>setDirection(35)</code> ?</para> - </question> - - <answer> - <glosslist> - <para>A programmer may consistently use the predefined integer - values <code>EAST</code>, <code>WEST</code>, - <code>NORTH</code> and <code>SOUTH</code> but may use ordinary - integer values {0, 1, 2, 3} as well. This imposes the - following problems:</para> - - <glossentry> - <glossterm>Code Readability</glossterm> - - <glossdef> - <para>A statement like <code>setDirection(2)</code> will - be more difficult to understand than its counterpart - <code>setDirection(NORTH)</code>. Currently we cannot - enforce the second way of coding.</para> - </glossdef> - </glossentry> - - <glossentry> - <glossterm>Possible programming errors</glossterm> - - <glossdef> - <para>A programmer may be misled to use illegal - directional values. Keeping a wrong set of directions in - mind e.g {1, 2, 3, 4} rather than {0, 1, 2, 3} will result - in errors. These may be hard to trace</para> - </glossdef> - </glossentry> - </glosslist> - </answer> - </qandaentry> - - <qandaentry xml:id="sd1DirRepresentEnum"> - <question> - <para>Read the section named VARIABLES WITH A FIXED SET OF - INTEGER VALUES in <xref linkend="bib_Horton2011"/> about - <code>enum</code> types in Java. Use an <code>enum</code> - definition to consistently replace the following four - definitions:</para> - - <programlisting language="java">public class Wombat extends Actor { -... - <emphasis role="bold">private static final int EAST = 0; - private static final int WEST = 1; - private static final int NORTH = 2; - private static final int SOUTH = 3;</emphasis> - -...</programlisting> - - <para>Hint: The code given in <link - xlink:href="http://www.javabeat.net/how-to-use-enum-in-switch">How - to use Enum in Switch</link> may serve as a blueprint for this - exercise.</para> - </question> - - <answer> - <para>First we define an appropriate enumeration within our - <classname>Wombat</classname> class:</para> - - <programlisting language="java">public class Wombat extends Actor { - - <emphasis role="bold">enum Direction { - EAST, WEST, NORTH, SOUTH - };</emphasis> -...</programlisting> - - <para>This definition defines a new type replacing the int - values in e.g. <code>private static final int EAST = 0</code>. - We may use this newly defined type to redefine our - <code>direction</code> attribute:</para> - - <programlisting language="java">public class Wombat extends Actor { -... - <emphasis role="bold">private Direction direction;</emphasis> // used to be "private int direction" -...</programlisting> - - <para>Our constructor <classname>Wombat()</classname> no - reads:</para> - - <programlisting language="java"> public Wombat() { - <emphasis role="bold">setDirection(Direction.EAST)</emphasis>; // improved readability, cf. setDirection(0) - leavesEaten = 0; - }</programlisting> - - <para>The <code>setDirection</code> method may be re-written - as:</para> - - <programlisting language="java"> public void setDirection(Direction direction) { - this.direction = direction; - - switch (direction) { - case SOUTH: - setRotation(90); - break; - case EAST: - setRotation(0); - break; - case NORTH: - setRotation(270); - break; - case WEST: - setRotation(180); - break; - } - }</programlisting> - - <para>This way we got rid of the if clause being present in the - original code:</para> - - <programlisting language="java">public void setDirection(int direction) - { - <emphasis role="bold">if ((direction >= 0) && (direction <= 3)) { - this.direction = direction; - }</emphasis> - switch(direction) { - case SOUTH :...</programlisting> - - <para>This check is no longer required since our variable - direction no longer needs to be checked belonging to an interval - {0,1,2,3}. Re-writing the remaining methods is - straightforward:</para> - - <programlisting language="java"> /** - * Move one cell forward in the current direction. - */ - public void move() { - if (!canMove()) { - return; - } - switch (direction) { - case SOUTH: - setLocation(getX(), getY() + 1); - break; - case EAST: - setLocation(getX() + 1, getY()); - break; - case NORTH: - setLocation(getX(), getY() - 1); - break; - case WEST: - setLocation(getX() - 1, getY()); - break; - } - } - - /** - * Test if we can move forward. Return true if we can, false otherwise. - */ - public boolean canMove() { - World myWorld = getWorld(); - int x = getX(); - int y = getY(); - switch (direction) { - case SOUTH: - y++; - break; - case EAST: - x++; - break; - case NORTH: - y--; - break; - case WEST: - x--; - break; - } - // test for outside border - if (x >= myWorld.getWidth() || y >= myWorld.getHeight()) { - return false; - } else if (x < 0 || y < 0) { - return false; - } - return true; - } - - /** - * Turns towards the left. - */ - public void turnLeft() { - switch (direction) { - case SOUTH: - setDirection(Direction.EAST); - break; - case EAST: - setDirection(Direction.NORTH); - break; - case NORTH: - setDirection(Direction.WEST); - break; - case WEST: - setDirection(Direction.SOUTH); - break; - } - }</programlisting> - - <para>Calling the <code>setDirection(...)</code> method from the - <productname>Greenfoot</productname> GUI (right click on a - wombat) now requires to fill in a value like - <quote>Wombat.Direction.WEST</quote> rather than simply - <quote><code>1</code></quote>.</para> - </answer> - </qandaentry> - </qandadiv> - </qandaset> - </section> - </chapter> - - <chapter xml:id="sd1Crabs"> - <title>Lecture 4 - A crabs' world (15.10.)</title> - - <section xml:id="sd1CrabsPrepare"> - <title>Preparations</title> - - <itemizedlist> - <listitem> - <para>Read chapter 2 of <xref - linkend="bib_Koelling2010Ger"/>.</para> - </listitem> - - <listitem> - <para>Read Chapter 3 from <xref linkend="bib_Horton2011"/> till - <quote>THE CONDITIONAL OPERATOR</quote>.</para> - </listitem> - </itemizedlist> - </section> - - <section xml:id="sd1CrabsEnhanceMove"> - <title>Enhancing crabs' movements</title> - - <qandaset defaultlabel="qanda" xml:id="sd1QuandaWalkingSpeed"> - <title>Individual walking speed</title> - - <qandadiv> - <qandaentry> - <question> - <para>So far all crabs share the same walking speed. Locate the - definition of this parameter and explain it precisely. You may - want to read the <quote>Fields in a Class Definition</quote> - section in chapter 5 of <xref linkend="bib_Horton2011"/> - regarding the meaning of the<code> static</code> modifier - keyword to a class variable definition..</para> - - <para>Hint: Our <methodname>Crab</methodname> class is derived - from class <methodname>Actor</methodname>.</para> - </question> - - <answer> - <para>Our <classname>Actor</classname> class contains:</para> - - <programlisting language="java">public class Animal extends Actor -{ - private <co linkends="sd1DefWalkingSpeed-1" xml:id="sde1CoPrivate"/> static <co - linkends="sd1DefWalkingSpeed-2" xml:id="sde1CoStatic"/> final <co - linkends="sd1DefWalkingSpeed-3" xml:id="sde1Cofinal"/> double WALKING_SPEED = 5.0; - -...</programlisting> - - <calloutlist> - <callout arearefs="sde1CoPrivate" - xml:id="sd1DefWalkingSpeed-1"> - <para>The <emphasis role="bold">private</emphasis> modifier - limits the<varname> WALKING_SPEED</varname> variable's - visibility to methods and assignments within class - <classname>Animal</classname>. Outside this scope we - <emphasis role="bold">must not access</emphasis> its value - by e.g. <code>Animal.WALKING_SPEED</code>.</para> - </callout> - - <callout arearefs="sde1CoStatic" xml:id="sd1DefWalkingSpeed-2"> - <para>The <emphasis - role="bold"><code>static</code></emphasis> modifier declares - the variable <code>WALKING_SPEED</code> on class level - rather than on each individual animal's instance level. In - other words: This variable is common to all - <classname>Animal</classname> (or derived classes) objects - and independent from individual instances of class - <classname>Animal</classname>.</para> - </callout> - - <callout arearefs="sde1Cofinal" xml:id="sd1DefWalkingSpeed-3"> - <para>The <emphasis - role="bold"><code>final</code></emphasis> modifier declares - the variable <code>WALKING_SPEED</code> to be immutable. - Thus later re-assignments like WALKING_SPEED = 4.6 will be - flagged as compile time errors.</para> - </callout> - </calloutlist> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Currently all instances of <classname>Animal</classname> - or its derived classes (like <classname>Crab</classname>) will - move with equal speed. Modify the <classname>Animal</classname> - class by adding the following method:</para> - - <programlisting language="java">public void setMyWalkingSpeed(int speed) {...}</programlisting> - - <para>This requires the introduction of a new variable within - our <classname>Animal</classname> class. This variable shall be - initialized in the constructor using the general - <code>WALKING_SPEED</code> default value and possibly be changed - later by invoking - <methodname>setMyWalkingSpeed(...)</methodname> for individual - animal instances.</para> - - <para>Test your implementation by changing a crab's walking - speed via the <productname>Greenfoot</productname> GUI.</para> - </question> - - <answer> - <para>We introduce a new instance variable <emphasis - role="bold">myWalkingSpeed</emphasis> to account for individual - walking speed values:</para> - - <programlisting language="java">public class Animal extends Actor -{ - private static final double WALKING_SPEED = 5.0; <co - linkends="sd1QandaWalkingSpeed-1" - xml:id="sd1QandaWalkingSpeed-1-co"/> - - private double <emphasis role="bold">myWalkingSpeed</emphasis>; <co - linkends="sd1QandaWalkingSpeed-2" - xml:id="sd1QandaWalkingSpeed-2-co"/> - - /** - * Constructor for Animal - */ - public Animal() { - <emphasis role="bold">myWalkingSpeed</emphasis> = WALKING_SPEED; <co - linkends="sd1QandaWalkingSpeed-3" - xml:id="sd1QandaWalkingSpeed-3-co"/> - } - /* - Change this animal's walking speed from its default value - */ - public void setMyWalkingSpeed(int speed) { - <emphasis role="bold">myWalkingSpeed</emphasis> = speed; <co - linkends="sd1QandaWalkingSpeed-4" - xml:id="sd1QandaWalkingSpeed-4-co"/> - } - - - /** - * Move forward in the current direction. - */ - public void move() - { - double angle = Math.toRadians( getRotation() ); - int x = (int) Math.round(getX() + Math.cos(angle) * <emphasis - role="bold">myWalkingSpeed</emphasis>); <co - linkends="sd1QandaWalkingSpeed-5" - xml:id="sd1QandaWalkingSpeed-5-co"/> - int y = (int) Math.round(getY() + Math.sin(angle) * <emphasis - role="bold">myWalkingSpeed</emphasis>); <co - linkends="sd1QandaWalkingSpeed-5" - xml:id="sd1QandaWalkingSpeed-6-co"/> - - setLocation(x, y); - } - - // Unrelated methods omitted for brevity - ... -}</programlisting> - - <calloutlist> - <callout arearefs="sd1QandaWalkingSpeed-1-co" - xml:id="sd1QandaWalkingSpeed-1"> - <para>The general default walking speed value.</para> - </callout> - - <callout arearefs="sd1QandaWalkingSpeed-2-co" - xml:id="sd1QandaWalkingSpeed-2"> - <para>The actual animal's real walking speed value.</para> - </callout> - - <callout arearefs="sd1QandaWalkingSpeed-3-co" - xml:id="sd1QandaWalkingSpeed-3"> - <para>On creation each animal's walking speed gets - initialized to the general default.</para> - </callout> - - <callout arearefs="sd1QandaWalkingSpeed-4-co" - xml:id="sd1QandaWalkingSpeed-4"> - <para>Invoking setMyWalkingSpeed(...) may alter the - individual's walking speed.</para> - </callout> - - <callout arearefs="sd1QandaWalkingSpeed-5-co sd1QandaWalkingSpeed-6-co" - xml:id="sd1QandaWalkingSpeed-5"> - <para>We have to replace the general - <code>WALKING_SPEED</code> variable by our newly introduced - variable <emphasis - role="bold"><code>myWalkingSpeed</code></emphasis>.</para> - </callout> - </calloutlist> - </answer> - </qandaentry> - </qandadiv> - </qandaset> - - <qandaset defaultlabel="qanda" xml:id="sd1QandCrabStatesIf"> - <title>Adding complex behaviour</title> - - <qandadiv> - <qandaentry> - <question> - <para>After finishing <productname>Greenfoot</productname> - exercise 2.14 you are asked to change a crab's behaviour with - respect to world edges. Instead of turning by a constant angle - when hitting an edge our crab shall:</para> - - <itemizedlist> - <listitem> - <para>Turn by 5 degrees when hitting an edge for the first - time</para> - </listitem> - - <listitem> - <para>Turn by 15 degrees when hitting an edge for the second - time</para> - </listitem> - - <listitem> - <para>Turn by 20 degrees when hitting an edge for the third - time</para> - </listitem> - - <listitem> - <para>Restart this sequence with 5 degrees.</para> - </listitem> - </itemizedlist> - - <para>The above algorithm may be visualized as:</para> - - <mediaobject> - <imageobject> - <imagedata fileref="Ref/Fig/turningStates.fig"/> - </imageobject> - </mediaobject> - - <para>In order to achieve this behaviour you have to keep track - of a crab's internal state. This may be achieved by introducing - a new attribute <code>nextTurningAngle</code> of type - <code>int</code>:</para> - - <programlisting language="java">public class Crab extends Animal { - - <emphasis role="bold">int nexturningAngle = 5;</emphasis> // Initial value - - public void act() - { - if (/* read about boolean expressions in Java */ ) { - ... - } ... - - } -}</programlisting> - - <para>Though not strictly required your code will become cleaner - when using multiple <code>if ... else</code> if statements. Note - also that <code>if</code> statements may be nested.</para> - </question> - - <answer> - <para>The desired behaviour may be achieved by introducing a - nested if clause <coref linkend="sd1ExtendCrabStates"/> within - the given if clause testing for reaching our world's end. We - also introduce a variable <code>nextTurningAngle</code> <coref - linkend="sd1VarCrabState"/> of integer type to keep track of - each crab's current state and initialize its value to the first - of our three states:</para> - - <programlisting language="java">public class Crab extends Animal { - - int nextTurningAngle = 5; <co xml:id="sd1VarCrabState"/> // Crabs start in state 1 - - public void act() { - if (atWorldEdge()) { - turn(nextTurningAngle); - - // cycling through the three states - <co xml:id="sd1ExtendCrabStates"/> <emphasis role="bold">if (nextTurningAngle == 5) { // in state 1 ==> state 2 - nextTurningAngle = 15; - } else if (nextTurningAngle == 15) { // in state 2 ==> state 3 - nextTurningAngle = 20; - } else { // in state 3 ==> state 1 - nextTurningAngle = 5; - }</emphasis> - } - move(); - } -}</programlisting> - - <para>Although the above code satisfies our demands completely - it suffers from the following flaws:<glosslist> - <glossentry> - <glossterm>Readability</glossterm> - - <glossdef> - <para>Without further explanation this code is difficult - to understand. The connection between these three - numeric values is not obvious.</para> - </glossdef> - </glossentry> - - <glossentry> - <glossterm>Maintainability</glossterm> - - <glossdef> - <para>Changing the underlying three directions to a new - set of different values (i.e. 7, 42, 13) in a consistent - manner is error prone: For (nearly) each value we will - have to change both the if clause and the corresponding - assignment.</para> - </glossdef> - </glossentry> - </glosslist></para> - - <para>We may improve both our code's readability and - maintainability by introducing three integer constants - corresponding to our crabs distinct states:</para> - - <programlisting language="java">public class Crab extends Animal { - - // These definitions are not strictly required but do help - // understanding the code - final <co linkends="sd1CrabStateConstants-1" - xml:id="sd1CrabStateConstants-1-co"/> static <co - linkends="sd1CrabStateConstants-2" - xml:id="sd1CrabStateConstants-2-co"/> int state1 = 5, - state2 = 15, - state3 = 20; -...</programlisting> - - <calloutlist> - <callout arearefs="sd1CrabStateConstants-1-co" - xml:id="sd1CrabStateConstants-1"> - <para>The Java keyword <code>final</code> asserts that all - following value assignments must not be changed - subsequently. So a later assignment attempt like e.g. - <code>state2 = 1000;</code> will be flagged as an (compile - time) error: We want these values to be constant!</para> - </callout> - - <callout arearefs="sd1CrabStateConstants-2-co" - xml:id="sd1CrabStateConstants-2"> - <para>The Java keyword <code>static</code> instructs the - compiler to share these three values among all possible crab - instances: They are being defined on class level rather than - on object (instant) level. Each crab may be i a different - state but there are only three possible state values</para> - </callout> - </calloutlist> - - <para>Our complete implementation now reads:</para> - - <programlisting language="java">public class Crab extends Animal { - - // A crab is in exactly one of these states: - final static int state1 = 5, - state2 = 15, - state3 = 20; - - // The current directional state of a given crab - int nextTurningAngle = state1; // All crabs start in state 1 - - public void act() { - if (atWorldEdge()) { // unchanged - turn(nextTurningAngle); - // cycling through a crab's three states - if (nextTurningAngle == state1) { // in state 1 ==> state 2 - nextTurningAngle = state2; - } else if (nextTurningAngle == state2) { // in state 2 ==> state 3 - nextTurningAngle = state3; - } else { // in state 3 ==> state 1 - nextTurningAngle = state1; - } - } - move(); - } -}</programlisting> - </answer> - </qandaentry> - </qandadiv> - </qandaset> - </section> - </chapter> - - <chapter xml:id="sd1Variables"> - <title>Lecture 6 - Variables (27.10.)</title> - - <itemizedlist> - <listitem> - <para>Read Chapter 2 from <xref linkend="bib_Horton2011"/> till - <quote>Mathematical Functions and constants</quote>.</para> - </listitem> - - <listitem> - <para>Read chapter 3 of <xref linkend="bib_Koelling2010Ger"/>.</para> - </listitem> - </itemizedlist> - - <section xml:id="sd1ExerciseGreenCh3"> - <title><productname>Greenfoot</productname></title> - - <para>Finish all exercises being presented in chapter 3 of <xref - linkend="bib_Koelling2010Ger"/>.</para> - </section> - </chapter> - - <chapter xml:id="sd1L7"> - <title>Lecture 7 (29.10.)</title> - - <section xml:id="sd1CrabsFinish"> - <title>Preparations</title> - - <itemizedlist> - <listitem> - <para>Read the remaining chapter 2 from <xref - linkend="bib_Horton2011"/> excluding the <quote>Bitwise - Operations</quote> section.</para> - </listitem> - - <listitem> - <para>Read chapter 4 of <xref - linkend="bib_Koelling2010Ger"/>.</para> - </listitem> - </itemizedlist> - </section> - - <section xml:id="sd1FirstLoops"> - <title>Exercises</title> - - <qandaset defaultlabel="qanda" xml:id="sd1WormEatWorm"> - <title>Eating multiple worms</title> - - <qandadiv> - <qandaentry> - <question> - <para>We want to count the number of worms a crab has eaten so - long. This may later be used to finish the game (like you won!) - when a certain number has been exceeded.</para> - - <para>For this purpose define a class variable - <code>noOfWormsEaten</code> in your class Crab and add an - increment rule to your <methodname>lookForWorm()</methodname> - method accordingly. Place two worms at exactly the same - position. Then activate <quote>inspect</quote> for a crab and - let the beast approach the two worms' position by clicking the - <quote>Act</quote> button in succession. When the crab eats the - two worms your variable <code>noOfWormsEaten</code> should have - a value of 2.</para> - - <para>Does the increment happen in one or two steps with respect - to clicking on <quote>Act</quote> ? Explain your result,</para> - </question> - - <answer> - <para>A simple implementation to count worms being eaten - reads:</para> - - <programlisting language="java">public class Crab extends Animal { - - <emphasis role="bold">int noOfWormsEaten = 0; // initially no worm has been eaten</emphasis> - // other methods ... - - public void lookForWorm() { - if (canSee(Worm.class)) { - eat(Worm.class); - <emphasis role="bold">noOfWormsEaten++;</emphasis> - } - } -}</programlisting> - - <para>When approaching two worms at an identical position the - instance variable <code>noOfWormsEaten</code> is being - incremented in two steps.</para> - </answer> - </qandaentry> - </qandadiv> - </qandaset> - - <qandaset defaultlabel="qanda" xml:id="sd1QandaGreedyCrab"> - <title>The greedy crab</title> - - <qandadiv> - <qandaentry> - <question> - <para>Modify the behaviour of <xref linkend="sd1WormEatWorm"/>. - Whenever a crab can see worms all of them should be eaten at - once i.e on a single execution of your - <methodname>act()</methodname> method.</para> - </question> - - <answer> - <para>Whenever <methodname>canSee()</methodname> returns true - only one worm will be eaten. Then - <methodname>canSee()</methodname> has to be called again till no - worm is being left. With respect to the solution of <xref - linkend="sd1WormEatWorm"/> we need to replace the - <code>if</code> clause by a <code>while</code> loop:</para> - - <programlisting language="java"> public void lookForWorm() { - <emphasis role="bold">while</emphasis> (canSee(Worm.class)) { - eat(Worm.class); - noOfWormsEaten++; - }</programlisting> - </answer> - </qandaentry> - </qandadiv> - </qandaset> - - <qandaset defaultlabel="qanda" xml:id="sd1TidyCrabImages"> - <title>Tidy up image handling</title> - - <qandadiv> - <qandaentry> - <question> - <para>The source ode of our little crab version 5 scenario - (<filename>book-scenarios/chapter02-04/little-crab-5)</filename> - contains:</para> - - <programlisting language="java">public class Crab extends Animal { - - private GreenfootImage <emphasis role="bold">image1</emphasis>; - private GreenfootImage <emphasis role="bold">image2</emphasis>; - ... - public Crab() { - <emphasis role="bold">image1</emphasis> = new GreenfootImage("crab.png"); - <emphasis role="bold">image2</emphasis> = new GreenfootImage("crab2.png"); - setImage(image1); - wormsEaten = 0; - }</programlisting> - - <para>Imagine we'd like to extend the crab game doing a - simulation requiring thousands of crabs. Why is the above code - badly written with respect to performance? Do you have an idea - how to correct this issue?</para> - - <para>Hint: Think whether each crab really needs two <emphasis - role="bold">individual</emphasis> images.</para> - </question> - - <answer> - <para>If we had 1000 crabs the code in question would allocate - 2000 images in memory. But actually only two of these 2000 - images are mutually different from each other. So allocating the - remaining 1998 is a wast of memory.</para> - - <para>It is sufficient to create only these two images since - each crab will just toggle between them. This should happen on - class level rater than on instance level:</para> - - <programlisting language="java">public class Crab extends Animal { - - private final static GreenfootImage image1 = new GreenfootImage("crab.png"); - private GreenfootImage image2 = new GreenfootImage("crab2.png"); - public Crab() { - setImage(image1); - wormsEaten = 0; - } ...</programlisting> - - <para>The remaining code may remain unchanged</para> - </answer> - </qandaentry> - </qandadiv> - </qandaset> - - <qandaset defaultlabel="qanda" xml:id="sd1QandaInitCrabWorld"> - <title>Initializing our crab's world.</title> - - <qandadiv> - <qandaentry> - <question> - <para>We take a closer look at the little crab version 5 - scenario in - <filename>book-scenarios/chapter02-04/little-crab-5</filename>. - The subsequently copied code is meant to initialize our crab's - world. Albeit being technically achieving its purpose this code - lacks flexibility and suffers from various flaws to be corrected - by <emphasis role="bold">YOU</emphasis>:</para> - - <programlisting language="java">public class CrabWorld extends World { - /** - * Create the crab world (the beach). Our world has a size - * of 560x560 cells, where every cell is just 1 pixel. - */ - public CrabWorld() { - super(560, 560, 1); <co linkends="sd1CrabworldInitDeficiencies-1" - xml:id="sd1CrabworldInitDeficiencies-1-co"/> - populateWorld(); - } - - /** - * Create the objects for the start of the game. - */ - public void populateWorld() { - addObject(new Crab(), 300, 300); <co - linkends="sd1CrabworldInitDeficiencies-2" - xml:id="sd1CrabworldInitDeficiencies-2-co"/> <co - linkends="sd1CrabworldInitDeficiencies-3" - xml:id="sd1CrabworldInitDeficiencies-3-co"/> - - addObject(new Lobster(), 90, 70); <co - linkends="sd1CrabworldInitDeficiencies-4" - xml:id="sd1CrabworldInitDeficiencies-4-co"/> <coref - linkend="sd1CrabworldInitDeficiencies-2-co"/> <coref - linkend="sd1CrabworldInitDeficiencies-3-co"/> - addObject(new Lobster(), 390, 200); - addObject(new Lobster(), 360, 500); - - addObject(new Worm(), 20, 500); <coref - linkend="sd1CrabworldInitDeficiencies-4-co"/> <coref - linkend="sd1CrabworldInitDeficiencies-2-co"/> <coref - linkend="sd1CrabworldInitDeficiencies-3-co"/> - addObject(new Worm(), 30, 200); - addObject(new Worm(), 60, 90); - addObject(new Worm(), 80, 310); - addObject(new Worm(), 150, 50); - addObject(new Worm(), 210, 410); - addObject(new Worm(), 220, 520); - addObject(new Worm(), 380, 330); - addObject(new Worm(), 410, 270); - addObject(new Worm(), 530, 30); - } -}</programlisting> - - <calloutlist> - <callout arearefs="sd1CrabworldInitDeficiencies-1-co" - xml:id="sd1CrabworldInitDeficiencies-1"> - <para>We might want our world to become parametrized in a - more flexible way. Different values for width and height - should be easily adjustable. With respect to random - placement of characters these values should be accessible by - other methods as well. Thus having just integer literals in - a constructor call is not appropriate.</para> - - <para>Action: Define these parameters as class level - variables.</para> - </callout> - - <callout arearefs="sd1CrabworldInitDeficiencies-2-co" - xml:id="sd1CrabworldInitDeficiencies-2"> - <para>Our animals will always start at the same initial - position (300, 300). Playing this game frequently should - allow for random placement.</para> - - <para>Action: Use <productname>Greenfoot</productname>.<link - xlink:href="http://www.greenfoot.org/files/javadoc/greenfoot/Greenfoot.html#getRandomNumber(int)">getRandomNumber(int)</link> - to place the crab at random positions.</para> - </callout> - - <callout arearefs="sd1CrabworldInitDeficiencies-3-co" - xml:id="sd1CrabworldInitDeficiencies-3"> - <para>All animals initially move into the same direction. - This is due to their rotation angle being initialized to - zero. Thus each animal will move exactly to the right when - starting the game.</para> - - <para>Action: Randomly initialize all moving animals' - initial walking directions.</para> - </callout> - - <callout arearefs="sd1CrabworldInitDeficiencies-4-co" - xml:id="sd1CrabworldInitDeficiencies-4"> - <para>All animals are being positioned at fixed positions - making our game a little boring.</para> - - <para>Action: Rather then positioning lobsters and worms one - by one use two different for-loops instead. Inside each loop - randomly position each animal:</para> - - <programlisting language="java">for (...) { - <emphasis role="bold">// Create all desired worms</emphasis> -} - -for (...) { - <emphasis role="bold">// Create all desired lobsters</emphasis> -}</programlisting> - - <para>Use class variables to define the number of animals to - be created.</para> - </callout> - </calloutlist> - </question> - - <answer> - <orderedlist> - <listitem> - <para>We define two variables <emphasis - role="bold">worldWidth</emphasis> , <emphasis - role="bold">worldHeight</emphasis> and make them replace the - integer literal values inside our default - constructor:</para> - - <programlisting language="java">public class CrabWorld extends World { - - private final static int // Width and height of our - <emphasis role="bold">worldWidth</emphasis> = 700, // crab's world. - <emphasis role="bold">worldHeight</emphasis> = 560; -... - - public CrabWorld() { - super(<emphasis role="bold">worldWidth</emphasis>, <emphasis role="bold">worldHeight</emphasis>, 1); - populateWorld(); - } ...</programlisting> - </listitem> - - <listitem> - <para>There are different ways to implement choosing - coordinates randomly. We take an intermediate step by - implementing two helper methods which create random x- and - y-coordinate values being valid with respect to our world's - boundaries:</para> - - <programlisting language="java">public class CrabWorld extends World { - - private final static int // Width and height of our - worldWidth = 700, // crab's world. - worldHeight = 560; - - /** - * @return A random c ranging from 0 to the worlds's width in pixel units - * - 1. A width of e.g. 100 sets the range to {0, 1,..., 99}. - */ - public static int getRandomX() { - return Greenfoot.getRandomNumber(worldWidth); - } - - /** - * @return A random number ranging from 0 to the worlds's height in pixel - * units - 1. A height of e.g. 70 sets the range to {0, 1,..., 69}. - */ - public static int getRandomY() { - return Greenfoot.getRandomNumber(worldHeight); - } ...</programlisting> - - <para>Creating animals at random positions becomes fairly - easy:</para> - - <programlisting language="java"> public void populateWorld() { - addObject(new Crab(), <emphasis role="bold">getRandomX()</emphasis>, <emphasis - role="bold">getRandomY()</emphasis>);...</programlisting> - </listitem> - - <listitem> - <para>In complete analogy we implement a random rotation - value generating method:</para> - - <programlisting language="java"> /** - * @return A random rotation within the range [0, 1, ..., 360[. - */ - public static int getRandomRotation() { - return Greenfoot.getRandomNumber(360); - }</programlisting> - - <para>We might create animals and set their rotation value - subsequently. Adding a non-default constructor appears to be - a cleaner approach:</para> - - <programlisting language="java">public class Crab extends Animal { - - // Common constructor code: Initialize a crab's two images, rotation ... - private void commonConstructor(int rotation) { - setRotation(rotation); - setImage(image1); - wormsEaten = 0; - } - - /** - * Create a crab. - */ - public Crab() { - commonConstructor(0); - } - - public Crab(int rotation) { - commonConstructor(rotation); - }</programlisting> - - <para>We may now complete a crab's random placement with - random rotation value:</para> - - <programlisting language="java"> public void populateWorld() { - addObject(new Crab(getRandomRotation()), getRandomX(), getRandomY());...</programlisting> - </listitem> - - <listitem> - <para>Creating and placing lobsters and worms randomly is - now a straightforward exercise:</para> - - <programlisting language="java">public class CrabWorld extends World { - - private final static int - <emphasis role="bold">initialLobsterCount</emphasis> = 3, - <emphasis role="bold">initialWormCount</emphasis> = 10; -... - - public void populateWorld() { - addObject(new Crab(getRandomRotation()), getRandomX(), getRandomY()); - - // Creating lobsters. - for (int i = 0; i < i<emphasis role="bold">nitialLobsterCount</emphasis>; i++) { - addObject(new Lobster(getRandomRotation()), getRandomX(), getRandomY()); - } - // Creating worms. - for (int i = 0; i < <emphasis role="bold">initialWormCount</emphasis>; i++) { - addObject(new Worm(), getRandomX(), getRandomY()); - } - } ...</programlisting> - </listitem> - </orderedlist> - - <annotation role="make"> - <para role="eclipse">P/crab/V1</para> - </annotation> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>The current initialization code may produce the following - scenario:</para> - - <informalfigure> - <mediaobject> - <imageobject> - <imagedata fileref="Ref/Fig/stayclear.png"/> - </imageobject> - </mediaobject> - </informalfigure> - - <para>This will leave a player with hardly any chance to escape. - So we'd like our lobsters to initially keep some distance from - our crab. Modify your code accordingly.</para> - - <para>Hint: Calculate the distance between a potential lobster's - position and the already existing crab. Exclude placements - whenever a lobster gets too close.</para> - </question> - - <answer> - <para>We may define a constant reflecting the minimal initial - distance between a lobster and a crab:</para> - - <programlisting language="java">public class CrabWorld extends World { - - private final static int ... - - minimalLobsterCrabDistance = 100; // The minimal distance when starting the game. ...</programlisting> - - <para>We may then modify our loop to exclude lobster coordinate - positions <coref linkend="sd1ListingExcludeLobsterCircle"/> - falling inside a circle of radius <emphasis - role="bold">minimalLobsterCrabDistance</emphasis> surrounding - our crab:</para> - - <programlisting language="java"> public void populateWorld() { - - final int crabX = getRandomX(), // Our crab's initial (x|y) coordinates are - crabY = getRandomY(); // needed for later calculations, see below. - - <emphasis role="bold">// Create our crab.</emphasis> - addObject(new Crab(getRandomRotation()), crabX, crabY); - - <emphasis role="bold">// Creating lobsters.</emphasis> - int numLobsters = 0; - while (numLobsters < initialLobsterCount) { // We use a while loop instead of for since - // numLobsters gets incremented condionally. - - final int lobsterX = getRandomX(), // <emphasis role="bold">Potential</emphasis> lobster's position - lobsterY = getRandomY(), // at (lobsterX|lobsterY). - deltaX = lobsterX - crabX, - deltaY = lobsterY - crabY; - - // Pythagoras is talking to us. Do you listen? If you can't hear him, take a pencil - // and a sheet of paper to sketch the problem's geometry. - // - // We only add a lobster at coordinate position (lobsterX|lobsterY) if - // its distance to our crab is sufficiently large. - // - if (<emphasis role="bold">minimalLobsterCrabDistance * minimalLobsterCrabDistance <</emphasis> <co - xml:id="sd1ListingExcludeLobsterCircle"/> // Distance between lobster and crab is - <emphasis role="bold">deltaX * deltaX + deltaY * deltaY</emphasis>) { // larger than minimalLobsterCrabDistance. - addObject(new Lobster(getRandomRotation()), lobsterX, lobsterY); - numLobsters++; - } - } - - <emphasis role="bold">// Creating worms. Easy: No conditions apply.</emphasis> - for (int i = 0; i < initialWormCount; i++) { - addObject(new Worm(), getRandomX(), getRandomY()); - } - }</programlisting> - - <para>Full <command>Javadoc</command> including source code is - <link - xlink:href="Ref/api/P/crab/V2/package-summary.html">available - here</link>.</para> - </answer> - </qandaentry> - </qandadiv> - </qandaset> - </section> - </chapter> -</part> diff --git a/Sda1/.gitignore b/Sda1/.gitignore deleted file mode 100644 index eea4873da..000000000 --- a/Sda1/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/resources -/lastAnswerId.xml -sda1.xml~ diff --git a/Sda1/Makefile b/Sda1/Makefile deleted file mode 100644 index c5a71e57b..000000000 --- a/Sda1/Makefile +++ /dev/null @@ -1,86 +0,0 @@ -SCRIPTBASENAME=sda1 -PLUGINID=de.hdm_stuttgart.mi.sda1 -WWWBASE=www.mi.hdm-stuttgart.de:/home/infocenter2/doc -M2HOME=/ma/goik/.m2/repository - -PPARAM=\ --p eclipse.plugin.name Sda1 \ --p eclipse.plugin.provider 'Martin Goik, goik@hdm-stuttgart.de' - -HIBDEPS=$(shell cd ../ws/eclipse/HibIntro; mvn dependency:build-classpath |grep -v INFO) -JDBCDEPS=$(shell cd ../ws/eclipse/Jdbc; mvn dependency:build-classpath |grep -v INFO) - -CP:=../ws/Docbook/Dbtools/target/classes:../ws/eclipse/Jdbc/target/classes:../ws/eclipse/HibIntro/target/classes:${HIBDEPS}:${JDBCDEPS} - -BUILDROOT=/tmp -#--no changes below this line------------------------------ -BUILDBASE=$(BUILDROOT)/$(SCRIPTBASENAME) -BUILDNAVI=$(BUILDBASE)/navi/$(PLUGINID) -BUILDNONAVI=$(BUILDBASE)/nonavi/$(PLUGINID) -JAVADOCDESTDIR=${BUILDNAVI}/Ref/api - -# -# Directories containing pom.xml files -# -POMDIRS= $(shell find P -name pom.xml|grep -v target/classes/META-INF|sed -e s/\\/pom.xml//g) - - -all::${BUILDNAVI}/index.html ${BUILDNAVI}/printversion.pdf - -jdoc:: - cd ../ws/eclipse;javadoc \ --classpath ${HIBDEPS}:${JDBCDEPS} -d ${BUILDNAVI}/Ref/api -linksource \ - -link http://docs.oracle.com/javase/8/docs/api/ -link http://testng.org/javadocs/ -link http://docs.oracle.com/javaee/6/api/ \ - -link http://www.jdom.org/docs/apidocs/ -link http://docs.jboss.org/hibernate/orm/4.1/javadocs/ \ - `find Jdbc -name \*.java|grep -v \.metadata` `find HibIntro -name \*.java|grep -v \.metadata` - - -%/jdoc : % - mkdir -p ${JAVADOCDESTDIR}/$* - cp -r $* $*_jdoctmp; - cd $*_jdoctmp; mvn javadoc:javadoc; rm -rf ${JAVADOCDESTDIR}/$*/*; mv target/site/apidocs/* ${JAVADOCDESTDIR}/$*; \ - mvn eclipse:myeclipse-clean eclipse:clean clean; \ - rm -rf .settings; \ - zip ${JAVADOCDESTDIR}/$*/eclipse.zip -r * - rm -rf $*_jdoctmp - -jdoc:: $(foreach pomDir,$(POMDIRS),$(pomDir)/jdoc ) - - - -${BUILDNAVI}/index.html ${BUILDNAVI}/printversion.pdf:${SCRIPTBASENAME}.xml ../glossary.xml ../bibliography.xml - rm -rf $(BUILDNAVI)/*/*.html $(BUILDNAVI)/*/*.pdf || true - mkdir -p ${BUILDNAVI} ${BUILDNONAVI} - cd P/saxerrorhandler;mvn install - $(MAKE) jdoc - java -cp ${CP} de.hdm_stuttgart.mi.codeformat.Docbook2docbook ${SCRIPTBASENAME} - saxon9he-xslt -s:${SCRIPTBASENAME}.convert.xml -xi:on -xsl:../ws/Docbook/Extensions/Xsl/docbook2docbook.xsl > ${SCRIPTBASENAME}.convert.answer.xml - /usr/share/xmlmind/bin/xxetool convert -p suppress.navigation 1 -p eclipse.plugin.id $(PLUGINID) ${PPARAM} db5.toEclipseHelp ${SCRIPTBASENAME}.convert.answer.xml \ - -u $(BUILDNONAVI) - mkdir -p Ref/Fig/Generate;rm -f Ref/Fig/Generate/*.tex;\ - ../bin/stripUnicode.sh resources/Generate/*.tex; mv resources/Generate/*.tex Ref/Fig/Generate - cd Ref/Fig;make all - /usr/share/xmlmind/bin/xxetool convert -p eclipse.plugin.id $(PLUGINID) ${PPARAM} db5.toEclipseHelp ${SCRIPTBASENAME}.convert.answer.xml -u $(BUILDNAVI) - perl -i -p -e '$$/=undef;s/\n[ \t]*<!DOCTYPE[^>]+\n[^>]*>$$//m' ${BUILDNAVI}/*.xml ${BUILDNONAVI}/*.xml - saxon9he-xslt -xi -s:${SCRIPTBASENAME}.convert.answer.xml -xsl:../ws/Docbook/Extensions/Xsl/docbook2print.xsl > ${SCRIPTBASENAME}.convert.answer.print.xml - /usr/share/xmlmind/bin/xxetool convert db5.toPSFile ${SCRIPTBASENAME}.convert.answer.print.xml \ - -s pdf -s "|pdf" -u $(BUILDNAVI)/printversion.pdf - rsync `find . -name \*.ogv` $(BUILDNAVI)/resources - tar c --exclude=\.svn Ref|tar -xC ${BUILDNAVI} - -# j2h -d ${BUILDNAVI}/src/classes -js ~/workspace/StructuredData/ws/eclipse/Jdbc/src \ -# -jd /usr/share/doc/openjdk-7-doc/api http://java.sun.com/javase/7/docs/api - -#You may have to start refdbd -i applic.mi.hdm-stuttgart.de -s -e 0 -l 7 -db.docbook.bib.xml:db.docbook.xml - runbib -u refdb -d refdb_mi -t db50x -r -G raw.css -E utf-8 db.docbook.xml - -install::${BUILDNAVI}/index.html - rsync -av --delete -e ssh ${BUILDNAVI} infocenter2@${WWWBASE}/navi - rsync -av --delete -e ssh ${BUILDNONAVI} infocenter2@${WWWBASE}/nonavi - ssh infocenter2@www.mi.hdm-stuttgart.de /usr/share/hdm/indexupdate.pl - -clean:: - rm -rf ${BUILDBASE} ${SCRIPTBASENAME}.convert.xml ${SCRIPTBASENAME}.convert.answer.* resources *~ - cd Ref/Fig;$(MAKE) clean -#end diff --git a/Sda1/P/Relational/.project b/Sda1/P/Relational/.project deleted file mode 100644 index df811b3b0..000000000 --- a/Sda1/P/Relational/.project +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>Relational</name> - <comment></comment> - <projects> - </projects> - <buildSpec> - <buildCommand> - <name>com.oxygenxml.editor.xmlbuilder</name> - <arguments> - </arguments> - </buildCommand> - </buildSpec> - <natures> - <nature>com.oxygenxml.editor.xmlnature</nature> - </natures> -</projectDescription> diff --git a/Sda1/P/Relational/airline.xsd b/Sda1/P/Relational/airline.xsd deleted file mode 100644 index 736524790..000000000 --- a/Sda1/P/Relational/airline.xsd +++ /dev/null @@ -1,143 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" - xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" elementFormDefault="qualified" - vc:minVersion="1.1"> - - <xs:simpleType name="ICAOAirportCode"> - <xs:restriction base="xs:string"> - <xs:length value="4" /> - <xs:pattern value="[A-Z09]+"></xs:pattern> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="ICAOAirlineCode"> - <xs:restriction base="xs:string"> - <xs:length value="3"/> - <xs:pattern value="[A-Z]+"></xs:pattern> - </xs:restriction> - </xs:simpleType> - - <xs:element name="top"> - <xs:complexType> - <xs:sequence> - <xs:element ref="airlines"/> - <xs:element ref="destinations"/> - <xs:element ref="flights"/> - </xs:sequence> - </xs:complexType> - - <xs:keyref name="_FK_Flight_airline" refer="_PK_Airline_id"> - <xs:selector xpath="flights/flight"/> - <xs:field xpath="@airline"/> - </xs:keyref> - - <xs:keyref name="_FK_Flight_origin" refer="_PK_Destination_id"> - <xs:selector xpath="flights/flight"/> - <xs:field xpath="@origin"/> - </xs:keyref> - - <xs:keyref name="_FK_Flight_destination" refer="_PK_Destination_id"> - <xs:selector xpath="flights/flight"/> - <xs:field xpath="@destination"/> - </xs:keyref> - - </xs:element> - - <xs:element name="airlines"> - <xs:complexType> - <xs:sequence> - <xs:element ref="airline" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - </xs:complexType> - - <xs:key name="_PK_Airline_id"> - <xs:selector xpath="airline"/> - <xs:field xpath="@id"/> - </xs:key> - - <xs:key name="_UN_Airline_name"> - <xs:selector xpath="airline"/> - <xs:field xpath="name"/> - </xs:key> - - <xs:key name="_UN_Airline_airlineCode"> - <xs:selector xpath="airline"/> - <xs:field xpath="@airlineCode"/> - </xs:key> - </xs:element> - - <xs:element name="airline"> - <xs:complexType> - <xs:sequence> - <xs:element name="name" type="xs:string"/> - </xs:sequence> - <xs:attribute name="id" type="xs:int" use="required"/> - <xs:attribute name="airlineCode" type="ICAOAirlineCode" use="required"/> - </xs:complexType> - </xs:element> - - <xs:element name="destinations"> - <xs:complexType> - <xs:sequence> - <xs:element ref="destination" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - </xs:complexType> - - <xs:key name="_PK_Destination_id"> - <xs:selector xpath="destination"/> - <xs:field xpath="@id"/> - </xs:key> - - <xs:key name="_UN_Destination_airportCode"> - <xs:selector xpath="destination"/> - <xs:field xpath="@airportCode"/> - </xs:key> - </xs:element> - - <xs:element name="destination"> - <xs:complexType> - <xs:sequence> - <xs:element name="fullName"/> - </xs:sequence> - <xs:attribute name="id" type="xs:int"/> - <xs:attribute name="airportCode" type="ICAOAirportCode"/> - </xs:complexType> - </xs:element> - - <xs:element name="flights"> - <xs:complexType> - <xs:sequence> - <xs:element ref="flight" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - </xs:complexType> - - <xs:key name="_PK_Flight_id"> - <xs:selector xpath="flight"/> - <xs:field xpath="@id"/> - </xs:key> - - <xs:key name="_UN_Flight_flightNumber"> - <xs:selector xpath="flight"/> - <xs:field xpath="flightNumber"/> - </xs:key> - - </xs:element> - - <xs:element name="flight"> - <xs:complexType> - <xs:sequence> - <xs:element name="flightNumber" type="xs:string"/> - </xs:sequence> - <xs:attribute name="id" type="xs:int" use="required"/> - <xs:attribute name="airline" type="xs:int" use="required"/> - <xs:attribute name="origin" type="xs:int"/> - <xs:attribute name="destination" type="xs:int"/> - <xs:assert test="not(@origin = @destination)"> - <xs:annotation> - <xs:documentation>CHECK constraint _CK_Flight_origin_destination</xs:documentation> - </xs:annotation> - </xs:assert> - </xs:complexType> - </xs:element> - -</xs:schema> \ No newline at end of file diff --git a/Sda1/P/Relational/flightSchedule.xml b/Sda1/P/Relational/flightSchedule.xml deleted file mode 100644 index 7476b3965..000000000 --- a/Sda1/P/Relational/flightSchedule.xml +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<top xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="airline.xsd"> - <airlines> - <airline airlineCode="DLH" id="1"> - <name>Lufthansa</name> - </airline> - <airline airlineCode="AFR" id="2"> - <name>Air France</name> - </airline> - </airlines> - <destinations> - <destination id="1" airportCode="EDDF"> - <fullName>Frankfurt International Airport – Frankfurt am Main</fullName> - </destination> - - <destination id="3" airportCode="EBCI"> - <fullName>Brussels South Charleroi Airport – Charleroi</fullName> - </destination> - </destinations> - - <flights> - <flight id="1" airline="2" origin="1" destination="3"> - <flightNumber>LH 4234</flightNumber> - </flight> - </flights> -</top> \ No newline at end of file diff --git a/Sda1/P/Relational/schema.sql b/Sda1/P/Relational/schema.sql deleted file mode 100644 index 36d4a5fb6..000000000 --- a/Sda1/P/Relational/schema.sql +++ /dev/null @@ -1,45 +0,0 @@ - -DROP TABLE IF EXISTS Flight; -DROP TABLE IF EXISTS Destination; -DROP TABLE IF EXISTS Airline; - -CREATE Table Airline ( - id INT NOT NULL - ,name CHAR(20) NOT NULL - ,airlineCode CHAR(5) NOT NULL - - ,CONSTRAINT _PK_Airline_id PRIMARY KEY(id) - ,CONSTRAINT _UN_Airline_name UNIQUE(name) - ,CONSTRAINT _UN_Airline_airlineCode UNIQUE(airlineCode) -); - -CREATE TABLE Destination ( - id INT NOT NULL - ,fullName CHAR(20) NOT NULL - ,airportCode CHAR(5) - - ,CONSTRAINT _PK_Destination_id PRIMARY KEY(id) - ,CONSTRAINT _UN_Destination_airportCode UNIQUE(airportCode) -); - -CREATE TABLE Flight ( - id INT NOT NULL - ,flightNumber CHAR(10) NOT NULL - ,airline INT NOT NULL REFERENCES Airline - ,origin int NOT NULL REFERENCES Destination - ,destination int NOT NULL REFERENCES Destination - - -- For yet unknown reasons the following alternative MySQL 5.1 syntax compatible - -- statements fail with message 'Cannot add foreign key constraint": - -- ,CONSTRAINT _FK_Flight_airline FOREIGN KEY(airline) REFERENCES Airline - -- ,CONSTRAINT _FK_Flight_origin FOREIGN KEY(origin) REFERENCES Destination - -- ,CONSTRAINT _FK_Flight_destination FOREIGN KEY(destination) REFERENCES Destination - - ,CONSTRAINT _PK_Flight_id UNIQUE(id) - ,CONSTRAINT _UN_Flight_flightNumber UNIQUE(flightNumber) - ,CONSTRAINT _CK_Flight_origin_destination CHECK(NOT(origin = destination)) -); - - - - \ No newline at end of file diff --git a/Sda1/P/catalog2rdbms/.gitignore b/Sda1/P/catalog2rdbms/.gitignore deleted file mode 100644 index 660be2a5f..000000000 --- a/Sda1/P/catalog2rdbms/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -.project -.classpath -/.settings/ -/target/ -A1.log \ No newline at end of file diff --git a/Sda1/P/catalog2rdbms/Schema/catalog.xsd b/Sda1/P/catalog2rdbms/Schema/catalog.xsd deleted file mode 100644 index 9df8b8626..000000000 --- a/Sda1/P/catalog2rdbms/Schema/catalog.xsd +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> - - <xs:element name="catalog"> - <xs:complexType> - <xs:sequence> - <xs:element ref="product" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - </xs:complexType> - <xs:key name="uniqueProductId"> - <xs:selector xpath="product"/> - <xs:field xpath="@id"/> - </xs:key> - </xs:element> - - <xs:element name="product"> - <xs:complexType> - <xs:sequence> - <xs:element name="name" type="xs:string"/> - <xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> - <xs:element name="age" type="xs:int" minOccurs="0" maxOccurs="1"/> - </xs:sequence> - <xs:attribute name="id" type="xs:int" use="required"/> - </xs:complexType> - </xs:element> - -</xs:schema> diff --git a/Sda1/P/catalog2rdbms/Schema/schema.sql b/Sda1/P/catalog2rdbms/Schema/schema.sql deleted file mode 100644 index 5e6f83099..000000000 --- a/Sda1/P/catalog2rdbms/Schema/schema.sql +++ /dev/null @@ -1,27 +0,0 @@ -DROP TABLE IF EXISTS Description; -DROP TABLE IF EXISTS Product; - -CREATE TABLE Product ( - id INTEGER NOT NULL PRIMARY KEY - ,name VARCHAR(255) NOT NULL - ,age SMALLINT -); - -CREATE TABLE Description ( - product CHAR(20) NOT NULL REFERENCES Product - ,orderIndex int NOT NULL -- preserving the order of descriptions belonging to a given product - ,text VARCHAR(255) NOT NULL - ,UNIQUE(product, orderIndex) -); - --- example data corresponding to products.xml -- - --- Product lacking age property -- -INSERT INTO Product (id, name) VALUES ('mpt', 'Monkey Picked Tea'); -INSERT INTO Description VALUES('mpt', 0, 'Picked only by specially trained monkeys'); -INSERT INTO Description VALUES('mpt', 1, 'Rare wild Chinese tea'); - -INSERT INTO Product VALUES ('instantTent', '4-Person Instant Tent', 15); -INSERT INTO Description VALUES('instantTent', 0, 'Exclusive WeatherTec system.'); -INSERT INTO Description VALUES('instantTent', 1, '4-person, 1-room tent'); -INSERT INTO Description VALUES('instantTent', 2, 'Pre-attached tent poles'); diff --git a/Sda1/P/catalog2rdbms/pom.xml b/Sda1/P/catalog2rdbms/pom.xml deleted file mode 100644 index 382154aa7..000000000 --- a/Sda1/P/catalog2rdbms/pom.xml +++ /dev/null @@ -1,98 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.mi.sda1</groupId> - <artifactId>catalog2rdbms</artifactId> - <version>0.8</version> - <packaging>jar</packaging> - - <name>catalog2rdbms</name> - - <!--Fixme: Add a sensible project related domain here --> - <url>http://somedomain.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - </properties> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-api</artifactId> - <version>2.1</version> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-core</artifactId> - <version>2.1</version> - </dependency> - - <dependency> - <groupId>de.hdm-stuttgart.mi.sda1</groupId> - <artifactId>saxerrorhandler</artifactId> - <version>0.8</version> - </dependency> - - <dependency> - <groupId>mysql</groupId> - <artifactId>mysql-connector-java</artifactId> - <version>5.1.34</version> - </dependency> - - </dependencies> - - <build> - <plugins> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>3.1</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.10.1</version> - <configuration /> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-shade-plugin</artifactId> - <version>2.3</version> - <configuration> - <transformers> - <transformer - implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> - <manifestEntries> - <Main-Class>de.hdm_stuttgart.mi.sda1.catalog2sax.App</Main-Class> - </manifestEntries> - </transformer> - </transformers> - </configuration> - <executions> - <execution> - <phase>package</phase> - <goals> - <goal>shade</goal> - </goals> - </execution> - </executions> - </plugin> - - </plugins> - </build> -</project> diff --git a/Sda1/P/catalog2rdbms/products.xml b/Sda1/P/catalog2rdbms/products.xml deleted file mode 100644 index 15000ab5d..000000000 --- a/Sda1/P/catalog2rdbms/products.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<catalog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="Schema/catalog.xsd"> - <product id="17"> - <name>Monkey Picked Tea</name> - <description>Rare wild Chinese tea</description> - <description>Picked only by specially trained monkeys</description> - </product> - <product id="42"> - <name>4-Person Instant Tent</name> - <description>4-person, 1-room tent</description> - <description>Pre-attached tent poles</description> - <description>Exclusive WeatherTec system.</description> - <age>15</age> - </product> -</catalog> \ No newline at end of file diff --git a/Sda1/P/catalog2rdbms/schema.sql b/Sda1/P/catalog2rdbms/schema.sql deleted file mode 100644 index f2dd345da..000000000 --- a/Sda1/P/catalog2rdbms/schema.sql +++ /dev/null @@ -1,28 +0,0 @@ -DROP TABLE IF EXISTS Description; -DROP TABLE IF EXISTS Product; - -CREATE TABLE Product ( - id INTEGER NOT NULL PRIMARY KEY - ,name VARCHAR(255) NOT NULL - ,age SMALLINT -) ENGINE=InnoDB; - -CREATE TABLE Description ( - product INTEGER NOT NULL - ,orderIndex int NOT NULL -- preserving the order of descriptions belonging to a given product - ,text VARCHAR(255) NOT NULL - ,UNIQUE(product, orderIndex) - ,FOREIGN KEY(product) REFERENCES Product(id) -) ENGINE=InnoDB; - --- example data corresponding to products.xml -- - --- Product lacking age property -- -INSERT INTO Product (id, name) VALUES ('mpt', 'Monkey Picked Tea'); -INSERT INTO Description VALUES('mpt', 0, 'Picked only by specially trained monkeys'); -INSERT INTO Description VALUES('mpt', 1, 'Rare wild Chinese tea'); - -INSERT INTO Product VALUES ('instantTent', '4-Person Instant Tent', 15); -INSERT INTO Description VALUES('instantTent', 0, 'Exclusive WeatherTec system.'); -INSERT INTO Description VALUES('instantTent', 1, '4-person, 1-room tent'); -INSERT INTO Description VALUES('instantTent', 2, 'Pre-attached tent poles'); diff --git a/Sda1/P/catalog2rdbms/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/DataInsert.java b/Sda1/P/catalog2rdbms/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/DataInsert.java deleted file mode 100644 index 41c4a28db..000000000 --- a/Sda1/P/catalog2rdbms/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/DataInsert.java +++ /dev/null @@ -1,86 +0,0 @@ -package de.hdm_stuttgart.mi.sda1.catalog2sql; - -import java.sql.Connection; -import java.sql.SQLException; -import java.sql.Statement; -import java.util.List; - -/** - * Formatting product related INSERT statements - * - */ -public class DataInsert { - - final Statement stmt; - - /** - * @param conn Destination RDBMS - * @throws SQLException - */ - public DataInsert(final Connection conn) throws SQLException { - conn.setAutoCommit(false); - stmt = conn.createStatement(); - } - - /** - * Create an SQL INSERT statement corresponding to a <product id='...' > entry - * lacking age specification. - * @param productId See {@link #insertproduct(String, String, int)} - * @param productName See {@link #insertproduct(String, String, int)} - */ - public void insertproduct(final String productId, final String productName) { - final String sqlInsertStmt = "INSERT INTO Product (id, name) VALUES (" + productId + ", '" + productName + "');"; - try { - stmt.executeUpdate(sqlInsertStmt); - } catch (SQLException e) { - Helper.exitWithErrorMessage("Unable to insert product without age property", 1); - - } - } - - /** - * Insert dataset corresponding to a <product id='...' > entry - * @param productId The product's unique id property - * @param productName The product's end user readable name. - * @param age The product's age - */ - public void insertproduct(final String productId, final String productName, final int age) { - - // A PreparedStatement is preferable but not yet introduced in lecture - // - final String sqlInsertStmt = "INSERT INTO Product VALUES (" + productId + ", '" + productName + "', " + age + ");"; - try { - stmt.executeUpdate(sqlInsertStmt); - } catch (SQLException e) { - Helper.exitWithErrorMessage("Unable to insert product including age property", 1); - } - } - - - /** - * Adding a description to a given product. - * - * @param productId The description belongs to this product - * @param descriptions All descriptions belonging to productId - */ - public void insertDescription(final String productId, final List<String> descriptions) { - - for (int i = 0; i < descriptions.size(); i++) { - final String sqlInsertStmt = "INSERT INTO Description VALUES('" + productId + "', " + i + ", '" + - descriptions.get(i) + "');"; - try { - stmt.executeUpdate(sqlInsertStmt); - } catch (SQLException e) { - Helper.exitWithErrorMessage("Unable to insert product description", 1); - } - } - } - /** - * Closing internal Statement instance - * @throws SQLException - */ - public void commit() throws SQLException { - stmt.getConnection().commit(); - } - -} diff --git a/Sda1/P/catalog2rdbms/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/Helper.java b/Sda1/P/catalog2rdbms/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/Helper.java deleted file mode 100644 index b59d33d53..000000000 --- a/Sda1/P/catalog2rdbms/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/Helper.java +++ /dev/null @@ -1,18 +0,0 @@ -package de.hdm_stuttgart.mi.sda1.catalog2sql; - -/** - * Project wide helper methods - * - */ -public class Helper { - /** - * Write message to stderr and exit with given error code - * @param errMsg - * @param errorCode - */ - public static void exitWithErrorMessage(final String errMsg, int errorCode) { - System.err.println(errMsg); - System.exit(errorCode); - } - -} diff --git a/Sda1/P/catalog2rdbms/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/Messages.java b/Sda1/P/catalog2rdbms/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/Messages.java deleted file mode 100644 index e68812cee..000000000 --- a/Sda1/P/catalog2rdbms/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/Messages.java +++ /dev/null @@ -1,22 +0,0 @@ -package de.hdm_stuttgart.mi.sda1.catalog2sql; - -import java.util.MissingResourceException; -import java.util.ResourceBundle; - -public class Messages { - private static final String BUNDLE_NAME = "de.hdm_stuttgart.mi.sda1.catalog2sql.messages"; //$NON-NLS-1$ - - private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle - .getBundle(BUNDLE_NAME); - - private Messages() { - } - - public static String getString(String key) { - try { - return RESOURCE_BUNDLE.getString(key); - } catch (MissingResourceException e) { - return '!' + key + '!'; - } - } -} diff --git a/Sda1/P/catalog2rdbms/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/Xml2Rdbms.java b/Sda1/P/catalog2rdbms/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/Xml2Rdbms.java deleted file mode 100644 index 59cccffb8..000000000 --- a/Sda1/P/catalog2rdbms/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/Xml2Rdbms.java +++ /dev/null @@ -1,88 +0,0 @@ -package de.hdm_stuttgart.mi.sda1.catalog2sql; - -import java.io.IOException; -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.SQLException; - -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.xml.sax.SAXException; -import org.xml.sax.XMLReader; - -import de.hdm_stuttgart.mi.sda1.catalog2sql.handler.CatalogContentHandler; -import de.hdm_stuttgart.mi.sda1.saxerrorhandler.handler.SaxErrorHandler; - -/** - * A simple SAX parser demo - * - */ -public class Xml2Rdbms { - private static final Logger log = LogManager.getLogger(Xml2Rdbms.class); - - /** - * @param args - * Unused - * @throws SAXException - * @throws ParserConfigurationException - * @throws IOException - */ - public static void main(String[] args) throws ParserConfigurationException, - SAXException, IOException { - - log.info(Messages.getString("Xml2Rdbms.0")); - final SAXParserFactory saxPf = SAXParserFactory.newInstance(); - final SAXParser saxParser = saxPf.newSAXParser(); - final XMLReader xmlReader = saxParser.getXMLReader(); - - - // Register Driver - final String sqlDriverClassName = Messages.getString("Xml2Rdbms.jdbcDriverName"); - try { - Class.forName(sqlDriverClassName); - } catch (ClassNotFoundException e) { - Helper.exitWithErrorMessage(Messages.getString("Xml2Rdbms.errMsgUnableRegisterDriverClass") + sqlDriverClassName + Messages.getString("Xml2Rdbms.3"), 1); - } - - - // Opening a JDBC connection - // - Connection conn = null; - - final String jdbcConnectionUrl = Messages.getString("Xml2Rdbms.jdbcUrl"); - final String userName = Messages.getString("Xml2Rdbms.jdbcUser"); - try { - conn = DriverManager.getConnection(jdbcConnectionUrl, userName, Messages.getString("Xml2Rdbms.jdbcPasswd")); - } catch (SQLException e) { - Helper.exitWithErrorMessage(Messages.getString("Xml2Rdbms.errMsgUnableToConnect") + userName + Messages.getString("Xml2Rdbms.8") + - jdbcConnectionUrl + Messages.getString("Xml2Rdbms.9"), 1); - } - - DataInsert dataInsert = null; - try { - dataInsert = new DataInsert(conn); - } catch (SQLException e) { - Helper.exitWithErrorMessage(Messages.getString("Xml2Rdbms.errMsgUnableInitDataInsert"), 1); - } - - log.info(Messages.getString("Xml2Rdbms.11")); - xmlReader.setContentHandler(new CatalogContentHandler(dataInsert)); - xmlReader.setErrorHandler(new SaxErrorHandler(System.err)); - - final String xmlDocumentInstanceFilename = Messages.getString("Xml2Rdbms.xmlSourceFileName"); - log.info(Messages.getString("Xml2Rdbms.13") + xmlDocumentInstanceFilename + Messages.getString("Xml2Rdbms.14")); - xmlReader.parse(xmlDocumentInstanceFilename); - - // Closing - try { - conn.close(); // Closing Connection - } catch (SQLException e) { - Helper.exitWithErrorMessage(Messages.getString("Xml2Rdbms.errMsgUnableCloseRdbms"), 1); - } - } - -} diff --git a/Sda1/P/catalog2rdbms/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/handler/CatalogContentHandler.java b/Sda1/P/catalog2rdbms/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/handler/CatalogContentHandler.java deleted file mode 100644 index 6f1236a9d..000000000 --- a/Sda1/P/catalog2rdbms/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/handler/CatalogContentHandler.java +++ /dev/null @@ -1,137 +0,0 @@ -package de.hdm_stuttgart.mi.sda1.catalog2sql.handler; - -import java.sql.SQLException; -import java.util.List; -import java.util.Vector; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.xml.sax.Attributes; -import org.xml.sax.ContentHandler; -import org.xml.sax.Locator; -import org.xml.sax.SAXException; - -import de.hdm_stuttgart.mi.sda1.catalog2sql.DataInsert; -import de.hdm_stuttgart.mi.sda1.catalog2sql.Helper; -import de.hdm_stuttgart.mi.sda1.catalog2sql.Messages; - -/** - * Turning XML data into SQL INSERT statements - * - */ -public class CatalogContentHandler implements ContentHandler { - private static final Logger log = LogManager.getLogger(CatalogContentHandler.class); - Locator locator = null; - - final DataInsert sqlInserter; - - private final List<String> currentDescriptions = new Vector<String>(); - - final StringBuffer currentElementContent = new StringBuffer(); - - String productId, productName, productAgeString; - - /** - * @param sqlFormatter SQL INSERT statement formatter - */ - public CatalogContentHandler(final DataInsert sqlFormatter) { - this.sqlInserter = sqlFormatter; - } - - @Override - public void setDocumentLocator(Locator locator) { - this.locator = locator; - } - // Convenience Method - String displayWithLocatio(final String saxMsg) { - if (null == locator) { - return saxMsg; - } else { - return "File position (" + locator.getLineNumber() + ", " + locator.getColumnNumber() + "): " + saxMsg; - } - } - - @Override - public void startElement(String uri, String localName, String qName, - Attributes attributes) throws SAXException { - currentElementContent.setLength(0); - switch(qName) { - case "product": - productAgeString = null; // Value will be altered if <age> is present - productId = attributes.getValue("id"); - log.info(displayWithLocatio("Product id=" + productId)); - break; - } - } - - @Override - public void endElement(final String uri, final String localName, final String qName) - throws SAXException { - switch(qName) { - case "product": - if (null == productAgeString) { - sqlInserter.insertproduct(productId, productName); - } else { - try { - sqlInserter.insertproduct(productId, productName, Integer.parseInt(productAgeString)); - } catch (NumberFormatException ex) { - log.error("Property <age> is not of integer value:" + productAgeString); - } - } - flushDescriptionEntries(); - break; - case "name": - productName = currentElementContent.toString(); - break; - - case "description": - // Do not interfere with the current INSERT INTO Product ... - // statement. Instead postpone related INSERT INTO Description ... - // operations, see flushDescriptionEntries(). - currentDescriptions.add(currentElementContent.toString()); - break; - case "age": - productAgeString = currentElementContent.toString(); - break; - } - } - - @Override public void endDocument() throws SAXException { - try { - sqlInserter.commit(); - } catch (SQLException e) { - Helper.exitWithErrorMessage(Messages.getString("Xml2Rdbms.errMsgUnableCommitTransaction"), 1); - } - } - - private void flushDescriptionEntries() { - // Add <description> related INSERTs - sqlInserter.insertDescription(productId, currentDescriptions); - - // Next <product> may be yet to come, so - // clear the current set of descriptions. - currentDescriptions.clear(); - } - - @Override - public void characters(final char[] ch, final int start, final int length) - throws SAXException { - currentElementContent.append(new String(ch, start,length)); - } - - // We don't need these remaining callbacks - - @Override public void startDocument() throws SAXException {} - @Override public void startPrefixMapping(String prefix, String uri) - throws SAXException {} - @Override public void endPrefixMapping(String prefix) - throws SAXException {} - @Override public void ignorableWhitespace(char[] ch, int start, int length) - throws SAXException {} - - @Override public void processingInstruction(String target, String data) - throws SAXException {} - - @Override public void skippedEntity(String name) throws SAXException {} - -} \ No newline at end of file diff --git a/Sda1/P/catalog2rdbms/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/messages.properties b/Sda1/P/catalog2rdbms/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/messages.properties deleted file mode 100644 index 1d5308c65..000000000 --- a/Sda1/P/catalog2rdbms/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/messages.properties +++ /dev/null @@ -1,17 +0,0 @@ -Xml2Rdbms.0=Creating SAX parser -Xml2Rdbms.11=Registering content- and error handler instances -Xml2Rdbms.13=Start parsing file ' -Xml2Rdbms.14=' -Xml2Rdbms.3=' -Xml2Rdbms.8=' to ' -Xml2Rdbms.9=' -Xml2Rdbms.errMsgUnableCloseRdbms=Unable to close RDBMS access -Xml2Rdbms.errMsgUnableInitDataInsert=Unable to initialize data inserter -Xml2Rdbms.errMsgUnableRegisterDriverClass=Unable to register driver class ' -Xml2Rdbms.errMsgUnableToConnect=Unable to connect as user ' -Xml2Rdbms.jdbcDriverName=com.mysql.jdbc.Driver -Xml2Rdbms.jdbcPasswd=XYZ -Xml2Rdbms.jdbcUrl=jdbc:mysql://localhost:3306/hdm -Xml2Rdbms.jdbcUser=hdmuser -Xml2Rdbms.xmlSourceFileName=products.xml -Xml2Rdbms.errMsgUnableCommitTransaction=Unable to commit transaction \ No newline at end of file diff --git a/Sda1/P/catalog2rdbms/src/main/resources/log4j2.xml b/Sda1/P/catalog2rdbms/src/main/resources/log4j2.xml deleted file mode 100644 index eda4f3b0d..000000000 --- a/Sda1/P/catalog2rdbms/src/main/resources/log4j2.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Configuration> - <Appenders> - <File name="A1" fileName="A1.log" append="false"> - <PatternLayout pattern="%t %-5p %c{2} - %m%n"/> - </File> - <Console name="STDOUT" target="SYSTEM_OUT"> - <PatternLayout pattern="%C{2} (%F:%L) - %m%n"/> - </Console> - </Appenders> - <Loggers> - - <!-- You my want to define class or package level per-logger rules --> - <Logger name="de.hdm_stuttgart.mi.sda1.catalog2sax.App" level="debug"> - <AppenderRef ref="A1"/> - </Logger> - <Root level="debug"> - <AppenderRef ref="STDOUT"/> - </Root> - </Loggers> -</Configuration> \ No newline at end of file diff --git a/Sda1/P/catalog2sql/.gitignore b/Sda1/P/catalog2sql/.gitignore deleted file mode 100644 index a43ddc84a..000000000 --- a/Sda1/P/catalog2sql/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -.project -.classpath -/.settings/ -/target/ -products.sql -A1.log \ No newline at end of file diff --git a/Sda1/P/catalog2sql/Schema/catalog.xsd b/Sda1/P/catalog2sql/Schema/catalog.xsd deleted file mode 100644 index 959f9f663..000000000 --- a/Sda1/P/catalog2sql/Schema/catalog.xsd +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> - - <xs:element name="catalog"> - <xs:complexType> - <xs:sequence> - <xs:element ref="product" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - </xs:complexType> - </xs:element> - - <xs:element name="product"> - <xs:complexType> - <xs:sequence> - <xs:element name="name" type="xs:string"/> - <xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> - <xs:element name="age" type="xs:int" minOccurs="0" maxOccurs="1"/> - </xs:sequence> - <xs:attribute name="id" type="xs:ID" use="required"/> - </xs:complexType> - </xs:element> - -</xs:schema> diff --git a/Sda1/P/catalog2sql/Schema/schema.sql b/Sda1/P/catalog2sql/Schema/schema.sql deleted file mode 100644 index c526fef87..000000000 --- a/Sda1/P/catalog2sql/Schema/schema.sql +++ /dev/null @@ -1,27 +0,0 @@ -DROP TABLE IF EXISTS Description; -DROP TABLE IF EXISTS Product; - -CREATE TABLE Product ( - id CHAR(20) NOT NULL PRIMARY KEY - ,name VARCHAR(255) NOT NULL - ,age SMALLINT -); - -CREATE TABLE Description ( - product CHAR(20) NOT NULL REFERENCES Product - ,orderIndex int NOT NULL -- preserving the order of descriptions belonging to a given product - ,text VARCHAR(255) NOT NULL - ,UNIQUE(product, orderIndex) -); - --- example data corresponding to products.xml -- - --- Product lacking age property -- -INSERT INTO Product (id, name) VALUES ('mpt', 'Monkey Picked Tea'); -INSERT INTO Description VALUES('mpt', 0, 'Picked only by specially trained monkeys'); -INSERT INTO Description VALUES('mpt', 1, 'Rare wild Chinese tea'); - -INSERT INTO Product VALUES ('instantTent', '4-Person Instant Tent', 15); -INSERT INTO Description VALUES('instantTent', 0, 'Exclusive WeatherTec system.'); -INSERT INTO Description VALUES('instantTent', 1, '4-person, 1-room tent'); -INSERT INTO Description VALUES('instantTent', 2, 'Pre-attached tent poles'); diff --git a/Sda1/P/catalog2sql/pom.xml b/Sda1/P/catalog2sql/pom.xml deleted file mode 100644 index 6c12d9132..000000000 --- a/Sda1/P/catalog2sql/pom.xml +++ /dev/null @@ -1,96 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.mi.sda1</groupId> - <artifactId>catalog2sql</artifactId> - <version>0.8</version> - <packaging>jar</packaging> - - <name>catalog2sql</name> - - <!--Fixme: Add a sensible project related domain here --> - <url>http://somedomain.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - </properties> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-api</artifactId> - <version>2.1</version> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-core</artifactId> - <version>2.1</version> - </dependency> - - <dependency> - <groupId>commons-io</groupId> - <artifactId>commons-io</artifactId> - <version>2.4</version> - </dependency> - - <dependency> - <groupId>de.hdm-stuttgart.mi.sda1</groupId> - <artifactId>saxerrorhandler</artifactId> - <version>0.8</version> - </dependency> - - </dependencies> - - <build> - <plugins> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>3.1</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.10.1</version> - <configuration/> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-shade-plugin</artifactId> - <version>2.3</version> - <configuration> - <transformers> - <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> - <manifestEntries> - <Main-Class>de.hdm_stuttgart.mi.sda1.catalog2sax.App</Main-Class> - </manifestEntries> - </transformer> - </transformers> - </configuration> - <executions> - <execution> - <phase>package</phase> - <goals> - <goal>shade</goal> - </goals> - </execution> - </executions> - </plugin> - - </plugins> - </build> -</project> diff --git a/Sda1/P/catalog2sql/products.xml b/Sda1/P/catalog2sql/products.xml deleted file mode 100644 index 191ea6b4f..000000000 --- a/Sda1/P/catalog2sql/products.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<catalog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="Schema/catalog.xsd"> - <product id="mpt"> - <name>Monkey Picked Tea</name> - <description>Rare wild Chinese tea</description> - <description>Picked only by specially trained monkeys</description> - </product> - <product id="instantTent"> - <name>4-Person Instant Tent</name> - <description>4-person, 1-room tent</description> - <description>Pre-attached tent poles</description> - <description>Exclusive WeatherTec system.</description> - <age>15</age> - </product> -</catalog> \ No newline at end of file diff --git a/Sda1/P/catalog2sql/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/App.java b/Sda1/P/catalog2sql/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/App.java deleted file mode 100644 index 4f9e08609..000000000 --- a/Sda1/P/catalog2sql/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/App.java +++ /dev/null @@ -1,53 +0,0 @@ -package de.hdm_stuttgart.mi.sda1.catalog2sql; - -import java.io.IOException; -import java.io.PrintStream; - -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.xml.sax.SAXException; -import org.xml.sax.XMLReader; - -import de.hdm_stuttgart.mi.sda1.catalog2sql.handler.CatalogContentHandler; -import de.hdm_stuttgart.mi.sda1.saxerrorhandler.handler.SaxErrorHandler; - - -/** - * A simple SAX parser demo - * - */ -public class App { - private static final Logger log = LogManager.getLogger(App.class); - - /** - * @param args Unused - * @throws SAXException - * @throws ParserConfigurationException - * @throws IOException - */ - public static void main( String[] args ) throws ParserConfigurationException, SAXException, IOException { - - log.info("Creating SAX parser"); - final SAXParserFactory saxPf = SAXParserFactory.newInstance(); - final SAXParser saxParser = saxPf.newSAXParser(); - final XMLReader xmlReader = saxParser.getXMLReader(); - - final PrintStream sqlOutputStream = new PrintStream("products.sql"); - final SqlFormatter sqlFormatter = new SqlFormatter(sqlOutputStream); - - log.info("Registering content- and error handler instances"); - xmlReader.setContentHandler(new CatalogContentHandler(sqlFormatter)); - xmlReader.setErrorHandler(new SaxErrorHandler(System.err)); - - - final String xmlDocumentInstanceFilename = "products.xml"; - log.info("Start parsing file '" + xmlDocumentInstanceFilename + "'"); - xmlReader.parse(xmlDocumentInstanceFilename); - - sqlOutputStream.close(); - } -} diff --git a/Sda1/P/catalog2sql/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/SqlFormatter.java b/Sda1/P/catalog2sql/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/SqlFormatter.java deleted file mode 100644 index 0256793c5..000000000 --- a/Sda1/P/catalog2sql/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/SqlFormatter.java +++ /dev/null @@ -1,61 +0,0 @@ -package de.hdm_stuttgart.mi.sda1.catalog2sql; - -import java.io.PrintStream; -import java.util.List; - -/** - * Formatting product related INSERT statements - * - */ -public class SqlFormatter { - - final PrintStream output; - - /** - * Writing SQL statements to standard output - */ - public SqlFormatter() { - this.output = System.out; - } - - /** - * @param output SQL output destination stream - */ - public SqlFormatter(final PrintStream output) { - this.output = output; - } - - /** - * Create an SQL INSERT statement corresponding to a <product id='...' > entry - * lacking age specification. - * @param productId See {@link #insertproduct(String, String, int)} - * @param productName See {@link #insertproduct(String, String, int)} - */ - public void insertproduct(final String productId, final String productName) { - output.println("INSERT INTO Product (id, name) VALUES ('" + productId + "', '" + productName + "');"); - } - /** - * Create an SQL INSERT statement corresponding to a <product id='...' > entry - * @param productId The product's unique id property - * @param productName The product's end user readable name. - * @param age The product's age - */ - public void insertproduct(final String productId, final String productName, final int age) { - output.println("INSERT INTO Product VALUES ('" + productId + "', '" + productName + "', " + age + ");"); - } - - - /** - * Adding a description to a given product. - * - * @param productId The description belongs to this product - * @param descriptions All descriptions belonging to productId - */ - public void insertDescription(final String productId, final List<String> descriptions) { - for (int i = 0; i < descriptions.size(); i++) { - output.println("INSERT INTO Description VALUES('" + productId + "', " + i + ", '" + descriptions.get(i) + "');"); - } - output.println("-- end of current product entry --\n"); - } - -} diff --git a/Sda1/P/catalog2sql/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/handler/CatalogContentHandler.java b/Sda1/P/catalog2sql/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/handler/CatalogContentHandler.java deleted file mode 100644 index aaf3a08cd..000000000 --- a/Sda1/P/catalog2sql/src/main/java/de/hdm_stuttgart/mi/sda1/catalog2sql/handler/CatalogContentHandler.java +++ /dev/null @@ -1,126 +0,0 @@ -package de.hdm_stuttgart.mi.sda1.catalog2sql.handler; - -import java.util.List; -import java.util.Vector; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.xml.sax.Attributes; -import org.xml.sax.ContentHandler; -import org.xml.sax.Locator; -import org.xml.sax.SAXException; - -import de.hdm_stuttgart.mi.sda1.catalog2sql.SqlFormatter; - -/** - * Turning XML data into SQL INSERT statements - * - */ -public class CatalogContentHandler implements ContentHandler { - private static final Logger log = LogManager.getLogger(CatalogContentHandler.class); - Locator locator = null; - - final SqlFormatter sqlFormatter; - - private final List<String> currentDescriptions = new Vector<String>(); - - final StringBuffer currentElementContent = new StringBuffer(); - - String productId, productName, productAgeString; - - /** - * @param sqlFormatter SQL INSERT statement formatter - */ - public CatalogContentHandler(final SqlFormatter sqlFormatter) { - this.sqlFormatter = sqlFormatter; - } - - @Override - public void setDocumentLocator(Locator locator) { - this.locator = locator; - } - // Convenience Method - String displayWithLocatio(final String saxMsg) { - if (null == locator) { - return saxMsg; - } else { - return "File position (" + locator.getLineNumber() + ", " + locator.getColumnNumber() + "): " + saxMsg; - } - } - - @Override - public void startElement(String uri, String localName, String qName, - Attributes attributes) throws SAXException { - currentElementContent.setLength(0); - switch(qName) { - case "product": - productAgeString = null; // Value will be altered if <age> is present - productId = attributes.getValue("id"); - log.info(displayWithLocatio("Product id=" + productId)); - break; - } - } - - @Override - public void endElement(final String uri, final String localName, final String qName) - throws SAXException { - switch(qName) { - case "product": - if (null == productAgeString) { - sqlFormatter.insertproduct(productId, productName); - } else { - try { - sqlFormatter.insertproduct(productId, productName, Integer.parseInt(productAgeString)); - } catch (NumberFormatException ex) { - log.error("Property <age> is not of integer value:" + productAgeString); - } - } - flushDescriptionEntries(); - break; - case "name": - productName = currentElementContent.toString(); - break; - - case "description": - // Do not interfere with the current INSERT INTO Product ... - // statement. Instead postpone related INSERT INTO Description ... - // operations, see flushDescriptionEntries(). - currentDescriptions.add(currentElementContent.toString()); - break; - case "age": - productAgeString = currentElementContent.toString(); - break; - } - } - private void flushDescriptionEntries() { - // Add <description> related INSERTs - sqlFormatter.insertDescription(productId, currentDescriptions); - - // Next <product> may be yet to come, so - // clear the current set of descriptions. - currentDescriptions.clear(); - } - - @Override - public void characters(final char[] ch, final int start, final int length) - throws SAXException { - currentElementContent.append(new String(ch, start,length)); - } - - // We don't need these remaining callbacks - - @Override public void startDocument() throws SAXException {} - @Override public void endDocument() throws SAXException {} - @Override public void startPrefixMapping(String prefix, String uri) - throws SAXException {} - @Override public void endPrefixMapping(String prefix) - throws SAXException {} - @Override public void ignorableWhitespace(char[] ch, int start, int length) - throws SAXException {} - - @Override public void processingInstruction(String target, String data) - throws SAXException {} - - @Override public void skippedEntity(String name) throws SAXException {} - -} \ No newline at end of file diff --git a/Sda1/P/catalog2sql/src/main/resources/log4j2.xml b/Sda1/P/catalog2sql/src/main/resources/log4j2.xml deleted file mode 100644 index eda4f3b0d..000000000 --- a/Sda1/P/catalog2sql/src/main/resources/log4j2.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Configuration> - <Appenders> - <File name="A1" fileName="A1.log" append="false"> - <PatternLayout pattern="%t %-5p %c{2} - %m%n"/> - </File> - <Console name="STDOUT" target="SYSTEM_OUT"> - <PatternLayout pattern="%C{2} (%F:%L) - %m%n"/> - </Console> - </Appenders> - <Loggers> - - <!-- You my want to define class or package level per-logger rules --> - <Logger name="de.hdm_stuttgart.mi.sda1.catalog2sax.App" level="debug"> - <AppenderRef ref="A1"/> - </Logger> - <Root level="debug"> - <AppenderRef ref="STDOUT"/> - </Root> - </Loggers> -</Configuration> \ No newline at end of file diff --git a/Sda1/P/catalog2sql/src/test/java/de/hdm_stuttgart/mi/sda1/catalog2sax/AppTest.java b/Sda1/P/catalog2sql/src/test/java/de/hdm_stuttgart/mi/sda1/catalog2sax/AppTest.java deleted file mode 100644 index b8da75287..000000000 --- a/Sda1/P/catalog2sql/src/test/java/de/hdm_stuttgart/mi/sda1/catalog2sax/AppTest.java +++ /dev/null @@ -1,55 +0,0 @@ -package de.hdm_stuttgart.mi.sda1.catalog2sax; - -import java.io.File; -import java.io.IOException; -import java.io.PrintStream; - -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; - -import org.apache.commons.io.FileUtils; -import org.junit.Assert; -import org.junit.Test; -import org.xml.sax.SAXException; -import org.xml.sax.XMLReader; - -import de.hdm_stuttgart.mi.sda1.catalog2sql.SqlFormatter; -import de.hdm_stuttgart.mi.sda1.catalog2sql.handler.CatalogContentHandler; -import de.hdm_stuttgart.mi.sda1.saxerrorhandler.handler.SaxErrorHandler; - -/** - * Unit test comparing the converter's output to a given reference file. - */ -public class AppTest { - /** - * Dummy test method - * @throws SAXException - * @throws IOException - * @throws ParserConfigurationException - */ - @Test - public void testApp() throws IOException, SAXException, ParserConfigurationException { - - final SAXParserFactory saxPf = SAXParserFactory.newInstance(); - final SAXParser saxParser = saxPf.newSAXParser(); - final XMLReader xmlReader = saxParser.getXMLReader(); - - final String sqlGeneratedFilename = "products.sql"; - - final PrintStream sqlOutputStream = new PrintStream(sqlGeneratedFilename); - final SqlFormatter sqlFormatter = new SqlFormatter(sqlOutputStream); - - xmlReader.setContentHandler(new CatalogContentHandler(sqlFormatter)); - xmlReader.setErrorHandler(new SaxErrorHandler(System.err)); - - final String xmlDocumentInstanceFilename = "products.xml"; - xmlReader.parse(xmlDocumentInstanceFilename); - - sqlOutputStream.close(); - final String referenceFilename = "src/test/products.reference.sql"; - - Assert.assertTrue( "Comparing '" + referenceFilename + "' and '" + sqlGeneratedFilename + "'", - FileUtils.contentEquals(new File(referenceFilename), new File(sqlGeneratedFilename))); - } -} diff --git a/Sda1/P/catalog2sql/src/test/products.reference.sql b/Sda1/P/catalog2sql/src/test/products.reference.sql deleted file mode 100644 index ec402f329..000000000 --- a/Sda1/P/catalog2sql/src/test/products.reference.sql +++ /dev/null @@ -1,11 +0,0 @@ -INSERT INTO Product (id, name) VALUES ('mpt', 'Monkey Picked Tea'); -INSERT INTO Description VALUES('mpt', 0, 'Rare wild Chinese tea'); -INSERT INTO Description VALUES('mpt', 1, 'Picked only by specially trained monkeys'); --- end of current product entry -- - -INSERT INTO Product VALUES ('instantTent', '4-Person Instant Tent', 15); -INSERT INTO Description VALUES('instantTent', 0, '4-person, 1-room tent'); -INSERT INTO Description VALUES('instantTent', 1, 'Pre-attached tent poles'); -INSERT INTO Description VALUES('instantTent', 2, 'Exclusive WeatherTec system.'); --- end of current product entry -- - diff --git a/Sda1/P/rdbms2catalog/.gitignore b/Sda1/P/rdbms2catalog/.gitignore deleted file mode 100644 index 660be2a5f..000000000 --- a/Sda1/P/rdbms2catalog/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -.project -.classpath -/.settings/ -/target/ -A1.log \ No newline at end of file diff --git a/Sda1/P/rdbms2catalog/Schema/catalog.xsd b/Sda1/P/rdbms2catalog/Schema/catalog.xsd deleted file mode 100644 index 9df8b8626..000000000 --- a/Sda1/P/rdbms2catalog/Schema/catalog.xsd +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> - - <xs:element name="catalog"> - <xs:complexType> - <xs:sequence> - <xs:element ref="product" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - </xs:complexType> - <xs:key name="uniqueProductId"> - <xs:selector xpath="product"/> - <xs:field xpath="@id"/> - </xs:key> - </xs:element> - - <xs:element name="product"> - <xs:complexType> - <xs:sequence> - <xs:element name="name" type="xs:string"/> - <xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> - <xs:element name="age" type="xs:int" minOccurs="0" maxOccurs="1"/> - </xs:sequence> - <xs:attribute name="id" type="xs:int" use="required"/> - </xs:complexType> - </xs:element> - -</xs:schema> diff --git a/Sda1/P/rdbms2catalog/Schema/schema.sql b/Sda1/P/rdbms2catalog/Schema/schema.sql deleted file mode 100644 index f2dd345da..000000000 --- a/Sda1/P/rdbms2catalog/Schema/schema.sql +++ /dev/null @@ -1,28 +0,0 @@ -DROP TABLE IF EXISTS Description; -DROP TABLE IF EXISTS Product; - -CREATE TABLE Product ( - id INTEGER NOT NULL PRIMARY KEY - ,name VARCHAR(255) NOT NULL - ,age SMALLINT -) ENGINE=InnoDB; - -CREATE TABLE Description ( - product INTEGER NOT NULL - ,orderIndex int NOT NULL -- preserving the order of descriptions belonging to a given product - ,text VARCHAR(255) NOT NULL - ,UNIQUE(product, orderIndex) - ,FOREIGN KEY(product) REFERENCES Product(id) -) ENGINE=InnoDB; - --- example data corresponding to products.xml -- - --- Product lacking age property -- -INSERT INTO Product (id, name) VALUES ('mpt', 'Monkey Picked Tea'); -INSERT INTO Description VALUES('mpt', 0, 'Picked only by specially trained monkeys'); -INSERT INTO Description VALUES('mpt', 1, 'Rare wild Chinese tea'); - -INSERT INTO Product VALUES ('instantTent', '4-Person Instant Tent', 15); -INSERT INTO Description VALUES('instantTent', 0, 'Exclusive WeatherTec system.'); -INSERT INTO Description VALUES('instantTent', 1, '4-person, 1-room tent'); -INSERT INTO Description VALUES('instantTent', 2, 'Pre-attached tent poles'); diff --git a/Sda1/P/rdbms2catalog/pom.xml b/Sda1/P/rdbms2catalog/pom.xml deleted file mode 100644 index a90681ea4..000000000 --- a/Sda1/P/rdbms2catalog/pom.xml +++ /dev/null @@ -1,97 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.mi.sda1</groupId> - <artifactId>rdbms2catalog</artifactId> - <version>0.8</version> - <packaging>jar</packaging> - - <name>rdbms2catalog</name> - - <url>http://www.mi.hdm-stuttgart.de/freedocs</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - </properties> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-api</artifactId> - <version>2.1</version> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-core</artifactId> - <version>2.1</version> - </dependency> - - <dependency> - <groupId>org.jdom</groupId> - <artifactId>jdom2</artifactId> - <version>2.0.5</version> - </dependency> - - <dependency> - <groupId>mysql</groupId> - <artifactId>mysql-connector-java</artifactId> - <version>5.1.34</version> - </dependency> - - </dependencies> - - <build> - <plugins> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>3.1</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.10.1</version> - <configuration /> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-shade-plugin</artifactId> - <version>2.3</version> - <configuration> - <transformers> - <transformer - implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> - <manifestEntries> - <Main-Class>de.hdm_stuttgart.mi.sda1.catalog2sax.App</Main-Class> - </manifestEntries> - </transformer> - </transformers> - </configuration> - <executions> - <execution> - <phase>package</phase> - <goals> - <goal>shade</goal> - </goals> - </execution> - </executions> - </plugin> - - </plugins> - </build> -</project> diff --git a/Sda1/P/rdbms2catalog/products.xml b/Sda1/P/rdbms2catalog/products.xml deleted file mode 100644 index 15000ab5d..000000000 --- a/Sda1/P/rdbms2catalog/products.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<catalog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="Schema/catalog.xsd"> - <product id="17"> - <name>Monkey Picked Tea</name> - <description>Rare wild Chinese tea</description> - <description>Picked only by specially trained monkeys</description> - </product> - <product id="42"> - <name>4-Person Instant Tent</name> - <description>4-person, 1-room tent</description> - <description>Pre-attached tent poles</description> - <description>Exclusive WeatherTec system.</description> - <age>15</age> - </product> -</catalog> \ No newline at end of file diff --git a/Sda1/P/rdbms2catalog/src/main/java/de/hdm_stuttgart/mi/sda1/sql2catalog/Helper.java b/Sda1/P/rdbms2catalog/src/main/java/de/hdm_stuttgart/mi/sda1/sql2catalog/Helper.java deleted file mode 100644 index f78795876..000000000 --- a/Sda1/P/rdbms2catalog/src/main/java/de/hdm_stuttgart/mi/sda1/sql2catalog/Helper.java +++ /dev/null @@ -1,18 +0,0 @@ -package de.hdm_stuttgart.mi.sda1.sql2catalog; - -/** - * Project wide helper methods - * - */ -public class Helper { - /** - * Write message to stderr and exit with given error code - * @param errMsg - * @param errorCode - */ - public static void exitWithErrorMessage(final String errMsg, int errorCode) { - System.err.println(errMsg); - System.exit(errorCode); - } - -} diff --git a/Sda1/P/rdbms2catalog/src/main/java/de/hdm_stuttgart/mi/sda1/sql2catalog/Messages.java b/Sda1/P/rdbms2catalog/src/main/java/de/hdm_stuttgart/mi/sda1/sql2catalog/Messages.java deleted file mode 100644 index 781829729..000000000 --- a/Sda1/P/rdbms2catalog/src/main/java/de/hdm_stuttgart/mi/sda1/sql2catalog/Messages.java +++ /dev/null @@ -1,22 +0,0 @@ -package de.hdm_stuttgart.mi.sda1.sql2catalog; - -import java.util.MissingResourceException; -import java.util.ResourceBundle; - -public class Messages { - private static final String BUNDLE_NAME = "de.hdm_stuttgart.mi.sda1.sql2catalog.messages"; //$NON-NLS-1$ - - private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle - .getBundle(BUNDLE_NAME); - - private Messages() { - } - - public static String getString(String key) { - try { - return RESOURCE_BUNDLE.getString(key); - } catch (MissingResourceException e) { - return '!' + key + '!'; - } - } -} diff --git a/Sda1/P/rdbms2catalog/src/main/java/de/hdm_stuttgart/mi/sda1/sql2catalog/Rdbms2Xml.java b/Sda1/P/rdbms2catalog/src/main/java/de/hdm_stuttgart/mi/sda1/sql2catalog/Rdbms2Xml.java deleted file mode 100644 index f6868d69b..000000000 --- a/Sda1/P/rdbms2catalog/src/main/java/de/hdm_stuttgart/mi/sda1/sql2catalog/Rdbms2Xml.java +++ /dev/null @@ -1,77 +0,0 @@ -package de.hdm_stuttgart.mi.sda1.sql2catalog; - -import java.io.IOException; -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.SQLException; - -import javax.xml.parsers.ParserConfigurationException; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.jdom2.Element; -import org.jdom2.output.Format; -import org.jdom2.output.XMLOutputter; -import org.xml.sax.SAXException; - -/** - * A simple SAX parser demo - * - */ -public class Rdbms2Xml { - private static final Logger log = LogManager.getLogger(Rdbms2Xml.class); - - /** - * @param args - * Unused - * @throws SAXException - * @throws ParserConfigurationException - * @throws IOException - */ - public static void main(String[] args) throws ParserConfigurationException, - SAXException, IOException { - - - - // Register Driver - final String sqlDriverClassName = Messages.getString("Xml2Rdbms.jdbcDriverName"); - try { - Class.forName(sqlDriverClassName); - } catch (ClassNotFoundException e) { - Helper.exitWithErrorMessage(Messages.getString("Xml2Rdbms.errMsgUnableRegisterDriverClass") + sqlDriverClassName + "'", 1); - } - - - // Opening a JDBC connection - // - Connection conn = null; - - final String jdbcConnectionUrl = Messages.getString("Xml2Rdbms.jdbcUrl"); - final String userName = Messages.getString("Xml2Rdbms.jdbcUser"); - try { - conn = DriverManager.getConnection(jdbcConnectionUrl, userName, Messages.getString("Xml2Rdbms.jdbcPasswd")); - } catch (SQLException e) { - Helper.exitWithErrorMessage(Messages.getString("Xml2Rdbms.errMsgUnableToConnect") + userName + "' to '" + - jdbcConnectionUrl + "'", 1); - } - - RdbmsAccess rdbmsAccess = null; - try { - rdbmsAccess = new RdbmsAccess(conn); - } catch (SQLException e) { - Helper.exitWithErrorMessage(Messages.getString("Xml2Rdbms.errMsgUnableInitDataInsert"), 1); - } - - final Element catalogElement = new Element("catalog"); - try { - rdbmsAccess.appendProducts(catalogElement); - } catch (SQLException e) { - Helper.exitWithErrorMessage("Unable to read database:" + e.getLocalizedMessage(), 1); - } - - // Write XML content to standard output - XMLOutputter outputter = new XMLOutputter(Format.getPrettyFormat()); - outputter.output(catalogElement, System.out); - } - -} diff --git a/Sda1/P/rdbms2catalog/src/main/java/de/hdm_stuttgart/mi/sda1/sql2catalog/RdbmsAccess.java b/Sda1/P/rdbms2catalog/src/main/java/de/hdm_stuttgart/mi/sda1/sql2catalog/RdbmsAccess.java deleted file mode 100644 index d13fc1070..000000000 --- a/Sda1/P/rdbms2catalog/src/main/java/de/hdm_stuttgart/mi/sda1/sql2catalog/RdbmsAccess.java +++ /dev/null @@ -1,63 +0,0 @@ -package de.hdm_stuttgart.mi.sda1.sql2catalog; - -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; - -import org.jdom2.Element; - -/** - * Reading product data - * - */ -public class RdbmsAccess { - - final PreparedStatement selectProduct, selectDescription; - - /** - * @param conn Destination RDBMS - * @throws SQLException - */ - public RdbmsAccess(final Connection conn) throws SQLException { - conn.setAutoCommit(false); - selectProduct = conn.prepareStatement("SELECT * FROM Product"); - selectDescription = conn.prepareStatement("SELECT * FROM Description WHERE product = ? ORDER BY orderIndex"); - } - - public void appendProducts(final Element root) throws SQLException { - final ResultSet products = selectProduct.executeQuery(); - - while (products.next()) { - final int productId = products.getInt("id"); - final Element productElement = new Element("product"); - root.addContent(productElement); - productElement.setAttribute("id", "" + productId); - - final Element nameElement = new Element("name"); - productElement.addContent(nameElement); - nameElement.addContent(products.getString("name")); - - addDescriptions(productId, productElement); - - final int productAge = products.getInt("age"); - if (!products.wasNull()) { - final Element ageElement = new Element("age"); - productElement.addContent(ageElement); - ageElement.addContent("" + productAge); - } - } - products.close(); - } - - private void addDescriptions(final int productId, final Element productElement) throws SQLException { - selectDescription.setInt(1, productId); - final ResultSet descriptions = selectDescription.executeQuery(); - while (descriptions.next()) { - final Element descriptionElement = new Element("description"); - productElement.addContent(descriptionElement); - descriptionElement.addContent(descriptions.getString("text")); - } - descriptions.close(); - } -} diff --git a/Sda1/P/rdbms2catalog/src/main/java/de/hdm_stuttgart/mi/sda1/sql2catalog/messages.properties b/Sda1/P/rdbms2catalog/src/main/java/de/hdm_stuttgart/mi/sda1/sql2catalog/messages.properties deleted file mode 100644 index a183dcc38..000000000 --- a/Sda1/P/rdbms2catalog/src/main/java/de/hdm_stuttgart/mi/sda1/sql2catalog/messages.properties +++ /dev/null @@ -1,11 +0,0 @@ -Xml2Rdbms.14=' -Xml2Rdbms.errMsgUnableCloseRdbms=Unable to close RDBMS access -Xml2Rdbms.errMsgUnableInitDataInsert=Unable to initialize data inserter -Xml2Rdbms.errMsgUnableRegisterDriverClass=Unable to register driver class ' -Xml2Rdbms.errMsgUnableToConnect=Unable to connect as user ' -Xml2Rdbms.jdbcDriverName=com.mysql.jdbc.Driver -Xml2Rdbms.jdbcPasswd=XYZ -Xml2Rdbms.jdbcUrl=jdbc:mysql://localhost:3306/hdm -Xml2Rdbms.jdbcUser=hdmuser -Xml2Rdbms.xmlSourceFileName=products.xml -Xml2Rdbms.errMsgUnableCommitTransaction=Unable to commit transaction \ No newline at end of file diff --git a/Sda1/P/rdbms2catalog/src/main/resources/log4j2.xml b/Sda1/P/rdbms2catalog/src/main/resources/log4j2.xml deleted file mode 100644 index eda4f3b0d..000000000 --- a/Sda1/P/rdbms2catalog/src/main/resources/log4j2.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Configuration> - <Appenders> - <File name="A1" fileName="A1.log" append="false"> - <PatternLayout pattern="%t %-5p %c{2} - %m%n"/> - </File> - <Console name="STDOUT" target="SYSTEM_OUT"> - <PatternLayout pattern="%C{2} (%F:%L) - %m%n"/> - </Console> - </Appenders> - <Loggers> - - <!-- You my want to define class or package level per-logger rules --> - <Logger name="de.hdm_stuttgart.mi.sda1.catalog2sax.App" level="debug"> - <AppenderRef ref="A1"/> - </Logger> - <Root level="debug"> - <AppenderRef ref="STDOUT"/> - </Root> - </Loggers> -</Configuration> \ No newline at end of file diff --git a/Sda1/P/saxerrorhandler/.gitignore b/Sda1/P/saxerrorhandler/.gitignore deleted file mode 100644 index b21988c2e..000000000 --- a/Sda1/P/saxerrorhandler/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -/target/ -/.settings/ -.classpath -.project -A1.log -dependency-reduced-pom.xml diff --git a/Sda1/P/saxerrorhandler/pom.xml b/Sda1/P/saxerrorhandler/pom.xml deleted file mode 100644 index 765efc6de..000000000 --- a/Sda1/P/saxerrorhandler/pom.xml +++ /dev/null @@ -1,83 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.mi.sda1</groupId> - <artifactId>saxerrorhandler</artifactId> - <version>0.8</version> - <packaging>jar</packaging> - - <name>saxerrorhandler</name> - - <url>http://www.mi.hdm-stuttgart.de/freedocs</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - </properties> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-api</artifactId> - <version>2.1</version> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-core</artifactId> - <version>2.1</version> - </dependency> - - </dependencies> - - <build> - <plugins> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>3.1</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.10.1</version> - <configuration/> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-shade-plugin</artifactId> - <version>2.3</version> - <configuration> - <transformers> - <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> - <manifestEntries> - <Main-Class>de.hdm_stuttgart.mi.sda1.saxerrorhandler.App</Main-Class> - </manifestEntries> - </transformer> - </transformers> - </configuration> - <executions> - <execution> - <phase>package</phase> - <goals> - <goal>shade</goal> - </goals> - </execution> - </executions> - </plugin> - - </plugins> - </build> -</project> diff --git a/Sda1/P/saxerrorhandler/src/main/java/de/hdm_stuttgart/mi/sda1/saxerrorhandler/handler/SaxErrorHandler.java b/Sda1/P/saxerrorhandler/src/main/java/de/hdm_stuttgart/mi/sda1/saxerrorhandler/handler/SaxErrorHandler.java deleted file mode 100644 index 169ea841b..000000000 --- a/Sda1/P/saxerrorhandler/src/main/java/de/hdm_stuttgart/mi/sda1/saxerrorhandler/handler/SaxErrorHandler.java +++ /dev/null @@ -1,69 +0,0 @@ -package de.hdm_stuttgart.mi.sda1.saxerrorhandler.handler; - -import java.io.PrintStream; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.xml.sax.ErrorHandler; -import org.xml.sax.SAXException; -import org.xml.sax.SAXParseException; - -/** - * A SAX error handler providing line and column number information with respect - * to files being parsed. - * - * Output will be written to a stream - * - */ -public class SaxErrorHandler implements ErrorHandler { - - private static final Logger log = LogManager.getLogger(SaxErrorHandler.class); - - final PrintStream problemOutputStream; - - /** - * Parsing problems will only published to internal logger. - */ - public SaxErrorHandler() { - problemOutputStream = null; - } - - /** - * Parsing problems will be published to internal logger and - * problemOutputStream. - * - * @param problemOutputStream - */ - public SaxErrorHandler(final PrintStream problemOutputStream) { - this.problemOutputStream = problemOutputStream; - } - - public void warning(SAXParseException e) { - final String msg = "[Warning]" + getLocationString(e); - log.warn(msg); - if (null != problemOutputStream) { - problemOutputStream.print(msg); - } - } - - public void error(SAXParseException e) { - final String msg = "[Error]" + getLocationString(e); - log.error(msg); - if (null != problemOutputStream) { - problemOutputStream.print(msg); - } - } - - public void fatalError(SAXParseException e) throws SAXException { - final String msg = "[Fatal Error]" + getLocationString(e); - log.fatal(msg); - if (null != problemOutputStream) { - problemOutputStream.print(msg); - } - } - - private String getLocationString(SAXParseException e) { - return " line " + e.getLineNumber() + ", column " + e.getColumnNumber() - + ":" + e.getMessage(); - } -} \ No newline at end of file diff --git a/Sda1/P/saxerrorhandler/src/main/resources/log4j2.xml b/Sda1/P/saxerrorhandler/src/main/resources/log4j2.xml deleted file mode 100644 index 957c8e694..000000000 --- a/Sda1/P/saxerrorhandler/src/main/resources/log4j2.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Configuration> - <Appenders> - <File name="A1" fileName="A1.log" append="false"> - <PatternLayout pattern="%t %-5p %c{2} - %m%n"/> - </File> - <Console name="STDOUT" target="SYSTEM_OUT"> - <PatternLayout pattern="%C{2} (%F:%L) - %m%n"/> - </Console> - </Appenders> - <Loggers> - - <!-- You my want to define class or package level per-logger rules --> - <Logger name="de.hdm_stuttgart.mi.sda1.saxerrorhandler.App" level="debug"> - <AppenderRef ref="A1"/> - </Logger> - <Root level="debug"> - <AppenderRef ref="STDOUT"/> - </Root> - </Loggers> -</Configuration> \ No newline at end of file diff --git a/Sda1/P/saxerrorhandler/src/test/java/de/hdm_stuttgart/mi/sda1/saxerrorhandler/AppTest.java b/Sda1/P/saxerrorhandler/src/test/java/de/hdm_stuttgart/mi/sda1/saxerrorhandler/AppTest.java deleted file mode 100644 index baccb8de0..000000000 --- a/Sda1/P/saxerrorhandler/src/test/java/de/hdm_stuttgart/mi/sda1/saxerrorhandler/AppTest.java +++ /dev/null @@ -1,70 +0,0 @@ -package de.hdm_stuttgart.mi.sda1.saxerrorhandler; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.PrintStream; - -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; - -import org.junit.Assert; -import org.junit.Test; -import org.xml.sax.SAXException; -import org.xml.sax.SAXParseException; -import org.xml.sax.XMLReader; -import org.xml.sax.helpers.DefaultHandler; - -import de.hdm_stuttgart.mi.sda1.saxerrorhandler.handler.SaxErrorHandler; - -/** - * Testing {@link SaxErrorHandler} - */ -public class AppTest { - final static String xmlDocumentInstanceFilename = "src/test/testdata.xml"; - - final XMLReader xmlReader; - - final ByteArrayOutputStream baOs = new ByteArrayOutputStream(); - final PrintStream ps = new PrintStream(baOs); - - /** - * Parser instantiation - * - * @throws SAXException - * @throws ParserConfigurationException - * @throws IOException - */ - public AppTest() throws SAXException, ParserConfigurationException, IOException { - final SAXParserFactory saxParserFactory = SAXParserFactory.newInstance(); - - final SAXParser saxParser = saxParserFactory.newSAXParser(); - xmlReader = saxParser.getXMLReader(); - - xmlReader.setFeature("http://xml.org/sax/features/namespaces", true); - xmlReader.setFeature("http://xml.org/sax/features/namespace-prefixes", true); - - xmlReader.setContentHandler(new DefaultHandler()); - xmlReader.setErrorHandler(new SaxErrorHandler(ps)); - } - - /** - * The XML input is not well-formed and should thus yield a fatal error - * thereby throwing a {@link SAXParseException}. - * @throws IOException not expected to be thrown in this test case. - * @throws SAXException - */ - @Test(expected=SAXException.class) - public void testApp() throws IOException, SAXException { - try { - xmlReader.parse(xmlDocumentInstanceFilename); - } catch (final SAXException e) { - System.out.println("baos=" + baOs.toString()); - - final String expectedParsingErrorMessage= - "[Fatal Error] line 5, column 5:The end-tag for element type \"content:person\" must end with a '>' delimiter."; - Assert.assertEquals(expectedParsingErrorMessage, baOs.toString()); - throw e; - } - } -} diff --git a/Sda1/P/saxerrorhandler/src/test/testdata.xml b/Sda1/P/saxerrorhandler/src/test/testdata.xml deleted file mode 100644 index acd5445ad..000000000 --- a/Sda1/P/saxerrorhandler/src/test/testdata.xml +++ /dev/null @@ -1,6 +0,0 @@ -<root:top xmlns:root="www.mi.hdm-stuttgart.de/sda1.root" - xmlns:content="www.mi.hdm-stuttgart.de/sda1.content"> - - <content:person>Eve</content:person - <content:person>Adam</content:person> -</root:top> \ No newline at end of file diff --git a/Sda1/P/xmlstatistics/.gitignore b/Sda1/P/xmlstatistics/.gitignore deleted file mode 100644 index 963f79fe9..000000000 --- a/Sda1/P/xmlstatistics/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -/target/ -/.settings/ -.classpath -.project -A1.log \ No newline at end of file diff --git a/Sda1/P/xmlstatistics/pom.xml b/Sda1/P/xmlstatistics/pom.xml deleted file mode 100644 index aa865e910..000000000 --- a/Sda1/P/xmlstatistics/pom.xml +++ /dev/null @@ -1,90 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.mi.sda1</groupId> - <artifactId>xmlstatistics</artifactId> - <version>0.0.1-SNAPSHOT</version> - <packaging>jar</packaging> - - <name>xmlstatistics</name> - - <!--Fixme: Add a sensible project related domain here --> - <url>http://somedomain.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - </properties> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-api</artifactId> - <version>2.1</version> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-core</artifactId> - <version>2.1</version> - </dependency> - - <dependency> - <groupId>de.hdm-stuttgart.mi.sda1</groupId> - <artifactId>saxerrorhandler</artifactId> - <version>0.8</version> - </dependency> - - </dependencies> - - <build> - <plugins> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>3.1</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.10.1</version> - <configuration/> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-shade-plugin</artifactId> - <version>2.3</version> - <configuration> - <transformers> - <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> - <manifestEntries> - <Main-Class>de.hdm_stuttgart.mi.sda1.xmlstatistics.App</Main-Class> - </manifestEntries> - </transformer> - </transformers> - </configuration> - <executions> - <execution> - <phase>package</phase> - <goals> - <goal>shade</goal> - </goals> - </execution> - </executions> - </plugin> - - </plugins> - </build> -</project> diff --git a/Sda1/P/xmlstatistics/sample.xsl b/Sda1/P/xmlstatistics/sample.xsl deleted file mode 100644 index dd633bf37..000000000 --- a/Sda1/P/xmlstatistics/sample.xsl +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" - xmlns:xs="http://www.w3.org/2001/XMLSchema" - xmlns:h="http://www.w3.org/1999/xhtml" - exclude-result-prefixes="xs" version="2.0"> - - <xsl:template match="/"> - <h:html> - <h:head> - <h:title></h:title> - </h:head> - <h:body> - <h:h1>A heading</h:h1> - <h:p>A paragraph</h:p> - <h:h1>Yet another heading</h:h1> - <xsl:apply-templates/> - </h:body> - </h:html> - </xsl:template> - - <xsl:template match="*"> - <xsl:message> - <xsl:text>No template defined for element '</xsl:text> - <xsl:value-of select="name(.)"/> - <xsl:text>'</xsl:text> - </xsl:message> - </xsl:template> - -</xsl:stylesheet> \ No newline at end of file diff --git a/Sda1/P/xmlstatistics/src/main/java/de/hdm_stuttgart/mi/sda1/xmlstatistics/App.java b/Sda1/P/xmlstatistics/src/main/java/de/hdm_stuttgart/mi/sda1/xmlstatistics/App.java deleted file mode 100644 index db808ac7a..000000000 --- a/Sda1/P/xmlstatistics/src/main/java/de/hdm_stuttgart/mi/sda1/xmlstatistics/App.java +++ /dev/null @@ -1,56 +0,0 @@ -package de.hdm_stuttgart.mi.sda1.xmlstatistics; - -import java.io.IOException; - -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.xml.sax.SAXException; -import org.xml.sax.XMLReader; - -import de.hdm_stuttgart.mi.sda1.saxerrorhandler.handler.SaxErrorHandler; -import de.hdm_stuttgart.mi.sda1.xmlstatistics.handler.SaxContentHandler; - - -/** - * A simple SAX parser demo - * - */ -public class App { - private static final Logger log = LogManager.getLogger(App.class); - - /** - * @param args Unused - * @throws SAXException - * @throws ParserConfigurationException - * @throws IOException - */ - public static void main( String[] args ) throws ParserConfigurationException, SAXException, IOException { - - log.info("Creating SAX parser factory"); - final SAXParserFactory saxPf = SAXParserFactory.newInstance(); - - log.info("Creating SAX parser"); - final SAXParser saxParser = saxPf.newSAXParser(); - final XMLReader xmlReader = saxParser.getXMLReader(); - - log.info("Enabling namespaces and namespace prefix processing"); - xmlReader.setFeature("http://xml.org/sax/features/validation", false); - xmlReader.setFeature("http://xml.org/sax/features/namespaces", true); - xmlReader.setFeature("http://xml.org/sax/features/namespace-prefixes", true); - - log.info("Registering content- and error handler instances"); - final SaxContentHandler contentHandler = new SaxContentHandler(); - xmlReader.setContentHandler(contentHandler); - xmlReader.setErrorHandler(new SaxErrorHandler()); - - final String xmlDocumentInstanceFilename = "sample.xsl"; - log.info("Start parsing file '" + xmlDocumentInstanceFilename + "'"); - xmlReader.parse(xmlDocumentInstanceFilename); - contentHandler.printStatistics(); - - } -} diff --git a/Sda1/P/xmlstatistics/src/main/java/de/hdm_stuttgart/mi/sda1/xmlstatistics/handler/ElementcountByName.java b/Sda1/P/xmlstatistics/src/main/java/de/hdm_stuttgart/mi/sda1/xmlstatistics/handler/ElementcountByName.java deleted file mode 100644 index 89273bc4a..000000000 --- a/Sda1/P/xmlstatistics/src/main/java/de/hdm_stuttgart/mi/sda1/xmlstatistics/handler/ElementcountByName.java +++ /dev/null @@ -1,48 +0,0 @@ -package de.hdm_stuttgart.mi.sda1.xmlstatistics.handler; - -import java.util.HashMap; -import java.util.Map; - -/** - * - * This container is intended to collect all raw element names belonging to one - * particular namespace along with their corresponding frequencies in a given - * XML document instance. - * - * A valid XHTML document instance will for example contain at least the elements - * html, head and body having a frequency of 1. Other XHTML elements like h1 may have - * arbitrary integer frequencies. - * - * Instances of this class will appear as {@link Map} values in - * {@link SaxContentHandler} corresponding to a given namespace key value. - * - */ -@SuppressWarnings("serial") -public class ElementcountByName extends HashMap<String, Integer> implements Map<String, Integer> { - - /** - * Each time a given element <xyz> appears in the document instance - * its count is being incremented by one. - * - * @param elementName The value "xyz" corresponding to the example above - */ - public void increment (final String elementName) { - final Integer current = get(elementName); - if (null == current) { // Already present in the current map? - put(elementName, 1); // Not yet present, adding a new entry having count 1 - } else { - put(elementName, current + 1); // Increment count of existing entry - } - } - - /** - * Print element names along wit their frequencies to standard output. - */ - public void printStatistics() { - for (final Entry<String, Integer> elementTags: entrySet()) { - final int count = elementTags.getValue(); - System.out.println("<" + elementTags.getKey() + "> (" + count + - (1 == count? " occurrence)":" occurrences)")); - } - } -} \ No newline at end of file diff --git a/Sda1/P/xmlstatistics/src/main/java/de/hdm_stuttgart/mi/sda1/xmlstatistics/handler/SaxContentHandler.java b/Sda1/P/xmlstatistics/src/main/java/de/hdm_stuttgart/mi/sda1/xmlstatistics/handler/SaxContentHandler.java deleted file mode 100644 index ba902a17b..000000000 --- a/Sda1/P/xmlstatistics/src/main/java/de/hdm_stuttgart/mi/sda1/xmlstatistics/handler/SaxContentHandler.java +++ /dev/null @@ -1,153 +0,0 @@ -package de.hdm_stuttgart.mi.sda1.xmlstatistics.handler; - -import java.util.HashMap; -import java.util.Map; -import java.util.Map.Entry; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.xml.sax.Attributes; -import org.xml.sax.ContentHandler; -import org.xml.sax.Locator; -import org.xml.sax.SAXException; - -/** - * Creating statistics on elements and namespaces - * - */ -public class SaxContentHandler implements ContentHandler { - private static final Logger log = LogManager.getLogger(SaxContentHandler.class); - - Locator locator = null; - - @Override - public void setDocumentLocator(Locator locator) { - this.locator = locator; - } - - private Map<String, ElementcountByName> frequenciesByNamespace = - new HashMap<String, ElementcountByName>(); - - /** - * @return Array of namespaces being detected - */ - public String[] getNamespaces() { - return frequenciesByNamespace.keySet().toArray(new String[0]); - } - - @Override - public void startElement(final String uri, final String localName, final String qName, - Attributes attributes) throws SAXException { - log.info(displayWithLocation("Opening '" + qName + "'")); - - ElementcountByName elementsInNamespace = frequenciesByNamespace.get(uri); - if (null == elementsInNamespace) {// Does an entry to the current namespace yet exist? - elementsInNamespace = new ElementcountByName(); // Not yet, so create - frequenciesByNamespace.put(uri, elementsInNamespace); // and add a new entry. - } - elementsInNamespace.increment(localName); - } - - /** - * Printing element names with their respective number of occurrences grouped - * by namespace affiliation to standard output. - * - * Consider the following example XHTML+SVG+MATHML document instance: - * <pre><html xmlns="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg"> - <head> - <title>Sample XHTML with Equations</title> - </head> - <body> - <h1>Sample MathML:</h1> - <math xmlns="http://www.w3.org/1998/Math/MathML"> - <mstyle displaystyle="false" scriptlevel="0"> - <mrow> - <mfrac> - <mrow> - <mi mathcolor="gray">sin</mi> - <mo rspace="verythinmathspace">â¡</mo> - <mi>θ</mi> - </mrow> - <mi>Ï€</mi> - </mfrac> - </mrow> - </mstyle> - </math> - <h1>Sample SVG:</h1> - <svg:svg version="1.1" baseProfile="full" width="300px" height="200px"> - <svg:circle cx="150px" cy="100px" r="50px" fill="#ff0000" - stroke="#000000" stroke-width="5px"/> - </svg:svg> - </body> - </html></pre> - - * The resulting output will be: - * <pre><b>Namespace 'http://www.w3.org/1998/Math/MathML' contains:</b> - <math> (1 occurrence) - <mo> (1 occurrence) - <mrow> (2 occurrences) - <mfrac> (1 occurrence) - <mi> (3 occurrences) - <mstyle> (1 occurrence) - - <b>Namespace 'http://www.w3.org/1999/xhtml' contains:</b> - <body> (1 occurrence) - <title> (1 occurrence) - <html> (1 occurrence) - <h1> (2 occurrences) - <head> (1 occurrence) - - <b>Namespace 'http://www.w3.org/2000/svg' contains:</b> - <svg> (1 occurrence) - <circle> (1 occurrence)</pre> - */ - public void printStatistics () { - for (final Entry<String, ElementcountByName> entry: frequenciesByNamespace.entrySet()) { - System.out.println("Namespace '" + entry.getKey() + "' contains:"); - entry.getValue().printStatistics(); - System.out.println(); - } - } - - String displayWithLocation(final String saxMsg) { - if (null == locator) { - return saxMsg; - } else { - return "File position (" + locator.getLineNumber() + ", " + locator.getColumnNumber() + "): " + saxMsg; - } - } - - // We don't need these ... - @Override - public void startDocument() throws SAXException {} - - @Override - public void endDocument() throws SAXException {} - - @Override - public void startPrefixMapping(String prefix, String uri) - throws SAXException {} - - @Override - public void endPrefixMapping(String prefix) throws SAXException {} - - @Override - public void endElement(String uri, String localName, String qName) - throws SAXException {} - - @Override - public void characters(char[] ch, int start, int length) - throws SAXException {} - - @Override - public void ignorableWhitespace(char[] ch, int start, int length) - throws SAXException {} - - @Override - public void processingInstruction(String target, String data) - throws SAXException {} - - @Override - public void skippedEntity(String name) throws SAXException {} - -} \ No newline at end of file diff --git a/Sda1/P/xmlstatistics/src/main/resources/log4j2.xml b/Sda1/P/xmlstatistics/src/main/resources/log4j2.xml deleted file mode 100644 index 63574fb44..000000000 --- a/Sda1/P/xmlstatistics/src/main/resources/log4j2.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Configuration> - <Appenders> - <File name="A1" fileName="A1.log" append="false"> - <PatternLayout pattern="%t %-5p %c{2} - %m%n"/> - </File> - <Console name="STDOUT" target="SYSTEM_OUT"> - <PatternLayout pattern="%C{2} (%F:%L) - %m%n"/> - </Console> - </Appenders> - <Loggers> - - <!-- You my want to define class or package level per-logger rules --> - <Logger name="de.hdm_stuttgart.mi.sda1.xmlstatistics.App" level="info"> - <AppenderRef ref="A1"/> - </Logger> - <Root level="info"> - <AppenderRef ref="STDOUT"/> - </Root> - </Loggers> -</Configuration> \ No newline at end of file diff --git a/Sda1/P/xmlstatistics/src/test/java/de/hdm_stuttgart/mi/sda1/xmlstatistics/AppTest.java b/Sda1/P/xmlstatistics/src/test/java/de/hdm_stuttgart/mi/sda1/xmlstatistics/AppTest.java deleted file mode 100644 index 9e0c0eaeb..000000000 --- a/Sda1/P/xmlstatistics/src/test/java/de/hdm_stuttgart/mi/sda1/xmlstatistics/AppTest.java +++ /dev/null @@ -1,52 +0,0 @@ -package de.hdm_stuttgart.mi.sda1.xmlstatistics; - -import java.io.IOException; - -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; - -import org.junit.Assert; -import org.junit.Test; -import org.xml.sax.SAXException; -import org.xml.sax.SAXNotRecognizedException; -import org.xml.sax.SAXNotSupportedException; -import org.xml.sax.XMLReader; - -import de.hdm_stuttgart.mi.sda1.saxerrorhandler.handler.SaxErrorHandler; -import de.hdm_stuttgart.mi.sda1.xmlstatistics.handler.SaxContentHandler; - -/** - * Unit test for simple App. - */ -public class AppTest { - /** - * Dummy test method - * @throws SAXException - * @throws ParserConfigurationException - * @throws IOException - */ - @Test - public void testNamespaceSet() throws ParserConfigurationException, SAXException, IOException { - final SAXParserFactory saxPf = SAXParserFactory.newInstance(); - - final SAXParser saxParser = saxPf.newSAXParser(); - final XMLReader xmlReader = saxParser.getXMLReader(); - - xmlReader.setFeature("http://xml.org/sax/features/validation", false); - xmlReader.setFeature("http://xml.org/sax/features/namespaces", true); - xmlReader.setFeature("http://xml.org/sax/features/namespace-prefixes", true); - - final SaxContentHandler contentHandler = new SaxContentHandler(); - xmlReader.setContentHandler(contentHandler); - xmlReader.setErrorHandler(new SaxErrorHandler()); - - final String xmlDocumentInstanceFilename = "sample.xsl"; - xmlReader.parse(xmlDocumentInstanceFilename); - - Assert.assertArrayEquals(new String[]{"http://www.w3.org/1999/xhtml","http://www.w3.org/1999/XSL/Transform"}, - contentHandler.getNamespaces()); - } - - // Further tests not yet written for lazyness ... -} diff --git a/Sda1/xmlmind.conf b/Sda1/xmlmind.conf deleted file mode 100644 index 873333ae0..000000000 --- a/Sda1/xmlmind.conf +++ /dev/null @@ -1,148 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<cfg:configuration -name="DocBook v5+" -xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" -xmlns:xlink="http://www.w3.org/1999/xlink" -xmlns:xi="http://www.w3.org/2001/XInclude" -xmlns:svg="http://www.w3.org/2000/svg" -xmlns:m="http://www.w3.org/1998/Math/MathML" -xmlns:html="http://www.w3.org/1999/xhtml" -xmlns:db="http://docbook.org/ns/docbook" -xmlns:cfg="http://www.xmlmind.com/xmleditor/schema/configuration" -><cfg:parameterGroup -name="DocBook v5+.db5.toEclipseHelp.transformParameters" -><cfg:parameter -name="bibliography.collection" ->file:///ma/goik/workspace/GoikLectures/Doc/bibliography.xml</cfg:parameter -><cfg:parameter -name="generate.toc" ->appendix toc,title -article/appendix nop -article toc,title -book toc,title,figure,table,example,equation -chapter toc,title -part toc,title -preface toc,title -reference toc,title -sect1 toc -sect2 toc -sect3 toc -sect4 toc -sect5 toc -section toc -set toc,title</cfg:parameter -><cfg:parameter -name="graphicsize.use.img.src.path" ->1</cfg:parameter -><cfg:parameter -name="highlight.default.language" ->sql</cfg:parameter -><cfg:parameter -name="highlight.source" ->1</cfg:parameter -><cfg:parameter -name="id.warnings" ->1</cfg:parameter -><cfg:parameter -name="olink.debug" ->1</cfg:parameter -><cfg:parameter -name="ulink.target" ->_blank</cfg:parameter -><cfg:parameter -name="use.id.as.filename" ->1</cfg:parameter -></cfg:parameterGroup -><cfg:parameterGroup -name="DocBook v5+.db5.toHTML.transformParameters" -><cfg:parameter -name="chunk.section.depth" ->3</cfg:parameter -><cfg:parameter -name="generate.toc" ->appendix toc,title -article/appendix nop -article toc,title -book toc,title,figure,table,example,equation -chapter toc,title -part toc,title -preface toc,title -reference toc,title -sect1 toc -sect2 toc -sect3 toc -sect4 toc -sect5 toc -section toc -set toc,title</cfg:parameter -><cfg:parameter -name="graphicsize.use.img.src.path" ->1</cfg:parameter -><cfg:parameter -name="highlight.source" ->1</cfg:parameter -><cfg:parameter -name="id.warnings" ->1</cfg:parameter -><cfg:parameter -name="olink.debug" ->1</cfg:parameter -><cfg:parameter -name="use.extensions" ->1</cfg:parameter -><cfg:parameter -name="use.id.as.filename" ->1</cfg:parameter -></cfg:parameterGroup -><cfg:parameterGroup -name="DocBook v5+.db5.toPS.transformParameters" -><cfg:parameter -name="bibliography.collection" ->file:///ma/goik/workspace/GoikLectures/Doc/bibliography.xml</cfg:parameter -><cfg:parameter -name="callout.unicode" ->1</cfg:parameter -><cfg:parameter -name="insert.xref.page.number" ->1</cfg:parameter -><cfg:parameter -name="qanda.inherit.numeration" ->1</cfg:parameter -><cfg:parameter -name="sidebar.float.type" ->outside</cfg:parameter -><cfg:parameter -name="use.extensions" ->1</cfg:parameter -><cfg:parameter -name="xep.extensions" ->1</cfg:parameter -></cfg:parameterGroup -><cfg:property -name="DocBook v5+.db5.literalTextStyles" ->literal -{http://docbook.org/ns/docbook}literal -- -- -filename -{http://docbook.org/ns/docbook}filename -- -- -tag[starttag] -{http://docbook.org/ns/docbook}tag[@class="starttag"] -tag[element] -{http://docbook.org/ns/docbook}tag[@class="element"] -tag[attribute] -{http://docbook.org/ns/docbook}tag[@class="attribute"] -tag[attvalue] -{http://docbook.org/ns/docbook}tag[@class="attvalue"]</cfg:property -><cfg:property -name="DocBook v5+.db5.toHTML.transform" -url="true" ->xxe-config:docbook5/xsl/xhtml/chunk.xsl</cfg:property -><cfg:property -name="DocBook v5+.db5.toHTML1.transform" -url="true" ->xxe-config:docbook5/xsl/xhtml/docbook.xsl</cfg:property -></cfg:configuration -> diff --git a/Sda2/Makefile b/Sda2/Makefile deleted file mode 100644 index a9b8db8d8..000000000 --- a/Sda2/Makefile +++ /dev/null @@ -1,79 +0,0 @@ -SCRIPTBASENAME=sda2 -PLUGINID=de.hdm_stuttgart.mi.sda2 -WWWBASE=www.mi.hdm-stuttgart.de:/home/infocenter2/doc -M2HOME=/ma/goik/.m2/repository - -PPARAM=\ --p eclipse.plugin.name Sda2 \ --p eclipse.plugin.provider 'Martin Goik, goik@hdm-stuttgart.de' - -HIBDEPS=$(shell cd ../ws/eclipse/HibIntro; mvn dependency:build-classpath |grep -v INFO) -JDBCDEPS=$(shell cd ../ws/eclipse/Jdbc; mvn dependency:build-classpath |grep -v INFO) - -CP:=../ws/Docbook/Dbtools/target/classes:../ws/eclipse/Jdbc/target/classes:../ws/eclipse/HibIntro/target/classes:${HIBDEPS}:${JDBCDEPS} - -BUILDROOT=/tmp -#--no changes below this line------------------------------ -BUILDBASE=$(BUILDROOT)/$(SCRIPTBASENAME) -BUILDNAVI=$(BUILDBASE)/navi/$(PLUGINID) -BUILDNONAVI=$(BUILDBASE)/nonavi/$(PLUGINID) -JAVADOCDESTDIR=${BUILDNAVI}/Ref/api -POMDIRS= $(shell find P -name pom.xml|grep -v target/classes/META-INF|sed -e s/\\/pom.xml//g) - -# -#Rule to build javadoc from pom.xml file -# -%/jdoc : % - mkdir -p ${JAVADOCDESTDIR}/$* - cp -r $* $*_jdoctmp; - cd $*_jdoctmp; mvn javadoc:javadoc; rm -rf ${JAVADOCDESTDIR}/$*/*; mv target/site/apidocs/* ${JAVADOCDESTDIR}/$*; \ - mvn eclipse:myeclipse-clean eclipse:clean clean; \ - rm -rf .settings; \ - zip ${JAVADOCDESTDIR}/$*/eclipse.zip -r * - rm -rf $*_jdoctmp - - -all::${BUILDNAVI}/index.html ${BUILDNAVI}/printversion.pdf - -jdoc: $(foreach pomDir,$(POMDIRS),$(pomDir)/jdoc ) - cd ../ws/eclipse;javadoc \ --classpath ${HIBDEPS}:${JDBCDEPS} -d ${BUILDNAVI}/Ref/api -linksource \ - -link http://docs.oracle.com/javase/8/docs/api/ -link http://testng.org/javadocs/ -link http://docs.oracle.com/javaee/6/api/ \ - -link http://www.jdom.org/docs/apidocs/ -link http://docs.jboss.org/hibernate/orm/4.1/javadocs/ \ - `find Jdbc -name \*.java|grep -v \.metadata` `find HibIntro -name \*.java|grep -v \.metadata` - - -${BUILDNAVI}/index.html ${BUILDNAVI}/printversion.pdf:${SCRIPTBASENAME}.xml ../glossary.xml ../bibliography.xml - rm -rf $(BUILDNAVI)/*/*.html $(BUILDNAVI)/*/*.pdf || true - mkdir -p ${BUILDNAVI} ${BUILDNONAVI} - java -cp ${CP} de.hdm_stuttgart.mi.codeformat.Docbook2docbook ${SCRIPTBASENAME} - saxon9he-xslt -s:${SCRIPTBASENAME}.convert.xml -xi:on -xsl:../ws/Docbook/Extensions/Xsl/docbook2docbook.xsl > ${SCRIPTBASENAME}.convert.answer.xml - /usr/share/xmlmind/bin/xxetool convert -p suppress.navigation 1 -p eclipse.plugin.id $(PLUGINID) ${PPARAM} db5.toEclipseHelp ${SCRIPTBASENAME}.convert.answer.xml \ - -u $(BUILDNONAVI) - mkdir -p Ref/Fig/Generate;rm -f Ref/Fig/Generate/*.tex;\ - ../bin/stripUnicode.sh resources/Generate/*.tex; mv resources/Generate/*.tex Ref/Fig/Generate - cd Ref/Fig;make all - /usr/share/xmlmind/bin/xxetool convert -p eclipse.plugin.id $(PLUGINID) ${PPARAM} db5.toEclipseHelp ${SCRIPTBASENAME}.convert.answer.xml -u $(BUILDNAVI) - perl -i -p -e '$$/=undef;s/\n[ \t]*<!DOCTYPE[^>]+\n[^>]*>$$//m' ${BUILDNAVI}/*.xml ${BUILDNONAVI}/*.xml - saxon9he-xslt -s:${SCRIPTBASENAME}.convert.answer.xml -xsl:../ws/Docbook/Extensions/Xsl/docbook2print.xsl > ${SCRIPTBASENAME}.convert.answer.print.xml - /usr/share/xmlmind/bin/xxetool convert db5.toPSFile ${SCRIPTBASENAME}.convert.answer.print.xml \ - -s pdf -s "|pdf" -u $(BUILDNAVI)/printversion.pdf - rsync `find . -name \*.ogv` $(BUILDNAVI)/resources - tar c --exclude=\.svn Ref|tar -xC ${BUILDNAVI} - -# j2h -d ${BUILDNAVI}/src/classes -js ~/workspace/StructuredData/ws/eclipse/Jdbc/src \ -# -jd /usr/share/doc/openjdk-7-doc/api http://java.sun.com/javase/7/docs/api - -#You may have to start refdbd -i applic.mi.hdm-stuttgart.de -s -e 0 -l 7 -db.docbook.bib.xml:db.docbook.xml - runbib -u refdb -d refdb_mi -t db50x -r -G raw.css -E utf-8 db.docbook.xml - -install::${BUILDNAVI}/index.html - rsync -av --delete -e ssh ${BUILDNAVI} infocenter2@${WWWBASE}/navi - rsync -av --delete -e ssh ${BUILDNONAVI} infocenter2@${WWWBASE}/nonavi - ssh infocenter2@www.mi.hdm-stuttgart.de /usr/share/hdm/indexupdate.pl - -clean:: - rm -rf ${BUILDBASE} ${SCRIPTBASENAME}.convert.xml ${SCRIPTBASENAME}.convert.answer.* resources *~ - cd Ref/Fig;$(MAKE) clean -#end diff --git a/pom.xml b/pom.xml index e7f79499a..86359d3c6 100644 --- a/pom.xml +++ b/pom.xml @@ -12,10 +12,12 @@ <url>http://www.mi.hdm-stuttgart.de/freedocs</url> <modules> - <module>P</module> <module>ws/eclipse/HtmlExtensionTaglet</module> - <module>ws/eclipse/Jdbc</module> <module>ws/Docbook/Dbtools</module> + <module>ws/eclipse/bluej</module> + <module>ws/eclipse/greenfoot</module> + <module>ws/eclipse/Jdbc</module> + <module>P</module> </modules> <build> diff --git a/ws/eclipse/bluej/pom.xml b/ws/eclipse/bluej/pom.xml index 333a67163..ad3b1060e 100644 --- a/ws/eclipse/bluej/pom.xml +++ b/ws/eclipse/bluej/pom.xml @@ -1,139 +1,128 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>de.hdm-stuttgart.mi</groupId> - <artifactId>bluej</artifactId> - <version>3.0.9</version> - <packaging>jar</packaging> - <description>Repackaging Buej as Maven dependency currently requiring minor tweaks due to version and licensing issues</description> - - <name>bluej</name> - - <!--Fixme: Add a sensible project related domain here --> - <url>http://somedomain.org</url> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - </properties> - - <profiles> - <profile> - <!-- Credits to http://stackoverflow.com/questions/3080437/jdk-tools-jar-as-maven-dependency --> - <id>default-profile</id> - <activation> - <activeByDefault>true</activeByDefault> - <file> - <exists>${java.home}/../lib/tools.jar</exists> - </file> - </activation> - <properties> - <toolsjar>${java.home}/../lib/tools.jar</toolsjar> - </properties> - </profile> - <profile> - <id>osx_profile</id> - <activation> - <activeByDefault>false</activeByDefault> - <os> - <family>mac</family> - </os> - </activation> - <properties> - <toolsjar>${java.home}/../Classes/classes.jar</toolsjar> - </properties> - </profile> - - </profiles> - - <dependencies> - - <dependency> - <groupId>com.sun</groupId> - <artifactId>tools</artifactId> - <version>1.8.0</version> - <scope>system</scope> - <systemPath>${toolsjar}</systemPath> - </dependency> - - <dependency> - <groupId>com.yuvimasory</groupId> - <artifactId>orange-extensions</artifactId> - <version>1.3.0</version> - </dependency> - - <dependency> - <groupId>org.netbeans.lib</groupId> - <artifactId>cvsclient</artifactId> - <version>20060125</version> - </dependency> - - <!-- <dependency> <groupId>org.tmatesoft.svnkit</groupId> <artifactId>svnkit</artifactId> - <version>1.7.5</version> </dependency> --> - <dependency> - <groupId>org.tmatesoft</groupId> - <artifactId>svnkit</artifactId> - <version>1.1.2</version> - </dependency> - - <dependency> - <groupId>org.tmatesoft.svnkit</groupId> - <artifactId>svnkit-javahl</artifactId> - <version>1.3.5</version> - </dependency> - - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.8.2</version> - </dependency> - - </dependencies> - - <build> - <plugins> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>3.1</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.10.1</version> - <configuration /> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-shade-plugin</artifactId> - <version>2.3</version> - <configuration> - <transformers> - <transformer - implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> - <manifestEntries> - <Main-Class>de.hdm_stuttgart.mi.bluej.App</Main-Class> - </manifestEntries> - </transformer> - </transformers> - </configuration> - <executions> - <execution> - <phase>package</phase> - <goals> - <goal>shade</goal> - </goals> - </execution> - </executions> - </plugin> - - </plugins> - </build> + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>de.hdm-stuttgart.mi</groupId> + <artifactId>lecturenotes-base-pom</artifactId> + <version>1.0</version> + + <relativePath>../../../pom.xml</relativePath> + </parent> + + <groupId>de.hdm-stuttgart.mi</groupId> + <artifactId>bluej</artifactId> + <version>3.0.9</version> + <packaging>jar</packaging> + <description>Repackaging Buej as Maven dependency currently requiring minor tweaks due to version and licensing issues</description> + + <name>bluej</name> + + <profiles> + + <profile> + <!-- Credits to http://stackoverflow.com/questions/3080437/jdk-tools-jar-as-maven-dependency --> + <id>default-profile</id> + <activation> + <activeByDefault>true</activeByDefault> + <file> + <exists>${java.home}/../lib/tools.jar</exists> + </file> + </activation> + <properties> + <toolsjar>${java.home}/../lib/tools.jar</toolsjar> + </properties> + </profile> + + <profile> + <id>osx_profile</id> + <activation> + <activeByDefault>false</activeByDefault> + <os> + <family>mac</family> + </os> + </activation> + <properties> + <toolsjar>${java.home}/../Classes/classes.jar</toolsjar> + </properties> + </profile> + + </profiles> + + <dependencies> + + <dependency> + <groupId>com.sun</groupId> + <artifactId>tools</artifactId> + <version>1.8.0</version> + <scope>system</scope> + <systemPath>${toolsjar}</systemPath> + </dependency> + + <dependency> + <groupId>com.yuvimasory</groupId> + <artifactId>orange-extensions</artifactId> + <version>1.3.0</version> + </dependency> + + <dependency> + <groupId>org.netbeans.lib</groupId> + <artifactId>cvsclient</artifactId> + <version>20060125</version> + </dependency> + + <!-- <dependency> <groupId>org.tmatesoft.svnkit</groupId> <artifactId>svnkit</artifactId> + <version>1.7.5</version> </dependency> --> + <dependency> + <groupId>org.tmatesoft</groupId> + <artifactId>svnkit</artifactId> + <version>1.1.2</version> + </dependency> + + <dependency> + <groupId>org.tmatesoft.svnkit</groupId> + <artifactId>svnkit-javahl</artifactId> + <version>1.3.5</version> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.8.2</version> + </dependency> + + </dependencies> + + <build> + + <plugins> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + <version>2.3</version> + <configuration> + <transformers> + <transformer + implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> + <manifestEntries> + <Main-Class>de.hdm_stuttgart.mi.bluej.App</Main-Class> + </manifestEntries> + </transformer> + </transformers> + </configuration> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>shade</goal> + </goals> + </execution> + </executions> + </plugin> + + </plugins> + + </build> + </project> diff --git a/ws/eclipse/greenfoot/pom.xml b/ws/eclipse/greenfoot/pom.xml index b950d32e9..bc794f71e 100644 --- a/ws/eclipse/greenfoot/pom.xml +++ b/ws/eclipse/greenfoot/pom.xml @@ -1,100 +1,86 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> - <groupId>de.hdm-stuttgart.mi</groupId> - <artifactId>greenfoot</artifactId> - <version>2.3.0</version> - <packaging>jar</packaging> + <parent> + <groupId>de.hdm-stuttgart.mi</groupId> + <artifactId>lecturenotes-base-pom</artifactId> + <version>1.0</version> - <name>greenfoot</name> + <relativePath>../../../pom.xml</relativePath> + </parent> - <!--Fixme: Add a sensible project related domain here --> - <url>http://somedomain.org</url> + <groupId>de.hdm-stuttgart.mi</groupId> + <artifactId>greenfoot</artifactId> + <version>2.3.0</version> + <packaging>jar</packaging> - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - </properties> + <name>greenfoot</name> - <dependencies> - <dependency> - <groupId>de.hdm-stuttgart.mi</groupId> - <artifactId>bluej</artifactId> - <version>3.0.9</version> - </dependency> + <dependencies> - <dependency> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - <version>1.1.3</version> - </dependency> - <dependency> - <groupId>commons-httpclient</groupId> - <artifactId>commons-httpclient</artifactId> - <version>3.1</version> - </dependency> - <dependency> - <groupId>net.sf.opencsv</groupId> - <artifactId>opencsv</artifactId> - <version>2.3</version> - </dependency> - <dependency> - <groupId>commons-codec</groupId> - <artifactId>commons-codec</artifactId> - <version>1.4</version> - </dependency> - <dependency> - <groupId>com.googlecode.soundlibs</groupId> - <artifactId>jlayer</artifactId> - <version>1.0.1-1</version> - </dependency> + <dependency> + <groupId>de.hdm-stuttgart.mi</groupId> + <artifactId>bluej</artifactId> + <version>3.0.9</version> + </dependency> - </dependencies> + <dependency> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + <version>1.1.3</version> + </dependency> + <dependency> + <groupId>commons-httpclient</groupId> + <artifactId>commons-httpclient</artifactId> + <version>3.1</version> + </dependency> + <dependency> + <groupId>net.sf.opencsv</groupId> + <artifactId>opencsv</artifactId> + <version>2.3</version> + </dependency> + <dependency> + <groupId>commons-codec</groupId> + <artifactId>commons-codec</artifactId> + <version>1.4</version> + </dependency> + <dependency> + <groupId>com.googlecode.soundlibs</groupId> + <artifactId>jlayer</artifactId> + <version>1.0.1-1</version> + </dependency> - <build> - <plugins> + </dependencies> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>3.1</version> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> + <build> + <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.10.1</version> - <configuration /> - </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + <version>2.3</version> + <configuration> + <transformers> + <transformer + implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> + <manifestEntries> + <Main-Class>de.hdm_stuttgart.mi.greenfoot.App</Main-Class> + </manifestEntries> + </transformer> + </transformers> + </configuration> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>shade</goal> + </goals> + </execution> + </executions> + </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-shade-plugin</artifactId> - <version>2.3</version> - <configuration> - <transformers> - <transformer - implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> - <manifestEntries> - <Main-Class>de.hdm_stuttgart.mi.greenfoot.App</Main-Class> - </manifestEntries> - </transformer> - </transformers> - </configuration> - <executions> - <execution> - <phase>package</phase> - <goals> - <goal>shade</goal> - </goals> - </execution> - </executions> - </plugin> + </plugins> - </plugins> - </build> + </build> </project> -- GitLab