Product Documentation

중첩된 반복

Apr 23, 2017

중첩된 반복 구조를 사용하면 구성 요소의 정의에 따라 각 구성 요소에서 둘 이상의 반복 구조를 사용할 수 있습니다. 두 수준의 중첩된 반복을 가정합니다. 바깥쪽 목록(첫 번째 repeat-list)의 각 요소마다 안쪽 목록(두 번째 repeat-list)의 모든 요소에 대한 반복 목록을 만들 수 있습니다. StyleBook 컴파일러는 최대 세 번의 중첩된 반복을 지원합니다. 각 반복 수준에는 연관된 repeat-item 특성과 repeat-index 특성이 있습니다. repeat-item 특성과 repeat-index 특성 모두 선택 사항입니다. 또한 각 반복에서 repeat-condition을 지정할 수도 있습니다.

예제

parameters:

  -

      name: vips

      type: ipaddress[]

  -

      name: vip-ports

      type: tcp-port[]

components:

  -

      name: lbvservers-comp  

      type: ns::lbvserver

      repeat:

         repeat-list: $parameters.vips

         repeat-item: ip

         repeat:

              repeat-list: $parameters.vip-ports

              repeat-item: port

      properties:

         name: str("lb-") + str($ip) + '-' + str($port)

         servicetype: HTTP

         ipv46: $ip

         port: $port

위 예제에서는 $parameters.vips의 각 항목에 대해 $parameters.vip-ports의 모든 항목을 반복합니다. 즉, $parameters.vips에 지정된 ipaddress마다 $parameters.vip-ports에 지정된 모든 포트에 대한 lbvserver 구성 개체를 만듭니다. properties 섹션에서는 IP 주소와 포트의 조합에 대한 접두어로 "lb"를 사용하여 개체의 이름을 정의합니다. 따라서 각 반복마다 $ip + $port는 IP 주소와 포트 번호의 고유한 조합을 정의합니다.

repeat-item 특성이 제공되지 않으면 컴파일러에서 이 특성에 대한 기본값이 생성됩니다. repeat-item에 대한 기본값은 각 반복 수준마다 $repeat-item, $repeat-item-1, $repeat-item-2입니다. 마찬가지로, repeat-index 특성이 제공되지 않으면 컴파일러에서 이 특성에 대한 기본값이 생성됩니다. repeat-index에 대한 기본값은 각 반복 수준마다 $repeat-index, $repeat-index-1 및 $repeat-index-2입니다.

다음 예제에서는 중첩된 반복 개체에 repeat-item 및 repeat-index 특성이 없는 경우에 대한 명명 규칙을 설명합니다.

예제

components:

-

     name: lbvservers-comp  

     type: ns::lbvserver

     repeat:

         repeat-list: $parameters.vips

        repeat:

             repeat-list: $parameters.vip-ports

     properties:

        name: str("lb-") + str($repeat-item) + '-' + str($repeat-item-1)

        servicetype: HTTP

        ipv46: $repeat-item

        port: $repeat-item-1