/** * * Copyright (c) 2014, the Railo Company Ltd. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library. If not, see <http://www.gnu.org/licenses/>. * **/ package lucee.transformer.bytecode.statement.tag; import java.util.Map; import lucee.transformer.bytecode.Body; import lucee.transformer.bytecode.Statement; import lucee.transformer.bytecode.statement.HasBody; import lucee.transformer.library.tag.TagLibTag; import lucee.transformer.library.tag.TagLibTagAttr; 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<String,Attribute> 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 */ @Override 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(TagLibTagAttr attr); public abstract TagLibTagAttr[] 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(); }