package aQute.bnd.metatype;
import aQute.bnd.osgi.Analyzer;
import aQute.bnd.xmlattribute.ExtensionDef;
import aQute.bnd.xmlattribute.Namespaces;
import aQute.bnd.xmlattribute.XMLAttributeFinder;
import aQute.lib.tag.Tag;
class DesignateDef extends ExtensionDef {
String ocdRef;
String pid;
boolean factory;
public DesignateDef(XMLAttributeFinder finder) {
super(finder);
}
public DesignateDef(String ocdRef, String pid, boolean factory, XMLAttributeFinder finder) {
super(finder);
this.ocdRef = ocdRef;
this.pid = pid;
this.factory = factory;
}
public void prepare(Analyzer analyzer) {
}
Tag getOuterTag() {
Tag metadata = new Tag("metatype:MetaData").addAttribute("xmlns:metatype",
MetatypeVersion.VERSION_1_3.getNamespace());
Namespaces namespaces = new Namespaces();
String xmlns = MetatypeVersion.VERSION_1_3.getNamespace();
namespaces.registerNamespace("metatype", xmlns);
addNamespaces(namespaces, xmlns);
namespaces.addNamespaces(metadata);
metadata.addContent(getInnerTag(namespaces));
return metadata;
}
Tag getInnerTag(Namespaces namespaces) {
Tag designate = new Tag("Designate");
if (factory) {
designate.addAttribute("factoryPid", pid);
} else {
designate.addAttribute("pid", pid);
}
addAttributes(designate, namespaces);
new Tag(designate, "Object").addAttribute("ocdref", ocdRef);
return designate;
}
}