📄 manifesthandler.java
字号:
} else if ("parameter-def".equals(name)) { //$NON-NLS-1$
if (extensionPoint == null) {
if (entityResolver != null) {
throw new SAXException("[parameter-def] element found " //$NON-NLS-1$
+ "outside of [extension-point] element"); //$NON-NLS-1$
}
// ignore this element
log.warn("[parameter-def] element found " //$NON-NLS-1$
+ "outside of [extension-point] element"); //$NON-NLS-1$
return;
}
if (paramDef != null) {
paramDefStack.push(paramDef);
}
paramDef = new ModelParameterDef();
paramDef.setId(attributes.getValue("id")); //$NON-NLS-1$
if (attributes.getValue("multiplicity") != null) { //$NON-NLS-1$
paramDef.setMultiplicity(attributes.getValue("multiplicity")); //$NON-NLS-1$
} else {
paramDef.setMultiplicity(ExtensionPoint.ParameterDefinition.MULT_ONE);
}
if (attributes.getValue("type") != null) { //$NON-NLS-1$
paramDef.setType(attributes.getValue("type")); //$NON-NLS-1$
} else {
paramDef.setType(ExtensionPoint.ParameterDefinition.TYPE_STRING);
}
paramDef.setCustomData(attributes.getValue("custom-data")); //$NON-NLS-1$
paramDef.setDefaultValue(attributes.getValue("default-value")); //$NON-NLS-1$
} else if ("extension".equals(name)) { //$NON-NLS-1$
extension = new ModelExtension();
extension.setId(attributes.getValue("id")); //$NON-NLS-1$
extension.setPluginId(attributes.getValue("plugin-id")); //$NON-NLS-1$
extension.setPointId(attributes.getValue("point-id")); //$NON-NLS-1$
paramStack = new SimpleStack();
} else if ("parameter".equals(name)) { //$NON-NLS-1$
if (extension == null) {
if (entityResolver != null) {
throw new SAXException("[parameter] element found " //$NON-NLS-1$
+ "outside of [extension] element"); //$NON-NLS-1$
}
// ignore this element
log.warn("[parameter] element found " //$NON-NLS-1$
+ "outside of [extension] element"); //$NON-NLS-1$
return;
}
if (param != null) {
paramStack.push(param);
}
param = new ModelParameter();
param.setId(attributes.getValue("id")); //$NON-NLS-1$
param.setValue(attributes.getValue("value")); //$NON-NLS-1$
} else if ("value".equals(name)) { //$NON-NLS-1$
if (param == null) {
if (entityResolver != null) {
throw new SAXException("[value] element found " //$NON-NLS-1$
+ "outside of [parameter] element"); //$NON-NLS-1$
}
// ignore this element
log.warn("[value] element found " //$NON-NLS-1$
+ "outside of [parameter] element"); //$NON-NLS-1$
return;
}
paramValue = new StringBuffer();
} else {
if (entityResolver != null) {
throw new SAXException("unexpected manifest element - [" //$NON-NLS-1$
+ uri + "]/[" + localName + "]/[" + qName + "]"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
}
// ignore this element
log.warn("unexpected manifest element - [" + uri + "]/[" //$NON-NLS-1$ //$NON-NLS-2$
+ localName + "]/[" + qName + "]"); //$NON-NLS-1$ //$NON-NLS-2$
}
}
/**
* @see org.xml.sax.ContentHandler#endElement(java.lang.String,
* java.lang.String, java.lang.String)
*/
public void endElement(final String uri, final String localName,
final String qName) {
if (log.isDebugEnabled()) {
log.debug("endElement - [" + uri + "]/[" + localName //$NON-NLS-1$ //$NON-NLS-2$
+ "]/[" + qName + "]"); //$NON-NLS-1$ //$NON-NLS-2$
}
String name = qName;
if ("plugin".equals(name)) { //$NON-NLS-1$
// no-op
} else if ("plugin-fragment".equals(name)) { //$NON-NLS-1$
// no-op
} else if ("doc".equals(name)) { //$NON-NLS-1$
if (param != null) {
param.setDocumentation(documentation);
} else if (extension != null) {
extension.setDocumentation(documentation);
} else if (paramDef != null) {
paramDef.setDocumentation(documentation);
} else if (extensionPoint != null) {
extensionPoint.setDocumentation(documentation);
} else if (library != null) {
library.setDocumentation(documentation);
} else if (prerequisite != null) {
prerequisite.setDocumentation(documentation);
} else if (attribute != null) {
attribute.setDocumentation(documentation);
} else {
manifest.setDocumentation(documentation);
}
documentation = null;
} else if ("doc-ref".equals(name)) { //$NON-NLS-1$
// no-op
} else if ("doc-text".equals(name)) { //$NON-NLS-1$
documentation.setText(docText.toString());
docText = null;
} else if ("attributes".equals(name)) { //$NON-NLS-1$
attributeStack = null;
} else if ("attribute".equals(name)) { //$NON-NLS-1$
if (attributeStack.size() == 0) {
manifest.getAttributes().add(attribute);
attribute = null;
} else {
ModelAttribute temp = attribute;
attribute = (ModelAttribute) attributeStack.pop();
attribute.getAttributes().add(temp);
temp = null;
}
} else if ("requires".equals(name)) { //$NON-NLS-1$
// no-op
} else if ("import".equals(name)) { //$NON-NLS-1$
manifest.getPrerequisites().add(prerequisite);
prerequisite = null;
} else if ("runtime".equals(name)) { //$NON-NLS-1$
// no-op
} else if ("library".equals(name)) { //$NON-NLS-1$
manifest.getLibraries().add(library);
library = null;
} else if ("export".equals(name)) { //$NON-NLS-1$
// no-op
} else if ("extension-point".equals(name)) { //$NON-NLS-1$
manifest.getExtensionPoints().add(extensionPoint);
extensionPoint = null;
paramDefStack = null;
} else if ("parameter-def".equals(name)) { //$NON-NLS-1$
if (paramDefStack.size() == 0) {
extensionPoint.getParamDefs().add(paramDef);
paramDef = null;
} else {
ModelParameterDef temp = paramDef;
paramDef = (ModelParameterDef) paramDefStack.pop();
paramDef.getParamDefs().add(temp);
temp = null;
}
} else if ("extension".equals(name)) { //$NON-NLS-1$
manifest.getExtensions().add(extension);
extension = null;
paramStack = null;
} else if ("parameter".equals(name)) { //$NON-NLS-1$
if (paramStack.size() == 0) {
extension.getParams().add(param);
param = null;
} else {
ModelParameter temp = param;
param = (ModelParameter) paramStack.pop();
param.getParams().add(temp);
temp = null;
}
} else if ("value".equals(name)) { //$NON-NLS-1$
param.setValue(paramValue.toString());
paramValue = null;
} else {
// ignore any other element
log.warn("ignoring manifest element - [" + uri + "]/[" //$NON-NLS-1$ //$NON-NLS-2$
+ localName + "]/[" + qName + "]"); //$NON-NLS-1$ //$NON-NLS-2$
}
}
/**
* @see org.xml.sax.ContentHandler#characters(char[], int, int)
*/
public void characters(final char[] ch, final int start, final int length)
throws SAXException {
if (docText != null) {
docText.append(ch, start, length);
} else if (paramValue != null) {
paramValue.append(ch, start, length);
} else {
if (entityResolver != null) {
throw new SAXException("unexpected character data"); //$NON-NLS-1$
}
// ignore these characters
log.warn("ignoring character data - [" //$NON-NLS-1$
+ new String(ch, start, length) + "]"); //$NON-NLS-1$
}
}
ModelPluginManifest getResult() {
return manifest;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -