001 package railo.transformer.bytecode.statement.tag; 002 003 import java.util.Map; 004 005 import railo.transformer.bytecode.Body; 006 import railo.transformer.bytecode.Statement; 007 import railo.transformer.bytecode.statement.HasBody; 008 import railo.transformer.library.tag.TagLibTag; 009 010 public interface Tag extends Statement,HasBody { 011 012 /** 013 * appendix of the tag 014 * @return appendix 015 */ 016 public abstract String getAppendix(); 017 018 /** 019 * return all Attributes as a map 020 * @return attributes 021 */ 022 public abstract Map getAttributes(); 023 024 /** 025 * returns the fullname of the tag 026 * @return fullname 027 */ 028 public abstract String getFullname(); 029 030 /** 031 * return the TagLibTag to this tag 032 * @return taglibtag 033 */ 034 public abstract TagLibTag getTagLibTag(); 035 036 /** 037 * sets the appendix of the tag 038 * @param appendix 039 */ 040 public abstract void setAppendix(String appendix); 041 042 /** 043 * sets the fullanem of the tag 044 * @param fullname 045 */ 046 public abstract void setFullname(String fullname); 047 048 /** 049 * sets the tagLibTag of this tag 050 * @param tagLibTag 051 */ 052 public abstract void setTagLibTag(TagLibTag tagLibTag); 053 054 /** 055 * adds a attribute to the tag 056 * @param attribute 057 */ 058 public abstract void addAttribute(Attribute attribute); 059 060 /** 061 * check if tag has a tag with given name 062 * @param name 063 * @return contains attribute 064 */ 065 public abstract boolean containsAttribute(String name); 066 067 /** 068 * returns the body of the tag 069 * @return body of the tag 070 */ 071 public Body getBody(); 072 073 /** 074 * sets the body of the tag 075 * @param body 076 */ 077 public abstract void setBody(Body body); 078 079 /** 080 * returns a specified attribute from the tag 081 * @param name 082 * @return 083 */ 084 public abstract Attribute getAttribute(String name); 085 086 /** 087 * returns a specified attribute from the tag 088 * @param name 089 * @return 090 */ 091 public abstract Attribute removeAttribute(String name); 092 093 public abstract void addMissingAttribute(String name, String type); 094 095 public abstract Map getMissingAttributes(); 096 097 098 public abstract void setScriptBase(boolean scriptBase); 099 public abstract boolean isScriptBase(); 100 101 //public abstract void setHint(String hint); 102 public abstract void addMetaData(Attribute metadata); 103 //public abstract String getHint(); 104 public abstract Map<String, Attribute> getMetaData(); 105 }