blob: 162f97fe8ddf49b6babd6be22e82d7182ed0b745 [file] [log] [blame]
package org.eclipse.jst.pagedesigner.itemcreation.command;
import javax.xml.namespace.QName;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.jst.jsf.common.dom.TagIdentifier;
import org.eclipse.jst.pagedesigner.dom.IDOMPosition;
import org.eclipse.jst.pagedesigner.dom.ValidatorSupport;
/**
* @author cbateman
*
* * <p><b>Provisional API - subject to change</b></p>
*
* Clients may sub-class
*
*/
public class TagContainerCreationCommand extends ContainerCreationCommand {
/**
* @param domPosition
* @param containerTag
* @param tagBeingCreated
*/
public TagContainerCreationCommand(IDOMPosition domPosition,
TagIdentifier containerTag, TagIdentifier tagBeingCreated)
{
super(domPosition, containerTag, tagBeingCreated);
}
@Override
protected IDOMPosition doExecute()
{
final IDOMPosition domPosition = getDomPosition();
final QName containerQName = getContainerTag().asQName();
boolean hasform = ValidatorSupport.checkContainer(domPosition, containerQName);
IDOMPosition newPosition = domPosition;
if (!hasform) {
newPosition = ValidatorSupport
.insertContainer(domPosition, containerQName, getContainerCustomizationData());
if (newPosition == null) {
newPosition = domPosition;
}
}
return newPosition;
}
/**
* Override to inject customization data into the tag creation
* @return a customization data for the container.
*/
protected IAdaptable getContainerCustomizationData()
{
return null;
}
@Override
protected final boolean prepare()
{
throw new UnsupportedOperationException("don't use");
}
}