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    }