diff options
Diffstat (limited to 'archive/working/apitools/org.eclipse.wtp.releng.tools.component.core/src/org/eclipse/wtp/releng/tools/component/model/ComponentXML.java')
-rw-r--r-- | archive/working/apitools/org.eclipse.wtp.releng.tools.component.core/src/org/eclipse/wtp/releng/tools/component/model/ComponentXML.java | 361 |
1 files changed, 0 insertions, 361 deletions
diff --git a/archive/working/apitools/org.eclipse.wtp.releng.tools.component.core/src/org/eclipse/wtp/releng/tools/component/model/ComponentXML.java b/archive/working/apitools/org.eclipse.wtp.releng.tools.component.core/src/org/eclipse/wtp/releng/tools/component/model/ComponentXML.java deleted file mode 100644 index 3b97594b5..000000000 --- a/archive/working/apitools/org.eclipse.wtp.releng.tools.component.core/src/org/eclipse/wtp/releng/tools/component/model/ComponentXML.java +++ /dev/null @@ -1,361 +0,0 @@ -/********************************************************************** - * Copyright (c) 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM - Initial API and implementation - **********************************************************************/ - -package org.eclipse.wtp.releng.tools.component.model; - -import java.io.BufferedInputStream; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; -import org.eclipse.wtp.releng.tools.component.ILocation; -import org.xml.sax.Attributes; -import org.xml.sax.InputSource; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.DefaultHandler; - -public class ComponentXML -{ - public static final String CONST_COMPONENT_XML = "component.xml"; - private static final String NS = "http://eclipse.org/wtp/releng/tools/component-model"; - private static final String ELEMENT_COMPONENT = "component"; - private static final String ELEMENT_PLUGIN = "plugin"; - private static final String ELEMENT_PACKAGE = "package"; - private static final String ELEMENT_TYPE = "type"; - private static final String ELEMENT_COMPONENT_DEPENDS = "component-depends"; - private static final String ELEMENT_COMPONENT_REF = "component-ref"; - private static final String ATTR_XMLNS = "xmlns"; - private static final String ATTR_NAME = "name"; - private static final String ATTR_FRAGMENT = "fragment"; - private static final String ATTR_ID = "id"; - private static final String ATTR_API = "api"; - private static final String ATTR_EXCLUSIVE = "exclusive"; - private static final String ATTR_UNRESTRICTED = "unrestricted"; - private static final String ATTR_REFERENCE = "reference"; - private static final String ATTR_IMPLEMENT = "implement"; - private static final String ATTR_SUBCLASS = "subclass"; - private static final String ATTR_INSTANTIATE = "instantiate"; - - private ILocation location; - private boolean loaded; - private String name; - private List plugins; - private List packages; - private ComponentDepends componentDepends; - - public ComponentXML() - { - loaded = false; - } - /** - * @return Returns the location. - */ - public ILocation getLocation() - { - return location; - } - - /** - * @param location The location to set. - */ - public void setLocation(ILocation location) - { - this.location = location; - loaded = false; - } - - /** - * @return Returns the componentDepends. - */ - public ComponentDepends getComponentDepends() - { - return componentDepends; - } - - /** - * @param componentDepends The componentDepends to set. - */ - public void setComponentDepends(ComponentDepends componentDepends) - { - this.componentDepends = componentDepends; - } - - /** - * @return Returns the name. - */ - public String getName() - { - return name; - } - - /** - * @param name The name to set. - */ - public void setName(String name) - { - this.name = name; - } - - /** - * @return Returns the packages. - */ - public List getPackages() - { - if (packages == null) - packages = new ArrayList(1); - return packages; - } - - /** - * @return Returns the plugins. - */ - public List getPlugins() - { - if (plugins == null) - plugins = new ArrayList(1); - return plugins; - } - - public void load() throws IOException, FileNotFoundException - { - if (!loaded) - { - try - { - SAXParserFactory factory = SAXParserFactory.newInstance(); - factory.setNamespaceAware(false); - factory.setValidating(false); - SAXParser parser = factory.newSAXParser(); - parser.parse(new InputSource(new BufferedInputStream(location.getInputStream())), new ComponentXMLHandler(this)); - loaded = true; - } - catch (ParserConfigurationException pce) - { - pce.printStackTrace(); - } - catch (SAXException saxe) - { - saxe.printStackTrace(); - } - } - } - - public String toString() - { - StringBuffer sb = new StringBuffer("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); - sb.append("<component "); - saveAttribute(sb, ATTR_XMLNS, NS); - saveAttribute(sb, ATTR_NAME, getName()); - sb.append(">"); - saveComponentDepends(sb, getComponentDepends()); - for (Iterator it = getPlugins().iterator(); it.hasNext();) - savePlugin(sb, (Plugin)it.next()); - for (Iterator it = getPackages().iterator(); it.hasNext();) - savePackage(sb, (Package)it.next()); - sb.append("</component>"); - return sb.toString(); - } - - public void save() throws IOException - { - if (location != null) - { - File file = new File(location.getAbsolutePath()); - file.getParentFile().mkdirs(); - FileOutputStream fos = new FileOutputStream(file); - fos.write(toString().getBytes("UTF-8")); - fos.close(); - } - } - - private void saveComponentDepends(StringBuffer sb, ComponentDepends dep) - { - sb.append("<component-depends"); - if (dep.getUnrestricted() != null) - saveAttribute(sb, ATTR_UNRESTRICTED, String.valueOf(dep.isUnrestricted())); - sb.append(">"); - for (Iterator it = dep.getComponentRefs().iterator(); it.hasNext();) - saveComponentRef(sb, (ComponentRef)it.next()); - sb.append("</component-depends>"); - } - - private void saveComponentRef(StringBuffer sb, ComponentRef ref) - { - sb.append("<component-ref"); - saveAttribute(sb, ATTR_NAME, ref.getName()); - sb.append("/>"); - } - - private void savePlugin(StringBuffer sb, Plugin plugin) - { - sb.append("<plugin"); - saveAttribute(sb, ATTR_ID, plugin.getId()); - if (plugin.getFragment() != null) - saveAttribute(sb, ATTR_FRAGMENT, String.valueOf(plugin.isFragment())); - sb.append("/>"); - } - - private void savePackage(StringBuffer sb, Package pkg) - { - sb.append("<package"); - saveAttribute(sb, ATTR_NAME, pkg.getName()); - if (pkg.getApi() != null) - saveAttribute(sb, ATTR_API, String.valueOf(pkg.isApi())); - if (pkg.getExclusive() != null) - saveAttribute(sb, ATTR_EXCLUSIVE, String.valueOf(pkg.isExclusive())); - sb.append(">"); - for (Iterator it = pkg.getTypes().iterator(); it.hasNext();) - saveType(sb, (Type)it.next()); - sb.append("</package>"); - } - - private void saveType(StringBuffer sb, Type type) - { - sb.append("<type"); - saveAttribute(sb, ATTR_NAME, type.getName()); - if (type.getReference() != null) - saveAttribute(sb, ATTR_REFERENCE, String.valueOf(type.isReference())); - if (type.getImplement() != null) - saveAttribute(sb, ATTR_IMPLEMENT, String.valueOf(type.isImplement())); - if (type.getSubclass() != null) - saveAttribute(sb, ATTR_SUBCLASS, String.valueOf(type.isSubclass())); - if (type.getInstantiate() != null) - saveAttribute(sb, ATTR_INSTANTIATE, String.valueOf(type.isInstantiate())); - sb.append("/>"); - } - - private void saveAttribute(StringBuffer sb, String key, String value) - { - if (key != null && value != null) - { - sb.append(" "); - sb.append(key); - sb.append("=\""); - sb.append(value); - sb.append("\""); - } - } - - public Object clone() - { - ComponentXML clone = new ComponentXML(); - clone.setName(getName()); - clone.setLocation(getLocation()); - ComponentDepends depends = getComponentDepends(); - if (depends != null) - clone.setComponentDepends((ComponentDepends)depends.clone()); - if (plugins != null) - { - List pluginsClone = clone.getPlugins(); - for (Iterator it = plugins.iterator(); it.hasNext();) - pluginsClone.add(((Plugin)it.next()).clone()); - } - if (packages != null) - { - List packagesClone = clone.getPackages(); - for (Iterator it = packages.iterator(); it.hasNext();) - packagesClone.add(((Package)it.next()).clone()); - } - return clone; - } - - private static class ComponentXMLHandler extends DefaultHandler - { - private ComponentXML compXML; - private Package pkg; - - public ComponentXMLHandler(ComponentXML compXML) - { - this.compXML = compXML; - this.compXML.setComponentDepends(new ComponentDepends()); - this.compXML.setName(null); - this.compXML.getPlugins().clear(); - this.compXML.getPackages().clear(); - } - - public void startElement(String uri, String elementName, String qName, Attributes attributes) throws SAXException - { - if (equalsLocalpart(qName, ELEMENT_PLUGIN) || equalsLocalpart(elementName, ELEMENT_PLUGIN)) - { - Plugin plugin = new Plugin(); - plugin.setId(attributes.getValue(ATTR_ID)); - String attrFragment = attributes.getValue(ATTR_FRAGMENT); - if (attrFragment != null) - plugin.setFragment(Boolean.valueOf(attrFragment)); - compXML.getPlugins().add(plugin); - } - else if (equalsLocalpart(qName, ELEMENT_PACKAGE) || equalsLocalpart(elementName, ELEMENT_PACKAGE)) - { - pkg = new Package(); - pkg.setName(attributes.getValue(ATTR_NAME)); - String attrApi = attributes.getValue(ATTR_API); - if (attrApi != null) - pkg.setApi(Boolean.valueOf(attrApi)); - String attrExclusive = attributes.getValue(ATTR_EXCLUSIVE); - if (attrExclusive != null) - pkg.setExclusive(Boolean.valueOf(attrExclusive)); - compXML.getPackages().add(pkg); - } - else if (equalsLocalpart(qName, ELEMENT_TYPE) || equalsLocalpart(elementName, ELEMENT_TYPE)) - { - if (pkg != null) - { - Type type = new Type(); - type.setName(attributes.getValue(ATTR_NAME)); - String attrRef = attributes.getValue(ATTR_REFERENCE); - if (attrRef != null) - type.setReference(Boolean.valueOf(attrRef)); - String attrImpl = attributes.getValue(ATTR_IMPLEMENT); - if (attrImpl != null) - type.setImplement(Boolean.valueOf(attrImpl)); - String attrSubclass = attributes.getValue(ATTR_SUBCLASS); - if (attrSubclass != null) - type.setSubclass(Boolean.valueOf(attrSubclass)); - String attrInstantiate = attributes.getValue(ATTR_INSTANTIATE); - if (attrInstantiate != null) - type.setInstantiate(Boolean.valueOf(attrInstantiate)); - pkg.getTypes().add(type); - } - } - else if (equalsLocalpart(qName, ELEMENT_COMPONENT) || equalsLocalpart(elementName, ELEMENT_COMPONENT)) - { - compXML.setName(attributes.getValue(ATTR_NAME)); - } - else if (equalsLocalpart(qName, ELEMENT_COMPONENT_DEPENDS) || equalsLocalpart(elementName, ELEMENT_COMPONENT_DEPENDS)) - { - String attrUnrestricted = attributes.getValue(ATTR_UNRESTRICTED); - if (attrUnrestricted != null) - compXML.getComponentDepends().setUnrestricted(Boolean.valueOf(attrUnrestricted)); - } - else if (equalsLocalpart(qName, ELEMENT_COMPONENT_REF) || equalsLocalpart(elementName, ELEMENT_COMPONENT_REF)) - { - ComponentRef compRef = new ComponentRef(); - compRef.setName(attributes.getValue(ATTR_NAME)); - compXML.getComponentDepends().getComponentRefs().add(compRef); - } - } - - private boolean equalsLocalpart(String fullname, String localpart) - { - int index = fullname.indexOf(':'); - if (index != -1) - return fullname.substring(index + 1).equals(localpart); - else - return fullname.equals(localpart); - } - } -} |