/** * Creates clone of source {@code MemberMap} additionally including new members. * * @param source source map * @param newMembers new members to add * @return clone map */ static MemberMap cloneAdding(MemberMap source, MemberImpl... newMembers) { Map<Address, MemberImpl> addressMap = new LinkedHashMap<Address, MemberImpl>(source.addressToMemberMap); Map<String, MemberImpl> uuidMap = new LinkedHashMap<String, MemberImpl>(source.uuidToMemberMap); for (MemberImpl member : newMembers) { putMember(addressMap, uuidMap, member); } return new MemberMap(source.version + newMembers.length, addressMap, uuidMap); }
/** * Creates clone of source {@code MemberMap} additionally including new members. * * @param source source map * @param newMembers new members to add * @return clone map */ static MemberMap cloneAdding(MemberMap source, MemberImpl... newMembers) { Map<Address, MemberImpl> addressMap = new LinkedHashMap<Address, MemberImpl>(source.addressToMemberMap); Map<String, MemberImpl> uuidMap = new LinkedHashMap<String, MemberImpl>(source.uuidToMemberMap); for (MemberImpl member : newMembers) { putMember(addressMap, uuidMap, member); } return new MemberMap(source.version + newMembers.length, addressMap, uuidMap); }
/** * Creates a new {@code MemberMap} including given members. * * @param version version * @param members members * @return a new {@code MemberMap} */ static MemberMap createNew(int version, MemberImpl... members) { Map<Address, MemberImpl> addressMap = createLinkedHashMap(members.length); Map<String, MemberImpl> uuidMap = createLinkedHashMap(members.length); for (MemberImpl member : members) { putMember(addressMap, uuidMap, member); } return new MemberMap(version, addressMap, uuidMap); }
/** * Creates a new {@code MemberMap} including given members. * * @param version version * @param members members * @return a new {@code MemberMap} */ static MemberMap createNew(int version, MemberImpl... members) { Map<Address, MemberImpl> addressMap = createLinkedHashMap(members.length); Map<String, MemberImpl> uuidMap = createLinkedHashMap(members.length); for (MemberImpl member : members) { putMember(addressMap, uuidMap, member); } return new MemberMap(version, addressMap, uuidMap); }