2022-05-29 16:19:39 +02:00
package com.hendrikschutter.tlc_post ;
2019-02-21 22:34:35 +01:00
2019-02-21 14:57:47 +01:00
import java.nio.file.Files ;
import java.nio.file.Paths ;
2019-02-21 22:34:35 +01:00
public abstract class ImageFinder
2019-02-21 14:57:47 +01:00
{
2019-02-21 22:34:35 +01:00
static short maxYears = 5 ;
int lengthRootFolder ;
static String rootFolder ;
2019-02-21 14:57:47 +01:00
2019-02-21 22:34:35 +01:00
static int currentYear = 0 ;
2019-02-21 14:57:47 +01:00
2019-02-21 22:34:35 +01:00
static int currentMonth = 0 ;
2022-05-29 16:19:39 +02:00
// 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 String [ ] monthNames = { " 01 " , " 02 " , " 03 " , " 04 " , " 05 " , " 06 " , " 07 " ,
" 08 " , " 09 " , " 10 " , " 11 " , " 12 " } ;
2019-02-21 22:34:35 +01:00
static Boolean [ ] [ ] month = new Boolean [ maxYears ] [ 12 ] ;
static String [ ] years = new String [ maxYears ] ;
2019-02-21 14:57:47 +01:00
public ImageFinder ( String rootFolder )
{
this . rootFolder = rootFolder ;
lengthRootFolder = rootFolder . length ( ) ;
}
2019-02-21 22:34:35 +01:00
String findStartyear ( )
2019-02-21 14:57:47 +01:00
{
boolean next = true ;
2022-05-29 16:19:39 +02:00
int i = 2020 ; // start year
2019-02-21 14:57:47 +01:00
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 ( " " ) ;
}
}
}
2019-02-21 22:34:35 +01:00
protected String convertImageCounter ( int imageCounter )
2019-02-21 14:57:47 +01:00
{
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 " ;
}
}
2019-02-21 22:34:35 +01:00
public abstract String getImagePath ( int imageCounter ) ;
2019-02-21 14:57:47 +01:00
}