gw.gosudoc.com.sun.javadoc.ClassDoc Maven / Gradle / Ivy
Show all versions of gosu-doc Show documentation
/*
* This file is a shadowed version of the older javadoc codebase on which gosudoc is based; borrowed from jdk 9.
*/
package gw.gosudoc.com.sun.javadoc;
/**
* Represents a java class or interface and provides access to
* information about the class, the class's comment and tags, and the
* members of the class. A ClassDoc only exists if it was
* processed in this run of javadoc. References to classes
* which may or may not have been processed in this run are
* referred to using Type (which can be converted to ClassDoc,
* if possible).
*
* @see gw.gosudoc.com.sun.javadoc.Type
*
* @since 1.2
* @author Kaiyang Liu (original)
* @author Robert Field (rewrite)
*
* @deprecated
* The declarations in this package have been superseded by those
* in the package {@code jdk.javadoc.doclet}.
* For more information, see the Migration Guide in the documentation for that package.
*/
@Deprecated
public interface ClassDoc extends ProgramElementDoc, gw.gosudoc.com.sun.javadoc.Type
{
/**
* Return true if this class is abstract. Return true
* for all interfaces.
*
* @return true if this class is abstract. Return true
* for all interfaces.
*/
boolean isAbstract();
/**
* Return true if this class implements or interface extends
* {@code java.io.Serializable}.
*
* Since {@code java.io.Externalizable} extends
* {@code java.io.Serializable},
* Externalizable objects are also Serializable.
*
* @return true if this class implements or interface extends
* {@code java.io.Serializable}.
*/
boolean isSerializable();
/**
* Return true if this class implements or interface extends
* {@code java.io.Externalizable}.
*
* @return true if this class implements or interface extends
* {@code java.io.Externalizable}.
*/
boolean isExternalizable();
/**
* Return the serialization methods for this class or
* interface.
*
* @return an array of MethodDoc objects that represents
* the serialization methods for this class or interface.
*/
gw.gosudoc.com.sun.javadoc.MethodDoc[] serializationMethods();
/**
* Return the Serializable fields of this class or interface.
*
* Return either a list of default fields documented by
* {@code serial} tag
* or return a single {@code FieldDoc} for
* {@code serialPersistentField} member.
* There should be a {@code serialField} tag for
* each Serializable field defined by an {@code ObjectStreamField}
* array component of {@code serialPersistentField}.
*
* @return an array of {@code FieldDoc} objects for the Serializable
* fields of this class or interface.
*
* @see #definesSerializableFields()
* @see gw.gosudoc.com.sun.javadoc.SerialFieldTag
*/
gw.gosudoc.com.sun.javadoc.FieldDoc[] serializableFields();
/**
* Return true if Serializable fields are explicitly defined with
* the special class member {@code serialPersistentFields}.
*
* @return true if Serializable fields are explicitly defined with
* the special class member {@code serialPersistentFields}.
*
* @see #serializableFields()
* @see SerialFieldTag
*/
boolean definesSerializableFields();
/**
* Return the superclass of this class. Return null if this is an
* interface.
*
*
This method cannot accommodate certain generic type constructs.
* The {@code superclassType} method should be used instead.
*
* @return the ClassDoc for the superclass of this class, null if
* there is no superclass.
* @see #superclassType
*/
ClassDoc superclass();
/**
* Return the superclass of this class. Return null if this is an
* interface. A superclass is represented by either a
* {@code ClassDoc} or a {@code ParametrizedType}.
*
* @return the superclass of this class, or null if there is no superclass.
* @since 1.5
*/
gw.gosudoc.com.sun.javadoc.Type superclassType();
/**
* Test whether this class is a subclass of the specified class.
* If this is an interface, return false for all classes except
* {@code java.lang.Object} (we must keep this unexpected
* behavior for compatibility reasons).
*
* @param cd the candidate superclass.
* @return true if cd is a superclass of this class.
*/
boolean subclassOf(ClassDoc cd);
/**
* Return interfaces implemented by this class or interfaces extended
* by this interface. Includes only directly-declared interfaces, not
* inherited interfaces.
* Return an empty array if there are no interfaces.
*
*
This method cannot accommodate certain generic type constructs.
* The {@code interfaceTypes} method should be used instead.
*
* @return an array of ClassDoc objects representing the interfaces.
* @see #interfaceTypes
*/
ClassDoc[] interfaces();
/**
* Return interfaces implemented by this class or interfaces extended
* by this interface. Includes only directly-declared interfaces, not
* inherited interfaces.
* Return an empty array if there are no interfaces.
*
* @return an array of interfaces, each represented by a
* {@code ClassDoc} or a {@code ParametrizedType}.
* @since 1.5
*/
Type[] interfaceTypes();
/**
* Return the formal type parameters of this class or interface.
* Return an empty array if there are none.
*
* @return the formal type parameters of this class or interface.
* @since 1.5
*/
TypeVariable[] typeParameters();
/**
* Return the type parameter tags of this class or interface.
* Return an empty array if there are none.
*
* @return the type parameter tags of this class or interface.
* @since 1.5
*/
ParamTag[] typeParamTags();
/**
* Return
* included
* fields in this class or interface.
* Excludes enum constants if this is an enum type.
*
* @return an array of FieldDoc objects representing the included
* fields in this class or interface.
*/
gw.gosudoc.com.sun.javadoc.FieldDoc[] fields();
/**
* Return fields in this class or interface, filtered to the specified
* access
* modifier option.
* Excludes enum constants if this is an enum type.
*
* @param filter Specify true to filter according to the specified access
* modifier option.
* Specify false to include all fields regardless of
* access modifier option.
* @return an array of FieldDoc objects representing the included
* fields in this class or interface.
*/
gw.gosudoc.com.sun.javadoc.FieldDoc[] fields( boolean filter);
/**
* Return the enum constants if this is an enum type.
* Return an empty array if there are no enum constants, or if
* this is not an enum type.
*
* @return the enum constants if this is an enum type.
*/
FieldDoc[] enumConstants();
/**
* Return
* included
* methods in this class or interface.
* Same as {@code methods(true)}.
*
* @return an array of MethodDoc objects representing the included
* methods in this class or interface. Does not include
* constructors or annotation type elements.
*/
gw.gosudoc.com.sun.javadoc.MethodDoc[] methods();
/**
* Return methods in this class or interface, filtered to the specified
* access
* modifier option. Does not include constructors or annotation
* type elements.
*
* @param filter Specify true to filter according to the specified access
* modifier option.
* Specify false to include all methods regardless of
* access modifier option.
*
* @return an array of MethodDoc objects representing the included
* methods in this class or interface.
*/
MethodDoc[] methods( boolean filter);
/**
* Return
* included
* constructors in this class. An array containing the default
* no-arg constructor is returned if no other constructors exist.
* Return empty array if this is an interface.
*
* @return an array of ConstructorDoc objects representing the included
* constructors in this class.
*/
gw.gosudoc.com.sun.javadoc.ConstructorDoc[] constructors();
/**
* Return constructors in this class, filtered to the specified
* access
* modifier option. Return an array containing the default
* no-arg constructor if no other constructors exist.
*
* @param filter Specify true to filter according to the specified access
* modifier option.
* Specify false to include all constructors regardless of
* access modifier option.
* @return an array of ConstructorDoc objects representing the included
* constructors in this class.
*/
ConstructorDoc[] constructors( boolean filter);
/**
* Return
* included
* nested classes and interfaces within this class or interface.
* This includes both static and non-static nested classes.
* (This method should have been named {@code nestedClasses()},
* as inner classes are technically non-static.) Anonymous and local classes
* or interfaces are not included.
*
* @return an array of ClassDoc objects representing the included classes
* and interfaces defined in this class or interface.
*/
ClassDoc[] innerClasses();
/**
* Return nested classes and interfaces within this class or interface
* filtered to the specified
* access
* modifier option.
* This includes both static and non-static nested classes.
* Anonymous and local classes are not included.
*
* @param filter Specify true to filter according to the specified access
* modifier option.
* Specify false to include all nested classes regardless of
* access modifier option.
* @return a filtered array of ClassDoc objects representing the included
* classes and interfaces defined in this class or interface.
*/
ClassDoc[] innerClasses(boolean filter);
/**
* Find the specified class or interface within the context of this class doc.
* Search order: 1) qualified name, 2) nested in this class or interface,
* 3) in this package, 4) in the class imports, 5) in the package imports.
* Return the ClassDoc if found, null if not found.
* @param className Specify the class name to find as a String.
* @return the ClassDoc if found, null if not found.
*/
ClassDoc findClass(String className);
/**
* Get the list of classes and interfaces declared as imported.
* These are called "single-type-import declarations" in
* The Java™ Language Specification.
*
* @return an array of ClassDoc representing the imported classes.
*
* @deprecated Import declarations are implementation details that
* should not be exposed here. In addition, not all imported
* classes are imported through single-type-import declarations.
*/
@Deprecated
ClassDoc[] importedClasses();
/**
* Get the list of packages declared as imported.
* These are called "type-import-on-demand declarations" in
* The Java™ Language Specification.
*
* @return an array of PackageDoc representing the imported packages.
*
* @deprecated Import declarations are implementation details that
* should not be exposed here. In addition, this method's
* return type does not allow for all type-import-on-demand
* declarations to be returned.
*/
@Deprecated
PackageDoc[] importedPackages();
}