package jffile;
/**
* Created : May 1, 2012
*
* @author pquiring
*/
import java.io.*;
import java.util.*;
import javaforce.*;
public class NetworkShares {
public static class Share {
public String name;
public String folder;
}
public static class Shares {
public Share share[];
}
private static Shares shares;
private static String sharesFile = ".shares.xml";
public static void addShare(String name, String folder) {
Share newShare = new Share();
newShare.name = name;
newShare.folder = folder;
shares.share = Arrays.copyOf(shares.share, shares.share.length + 1);
shares.share[shares.share.length-1] = newShare;
saveShares();
}
public static void delShare(String name) {
int idx = -1;
for(int a=0;a<shares.share.length;a++) {
if (shares.share[a].name.equals(name)) {idx = a; break;}
}
if (idx == -1) return;
int len = shares.share.length;
Share newList[] = new Share[len-1];
System.arraycopy(shares.share, 0, newList, 0, idx);
System.arraycopy(shares.share, idx+1, newList, idx, len - idx - 1);
shares.share = newList;
saveShares();
}
public static ArrayList<String> getSharedFolders() {
ArrayList<String> ret = new ArrayList<String>();
for(int a=0;a<shares.share.length;a++) {
ret.add(shares.share[a].folder);
}
return ret;
}
public static boolean isShared(String folder) {
if (shares == null) return false;
for(int a=0;a<shares.share.length;a++) {
if (shares.share[a].folder.equals(folder)) return true;
}
return false;
}
public static String getShareName(String folder) {
for(int a=0;a<shares.share.length;a++) {
if (shares.share[a].folder.equals(folder)) return shares.share[a].name;
}
return null;
}
public static void loadShares() {
defaultSharesConfig();
try {
XML xml = new XML();
FileInputStream fis = new FileInputStream(JF.getUserPath() + "/" + sharesFile);
xml.read(fis);
xml.writeClass(shares);
} catch (FileNotFoundException e1) {
defaultSharesConfig();
} catch (Exception e2) {
JFLog.log(e2);
defaultSharesConfig();
}
}
private static void defaultSharesConfig() {
shares = new Shares();
shares.share = new Share[0];
}
public static void saveShares() {
try {
XML xml = new XML();
FileOutputStream fos = new FileOutputStream(JF.getUserPath() + "/" + sharesFile);
xml.readClass("shares", shares);
xml.write(fos);
fos.close();
} catch (Exception e) {
JFLog.log(e);
}
}
}