bndtools.model.repo.ProjectBundle Maven / Gradle / Ivy
The newest version!
package bndtools.model.repo;
import java.io.File;
import java.text.MessageFormat;
import org.bndtools.api.ILogger;
import org.bndtools.api.Logger;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.Path;
import aQute.bnd.build.Project;
public class ProjectBundle implements IAdaptable {
private static final ILogger logger = Logger.getLogger(ProjectBundle.class);
private final Project project;
private final String bsn;
ProjectBundle(Project project, String bsn) {
this.project = project;
this.bsn = bsn;
}
public Project getProject() {
return project;
}
public String getBsn() {
return bsn;
}
@Override
public String toString() {
return "ProjectBundle [project=" + project + ", bsn=" + bsn + "]";
}
@SuppressWarnings("unchecked")
@Override
public T getAdapter(Class adapter) {
T result = null;
if (IFile.class.equals(adapter) || IResource.class.equals(adapter)) {
try {
File targetDir = project.getTarget();
File bundleFile = new File(targetDir, bsn + ".jar");
if (bundleFile.isFile()) {
Path path = new Path(bundleFile.getAbsolutePath());
result = (T) ResourcesPlugin.getWorkspace()
.getRoot()
.getFileForLocation(path);
}
} catch (Exception e) {
logger.logError(
MessageFormat.format("Error retrieving bundle {0} from project {1}.", bsn, project.getName()), e);
}
}
return result;
}
public boolean isSub() {
return !project.getName()
.equals(bsn);
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy