Class BreakRule.FrequencyConstraint.Builder

java.lang.Object
com.google.protobuf.AbstractMessageLite.Builder
com.google.protobuf.AbstractMessage.Builder<BuilderT>
com.google.protobuf.GeneratedMessage.Builder<BreakRule.FrequencyConstraint.Builder>
com.google.cloud.optimization.v1.BreakRule.FrequencyConstraint.Builder
All Implemented Interfaces:
BreakRule.FrequencyConstraintOrBuilder, com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, Cloneable
Enclosing class:
BreakRule.FrequencyConstraint

public static final class BreakRule.FrequencyConstraint.Builder extends com.google.protobuf.GeneratedMessage.Builder<BreakRule.FrequencyConstraint.Builder> implements BreakRule.FrequencyConstraintOrBuilder
 One may further constrain the frequency and duration of the breaks
 specified above, by enforcing a minimum break frequency, such as
 "There must be a break of at least 1 hour every 12 hours". Assuming that
 this can be interpreted as "Within any sliding time window of 12h, there
 must be at least one break of at least one hour", that example would
 translate to the following `FrequencyConstraint`:
 ```
 {
 min_break_duration { seconds: 3600 }         # 1 hour.
 max_inter_break_duration { seconds: 39600 }  # 11 hours (12 - 1 = 11).
 }
 ```

 The timing and duration of the breaks in the solution will respect all
 such constraints, in addition to the time windows and minimum durations
 already specified in the `BreakRequest`.

 A `FrequencyConstraint` may in practice apply to non-consecutive breaks.
 For example, the following schedule honors the "1h every 12h" example:
 ```
 04:00 vehicle start
 .. performing travel and visits ..
 09:00 1 hour break
 10:00 end of the break
 .. performing travel and visits ..
 12:00 20-min lunch break
 12:20 end of the break
 .. performing travel and visits ..
 21:00 1 hour break
 22:00 end of the break
 .. performing travel and visits ..
 23:59 vehicle end
 ```
 
