Class ShipmentModel.BreakRule.FrequencyConstraint.Builder

  • All Implemented Interfaces:
    ShipmentModel.BreakRule.FrequencyConstraintOrBuilder, com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, Cloneable
    Enclosing class:
    ShipmentModel.BreakRule.FrequencyConstraint

    public static final class ShipmentModel.BreakRule.FrequencyConstraint.Builder
    extends com.google.protobuf.GeneratedMessageV3.Builder<ShipmentModel.BreakRule.FrequencyConstraint.Builder>
    implements ShipmentModel.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.ShipmentModel.BreakRule.FrequencyConstraint
    • Method Detail

      • getDescriptor

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

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
        Specified by:
        internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3.Builder<ShipmentModel.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.GeneratedMessageV3.Builder<ShipmentModel.BreakRule.FrequencyConstraint.Builder>
      • getDefaultInstanceForType

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

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

        public final boolean isInitialized()
        Specified by:
        isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
        Overrides:
        isInitialized in class com.google.protobuf.GeneratedMessageV3.Builder<ShipmentModel.BreakRule.FrequencyConstraint.Builder>
      • 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 ShipmentModel.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 ShipmentModel.BreakRule.FrequencyConstraintOrBuilder
        Returns:
        The minBreakDuration.
      • setMinBreakDuration

        public ShipmentModel.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 ShipmentModel.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 ShipmentModel.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 ShipmentModel.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 ShipmentModel.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 ShipmentModel.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 ShipmentModel.BreakRule.FrequencyConstraintOrBuilder
        Returns:
        The maxInterBreakDuration.
      • setMaxInterBreakDuration

        public ShipmentModel.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 ShipmentModel.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 ShipmentModel.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 ShipmentModel.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 ShipmentModel.BreakRule.FrequencyConstraintOrBuilder