package de.uhh.l2g.plugins.util; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.regex.Matcher; import java.util.regex.Pattern; public class SyntaxManager { public static boolean isL2gFile(String fileName){ boolean isL2gFile=false; fileName = replaceIllegalFilenameCharacters(fileName); //pick file container String container = fileName.split("\\.")[fileName.split("\\.").length-1]; String suffix = fileName.split("\\."+container)[0]; String[] parameter = suffix.split("\\_"); // the parameter array length has to be 4, // if not -> this is not l2go upload String l2gDate = parameter[2]+"_"+parameter[3]; if (parameter.length == 4 && isL2gDate(l2gDate)){ isL2gFile=true; } return isL2gFile; } public static String replaceIllegalFilenameCharacters(String input){ return input.replaceAll("[^a-zA-Z0-9\\._-]+", ""); } public static boolean isL2gDate(String input) { boolean isL2gDate = false; // xxxx-xx-xx_xx-xx Pattern p = Pattern.compile("\\d{4}\\-\\d{2}\\-\\d{2}\\_\\d{2}\\-\\d{2}"); Matcher m = p.matcher(input); DateFormat df = new SimpleDateFormat("yyyy-MM-dd_HH-mm"); df.setLenient( false ); if ( input.length() == 16 && m.find() ) { try { Date d1 = df.parse(input); df.format(d1); isL2gDate = true; } catch ( ParseException e ) { System.out.println(e); } } return isL2gDate; } }