/******************************************************************************* * Copyright (c) 2008 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.smooks.configuration.editors.xml; import java.util.Collections; import java.util.List; import org.w3c.dom.Attr; /** * @author Dart Peng * @Date Jul 25, 2008 */ public class TagPropertyObject extends AbstractXMLObject { protected String type = "string"; //$NON-NLS-1$ protected String value = null; protected Attr referenceAttibute; public String getValue() { Attr attribute = getReferenceAttibute(); if (attribute != null) { return attribute.getValue(); } return value; } public void setValue(String value) { this.value = value; Attr attribute = getReferenceAttibute(); if (attribute != null) { attribute.setValue(value); } } /** * @return the referenceAttibute */ public Attr getReferenceAttibute() { return referenceAttibute; } /* * (non-Javadoc) * * @see * org.jboss.tools.smooks.configuration.editors.xml.AbstractXMLObject#getName * () */ @Override public String getName() { Attr attribute = getReferenceAttibute(); if (attribute != null) { return attribute.getName(); } else { return super.getName(); } } /* * (non-Javadoc) * * @seeorg.jboss.tools.smooks.configuration.editors.xml.AbstractXMLObject# * getNameSpacePrefix() */ @Override public String getNameSpacePrefix() { Attr attribute = getReferenceAttibute(); if (attribute != null) { return attribute.getPrefix(); } return null; } /* * (non-Javadoc) * * @seeorg.jboss.tools.smooks.configuration.editors.xml.AbstractXMLObject# * getNamespaceURI() */ @Override public String getNamespaceURI() { Attr attribute = getReferenceAttibute(); if (attribute != null) { return attribute.getNamespaceURI(); } return null; } /* * (non-Javadoc) * * @see * org.jboss.tools.smooks.configuration.editors.xml.AbstractXMLObject#setName * (java.lang.String) */ @Override public void setName(String name) { if(name != null && name.equals(getName())){ return; } super.setName(name); Attr attribute = getReferenceAttibute(); if (attribute != null) { // String namespace = attribute.getNamespaceURI(); // String namespacePrefix = attribute.getNamespacePrefix(); // Element container = attribute.getParent(); // String value = attribute.getValue(); // container.remove(attribute); // Attr newAttribute = DOMDocumentFactory.getInstance().createAttribute(container, // new QName(name, new Namespace(namespacePrefix, namespace)), value); // container.add(newAttribute); // this.setReferenceAttibute(newAttribute); } } /* * (non-Javadoc) * * @seeorg.jboss.tools.smooks.configuration.editors.xml.AbstractXMLObject# * setNameSpacePrefix(java.lang.String) */ @Override public void setNameSpacePrefix(String nameSpacePrefix) { Attr attribute = getReferenceAttibute(); if (attribute != null) { attribute.setPrefix(nameSpacePrefix); } } /* * (non-Javadoc) * * @seeorg.jboss.tools.smooks.configuration.editors.xml.AbstractXMLObject# * setNamespaceURI(java.lang.String) */ @Override public void setNamespaceURI(String namespaceURI) { Attr attribute = getReferenceAttibute(); if (attribute != null) { // attribute.setNamespace(new Namespace(attribute.getNamespacePrefix(), namespaceURI)); } } /** * @param referenceAttibute * the referenceAttibute to set */ public void setReferenceAttibute(Attr referenceAttibute) { this.referenceAttibute = referenceAttibute; } @Override public boolean isAttribute() { return true; } public String getType() { return type; } public void setType(String type) { this.type = type; } @Override public Object getID() { return "@" + super.getID(); //$NON-NLS-1$ } @Override public List<AbstractXMLObject> getXMLNodeChildren() { return Collections.emptyList(); } @Override public void setChildren(List<AbstractXMLObject> children) { } }