Package org.objectstyle.wolips.jdt.classpath

Source Code of org.objectstyle.wolips.jdt.classpath.WOFrameworkClasspathContainer

package org.objectstyle.wolips.jdt.classpath;

import java.util.HashMap;
import java.util.Map;

import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.jdt.core.IClasspathContainer;
import org.eclipse.jdt.core.IClasspathEntry;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;
import org.objectstyle.wolips.jdt.JdtPlugin;
import org.objectstyle.wolips.jdt.classpath.model.IEclipseFramework;

/**
* @author mschrag
*/
public class WOFrameworkClasspathContainer implements IClasspathContainer {
  public static final String ID = "WOFramework";

  private IEclipseFramework framework;

  private Map<String, String> params;
 
  private String _name;

  public WOFrameworkClasspathContainer(IEclipseFramework framework) {
    this(framework, new HashMap<String, String>());
  }

  public WOFrameworkClasspathContainer(IEclipseFramework framework, Map<String, String> params) {
    this.framework = framework;
    this.params = params;
  }

  public Map<String, String> getParams() {
    return params;
  }

  public IEclipseFramework getFramework() {
    return this.framework;
  }

  public String getDescription() {
    if (_name == null) {
      _name = getFramework().getName() + " Framework";
    }
    return _name;
  }

  public int getKind() {
    return IClasspathContainer.K_APPLICATION;
  }

  public IPath getPath() {
    IPath path = new Path(WOFrameworkClasspathContainer.ID + "/" + getFramework().getName());
    for (Map.Entry<String, String> param : this.params.entrySet()) {
      path = path.append(param.getKey() + "=" + param.getValue());
    }
    return path;
  }

  public IClasspathEntry[] getClasspathEntries() {
    return this.framework.getClasspathEntries();
  }

  public static WOFrameworkClasspathContainer getFrameworkClasspathContainer(IJavaProject project, IClasspathEntry classpathEntry) {
    WOFrameworkClasspathContainer frameworkContainer = null;
    try {
      IClasspathContainer container = JavaCore.getClasspathContainer(classpathEntry.getPath(), project);
      if (container instanceof WOFrameworkClasspathContainer) {
        frameworkContainer = (WOFrameworkClasspathContainer) container;
      }
    }
    catch (Exception e) {
      JdtPlugin.getDefault().getPluginLogger().debug(e);
    }
    return frameworkContainer;
  }

  public static boolean isFrameworkClasspathEntry(IJavaProject project, IClasspathEntry classpathEntry) throws JavaModelException {
    IClasspathContainer container = JavaCore.getClasspathContainer(classpathEntry.getPath(), project);
    return container instanceof WOFrameworkClasspathContainer;
  }
}
TOP

Related Classes of org.objectstyle.wolips.jdt.classpath.WOFrameworkClasspathContainer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.