/** * Fill a builder with attribute values from the provided {@code EventOptions} instance. * Regular attribute values will be replaced with those from the given instance. * Absent optional values will not replace present values. * @param instance The instance from which to copy values * @return {@code this} builder for use in a chained invocation */ public final Builder from(EventOptions instance) { Preconditions.checkNotNull(instance, "instance"); Optional<String> datacenterOptional = instance.getDatacenter(); if (datacenterOptional.isPresent()) { datacenter(datacenterOptional); } Optional<String> nodeFilterOptional = instance.getNodeFilter(); if (nodeFilterOptional.isPresent()) { nodeFilter(nodeFilterOptional); } Optional<String> serviceFilterOptional = instance.getServiceFilter(); if (serviceFilterOptional.isPresent()) { serviceFilter(serviceFilterOptional); } Optional<String> tagFilterOptional = instance.getTagFilter(); if (tagFilterOptional.isPresent()) { tagFilter(tagFilterOptional); } return this; }
/** * Creates an immutable copy of a {@link EventOptions} 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 EventOptions instance */ public static ImmutableEventOptions copyOf(EventOptions instance) { if (instance instanceof ImmutableEventOptions) { return (ImmutableEventOptions) instance; } return ImmutableEventOptions.builder() .from(instance) .build(); }
/** * Creates a builder for {@link ImmutableEventOptions ImmutableEventOptions}. * @return A new ImmutableEventOptions builder */ public static ImmutableEventOptions.Builder builder() { return new ImmutableEventOptions.Builder(); }