Protobuf type google.cloud.optimization.v1.BreakRule.FrequencyConstraint
  • Method Details

    • getDescriptor

      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
    • internalGetFieldAccessorTable

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable()
      Specified by:
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessage.Builder<BreakRule.FrequencyConstraint.Builder>
    • clear

      Specified by:
      clear in interface com.google.protobuf.Message.Builder
      Specified by:
      clear in interface com.google.protobuf.MessageLite.Builder
      Overrides:
      clear in class com.google.protobuf.GeneratedMessage.Builder<BreakRule.FrequencyConstraint.Builder>
    • getDescriptorForType

      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
      Specified by:
      getDescriptorForType in interface com.google.protobuf.Message.Builder
      Specified by:
      getDescriptorForType in interface com.google.protobuf.MessageOrBuilder
      Overrides:
      getDescriptorForType in class com.google.protobuf.GeneratedMessage.Builder<BreakRule.FrequencyConstraint.Builder>
    • getDefaultInstanceForType

      public BreakRule.FrequencyConstraint getDefaultInstanceForType()
      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
    • build

      Specified by:
      build in interface com.google.protobuf.Message.Builder
      Specified by:
      build in interface com.google.protobuf.MessageLite.Builder
    • buildPartial

      public BreakRule.FrequencyConstraint buildPartial()
      Specified by:
      buildPartial in interface com.google.protobuf.Message.Builder
      Specified by:
      buildPartial in interface com.google.protobuf.MessageLite.Builder
    • mergeFrom

      public BreakRule.FrequencyConstraint.Builder mergeFrom(com.google.protobuf.Message other)
      Specified by:
      mergeFrom in interface com.google.protobuf.Message.Builder
      Overrides:
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<BreakRule.FrequencyConstraint.Builder>
    • mergeFrom

    • isInitialized

      public final boolean isInitialized()
      Specified by:
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      Overrides:
      isInitialized in class com.google.protobuf.GeneratedMessage.Builder<BreakRule.FrequencyConstraint.Builder>
    • mergeFrom

      public BreakRule.FrequencyConstraint.Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Specified by:
      mergeFrom in interface com.google.protobuf.Message.Builder
      Specified by:
      mergeFrom in interface com.google.protobuf.MessageLite.Builder
      Overrides:
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<BreakRule.FrequencyConstraint.Builder>
      Throws:
      IOException
    • hasMinBreakDuration

      public boolean hasMinBreakDuration()
       Required. Minimum break duration for this constraint. Nonnegative.
       See description of `FrequencyConstraint`.
       
      .google.protobuf.Duration min_break_duration = 1 [(.google.api.field_behavior) = REQUIRED];
      Specified by:
      hasMinBreakDuration in interface BreakRule.FrequencyConstraintOrBuilder
      Returns:
      Whether the minBreakDuration field is set.
    • getMinBreakDuration

      public com.google.protobuf.Duration getMinBreakDuration()
       Required. Minimum break duration for this constraint. Nonnegative.
       See description of `FrequencyConstraint`.
       
      .google.protobuf.Duration min_break_duration = 1 [(.google.api.field_behavior) = REQUIRED];
      Specified by:
      getMinBreakDuration in interface BreakRule.FrequencyConstraintOrBuilder
      Returns:
      The minBreakDuration.
    • setMinBreakDuration

      public BreakRule.FrequencyConstraint.Builder setMinBreakDuration(com.google.protobuf.Duration value)
       Required. Minimum break duration for this constraint. Nonnegative.
       See description of `FrequencyConstraint`.
       
      .google.protobuf.Duration min_break_duration = 1 [(.google.api.field_behavior) = REQUIRED];
    • setMinBreakDuration

      public BreakRule.FrequencyConstraint.Builder setMinBreakDuration(com.google.protobuf.Duration.Builder builderForValue)
       Required. Minimum break duration for this constraint. Nonnegative.
       See description of `FrequencyConstraint`.
       
      .google.protobuf.Duration min_break_duration = 1 [(.google.api.field_behavior) = REQUIRED];
    • mergeMinBreakDuration

      public BreakRule.FrequencyConstraint.Builder mergeMinBreakDuration(com.google.protobuf.Duration value)
       Required. Minimum break duration for this constraint. Nonnegative.
       See description of `FrequencyConstraint`.
       
      .google.protobuf.Duration min_break_duration = 1 [(.google.api.field_behavior) = REQUIRED];
    • clearMinBreakDuration

      public BreakRule.FrequencyConstraint.Builder clearMinBreakDuration()
       Required. Minimum break duration for this constraint. Nonnegative.
       See description of `FrequencyConstraint`.
       
      .google.protobuf.Duration min_break_duration = 1 [(.google.api.field_behavior) = REQUIRED];
    • getMinBreakDurationBuilder

      public com.google.protobuf.Duration.Builder getMinBreakDurationBuilder()
       Required. Minimum break duration for this constraint. Nonnegative.
       See description of `FrequencyConstraint`.
       
      .google.protobuf.Duration min_break_duration = 1 [(.google.api.field_behavior) = REQUIRED];
    • getMinBreakDurationOrBuilder

      public com.google.protobuf.DurationOrBuilder getMinBreakDurationOrBuilder()
       Required. Minimum break duration for this constraint. Nonnegative.
       See description of `FrequencyConstraint`.
       
      .google.protobuf.Duration min_break_duration = 1 [(.google.api.field_behavior) = REQUIRED];
      Specified by:
      getMinBreakDurationOrBuilder in interface BreakRule.FrequencyConstraintOrBuilder
    • hasMaxInterBreakDuration

      public boolean hasMaxInterBreakDuration()
       Required. Maximum allowed span of any interval of time in the route that
       does not include at least partially a break of `duration >=
       min_break_duration`. Must be positive.
       
      .google.protobuf.Duration max_inter_break_duration = 2 [(.google.api.field_behavior) = REQUIRED];
      Specified by:
      hasMaxInterBreakDuration in interface BreakRule.FrequencyConstraintOrBuilder
      Returns:
      Whether the maxInterBreakDuration field is set.
    • getMaxInterBreakDuration

      public com.google.protobuf.Duration getMaxInterBreakDuration()
       Required. Maximum allowed span of any interval of time in the route that
       does not include at least partially a break of `duration >=
       min_break_duration`. Must be positive.
       
      .google.protobuf.Duration max_inter_break_duration = 2 [(.google.api.field_behavior) = REQUIRED];
      Specified by:
      getMaxInterBreakDuration in interface BreakRule.FrequencyConstraintOrBuilder
      Returns:
      The maxInterBreakDuration.
    • setMaxInterBreakDuration

      public BreakRule.FrequencyConstraint.Builder setMaxInterBreakDuration(com.google.protobuf.Duration value)
       Required. Maximum allowed span of any interval of time in the route that
       does not include at least partially a break of `duration >=
       min_break_duration`. Must be positive.
       
      .google.protobuf.Duration max_inter_break_duration = 2 [(.google.api.field_behavior) = REQUIRED];
    • setMaxInterBreakDuration

      public BreakRule.FrequencyConstraint.Builder setMaxInterBreakDuration(com.google.protobuf.Duration.Builder builderForValue)
       Required. Maximum allowed span of any interval of time in the route that
       does not include at least partially a break of `duration >=
       min_break_duration`. Must be positive.
       
      .google.protobuf.Duration max_inter_break_duration = 2 [(.google.api.field_behavior) = REQUIRED];
    • mergeMaxInterBreakDuration

      public BreakRule.FrequencyConstraint.Builder mergeMaxInterBreakDuration(com.google.protobuf.Duration value)
       Required. Maximum allowed span of any interval of time in the route that
       does not include at least partially a break of `duration >=
       min_break_duration`. Must be positive.
       
      .google.protobuf.Duration max_inter_break_duration = 2 [(.google.api.field_behavior) = REQUIRED];
    • clearMaxInterBreakDuration

      public BreakRule.FrequencyConstraint.Builder clearMaxInterBreakDuration()
       Required. Maximum allowed span of any interval of time in the route that
       does not include at least partially a break of `duration >=
       min_break_duration`. Must be positive.
       
      .google.protobuf.Duration max_inter_break_duration = 2 [(.google.api.field_behavior) = REQUIRED];
    • getMaxInterBreakDurationBuilder

      public com.google.protobuf.Duration.Builder getMaxInterBreakDurationBuilder()
       Required. Maximum allowed span of any interval of time in the route that
       does not include at least partially a break of `duration >=
       min_break_duration`. Must be positive.
       
      .google.protobuf.Duration max_inter_break_duration = 2 [(.google.api.field_behavior) = REQUIRED];
    • getMaxInterBreakDurationOrBuilder

      public com.google.protobuf.DurationOrBuilder getMaxInterBreakDurationOrBuilder()
       Required. Maximum allowed span of any interval of time in the route that
       does not include at least partially a break of `duration >=
       min_break_duration`. Must be positive.
       
      .google.protobuf.Duration max_inter_break_duration = 2 [(.google.api.field_behavior) = REQUIRED];
      Specified by:
      getMaxInterBreakDurationOrBuilder in interface BreakRule.FrequencyConstraintOrBuilder