TLC_Post_Server/src/ImageFinder.java

122 lines
2.7 KiB
Java

import java.nio.file.Files;
import java.nio.file.Paths;
public abstract class ImageFinder
{
static short maxYears = 5;
int lengthRootFolder;
static String rootFolder;
static int currentYear = 0;
static int currentMonth = 0;
static String[] monthNames = { "01_January", "02_February", "03_March", "04_April",
"05_May", "06_June", "07_July", "08_August", "09_September",
"10_October", "11_November", "12_December" };
static Boolean[][] month = new Boolean[maxYears][12];
static String[] years = new String[maxYears];
public ImageFinder(String rootFolder)
{
this.rootFolder = rootFolder;
lengthRootFolder = rootFolder.length();
}
String findStartyear()
{
boolean next = true;
int i = 0; // start year
while (next) {
int currentyear = i;
if (Files.isDirectory(Paths.get(rootFolder + currentyear + "/"))) {
next = false; // When a year folder found
} else {
i = i + 1;
next = true;
}
}
return Integer.toString(i); // return first year folder name
}
public void findYears(int yearCount, String startyear)
{
for (int i = 0; i <= years.length; i++) {
int currentyear = Integer.parseInt(startyear) + (i * 1);
if (Files.isDirectory(Paths.get(rootFolder + currentyear + "/"))) {
// System.out.println("Jahr " + currentyear + " gefunden!");
years[i] = Integer.toString(currentyear);
yearCount = i + 1;
} else {
// System.out.println("Jahr " + currentyear + " nicht gefunden!");
}
}
}
public void findMonths(int yearCount)
{
for (int i = 0; i < years.length; i++) {
// System.out.println(i + " Year-Array: " + years[i]);
if (years[i] != null) {
for (int j = 0; j < monthNames.length; j++) {
if (Files.isDirectory(Paths
.get(rootFolder + years[i] + "/" + monthNames[j] + "/"))) {
month[i][j] = true;
} else {
month[i][j] = false;
}
}
} else {
break;
}
}
}
public void printFoundDirectories()
{
for (int i = 0; i < years.length; i++) {
if (years[i] != null) {
System.out.println("Jahr: " + years[i]);
for (int j = 0; j < 12; j++) {
if (month[i][j]) {
System.out.print(monthNames[j] + ", ");
}
}
System.out.println("");
}
}
}
protected String convertImageCounter(int imageCounter)
{
switch ((int) (Math.log10(imageCounter) + 1)) {
case 1:
return "00000" + Integer.toString(imageCounter);
case 2:
return "0000" + Integer.toString(imageCounter);
case 3:
return "000" + Integer.toString(imageCounter);
case 4:
return "00" + Integer.toString(imageCounter);
case 5:
return "0" + Integer.toString(imageCounter);
case 6:
return Integer.toString(imageCounter);
default:
return "000000";
}
}
public abstract String getImagePath(int imageCounter);
}