Back to overview of XmlDoclet

This is how you would send parameter values to the document generator from a Maven POM file:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-javadoc-plugin</artifactId>
  ...
  <configuration>
    ...
    <doclet>info.mikaelsvensson.devtools.doclet.xml.XmlDoclet</doclet>
    ...
    <additionalparams>
      -format.name extensive
      -format.property.excludePackage parameter_value
      -format.property.classMemberTypeFilter scfnimtp
      -format.property.enumMemberTypeFilter efnim
      -format.property.interfaceMemberTypeFilter sfnimtp
      -format.property.annotationMemberTypeFilter sm
      -format.property.showAnnotations false
      -format.property.wrapListElements parameter_value
    </additionalparams>
...

Document Creator Format Options

excludePackage
classMemberTypeFilter

Specifies which types of members should be included in the generated XML document for regular classes, i.e note interfaces or enumerations.

The property value is a string of character where each character represents a type of member.

s
Super classes
c
Constructors
e
Enum constants
f
Fields
n
Inner classes
i
Interfaces
m
Methods
t
Type parameters
p
Type parameter tags

Default value: scfnimtp

enumMemberTypeFilter

Specifies which types of members should be included in the generated XML document for enum classes.

The value uses the same syntax as classMemberTypeFilter.

Default value: efnim

interfaceMemberTypeFilter

Specifies which types of members should be included in the generated XML document for interfaces.

The value uses the same syntax as classMemberTypeFilter.

Default value: sfnimtp

annotationMemberTypeFilter

Specifies which types of members should be included in the generated XML document for annotation classes, i.e. interfaces that define annotations.

The value uses the same syntax as classMemberTypeFilter.

Default value: sm

showAnnotations

Sets whether or not annotations for methods, classes, fields etcetera should be included in the XML document.

This setting does not affect whether or not annotation definitions, i.e. annotation classes, are included in the generated XML document.

Default value: false

wrapListElements Sets whether or not child elements of a particular type should be "wrapped" in an "container elements". If this option is set to <code>true</code> each <code><class></code> elements will have a child element <code><methods></code> which will contain one <code><method></code> element for each method in the class. Otherwise, i.e. if this configuration property is set to <code>false</code>, the <code><method></code> elements will be added as direct children of the <code><class></code> element.

Samples

There are 7 samples for this document creator:

AnnotatedClass

Source:

package info.mikaelsvensson.devtools;

import info.mikaelsvensson.devtools.doclet.xml.FormatProperty;

public class AnnotatedClass {
    @FormatProperty
    public static final String TEST = "testing";
}

Output:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<documentation>
    <java>
        <packages>
            <package name="info.mikaelsvensson.devtools">
                <classes>
                    <class abstract="false" access="public" externalizable="false" final="false" name="AnnotatedClass" qualified-name="info.mikaelsvensson.devtools.AnnotatedClass" serializable="false" static="false" type="class">
                        <superclass dimension="0" primitive="false" qualified-name="java.lang.Object"/>
                        <constructors>
                            <constructor access="public" final="false" name="AnnotatedClass" native="false" static="false" synchronized="false" synthetic="false" varargs="false"/>
                        </constructors>
                        <fields>
                            <field access="public" constant-value="testing" final="true" name="TEST" static="true" synthetic="false" transient="false" volatile="false">
                                <type dimension="0" primitive="false" qualified-name="java.lang.String"/>
                            </field>
                        </fields>
                    </class>
                </classes>
            </package>
        </packages>
    </java>
</documentation>

ClassA

Source:

package info.mikaelsvensson.devtools;

import java.util.List;
import java.util.Map;

/**
 * Class comment
 */
public class ClassA {

    public static final String A_CONSTANT = "value";

    /**
     * this is a private integer constant used for... nothing.
     */
    private static final int PRIVATE_INTEGER = 1;

    private String field1;
    public String field2;

