BAEL-2312 - Abstract Classes in Java (#5598)

* Initial Commit

* Add files via upload

* Update UppercaseFileReaderUnitTest.java
This commit is contained in:
Alejandro Gervasio
2018-11-04 00:06:46 -03:00
committed by KevinGilmore
parent 0befbceae3
commit c7b7d94409
9 changed files with 174 additions and 0 deletions
@@ -0,0 +1,30 @@
package com.baeldung.abstractclasses.application;
import com.baeldung.abstractclasses.filereaders.BaseFileReader;
import com.baeldung.abstractclasses.filereaders.LowercaseFileReader;
import com.baeldung.abstractclasses.filereaders.StandardFileReader;
import com.baeldung.abstractclasses.filereaders.UppercaseFileReader;
import java.io.IOException;
public class Application {
public static void main(String[] args) throws IOException {
Application application = new Application();
String filePath = application.getFilePathFromResourcesFolder("files/test.txt");
BaseFileReader lowercaseFileReader = new LowercaseFileReader(filePath);
lowercaseFileReader.readFile().forEach(line -> System.out.println(line));
BaseFileReader upperCaseFileReader = new UppercaseFileReader(filePath);
upperCaseFileReader.readFile().forEach(line -> System.out.println(line));
BaseFileReader standardFileReader = new StandardFileReader(filePath);
standardFileReader.readFile().forEach(line -> System.out.println(line));
}
private String getFilePathFromResourcesFolder(String fileName) {
return getClass().getClassLoader().getResource(fileName).getPath().substring(1);
}
}
@@ -0,0 +1,19 @@
package com.baeldung.abstractclasses.filereaders;
import java.io.IOException;
import java.util.List;
public abstract class BaseFileReader {
protected String filePath;
protected BaseFileReader(String filePath) {
this.filePath = filePath;
}
public String getFilePath() {
return filePath;
}
public abstract List<String> readFile() throws IOException;
}
@@ -0,0 +1,21 @@
package com.baeldung.abstractclasses.filereaders;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
import java.util.stream.Collectors;
public class LowercaseFileReader extends BaseFileReader {
public LowercaseFileReader(String filePath) {
super(filePath);
}
@Override
public List<String> readFile() throws IOException {
return Files.lines(Paths.get(filePath))
.map(String::toLowerCase)
.collect(Collectors.toList());
}
}
@@ -0,0 +1,19 @@
package com.baeldung.abstractclasses.filereaders;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
import java.util.stream.Collectors;
public class StandardFileReader extends BaseFileReader {
public StandardFileReader(String filePath) {
super(filePath);
}
@Override
public List<String> readFile() throws IOException {
return Files.lines(Paths.get(filePath)).collect(Collectors.toList());
}
}
@@ -0,0 +1,21 @@
package com.baeldung.abstractclasses.filereaders;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
import java.util.stream.Collectors;
public class UppercaseFileReader extends BaseFileReader {
public UppercaseFileReader(String filePath) {
super(filePath);
}
@Override
public List<String> readFile() throws IOException {
return Files.lines(Paths.get(filePath))
.map(String::toUpperCase)
.collect(Collectors.toList());
}
}
@@ -0,0 +1,10 @@
This is line 1
This is line 2
This is line 3
This is line 4
This is line 5
This is line 6
This is line 7
This is line 8
This is line 9
This is line 10