package org.erlide.engine.model.root; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.List; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.Path; import com.google.common.collect.Lists; public final class PathSerializer { private static final List<IPath> EMPTY_LIST = Lists.newArrayList(); public static final String SEP = ";"; public static String packList(final Iterable<IPath> list) { final StringBuilder result = new StringBuilder(); for (final IPath s : list) { result.append(s.toPortableString()).append(SEP); } return result.toString(); } public static Collection<IPath> unpackList(final String string) { return unpackList(string, SEP); } public static String packArray(final IPath[] strs) { final StringBuilder result = new StringBuilder(); for (final IPath s : strs) { result.append(s.toPortableString()).append(SEP); } return result.toString(); } public static IPath[] unpackArray(final String str) { return unpackList(str).toArray(new IPath[0]); } public static List<String> readFile(final String file) { final List<String> res = new ArrayList<>(); try (final BufferedReader reader = new BufferedReader(new FileReader(file))) { String line; while ((line = reader.readLine()) != null) { res.add(line); } } catch (final IOException e) { } return res; } private PathSerializer() { } public static List<IPath> unpackList(final String string, final String sep) { if (string.length() == 0) { return EMPTY_LIST; } final String[] v = string.split(sep); final List<String> sresult = new ArrayList<>(Arrays.asList(v)); final List<IPath> result = new ArrayList<>(); for (final String s : sresult) { final Path path = new Path(s.trim()); if (!path.isEmpty()) { result.add(path); } } return result; } }