test_class.declarator: pp1 = new TestPrincipalProvider()
test_class.modifier: private final
test_class.original_string: private final TestPrincipalProvider pp1 = new TestPrincipalProvider();
test_class.type: TestPrincipalProvider
test_class.var_name: pp1
test_class.declarator: pp2 = new TestPrincipalProvider("p1", "p2")
test_class.modifier: private final
test_class.original_string: private final TestPrincipalProvider pp2 = new TestPrincipalProvider("p1", "p2");
test_class.type: TestPrincipalProvider
test_class.var_name: pp2
test_class.declarator: cpp = CompositePrincipalProvider.of(ImmutableList.<PrincipalProvider>of(pp1, pp2))
test_class.modifier: private final
test_class.original_string: private final PrincipalProvider cpp = CompositePrincipalProvider.of(ImmutableList.<PrincipalProvider>of(pp1, pp2));
test_class.type: PrincipalProvider
test_class.var_name: cpp
test_class.file: oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/principal/CompositePrincipalProviderTest.java
test_class.identifier: CompositePrincipalProviderTest
test_case.body: @Test
      public void getPrincipalUnknown() {
          assertNull(cpp.getPrincipal(TestPrincipalProvider.UNKNOWN.getName()));
      }
test_case.class_method_signature: CompositePrincipalProviderTest.getPrincipalUnknown()
test_case.full_signature: @Test public void getPrincipalUnknown()
test_case.identifier: getPrincipalUnknown
test_case.invocations: assertNull getPrincipal getName
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void getPrincipalUnknown()
focal_class.declarator: providers
focal_class.modifier: private final
focal_class.original_string: private final List<PrincipalProvider> providers;
focal_class.type: List<PrincipalProvider>
focal_class.var_name: providers
focal_class.file: oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/CompositePrincipalProvider.java
focal_class.identifier: CompositePrincipalProvider
focal_class.interfaces: implements PrincipalProvider
focal_class.class_method_signature: CompositePrincipalProvider.CompositePrincipalProvider(List<PrincipalProvider> providers)
focal_class.full_signature: public  CompositePrincipalProvider(List<PrincipalProvider> providers)
focal_class.identifier: CompositePrincipalProvider
focal_class.modifiers: public
focal_class.parameters: (List<PrincipalProvider> providers)
focal_class.signature:  CompositePrincipalProvider(List<PrincipalProvider> providers)
focal_class.class_method_signature: CompositePrincipalProvider.of(@NotNull List<PrincipalProvider> providers)
focal_class.full_signature: public static PrincipalProvider of(@NotNull List<PrincipalProvider> providers)
focal_class.identifier: of
focal_class.modifiers: public static
focal_class.parameters: (@NotNull List<PrincipalProvider> providers)
focal_class.return: PrincipalProvider
focal_class.signature: PrincipalProvider of(@NotNull List<PrincipalProvider> providers)
focal_class.class_method_signature: CompositePrincipalProvider.getPrincipal(@NotNull String principalName)
focal_class.full_signature: @Nullable @Override public Principal getPrincipal(@NotNull String principalName)
focal_class.identifier: getPrincipal
focal_class.modifiers: @Nullable @Override public
focal_class.parameters: (@NotNull String principalName)
focal_class.return: Principal
focal_class.signature: Principal getPrincipal(@NotNull String principalName)
focal_class.class_method_signature: CompositePrincipalProvider.getItemBasedPrincipal(@NotNull String principalOakPath)
focal_class.full_signature: @Nullable @Override public ItemBasedPrincipal getItemBasedPrincipal(@NotNull String principalOakPath)
focal_class.identifier: getItemBasedPrincipal
focal_class.modifiers: @Nullable @Override public
focal_class.parameters: (@NotNull String principalOakPath)
focal_class.return: ItemBasedPrincipal
focal_class.signature: ItemBasedPrincipal getItemBasedPrincipal(@NotNull String principalOakPath)
focal_class.class_method_signature: CompositePrincipalProvider.getMembershipPrincipals(@NotNull Principal principal)
focal_class.full_signature: @NotNull @Override public Set<Principal> getMembershipPrincipals(@NotNull Principal principal)
focal_class.identifier: getMembershipPrincipals
focal_class.modifiers: @NotNull @Override public
focal_class.parameters: (@NotNull Principal principal)
focal_class.return: Set<Principal>
focal_class.signature: Set<Principal> getMembershipPrincipals(@NotNull Principal principal)
focal_class.class_method_signature: CompositePrincipalProvider.getPrincipals(@NotNull String userID)
focal_class.full_signature: @NotNull @Override public Set<Principal> getPrincipals(@NotNull String userID)
focal_class.identifier: getPrincipals
focal_class.modifiers: @NotNull @Override public
focal_class.parameters: (@NotNull String userID)
focal_class.return: Set<Principal>
focal_class.signature: Set<Principal> getPrincipals(@NotNull String userID)
focal_class.class_method_signature: CompositePrincipalProvider.findPrincipals(@Nullable String nameHint, int searchType)
focal_class.full_signature: @NotNull @Override public Iterator<Principal> findPrincipals(@Nullable String nameHint, int searchType)
focal_class.identifier: findPrincipals
focal_class.modifiers: @NotNull @Override public
focal_class.parameters: (@Nullable String nameHint, int searchType)
focal_class.return: Iterator<Principal>
focal_class.signature: Iterator<Principal> findPrincipals(@Nullable String nameHint, int searchType)
focal_class.class_method_signature: CompositePrincipalProvider.findPrincipals(int searchType)
focal_class.full_signature: @NotNull @Override public Iterator<? extends Principal> findPrincipals(int searchType)
focal_class.identifier: findPrincipals
focal_class.modifiers: @NotNull @Override public
focal_class.parameters: (int searchType)
focal_class.return: Iterator<? extends Principal>
focal_class.signature: Iterator<? extends Principal> findPrincipals(int searchType)
focal_class.class_method_signature: CompositePrincipalProvider.findPrincipals(@Nullable String nameHint, boolean fullText, int searchType,
              long offset, long limit)
focal_class.full_signature: @NotNull @Override public Iterator<? extends Principal> findPrincipals(@Nullable String nameHint, boolean fullText, int searchType,
              long offset, long limit)
focal_class.identifier: findPrincipals
focal_class.modifiers: @NotNull @Override public
focal_class.parameters: (@Nullable String nameHint, boolean fullText, int searchType,
              long offset, long limit)
focal_class.return: Iterator<? extends Principal>
focal_class.signature: Iterator<? extends Principal> findPrincipals(@Nullable String nameHint, boolean fullText, int searchType,
              long offset, long limit)
focal_method.body: @Nullable
      @Override
      public Principal getPrincipal(@NotNull String principalName) {
          Principal principal = null;
          for (int i = 0; i < providers.size() && principal == null; i++) {
              principal = providers.get(i).getPrincipal(principalName);
  
          }
          return principal;
      }
focal_method.class_method_signature: CompositePrincipalProvider.getPrincipal(@NotNull String principalName)
focal_method.full_signature: @Nullable @Override public Principal getPrincipal(@NotNull String principalName)
focal_method.identifier: getPrincipal
focal_method.invocations: size getPrincipal get
focal_method.modifiers: @Nullable @Override public
focal_method.parameters: (@NotNull String principalName)
focal_method.return: Principal
focal_method.signature: Principal getPrincipal(@NotNull String principalName)