Class ShipmentModel.BreakRule.FrequencyConstraint

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

    public static final class ShipmentModel.BreakRule.FrequencyConstraint
    extends com.google.protobuf.GeneratedMessageV3
    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
    See Also:
    Serialized Form
    • Field Detail

      • MIN_BREAK_DURATION_FIELD_NUMBER

        public static final int MIN_BREAK_DURATION_FIELD_NUMBER
        See Also:
        Constant Field Values
      • MAX_INTER_BREAK_DURATION_FIELD_NUMBER

        public static final int MAX_INTER_BREAK_DURATION_FIELD_NUMBER
        See Also:
        Constant Field Values
    • Method Detail

      • newInstance

        protected Object newInstance​(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
        Overrides:
        newInstance in class com.google.protobuf.GeneratedMessageV3
      • 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
      • 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.
      • 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.
      • 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
      • isInitialized

        public final boolean isInitialized()
        Specified by:
        isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
        Overrides:
        isInitialized in class com.google.protobuf.GeneratedMessageV3
      • writeTo

        public void writeTo​(com.google.protobuf.CodedOutputStream output)
                     throws IOException
        Specified by:
        writeTo in interface com.google.protobuf.MessageLite
        Overrides:
        writeTo in class com.google.protobuf.GeneratedMessageV3
        Throws:
        IOException
      • getSerializedSize

        public int getSerializedSize()
        Specified by:
        getSerializedSize in interface com.google.protobuf.MessageLite
        Overrides:
        getSerializedSize in class com.google.protobuf.GeneratedMessageV3
      • equals

        public boolean equals​(Object obj)
        Specified by:
        equals in interface com.google.protobuf.Message
        Overrides:
        equals in class com.google.protobuf.AbstractMessage
      • hashCode

        public int hashCode()
        Specified by:
        hashCode in interface com.google.protobuf.Message
        Overrides:
        hashCode in class com.google.protobuf.AbstractMessage
      • parseFrom

        public static ShipmentModel.BreakRule.FrequencyConstraint parseFrom​(ByteBuffer data,
                                                                            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                                                     throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static ShipmentModel.BreakRule.FrequencyConstraint parseFrom​(com.google.protobuf.ByteString data)
                                                                     throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static ShipmentModel.BreakRule.FrequencyConstraint parseFrom​(com.google.protobuf.ByteString data,
                                                                            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                                                     throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static ShipmentModel.BreakRule.FrequencyConstraint parseFrom​(byte[] data)
                                                                     throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static ShipmentModel.BreakRule.FrequencyConstraint parseFrom​(byte[] data,
                                                                            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                                                     throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • getParserForType

        public com.google.protobuf.Parser<ShipmentModel.BreakRule.FrequencyConstraint> getParserForType()
        Specified by:
        getParserForType in interface com.google.protobuf.Message
        Specified by:
        getParserForType in interface com.google.protobuf.MessageLite
        Overrides:
        getParserForType in class com.google.protobuf.GeneratedMessageV3
      • getDefaultInstanceForType

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