diff --git a/.classpath b/.classpath
index 8450742..78eea3f 100644
--- a/.classpath
+++ b/.classpath
@@ -3,17 +3,22 @@
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lib/log4j-1.2.17-source.zip b/lib/Logs/log4j-1.2.17-source.zip
similarity index 100%
rename from lib/log4j-1.2.17-source.zip
rename to lib/Logs/log4j-1.2.17-source.zip
diff --git a/lib/log4j-1.2.17.jar b/lib/Logs/log4j-1.2.17.jar
similarity index 100%
rename from lib/log4j-1.2.17.jar
rename to lib/Logs/log4j-1.2.17.jar
diff --git a/lib/slf4j-api-1.7.5-sources.jar b/lib/Logs/slf4j-api-1.7.5-sources.jar
similarity index 100%
rename from lib/slf4j-api-1.7.5-sources.jar
rename to lib/Logs/slf4j-api-1.7.5-sources.jar
diff --git a/lib/slf4j-api-1.7.5.jar b/lib/Logs/slf4j-api-1.7.5.jar
similarity index 100%
rename from lib/slf4j-api-1.7.5.jar
rename to lib/Logs/slf4j-api-1.7.5.jar
diff --git a/lib/slf4j-log4j12-1.7.5-sources.jar b/lib/Logs/slf4j-log4j12-1.7.5-sources.jar
similarity index 100%
rename from lib/slf4j-log4j12-1.7.5-sources.jar
rename to lib/Logs/slf4j-log4j12-1.7.5-sources.jar
diff --git a/lib/slf4j-log4j12-1.7.5.jar b/lib/Logs/slf4j-log4j12-1.7.5.jar
similarity index 100%
rename from lib/slf4j-log4j12-1.7.5.jar
rename to lib/Logs/slf4j-log4j12-1.7.5.jar
diff --git a/lib/hamcrest-core-1.3-sources.jar b/lib/UnitTesting/hamcrest-core-1.3-sources.jar
similarity index 100%
rename from lib/hamcrest-core-1.3-sources.jar
rename to lib/UnitTesting/hamcrest-core-1.3-sources.jar
diff --git a/lib/hamcrest-core-1.3.jar b/lib/UnitTesting/hamcrest-core-1.3.jar
similarity index 100%
rename from lib/hamcrest-core-1.3.jar
rename to lib/UnitTesting/hamcrest-core-1.3.jar
diff --git a/lib/junit-4.11-sources.jar b/lib/UnitTesting/junit-4.11-sources.jar
similarity index 100%
rename from lib/junit-4.11-sources.jar
rename to lib/UnitTesting/junit-4.11-sources.jar
diff --git a/lib/junit-4.11.jar b/lib/UnitTesting/junit-4.11.jar
similarity index 100%
rename from lib/junit-4.11.jar
rename to lib/UnitTesting/junit-4.11.jar
diff --git a/lib/joda-time-2.3-sources.jar b/lib/joda-time-2.3-sources.jar
deleted file mode 100644
index a2dda2e..0000000
Binary files a/lib/joda-time-2.3-sources.jar and /dev/null differ
diff --git a/lib/joda-time-2.3.jar b/lib/joda-time-2.3.jar
deleted file mode 100644
index 9dce4f9..0000000
Binary files a/lib/joda-time-2.3.jar and /dev/null differ
diff --git a/src/fr/devinsy/util/DataFile.java b/src/fr/devinsy/util/DataFile.java
deleted file mode 100755
index a54949f..0000000
--- a/src/fr/devinsy/util/DataFile.java
+++ /dev/null
@@ -1,256 +0,0 @@
-/**
- * Copyright (C) 2008-2010, 2013-2014 Christian Pierre MOMON
- *
- * This file is part of Devinsy-utils.
- *
- * Devinsy-utils is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Devinsy-utils is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Devinsy-utils. If not, see
- */
-package fr.devinsy.util;
-
-/**
- * This class defines a content file.
- *
- * @author Christian Pierre MOMON (christian.momon@devinsy.fr)
- */
-public class DataFile
-{
- public static int NOID = 0;
- public static int DEFAULT_SIZE = 0;
-
- //
- protected int id;
- protected int contentId;
- protected String name;
- protected long size;
- protected byte[] data;
- protected String creationDate;
- protected String creationUser;
-
- /**
- *
- */
- public DataFile()
- {
- this.id = NOID;
- this.contentId = NOID;
- this.name = null;
- this.size = this.DEFAULT_SIZE;
- this.data = null;
- this.creationDate = null;
- this.creationUser = null;
- }
-
- /**
- *
- */
- public DataFile(final int contentId, final String name, final long size, final byte[] data)
- {
- this.id = NOID;
- this.contentId = contentId;
- this.name = name;
- this.size = size;
- this.data = data;
- this.creationDate = null;
- this.creationUser = null;
- }
-
- /**
- *
- */
- public DataFile(final String name, final long size, final byte[] data)
- {
- this.id = NOID;
- this.contentId = NOID;
- this.name = name;
- this.size = size;
- this.data = data;
- this.creationDate = null;
- this.creationUser = null;
- }
-
- /**
- *
- */
- public int contentId()
- {
- int result;
-
- result = this.contentId;
-
- //
- return (result);
- }
-
- /**
- *
- */
- public String creationDate()
- {
- String result;
-
- result = this.creationDate;
-
- //
- return (result);
- }
-
- /**
- *
- */
- public String creationUser()
- {
- String result;
-
- result = this.creationUser;
-
- //
- return (result);
- }
-
- /**
- *
- */
- public byte[] data()
- {
- byte[] result;
-
- result = this.data;
-
- //
- return (result);
- }
-
- /**
- *
- */
- public int id()
- {
- int result;
-
- result = this.id;
-
- //
- return (result);
- }
-
- /**
- *
- */
- public String name()
- {
- String result;
-
- result = this.name;
-
- //
- return (result);
- }
-
- /**
- *
- */
- public void setContentId(final int contentId)
- {
- this.contentId = contentId;
- }
-
- /**
- *
- */
- public void setCreationDate(final String creationDate)
- {
- if (creationDate == null)
- {
- this.creationDate = "";
- }
- else
- {
- this.creationDate = creationDate;
- }
- }
-
- /**
- *
- */
- public void setCreationUser(final String creationUser)
- {
- if (creationUser == null)
- {
- this.creationUser = "";
- }
- else
- {
- this.creationUser = creationUser;
- }
- }
-
- /**
- *
- */
- public void setData(final byte[] data)
- {
- this.data = data;
- }
-
- /**
- *
- */
- public void setId(final int id)
- {
- this.id = id;
- }
-
- /**
- *
- */
- public void setName(final String name)
- {
- if (name == null)
- {
- this.name = "";
- }
- else
- {
- this.name = name;
- }
- }
-
- /**
- *
- */
- public void setSize(final long size)
- {
- if (size >= 0)
- {
- this.size = size;
- }
- else
- {
- this.size = 0;
- }
- }
-
- /**
- *
- */
- public long size()
- {
- long result;
-
- result = this.size;
-
- //
- return (result);
- }
-}
diff --git a/src/fr/devinsy/util/DataFiles.java b/src/fr/devinsy/util/DataFiles.java
deleted file mode 100755
index e204708..0000000
--- a/src/fr/devinsy/util/DataFiles.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/**
- * Copyright (C) 2008-2010, 2013-2014 Christian Pierre MOMON
- *
- * This file is part of Devinsy-utils.
- *
- * Devinsy-utils is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Devinsy-utils is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Devinsy-utils. If not, see
- */
-package fr.devinsy.util;
-
-import java.util.ArrayList;
-
-/**
- * This class is a collection of DataFile objects whit some specific methods.
- *
- * @author Christian Pierre MOMON
- */
-public class DataFiles extends ArrayList
-{
- private static final long serialVersionUID = -4584622422555785456L;
-
- /**
- *
- *
- */
- public DataFiles()
- {
- super();
- }
-
- /**
- *
- * @param source
- */
- public DataFiles(final DataFiles source)
- {
- super(source);
- }
-
- /**
- *
- */
- public DataFiles getByContentId(final int id)
- {
- DataFiles result = new DataFiles();
-
- for (int nDataFile = 0; nDataFile < this.size(); nDataFile++)
- {
- DataFile contentFile = this.getByIndex(nDataFile);
-
- if (contentFile.contentId() == id)
- {
- result.add(contentFile);
- }
- }
-
- //
- return (result);
- }
-
- /**
- *
- */
- public DataFile getById(final int id)
- {
- DataFile result = null;
-
- boolean ended = false;
- int nDataFile = 0;
- while (!ended)
- {
- if (nDataFile >= this.size())
- {
- ended = true;
- result = null;
- }
- else
- {
- DataFile contentFile = this.getByIndex(nDataFile);
-
- if (id == contentFile.id())
- {
- ended = true;
- result = contentFile;
- }
- else
- {
- nDataFile += 1;
- }
- }
- }
-
- //
- return (result);
- }
-
- /**
- *
- */
- public DataFile getByIndex(final int index)
- {
- DataFile result;
-
- result = super.get(index);
-
- //
- return (result);
- }
-
- /**
- *
- */
- public DataFile getByName(final String name)
- {
- DataFile result = null;
-
- if ((name == null) || (name.equals("")))
- {
- result = null;
- }
- else
- {
- boolean ended = false;
- int dataFileIndex = 0;
- while (!ended)
- {
- if (dataFileIndex >= this.size())
- {
- ended = true;
- result = null;
- }
- else
- {
- DataFile contentFile = this.getByIndex(dataFileIndex);
-
- if (name.equals(contentFile.name()))
- {
- ended = true;
- result = contentFile;
- }
- else
- {
- dataFileIndex += 1;
- }
- }
- }
- }
-
- //
- return (result);
- }
-
- /**
- *
- */
- @Override
- public String toString()
- {
- StringBuffer result = new StringBuffer();
-
- for (int nDataFile = 0; nDataFile < this.size(); nDataFile++)
- {
- DataFile contentFile = this.getByIndex(nDataFile);
- result.append("== " + contentFile.name() + "\n");
- result.append("contentFile " + nDataFile + " - " + contentFile.name() + "\n");
- }
-
- //
- return (result.toString());
- }
-}
diff --git a/src/fr/devinsy/util/DateHelper.java b/src/fr/devinsy/util/DateHelper.java
deleted file mode 100755
index 3caea96..0000000
--- a/src/fr/devinsy/util/DateHelper.java
+++ /dev/null
@@ -1,370 +0,0 @@
-/**
- * Copyright (C) 2010, 2013-2014 Christian Pierre MOMON
- *
- * This file is part of Devinsy-utils.
- *
- * Devinsy-utils is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Devinsy-utils is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Devinsy-utils. If not, see
- */
-package fr.devinsy.util;
-
-import java.util.Calendar;
-import java.util.GregorianCalendar;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * This class groups function to help in Calendar manipulation.
- *
- * SimpleDateFormat is not used cause does not thread safe?
- */
-public class DateHelper
-{
- // static private final Logger logger =
- // LoggerFactory.getLogger(DateHelper.class);
-
- private static final String EUROPEAN_DATE_FORMAT = "%02d/%02d/%04d";
- private static final String SHORT_EUROPEAN_DATE_FORMAT = "%02d/%02d";
- private static final String RAW_DATE_FORMAT = "%04d%02d%02d";
- private static final String ISO_DATE_FORMAT = "%04d-%02d-%02d";
- private static final String AMERICAN_DATE_FORMAT = "%02d/%02d/%04d";
-
- private static final String EUROPEAN_DATE_PATTERN = "^([0123]{0,1}\\d)/([01]{0,1}\\d)/(\\d\\d\\d\\d)$";
- private static final String RAW_DATE_PATTERN = "^(\\d\\d\\d\\d)([01]\\d)([0123]\\d)$";
- private static final String ISO_DATE_PATTERN = "^(\\d\\d\\d\\d)-([01]\\d)-([0123]\\d)$";
- private static final String AMERICAN_DATE_PATTERN = "^([01]{0,1}\\d)/([0123]{0,1}\\d)/(\\d\\d\\d\\d)$";
-
- /**
- *
- */
- public static String americanFormat(final Calendar time)
- {
- String result;
-
- if (time == null)
- {
- result = "";
- }
- else
- {
- result = String.format(AMERICAN_DATE_FORMAT, time.get(Calendar.MONTH) + 1, time.get(Calendar.DAY_OF_MONTH), time.get(Calendar.DAY_OF_MONTH));
- }
-
- //
- return (result);
- }
-
- /**
- *
- */
- public static String europeanFormat(final Calendar time)
- {
- String result;
-
- if (time == null)
- {
- result = "";
- }
- else
- {
- result = String.format(EUROPEAN_DATE_FORMAT, time.get(Calendar.DAY_OF_MONTH), time.get(Calendar.MONTH) + 1, time.get(Calendar.YEAR));
- }
-
- //
- return (result);
- }
-
- /**
- *
- */
- public static boolean isAmericanFormat(final String date)
- {
- boolean result;
-
- if (date == null)
- {
- result = false;
- }
- else
- {
- result = date.matches(AMERICAN_DATE_PATTERN);
- }
-
- //
- return (result);
- }
-
- /**
- *
- */
- public static boolean isEuropeanFormat(final String date)
- {
- boolean result;
-
- if (date == null)
- {
- result = false;
- }
- else
- {
- result = date.matches(EUROPEAN_DATE_PATTERN);
- }
-
- //
- return (result);
- }
-
- /**
- *
- */
- public static boolean isISOFormat(final String date)
- {
- boolean result;
-
- if (date == null)
- {
- result = false;
- }
- else
- {
- result = date.matches(ISO_DATE_PATTERN);
- }
-
- //
- return (result);
- }
-
- /**
- *
- */
- public static String ISOFormat(final Calendar time)
- {
- String result;
-
- if (time == null)
- {
- result = "";
- }
- else
- {
- result = String.format(ISO_DATE_FORMAT, time.get(Calendar.YEAR), time.get(Calendar.MONTH) + 1, time.get(Calendar.DAY_OF_MONTH));
- }
-
- //
- return (result);
- }
-
- /**
- *
- */
- public static boolean isRawFormat(final String date)
- {
- boolean result;
-
- if (date == null)
- {
- result = false;
- }
- else
- {
- result = date.matches(RAW_DATE_PATTERN);
- }
-
- //
- return (result);
- }
-
- /**
- *
- */
- public static boolean isValidDate(final String date)
- {
- boolean result;
-
- if ((isEuropeanFormat(date)) || (isRawFormat(date)) || (isISOFormat(date)) || (isAmericanFormat(date)))
- {
- result = true;
- }
- else
- {
- result = false;
- }
-
- //
- return (result);
- }
-
- /**
- *
- */
- public static Calendar parseAmericanDate(final String date)
- {
- Calendar result;
-
- Pattern pattern = Pattern.compile(AMERICAN_DATE_PATTERN);
- Matcher matcher = pattern.matcher(date);
-
- if ((matcher.find()) && (matcher.groupCount() == 3))
- {
- result = new GregorianCalendar(Integer.parseInt(matcher.group(3)), Integer.parseInt(matcher.group(1)) - 1, Integer.parseInt(matcher.group(2)));
- }
- else
- {
- result = null;
- }
-
- //
- return (result);
- }
-
- /**
- * Note: European parsing test made before the American parsing one.
- */
- public static Calendar parseDate(final String date)
- {
- Calendar result;
-
- if (isEuropeanFormat(date))
- {
- result = parseEuropeanDate(date);
- }
- else if (isRawFormat(date))
- {
- result = parseRawDate(date);
- }
- else if (isISOFormat(date))
- {
- result = parseISODate(date);
- }
- else if (isAmericanFormat(date))
- {
- result = parseAmericanDate(date);
- }
- else
- {
- result = null;
- }
-
- //
- return (result);
- }
-
- /**
- *
- */
- public static Calendar parseEuropeanDate(final String date)
- {
- Calendar result;
-
- Pattern pattern = Pattern.compile(EUROPEAN_DATE_PATTERN);
- Matcher matcher = pattern.matcher(date);
-
- if ((matcher.find()) && (matcher.groupCount() == 3))
- {
- result = new GregorianCalendar(Integer.parseInt(matcher.group(3)), Integer.parseInt(matcher.group(2)) - 1, Integer.parseInt(matcher.group(1)));
- }
- else
- {
- result = null;
- }
-
- //
- return (result);
- }
-
- /**
- *
- */
- public static Calendar parseISODate(final String date)
- {
- Calendar result;
-
- Pattern pattern = Pattern.compile(ISO_DATE_PATTERN);
- Matcher matcher = pattern.matcher(date);
-
- if ((matcher.find()) && (matcher.groupCount() == 3))
- {
- result = new GregorianCalendar(Integer.parseInt(matcher.group(1)), Integer.parseInt(matcher.group(2)) - 1, Integer.parseInt(matcher.group(3)));
- }
- else
- {
- result = null;
- }
-
- //
- return (result);
- }
-
- /**
- *
- */
- public static Calendar parseRawDate(final String date)
- {
- Calendar result;
-
- Pattern pattern = Pattern.compile(RAW_DATE_PATTERN);
- Matcher matcher = pattern.matcher(date);
-
- if ((matcher.find()) && (matcher.groupCount() == 3))
- {
- result = new GregorianCalendar(Integer.parseInt(matcher.group(1)), Integer.parseInt(matcher.group(2)) - 1, Integer.parseInt(matcher.group(3)));
- }
- else
- {
- result = null;
- }
-
- //
- return (result);
- }
-
- /**
- *
- */
- public static String rawFormat(final Calendar time)
- {
- String result;
-
- if (time == null)
- {
- result = "";
- }
- else
- {
- result = String.format(RAW_DATE_FORMAT, time.get(Calendar.YEAR), time.get(Calendar.MONTH), time.get(Calendar.DAY_OF_MONTH) + 1);
- }
-
- //
- return (result);
- }
-
- /**
- *
- */
- public static String shortEuropeanFormat(final Calendar time)
- {
- String result;
-
- if (time == null)
- {
- result = "";
- }
- else
- {
- result = String.format(SHORT_EUROPEAN_DATE_FORMAT, time.get(Calendar.DAY_OF_MONTH), time.get(Calendar.MONTH) + 1);
- }
-
- //
- return (result);
- }
-}
diff --git a/src/fr/devinsy/util/DateTimeHelper.java b/src/fr/devinsy/util/DateTimeHelper.java
deleted file mode 100755
index bcd4aca..0000000
--- a/src/fr/devinsy/util/DateTimeHelper.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/**
- * Copyright (C) 2010, 2013-2014 Christian Pierre MOMON
- *
- * This file is part of Devinsy-utils.
- *
- * Devinsy-utils is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Devinsy-utils is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Devinsy-utils. If not, see
- */
-package fr.devinsy.util;
-
-import java.util.Calendar;
-
-/**
- * This class groups function to help in Calendar manipulation.
- */
-public class DateTimeHelper
-{
- // static private final Logger logger =
- // LoggerFactory.getLogger(DateTimeHelper.class);
-
- private static final String EUROPEAN_DATE_FORMAT = "%02d/%02d/%04d %02d:%02d:%02d";
- private static final String RAW_DATE_FORMAT = "%04d%02d%02d %02d:%02d:%02d";
- private static final String ISO_DATE_FORMAT = "%04d-%02d-%02d %02d:%02d:%02d";
- private static final String AMERICAN_DATE_FORMAT = "%02d/%02d/%04d %02d:%02d:%02d";
-
- private static final String EUROPEAN_DATE_PATTERN = "^([0123]{0,1}\\d)/([01]{0,1}\\d)/(\\d\\d\\d\\d)$";
- private static final String RAW_DATE_PATTERN = "^(\\d\\d\\d\\d)([01]\\d)([0123]\\d)$";
- private static final String ISO_DATE_PATTERN = "^(\\d\\d\\d\\d)-([01]\\d)-([0123]\\d)$";
- private static final String AMERICAN_DATE_PATTERN = "^([01]{0,1}\\d)/([0123]{0,1}\\d)/(\\d\\d\\d\\d)$";
-
- /**
- *
- */
- public static String americanFormat(final Calendar time)
- {
- String result;
-
- if (time == null)
- {
- result = "";
- }
- else
- {
- result = String.format(AMERICAN_DATE_FORMAT, time.get(Calendar.MONTH) + 1, time.get(Calendar.DAY_OF_MONTH), time.get(Calendar.YEAR), time.get(Calendar.HOUR_OF_DAY),
- time.get(Calendar.MINUTE), time.get(Calendar.SECOND));
- }
-
- //
- return (result);
- }
-
- /**
- *
- */
- public static String europeanFormat(final Calendar time)
- {
- String result;
-
- if (time == null)
- {
- result = "";
- }
- else
- {
- result = String.format(EUROPEAN_DATE_FORMAT, time.get(Calendar.DAY_OF_MONTH), time.get(Calendar.MONTH) + 1, time.get(Calendar.YEAR), time.get(Calendar.HOUR_OF_DAY),
- time.get(Calendar.MINUTE), time.get(Calendar.SECOND));
- }
-
- //
- return (result);
- }
-
- /**
- *
- */
- public static String ISOFormat(final Calendar time)
- {
- String result;
-
- if (time == null)
- {
- result = "";
- }
- else
- {
- result = String.format(ISO_DATE_FORMAT, time.get(Calendar.YEAR), time.get(Calendar.MONTH) + 1, time.get(Calendar.DAY_OF_MONTH), time.get(Calendar.HOUR_OF_DAY), time.get(Calendar.MINUTE),
- time.get(Calendar.SECOND));
- }
-
- //
- return (result);
- }
-
- /**
- *
- */
- public static String rawFormat(final Calendar time)
- {
- String result;
-
- if (time == null)
- {
- result = "";
- }
- else
- {
- result = String.format(RAW_DATE_FORMAT, time.get(Calendar.YEAR), time.get(Calendar.MONTH) + 1, time.get(Calendar.DAY_OF_MONTH), time.get(Calendar.HOUR_OF_DAY), time.get(Calendar.MINUTE),
- time.get(Calendar.SECOND));
- }
-
- //
- return (result);
- }
-}
diff --git a/src/fr/devinsy/util/Digester.java b/src/fr/devinsy/util/Digester.java
deleted file mode 100644
index 731f9db..0000000
--- a/src/fr/devinsy/util/Digester.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/**
- * Copyright (C) 2006, 2010, 2013-2014 Christian Pierre MOMON
- *
- * This file is part of Devinsy-utils.
- *
- * Devinsy-utils is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Devinsy-utils is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Devinsy-utils. If not, see
- */
-package fr.devinsy.util;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.security.MessageDigest;
-
-/**
- * This class is a helper to use MessageDigester class.
- *
- * @deprecated because of DigestUtils from apache-commons-codec is doing the
- * same but better.
- */
-@Deprecated
-public class Digester
-{
- /**
- * "SHA-1", "MD5", "SHA-256", and "SHA-512"
- */
- public static String computeHash(final String digestMethod, final File file) throws Exception
- {
- String result;
-
- if ((file == null) || (!file.exists()))
- {
- result = null;
- }
- else
- {
- // byte[] hash = null;
-
- InputStream source = null;
- try
- {
- MessageDigest digester = MessageDigest.getInstance(digestMethod);
- source = new FileInputStream(file);
- boolean ended = false;
- int bytesNumber;
- byte[] buffer = new byte[100 * 1024];
- while (!ended)
- {
- bytesNumber = source.read(buffer);
- if (bytesNumber == -1)
- {
- ended = true;
- }
- else
- {
- digester.update(buffer, 0, bytesNumber);
- }
- }
-
- byte[] digest = digester.digest();
-
- result = humanReadableDigest(digest);
- }
- catch (java.security.NoSuchAlgorithmException exception)
- {
- throw new Exception("Digest method unknown.", exception);
- }
- catch (java.io.FileNotFoundException exception)
- {
- throw new Exception("File not found (" + exception.getMessage() + ")", exception);
- }
- catch (java.io.IOException exception)
- {
- throw new Exception("Error reading file.", exception);
- }
- finally
- {
- if (source != null)
- {
- source.close();
- }
- }
- }
-
- //
- return (result);
- }
-
- /**
- *
- */
- public static String humanReadableDigest(final byte[] digest)
- {
- String result;
-
- StringBuffer hashString = new StringBuffer();
-
- for (int letterIndex = 0; letterIndex < digest.length; ++letterIndex)
- {
- String hex = Integer.toHexString(digest[letterIndex]);
- if (hex.length() == 1)
- {
- hashString.append('0');
- hashString.append(hex.charAt(hex.length() - 1));
- }
- else
- {
- hashString.append(hex.substring(hex.length() - 2));
- }
- }
-
- result = hashString.toString();
-
- //
- return (result);
- }
-}
diff --git a/src/fr/devinsy/util/FileCopier.java b/src/fr/devinsy/util/FileCopier.java
deleted file mode 100644
index 3c99aaf..0000000
--- a/src/fr/devinsy/util/FileCopier.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/**
- * Copyright (C) 2010, 2013-2014 Christian Pierre MOMON
- *
- * This file is part of Devinsy-utils.
- *
- * Devinsy-utils is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Devinsy-utils is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Devinsy-utils. If not, see
- */
-package fr.devinsy.util;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-
-/**
- * Never used again. Prefer org.apache.commons.io.FileUtils class.
- */
-public class FileCopier
-{
- public static final int BUFFER_SIZE = 4 * 1024;
-
- /**
- *
- */
- public static void copy(final File source, final File target) throws Exception
- {
- if ((source == null) || (target == null))
- {
- throw new Exception("Null parameter.");
- }
- else
- {
- FileInputStream in = new FileInputStream(source);
- FileOutputStream out = new FileOutputStream(target);
- try
- {
- byte[] buffer = new byte[BUFFER_SIZE];
- boolean ended = false;
- while (!ended)
- {
- int size = in.read(buffer);
- if (size == -1)
- {
- ended = false;
- }
- else
- {
- out.write(buffer, 0, size);
- }
- }
- }
- finally
- {
- if (in != null)
- {
- in.close();
- }
-
- if (out != null)
- {
- out.close();
- }
- }
- }
- }
-}
diff --git a/src/fr/devinsy/util/FileIterator.java b/src/fr/devinsy/util/FileIterator.java
deleted file mode 100644
index e5e7170..0000000
--- a/src/fr/devinsy/util/FileIterator.java
+++ /dev/null
@@ -1,452 +0,0 @@
-/**
- * Copyright (C) 2010, 2013-2014 Christian Pierre MOMON
- *
- * This file is part of Devinsy-utils.
- *
- * Devinsy-utils is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Devinsy-utils is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Devinsy-utils. If not, see
- */
-package fr.devinsy.util;
-
-import java.io.File;
-import java.util.Iterator;
-import java.util.Vector;
-import java.util.regex.Pattern;
-
-/**
- *
- */
-public class FileIterator extends Vector implements Iterator
-{
- private static final long serialVersionUID = 8790133455427427766L;
-
- protected int currentDepth;
- protected Pattern pattern;
- protected File previous;
- protected boolean followLinks;
-
- /**
- *
- */
- public FileIterator(final File root)
- {
- super();
-
- String[] pathnames;
- if (root == null)
- {
- pathnames = null;
- }
- else
- {
- pathnames = new String[1];
- pathnames[0] = root.getPath();
- }
-
- init(pathnames, null, false);
- }
-
- /**
- *
- */
- public FileIterator(final File root, final String filter, final boolean followLinks)
- {
- super();
-
- String[] pathnames;
- if (root == null)
- {
- pathnames = null;
- }
- else
- {
- pathnames = new String[1];
- pathnames[0] = root.getPath();
- }
-
- init(pathnames, filter, followLinks);
- }
-
- /**
- *
- */
- public FileIterator(final String pathname, final String filter, final boolean followLinks)
- {
- super();
-
- String[] pathnames;
- if (pathname == null)
- {
- pathnames = null;
- }
- else
- {
- pathnames = new String[1];
- pathnames[0] = pathname;
- }
-
- init(pathnames, filter, followLinks);
- }
-
- /**
- *
- */
- public FileIterator(final String[] pathnames, final String filter, final boolean followLinks)
- {
- super();
-
- init(pathnames, filter, followLinks);
- }
-
- /**
- *
- */
- public File currentFile()
- {
- File result;
-
- result = this.currentState().currentFile();
-
- //
- return (result);
- }
-
- /**
- *
- */
- protected FileIteratorState currentState()
- {
- FileIteratorState result;
-
- result = this.get(this.currentDepth);
-
- //
- return (result);
- }
-
- /**
- *
- */
- public int directoryFinalCountdown()
- {
- int result;
-
- result = 0;
- while (this.hasNext())
- {
- if (this.next().isDirectory())
- {
- result += 1;
- }
- }
-
- //
- return (result);
- }
-
- /**
- *
- */
- public int fileFinalCountdown()
- {
- int result;
-
- result = 0;
- while (this.hasNext())
- {
- if (!this.next().isDirectory())
- {
- result += 1;
- }
- }
-
- //
- return (result);
- }
-
- /**
- *
- */
- protected String filter()
- {
- String result;
-
- if (this.pattern == null)
- {
- result = ".*";
- }
- else
- {
- result = this.pattern.toString();
- }
-
- //
- return (result);
- }
-
- /**
- *
- */
- public int finalCountdown()
- {
- int result;
-
- result = 0;
- while (this.next() != null)
- {
- result += 1;
- }
-
- //
- return (result);
- }
-
- /**
- *
- */
- public boolean follow(final File file)
- {
- boolean result;
-
- result = false;
- try
- {
- if ((this.followLinks) || (!isLink(file)))
- {
- result = true;
- }
- else
- {
- result = false;
- }
-
- // System.out.println("FOLLOWWWWW=[" + file.getPath() + "][" +
- // this.followLinks + "][" + isLink(file) + "][" + result + "]");
- }
- catch (Exception exception)
- {
- System.err.println("ERROR with file [" + this.next() + "]: " + exception.getMessage());
- result = false;
- }
-
- //
- return (result);
- }
-
- /**
- *
- */
- @Override
- public boolean hasNext()
- {
- boolean result;
-
- result = this.currentState().hasNext();
-
- //
- return (result);
- }
-
- /**
- *
- */
- protected void init(final String[] pathnames, final String filter, final boolean followLinks)
- {
- setFilter(filter);
- this.followLinks = followLinks;
- this.previous = null;
-
- this.currentDepth = 0;
- this.add(new FileIteratorState(pathnames));
-
- shift();
- }
-
- /**
- *
- */
- @Override
- public File next()
- {
- File result;
-
- result = this.currentState().next();
- this.previous = result;
- if (result != null)
- {
- if (result.isDirectory())
- {
- this.push(result);
- }
- }
-
- shift();
-
- //
- return (result);
- }
-
- /**
- *
- */
- public Pattern pattern()
- {
- Pattern result;
-
- result = this.pattern;
-
- //
- return (result);
- }
-
- /**
- *
- */
- public void pop()
- {
- this.removeElementAt(this.currentDepth);
- this.currentDepth -= 1;
- }
-
- /**
- *
- */
- public void push(final File file)
- {
- if ((file != null) && (file.isDirectory()))
- {
- this.add(new FileIteratorState(file.listFiles()));
- this.currentDepth += 1;
- }
- }
-
- /**
- *
- */
- @Override
- public void remove()
- {
- if (this.previous != null)
- {
- this.previous.delete();
- this.previous = null;
- }
- }
-
- /**
- *
- */
- public void reset()
- {
- this.currentDepth = 0;
- this.previous = null;
- if (this.size() > 0)
- {
- this.get(0).reset();
- FileIteratorState firstState = this.get(0);
- this.removeAllElements();
- this.add(firstState);
- }
-
- shift();
- }
-
- /**
- *
- */
- protected void setFilter(final String filter)
- {
- if (filter == null)
- {
- this.pattern = null;
- }
- else
- {
- this.pattern = Pattern.compile(filter);
- }
- }
-
- /**
- * Set indexes to the good next item.
- */
- public void shift()
- {
- boolean ended = false;
- while (!ended)
- {
- File next = this.currentFile();
-
- if (next == null)
- {
- if (this.currentDepth == 0)
- {
- ended = true;
- }
- else
- {
- this.pop();
- }
- }
- else
- {
- if (((this.pattern == null) || (this.pattern.matcher(next.getPath()).matches())) && (follow(next)))
- {
- ended = true;
- }
- else
- {
- this.currentState().next();
-
- if (next.isDirectory() && (follow(next)))
- {
- this.push(next);
- }
- }
- }
- }
- }
-
- /**
- *
- */
- @Override
- public String toString()
- {
- String result;
-
- result = "[depth=" + this.currentDepth + "][index=" + this.get(this.currentDepth).currentIndex() + "/" + this.get(this.currentDepth).files.length + "]";
-
- //
- return (result);
- }
-
- /**
- *
- */
- public static boolean isLink(final File file) throws Exception
- {
- boolean result;
-
- if ((file.exists()) && (file.getCanonicalPath().equals(file.getAbsolutePath())))
- {
- result = false;
- }
- else
- {
- result = true;
- }
-
- //
- return (result);
- }
-}
diff --git a/src/fr/devinsy/util/FileIteratorState.java b/src/fr/devinsy/util/FileIteratorState.java
deleted file mode 100644
index 7a48705..0000000
--- a/src/fr/devinsy/util/FileIteratorState.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/**
- * Copyright (C) 2010, 2013-2014 Christian Pierre MOMON
- *
- * This file is part of Devinsy-utils.
- *
- * Devinsy-utils is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Devinsy-utils is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Devinsy-utils. If not, see
- */
-package fr.devinsy.util;
-
-import java.io.File;
-import java.util.Iterator;
-
-/**
- * Used by FileIterator class.
- */
-public class FileIteratorState implements Iterator
-{
- protected File[] files;
- protected int currentIndex;
-
- /**
- *
- */
- public FileIteratorState(final File[] files)
- {
- // Initialize the state.
- this.currentIndex = 0;
-
- if (files == null)
- {
- this.files = new File[0];
- }
- else
- {
- this.files = files;
- }
- }
-
- /**
- * Useful for the depth zero, otherwise parent path is lost.
- */
- public FileIteratorState(final String[] pathnames)
- {
- // Initialize the state.
- this.currentIndex = 0;
-
- this.files = new File[pathnames.length];
- for (int pathnameIndex = 0; pathnameIndex < pathnames.length; pathnameIndex++)
- {
- this.files[pathnameIndex] = new File(pathnames[pathnameIndex]);
- }
- }
-
- /**
- *
- */
- protected File currentFile()
- {
- File result;
-
- if (this.currentIndex >= this.files.length)
- {
- result = null;
- }
- else
- {
- result = this.files[this.currentIndex];
- }
-
- //
- return (result);
- }
-
- /**
- *
- */
- protected int currentIndex()
- {
- int result;
-
- result = this.currentIndex;
-
- //
- return (result);
- }
-
- /**
- *
- */
- protected File[] files()
- {
- File[] result;
-
- result = this.files;
-
- //
- return (result);
- }
-
- /**
- *
- */
- @Override
- public boolean hasNext()
- {
- boolean result;
-
- if (this.currentFile() == null)
- {
- result = false;
- }
- else
- {
- result = true;
- }
-
- //
- return (result);
- }
-
- /**
- *
- */
- @Override
- public File next()
- {
- File result;
-
- result = this.currentFile();
- this.currentIndex += 1;
-
- //
- return (result);
- }
-
- /**
- *
- */
- @Override
- public void remove()
- {
- }
-
- /**
- *
- */
- public void reset()
- {
- this.currentIndex = 0;
- }
-}
diff --git a/src/fr/devinsy/util/FileTools.java b/src/fr/devinsy/util/FileTools.java
deleted file mode 100644
index 6c9eb3b..0000000
--- a/src/fr/devinsy/util/FileTools.java
+++ /dev/null
@@ -1,635 +0,0 @@
-/**
- * Copyright (C) 2008-2015 Christian Pierre MOMON
- *
- * This file is part of Devinsy-utils.
- *
- * Devinsy-utils is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Devinsy-utils is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Devinsy-utils. If not, see
- */
-package fr.devinsy.util;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.io.UnsupportedEncodingException;
-import java.net.URL;
-
-import fr.devinsy.util.strings.StringList;
-import fr.devinsy.util.strings.StringListUtils;
-
-/**
- *
- * @author Christian Pierre MOMON (christian.momon@devinsy.fr)
- */
-public class FileTools
-{
- public static final String DEFAULT_CHARSET_NAME = "UTF-8";
-
- /**
- *
- *
- * @param fileName
- * Source.
- *
- * @return Extension value or null.
- */
- public static String addBeforeExtension(final String fileName, final String addition)
- {
- String result;
-
- if (fileName == null)
- {
- result = null;
- }
- else if (addition == null)
- {
- result = fileName;
- }
- else
- {
- //
- int separatorIndex = fileName.lastIndexOf('.');
-
- //
- if (separatorIndex > 0)
- {
- result = fileName.substring(0, separatorIndex) + addition + fileName.substring(separatorIndex);
- }
- else
- {
- result = fileName + addition;
- }
- }
-
- //
- return result;
- }
-
- /**
- *
- *
- * @param file
- * Source.
- *
- * @return Extension value or null.
- */
- public static File addToName(final File file, final String addition)
- {
- File result;
-
- if (file == null)
- {
- result = null;
- }
- else if (addition == null)
- {
- result = file;
- }
- else
- {
- //
- String sourceFileName = file.getAbsolutePath();
- String targetFileName = addBeforeExtension(sourceFileName, addition);
- result = new File(targetFileName);
- }
-
- //
- return result;
- }
-
- /**
- * Get the extension of a file.
- *
- * @param file
- * Source.
- *
- * @return Extension value or null.
- */
- public static String getExtension(final File file)
- {
- String result;
-
- if (file == null)
- {
- result = null;
- }
- else
- {
- result = getExtension(file.getName());
- }
-
- //
- return result;
- }
-
- /**
- * Get the extension of a file.
- *
- *
- * - getExtension(null) = null
- * - getExtension("") = null
- * - getExtension("abc") = null
- * - getExtension("abc.efg") = "efg"
- *
- *
- * @param file
- * Source.
- *
- * @return Extension value or null.
- * @deprecated See
- * org.apache.commons.io.FilenameUtils.getExtension
- */
- @Deprecated
- public static String getExtension(final String fileName)
- {
- String result;
-
- if (fileName == null)
- {
- result = null;
- }
- else
- {
- int separatorIndex = fileName.lastIndexOf('.');
- if (separatorIndex > 0)
- {
- result = fileName.substring(separatorIndex + 1).toLowerCase();
- }
- else
- {
- result = null;
- }
- }
-
- //
- return result;
- }
-
- /**
- *
- * @param file
- * @return
- * @throws IOException
- */
- public static String load(final File source) throws IOException
- {
- String result;
-
- result = load(source, DEFAULT_CHARSET_NAME);
-
- //
- return result;
- }
-
- /**
- *
- * @param file
- * @throws IOException
- */
- public static String load(final File source, final String charsetName) throws IOException
- {
- String result;
-
- result = loadToStringBuffer(source, charsetName).toString();
-
- //
- return result;
- }
-
- /**
- *
- * @param file
- * @return
- * @throws IOException
- */
- public static String load(final URL source) throws IOException
- {
- String result;
-
- result = load(source, DEFAULT_CHARSET_NAME);
-
- //
- return result;
- }
-
- /**
- *
- * @param file
- * @throws IOException
- */
- public static String load(final URL source, final String charsetName) throws IOException
- {
- String result;
-
- //
- StringBuffer buffer = new StringBuffer(source.openConnection().getContentLength() + 1);
- read(buffer, source.openStream(), charsetName);
-
- //
- result = buffer.toString();
-
- //
- return result;
- }
-
- /**
- *
- * @param file
- * @throws IOException
- */
- public static StringList loadStringList(final File source) throws IOException
- {
- StringList result;
-
- result = loadStringList(source, DEFAULT_CHARSET_NAME);
-
- //
- return result;
- }
-
- /**
- *
- * @param file
- * @throws IOException
- */
- public static StringList loadStringList(final File file, final String charsetName) throws IOException
- {
- StringList result;
-
- result = StringListUtils.load(file, charsetName);
-
- //
- return result;
- }
-
- /**
- *
- * @param file
- * @throws IOException
- */
- public static StringBuffer loadToStringBuffer(final File source) throws IOException
- {
- StringBuffer result;
-
- result = loadToStringBuffer(source, DEFAULT_CHARSET_NAME);
-
- //
- return result;
- }
-
- /**
- *
- * @param file
- * @throws IOException
- */
- public static StringBuffer loadToStringBuffer(final File file, final String charsetName) throws IOException
- {
- StringBuffer result;
-
- BufferedReader in = null;
- try
- {
- in = new BufferedReader(new InputStreamReader(new FileInputStream(file), charsetName));
-
- boolean ended = false;
- final String LINE_SEPARATOR = System.getProperty("line.separator");
- result = new StringBuffer((int) file.length() + 1);
- while (!ended)
- {
- String line = in.readLine();
-
- if (line == null)
- {
- ended = true;
- }
- else
- {
- result.append(line).append(LINE_SEPARATOR);
- }
- }
- }
- finally
- {
- try
- {
- if (in != null)
- {
- in.close();
- }
- }
- catch (IOException exception)
- {
- exception.printStackTrace();
- }
- }
-
- //
- return result;
- }
-
- /**
- *
- * @param file
- * @throws IOException
- */
- public static StringList loadToStringList(final File source) throws IOException
- {
- StringList result;
-
- result = loadToStringList(source, DEFAULT_CHARSET_NAME);
-
- //
- return result;
- }
-
- /**
- *
- * @param file
- * @throws IOException
- */
- public static StringList loadToStringList(final File file, final String charsetName) throws IOException
- {
- StringList result;
-
- BufferedReader in = null;
- try
- {
- in = new BufferedReader(new InputStreamReader(new FileInputStream(file), charsetName));
-
- boolean ended = false;
- final String LINE_SEPARATOR = System.getProperty("line.separator");
- result = new StringList();
- while (!ended)
- {
- String line = in.readLine();
-
- if (line == null)
- {
- ended = true;
- }
- else
- {
- result.append(line).append(LINE_SEPARATOR);
- }
- }
- }
- finally
- {
- try
- {
- if (in != null)
- {
- in.close();
- }
- }
- catch (IOException exception)
- {
- exception.printStackTrace();
- }
- }
-
- //
- return result;
- }
-
- /**
- *
- * @param file
- * @return
- * @throws IOException
- */
- public static StringList loadToStringList(final URL source) throws IOException
- {
- StringList result;
-
- result = loadToStringList(source, DEFAULT_CHARSET_NAME);
-
- //
- return result;
- }
-
- /**
- *
- * @param file
- * @throws IOException
- */
- public static StringList loadToStringList(final URL source, final String charsetName) throws IOException
- {
- StringList result;
-
- //
- result = StringListUtils.load(source, charsetName);
-
- //
- return result;
- }
-
- /**
- *
- * @param file
- * @throws IOException
- */
- public static void read(final StringBuffer out, final InputStream is, final String charsetName) throws IOException
- {
- BufferedReader in = null;
- try
- {
- in = new BufferedReader(new InputStreamReader(is, charsetName));
-
- boolean ended = false;
- final String LINE_SEPARATOR = System.getProperty("line.separator");
-
- while (!ended)
- {
- String line = in.readLine();
-
- if (line == null)
- {
- ended = true;
- }
- else
- {
- out.append(line).append(LINE_SEPARATOR);
- }
- }
- }
- finally
- {
- try
- {
- if (in != null)
- {
- in.close();
- }
- }
- catch (IOException exception)
- {
- exception.printStackTrace();
- }
- }
- }
-
- /**
- *
- * @param source
- * @param extension
- * @return
- *
- * @deprecated See
- * org.apache.commons.io.FilenameUtils.removeExtension
- */
- @Deprecated
- public static String removeExtension(final String source)
- {
- String result;
-
- if (source == null)
- {
- result = source;
- }
- else
- {
- int separatorIndex = source.lastIndexOf('.');
-
- //
- if (separatorIndex > 0)
- {
- result = source.substring(0, separatorIndex);
- }
- else
- {
- result = source;
- }
- }
-
- //
- return result;
- }
-
- /**
- *
- * @param file
- * @throws FileNotFoundException
- * @throws UnsupportedEncodingException
- */
- public static void save(final File file, final String source) throws UnsupportedEncodingException, FileNotFoundException
- {
- PrintWriter out = null;
- try
- {
- out = new PrintWriter(new OutputStreamWriter(new FileOutputStream(file), DEFAULT_CHARSET_NAME));
-
- out.println(source);
- }
- finally
- {
- if (out != null)
- {
- out.close();
- }
- }
- }
-
- /**
- *
- * @param file
- * @throws FileNotFoundException
- * @throws UnsupportedEncodingException
- */
- public static void save(final File file, final StringBuffer source) throws UnsupportedEncodingException, FileNotFoundException
- {
- save(file, source.toString());
- }
-
- /**
- *
- * @param file
- * @throws FileNotFoundException
- * @throws UnsupportedEncodingException
- */
- public static void save(final File file, final StringList source) throws UnsupportedEncodingException, FileNotFoundException
- {
- StringListUtils.save(file, source);
- }
-
- /**
- *
- * @param source
- * @param extension
- * @return
- */
- public static File setExtension(final File source, final String extension)
- {
- File result;
-
- if ((source == null) || (extension == null))
- {
- result = source;
- }
- else
- {
- result = new File(setExtension(source.getAbsolutePath(), extension));
- }
-
- //
- return result;
- }
-
- /**
- *
- * @param source
- * @param extension
- * @return
- */
- public static String setExtension(final String source, final String extension)
- {
- String result;
-
- if ((source == null) || (extension == null))
- {
- result = source;
- }
- else
- {
- int separatorIndex = source.lastIndexOf('.');
-
- //
- if (separatorIndex > 0)
- {
- String prefix = source.substring(0, separatorIndex);
- if (prefix.endsWith(extension))
- {
- result = prefix;
- }
- else
- {
- result = prefix + extension;
- }
- }
- else
- {
- result = source + extension;
- }
- }
-
- //
- return result;
- }
-}
diff --git a/src/fr/devinsy/util/Fraction.java b/src/fr/devinsy/util/Fraction.java
deleted file mode 100644
index 1746795..0000000
--- a/src/fr/devinsy/util/Fraction.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/**
- * Copyright (C) 2009-2010, 2013-2014 Christian Pierre MOMON
- *
- * This file is part of Devinsy-utils.
- *
- * Devinsy-utils is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Devinsy-utils is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Devinsy-utils. If not, see
- */
-package fr.devinsy.util;
-
-/**
- * Useful for display beautiful percentage value as string.
- *
- * @author cpm
- */
-public class Fraction
-{
- protected long numerator;
- protected long denominator;
-
- /**
- *
- */
- public Fraction(final long numerator, final long denominator)
- {
- this.numerator = numerator;
- this.denominator = denominator;
- }
-
- /**
- *
- */
- public long denominator()
- {
- long result;
-
- result = this.denominator;
-
- //
- return (result);
- }
-
- /**
- *
- */
- public long numerator()
- {
- long result;
-
- result = this.numerator;
-
- //
- return (result);
- }
-
- /**
- *
- */
- public long percentage() throws Exception
- {
- long result;
-
- result = percentage(this.numerator, this.denominator);
-
- //
- return (result);
- }
-
- /**
- *
- */
- public String percentageFullString()
- {
- String result;
-
- result = percentageFullString(this.numerator, this.denominator);
-
- //
- return (result);
- }
-
- /**
- *
- */
- public String percentageString()
- {
- String result;
-
- result = percentageString(this.numerator, this.denominator);
-
- //
- return (result);
- }
-
- /**
- *
- */
- @Override
- public String toString()
- {
- String result;
-
- result = this.numerator + "/" + this.denominator;
-
- //
- return (result);
- }
-
- /**
- *
- */
- public static long percentage(final long numerator, final long denominator) throws Exception
- {
- long result;
-
- if (denominator == 0)
- {
- throw new Exception("denominator is zero");
- }
- else
- {
- result = Math.round(numerator * 100 / denominator);
- }
-
- //
- return (result);
- }
-
- /**
- *
- */
- public static String percentageFullString(final long numerator, final long denominator)
- {
- String result;
-
- result = percentageString(numerator, denominator);
-
- //
- return (result);
- }
-
- /**
- *
- */
- public static String percentageString(final long numerator, final long denominator)
- {
- String result;
-
- try
- {
- long value = percentage(numerator, denominator);
-
- if (numerator == 0)
- {
- result = "0%";
- }
- else if (value == 0)
- {
- result = "~0%";
- }
- else if (value < 10)
- {
- result = "0" + value + "%";
- }
- else
- {
- result = value + "%";
- }
- }
- catch (Exception exception)
- {
- result = "--%";
- }
-
- //
- return (result);
- }
-}
diff --git a/src/fr/devinsy/util/InternetProxyConfiguration.java b/src/fr/devinsy/util/InternetProxyConfiguration.java
deleted file mode 100755
index ba0b859..0000000
--- a/src/fr/devinsy/util/InternetProxyConfiguration.java
+++ /dev/null
@@ -1,241 +0,0 @@
-/**
- * Copyright (C) 2009-2010, 2013-2014 Christian Pierre MOMON
- *
- * This file is part of Devinsy-utils.
- *
- * Devinsy-utils is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Devinsy-utils is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Devinsy-utils. If not, see
- */
-package fr.devinsy.util;
-
-/**
- *
- */
-public class InternetProxyConfiguration
-{
- //
- protected String host;
- protected int port;
- protected String login;
- protected String password;
-
- /**
- *
- */
- public InternetProxyConfiguration()
- {
- this.host = "";
- this.port = 0;
- this.login = "";
- this.password = "";
- }
-
- /**
- *
- */
- public InternetProxyConfiguration(final String host, final int port, final String login, final String password)
- {
- //
- if (host == null)
- {
- this.host = "";
- }
- else
- {
- this.host = host;
- }
-
- //
- this.port = port;
-
- //
- if (login == null)
- {
- this.login = "";
- }
- else
- {
- this.login = login;
- }
-
- //
- if (password == null)
- {
- this.password = "";
- }
- else
- {
- this.password = password;
- }
- }
-
- /**
- *
- */
- public InternetProxyConfiguration(final String host, final String port, final String login, final String password) throws Exception
- {
- //
- if (host == null)
- {
- this.host = "";
- }
- else
- {
- this.host = host;
- }
-
- //
- if ((port == null) || (port.trim().length() == 0))
- {
- this.port = 0;
- }
- else
- {
- try
- {
- this.port = Integer.parseInt(port);
- }
- catch (Exception exception)
- {
- String errorMessage = "Incorrect PROXY port value.";
- throw new Exception(errorMessage, exception);
- }
- }
-
- //
- if (login == null)
- {
- this.login = "";
- }
- else
- {
- this.login = login;
- }
-
- //
- if (password == null)
- {
- this.password = "";
- }
- else
- {
- this.password = password;
- }
- }
-
- /**
- *
- */
- public String host()
- {
- String result;
-
- result = this.host;
-
- //
- return (result);
- }
-
- /**
- *
- */
- public boolean isInitialized()
- {
- boolean result;
-
- if ((this.host.length() > 0) && (this.port > 0))
- {
- result = true;
- }
- else
- {
- result = false;
- }
-
- //
- return (result);
- }
-
- /**
- *
- */
- public String login()
- {
- String result;
-
- result = this.login;
-
- //
- return (result);
- }
-
- /**
- *
- */
- public String password()
- {
- String result;
-
- result = this.password;
-
- //
- return (result);
- }
-
- /**
- *
- */
- public int port()
- {
- int result;
-
- result = this.port;
-
- //
- return (result);
- }
-
- /**
- *
- */
- @Override
- public String toString()
- {
- String result;
-
- String login;
- if (this.login.length() == 0)
- {
- login = "";
- }
- else
- {
- login = "********";
- }
-
- String password;
- if (this.password.length() == 0)
- {
- password = "";
- }
- else
- {
- password = "********";
- }
-
- result = "(" + this.host + "," + this.port + "," + login + "," + password + ")";
-
- //
- return (result);
- }
-}
diff --git a/src/fr/devinsy/util/SimpleAveragemeter.java b/src/fr/devinsy/util/SimpleAveragemeter.java
deleted file mode 100755
index 4f5a418..0000000
--- a/src/fr/devinsy/util/SimpleAveragemeter.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/**
- * Copyright (C) 2009-2010, 2013-2014 Christian Pierre MOMON
- *
- * This file is part of Devinsy-utils.
- *
- * Devinsy-utils is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Devinsy-utils is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Devinsy-utils. If not, see
- */
-package fr.devinsy.util;
-
-/**
- * This class defines a simple average manager. For example, it is useful for
- * millisecond. The maximum value available in input is one day in millisecond.
- */
-public class SimpleAveragemeter
-{
- //
- protected long sum;
- protected long cardinal;
- protected long MAX_ADD = 1 * 24 * 60 * 60 * 1000; // One day in millisecond.
-
- /**
- *
- */
- public SimpleAveragemeter()
- {
- this.reset();
- }
-
- /**
- *
- */
- synchronized public void add(final long value)
- {
- // Manage the sum limit.
- if ((this.sum > Long.MAX_VALUE / 2) && (this.cardinal % 2 == 0))
- {
- this.sum = this.sum / 2;
- this.cardinal = this.cardinal / 2;
- }
-
- // Add the new value.
- if (this.sum > this.MAX_ADD)
- {
- this.sum += this.MAX_ADD;
- this.cardinal += 1;
- }
- else
- {
- this.sum += value;
- this.cardinal += 1;
- }
- }
-
- /**
- *
- */
- synchronized public long average()
- {
- long result;
-
- if (this.cardinal == 0)
- {
- result = 0;
- }
- else
- {
- result = this.sum / this.cardinal;
- }
-
- //
- return (result);
- }
-
- /**
- *
- */
- public long cardinal()
- {
- long result;
-
- result = this.cardinal;
-
- //
- return (result);
- }
-
- /**
- *
- */
- synchronized public void reset()
- {
- this.sum = 0;
- this.cardinal = 0;
- }
-
- /**
- *
- */
- @Override
- public String toString()
- {
- String result;
-
- result = Long.toString(this.average());
-
- //
- return (result);
- }
-
- /**
- *
- */
- public long value()
- {
- long result;
-
- result = this.average();
-
- //
- return (result);
- }
-}
diff --git a/src/fr/devinsy/util/SimpleChronometer.java b/src/fr/devinsy/util/SimpleChronometer.java
deleted file mode 100755
index 4ae2e98..0000000
--- a/src/fr/devinsy/util/SimpleChronometer.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/**
- * Copyright (C) 2008-2010, 2013-2014 Christian Pierre MOMON
- *
- * This file is part of Devinsy-utils.
- *
- * Devinsy-utils is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Devinsy-utils is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Devinsy-utils. If not, see
- */
-package fr.devinsy.util;
-
-import java.util.Date;
-
-/**
- *
- */
-public class SimpleChronometer
-{
- //
- protected long firstTime;
-
- /**
- *
- */
- public SimpleChronometer()
- {
- this.reset();
- }
-
- /**
- *
- */
- public long interval()
- {
- long result;
-
- result = new Date().getTime() - this.firstTime;
-
- //
- return (result);
- }
-
- /**
- *
- */
- public void reset()
- {
- this.firstTime = new Date().getTime();
- }
-
- /**
- * TO BE COMPLETED.
- */
- public static String humanString(final long interval)
- {
- String result;
-
- if (interval < 1000)
- {
- result = interval + "ms";
- }
- else if (interval < 60 * 1000)
- {
- result = interval / 1000 + "," + interval % 1000 + "s";
- }
- else if (interval < 60 * 60 * 1000)
- {
- result = interval / 1000 + "," + interval % 1000 + "s";
- }
- else if (interval < 24 * 60 * 60 * 1000)
- {
- result = interval / 1000 + "," + interval % 1000 + "s";
- }
- else if (interval < 7 * 24 * 60 * 60 * 1000)
- {
- result = interval / 1000 + "," + interval % 1000 + "s";
- }
- else
- // if (interval < 7*24*60*60*1000)
- {
- result = interval / 1000 + "," + interval % 1000 + "s";
- }
-
- //
- return (result);
- }
-
- /**
- *
- */
- public static String shortHumanString(final long interval)
- {
- String result;
-
- if (interval < 1000)
- {
- result = interval + " ms";
- }
- else if (interval < 2 * 1000)
- {
- result = interval / 1000 + " seconde";
- }
- else if (interval < 60 * 1000)
- {
- result = interval / 1000 + " secondes";
- }
- else if (interval < 2 * 60 * 1000L)
- {
- result = interval / (60 * 1000L) + " minute";
- }
- else if (interval < 60 * 60 * 1000L)
- {
- result = interval / (60 * 1000L) + " minutes";
- }
- else if (interval < 2 * 60 * 60 * 1000L)
- {
- result = interval / (60 * 60 * 1000L) + " heure";
- }
- else if (interval < 24 * 60 * 60 * 1000L)
- {
- result = interval / (60 * 60 * 1000L) + " heures";
- }
- else if (interval < 2 * 24 * 60 * 60 * 1000L)
- {
- result = interval / (24 * 60 * 60 * 1000L) + " jour";
- }
- else if (interval < 7 * 24 * 60 * 60 * 1000L)
- {
- result = interval / (24 * 60 * 60 * 1000L) + " jours";
- }
- else if (interval < 2 * 7 * 24 * 60 * 60 * 1000L)
- {
- result = interval / (7 * 24 * 60 * 60 * 1000L) + " semaine";
- }
- else if (interval < 30 * 24 * 60 * 60 * 1000L)
- {
- result = interval / (7 * 24 * 60 * 60 * 1000L) + " semaines";
- }
- else if (interval < 52 * 7 * 24 * 60 * 60 * 1000L)
- {
- result = interval / (30 * 24 * 60 * 60 * 1000L) + " mois";
- }
- else if (interval < 2 * 52 * 7 * 24 * 60 * 60 * 1000L)
- {
- result = interval / (52 * 7 * 24 * 60 * 60 * 1000L) + " année";
- }
- else
- {
- result = interval / (52 * 7 * 24 * 60 * 60 * 1000L) + " années";
- }
-
- //
- return (result);
- }
-}
diff --git a/src/fr/devinsy/util/StacktraceWriter.java b/src/fr/devinsy/util/StacktraceWriter.java
deleted file mode 100644
index 2cec674..0000000
--- a/src/fr/devinsy/util/StacktraceWriter.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * Copyright (C) 2010, 2013-2016 Christian Pierre MOMON
- *
- * This file is part of Devinsy-utils.
- *
- * Devinsy-utils is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Devinsy-utils is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Devinsy-utils. If not, see
- */
-package fr.devinsy.util;
-
-import java.io.ByteArrayOutputStream;
-import java.io.PrintStream;
-
-/**
- * @deprecated use SLF4J.Logger.error("blabla", exception)
method
- * or the ExceptionUtils.getStackTrace(throwable).
- */
-@Deprecated
-public class StacktraceWriter
-{
- /**
- * @deprecated use SLF4J.Logger.error("blabla", exception)
- * method or the ExceptionUtils.getStackTrace(throwable).
- */
- @Deprecated
- public static String toString(final Exception exception)
- {
- String result;
-
- ByteArrayOutputStream out = new ByteArrayOutputStream(50000);
- exception.printStackTrace(new PrintStream(out));
- result = out.toString();
-
- //
- return (result);
- }
-}
diff --git a/src/fr/devinsy/util/ToolBox.java b/src/fr/devinsy/util/ToolBox.java
deleted file mode 100644
index adc4b49..0000000
--- a/src/fr/devinsy/util/ToolBox.java
+++ /dev/null
@@ -1,319 +0,0 @@
-/**
- * Copyright (C) 2008-2010, 2013-2014 Christian Pierre MOMON
- *
- * This file is part of Devinsy-utils.
- *
- * Devinsy-utils is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Devinsy-utils is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Devinsy-utils. If not, see
- */
-package fr.devinsy.util;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.commons.lang3.StringUtils;
-
-import fr.devinsy.util.strings.StringList;
-
-/**
- *
- * @author christian.momon@devinsy.fr
- */
-public class ToolBox
-{
-
- public static String clean(final String source)
- {
- String result;
-
- result = source.replaceAll("[^\\w ]", " ");
-
- //
- return result;
- }
-
- /**
- * Returns information about the calling class of a calledClass.
- *
- * @param calledClassName
- * the class name which is the subject of the search.
- *
- * @return information about the calling class.
- */
- public static StackTraceElement getCaller(final String calledClassName)
- {
- StackTraceElement result;
-
- //
- StackTraceElement[] stack = Thread.currentThread().getStackTrace();
- // System.out.println("////////////////////////////");
- // for (int i = 0; (i < stack.length) && (i < 4); i++) {
- // System.out.println(i + " " + stack[i].getClassName());
- // }
-
- // Search for first entry of class called.
- boolean ended = false;
- Integer indexOfCalled = null;
- int depth = 1;
- while (!ended)
- {
- if (depth < stack.length)
- {
- String currentClassName = stack[depth].getClassName();
- if (currentClassName.equals(calledClassName))
- {
- ended = true;
- indexOfCalled = Integer.valueOf(depth);
- }
- else
- {
- depth += 1;
- }
- }
- else
- {
- ended = true;
- result = null;
- }
- }
-
- // Search for caller of class called.
- if (indexOfCalled == null)
- {
- result = null;
- }
- else
- {
- result = null;
- ended = false;
- depth = indexOfCalled;
- while (!ended)
- {
- if (depth < stack.length)
- {
- String currentClassName = stack[depth].getClassName();
- if (currentClassName.equals(calledClassName))
- {
- depth += 1;
- }
- else
- {
- ended = true;
- result = stack[depth];
- }
- }
- else
- {
- ended = true;
- result = null;
- }
- }
- }
-
- //
- return result;
- }
-
- /**
- *
- * @param pattern
- * @param source
- * @return
- */
- public static int indexOf(final String pattern, final List source)
- {
- int result;
-
- if (source == null)
- {
- result = -1;
- }
- else
- {
- boolean ended = false;
- result = -1;
- int currentIndex = 0;
- while (!ended)
- {
- if (currentIndex < source.size())
- {
- String sourceString = source.get(currentIndex);
- if (StringUtils.equals(sourceString, pattern))
- {
- ended = true;
- result = currentIndex;
- }
- else
- {
- currentIndex += 1;
- }
- }
- else
- {
- ended = true;
- currentIndex = -1;
- }
- }
- }
-
- //
- return result;
- }
-
- /**
- *
- * @param string
- * @param targets
- * @return
- */
- public static boolean matchesAny(final String string, final String... targets)
- {
- boolean result;
-
- if ((string == null) || (targets == null))
- {
- result = false;
- }
- else
- {
- //
- boolean ended = false;
- int index = 0;
- result = false;
- while (!ended)
- {
- if (index < targets.length)
- {
- if (StringUtils.equals(string, targets[index]))
- {
- ended = true;
- result = true;
- }
- else
- {
- index += 1;
- }
- }
- else
- {
- ended = true;
- result = false;
- }
- }
- }
-
- //
- return result;
- }
-
- /**
- *
- * @return
- */
- public static Double[] sort(final Set source)
- {
- Double[] result;
-
- if (source == null)
- {
- result = null;
- }
- else
- {
- result = new Double[source.size()];
-
- source.toArray(result);
- Arrays.sort(result);
- }
-
- //
- return result;
- }
-
- /**
- * Concatenates int values from an array, adding decoration strings.
- *
- * @param values
- * Source of int values.
- * @param prefix
- * Decoration to put on start.
- * @param separator
- * Decoration to put between values.
- * @param postfix
- * Decoration to put on end.
- *
- * @return A decorated string representing the int values.
- */
- public static String toString(final int[] values, final String prefix, final String separator, final String postfix)
- {
- String result;
-
- StringList buffer = new StringList();
-
- //
- if (prefix != null)
- {
- buffer.append(prefix);
- }
-
- //
- boolean firstPassed = false;
- for (int value : values)
- {
- if (firstPassed)
- {
- buffer.append(separator);
- }
- else
- {
- firstPassed = true;
- }
- buffer.append(value);
- }
-
- //
- if (postfix != null)
- {
- buffer.append(postfix);
- }
-
- //
- result = buffer.toString();
-
- //
- return result;
- }
-
- /**
- *
- * @param source
- * @return
- */
- public static String toString(final String source)
- {
- String result;
-
- if (source == null)
- {
- result = "";
- }
- else
- {
- result = source;
- }
-
- //
- return result;
- }
-}
diff --git a/test/fr/devinsy/util/FileToolsTest.java b/test/fr/devinsy/util/FileToolsTest.java
deleted file mode 100644
index 2653b83..0000000
--- a/test/fr/devinsy/util/FileToolsTest.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/**
- * Copyright (C) 2014 Christian Pierre MOMON
- *
- * This file is part of Devinsy-utils.
- *
- * Devinsy-utils is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Devinsy-utils is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Devinsy-utils. If not, see
- */
-package fr.devinsy.util;
-
-import java.io.IOException;
-
-import org.apache.log4j.BasicConfigurator;
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-import fr.devinsy.util.strings.StringList;
-
-/**
- *
- * @author Christian P. Momon
- */
-public class FileToolsTest
-{
- static protected org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(FileToolsTest.class);
-
- /**
- *
- */
- @Before
- public void before()
- {
- BasicConfigurator.configure();
- Logger.getRootLogger().setLevel(Level.ERROR);
- }
-
- /**
- *
- */
- @Test
- public void loadToStringListURL01() throws IOException
- {
- //
- logger.debug("===== test starting...");
- //
- StringList source = FileTools.loadToStringList(FileTools.class.getResource("/fr/devinsy/util/lines.txt"));
-
- //
- Assert.assertEquals(4, source.size());
- Assert.assertEquals("trois", source.get(3 - 1));
-
- //
- logger.debug("===== test done.");
- }
-
- /**
- * @throws IOException
- *
- */
- @Test
- public void testGetExtension()
- {
- //
- logger.debug("===== test starting...");
-
- //
- String extension = FileTools.getExtension("test.ext");
-
- //
- Assert.assertEquals(extension, "ext");
-
- //
- logger.debug("===== test done.");
- }
-}
diff --git a/test/fr/devinsy/util/lines.txt b/test/fr/devinsy/util/lines.txt
deleted file mode 100644
index de1c537..0000000
--- a/test/fr/devinsy/util/lines.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-un
-deux
-trois
-quatre
\ No newline at end of file