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

<!--
// // See license.txt for license information. // // overrideimplementations.xml // // 19-Aug-2005 phamilton Created //
-->

<foreach name="overrideimplementations">
    <vector>methods</vector>
    <blocks>
        <stringmember name="name">
            <membername>name</membername>
        </stringmember>
<!--
the reason whi this entire thing issplit into multiple blocks is because each part of the code for an implementation run's on an object with a different classname and name, so it's impossible to combine them.
-->

        <overridemethods name="cppreturn">
            <location>parent()</location>
            <matchname/>
            <conditions>
                <objecthasmemberequal>
                    <membername>inheritance</membername>
                    <membervalue>override</membervalue>
                </objecthasmemberequal>
                <objecthasany>
                    <membername>implementations</membername>
                    <membertype>web</membertype>
                </objecthasany>
            </conditions>
            <blocks>
                <import href="../returns.xml"/>
            </blocks>
            <structure>\returns</structure>
        </overridemethods>
        <overridemethods name="cpparguments">
            <location>parent()</location>
            <matchname/>
            <conditions>
                <objecthasmemberequal>
                    <membername>inheritance</membername>
                    <membervalue>override</membervalue>
                </objecthasmemberequal>
                <objecthasany>
                    <membername>implementations</membername>
                    <membertype>web</membertype>
                </objecthasany>
            </conditions>
            <blocks>
                <import href="../arguments.xml"/>
            </blocks>
            <structure>(\arguments)</structure>
        </overridemethods>
        <webtangle name="web">
            <language>C++</language>
            <attributes>[boost_$(boostv)]</attributes>
        </webtangle>
        <text name="websource">
            <conditions>
                <objecthasmemberequal>
                    <membername>inheritance</membername>
                    <membervalue>override</membervalue>
                </objecthasmemberequal>
                <objecthasany>
                    <membername>implementations</membername>
                    <membertype>web</membertype>
                </objecthasany>
            </conditions>
            <content>\n{\web}\n\n</content>
        </text>
        <text name="cppname">
            <conditions>
                <objecthasmemberequal>
                    <membername>inheritance</membername>
                    <membervalue>override</membervalue>
                </objecthasmemberequal>
                <objecthasany>
                    <membername>implementations</membername>
                    <membertype>web</membertype>
                </objecthasany>
            </conditions>
            <content>\classname::\name</content>
        </text>
    </blocks>
    <structure>\cppreturn\cppname\cpparguments\websource</structure>
</foreach>