/** * Builds a new {@link ImmutableMember ImmutableMember}. * @return An immutable instance of Member * @throws java.lang.IllegalStateException if any required attributes are missing */ public ImmutableMember build() { if (initBits != 0) { throw new IllegalStateException(formatRequiredAttributesMessage()); } return new ImmutableMember( name, address, port, tagsBuilder.build(), status, protocolMin, protocolMax, protocolCur, delegateMin, delegateMax, delegateCur); }
ImmutableMember.Builder builder = ImmutableMember.builder(); if (json.name != null) { builder.name(json.name); builder.address(json.address); builder.port(json.port); builder.putAllTags(json.tags); builder.status(json.status); builder.protocolMin(json.protocolMin); builder.protocolMax(json.protocolMax); builder.protocolCur(json.protocolCur); builder.delegateMin(json.delegateMin); builder.delegateMax(json.delegateMax); builder.delegateCur(json.delegateCur); return builder.build();
/** * Fill a builder with attribute values from the provided {@code Member} instance. * Regular attribute values will be replaced with those from the given instance. * Absent optional values will not replace present values. * Collection elements and entries will be added, not replaced. * @param instance The instance from which to copy values * @return {@code this} builder for use in a chained invocation */ public final Builder from(Member instance) { Preconditions.checkNotNull(instance, "instance"); name(instance.getName()); address(instance.getAddress()); port(instance.getPort()); putAllTags(instance.getTags()); status(instance.getStatus()); protocolMin(instance.getProtocolMin()); protocolMax(instance.getProtocolMax()); protocolCur(instance.getProtocolCur()); delegateMin(instance.getDelegateMin()); delegateMax(instance.getDelegateMax()); delegateCur(instance.getDelegateCur()); return this; }
/** * Creates an immutable copy of a {@link Member} value. * Uses accessors to get values to initialize the new immutable instance. * If an instance is already immutable, it is returned as is. * @param instance The instance to copy * @return A copied immutable Member instance */ public static ImmutableMember copyOf(Member instance) { if (instance instanceof ImmutableMember) { return (ImmutableMember) instance; } return ImmutableMember.builder() .from(instance) .build(); }
/** * Creates a builder for {@link ImmutableMember ImmutableMember}. * @return A new ImmutableMember builder */ public static ImmutableMember.Builder builder() { return new ImmutableMember.Builder(); }