⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 manifesthandler.java

📁 java插件系统源码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        } 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 + -