    public void voidMethod(String... variableArgs) {

    }

    private int intMethod(int[][] table) {
        return 0;
    }

    /**
     * This method handles numbers. Unfortunately this comment contains a {@unrecognized weird} inline <code>tag</code>.
     *
     * @param numberParameter
     *         parameter comment
     * @param <T>
     *         a comment
     * @return something
     * @customtag
     */
    protected <T extends Number> T numberMethod(T numberParameter) {
        return null;
    }

    /**
     * This is a comment with both <code>HTML</code> style and {@code Javadoc} style tags.
     *
     * @return a grouped list
     * @throws Exception
     *         when something does wrong.
     */
    Map<String, List<String>> getGroupedStrings() throws Exception {
        return null;
    }
}

Output:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<documentation>
    <java>
        <packages>
            <package name="info.mikaelsvensson.devtools">
                <classes>
                    <class abstract="false" access="public" externalizable="false" final="false" name="ClassA" qualified-name="info.mikaelsvensson.devtools.ClassA" serializable="false" static="false" type="class">
                        <comment format="html">
                            <p>Class comment</p>
                        </comment>
                        <superclass dimension="0" primitive="false" qualified-name="java.lang.Object"/>
                        <constructors>
                            <constructor access="public" final="false" name="ClassA" native="false" static="false" synchronized="false" synthetic="false" varargs="false"/>
                        </constructors>
                        <fields>
                            <field access="public" constant-value="value" final="true" name="A_CONSTANT" static="true" synthetic="false" transient="false" volatile="false">
                                <type dimension="0" primitive="false" qualified-name="java.lang.String"/>
                            </field>
                            <field access="private" constant-value="1" final="true" name="PRIVATE_INTEGER" static="true" synthetic="false" transient="false" volatile="false">
                                <comment format="html">
                                    <p>this is a private integer constant used for... nothing.</p>
                                </comment>
                                <type dimension="0" primitive="true" qualified-name="int"/>
                            </field>
                            <field access="private" final="false" name="field1" static="false" synthetic="false" transient="false" volatile="false">
                                <type dimension="0" primitive="false" qualified-name="java.lang.String"/>
                            </field>
                            <field access="public" final="false" name="field2" static="false" synthetic="false" transient="false" volatile="false">
                                <type dimension="0" primitive="false" qualified-name="java.lang.String"/>
                            </field>
                        </fields>
                        <methods>
                            <method abstract="false" access="public" final="false" name="voidMethod" native="false" static="false" synchronized="false" synthetic="false" varargs="true">
                                <parameters>
                                    <parameter name="variableArgs">
                                        <type dimension="1" primitive="false" qualified-name="java.lang.String"/>
                                    </parameter>
                                </parameters>
                                <return-type dimension="0" primitive="true" qualified-name="void"/>
                            </method>
                            <method abstract="false" access="private" final="false" name="intMethod" native="false" static="false" synchronized="false" synthetic="false" varargs="false">
                                <parameters>
                                    <parameter name="table">
                                        <type dimension="2" primitive="true" qualified-name="int"/>
                                    </parameter>
                                </parameters>
                                <return-type dimension="0" primitive="true" qualified-name="int"/>
                            </method>
                            <method abstract="false" access="package" final="false" name="numberMethod" native="false" static="false" synchronized="false" synthetic="false" varargs="false">
                                <comment format="html">
                                    <p>This method handles numbers. Unfortunately this comment contains a <span class="tag-unrecognized">weird</span> inline <code>tag</code>.</p>
                                </comment>
                                <tags>
                                    <tag kind="@customtag" name="@customtag" text=""/>
                                </tags>
                                <parameters>
                                    <parameter name="numberParameter">
                                        <type dimension="0" primitive="false" qualified-name="T">
                                            <bounds>
                                                <bound dimension="0" primitive="false" qualified-name="java.lang.Number"/>
                                            </bounds>
                                        </type>
                                        <comment format="html">
                                            <p>parameter comment</p>
                                        </comment>
                                    </parameter>
                                </parameters>
                                <type-parameters>
                                    <type-parameter dimension="0" primitive="false" qualified-name="T">
                                        <bounds>
                                            <bound dimension="0" primitive="false" qualified-name="java.lang.Number"/>
                                        </bounds>
                                        <comment format="html">
                                            <p>a comment</p>
                                        </comment>
                                    </type-parameter>
                                </type-parameters>
                                <return-type dimension="0" primitive="false" qualified-name="T">
                                    <bounds>
                                        <bound dimension="0" primitive="false" qualified-name="java.lang.Number"/>
                                    </bounds>
                                    <comment format="html">
                                        <p>something</p>
                                    </comment>
                                </return-type>
                            </method>
                            <method abstract="false" access="default" final="false" name="getGroupedStrings" native="false" static="false" synchronized="false" synthetic="false" varargs="false">
                                <comment format="html">
                                    <p>This is a comment with both <code>HTML</code> style and <code>Javadoc</code> style tags.</p>
                                </comment>
                                <tags/>
                                <throws-list>
                                    <throws dimension="0" primitive="false" qualified-name="java.lang.Exception">
                                        <comment format="html">
                                            <p>when something does wrong.</p>
                                        </comment>
                                    </throws>
                                </throws-list>
                                <return-type dimension="0" primitive="false" qualified-name="java.util.Map">
                                    <type-arguments>
                                        <type-argument dimension="0" primitive="false" qualified-name="java.lang.String"/>
                                        <type-argument dimension="0" primitive="false" qualified-name="java.util.List">
                                            <type-arguments>
                                                <type-argument dimension="0" primitive="false" qualified-name="java.lang.String"/>
                                            </type-arguments>
                                        </type-argument>
                                    </type-arguments>
                                    <comment format="html">
                                        <p>a grouped list</p>
                                    </comment>
                                </return-type>
                            </method>
                        </methods>
                    </class>
                </classes>
            </package>
        </packages>
    </java>
