fixedlist

Crea una nueva lista de elementos conocidos en el momento del diseño de conjunto de reglas.

La expresión fixedlist especifica:

La lista creada contendrá sus miembros en el orden listado en el conjunto de reglas.

Consejo: El elemento members puede contener 0, 1 o muchos elementos hijo.

Sin embargo, si fixedlist está contenido en una operación de proceso de lista pero sólo especifica 0 o 1 miembros de lista, el validador de conjunto de reglas de CER emitirá un aviso, indicando que la lista puede ser innecesaria.

Si necesita crear una lista donde el número de elementos de la lista no se conoce en el momento del diseño, considere la posibilidad de utilizar dynamiclist en su lugar.

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

    <!-- Las mascotas de propiedad de esta persona -->
    <Attribute name="pets">
      <type>
        <javaclass name="List">
          <ruleclass name="Pet"/>
        </javaclass>
      </type>
      <derivation>

        <!-- Una lista fija de mascotas -->
        <fixedlist>
          <listof>
            <ruleclass name="Pet"/>
          </listof>
          <members>
            <!-- Cada persona tiene exactamente dos mascotas,
                 Skippy y Lassie -->
            <create ruleclass="Pet">
              <String value="Skippy"/>
              <String value="Kangaroo"/>
            </create>
            <create ruleclass="Pet">
              <String value="Lassie"/>
              <String value="Dog"/>
            </create>
          </members>
        </fixedlist>
      </derivation>
    </Attribute>


    <Attribute name="isEntitledToBenefits">
      <type>
        <javaclass name="Boolean"/>
      </type>
      <derivation>
        <all>
          <!-- Una lista fija de condiciones booleanas -->
          <fixedlist>
            <listof>
              <javaclass name="Boolean"/>
            </listof>
            <members>
              <!-- Debe ser adulto -->
              <compare comparison=">=">
                <reference attribute="age"/>
                <Number value="18"/>
              </compare>
              <!-- Debe ser residente en el estado -->
              <reference attribute="isResidentInTheState"/>
              <!-- Debe tener ingresos por debajo del umbral para prestaciones
 -->
              <compare comparison="&lt;">
                <reference attribute="totalIncome"/>
                <Number value="100"/>
              </compare>
            </members>
          </fixedlist>

        </all>

      </derivation>
    </Attribute>

    <Attribute name="totalIncome">
      <type>
        <javaclass name="Number"/>
      </type>
      <derivation>
        <!-- Una suma inútil de un elemento -
             el validador de conjunto de reglas de CER avisará de que esta
             fixedlist puede ser innecesaria.-->
        <sum>
          <fixedlist>
            <listof>
              <javaclass name="Number"/>
            </listof>
            <members>
              <!-- Sumar sólo los ingresos salariales -->
              <reference attribute="earnedIncome"/>
            </members>
          </fixedlist>

        </sum>

      </derivation>
    </Attribute>

    <Attribute name="earnedIncome">
      <type>
        <javaclass name="Number"/>
      </type>
      <derivation>
        <specified/>
      </derivation>
    </Attribute>


    <Attribute name="isResidentInTheState">
      <type>
        <javaclass name="Boolean"/>
      </type>
      <derivation>
        <specified/>
      </derivation>
    </Attribute>

    <Attribute name="age">
      <type>
        <javaclass name="Number"/>
      </type>
      <derivation>
        <specified/>
      </derivation>
    </Attribute>

  </Class>

  <Class name="Pet">

    <Initialization>

      <Attribute name="name">
        <type>
          <javaclass name="String"/>
        </type>
      </Attribute>

      <Attribute name="species">
        <type>
          <javaclass name="String"/>
        </type>
      </Attribute>

    </Initialization>

  </Class>

</RuleSet>