| /******************************************************************************* |
| * Copyright (c) 2005 Oracle Corporation. |
| * All rights reserved. This program and the accompanying materials |
| * are 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: |
| * Ian Trimble - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.jst.pagedesigner.dtmanager.converter.internal; |
| |
| import org.eclipse.jst.pagedesigner.converter.ConvertPosition; |
| import org.eclipse.jst.pagedesigner.converter.IConverterFactory; |
| import org.eclipse.jst.pagedesigner.dtmanager.converter.AbstractTagConverterContext; |
| import org.w3c.dom.Element; |
| import org.w3c.dom.Node; |
| import org.w3c.dom.Text; |
| |
| /** |
| * Design-time tag converter implementation of ITagConverterContext. |
| * |
| * @author Ian Trimble - Oracle |
| */ |
| public class DTTagConverterContext extends AbstractTagConverterContext { |
| |
| /** |
| * Constructs an instance for the specified DTTagConverter instance. |
| * |
| * @param tagConverter DTTagConverter instance. |
| */ |
| public DTTagConverterContext(DTTagConverter tagConverter) { |
| super(tagConverter); |
| } |
| |
| /* |
| * (non-Javadoc) |
| * @see org.eclipse.jst.pagedesigner.dtmanager.converter.ITagConverterContext#createElement(java.lang.String) |
| */ |
| public Element createElement(String tag) { |
| Element element = null; |
| if (tagConverter != null) { |
| element = ((DTTagConverter)tagConverter).createElement(tag); |
| } |
| return element; |
| } |
| |
| /* |
| * (non-Javadoc) |
| * @see org.eclipse.jst.pagedesigner.dtmanager.converter.ITagConverterContext#createText(java.lang.String) |
| */ |
| public Text createText(String content) { |
| Text text = null; |
| if (tagConverter != null) { |
| text = ((DTTagConverter)tagConverter).createText(content); |
| } |
| return text; |
| } |
| |
| /* |
| * (non-Javadoc) |
| * @see org.eclipse.jst.pagedesigner.dtmanager.converter.ITagConverterContext#addChild(org.w3c.dom.Node, org.eclipse.jst.pagedesigner.converter.ConvertPosition) |
| */ |
| public void addChild(Node childNode, ConvertPosition position) { |
| if (tagConverter != null) { |
| ((DTTagConverter)tagConverter).addChild(childNode, position); |
| } |
| } |
| |
| /* |
| * (non-Javadoc) |
| * @see org.eclipse.jst.pagedesigner.dtmanager.converter.ITagConverterContext#copyChildren(org.w3c.dom.Element, org.w3c.dom.Element) |
| */ |
| public void copyChildren(Element srcElement, Element destElement) { |
| if (tagConverter != null) { |
| ((DTTagConverter)tagConverter).copyChildren(srcElement, destElement); |
| } |
| } |
| |
| /** |
| * Utility method to get the current converter mode. Values are |
| * defined in <code>IConverterFactory</code>. |
| * |
| * <br>This method is available on the DTTagConverter but was not |
| * part of the ITagConverter and not available as a public API. |
| * The addition of this method allows an ITransformOperation for |
| * a DTTagConverter to get at the mode. |
| * See https://bugs.eclipse.org/bugs/show_bug.cgi?id=252861 |
| * |
| * @return the converter mode. If unable to get the mode, return -1. |
| */ |
| public int getMode() { |
| if (tagConverter != null) { |
| return ((DTTagConverter) tagConverter).getMode(); |
| } |
| |
| return IConverterFactory.MODE_DESIGNER; |
| } |
| } |