package bndtools.model.repo;
import java.util.Map;
import aQute.bnd.service.Actionable;
import aQute.bnd.service.Strategy;
import aQute.bnd.version.Version;
public class RepositoryBundleVersion extends RepositoryEntry implements Actionable {
private final Version version;
private final RepositoryBundle bundle;
public RepositoryBundleVersion(RepositoryBundle bundle, final Version version) {
super(bundle.getRepo(), bundle.getBsn(), new VersionFinder(version.toString(), Strategy.EXACT) {
@Override
Version findVersion() throws Exception {
return version;
}
});
this.bundle = bundle;
this.version = version;
}
public Version getVersion() {
return version;
}
public RepositoryBundle getParentBundle() {
return bundle;
}
@Override
public String toString() {
return "RepositoryBundleVersion [version=" + version + ", bundle=" + bundle + "]";
}
@Override
public String title(Object... target) throws Exception {
try {
if (bundle.getRepo() instanceof Actionable) {
String s = ((Actionable) bundle.getRepo()).title(bundle.getBsn(), version);
if (s != null)
return s;
}
} catch (Exception e) {
e.printStackTrace();
// just default
}
return getVersion().toString();
}
@Override
public String tooltip(Object... target) throws Exception {
try {
if (bundle.getRepo() instanceof Actionable) {
String s = ((Actionable) bundle.getRepo()).tooltip(bundle.getBsn(), version);
if (s != null)
return s;
}
} catch (Exception e) {
// just default
}
return null;
}
@Override
public Map<String,Runnable> actions(Object... target) throws Exception {
Map<String,Runnable> map = null;
try {
if (bundle.getRepo() instanceof Actionable) {
map = ((Actionable) bundle.getRepo()).actions(bundle.getBsn(), version);
}
} catch (Exception e) {
// just default
}
return map;
}
public String getText() {
try {
return title();
} catch (Exception e) {
return version.toString();
}
}
}