/******************************************************************************* * Copyright (c) 2000, 2008 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.jdt.internal.formatter; import org.eclipse.jdt.internal.compiler.ast.Javadoc; /** * Represents a full Javadoc comment for the {@link FormatterCommentParser}. * <p> * It might have one or several blocks ( see {@link FormatJavadocBlock}). The javadoc comment might * starts with a <b>description</b> which means that its first block has no tag. * </p> */ public class FormatJavadoc extends Javadoc { FormatJavadocBlock[] blocks; int textStart, textEnd; int lineStart, lineEnd; public FormatJavadoc(int sourceStart, int sourceEnd, int length) { super(sourceStart, sourceEnd); if (length > 0) { this.blocks= new FormatJavadocBlock[length]; } } /** * Return the first block of the javadoc or <code>null</code> if has no block at all. * * @return a {@link FormatJavadocBlock} or <code>null</code>. */ public FormatJavadocBlock getFirstBlock() { if (this.blocks != null) { return this.blocks[0]; } return null; } /** * Returns whether it has several lines or not. * * @return <code>true</code> if the javadoc comment has several lines <code>false</code> * otherwise (e.g. header and footer are on the same line). */ public boolean isMultiLine() { return this.lineStart < this.lineEnd; } public String toDebugString(char[] source) { if (this.blocks == null) { return "No block in current Javadoc comment"; //$NON-NLS-1$ } StringBuffer buffer= new StringBuffer(); int length= this.blocks.length; for (int i= 0; i < length; i++) { this.blocks[i].toStringDebug(buffer, source); buffer.append('\n'); } return buffer.toString(); } }