2011-08-26 4 views
0

NodeBuilder 패턴을 사용할 때 groovy의 조건을 기반으로 동적 노드 속성을 설정하는 방법은 무엇입니까? 조건이 깊은 구조에서 나타날 수 있기 때문에 다음Groovy에서 NodeBuilder 패턴을 사용하여 노드 속성을 동적으로 설정하는 방법

def b = DOMBuilder.newInstance() 
b.div (attribute: "value") { 
    if (condition) { 
     // Set div.dynamicAttribute to true here 
    } 

} 

처럼

는 바람직하게는 조건문에서 현재의 요소를 참조하는 것이 좋을 것이다.

답변

2

가장 쉬운 방법은 노드 폐쇄 외부의 동적 특성에 대한 조건을 평가하는 것입니다. 예를 들어 :

def attributes = [attribute: "value"] 
if (condition) { 
    attributes['dynamicAttribute'] = true 
} 
b.div(attributes) { 
    ... 
} 
:

if (condition) { 
    b.div(attribute: "value", dynamicAttribute: true) { 
     ... 
    } 
} else { 
    b.div(attribute: "value") { 
     ... 
    } 
} 

또는, 미리 속성의 맵을 만들 수 있습니다

관련 문제