</documentation>

Contact

Source:

package info.mikaelsvensson.devtools;

import java.lang.annotation.ElementType;
import java.lang.annotation.Target;

@Pojo(name = "ca")
public class Contact {
    @Required
    private String emailAddress;

    @Required
    private String name;

    @NumericRange(min = 1900)
    private int birthYear;

    @Text(condition = "^[0-9\\s]+$", conditionType = TextConditionType.REGEXP)
    @Required
    private String zipCode;

    @Texts({@Text(condition = "sv_SE", conditionType = TextConditionType.EQUALS), @Text(condition = "en", conditionType = TextConditionType.STARTS_WITH)})
    private String preferredLocale;
}

@Target(ElementType.TYPE)
@interface Pojo {
    String name();
}

@Target(ElementType.FIELD)
@interface Text {
    String condition();

    TextConditionType conditionType() default TextConditionType.EQUALS;
}

@Target(ElementType.FIELD)
@interface Texts {
    Text[] value();
}

@Target(ElementType.FIELD)
@interface NumericRange {
    long min() default Long.MIN_VALUE;

    long max() default Long.MAX_VALUE;
}

@interface Required {

}

enum TextConditionType {
    EQUALS,
    STARTS_WITH,
    REGEXP
}

Output:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<documentation>
    <java>
        <packages>
            <package name="info.mikaelsvensson.devtools">
                <classes>
                    <class abstract="false" access="default" externalizable="false" final="true" name="TextConditionType" qualified-name="info.mikaelsvensson.devtools.TextConditionType" serializable="true" static="false" type="enum">
                        <enum-constants>
                            <enum-constant access="public" final="true" name="EQUALS" static="true" synthetic="false" transient="false" volatile="false">
                                <type dimension="0" primitive="false" qualified-name="info.mikaelsvensson.devtools.TextConditionType"/>
                            </enum-constant>
                            <enum-constant access="public" final="true" name="STARTS_WITH" static="true" synthetic="false" transient="false" volatile="false">
                                <type dimension="0" primitive="false" qualified-name="info.mikaelsvensson.devtools.TextConditionType"/>
                            </enum-constant>
                            <enum-constant access="public" final="true" name="REGEXP" static="true" synthetic="false" transient="false" volatile="false">
                                <type dimension="0" primitive="false" qualified-name="info.mikaelsvensson.devtools.TextConditionType"/>
                            </enum-constant>
                        </enum-constants>
                        <methods>
                            <method abstract="false" access="public" final="false" name="values" native="false" static="true" synchronized="false" synthetic="false" varargs="false">
                                <return-type dimension="1" primitive="false" qualified-name="info.mikaelsvensson.devtools.TextConditionType"/>
                            </method>
                            <method abstract="false" access="public" final="false" name="valueOf" native="false" static="true" synchronized="false" synthetic="false" varargs="false">
                                <parameters>
                                    <parameter name="name">
                                        <type dimension="0" primitive="false" qualified-name="java.lang.String"/>
                                    </parameter>
                                </parameters>
                                <return-type dimension="0" primitive="false" qualified-name="info.mikaelsvensson.devtools.TextConditionType"/>
                            </method>
                        </methods>
                    </class>
                    <class abstract="true" access="default" externalizable="false" final="false" name="Required" qualified-name="info.mikaelsvensson.devtools.Required" serializable="false" static="false" type="annotation"/>
                    <class abstract="true" access="default" externalizable="false" final="false" name="NumericRange" qualified-name="info.mikaelsvensson.devtools.NumericRange" serializable="false" static="false" type="annotation">
                        <elements>
                            <element abstract="false" access="public" final="false" name="min" native="false" static="false" synchronized="false" synthetic="false" varargs="false">
                                <return-type dimension="0" primitive="true" qualified-name="long"/>
                                <default-value type="single-object">-9223372036854775808</default-value>
                            </element>
                            <element abstract="false" access="public" final="false" name="max" native="false" static="false" synchronized="false" synthetic="false" varargs="false">
                                <return-type dimension="0" primitive="true" qualified-name="long"/>
                                <default-value type="single-object">9223372036854775807</default-value>
                            </element>
                        </elements>
                    </class>
                    <class abstract="true" access="default" externalizable="false" final="false" name="Texts" qualified-name="info.mikaelsvensson.devtools.Texts" serializable="false" static="false" type="annotation">
                        <elements>
                            <element abstract="false" access="public" final="false" name="value" native="false" static="false" synchronized="false" synthetic="false" varargs="false">
                                <return-type dimension="1" primitive="false" qualified-name="info.mikaelsvensson.devtools.Text"/>
                            </element>
                        </elements>
                    </class>
                    <class abstract="true" access="default" externalizable="false" final="false" name="Text" qualified-name="info.mikaelsvensson.devtools.Text" serializable="false" static="false" type="annotation">
                        <elements>
                            <element abstract="false" access="public" final="false" name="condition" native="false" static="false" synchronized="false" synthetic="false" varargs="false">
                                <return-type dimension="0" primitive="false" qualified-name="java.lang.String"/>
                            </element>
                            <element abstract="false" access="public" final="false" name="conditionType" native="false" static="false" synchronized="false" synthetic="false" varargs="false">
                                <return-type dimension="0" primitive="false" qualified-name="info.mikaelsvensson.devtools.TextConditionType"/>
                                <default-value type="enum-constant">
                                    <enum-constant access="public" final="true" name="EQUALS" static="true" synthetic="false" transient="false" volatile="false">
                                        <type dimension="0" primitive="false" qualified-name="info.mikaelsvensson.devtools.TextConditionType"/>
                                    </enum-constant>
                                </default-value>
                            </element>
                        </elements>
                    </class>
                    <class abstract="true" access="default" externalizable="false" final="false" name="Pojo" qualified-name="info.mikaelsvensson.devtools.Pojo" serializable="false" static="false" type="annotation">
                        <elements>
                            <element abstract="false" access="public" final="false" name="name" native="false" static="false" synchronized="false" synthetic="false" varargs="false">
                                <return-type dimension="0" primitive="false" qualified-name="java.lang.String"/>
                            </element>
                        </elements>
                    </class>
                    <class abstract="false" access="public" externalizable="false" final="false" name="Contact" qualified-name="info.mikaelsvensson.devtools.Contact" serializable="false" static="false" type="class">
                        <superclass dimension="0" primitive="false" qualified-name="java.lang.Object"/>
                        <constructors>
                            <constructor access="public" final="false" name="Contact" native="false" static="false" synchronized="false" synthetic="false" varargs="false"/>
                        </constructors>
                        <fields>
                            <field access="private" final="false" name="emailAddress" static="false" synthetic="false" transient="false" volatile="false">
                                <type dimension="0" primitive="false" qualified-name="java.lang.String"/>
                            </field>
                            <field access="private" final="false" name="name" static="false" synthetic="false" transient="false" volatile="false">
                                <type dimension="0" primitive="false" qualified-name="java.lang.String"/>
                            </field>
                            <field access="private" final="false" name="birthYear" static="false" synthetic="false" transient="false" volatile="false">
                                <type dimension="0" primitive="true" qualified-name="int"/>
                            </field>
                            <field access="private" final="false" name="zipCode" static="false" synthetic="false" transient="false" volatile="false">
                                <type dimension="0" primitive="false" qualified-name="java.lang.String"/>
                            </field>
                            <field access="private" final="false" name="preferredLocale" static="false" synthetic="false" transient="false" volatile="false">
                                <type dimension="0" primitive="false" qualified-name="java.lang.String"/>
                            </field>
                        </fields>
                    </class>
                </classes>
            </package>
        </packages>
    </java>
