001 package railo.transformer.cfml.script; 002 003 import java.util.HashMap; 004 import java.util.Map; 005 006 import railo.transformer.bytecode.Literal; 007 import railo.transformer.bytecode.literal.LitString; 008 import railo.transformer.bytecode.statement.tag.Attribute; 009 010 public class DocComment { 011 012 private StringBuilder tmpHint=new StringBuilder(); 013 private String hint; 014 //private List<DocCommentParam> params=new ArrayList<DocComment.DocCommentParam>(); 015 Map<String,Attribute> params=new HashMap<String, Attribute>(); 016 017 public void addHint(char c){ 018 tmpHint.append(c); 019 } 020 public void addParam(Attribute attribute){ 021 params.put(attribute.getName(),attribute); 022 } 023 024 /** 025 * @return the hint 026 */ 027 public String getHint() { 028 if(hint==null) { 029 Attribute attr = params.remove("hint"); 030 if(attr!=null) { 031 Literal lit=(Literal) attr.getValue(); 032 hint=lit.getString().trim(); 033 } 034 else { 035 hint=DocCommentTransformer.unwrap(tmpHint.toString()); 036 } 037 } 038 return hint; 039 } 040 041 public Attribute getHintAsAttribute() { 042 return new Attribute(true,"hint",LitString.toExprString(getHint()),"string"); 043 } 044 045 046 047 /** 048 * @return the params 049 */ 050 public Map<String,Attribute> getParams() { 051 return params; 052 } 053 }