package org.eclipse.dltk.tcl.internal.core.search.mixin.model; import org.eclipse.dltk.tcl.internal.core.search.mixin.TclMixinModel; public class TclPackage { private static final String PACKAGE_PREFIX = TclMixinModel.PACKAGE_PRERIX; public static final String REQUIRE = "require"; /** * This is for provide and ifneeded */ public static final String PROVIDE = "provide"; private String pack = null; private String version = null; private String kind = null; public TclPackage(String pkg, String version, String kind) { this.pack = pkg; this.version = version; this.kind = kind; } public static String makeKey(String pack, String version, String kind) { return PACKAGE_PREFIX + kind + "|" + pack + "|" + (version == null ? "" : version); } public static TclPackage parseKey(String key) { if (!key.startsWith(PACKAGE_PREFIX)) { return null; } key = key.substring(1); int pos = key.indexOf('|'); int pos2 = key.lastIndexOf('|'); return new TclPackage(key.substring(pos + 1, pos2), key.substring(0, pos), key.substring(0, pos)); } public String getPackackeName() { return pack; } public void setPackageName(String pack) { this.pack = pack; } public String getVersion() { return version; } public void setVersion(String version) { this.version = version; } public String getKind() { return kind; } public void setKind(String kind) { this.kind = kind; } public static String makeSearchRequest(String provide, String requiredPackage) { return TclMixinModel.PACKAGE_PRERIX + provide + "|" + requiredPackage + "|*"; } }