<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<!--
// // See license.txt for license information. // // schema_typename.xml // // 16-Aug-2003 phamilton Created //
-->

<object xmlns:xi="http://www.w3.org/2001/XInclude" xmlns="urn:xmlliterate.schema" name="@typename">
    <description>Abstract class representing the name of a type.</description>
    <classname>schema_typename</classname>
    <members>
        <typedobjvectortype name="attributes">
            <description>Attributes for this typename, usually used when it's a member. See "attribute.docbook" for a list of all possible attributes.</description>
            <reftype>attribute</reftype>
        </typedobjvectortype>
    </members>
    <methods>
        <method name="iscomposite">
            <access>public</access>
            <inheritance>abstract</inheritance>
            <description>Test if this typename is a composite one.</description>
            <returns>
                <booltype>
                    <description>True if this typename is composite.</description>
                </booltype>
            </returns>
        </method>
    </methods>
    <derived>
        <object name="compositetype">
            <description>A iscomposite datatype.</description>
            <classname>schema_compositetype</classname>
            <methods>
                <method name="iscomposite">
                    <inheritance>override</inheritance>
                    <implementations>
                        <xi:include href="cpp/return_true.xml"/>
                        <xi:include href="java/return_true.xml"/>
                    </implementations>
                </method>
            </methods>
        </object>
        <object name="templatetypename">
            <description>Concrete subclass of typename representing a typename which uses a template to derive another type.</description>
            <classname>schema_templatetypename</classname>
            <members>
                <stringtype name="reftype">
                    <description>The type of the object passed to the template. The object name must be unique. Arrange the includes of your objects in your schema so that this named object will be correctly found. The object may be in different namespaces, and includes etc will still work.</description>
                </stringtype>
            </members>
            <methods>
                <method name="iscomposite">
                    <inheritance>override</inheritance>
                    <implementations>
                        <xi:include href="cpp/return_false.xml"/>
                        <xi:include href="java/return_false.xml"/>
                    </implementations>
                </method>
            </methods>
        </object>
        <object name="enumtypename">
            <description>Concrete subclass of typename representing an enumeration of tokens.</description>
            <classname>schema_enumtypename</classname>
            <members>
                <stringtype name="enumeration">
                    <description>The enumeration to use. The name is the object name for an enumeration, not the classname.</description>
                </stringtype>
            </members>
            <methods>
                <method name="iscomposite">
                    <inheritance>override</inheritance>
                    <implementations>
                        <xi:include href="cpp/return_false.xml"/>
                        <xi:include href="java/return_false.xml"/>
                    </implementations>
                </method>
            </methods>
        </object>
        <object name="ptrtypename">
            <description>Concrete subclass of typename representing a typename which holds a pointer to another object in the schema.</description>
            <classname>schema_ptrtypename</classname>
            <members>
                <stringtype name="reftype">
                    <description>The type of the object passed to the template. The object name must be unique. Arrange the includes of your objects in your schema so that this named object will be correctly found. The object may be in different namespaces, and includes etc will still work.</description>
                </stringtype>
                <booltype name="readonly">
                    <description>This is a read-only pointer. The object can't be modified through it.</description>
                </booltype>
            </members>
            <methods>
                <method name="iscomposite">
                    <inheritance>override</inheritance>
                    <implementations>
                        <xi:include href="cpp/return_false.xml"/>
                        <xi:include href="java/return_false.xml"/>
                    </implementations>
                </method>
            </methods>
        </object>
        <object name="othertypename">
            <description>Concrete subclass of typename representing a typename which is not in the typename system.</description>
            <classname>schema_othertypename</classname>
            <methods>
                <method name="iscomposite">
                    <inheritance>override</inheritance>
                    <implementations>
                        <xi:include href="cpp/return_false.xml"/>
                        <xi:include href="java/return_false.xml"/>
                    </implementations>
                </method>
            </methods>
        </object>
    </derived>
</object>