</documentation>

Fruit

Source:

package enumeration;

import java.awt.*;

public enum Fruit {

    APPLE(Color.RED),
    ORANGE(Color.ORANGE),
    BANANA(Color.YELLOW),
    PEAR(Color.GREEN);

    private Fruit(final Color color) {
        this.color = color;
    }

    private Color color;

    public Color color() {
        return color;
    }
}

Output:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<documentation>
    <java>
        <packages>
            <package name="enumeration">
                <classes>
                    <class abstract="false" access="public" externalizable="false" final="true" name="Fruit" qualified-name="enumeration.Fruit" serializable="true" static="false" type="enum">
                        <enum-constants>
                            <enum-constant access="public" final="true" name="APPLE" static="true" synthetic="false" transient="false" volatile="false">
                                <type dimension="0" primitive="false" qualified-name="enumeration.Fruit"/>
                            </enum-constant>
                            <enum-constant access="public" final="true" name="ORANGE" static="true" synthetic="false" transient="false" volatile="false">
                                <type dimension="0" primitive="false" qualified-name="enumeration.Fruit"/>
                            </enum-constant>
                            <enum-constant access="public" final="true" name="BANANA" static="true" synthetic="false" transient="false" volatile="false">
                                <type dimension="0" primitive="false" qualified-name="enumeration.Fruit"/>
                            </enum-constant>
                            <enum-constant access="public" final="true" name="PEAR" static="true" synthetic="false" transient="false" volatile="false">
                                <type dimension="0" primitive="false" qualified-name="enumeration.Fruit"/>
                            </enum-constant>
                        </enum-constants>
                        <fields>
                            <field access="private" final="false" name="color" static="false" synthetic="false" transient="false" volatile="false">
                                <type dimension="0" primitive="false" qualified-name="java.awt.Color"/>
                            </field>
                        </fields>
                        <methods>
                            <method abstract="false" access="public" final="false" name="values" native="false" static="true" synchronized="false" synthetic="false" varargs="false">
                                <return-type dimension="1" primitive="false" qualified-name="enumeration.Fruit"/>
                            </method>
                            <method abstract="false" access="public" final="false" name="valueOf" native="false" static="true" synchronized="false" synthetic="false" varargs="false">
                                <parameters>
                                    <parameter name="name">
                                        <type dimension="0" primitive="false" qualified-name="java.lang.String"/>
                                    </parameter>
                                </parameters>
                                <return-type dimension="0" primitive="false" qualified-name="enumeration.Fruit"/>
                            </method>
                            <method abstract="false" access="public" final="false" name="color" native="false" static="false" synchronized="false" synthetic="false" varargs="false">
                                <return-type dimension="0" primitive="false" qualified-name="java.awt.Color"/>
                            </method>
                        </methods>
                    </class>
                </classes>
            </package>
        </packages>
    </java>
