From 2090a42d2469a0544d04c12a9d7ea6d87960f00d Mon Sep 17 00:00:00 2001 From: Juanjo Pedraza Date: Thu, 3 Feb 2022 18:59:17 +0100 Subject: [PATCH] inicio --- .classpath | 26 ++++++ .project | 23 +++++ .settings/org.eclipse.core.resources.prefs | 4 + .settings/org.eclipse.jdt.core.prefs | 5 ++ .settings/org.eclipse.m2e.core.prefs | 4 + pom.xml | 25 ++++++ s00.badcoupledsamplefixed.UCLS.png | Bin 0 -> 13841 bytes s00.badcoupledsamplefixed.UCLS.ucls | 79 ++++++++++++++++++ .../s00/badcoupledsamplefixed/App.java | 10 +++ .../CsvFileDataSource.java | 24 ++++++ .../badcoupledsamplefixed/CustomerList.java | 21 +++++ .../App.java | 10 +++ .../CsvFileDataSource.java | 24 ++++++ .../CustomerList.java | 21 +++++ .../DataSource.java | 7 ++ .../badcode/s00/badcoupledsample/AppTest.java | 38 +++++++++ 16 files changed, 321 insertions(+) create mode 100644 .classpath create mode 100644 .project create mode 100644 .settings/org.eclipse.core.resources.prefs create mode 100644 .settings/org.eclipse.jdt.core.prefs create mode 100644 .settings/org.eclipse.m2e.core.prefs create mode 100644 pom.xml create mode 100644 s00.badcoupledsamplefixed.UCLS.png create mode 100644 s00.badcoupledsamplefixed.UCLS.ucls create mode 100644 src/main/java/es/anaya/spring/badcode/s00/badcoupledsamplefixed/App.java create mode 100644 src/main/java/es/anaya/spring/badcode/s00/badcoupledsamplefixed/CsvFileDataSource.java create mode 100644 src/main/java/es/anaya/spring/badcode/s00/badcoupledsamplefixed/CustomerList.java create mode 100644 src/main/java/es/anaya/spring/badcode/s00/badcoupledsamplefixedwithinterfaces/App.java create mode 100644 src/main/java/es/anaya/spring/badcode/s00/badcoupledsamplefixedwithinterfaces/CsvFileDataSource.java create mode 100644 src/main/java/es/anaya/spring/badcode/s00/badcoupledsamplefixedwithinterfaces/CustomerList.java create mode 100644 src/main/java/es/anaya/spring/badcode/s00/badcoupledsamplefixedwithinterfaces/DataSource.java create mode 100644 src/test/java/es/anaya/spring/badcode/s00/badcoupledsample/AppTest.java diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..0a1dadd --- /dev/null +++ b/.classpath @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..767808b --- /dev/null +++ b/.project @@ -0,0 +1,23 @@ + + + s00.badcoupledsamplefixed + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..f9fe345 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/test/java=UTF-8 +encoding/=UTF-8 diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..abec6ca --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,5 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..08c40b2 --- /dev/null +++ b/pom.xml @@ -0,0 +1,25 @@ + + 4.0.0 + + es.anaya.spring.badcode + s00.badcoupledsamplefixed + 0.0.1-SNAPSHOT + jar + + s00.badcoupledsamplefixed + http://maven.apache.org + + + UTF-8 + + + + + junit + junit + 3.8.1 + test + + + diff --git a/s00.badcoupledsamplefixed.UCLS.png b/s00.badcoupledsamplefixed.UCLS.png new file mode 100644 index 0000000000000000000000000000000000000000..5190192071d63be84a46975a5d8f5bd3fb9d0ced GIT binary patch literal 13841 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 KqEJlN>;C{7E;rNw literal 0 HcmV?d00001 diff --git a/s00.badcoupledsamplefixed.UCLS.ucls b/s00.badcoupledsamplefixed.UCLS.ucls new file mode 100644 index 0000000..bd7c9b9 --- /dev/null +++ b/s00.badcoupledsamplefixed.UCLS.ucls @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/es/anaya/spring/badcode/s00/badcoupledsamplefixed/App.java b/src/main/java/es/anaya/spring/badcode/s00/badcoupledsamplefixed/App.java new file mode 100644 index 0000000..4b44abc --- /dev/null +++ b/src/main/java/es/anaya/spring/badcode/s00/badcoupledsamplefixed/App.java @@ -0,0 +1,10 @@ +package es.anaya.spring.badcode.s00.badcoupledsamplefixed; + +public class App { + public static void main(String[] args) { + CsvFileDataSource csvFileDataSource = new CsvFileDataSource("file.csv", ";"); + CustomerList customerList = new CustomerList(csvFileDataSource); + customerList.loadFile("samplefile.csv", ";"); + System.out.println(customerList.showAll()); + } +} diff --git a/src/main/java/es/anaya/spring/badcode/s00/badcoupledsamplefixed/CsvFileDataSource.java b/src/main/java/es/anaya/spring/badcode/s00/badcoupledsamplefixed/CsvFileDataSource.java new file mode 100644 index 0000000..e41cba5 --- /dev/null +++ b/src/main/java/es/anaya/spring/badcode/s00/badcoupledsamplefixed/CsvFileDataSource.java @@ -0,0 +1,24 @@ +package es.anaya.spring.badcode.s00.badcoupledsamplefixed; + +import java.util.ArrayList; + +public class CsvFileDataSource { + private String filename; + private String separator; + + public CsvFileDataSource(String filename, String separator) { + this.filename = filename; + this.separator = separator; + } + + public ArrayList loadData() { + ArrayList lines = new ArrayList(); + + lines.add("Customer1, customer1@sample.com, 234 street"); + lines.add("Customer2, customer2@sample.com, 523 street"); + lines.add("Customer3, customer3@sample.com, 231 street"); + + return lines; + } + +} diff --git a/src/main/java/es/anaya/spring/badcode/s00/badcoupledsamplefixed/CustomerList.java b/src/main/java/es/anaya/spring/badcode/s00/badcoupledsamplefixed/CustomerList.java new file mode 100644 index 0000000..9c2cf6b --- /dev/null +++ b/src/main/java/es/anaya/spring/badcode/s00/badcoupledsamplefixed/CustomerList.java @@ -0,0 +1,21 @@ +package es.anaya.spring.badcode.s00.badcoupledsamplefixed; + +import java.util.ArrayList; + +public class CustomerList { + private CsvFileDataSource csvFileDataSource; + private ArrayList customerData; + + public CustomerList (CsvFileDataSource csvFileDataSource) { + this.customerData = new ArrayList(); + this.csvFileDataSource = csvFileDataSource; + } + + public void loadFile (String filename, String separator) { + customerData = csvFileDataSource.loadData(); + } + + public String showAll () { + return customerData.toString(); + } +} diff --git a/src/main/java/es/anaya/spring/badcode/s00/badcoupledsamplefixedwithinterfaces/App.java b/src/main/java/es/anaya/spring/badcode/s00/badcoupledsamplefixedwithinterfaces/App.java new file mode 100644 index 0000000..0a63560 --- /dev/null +++ b/src/main/java/es/anaya/spring/badcode/s00/badcoupledsamplefixedwithinterfaces/App.java @@ -0,0 +1,10 @@ +package es.anaya.spring.badcode.s00.badcoupledsamplefixedwithinterfaces; + +public class App { + public static void main(String[] args) { + DataSource csvFileDataSource = new CsvFileDataSource("file.csv", ";"); + CustomerList customerList = new CustomerList(csvFileDataSource); + customerList.loadFile("samplefile.csv", ";"); + System.out.println(customerList.showAll()); + } +} diff --git a/src/main/java/es/anaya/spring/badcode/s00/badcoupledsamplefixedwithinterfaces/CsvFileDataSource.java b/src/main/java/es/anaya/spring/badcode/s00/badcoupledsamplefixedwithinterfaces/CsvFileDataSource.java new file mode 100644 index 0000000..dc968ef --- /dev/null +++ b/src/main/java/es/anaya/spring/badcode/s00/badcoupledsamplefixedwithinterfaces/CsvFileDataSource.java @@ -0,0 +1,24 @@ +package es.anaya.spring.badcode.s00.badcoupledsamplefixedwithinterfaces; + +import java.util.ArrayList; + +public class CsvFileDataSource implements DataSource { + private String filename; + private String separator; + + public CsvFileDataSource(String filename, String separator) { + this.filename = filename; + this.separator = separator; + } + + public ArrayList loadData() { + ArrayList lines = new ArrayList(); + + lines.add("Customer1, customer1@sample.com, 234 street"); + lines.add("Customer2, customer2@sample.com, 523 street"); + lines.add("Customer3, customer3@sample.com, 231 street"); + + return lines; + } + +} diff --git a/src/main/java/es/anaya/spring/badcode/s00/badcoupledsamplefixedwithinterfaces/CustomerList.java b/src/main/java/es/anaya/spring/badcode/s00/badcoupledsamplefixedwithinterfaces/CustomerList.java new file mode 100644 index 0000000..c78d3c3 --- /dev/null +++ b/src/main/java/es/anaya/spring/badcode/s00/badcoupledsamplefixedwithinterfaces/CustomerList.java @@ -0,0 +1,21 @@ +package es.anaya.spring.badcode.s00.badcoupledsamplefixedwithinterfaces; + +import java.util.ArrayList; + +public class CustomerList { + private DataSource dataSource; + private ArrayList customerData; + + public CustomerList (DataSource dataSource) { + this.customerData = new ArrayList(); + this.dataSource = dataSource; + } + + public void loadFile (String filename, String separator) { + customerData = dataSource.loadData(); + } + + public String showAll () { + return customerData.toString(); + } +} diff --git a/src/main/java/es/anaya/spring/badcode/s00/badcoupledsamplefixedwithinterfaces/DataSource.java b/src/main/java/es/anaya/spring/badcode/s00/badcoupledsamplefixedwithinterfaces/DataSource.java new file mode 100644 index 0000000..2d6f702 --- /dev/null +++ b/src/main/java/es/anaya/spring/badcode/s00/badcoupledsamplefixedwithinterfaces/DataSource.java @@ -0,0 +1,7 @@ +package es.anaya.spring.badcode.s00.badcoupledsamplefixedwithinterfaces; + +import java.util.ArrayList; + +public interface DataSource { + public ArrayList loadData(); +} diff --git a/src/test/java/es/anaya/spring/badcode/s00/badcoupledsample/AppTest.java b/src/test/java/es/anaya/spring/badcode/s00/badcoupledsample/AppTest.java new file mode 100644 index 0000000..e6b96a2 --- /dev/null +++ b/src/test/java/es/anaya/spring/badcode/s00/badcoupledsample/AppTest.java @@ -0,0 +1,38 @@ +package es.anaya.spring.badcode.s00.badcoupledsample; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** + * Unit test for simple App. + */ +public class AppTest + extends TestCase +{ + /** + * Create the test case + * + * @param testName name of the test case + */ + public AppTest( String testName ) + { + super( testName ); + } + + /** + * @return the suite of tests being tested + */ + public static Test suite() + { + return new TestSuite( AppTest.class ); + } + + /** + * Rigourous Test :-) + */ + public void testApp() + { + assertTrue( true ); + } +}