-
Notifications
You must be signed in to change notification settings - Fork 0
/
App.java
57 lines (49 loc) · 1.98 KB
/
App.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import java.util.stream.Collectors;
import java.util.stream.Stream;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.Path;
import java.util.List;
import Codificadores.Codifica;
public class App {
public static void executaCodificacao(Codifica cod, String frase) {
System.out.println("Nome: " + cod.getNomeAutor());
System.out.println("Matricula: " + cod.getMatriculaAutor());
System.out.println("Frase original: " + frase);
String codificada = cod.codifica(frase);
System.out.println("Frase codificada: " + codificada);
String decodificada = cod.decodifica(codificada);
System.out.println("Frase decodificada: " + decodificada);
System.out.println("----------------------------------");
}
public static void main(String args[]) {
Path filesPath = Paths.get("..", "Codificadores");
System.out.println("Pasta:"+filesPath.getFileName());
List<String> codificadores = null;
try (Stream<Path> walk = Files.walk(filesPath)) {
codificadores = walk
.map(x -> x.getFileName())
.map(x -> x.toString())
.filter(f -> !f.endsWith("Codifica.java"))
.filter(f -> f.endsWith(".java"))
.map(s -> s.toString().substring(0, s.lastIndexOf('.')))
.collect(Collectors.toList());
codificadores.forEach(fn -> System.out.println(fn));
} catch (IOException e) {
e.printStackTrace();
return;
}
String frase = "Amanha e o dia da zebra.";
try {
for (String cod : codificadores) {
Class<?> clazz = Class.forName("Codificadores." + cod);
Object ref = clazz.getConstructor().newInstance();
executaCodificacao((Codifica) ref, frase);
}
} catch (Exception e) {
e.printStackTrace();
return;
}
}
}