</documentation>

GenericInterface

Source:

import java.util.Map;

public interface GenericInterface<N extends Number> {
    N getNumber();

    void setNumber(N number);

    Map<N, String> getMap();

    void setMap(Map<N, String> map);
}

Output:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<documentation>
    <java>
        <packages>
            <package name="">
                <classes>
                    <class abstract="true" access="public" externalizable="false" final="false" name="GenericInterface" qualified-name="GenericInterface" serializable="false" static="false" type="interface">
                        <methods>
                            <method abstract="false" access="public" final="false" name="getNumber" native="false" static="false" synchronized="false" synthetic="false" varargs="false">
                                <return-type dimension="0" primitive="false" qualified-name="N">
                                    <bounds>
                                        <bound dimension="0" primitive="false" qualified-name="java.lang.Number"/>
                                    </bounds>
                                </return-type>
                            </method>
                            <method abstract="false" access="public" final="false" name="setNumber" native="false" static="false" synchronized="false" synthetic="false" varargs="false">
                                <parameters>
                                    <parameter name="number">
                                        <type dimension="0" primitive="false" qualified-name="N">
                                            <bounds>
                                                <bound dimension="0" primitive="false" qualified-name="java.lang.Number"/>
                                            </bounds>
                                        </type>
                                    </parameter>
                                </parameters>
                                <return-type dimension="0" primitive="true" qualified-name="void"/>
                            </method>
                            <method abstract="false" access="public" final="false" name="getMap" native="false" static="false" synchronized="false" synthetic="false" varargs="false">
                                <return-type dimension="0" primitive="false" qualified-name="java.util.Map">
                                    <type-arguments>
                                        <type-argument dimension="0" primitive="false" qualified-name="N">
                                            <bounds>
                                                <bound dimension="0" primitive="false" qualified-name="java.lang.Number"/>
                                            </bounds>
                                        </type-argument>
                                        <type-argument dimension="0" primitive="false" qualified-name="java.lang.String"/>
                                    </type-arguments>
                                </return-type>
                            </method>
                            <method abstract="false" access="public" final="false" name="setMap" native="false" static="false" synchronized="false" synthetic="false" varargs="false">
                                <parameters>
                                    <parameter name="map">
                                        <type dimension="0" primitive="false" qualified-name="java.util.Map">
                                            <type-arguments>
                                                <type-argument dimension="0" primitive="false" qualified-name="N">
                                                    <bounds>
                                                        <bound dimension="0" primitive="false" qualified-name="java.lang.Number"/>
                                                    </bounds>
                                                </type-argument>
                                                <type-argument dimension="0" primitive="false" qualified-name="java.lang.String"/>
                                            </type-arguments>
                                        </type>
                                    </parameter>
                                </parameters>
                                <return-type dimension="0" primitive="true" qualified-name="void"/>
                            </method>
                        </methods>
                        <type-parameters>
                            <type-parameter dimension="0" primitive="false" qualified-name="N">
                                <bounds>
                                    <bound dimension="0" primitive="false" qualified-name="java.lang.Number"/>
                                </bounds>
                            </type-parameter>
                        </type-parameters>
                    </class>
                </classes>
            </package>
        </packages>
    </java>
