<project name="typefound">


    <target name="testTask">
        <condition property="testTask">
            <typefound name="echo"/>
        </condition>
    </target>


    <target name="testUndefined">
        <condition property="testUndefined">
            <typefound />
        </condition>
    </target>

    <target name="testTaskThatIsntDefined">
        <condition property="testTaskThatIsntDefined">
            <typefound name="invalid-and-undefined-task-name"/>
        </condition>
    </target>

    <target name="testTaskThatDoesntReallyExist">
     <taskdef name="invalid-task-name" onerror="ignore"
        classname="org.example.invalid.task.name.hopefully"/>
        <condition property="testTaskThatDoesntReallyExist">
            <typefound name="invalid-task-name"/>
        </condition>
    </target>

    <target name="testType">
        <condition property="testType">
            <typefound name="path"/>
        </condition>
    </target>

    <target name="testPreset">
        <presetdef name="important-echo">
            <echo level="error"/>
        </presetdef>
        <condition property="testPreset">
            <typefound name="important-echo"/>
        </condition>
    </target>

    <target name="testMacro">
        <macrodef name="error-message">
            <element name="text" optional="false"/>
            <sequential>
                <echo level="error">@{text}</echo>
            </sequential>
        </macrodef>
        <condition property="testMacro">
            <typefound name="error-message"/>
        </condition>
    </target>

</project>