package org.erlide.engine.services.importer;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.SortedSet;
import java.util.TreeSet;
import org.erlide.util.Util;
import com.ericsson.otp.erlang.OtpErlangAtom;
import com.ericsson.otp.erlang.OtpErlangList;
import com.ericsson.otp.erlang.OtpErlangObject;
import com.ericsson.otp.erlang.OtpErlangTuple;
public class ErlProjectImport {
private final SortedSet<String> resources;
private final List<String> sourceDirs;
private final List<String> includeDirs;
private final String beamDir;
private final List<String> directories;
public ErlProjectImport(final OtpErlangObject o) {
final OtpErlangTuple t = (OtpErlangTuple) o;
OtpErlangList l = (OtpErlangList) t.elementAt(0);
resources = (SortedSet<String>) erlangStringList2Collection(l,
new TreeSet<String>());
l = (OtpErlangList) t.elementAt(1);
sourceDirs = (List<String>) erlangStringList2Collection(l,
new ArrayList<String>());
l = (OtpErlangList) t.elementAt(2);
includeDirs = (List<String>) erlangStringList2Collection(l,
new ArrayList<String>());
final OtpErlangObject beamDirElement = t.elementAt(3);
if (beamDirElement instanceof OtpErlangAtom) {
beamDir = "ebin";
} else {
beamDir = Util.stringValue(beamDirElement);
}
l = (OtpErlangList) t.elementAt(4);
directories = (List<String>) erlangStringList2Collection(l,
new ArrayList<String>());
directories.add(0, ".");
}
private static Collection<String> erlangStringList2Collection(final OtpErlangList l,
final Collection<String> c) {
for (final OtpErlangObject o : l) {
c.add(Util.stringValue(o));
}
return c;
}
public Collection<String> getResources() {
return resources;
}
public List<String> getDirectories() {
return directories;
}
public List<String> getSourceDirs() {
return sourceDirs;
}
public List<String> getIncludeDirs() {
return includeDirs;
}
public String getBeamDir() {
return beamDir;
}
}