test_class.declarator: writer
test_class.modifier: private
test_class.original_string: private MembershipWriter writer;
test_class.type: MembershipWriter
test_class.var_name: writer
test_class.file: oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/MembershipWriterTest.java
test_class.identifier: MembershipWriterTest
test_class.superclass: extends MembershipBaseTest
test_case.body: @Test
      public void testAddMemberAgain() throws Exception {
          Group grp = createGroup();
          List<String> memberPaths = createMembers(grp, NUM_USERS);
          root.commit();
  
          Tree groupTree = getTree(grp);
          for (String path : memberPaths) {
              Tree memberTree = root.getTree(path);
              String contentId = getContentID(memberTree);
              assertFalse(writer.addMember(groupTree, contentId));
          }
      }
test_case.class_method_signature: MembershipWriterTest.testAddMemberAgain()
test_case.full_signature: @Test public void testAddMemberAgain()
test_case.identifier: testAddMemberAgain
test_case.invocations: createGroup createMembers commit getTree getTree getContentID assertFalse addMember
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testAddMemberAgain()
focal_class.declarator: DEFAULT_MEMBERSHIP_THRESHOLD = 100
focal_class.modifier: public static final
focal_class.original_string: public static final int DEFAULT_MEMBERSHIP_THRESHOLD = 100;
focal_class.type: int
focal_class.var_name: DEFAULT_MEMBERSHIP_THRESHOLD
focal_class.declarator: membershipSizeThreshold = DEFAULT_MEMBERSHIP_THRESHOLD
focal_class.modifier: private
focal_class.original_string: private int membershipSizeThreshold = DEFAULT_MEMBERSHIP_THRESHOLD;
focal_class.type: int
focal_class.var_name: membershipSizeThreshold
focal_class.file: oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipWriter.java
focal_class.identifier: MembershipWriter
focal_class.class_method_signature: MembershipWriter.setMembershipSizeThreshold(int membershipSizeThreshold)
focal_class.full_signature:  void setMembershipSizeThreshold(int membershipSizeThreshold)
focal_class.identifier: setMembershipSizeThreshold
focal_class.parameters: (int membershipSizeThreshold)
focal_class.return: void
focal_class.signature: void setMembershipSizeThreshold(int membershipSizeThreshold)
focal_class.class_method_signature: MembershipWriter.addMember(@NotNull Tree groupTree, @NotNull String memberContentId)
focal_class.full_signature:  boolean addMember(@NotNull Tree groupTree, @NotNull String memberContentId)
focal_class.identifier: addMember
focal_class.parameters: (@NotNull Tree groupTree, @NotNull String memberContentId)
focal_class.return: boolean
focal_class.signature: boolean addMember(@NotNull Tree groupTree, @NotNull String memberContentId)
focal_class.class_method_signature: MembershipWriter.addMembers(@NotNull Tree groupTree, @NotNull Map<String, String> memberIds)
focal_class.full_signature: @NotNull Set<String> addMembers(@NotNull Tree groupTree, @NotNull Map<String, String> memberIds)
focal_class.identifier: addMembers
focal_class.modifiers: @NotNull
focal_class.parameters: (@NotNull Tree groupTree, @NotNull Map<String, String> memberIds)
focal_class.return: Set<String>
focal_class.signature: Set<String> addMembers(@NotNull Tree groupTree, @NotNull Map<String, String> memberIds)
focal_class.class_method_signature: MembershipWriter.createMemberRefTree(@NotNull Tree groupTree, @NotNull Tree membersList)
focal_class.full_signature: @NotNull private static Tree createMemberRefTree(@NotNull Tree groupTree, @NotNull Tree membersList)
focal_class.identifier: createMemberRefTree
focal_class.modifiers: @NotNull private static
focal_class.parameters: (@NotNull Tree groupTree, @NotNull Tree membersList)
focal_class.return: Tree
focal_class.signature: Tree createMemberRefTree(@NotNull Tree groupTree, @NotNull Tree membersList)
focal_class.class_method_signature: MembershipWriter.nextRefNodeName(@NotNull Tree membersList)
focal_class.full_signature: @NotNull private static String nextRefNodeName(@NotNull Tree membersList)
focal_class.identifier: nextRefNodeName
focal_class.modifiers: @NotNull private static
focal_class.parameters: (@NotNull Tree membersList)
focal_class.return: String
focal_class.signature: String nextRefNodeName(@NotNull Tree membersList)
focal_class.class_method_signature: MembershipWriter.removeMember(@NotNull Tree groupTree, @NotNull String memberContentId)
focal_class.full_signature:  boolean removeMember(@NotNull Tree groupTree, @NotNull String memberContentId)
focal_class.identifier: removeMember
focal_class.parameters: (@NotNull Tree groupTree, @NotNull String memberContentId)
focal_class.return: boolean
focal_class.signature: boolean removeMember(@NotNull Tree groupTree, @NotNull String memberContentId)
focal_class.class_method_signature: MembershipWriter.removeMembers(@NotNull Tree groupTree, @NotNull Map<String, String> memberIds)
focal_class.full_signature: @NotNull Set<String> removeMembers(@NotNull Tree groupTree, @NotNull Map<String, String> memberIds)
focal_class.identifier: removeMembers
focal_class.modifiers: @NotNull
focal_class.parameters: (@NotNull Tree groupTree, @NotNull Map<String, String> memberIds)
focal_class.return: Set<String>
focal_class.signature: Set<String> removeMembers(@NotNull Tree groupTree, @NotNull Map<String, String> memberIds)
focal_method.body: boolean addMember(@NotNull Tree groupTree, @NotNull String memberContentId) {
          Map<String, String> m = Maps.newHashMapWithExpectedSize(1);
          m.put(memberContentId, "-");
          return addMembers(groupTree, m).isEmpty();
      }
focal_method.class_method_signature: MembershipWriter.addMember(@NotNull Tree groupTree, @NotNull String memberContentId)
focal_method.full_signature:  boolean addMember(@NotNull Tree groupTree, @NotNull String memberContentId)
focal_method.identifier: addMember
focal_method.invocations: newHashMapWithExpectedSize put isEmpty addMembers
focal_method.parameters: (@NotNull Tree groupTree, @NotNull String memberContentId)
focal_method.return: boolean
focal_method.signature: boolean addMember(@NotNull Tree groupTree, @NotNull String memberContentId)