blob: bf3a6e8cf62d46ad5e3d35be5d10dcd500e0ea67 [file] [log] [blame]
package com.intellij.remoteServer.agent.impl.util;
import com.intellij.openapi.diagnostic.Logger;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
/**
* @author michael.golubev
*/
public class UrlCollector {
private static final Logger LOG = Logger.getInstance("#" + UrlCollector.class.getName());
private List<File> myFiles;
public URL[] collect(Collection<File> libraries) {
List<File> files = collectFiles(libraries);
URL[] result = new URL[files.size()];
for (int i = 0; i < files.size(); i++) {
try {
result[i] = files.get(i).toURI().toURL();
}
catch (MalformedURLException e) {
LOG.error(e); // should never happen
}
}
return result;
}
public List<File> collectFiles(Collection<File> libraries) {
myFiles = new ArrayList<File>();
for (File library : libraries) {
if (library.exists()) {
addFile(library);
if (library.isDirectory()) {
addLibraries(library);
}
}
}
return myFiles;
}
private void addLibraries(File dir) {
for (File file : dir.listFiles()) {
if (file.isDirectory()) {
addLibraries(file);
}
else if (file.getName().endsWith(".jar")) {
addFile(file);
}
}
}
private void addFile(File file) {
LOG.debug("addFile: " + file.getAbsolutePath());
myFiles.add(file);
}
}