/*
* Copyright (c) 1998-2011 Caucho Technology -- all rights reserved
*
* Caucho Technology permits redistribution, modification and use
* of this file in source and binary form ("the Software") under the
* Caucho Developer Source License ("the License"). The following
* conditions must be met:
*
* 1. Each copy or derived work of the Software must preserve the copyright
* notice and this notice unmodified.
*
* 2. Redistributions of the Software in source or binary form must include
* an unmodified copy of the License, normally in a plain ASCII text
*
* 3. The names "Resin" or "Caucho" are trademarks of Caucho Technology and
* may not be used to endorse products derived from this software.
* "Resin" or "Caucho" may not appear in the names of products derived
* from this software.
*
* This Software is provided "AS IS," without a warranty of any kind.
* ALL EXPRESS OR IMPLIED REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
* IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
* OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED.
*
* CAUCHO TECHNOLOGY AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES
* SUFFERED BY LICENSEE OR ANY THIRD PARTY AS A RESULT OF USING OR
* DISTRIBUTING SOFTWARE. IN NO EVENT WILL CAUCHO OR ITS LICENSORS BE LIABLE
* FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL,
* CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND
* REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF OR
* INABILITY TO USE SOFTWARE, EVEN IF HE HAS BEEN ADVISED OF THE POSSIBILITY
* OF SUCH DAMAGES.
*
* @author Sam
*/
package com.caucho.doc.javadoc;
import com.caucho.log.Log;
import com.caucho.util.CharBuffer;
import com.caucho.util.L10N;
import java.util.logging.Logger;
/**
* A single javadoc item, a package, class, member, or method.
*/
public class JavadocItem {
static protected final Logger log = Log.open(JavadocItem.class);
static final L10N L = new L10N(JavadocItem.class);
public final static int PACKAGE=0x01;
public final static int CLASS=0x02;
public final static int METHOD=0x04;
public final static int VARIABLE=0x08;
public final static int ANY=PACKAGE | CLASS | METHOD | VARIABLE;
String _name;
String _fullName;
int _type;
JavadocFile _file;
String _anchor;
String _description;
boolean _exact = false;
public JavadocItem(String name, String fullName, int type, String anchor, String description, JavadocFile file)
{
_name = name;
_fullName = fullName;
_type = type;
_file = file;
_anchor = anchor;
_description = description;
}
public String getName()
{
return _name;
}
public String getFullName()
{
return _fullName;
}
public int getType()
{
return _type;
}
public String getTypeString()
{
switch (_type) {
case PACKAGE:
return "package";
case CLASS:
return "class";
case METHOD:
return "method";
case VARIABLE:
return "var";
}
return "unknown";
}
public JavadocFile getFile()
{
return _file;
}
public String getAnchor()
{
return _anchor;
}
public String getDescription()
{
return _description;
}
void setExact(boolean exact)
{
_exact = exact;
}
/**
* If this JavadocItem is generated as a result of a query, it may be flagged
* as exact to indicate that it would be appropriate for this item to be
* displayed automatically.
*/
public boolean getExact()
{
return _exact;
}
public String getHref()
{
CharBuffer cb = CharBuffer.allocate();
cb.append(_file.getHref());
if (_anchor != null) {
cb.append('#');
cb.append(_anchor);
}
return cb.close();
}
}