Class TimeWindow.Builder

  • All Implemented Interfaces:
    TimeWindowOrBuilder, com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, Cloneable
    Enclosing class:
    TimeWindow

    public static final class TimeWindow.Builder
    extends com.google.protobuf.GeneratedMessageV3.Builder<TimeWindow.Builder>
    implements TimeWindowOrBuilder
     Time windows constrain the time of an event, such as the arrival time at a
     visit, or the start and end time of a vehicle.
    
     Hard time window bounds, `start_time` and `end_time`, enforce the earliest
     and latest time of the event, such that `start_time <= event_time <=
     end_time`. The soft time window lower bound, `soft_start_time`, expresses a
     preference for the event to happen at or after `soft_start_time` by incurring
     a cost proportional to how long before soft_start_time the event occurs. The
     soft time window upper bound, `soft_end_time`, expresses a preference for the
     event to happen at or before `soft_end_time` by incurring a cost proportional
     to how long after `soft_end_time` the event occurs. `start_time`, `end_time`,
     `soft_start_time` and `soft_end_time` should be within the global time limits
     (see
     [ShipmentModel.global_start_time][google.cloud.optimization.v1.ShipmentModel.global_start_time]
     and
     [ShipmentModel.global_end_time][google.cloud.optimization.v1.ShipmentModel.global_end_time])
     and should respect:
     ```
       0 <= `start_time` <= `soft_start_time` <= `end_time` and
       0 <= `start_time` <= `soft_end_time` <= `end_time`.
     ```
     
    Protobuf type google.cloud.optimization.v1.TimeWindow
    • 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<TimeWindow.Builder>
      • clear

        public TimeWindow.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.GeneratedMessageV3.Builder<TimeWindow.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<TimeWindow.Builder>
      • getDefaultInstanceForType

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

        public TimeWindow build()
        Specified by:
        build in interface com.google.protobuf.Message.Builder
        Specified by:
        build in interface com.google.protobuf.MessageLite.Builder
      • buildPartial

        public TimeWindow buildPartial()
        Specified by:
        buildPartial in interface com.google.protobuf.Message.Builder
        Specified by:
        buildPartial in interface com.google.protobuf.MessageLite.Builder
      • clone

        public TimeWindow.Builder clone()
        Specified by:
        clone in interface com.google.protobuf.Message.Builder
        Specified by:
        clone in interface com.google.protobuf.MessageLite.Builder
        Overrides:
        clone in class com.google.protobuf.GeneratedMessageV3.Builder<TimeWindow.Builder>
      • setField

        public TimeWindow.Builder setField​(com.google.protobuf.Descriptors.FieldDescriptor field,
                                           Object value)
        Specified by:
        setField in interface com.google.protobuf.Message.Builder
        Overrides:
        setField in class com.google.protobuf.GeneratedMessageV3.Builder<TimeWindow.Builder>
      • clearField

        public TimeWindow.Builder clearField​(com.google.protobuf.Descriptors.FieldDescriptor field)
        Specified by:
        clearField in interface com.google.protobuf.Message.Builder
        Overrides:
        clearField in class com.google.protobuf.GeneratedMessageV3.Builder<TimeWindow.Builder>
      • clearOneof

        public TimeWindow.Builder clearOneof​(com.google.protobuf.Descriptors.OneofDescriptor oneof)
        Specified by:
        clearOneof in interface com.google.protobuf.Message.Builder
        Overrides:
        clearOneof in class com.google.protobuf.GeneratedMessageV3.Builder<TimeWindow.Builder>
      • setRepeatedField

        public TimeWindow.Builder setRepeatedField​(com.google.protobuf.Descriptors.FieldDescriptor field,
                                                   int index,
                                                   Object value)
        Specified by:
        setRepeatedField in interface com.google.protobuf.Message.Builder
        Overrides:
        setRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<TimeWindow.Builder>
      • addRepeatedField

        public TimeWindow.Builder addRepeatedField​(com.google.protobuf.Descriptors.FieldDescriptor field,
                                                   Object value)
        Specified by:
        addRepeatedField in interface com.google.protobuf.Message.Builder
        Overrides:
        addRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<TimeWindow.Builder>
      • mergeFrom

        public TimeWindow.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<TimeWindow.Builder>
      • isInitialized

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

        public TimeWindow.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<TimeWindow.Builder>
        Throws:
        IOException
      • hasStartTime

        public boolean hasStartTime()
         The hard time window start time. If unspecified it will be set to
         `ShipmentModel.global_start_time`.
         
        .google.protobuf.Timestamp start_time = 1;
        Specified by:
        hasStartTime in interface TimeWindowOrBuilder
        Returns:
        Whether the startTime field is set.
      • getStartTime

        public com.google.protobuf.Timestamp getStartTime()
         The hard time window start time. If unspecified it will be set to
         `ShipmentModel.global_start_time`.
         
        .google.protobuf.Timestamp start_time = 1;
        Specified by:
        getStartTime in interface TimeWindowOrBuilder
        Returns:
        The startTime.
      • setStartTime

        public TimeWindow.Builder setStartTime​(com.google.protobuf.Timestamp value)
         The hard time window start time. If unspecified it will be set to
         `ShipmentModel.global_start_time`.
         
        .google.protobuf.Timestamp start_time = 1;
      • setStartTime

        public TimeWindow.Builder setStartTime​(com.google.protobuf.Timestamp.Builder builderForValue)
         The hard time window start time. If unspecified it will be set to
         `ShipmentModel.global_start_time`.
         
        .google.protobuf.Timestamp start_time = 1;
      • mergeStartTime

        public TimeWindow.Builder mergeStartTime​(com.google.protobuf.Timestamp value)
         The hard time window start time. If unspecified it will be set to
         `ShipmentModel.global_start_time`.
         
        .google.protobuf.Timestamp start_time = 1;
      • clearStartTime

        public TimeWindow.Builder clearStartTime()
         The hard time window start time. If unspecified it will be set to
         `ShipmentModel.global_start_time`.
         
        .google.protobuf.Timestamp start_time = 1;
      • getStartTimeBuilder

        public com.google.protobuf.Timestamp.Builder getStartTimeBuilder()
         The hard time window start time. If unspecified it will be set to
         `ShipmentModel.global_start_time`.
         
        .google.protobuf.Timestamp start_time = 1;
      • getStartTimeOrBuilder

        public com.google.protobuf.TimestampOrBuilder getStartTimeOrBuilder()
         The hard time window start time. If unspecified it will be set to
         `ShipmentModel.global_start_time`.
         
        .google.protobuf.Timestamp start_time = 1;
        Specified by:
        getStartTimeOrBuilder in interface TimeWindowOrBuilder
      • hasEndTime

        public boolean hasEndTime()
         The hard time window end time. If unspecified it will be set to
         `ShipmentModel.global_end_time`.
         
        .google.protobuf.Timestamp end_time = 2;
        Specified by:
        hasEndTime in interface TimeWindowOrBuilder
        Returns:
        Whether the endTime field is set.
      • getEndTime

        public com.google.protobuf.Timestamp getEndTime()
         The hard time window end time. If unspecified it will be set to
         `ShipmentModel.global_end_time`.
         
        .google.protobuf.Timestamp end_time = 2;
        Specified by:
        getEndTime in interface TimeWindowOrBuilder
        Returns:
        The endTime.
      • setEndTime

        public TimeWindow.Builder setEndTime​(com.google.protobuf.Timestamp value)
         The hard time window end time. If unspecified it will be set to
         `ShipmentModel.global_end_time`.
         
        .google.protobuf.Timestamp end_time = 2;
      • setEndTime

        public TimeWindow.Builder setEndTime​(com.google.protobuf.Timestamp.Builder builderForValue)
         The hard time window end time. If unspecified it will be set to
         `ShipmentModel.global_end_time`.
         
        .google.protobuf.Timestamp end_time = 2;
      • mergeEndTime

        public TimeWindow.Builder mergeEndTime​(com.google.protobuf.Timestamp value)
         The hard time window end time. If unspecified it will be set to
         `ShipmentModel.global_end_time`.
         
        .google.protobuf.Timestamp end_time = 2;
      • clearEndTime

        public TimeWindow.Builder clearEndTime()
         The hard time window end time. If unspecified it will be set to
         `ShipmentModel.global_end_time`.
         
        .google.protobuf.Timestamp end_time = 2;
      • getEndTimeBuilder

        public com.google.protobuf.Timestamp.Builder getEndTimeBuilder()
         The hard time window end time. If unspecified it will be set to
         `ShipmentModel.global_end_time`.
         
        .google.protobuf.Timestamp end_time = 2;
      • getEndTimeOrBuilder

        public com.google.protobuf.TimestampOrBuilder getEndTimeOrBuilder()
         The hard time window end time. If unspecified it will be set to
         `ShipmentModel.global_end_time`.
         
        .google.protobuf.Timestamp end_time = 2;
        Specified by:
        getEndTimeOrBuilder in interface TimeWindowOrBuilder
      • hasSoftStartTime

        public boolean hasSoftStartTime()
         The soft start time of the time window.
         
        .google.protobuf.Timestamp soft_start_time = 3;
        Specified by:
        hasSoftStartTime in interface TimeWindowOrBuilder
        Returns:
        Whether the softStartTime field is set.
      • getSoftStartTime

        public com.google.protobuf.Timestamp getSoftStartTime()
         The soft start time of the time window.
         
        .google.protobuf.Timestamp soft_start_time = 3;
        Specified by:
        getSoftStartTime in interface TimeWindowOrBuilder
        Returns:
        The softStartTime.
      • setSoftStartTime

        public TimeWindow.Builder setSoftStartTime​(com.google.protobuf.Timestamp value)
         The soft start time of the time window.
         
        .google.protobuf.Timestamp soft_start_time = 3;
      • setSoftStartTime

        public TimeWindow.Builder setSoftStartTime​(com.google.protobuf.Timestamp.Builder builderForValue)
         The soft start time of the time window.
         
        .google.protobuf.Timestamp soft_start_time = 3;
      • mergeSoftStartTime

        public TimeWindow.Builder mergeSoftStartTime​(com.google.protobuf.Timestamp value)
         The soft start time of the time window.
         
        .google.protobuf.Timestamp soft_start_time = 3;
      • clearSoftStartTime

        public TimeWindow.Builder clearSoftStartTime()
         The soft start time of the time window.
         
        .google.protobuf.Timestamp soft_start_time = 3;
      • getSoftStartTimeBuilder

        public com.google.protobuf.Timestamp.Builder getSoftStartTimeBuilder()
         The soft start time of the time window.
         
        .google.protobuf.Timestamp soft_start_time = 3;
      • getSoftStartTimeOrBuilder

        public com.google.protobuf.TimestampOrBuilder getSoftStartTimeOrBuilder()
         The soft start time of the time window.
         
        .google.protobuf.Timestamp soft_start_time = 3;
        Specified by:
        getSoftStartTimeOrBuilder in interface TimeWindowOrBuilder
      • hasSoftEndTime

        public boolean hasSoftEndTime()
         The soft end time of the time window.
         
        .google.protobuf.Timestamp soft_end_time = 4;
        Specified by:
        hasSoftEndTime in interface TimeWindowOrBuilder
        Returns:
        Whether the softEndTime field is set.
      • getSoftEndTime

        public com.google.protobuf.Timestamp getSoftEndTime()
         The soft end time of the time window.
         
        .google.protobuf.Timestamp soft_end_time = 4;
        Specified by:
        getSoftEndTime in interface TimeWindowOrBuilder
        Returns:
        The softEndTime.
      • setSoftEndTime

        public TimeWindow.Builder setSoftEndTime​(com.google.protobuf.Timestamp value)
         The soft end time of the time window.
         
        .google.protobuf.Timestamp soft_end_time = 4;
      • setSoftEndTime

        public TimeWindow.Builder setSoftEndTime​(com.google.protobuf.Timestamp.Builder builderForValue)
         The soft end time of the time window.
         
        .google.protobuf.Timestamp soft_end_time = 4;
      • mergeSoftEndTime

        public TimeWindow.Builder mergeSoftEndTime​(com.google.protobuf.Timestamp value)
         The soft end time of the time window.
         
        .google.protobuf.Timestamp soft_end_time = 4;
      • clearSoftEndTime

        public TimeWindow.Builder clearSoftEndTime()
         The soft end time of the time window.
         
        .google.protobuf.Timestamp soft_end_time = 4;
      • getSoftEndTimeBuilder

        public com.google.protobuf.Timestamp.Builder getSoftEndTimeBuilder()
         The soft end time of the time window.
         
        .google.protobuf.Timestamp soft_end_time = 4;
      • getSoftEndTimeOrBuilder

        public com.google.protobuf.TimestampOrBuilder getSoftEndTimeOrBuilder()
         The soft end time of the time window.
         
        .google.protobuf.Timestamp soft_end_time = 4;
        Specified by:
        getSoftEndTimeOrBuilder in interface TimeWindowOrBuilder
      • hasCostPerHourBeforeSoftStartTime

        public boolean hasCostPerHourBeforeSoftStartTime()
         A cost per hour added to other costs in the model if the event occurs
         before soft_start_time, computed as:
        
         ```
            max(0, soft_start_time - t.seconds)
                                   * cost_per_hour_before_soft_start_time / 3600,
         t being the time of the event.
         ```
        
         This cost must be positive, and the field can only be set if
         soft_start_time has been set.
         
        optional double cost_per_hour_before_soft_start_time = 5;
        Specified by:
        hasCostPerHourBeforeSoftStartTime in interface TimeWindowOrBuilder
        Returns:
        Whether the costPerHourBeforeSoftStartTime field is set.
      • getCostPerHourBeforeSoftStartTime

        public double getCostPerHourBeforeSoftStartTime()
         A cost per hour added to other costs in the model if the event occurs
         before soft_start_time, computed as:
        
         ```
            max(0, soft_start_time - t.seconds)
                                   * cost_per_hour_before_soft_start_time / 3600,
         t being the time of the event.
         ```
        
         This cost must be positive, and the field can only be set if
         soft_start_time has been set.
         
        optional double cost_per_hour_before_soft_start_time = 5;
        Specified by:
        getCostPerHourBeforeSoftStartTime in interface TimeWindowOrBuilder
        Returns:
        The costPerHourBeforeSoftStartTime.
      • setCostPerHourBeforeSoftStartTime

        public TimeWindow.Builder setCostPerHourBeforeSoftStartTime​(double value)
         A cost per hour added to other costs in the model if the event occurs
         before soft_start_time, computed as:
        
         ```
            max(0, soft_start_time - t.seconds)
                                   * cost_per_hour_before_soft_start_time / 3600,
         t being the time of the event.
         ```
        
         This cost must be positive, and the field can only be set if
         soft_start_time has been set.
         
        optional double cost_per_hour_before_soft_start_time = 5;
        Parameters:
        value - The costPerHourBeforeSoftStartTime to set.
        Returns:
        This builder for chaining.
      • clearCostPerHourBeforeSoftStartTime

        public TimeWindow.Builder clearCostPerHourBeforeSoftStartTime()
         A cost per hour added to other costs in the model if the event occurs
         before soft_start_time, computed as:
        
         ```
            max(0, soft_start_time - t.seconds)
                                   * cost_per_hour_before_soft_start_time / 3600,
         t being the time of the event.
         ```
        
         This cost must be positive, and the field can only be set if
         soft_start_time has been set.
         
        optional double cost_per_hour_before_soft_start_time = 5;
        Returns:
        This builder for chaining.
      • hasCostPerHourAfterSoftEndTime

        public boolean hasCostPerHourAfterSoftEndTime()
         A cost per hour added to other costs in the model if the event occurs after
         `soft_end_time`, computed as:
        
         ```
            max(0, t.seconds - soft_end_time.seconds)
                             * cost_per_hour_after_soft_end_time / 3600,
         t being the time of the event.
         ```
        
         This cost must be positive, and the field can only be set if
         `soft_end_time` has been set.
         
        optional double cost_per_hour_after_soft_end_time = 6;
        Specified by:
        hasCostPerHourAfterSoftEndTime in interface TimeWindowOrBuilder
        Returns:
        Whether the costPerHourAfterSoftEndTime field is set.
      • getCostPerHourAfterSoftEndTime

        public double getCostPerHourAfterSoftEndTime()
         A cost per hour added to other costs in the model if the event occurs after
         `soft_end_time`, computed as:
        
         ```
            max(0, t.seconds - soft_end_time.seconds)
                             * cost_per_hour_after_soft_end_time / 3600,
         t being the time of the event.
         ```
        
         This cost must be positive, and the field can only be set if
         `soft_end_time` has been set.
         
        optional double cost_per_hour_after_soft_end_time = 6;
        Specified by:
        getCostPerHourAfterSoftEndTime in interface TimeWindowOrBuilder
        Returns:
        The costPerHourAfterSoftEndTime.
      • setCostPerHourAfterSoftEndTime

        public TimeWindow.Builder setCostPerHourAfterSoftEndTime​(double value)
         A cost per hour added to other costs in the model if the event occurs after
         `soft_end_time`, computed as:
        
         ```
            max(0, t.seconds - soft_end_time.seconds)
                             * cost_per_hour_after_soft_end_time / 3600,
         t being the time of the event.
         ```
        
         This cost must be positive, and the field can only be set if
         `soft_end_time` has been set.
         
        optional double cost_per_hour_after_soft_end_time = 6;
        Parameters:
        value - The costPerHourAfterSoftEndTime to set.
        Returns:
        This builder for chaining.
      • clearCostPerHourAfterSoftEndTime

        public TimeWindow.Builder clearCostPerHourAfterSoftEndTime()
         A cost per hour added to other costs in the model if the event occurs after
         `soft_end_time`, computed as:
        
         ```
            max(0, t.seconds - soft_end_time.seconds)
                             * cost_per_hour_after_soft_end_time / 3600,
         t being the time of the event.
         ```
        
         This cost must be positive, and the field can only be set if
         `soft_end_time` has been set.
         
        optional double cost_per_hour_after_soft_end_time = 6;
        Returns:
        This builder for chaining.
      • setUnknownFields

        public final TimeWindow.Builder setUnknownFields​(com.google.protobuf.UnknownFieldSet unknownFields)
        Specified by:
        setUnknownFields in interface com.google.protobuf.Message.Builder
        Overrides:
        setUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<TimeWindow.Builder>
      • mergeUnknownFields

        public final TimeWindow.Builder mergeUnknownFields​(com.google.protobuf.UnknownFieldSet unknownFields)
        Specified by:
        mergeUnknownFields in interface com.google.protobuf.Message.Builder
        Overrides:
        mergeUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<TimeWindow.Builder>