CompositeGuardingDynamicLinker
CompositeGuardingDynamicLinker (복합 가드형 동적 링커)
getGuardedInvocation(...)에서 다른 가드형 동적 링커들의 목록으로 순차 위임하는 GuardingDynamicLinker입니다. 여러 링커를 하나처럼 묶어 사용할 수 있게 해 줍니다.
본문
이 클래스는 구성 요소 링커들을 차례로 호출하며, 처음으로 반환된 비-null 값이 결과가 됩니다. 핵심 동작은 위임(delegation)이에요. 어떤 구성 링커도 호출을 해석하지 못하면 최종적으로 null이 반환되고, 이어서 다른 링커나 폴백 처리가 시도됩니다.
이런 복합 링커는 여러 소스의 링커를 유연하게 조합하고 싶을 때 유용해요. 예를 들어 우선순위가 다른 여러 링커를 하나의 인터페이스로 감싸 호출부에서는 단일 링커처럼 다루고 싶을 때 사용합니다.
구성 순서가 곧 시도 순서가 되므로, 앞쪽에 더 구체적이고 우선인 링커를 배치하는 것이 일반적이에요. 이렇게 하면 여러 언어 런타임의 링커를 손쉽게 한 데 묶어 관리할 수 있습니다.
생성자
CompositeGuardingDynamicLinker(Iterable<? extends GuardingDynamicLinker> linkers)— 새 복합 링커를 만듭니다.linkers나 그 요소가null이면NullPointerException이 발생해요.
메서드
getGuardedInvocation(LinkRequest linkRequest, LinkerServices linkerServices)— 구성 링커들에게 호출을 위임합니다. 어떤 구성 링커도 비-null호출을 반환하지 않으면null을 반환해요. 작업이 실패하면Exception을 던질 수 있습니다.