GroupManager/src/main/java/org/anjocaido/groupmanager/utils/Tasks.java

161 lines
4.7 KiB
Java

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.anjocaido.groupmanager.utils;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.List;
import org.anjocaido.groupmanager.GroupManager;
import org.anjocaido.groupmanager.data.Group;
/**
*
* @author gabrielcouto
*/
public abstract class Tasks {
/**
* Appends a string to a file
*
* @param data
* @param file
*/
public static void appendStringToFile(final String data, final String file) throws IOException {
final FileWriter outStream = new FileWriter("." + System.getProperty("file.separator") + file, true);
final BufferedWriter out = new BufferedWriter(outStream);
data.replaceAll("\n", System.getProperty("line.separator"));
out.append(new SimpleDateFormat("yyyy-MM-dd HH-mm").format(System.currentTimeMillis()));
out.append(System.getProperty("line.separator"));
out.append(data);
out.append(System.getProperty("line.separator"));
out.close();
}
public static void copy(final File src, final File dst) throws IOException {
final InputStream in = new FileInputStream(src);
copy(in, dst);
}
public static void copy(final InputStream src, final File dst) throws IOException {
final InputStream in = src;
final OutputStream out = new FileOutputStream(dst);
// Transfer bytes from in to out
final byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
out.close();
try {
in.close();
} catch (final Exception e) {
}
}
public static String getDateString() {
final GregorianCalendar now = new GregorianCalendar();
String date = "";
date += now.get(Calendar.DAY_OF_MONTH);
date += "-";
date += now.get(Calendar.HOUR);
date += "-";
date += now.get(Calendar.MINUTE);
return date;
}
public static String getGroupListInString(final List<Group> list) {
if (list == null) {
return "";
}
String result = "";
for (int i = 0; i < list.size(); i++) {
result += list.get(i).getName();
if (i < list.size() - 1) {
result += ", ";
}
}
return result;
}
/**
* Gets the exception stack trace as a string.
*
* @param exception
* @return stack trace as a string
*/
public static String getStackTraceAsString(final Exception exception) {
final StringWriter sw = new StringWriter();
final PrintWriter pw = new PrintWriter(sw);
exception.printStackTrace(pw);
return sw.toString();
}
public static String getStringArrayInString(final String[] list) {
if (list == null) {
return "";
}
String result = "";
for (int i = 0; i < list.length; i++) {
result += list[i];
if (i < ((list.length) - 1)) {
result += ", ";
}
}
return result;
}
public static String getStringListInString(final List<String> list) {
if (list == null) {
return "";
}
String result = "";
for (int i = 0; i < list.size(); i++) {
result += list.get(i);
if (i < list.size() - 1) {
result += ", ";
}
}
return result;
}
public static String join(final String[] arr, final String separator) {
if (arr.length == 0)
return "";
String out = arr[0].toString();
for (int i = 1; i < arr.length; i++)
out += separator + arr[i];
return out;
}
public static void removeOldFiles(final GroupManager gm, final File folder) {
if (folder.isDirectory()) {
final long oldTime = System.currentTimeMillis() - (((long) gm.getGMConfig().getBackupDuration() * 60 * 60) * 1000);
for (final File olds : folder.listFiles()) {
if (olds.isFile()) {
if (olds.lastModified() < oldTime) {
try {
olds.delete();
} catch (final Exception e) {
}
}
}
}
}
}
}