</documentation>

NoPackage

Source:

public class NoPackage {
}

Output:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<documentation>
    <java>
        <packages>
            <package name="">
                <classes>
                    <class abstract="false" access="public" externalizable="false" final="false" name="NoPackage" qualified-name="NoPackage" serializable="false" static="false" type="class">
                        <superclass dimension="0" primitive="false" qualified-name="java.lang.Object"/>
                        <constructors>
                            <constructor access="public" final="false" name="NoPackage" native="false" static="false" synchronized="false" synthetic="false" varargs="false"/>
                        </constructors>
                    </class>
                </classes>
            </package>
        </packages>
    </java>
</documentation>

Vehicle

Source:

package info.mikaelsvensson.devtools;

public class Vehicle {
}

interface Motorized {
}

class Car extends Vehicle {
}

class Truck extends Vehicle implements Motorized, HasItems<Trailer> {
}

class Trailer extends Pullable {
}

class TrainCar extends Pullable {
}

interface HasItems<Pullable> {
}

class Pullable extends Vehicle {
}

class Bicycle extends Vehicle implements Motorized {
}

class Train extends Vehicle implements Motorized, HasItems<TrainCar> {
}

class Metro extends Train {
}

Output:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<documentation>
    <java>
        <packages>
            <package name="info.mikaelsvensson.devtools">
                <classes>
                    <class abstract="false" access="default" externalizable="false" final="false" name="Metro" qualified-name="info.mikaelsvensson.devtools.Metro" serializable="false" static="false" type="class">
                        <superclass dimension="0" primitive="false" qualified-name="info.mikaelsvensson.devtools.Train"/>
                        <constructors>
                            <constructor access="default" final="false" name="Metro" native="false" static="false" synchronized="false" synthetic="false" varargs="false"/>
                        </constructors>
                    </class>
                    <class abstract="false" access="default" externalizable="false" final="false" name="Train" qualified-name="info.mikaelsvensson.devtools.Train" serializable="false" static="false" type="class">
                        <superclass dimension="0" primitive="false" qualified-name="info.mikaelsvensson.devtools.Vehicle"/>
                        <constructors>
                            <constructor access="default" final="false" name="Train" native="false" static="false" synchronized="false" synthetic="false" varargs="false"/>
                        </constructors>
                        <interfaces>
                            <interface dimension="0" primitive="false" qualified-name="info.mikaelsvensson.devtools.Motorized"/>
                            <interface dimension="0" primitive="false" qualified-name="info.mikaelsvensson.devtools.HasItems">
                                <type-arguments>
                                    <type-argument dimension="0" primitive="false" qualified-name="info.mikaelsvensson.devtools.TrainCar"/>
                                </type-arguments>
                            </interface>
                        </interfaces>
                    </class>
                    <class abstract="false" access="default" externalizable="false" final="false" name="Bicycle" qualified-name="info.mikaelsvensson.devtools.Bicycle" serializable="false" static="false" type="class">
                        <superclass dimension="0" primitive="false" qualified-name="info.mikaelsvensson.devtools.Vehicle"/>
                        <constructors>
                            <constructor access="default" final="false" name="Bicycle" native="false" static="false" synchronized="false" synthetic="false" varargs="false"/>
                        </constructors>
                        <interfaces>
                            <interface dimension="0" primitive="false" qualified-name="info.mikaelsvensson.devtools.Motorized"/>
                        </interfaces>
                    </class>
                    <class abstract="false" access="default" externalizable="false" final="false" name="Pullable" qualified-name="info.mikaelsvensson.devtools.Pullable" serializable="false" static="false" type="class">
                        <superclass dimension="0" primitive="false" qualified-name="info.mikaelsvensson.devtools.Vehicle"/>
                        <constructors>
                            <constructor access="default" final="false" name="Pullable" native="false" static="false" synchronized="false" synthetic="false" varargs="false"/>
                        </constructors>
                    </class>
                    <class abstract="true" access="default" externalizable="false" final="false" name="HasItems" qualified-name="info.mikaelsvensson.devtools.HasItems" serializable="false" static="false" type="interface">
                        <type-parameters>
                            <type-parameter dimension="0" primitive="false" qualified-name="Pullable"/>
                        </type-parameters>
                    </class>
                    <class abstract="false" access="default" externalizable="false" final="false" name="TrainCar" qualified-name="info.mikaelsvensson.devtools.TrainCar" serializable="false" static="false" type="class">
                        <superclass dimension="0" primitive="false" qualified-name="info.mikaelsvensson.devtools.Pullable"/>
                        <constructors>
                            <constructor access="default" final="false" name="TrainCar" native="false" static="false" synchronized="false" synthetic="false" varargs="false"/>
                        </constructors>
                    </class>
                    <class abstract="false" access="default" externalizable="false" final="false" name="Trailer" qualified-name="info.mikaelsvensson.devtools.Trailer" serializable="false" static="false" type="class">
                        <superclass dimension="0" primitive="false" qualified-name="info.mikaelsvensson.devtools.Pullable"/>
                        <constructors>
                            <constructor access="default" final="false" name="Trailer" native="false" static="false" synchronized="false" synthetic="false" varargs="false"/>
                        </constructors>
                    </class>
                    <class abstract="false" access="default" externalizable="false" final="false" name="Truck" qualified-name="info.mikaelsvensson.devtools.Truck" serializable="false" static="false" type="class">
                        <superclass dimension="0" primitive="false" qualified-name="info.mikaelsvensson.devtools.Vehicle"/>
                        <constructors>
                            <constructor access="default" final="false" name="Truck" native="false" static="false" synchronized="false" synthetic="false" varargs="false"/>
                        </constructors>
                        <interfaces>
                            <interface dimension="0" primitive="false" qualified-name="info.mikaelsvensson.devtools.Motorized"/>
                            <interface dimension="0" primitive="false" qualified-name="info.mikaelsvensson.devtools.HasItems">
                                <type-arguments>
                                    <type-argument dimension="0" primitive="false" qualified-name="info.mikaelsvensson.devtools.Trailer"/>
                                </type-arguments>
                            </interface>
                        </interfaces>
                    </class>
                    <class abstract="false" access="default" externalizable="false" final="false" name="Car" qualified-name="info.mikaelsvensson.devtools.Car" serializable="false" static="false" type="class">
                        <superclass dimension="0" primitive="false" qualified-name="info.mikaelsvensson.devtools.Vehicle"/>
                        <constructors>
                            <constructor access="default" final="false" name="Car" native="false" static="false" synchronized="false" synthetic="false" varargs="false"/>
                        </constructors>
                    </class>
                    <class abstract="true" access="default" externalizable="false" final="false" name="Motorized" qualified-name="info.mikaelsvensson.devtools.Motorized" serializable="false" static="false" type="interface"/>
                    <class abstract="false" access="public" externalizable="false" final="false" name="Vehicle" qualified-name="info.mikaelsvensson.devtools.Vehicle" serializable="false" static="false" type="class">
                        <superclass dimension="0" primitive="false" qualified-name="java.lang.Object"/>
                        <constructors>
                            <constructor access="public" final="false" name="Vehicle" native="false" static="false" synchronized="false" synthetic="false" varargs="false"/>
                        </constructors>
                    </class>
                </classes>
            </package>
        </packages>
    </java>
</documentation>

Back to top

Reflow Maven skin by Andrius Velykis.