Java Reference

Java Reference

IntervalVar.java
Go to the documentation of this file.
1// Copyright 2010-2021 Google LLC
2// Licensed under the Apache License, Version 2.0 (the "License");
3// you may not use this file except in compliance with the License.
4// You may obtain a copy of the License at
5//
6// http://www.apache.org/licenses/LICENSE-2.0
7//
8// Unless required by applicable law or agreed to in writing, software
9// distributed under the License is distributed on an "AS IS" BASIS,
10// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11// See the License for the specific language governing permissions and
12// limitations under the License.
13
14package com.google.ortools.sat;
15
16import com.google.ortools.sat.ConstraintProto;
17import com.google.ortools.sat.CpModelProto;
18import com.google.ortools.sat.IntervalConstraintProto;
19import com.google.ortools.sat.LinearExpressionProto;
20
22public final class IntervalVar {
23 IntervalVar(CpModelProto.Builder builder, LinearExpressionProto.Builder startBuilder,
24 LinearExpressionProto.Builder sizeBuilder, LinearExpressionProto.Builder endBuilder,
25 String name) {
26 this.modelBuilder = builder;
27 this.constraintIndex = modelBuilder.getConstraintsCount();
28 ConstraintProto.Builder ct = modelBuilder.addConstraintsBuilder();
29 ct.setName(name);
30 this.intervalBuilder = ct.getIntervalBuilder();
31 this.intervalBuilder.setStart(startBuilder);
32 this.intervalBuilder.setSize(sizeBuilder);
33 this.intervalBuilder.setEnd(endBuilder);
34 }
35
36 IntervalVar(CpModelProto.Builder builder, LinearExpressionProto.Builder startBuilder,
37 LinearExpressionProto.Builder sizeBuilder, LinearExpressionProto.Builder endBuilder,
38 int isPresentIndex, String name) {
39 this.modelBuilder = builder;
40 this.constraintIndex = modelBuilder.getConstraintsCount();
41 ConstraintProto.Builder ct = modelBuilder.addConstraintsBuilder();
42 ct.setName(name);
43 ct.addEnforcementLiteral(isPresentIndex);
44 this.intervalBuilder = ct.getIntervalBuilder();
45 this.intervalBuilder.setStart(startBuilder);
46 this.intervalBuilder.setSize(sizeBuilder);
47 this.intervalBuilder.setEnd(endBuilder);
48 }
49
50 @Override
51 public String toString() {
52 return modelBuilder.getConstraints(constraintIndex).toString();
53 }
54
56 public int getIndex() {
57 return constraintIndex;
58 }
59
61 public IntervalConstraintProto.Builder getBuilder() {
62 return intervalBuilder;
63 }
64
66 public String getName() {
67 return modelBuilder.getConstraints(constraintIndex).getName();
68 }
69
72 return LinearExpr.rebuildFromLinearExpressionProto(intervalBuilder.getStart());
73 }
74
77 return LinearExpr.rebuildFromLinearExpressionProto(intervalBuilder.getSize());
78 }
79
82 return LinearExpr.rebuildFromLinearExpressionProto(intervalBuilder.getEnd());
83 }
84
85 private final CpModelProto.Builder modelBuilder;
86 private final int constraintIndex;
87 private final IntervalConstraintProto.Builder intervalBuilder;
88}
LinearExpr getStartExpr()
Returns the start expression.
IntervalConstraintProto.Builder getBuilder()
Returns the interval builder.
int getIndex()
Returns the index of the interval constraint in the model.
LinearExpr getEndExpr()
Returns the end expression.
String getName()
Returns the name passed in the constructor.
LinearExpr getSizeExpr()
Returns the size expression.
A linear expression (sum (ai * xi) + b).
Definition: LinearExpr.java:19
static LinearExpr rebuildFromLinearExpressionProto(LinearExpressionProto proto)
Definition: LinearExpr.java:62