<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Copyright (c) 2014 Evolveum
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~     http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->
<objectTemplate oid="10000000-0000-0000-0000-000000000231"
   xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
   xmlns='http://midpoint.evolveum.com/xml/ns/public/common/common-3'
   xmlns:c='http://midpoint.evolveum.com/xml/ns/public/common/common-3'
   xmlns:t='http://prism.evolveum.com/xml/ns/public/types-3'
   xmlns:q="http://prism.evolveum.com/xml/ns/public/query-3"
   xmlns:ext="http://midpoint.evolveum.com/xml/ns/story/orgsync/ext">
    <name>Org Template</name>
    <mapping>
        <name>Org-org mapping</name>
        <authoritative>true</authoritative>
        <strength>strong</strength>
        <source>
            <path>extension/ext:orgpath</path>
        </source>
        <source>
            <path>subtype</path>
        </source>
        <expression>
            <assignmentTargetSearch>
                <targetType>c:OrgType</targetType>
                <filter>
                    <q:text>
                        c:name = ```
                                    parent = orgpath.tokenize('/')[1]
                                    if (!parent) {
                                        return "TOP"
                                    } else {
                                        return parent
                                    }
                                ```
                    </q:text>
                </filter>
                <createOnDemand>true</createOnDemand>
                <populateObject>
                    <populateItem>
                        <expression>
                            <script>
                                <code>
                                    orgpath.tokenize('/')[1]
                                </code>
                            </script>
                        </expression>
                        <target>
                            <path>name</path>
                        </target>
                    </populateItem>
                    <populateItem>
                        <expression>
                            <value>replicated</value>
                        </expression>
                        <target>
                            <path>subtype</path>
                        </target>
                    </populateItem>
                    <populateItem>
                        <expression>
                            <script>
                                <code>
                                    orgpath.tokenize('/')[1..-1].join('/')
                                </code>
                            </script>
                        </expression>
                        <target>
                            <path>extension/ext:orgpath</path>
                        </target>
                    </populateItem>
                </populateObject>
            </assignmentTargetSearch>
        </expression>
        <target>
            <path>assignment</path>
        </target>
        <condition>
            <script>
                <code>subtype == 'replicated'</code>
            </script>
        </condition>
    </mapping>

</objectTemplate>
