1920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson/* 2920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson * Copyright (C) 2010 Google Inc. 3920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson * 4920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson * Licensed under the Apache License, Version 2.0 (the "License"); 5920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson * you may not use this file except in compliance with the License. 6920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson * You may obtain a copy of the License at 7920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson * 8920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson * http://www.apache.org/licenses/LICENSE-2.0 9920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson * 10920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson * Unless required by applicable law or agreed to in writing, software 11920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson * distributed under the License is distributed on an "AS IS" BASIS, 12920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson * See the License for the specific language governing permissions and 14920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson * limitations under the License. 15920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson */ 16920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson 17920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodsonpackage com.google.doclava; 18920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson 19920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodsonimport java.util.ArrayList; 20920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson 21920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodsonpublic class ParsedTagInfo extends TagInfo { 22920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson private ContainerInfo mContainer; 23920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson private String mCommentText; 24920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson private Comment mComment; 25920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson 26920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson ParsedTagInfo(String name, String kind, String text, ContainerInfo base, SourcePositionInfo sp) { 27920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson super(name, kind, text, SourcePositionInfo.findBeginning(sp, text)); 28920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson mContainer = base; 29920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson mCommentText = text; 30920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson } 31920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson 32920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson public TagInfo[] commentTags() { 33920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson if (mComment == null) { 34920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson mComment = new Comment(mCommentText, mContainer, position()); 35920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson } 36920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson return mComment.tags(); 37920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson } 38920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson 39920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson protected void setCommentText(String comment) { 40920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson mCommentText = comment; 41920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson } 42920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson 43920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson public static <T extends ParsedTagInfo> TagInfo[] joinTags(T[] tags) { 44920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson ArrayList<TagInfo> list = new ArrayList<TagInfo>(); 45920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson final int N = tags.length; 46920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson for (int i = 0; i < N; i++) { 47920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson TagInfo[] t = tags[i].commentTags(); 48920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson final int M = t.length; 49920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson for (int j = 0; j < M; j++) { 50920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson list.add(t[j]); 51920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson } 52920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson } 53920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson return list.toArray(new TagInfo[list.size()]); 54920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson } 55920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson} 56