| /******************************************************************************* |
| * 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; |
| |
| import org.w3c.dom.Element; |
| |
| /** |
| * Transforms an original input Element instance to an output Element instance |
| * by invoking a collection of ITransformOperation instances. |
| * |
| * <p><b>Provisional API - subject to change</b></p> |
| * |
| * @author Ian Trimble - Oracle |
| */ |
| public interface ITransformer { |
| |
| /** |
| * Appends an ITransformOperation instance to the collection. |
| * |
| * @param operation ITransformOperation instance to be appended. |
| * API: does this need to be on the interface or could it be pushed |
| * into the instance constructor (i.e. factory). |
| */ |
| public void appendTransformOperation(ITransformOperation operation); |
| |
| /** |
| * Transforms an original input Element instance to an output Element |
| * instance, typically by invoking each ITransformOperation instance in |
| * this instance's collection. |
| * |
| * @param srcElement Original input Element instance. |
| * @return Transformed output Element instance. |
| * |
| * TODO: I'd like to consider templating the generic ITransformer |
| * interface to ITransformer<I,O> and making this a normative instance |
| * case of ITransformer<Element, Element> |
| */ |
| public Element transform(Element srcElement); |
| |
| } |