blob: af9bd678e394739e14417021786723c5352bb052 [file] [log] [blame]
/**
*
*/
package org.eclipse.jst.pagedesigner.itemcreation.customizer;
import org.eclipse.jst.jsf.common.dom.TagIdentifier;
/**
* Represents a writable customization data object.
*
* @see ICustomizationData
*
* @author Debajit Adhikary
*
*/
public interface IWritableCustomizationData extends ICustomizationData
{
//------------------------------------------------------------
// Methods to set the tag identifier information
//------------------------------------------------------------
/**
* Sets the tag identifier associated with a customization data object
*
* @param tagId
* The tag identifier to set it to
*
*/
public void setTagIdentifier(TagIdentifier tagId);
//------------------------------------------------------------
// Methods to set attribute data
//------------------------------------------------------------
/**
* Sets the attribute data for an existing customization data object
*
* @param attrs
* The AttributeData object to set it to
*
*/
public void setAttributes(AttributeData attrs);
/**
* Adds one attribute to an existing customization data object.
*
* @param attributeName
* The name of the attribute
* @param attributeValue
* The value of this attribute
*
*/
public void addAttribute(String attributeName, String attributeValue);
//------------------------------------------------------------
// Methods to set child data
//------------------------------------------------------------
/**
* Sets the child tag(s) customization information for an existing customization
* data object
*
* @param data
* The ChildrenData object to set it to
*
*/
public void setChildrenData(ChildrenData data);
/**
* Adds a child to an existing tag. (Adds the child's customization data to
* the existing tag's customization data)
*
* @param childrenData
* Customization Data for a child
*
*/
public void addChildData (ICustomizationData childrenData);
//------------------------------------------------------------
// Methods to set parent customization data
//------------------------------------------------------------
/**
* Sets parent customization information for an existing tag's customization
* data
*
* @param parentData
* The parent data to set it to
*
*/
public void setParentData(ParentData parentData);
/**
* Attaches a parent to a tag (The customization data for a parent is added
* to the tag's customization data). The oldest parent (outermost container
* tag) should be attached (added) first.
*
* @param parentData
* Parent customization data
*/
public void addParentData (ICustomizationData parentData);
}