package com.github.sdbg.debug.core.internal.util;
import com.github.sdbg.debug.core.SDBGDebugCorePlugin;
import com.github.sdbg.debug.core.model.IDOMResourceTracker;
import com.github.sdbg.debug.core.model.IDOMResources;
import java.util.ArrayList;
import java.util.Collection;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExtensionPoint;
import org.eclipse.core.runtime.Platform;
public class DOMResourceTrackersManager {
private Collection<IDOMResourceTracker> trackers;
public void dispose() {
for (IDOMResourceTracker tracker : trackers) {
try {
tracker.dispose();
} catch (Exception e) {
SDBGDebugCorePlugin.logError(e);
}
}
trackers.clear();
}
protected void initialize(IProject project, IDOMResources domResources) {
trackers = new ArrayList<IDOMResourceTracker>();
IExtensionPoint extensionPoint = Platform.getExtensionRegistry().getExtensionPoint(
"com.github.sdbg.debug.core.domResourceTracker");
for (IConfigurationElement element : extensionPoint.getConfigurationElements()) {
try {
IDOMResourceTracker tracker = (IDOMResourceTracker) element.createExecutableExtension("class");
tracker.initialize(project, domResources);
trackers.add(tracker);
} catch (CoreException e) {
SDBGDebugCorePlugin.logError(e);
}
}
}
}