/** * Fill a builder with attribute values from the provided {@code TransactionOptions} 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(TransactionOptions instance) { Preconditions.checkNotNull(instance, "instance"); Optional<String> datacenterOptional = instance.getDatacenter(); if (datacenterOptional.isPresent()) { datacenter(datacenterOptional); } consistencyMode(instance.getConsistencyMode()); return this; }
/** * Creates an immutable copy of a {@link TransactionOptions} 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 TransactionOptions instance */ public static ImmutableTransactionOptions copyOf(TransactionOptions instance) { if (instance instanceof ImmutableTransactionOptions) { return (ImmutableTransactionOptions) instance; } return ImmutableTransactionOptions.builder() .from(instance) .build(); }
/** * Performs a Consul transaction. * * PUT /v1/tx * * @param operations A list of KV operations. * @return A {@link ConsulResponse} containing results and potential errors. */ public ConsulResponse<TxResponse> performTransaction(Operation... operations) { ImmutableTransactionOptions immutableTransactionOptions = ImmutableTransactionOptions.builder().consistencyMode(ConsistencyMode.DEFAULT).build(); return performTransaction(immutableTransactionOptions, operations); }
/** * Creates a builder for {@link ImmutableTransactionOptions ImmutableTransactionOptions}. * @return A new ImmutableTransactionOptions builder */ public static ImmutableTransactionOptions.Builder builder() { return new ImmutableTransactionOptions.Builder(); }