joinlists

몇 개의 기존 목록을 결합하여 새 목록을 작성합니다.

joinlists 표현식은 목록의 목록이어야 하는 단일 인수를 사용합니다.

새 목록의 항목 순서는 소스 목록의 순서와 동일합니다. 목록은 제공된 순서대로 결합됩니다.

결합되는 목록에 중복 항목이 포함될 수 있는 경우 joinlists 표현식을 removeduplicates 표현식으로 랩핑하십시오.

<?xml version="1.0" encoding="UTF-8"?>
<RuleSet name="Example_joinlists"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:noNamespaceSchemaLocation=
"http://www.curamsoftware.com/CreoleRulesSchema.xsd">
  <Class name="Person">

    <Attribute name="pets">
      <type>
        <javaclass name="List">
          <ruleclass name="Pet"/>
        </javaclass>
      </type>
      <derivation>
        <specified/>
      </derivation>
    </Attribute>

  </Class>

  <Class name="Pet">
    <Initialization>
      <Attribute name="name">
        <type>
          <javaclass name="String"/>
        </type>
      </Attribute>
    </Initialization>

  </Class>

  <Class name="Household">

    <Attribute name="members">
      <type>
        <javaclass name="List">
          <ruleclass name="Person"/>
        </javaclass>
      </type>
      <derivation>
        <specified/>
      </derivation>
    </Attribute>

    <!-- 각 개인의 애완동물 목록을 결합하여
         가정의 모든 애완동물을
         입수합니다. -->
    <Attribute name="allPets">
      <type>
        <javaclass name="List">
          <ruleclass name="Pet"/>
        </javaclass>
      </type>
      <derivation>
        <joinlists>
          <!-- 애완 동물 목록으로서
               각 가정 구성원마다 하나의
               목록이 있습니다. -->
          <dynamiclist>
            <list>
              <reference attribute="members"/>
            </list>
            <listitemexpression>
              <reference attribute="pets">
                <current/>
              </reference>
            </listitemexpression>
          </dynamiclist>

        </joinlists>
      </derivation>
    </Attribute>

  </Class>

</RuleSet>