package railo.transformer.bytecode.statement.tag;
import java.util.Map;
import railo.transformer.bytecode.Body;
import railo.transformer.bytecode.Statement;
import railo.transformer.bytecode.statement.HasBody;
import railo.transformer.library.tag.TagLibTag;
public interface Tag extends Statement,HasBody {
/**
* appendix of the tag
* @return appendix
*/
public abstract String getAppendix();
/**
* return all Attributes as a map
* @return attributes
*/
public abstract Map getAttributes();
/**
* returns the fullname of the tag
* @return fullname
*/
public abstract String getFullname();
/**
* return the TagLibTag to this tag
* @return taglibtag
*/
public abstract TagLibTag getTagLibTag();
/**
* sets the appendix of the tag
* @param appendix
*/
public abstract void setAppendix(String appendix);
/**
* sets the fullanem of the tag
* @param fullname
*/
public abstract void setFullname(String fullname);
/**
* sets the tagLibTag of this tag
* @param tagLibTag
*/
public abstract void setTagLibTag(TagLibTag tagLibTag);
/**
* adds a attribute to the tag
* @param attribute
*/
public abstract void addAttribute(Attribute attribute);
/**
* check if tag has a tag with given name
* @param name
* @return contains attribute
*/
public abstract boolean containsAttribute(String name);
/**
* returns the body of the tag
* @return body of the tag
*/
public Body getBody();
/**
* sets the body of the tag
* @param body
*/
public abstract void setBody(Body body);
/**
* returns a specified attribute from the tag
* @param name
* @return
*/
public abstract Attribute getAttribute(String name);
/**
* returns a specified attribute from the tag
* @param name
* @return
*/
public abstract Attribute removeAttribute(String name);
public abstract void addMissingAttribute(String name, String type);
public abstract Map getMissingAttributes();
public abstract void setScriptBase(boolean scriptBase);
public abstract boolean isScriptBase();
//public abstract void setHint(String hint);
public abstract void addMetaData(Attribute metadata);
//public abstract String getHint();
public abstract Map<String, Attribute> getMetaData();
}