select()
문을 이용하며, 인자로 클로져가 전달됩니다. 클로져는 하나의 인자를 갖고
true
또는
false
를 리턴하는
function
형태이어야 합니다. 이 클로져의 구조는 다음과 같습니다:
function(it){
return true 또는 false;
}
eXERD 문서를 구성하는 모든 모델은 각각 클로져의 인자인
it
으로 전달 되어 클로져가
true
를 리턴하면 그 모델이 선택됩니다. 예를 들어 모든 컬럼을 선택하는 방법은 다음과 같습니다:
select(function(it){
return it.get("type") == "column";
})
위의 코드는 type 속성이 "column" 인 모든 모델을 선택하게 됩니다. 이렇게 모델 선택함수
select(조건함수())를 이용해 선택된 모델들을 모델 컨텍스트 라고 합니다.
it
이 사용되는 것은 권장 사항일 뿐 강제 사항은 아닙니다. 원하는 다른 변수명을 사용하셔도 무방합니다.
select(function(it){
return it.get("type") == "column";
}).each(function(it){
log(it.get("logical-name"));
});
each(클로져)
함수는 모델 컨텍스트에 속한 모든 요소들이 주어진 클로져 동작을 차례로 수행하게 합니다. (비지터 패턴을 연상하면 이해가
쉽습니다.)