All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.google.ortools.sat.CpSolverResponse Maven / Gradle / Ivy

The newest version!
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: ortools/sat/cp_model.proto

package com.google.ortools.sat;

/**
 * 
 * The response returned by a solver trying to solve a CpModelProto.
 * TODO(user): support returning multiple solutions. Look at the Stubby
 * streaming API as we probably wants to get them as they are found.
 * Next id: 24
 * 
* * Protobuf type {@code operations_research.sat.CpSolverResponse} */ public final class CpSolverResponse extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:operations_research.sat.CpSolverResponse) CpSolverResponseOrBuilder { private static final long serialVersionUID = 0L; // Use CpSolverResponse.newBuilder() to construct. private CpSolverResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private CpSolverResponse() { status_ = 0; solution_ = emptyLongList(); solutionLowerBounds_ = emptyLongList(); solutionUpperBounds_ = emptyLongList(); tightenedVariables_ = java.util.Collections.emptyList(); sufficientAssumptionsForInfeasibility_ = emptyIntList(); solutionInfo_ = ""; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new CpSolverResponse(); } @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { return this.unknownFields; } private CpSolverResponse( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { this(); if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } int mutable_bitField0_ = 0; com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; case 8: { int rawValue = input.readEnum(); status_ = rawValue; break; } case 16: { if (!((mutable_bitField0_ & 0x00000001) != 0)) { solution_ = newLongList(); mutable_bitField0_ |= 0x00000001; } solution_.addLong(input.readInt64()); break; } case 18: { int length = input.readRawVarint32(); int limit = input.pushLimit(length); if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) { solution_ = newLongList(); mutable_bitField0_ |= 0x00000001; } while (input.getBytesUntilLimit() > 0) { solution_.addLong(input.readInt64()); } input.popLimit(limit); break; } case 25: { objectiveValue_ = input.readDouble(); break; } case 33: { bestObjectiveBound_ = input.readDouble(); break; } case 40: { allSolutionsWereFound_ = input.readBool(); break; } case 80: { numBooleans_ = input.readInt64(); break; } case 88: { numConflicts_ = input.readInt64(); break; } case 96: { numBranches_ = input.readInt64(); break; } case 104: { numBinaryPropagations_ = input.readInt64(); break; } case 112: { numIntegerPropagations_ = input.readInt64(); break; } case 121: { wallTime_ = input.readDouble(); break; } case 129: { userTime_ = input.readDouble(); break; } case 137: { deterministicTime_ = input.readDouble(); break; } case 144: { if (!((mutable_bitField0_ & 0x00000002) != 0)) { solutionLowerBounds_ = newLongList(); mutable_bitField0_ |= 0x00000002; } solutionLowerBounds_.addLong(input.readInt64()); break; } case 146: { int length = input.readRawVarint32(); int limit = input.pushLimit(length); if (!((mutable_bitField0_ & 0x00000002) != 0) && input.getBytesUntilLimit() > 0) { solutionLowerBounds_ = newLongList(); mutable_bitField0_ |= 0x00000002; } while (input.getBytesUntilLimit() > 0) { solutionLowerBounds_.addLong(input.readInt64()); } input.popLimit(limit); break; } case 152: { if (!((mutable_bitField0_ & 0x00000004) != 0)) { solutionUpperBounds_ = newLongList(); mutable_bitField0_ |= 0x00000004; } solutionUpperBounds_.addLong(input.readInt64()); break; } case 154: { int length = input.readRawVarint32(); int limit = input.pushLimit(length); if (!((mutable_bitField0_ & 0x00000004) != 0) && input.getBytesUntilLimit() > 0) { solutionUpperBounds_ = newLongList(); mutable_bitField0_ |= 0x00000004; } while (input.getBytesUntilLimit() > 0) { solutionUpperBounds_.addLong(input.readInt64()); } input.popLimit(limit); break; } case 162: { java.lang.String s = input.readStringRequireUtf8(); solutionInfo_ = s; break; } case 170: { if (!((mutable_bitField0_ & 0x00000008) != 0)) { tightenedVariables_ = new java.util.ArrayList(); mutable_bitField0_ |= 0x00000008; } tightenedVariables_.add( input.readMessage(com.google.ortools.sat.IntegerVariableProto.parser(), extensionRegistry)); break; } case 177: { primalIntegral_ = input.readDouble(); break; } case 184: { if (!((mutable_bitField0_ & 0x00000010) != 0)) { sufficientAssumptionsForInfeasibility_ = newIntList(); mutable_bitField0_ |= 0x00000010; } sufficientAssumptionsForInfeasibility_.addInt(input.readInt32()); break; } case 186: { int length = input.readRawVarint32(); int limit = input.pushLimit(length); if (!((mutable_bitField0_ & 0x00000010) != 0) && input.getBytesUntilLimit() > 0) { sufficientAssumptionsForInfeasibility_ = newIntList(); mutable_bitField0_ |= 0x00000010; } while (input.getBytesUntilLimit() > 0) { sufficientAssumptionsForInfeasibility_.addInt(input.readInt32()); } input.popLimit(limit); break; } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { done = true; } break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException( e).setUnfinishedMessage(this); } finally { if (((mutable_bitField0_ & 0x00000001) != 0)) { solution_.makeImmutable(); // C } if (((mutable_bitField0_ & 0x00000002) != 0)) { solutionLowerBounds_.makeImmutable(); // C } if (((mutable_bitField0_ & 0x00000004) != 0)) { solutionUpperBounds_.makeImmutable(); // C } if (((mutable_bitField0_ & 0x00000008) != 0)) { tightenedVariables_ = java.util.Collections.unmodifiableList(tightenedVariables_); } if (((mutable_bitField0_ & 0x00000010) != 0)) { sufficientAssumptionsForInfeasibility_.makeImmutable(); // C } this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.ortools.sat.CpModelProtobuf.internal_static_operations_research_sat_CpSolverResponse_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return com.google.ortools.sat.CpModelProtobuf.internal_static_operations_research_sat_CpSolverResponse_fieldAccessorTable .ensureFieldAccessorsInitialized( com.google.ortools.sat.CpSolverResponse.class, com.google.ortools.sat.CpSolverResponse.Builder.class); } public static final int STATUS_FIELD_NUMBER = 1; private int status_; /** *
   * The status of the solve.
   * 
* * .operations_research.sat.CpSolverStatus status = 1; * @return The enum numeric value on the wire for status. */ @java.lang.Override public int getStatusValue() { return status_; } /** *
   * The status of the solve.
   * 
* * .operations_research.sat.CpSolverStatus status = 1; * @return The status. */ @java.lang.Override public com.google.ortools.sat.CpSolverStatus getStatus() { @SuppressWarnings("deprecation") com.google.ortools.sat.CpSolverStatus result = com.google.ortools.sat.CpSolverStatus.valueOf(status_); return result == null ? com.google.ortools.sat.CpSolverStatus.UNRECOGNIZED : result; } public static final int SOLUTION_FIELD_NUMBER = 2; private com.google.protobuf.Internal.LongList solution_; /** *
   * A feasible solution to the given problem. Depending on the returned status
   * it may be optimal or just feasible. This is in one-to-one correspondence
   * with a CpModelProto::variables repeated field and list the values of all
   * the variables.
   * 
* * repeated int64 solution = 2; * @return A list containing the solution. */ @java.lang.Override public java.util.List getSolutionList() { return solution_; } /** *
   * A feasible solution to the given problem. Depending on the returned status
   * it may be optimal or just feasible. This is in one-to-one correspondence
   * with a CpModelProto::variables repeated field and list the values of all
   * the variables.
   * 
* * repeated int64 solution = 2; * @return The count of solution. */ public int getSolutionCount() { return solution_.size(); } /** *
   * A feasible solution to the given problem. Depending on the returned status
   * it may be optimal or just feasible. This is in one-to-one correspondence
   * with a CpModelProto::variables repeated field and list the values of all
   * the variables.
   * 
* * repeated int64 solution = 2; * @param index The index of the element to return. * @return The solution at the given index. */ public long getSolution(int index) { return solution_.getLong(index); } private int solutionMemoizedSerializedSize = -1; public static final int OBJECTIVE_VALUE_FIELD_NUMBER = 3; private double objectiveValue_; /** *
   * Only make sense for an optimization problem. The objective value of the
   * returned solution if it is non-empty. If there is no solution, then for a
   * minimization problem, this will be an upper-bound of the objective of any
   * feasible solution, and a lower-bound for a maximization problem.
   * 
* * double objective_value = 3; * @return The objectiveValue. */ @java.lang.Override public double getObjectiveValue() { return objectiveValue_; } public static final int BEST_OBJECTIVE_BOUND_FIELD_NUMBER = 4; private double bestObjectiveBound_; /** *
   * Only make sense for an optimization problem. A proven lower-bound on the
   * objective for a minimization problem, or a proven upper-bound for a
   * maximization problem.
   * 
* * double best_objective_bound = 4; * @return The bestObjectiveBound. */ @java.lang.Override public double getBestObjectiveBound() { return bestObjectiveBound_; } public static final int SOLUTION_LOWER_BOUNDS_FIELD_NUMBER = 18; private com.google.protobuf.Internal.LongList solutionLowerBounds_; /** *
   * Advanced usage.
   * If the problem has some variables that are not fixed at the end of the
   * search (because of a particular search strategy in the CpModelProto) then
   * this will be used instead of filling the solution above. The two fields
   * will then contains the lower and upper bounds of each variable as they were
   * when the best "solution" was found.
   * 
* * repeated int64 solution_lower_bounds = 18; * @return A list containing the solutionLowerBounds. */ @java.lang.Override public java.util.List getSolutionLowerBoundsList() { return solutionLowerBounds_; } /** *
   * Advanced usage.
   * If the problem has some variables that are not fixed at the end of the
   * search (because of a particular search strategy in the CpModelProto) then
   * this will be used instead of filling the solution above. The two fields
   * will then contains the lower and upper bounds of each variable as they were
   * when the best "solution" was found.
   * 
* * repeated int64 solution_lower_bounds = 18; * @return The count of solutionLowerBounds. */ public int getSolutionLowerBoundsCount() { return solutionLowerBounds_.size(); } /** *
   * Advanced usage.
   * If the problem has some variables that are not fixed at the end of the
   * search (because of a particular search strategy in the CpModelProto) then
   * this will be used instead of filling the solution above. The two fields
   * will then contains the lower and upper bounds of each variable as they were
   * when the best "solution" was found.
   * 
* * repeated int64 solution_lower_bounds = 18; * @param index The index of the element to return. * @return The solutionLowerBounds at the given index. */ public long getSolutionLowerBounds(int index) { return solutionLowerBounds_.getLong(index); } private int solutionLowerBoundsMemoizedSerializedSize = -1; public static final int SOLUTION_UPPER_BOUNDS_FIELD_NUMBER = 19; private com.google.protobuf.Internal.LongList solutionUpperBounds_; /** * repeated int64 solution_upper_bounds = 19; * @return A list containing the solutionUpperBounds. */ @java.lang.Override public java.util.List getSolutionUpperBoundsList() { return solutionUpperBounds_; } /** * repeated int64 solution_upper_bounds = 19; * @return The count of solutionUpperBounds. */ public int getSolutionUpperBoundsCount() { return solutionUpperBounds_.size(); } /** * repeated int64 solution_upper_bounds = 19; * @param index The index of the element to return. * @return The solutionUpperBounds at the given index. */ public long getSolutionUpperBounds(int index) { return solutionUpperBounds_.getLong(index); } private int solutionUpperBoundsMemoizedSerializedSize = -1; public static final int TIGHTENED_VARIABLES_FIELD_NUMBER = 21; private java.util.List tightenedVariables_; /** *
   * Advanced usage.
   * If the option fill_tightened_domains_in_response is set, then this field
   * will be a copy of the CpModelProto.variables where each domain has been
   * reduced using the information the solver was able to derive. Note that this
   * is only filled with the info derived during a normal search and we do not
   * have any dedicated algorithm to improve it.
   * If the problem is a feasibility problem, then these bounds will be valid
   * for any feasible solution. If the problem is an optimization problem, then
   * these bounds will only be valid for any OPTIMAL solutions, it can exclude
   * sub-optimal feasible ones.
   * 
* * repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21; */ @java.lang.Override public java.util.List getTightenedVariablesList() { return tightenedVariables_; } /** *
   * Advanced usage.
   * If the option fill_tightened_domains_in_response is set, then this field
   * will be a copy of the CpModelProto.variables where each domain has been
   * reduced using the information the solver was able to derive. Note that this
   * is only filled with the info derived during a normal search and we do not
   * have any dedicated algorithm to improve it.
   * If the problem is a feasibility problem, then these bounds will be valid
   * for any feasible solution. If the problem is an optimization problem, then
   * these bounds will only be valid for any OPTIMAL solutions, it can exclude
   * sub-optimal feasible ones.
   * 
* * repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21; */ @java.lang.Override public java.util.List getTightenedVariablesOrBuilderList() { return tightenedVariables_; } /** *
   * Advanced usage.
   * If the option fill_tightened_domains_in_response is set, then this field
   * will be a copy of the CpModelProto.variables where each domain has been
   * reduced using the information the solver was able to derive. Note that this
   * is only filled with the info derived during a normal search and we do not
   * have any dedicated algorithm to improve it.
   * If the problem is a feasibility problem, then these bounds will be valid
   * for any feasible solution. If the problem is an optimization problem, then
   * these bounds will only be valid for any OPTIMAL solutions, it can exclude
   * sub-optimal feasible ones.
   * 
* * repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21; */ @java.lang.Override public int getTightenedVariablesCount() { return tightenedVariables_.size(); } /** *
   * Advanced usage.
   * If the option fill_tightened_domains_in_response is set, then this field
   * will be a copy of the CpModelProto.variables where each domain has been
   * reduced using the information the solver was able to derive. Note that this
   * is only filled with the info derived during a normal search and we do not
   * have any dedicated algorithm to improve it.
   * If the problem is a feasibility problem, then these bounds will be valid
   * for any feasible solution. If the problem is an optimization problem, then
   * these bounds will only be valid for any OPTIMAL solutions, it can exclude
   * sub-optimal feasible ones.
   * 
* * repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21; */ @java.lang.Override public com.google.ortools.sat.IntegerVariableProto getTightenedVariables(int index) { return tightenedVariables_.get(index); } /** *
   * Advanced usage.
   * If the option fill_tightened_domains_in_response is set, then this field
   * will be a copy of the CpModelProto.variables where each domain has been
   * reduced using the information the solver was able to derive. Note that this
   * is only filled with the info derived during a normal search and we do not
   * have any dedicated algorithm to improve it.
   * If the problem is a feasibility problem, then these bounds will be valid
   * for any feasible solution. If the problem is an optimization problem, then
   * these bounds will only be valid for any OPTIMAL solutions, it can exclude
   * sub-optimal feasible ones.
   * 
* * repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21; */ @java.lang.Override public com.google.ortools.sat.IntegerVariableProtoOrBuilder getTightenedVariablesOrBuilder( int index) { return tightenedVariables_.get(index); } public static final int SUFFICIENT_ASSUMPTIONS_FOR_INFEASIBILITY_FIELD_NUMBER = 23; private com.google.protobuf.Internal.IntList sufficientAssumptionsForInfeasibility_; /** *
   * A subset of the model "assumptions" field. This will only be filled if the
   * status is INFEASIBLE. This subset of assumption will be enough to still get
   * an infeasible problem.
   * This is related to what is called the irreducible inconsistent subsystem or
   * IIS. Except one is only concerned by the provided assumptions. There is
   * also no guarantee that we return an irreducible (aka minimal subset).
   * However, this is based on SAT explanation and there is a good chance it is
   * not too large.
   * If you really want a minimal subset, a possible way to get one is by
   * changing your model to minimize the number of assumptions at false, but
   * this is likely an harder problem to solve.
   * TODO(user): Allows for returning multiple core at once.
   * 
* * repeated int32 sufficient_assumptions_for_infeasibility = 23; * @return A list containing the sufficientAssumptionsForInfeasibility. */ @java.lang.Override public java.util.List getSufficientAssumptionsForInfeasibilityList() { return sufficientAssumptionsForInfeasibility_; } /** *
   * A subset of the model "assumptions" field. This will only be filled if the
   * status is INFEASIBLE. This subset of assumption will be enough to still get
   * an infeasible problem.
   * This is related to what is called the irreducible inconsistent subsystem or
   * IIS. Except one is only concerned by the provided assumptions. There is
   * also no guarantee that we return an irreducible (aka minimal subset).
   * However, this is based on SAT explanation and there is a good chance it is
   * not too large.
   * If you really want a minimal subset, a possible way to get one is by
   * changing your model to minimize the number of assumptions at false, but
   * this is likely an harder problem to solve.
   * TODO(user): Allows for returning multiple core at once.
   * 
* * repeated int32 sufficient_assumptions_for_infeasibility = 23; * @return The count of sufficientAssumptionsForInfeasibility. */ public int getSufficientAssumptionsForInfeasibilityCount() { return sufficientAssumptionsForInfeasibility_.size(); } /** *
   * A subset of the model "assumptions" field. This will only be filled if the
   * status is INFEASIBLE. This subset of assumption will be enough to still get
   * an infeasible problem.
   * This is related to what is called the irreducible inconsistent subsystem or
   * IIS. Except one is only concerned by the provided assumptions. There is
   * also no guarantee that we return an irreducible (aka minimal subset).
   * However, this is based on SAT explanation and there is a good chance it is
   * not too large.
   * If you really want a minimal subset, a possible way to get one is by
   * changing your model to minimize the number of assumptions at false, but
   * this is likely an harder problem to solve.
   * TODO(user): Allows for returning multiple core at once.
   * 
* * repeated int32 sufficient_assumptions_for_infeasibility = 23; * @param index The index of the element to return. * @return The sufficientAssumptionsForInfeasibility at the given index. */ public int getSufficientAssumptionsForInfeasibility(int index) { return sufficientAssumptionsForInfeasibility_.getInt(index); } private int sufficientAssumptionsForInfeasibilityMemoizedSerializedSize = -1; public static final int ALL_SOLUTIONS_WERE_FOUND_FIELD_NUMBER = 5; private boolean allSolutionsWereFound_; /** *
   * This will be true iff the solver was asked to find all solutions to a
   * satisfiability problem (or all optimal solutions to an optimization
   * problem), and it was successful in doing so.
   * TODO(user): Remove as we also use the OPTIMAL vs FEASIBLE status for that.
   * 
* * bool all_solutions_were_found = 5; * @return The allSolutionsWereFound. */ @java.lang.Override public boolean getAllSolutionsWereFound() { return allSolutionsWereFound_; } public static final int NUM_BOOLEANS_FIELD_NUMBER = 10; private long numBooleans_; /** *
   * Some statistics about the solve.
   * 
* * int64 num_booleans = 10; * @return The numBooleans. */ @java.lang.Override public long getNumBooleans() { return numBooleans_; } public static final int NUM_CONFLICTS_FIELD_NUMBER = 11; private long numConflicts_; /** * int64 num_conflicts = 11; * @return The numConflicts. */ @java.lang.Override public long getNumConflicts() { return numConflicts_; } public static final int NUM_BRANCHES_FIELD_NUMBER = 12; private long numBranches_; /** * int64 num_branches = 12; * @return The numBranches. */ @java.lang.Override public long getNumBranches() { return numBranches_; } public static final int NUM_BINARY_PROPAGATIONS_FIELD_NUMBER = 13; private long numBinaryPropagations_; /** * int64 num_binary_propagations = 13; * @return The numBinaryPropagations. */ @java.lang.Override public long getNumBinaryPropagations() { return numBinaryPropagations_; } public static final int NUM_INTEGER_PROPAGATIONS_FIELD_NUMBER = 14; private long numIntegerPropagations_; /** * int64 num_integer_propagations = 14; * @return The numIntegerPropagations. */ @java.lang.Override public long getNumIntegerPropagations() { return numIntegerPropagations_; } public static final int WALL_TIME_FIELD_NUMBER = 15; private double wallTime_; /** * double wall_time = 15; * @return The wallTime. */ @java.lang.Override public double getWallTime() { return wallTime_; } public static final int USER_TIME_FIELD_NUMBER = 16; private double userTime_; /** * double user_time = 16; * @return The userTime. */ @java.lang.Override public double getUserTime() { return userTime_; } public static final int DETERMINISTIC_TIME_FIELD_NUMBER = 17; private double deterministicTime_; /** * double deterministic_time = 17; * @return The deterministicTime. */ @java.lang.Override public double getDeterministicTime() { return deterministicTime_; } public static final int PRIMAL_INTEGRAL_FIELD_NUMBER = 22; private double primalIntegral_; /** * double primal_integral = 22; * @return The primalIntegral. */ @java.lang.Override public double getPrimalIntegral() { return primalIntegral_; } public static final int SOLUTION_INFO_FIELD_NUMBER = 20; private volatile java.lang.Object solutionInfo_; /** *
   * Additional information about how the solution was found.
   * 
* * string solution_info = 20; * @return The solutionInfo. */ @java.lang.Override public java.lang.String getSolutionInfo() { java.lang.Object ref = solutionInfo_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); solutionInfo_ = s; return s; } } /** *
   * Additional information about how the solution was found.
   * 
* * string solution_info = 20; * @return The bytes for solutionInfo. */ @java.lang.Override public com.google.protobuf.ByteString getSolutionInfoBytes() { java.lang.Object ref = solutionInfo_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); solutionInfo_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; } @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { getSerializedSize(); if (status_ != com.google.ortools.sat.CpSolverStatus.UNKNOWN.getNumber()) { output.writeEnum(1, status_); } if (getSolutionList().size() > 0) { output.writeUInt32NoTag(18); output.writeUInt32NoTag(solutionMemoizedSerializedSize); } for (int i = 0; i < solution_.size(); i++) { output.writeInt64NoTag(solution_.getLong(i)); } if (objectiveValue_ != 0D) { output.writeDouble(3, objectiveValue_); } if (bestObjectiveBound_ != 0D) { output.writeDouble(4, bestObjectiveBound_); } if (allSolutionsWereFound_ != false) { output.writeBool(5, allSolutionsWereFound_); } if (numBooleans_ != 0L) { output.writeInt64(10, numBooleans_); } if (numConflicts_ != 0L) { output.writeInt64(11, numConflicts_); } if (numBranches_ != 0L) { output.writeInt64(12, numBranches_); } if (numBinaryPropagations_ != 0L) { output.writeInt64(13, numBinaryPropagations_); } if (numIntegerPropagations_ != 0L) { output.writeInt64(14, numIntegerPropagations_); } if (wallTime_ != 0D) { output.writeDouble(15, wallTime_); } if (userTime_ != 0D) { output.writeDouble(16, userTime_); } if (deterministicTime_ != 0D) { output.writeDouble(17, deterministicTime_); } if (getSolutionLowerBoundsList().size() > 0) { output.writeUInt32NoTag(146); output.writeUInt32NoTag(solutionLowerBoundsMemoizedSerializedSize); } for (int i = 0; i < solutionLowerBounds_.size(); i++) { output.writeInt64NoTag(solutionLowerBounds_.getLong(i)); } if (getSolutionUpperBoundsList().size() > 0) { output.writeUInt32NoTag(154); output.writeUInt32NoTag(solutionUpperBoundsMemoizedSerializedSize); } for (int i = 0; i < solutionUpperBounds_.size(); i++) { output.writeInt64NoTag(solutionUpperBounds_.getLong(i)); } if (!getSolutionInfoBytes().isEmpty()) { com.google.protobuf.GeneratedMessageV3.writeString(output, 20, solutionInfo_); } for (int i = 0; i < tightenedVariables_.size(); i++) { output.writeMessage(21, tightenedVariables_.get(i)); } if (primalIntegral_ != 0D) { output.writeDouble(22, primalIntegral_); } if (getSufficientAssumptionsForInfeasibilityList().size() > 0) { output.writeUInt32NoTag(186); output.writeUInt32NoTag(sufficientAssumptionsForInfeasibilityMemoizedSerializedSize); } for (int i = 0; i < sufficientAssumptionsForInfeasibility_.size(); i++) { output.writeInt32NoTag(sufficientAssumptionsForInfeasibility_.getInt(i)); } unknownFields.writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (status_ != com.google.ortools.sat.CpSolverStatus.UNKNOWN.getNumber()) { size += com.google.protobuf.CodedOutputStream .computeEnumSize(1, status_); } { int dataSize = 0; for (int i = 0; i < solution_.size(); i++) { dataSize += com.google.protobuf.CodedOutputStream .computeInt64SizeNoTag(solution_.getLong(i)); } size += dataSize; if (!getSolutionList().isEmpty()) { size += 1; size += com.google.protobuf.CodedOutputStream .computeInt32SizeNoTag(dataSize); } solutionMemoizedSerializedSize = dataSize; } if (objectiveValue_ != 0D) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(3, objectiveValue_); } if (bestObjectiveBound_ != 0D) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(4, bestObjectiveBound_); } if (allSolutionsWereFound_ != false) { size += com.google.protobuf.CodedOutputStream .computeBoolSize(5, allSolutionsWereFound_); } if (numBooleans_ != 0L) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(10, numBooleans_); } if (numConflicts_ != 0L) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(11, numConflicts_); } if (numBranches_ != 0L) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(12, numBranches_); } if (numBinaryPropagations_ != 0L) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(13, numBinaryPropagations_); } if (numIntegerPropagations_ != 0L) { size += com.google.protobuf.CodedOutputStream .computeInt64Size(14, numIntegerPropagations_); } if (wallTime_ != 0D) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(15, wallTime_); } if (userTime_ != 0D) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(16, userTime_); } if (deterministicTime_ != 0D) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(17, deterministicTime_); } { int dataSize = 0; for (int i = 0; i < solutionLowerBounds_.size(); i++) { dataSize += com.google.protobuf.CodedOutputStream .computeInt64SizeNoTag(solutionLowerBounds_.getLong(i)); } size += dataSize; if (!getSolutionLowerBoundsList().isEmpty()) { size += 2; size += com.google.protobuf.CodedOutputStream .computeInt32SizeNoTag(dataSize); } solutionLowerBoundsMemoizedSerializedSize = dataSize; } { int dataSize = 0; for (int i = 0; i < solutionUpperBounds_.size(); i++) { dataSize += com.google.protobuf.CodedOutputStream .computeInt64SizeNoTag(solutionUpperBounds_.getLong(i)); } size += dataSize; if (!getSolutionUpperBoundsList().isEmpty()) { size += 2; size += com.google.protobuf.CodedOutputStream .computeInt32SizeNoTag(dataSize); } solutionUpperBoundsMemoizedSerializedSize = dataSize; } if (!getSolutionInfoBytes().isEmpty()) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(20, solutionInfo_); } for (int i = 0; i < tightenedVariables_.size(); i++) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(21, tightenedVariables_.get(i)); } if (primalIntegral_ != 0D) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(22, primalIntegral_); } { int dataSize = 0; for (int i = 0; i < sufficientAssumptionsForInfeasibility_.size(); i++) { dataSize += com.google.protobuf.CodedOutputStream .computeInt32SizeNoTag(sufficientAssumptionsForInfeasibility_.getInt(i)); } size += dataSize; if (!getSufficientAssumptionsForInfeasibilityList().isEmpty()) { size += 2; size += com.google.protobuf.CodedOutputStream .computeInt32SizeNoTag(dataSize); } sufficientAssumptionsForInfeasibilityMemoizedSerializedSize = dataSize; } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; } @java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof com.google.ortools.sat.CpSolverResponse)) { return super.equals(obj); } com.google.ortools.sat.CpSolverResponse other = (com.google.ortools.sat.CpSolverResponse) obj; if (status_ != other.status_) return false; if (!getSolutionList() .equals(other.getSolutionList())) return false; if (java.lang.Double.doubleToLongBits(getObjectiveValue()) != java.lang.Double.doubleToLongBits( other.getObjectiveValue())) return false; if (java.lang.Double.doubleToLongBits(getBestObjectiveBound()) != java.lang.Double.doubleToLongBits( other.getBestObjectiveBound())) return false; if (!getSolutionLowerBoundsList() .equals(other.getSolutionLowerBoundsList())) return false; if (!getSolutionUpperBoundsList() .equals(other.getSolutionUpperBoundsList())) return false; if (!getTightenedVariablesList() .equals(other.getTightenedVariablesList())) return false; if (!getSufficientAssumptionsForInfeasibilityList() .equals(other.getSufficientAssumptionsForInfeasibilityList())) return false; if (getAllSolutionsWereFound() != other.getAllSolutionsWereFound()) return false; if (getNumBooleans() != other.getNumBooleans()) return false; if (getNumConflicts() != other.getNumConflicts()) return false; if (getNumBranches() != other.getNumBranches()) return false; if (getNumBinaryPropagations() != other.getNumBinaryPropagations()) return false; if (getNumIntegerPropagations() != other.getNumIntegerPropagations()) return false; if (java.lang.Double.doubleToLongBits(getWallTime()) != java.lang.Double.doubleToLongBits( other.getWallTime())) return false; if (java.lang.Double.doubleToLongBits(getUserTime()) != java.lang.Double.doubleToLongBits( other.getUserTime())) return false; if (java.lang.Double.doubleToLongBits(getDeterministicTime()) != java.lang.Double.doubleToLongBits( other.getDeterministicTime())) return false; if (java.lang.Double.doubleToLongBits(getPrimalIntegral()) != java.lang.Double.doubleToLongBits( other.getPrimalIntegral())) return false; if (!getSolutionInfo() .equals(other.getSolutionInfo())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + STATUS_FIELD_NUMBER; hash = (53 * hash) + status_; if (getSolutionCount() > 0) { hash = (37 * hash) + SOLUTION_FIELD_NUMBER; hash = (53 * hash) + getSolutionList().hashCode(); } hash = (37 * hash) + OBJECTIVE_VALUE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getObjectiveValue())); hash = (37 * hash) + BEST_OBJECTIVE_BOUND_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getBestObjectiveBound())); if (getSolutionLowerBoundsCount() > 0) { hash = (37 * hash) + SOLUTION_LOWER_BOUNDS_FIELD_NUMBER; hash = (53 * hash) + getSolutionLowerBoundsList().hashCode(); } if (getSolutionUpperBoundsCount() > 0) { hash = (37 * hash) + SOLUTION_UPPER_BOUNDS_FIELD_NUMBER; hash = (53 * hash) + getSolutionUpperBoundsList().hashCode(); } if (getTightenedVariablesCount() > 0) { hash = (37 * hash) + TIGHTENED_VARIABLES_FIELD_NUMBER; hash = (53 * hash) + getTightenedVariablesList().hashCode(); } if (getSufficientAssumptionsForInfeasibilityCount() > 0) { hash = (37 * hash) + SUFFICIENT_ASSUMPTIONS_FOR_INFEASIBILITY_FIELD_NUMBER; hash = (53 * hash) + getSufficientAssumptionsForInfeasibilityList().hashCode(); } hash = (37 * hash) + ALL_SOLUTIONS_WERE_FOUND_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( getAllSolutionsWereFound()); hash = (37 * hash) + NUM_BOOLEANS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getNumBooleans()); hash = (37 * hash) + NUM_CONFLICTS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getNumConflicts()); hash = (37 * hash) + NUM_BRANCHES_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getNumBranches()); hash = (37 * hash) + NUM_BINARY_PROPAGATIONS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getNumBinaryPropagations()); hash = (37 * hash) + NUM_INTEGER_PROPAGATIONS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getNumIntegerPropagations()); hash = (37 * hash) + WALL_TIME_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getWallTime())); hash = (37 * hash) + USER_TIME_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getUserTime())); hash = (37 * hash) + DETERMINISTIC_TIME_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getDeterministicTime())); hash = (37 * hash) + PRIMAL_INTEGRAL_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getPrimalIntegral())); hash = (37 * hash) + SOLUTION_INFO_FIELD_NUMBER; hash = (53 * hash) + getSolutionInfo().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } public static com.google.ortools.sat.CpSolverResponse parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static com.google.ortools.sat.CpSolverResponse parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static com.google.ortools.sat.CpSolverResponse parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static com.google.ortools.sat.CpSolverResponse parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static com.google.ortools.sat.CpSolverResponse parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static com.google.ortools.sat.CpSolverResponse parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static com.google.ortools.sat.CpSolverResponse parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static com.google.ortools.sat.CpSolverResponse parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } public static com.google.ortools.sat.CpSolverResponse parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static com.google.ortools.sat.CpSolverResponse parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } public static com.google.ortools.sat.CpSolverResponse parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static com.google.ortools.sat.CpSolverResponse parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } public static Builder newBuilder(com.google.ortools.sat.CpSolverResponse prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** *
   * The response returned by a solver trying to solve a CpModelProto.
   * TODO(user): support returning multiple solutions. Look at the Stubby
   * streaming API as we probably wants to get them as they are found.
   * Next id: 24
   * 
* * Protobuf type {@code operations_research.sat.CpSolverResponse} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:operations_research.sat.CpSolverResponse) com.google.ortools.sat.CpSolverResponseOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return com.google.ortools.sat.CpModelProtobuf.internal_static_operations_research_sat_CpSolverResponse_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return com.google.ortools.sat.CpModelProtobuf.internal_static_operations_research_sat_CpSolverResponse_fieldAccessorTable .ensureFieldAccessorsInitialized( com.google.ortools.sat.CpSolverResponse.class, com.google.ortools.sat.CpSolverResponse.Builder.class); } // Construct using com.google.ortools.sat.CpSolverResponse.newBuilder() private Builder() { maybeForceBuilderInitialization(); } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { getTightenedVariablesFieldBuilder(); } } @java.lang.Override public Builder clear() { super.clear(); status_ = 0; solution_ = emptyLongList(); bitField0_ = (bitField0_ & ~0x00000001); objectiveValue_ = 0D; bestObjectiveBound_ = 0D; solutionLowerBounds_ = emptyLongList(); bitField0_ = (bitField0_ & ~0x00000002); solutionUpperBounds_ = emptyLongList(); bitField0_ = (bitField0_ & ~0x00000004); if (tightenedVariablesBuilder_ == null) { tightenedVariables_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000008); } else { tightenedVariablesBuilder_.clear(); } sufficientAssumptionsForInfeasibility_ = emptyIntList(); bitField0_ = (bitField0_ & ~0x00000010); allSolutionsWereFound_ = false; numBooleans_ = 0L; numConflicts_ = 0L; numBranches_ = 0L; numBinaryPropagations_ = 0L; numIntegerPropagations_ = 0L; wallTime_ = 0D; userTime_ = 0D; deterministicTime_ = 0D; primalIntegral_ = 0D; solutionInfo_ = ""; return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return com.google.ortools.sat.CpModelProtobuf.internal_static_operations_research_sat_CpSolverResponse_descriptor; } @java.lang.Override public com.google.ortools.sat.CpSolverResponse getDefaultInstanceForType() { return com.google.ortools.sat.CpSolverResponse.getDefaultInstance(); } @java.lang.Override public com.google.ortools.sat.CpSolverResponse build() { com.google.ortools.sat.CpSolverResponse result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public com.google.ortools.sat.CpSolverResponse buildPartial() { com.google.ortools.sat.CpSolverResponse result = new com.google.ortools.sat.CpSolverResponse(this); int from_bitField0_ = bitField0_; result.status_ = status_; if (((bitField0_ & 0x00000001) != 0)) { solution_.makeImmutable(); bitField0_ = (bitField0_ & ~0x00000001); } result.solution_ = solution_; result.objectiveValue_ = objectiveValue_; result.bestObjectiveBound_ = bestObjectiveBound_; if (((bitField0_ & 0x00000002) != 0)) { solutionLowerBounds_.makeImmutable(); bitField0_ = (bitField0_ & ~0x00000002); } result.solutionLowerBounds_ = solutionLowerBounds_; if (((bitField0_ & 0x00000004) != 0)) { solutionUpperBounds_.makeImmutable(); bitField0_ = (bitField0_ & ~0x00000004); } result.solutionUpperBounds_ = solutionUpperBounds_; if (tightenedVariablesBuilder_ == null) { if (((bitField0_ & 0x00000008) != 0)) { tightenedVariables_ = java.util.Collections.unmodifiableList(tightenedVariables_); bitField0_ = (bitField0_ & ~0x00000008); } result.tightenedVariables_ = tightenedVariables_; } else { result.tightenedVariables_ = tightenedVariablesBuilder_.build(); } if (((bitField0_ & 0x00000010) != 0)) { sufficientAssumptionsForInfeasibility_.makeImmutable(); bitField0_ = (bitField0_ & ~0x00000010); } result.sufficientAssumptionsForInfeasibility_ = sufficientAssumptionsForInfeasibility_; result.allSolutionsWereFound_ = allSolutionsWereFound_; result.numBooleans_ = numBooleans_; result.numConflicts_ = numConflicts_; result.numBranches_ = numBranches_; result.numBinaryPropagations_ = numBinaryPropagations_; result.numIntegerPropagations_ = numIntegerPropagations_; result.wallTime_ = wallTime_; result.userTime_ = userTime_; result.deterministicTime_ = deterministicTime_; result.primalIntegral_ = primalIntegral_; result.solutionInfo_ = solutionInfo_; onBuilt(); return result; } @java.lang.Override public Builder clone() { return super.clone(); } @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.setField(field, value); } @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return super.clearField(field); } @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return super.clearOneof(oneof); } @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { return super.setRepeatedField(field, index, value); } @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.addRepeatedField(field, value); } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof com.google.ortools.sat.CpSolverResponse) { return mergeFrom((com.google.ortools.sat.CpSolverResponse)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(com.google.ortools.sat.CpSolverResponse other) { if (other == com.google.ortools.sat.CpSolverResponse.getDefaultInstance()) return this; if (other.status_ != 0) { setStatusValue(other.getStatusValue()); } if (!other.solution_.isEmpty()) { if (solution_.isEmpty()) { solution_ = other.solution_; bitField0_ = (bitField0_ & ~0x00000001); } else { ensureSolutionIsMutable(); solution_.addAll(other.solution_); } onChanged(); } if (other.getObjectiveValue() != 0D) { setObjectiveValue(other.getObjectiveValue()); } if (other.getBestObjectiveBound() != 0D) { setBestObjectiveBound(other.getBestObjectiveBound()); } if (!other.solutionLowerBounds_.isEmpty()) { if (solutionLowerBounds_.isEmpty()) { solutionLowerBounds_ = other.solutionLowerBounds_; bitField0_ = (bitField0_ & ~0x00000002); } else { ensureSolutionLowerBoundsIsMutable(); solutionLowerBounds_.addAll(other.solutionLowerBounds_); } onChanged(); } if (!other.solutionUpperBounds_.isEmpty()) { if (solutionUpperBounds_.isEmpty()) { solutionUpperBounds_ = other.solutionUpperBounds_; bitField0_ = (bitField0_ & ~0x00000004); } else { ensureSolutionUpperBoundsIsMutable(); solutionUpperBounds_.addAll(other.solutionUpperBounds_); } onChanged(); } if (tightenedVariablesBuilder_ == null) { if (!other.tightenedVariables_.isEmpty()) { if (tightenedVariables_.isEmpty()) { tightenedVariables_ = other.tightenedVariables_; bitField0_ = (bitField0_ & ~0x00000008); } else { ensureTightenedVariablesIsMutable(); tightenedVariables_.addAll(other.tightenedVariables_); } onChanged(); } } else { if (!other.tightenedVariables_.isEmpty()) { if (tightenedVariablesBuilder_.isEmpty()) { tightenedVariablesBuilder_.dispose(); tightenedVariablesBuilder_ = null; tightenedVariables_ = other.tightenedVariables_; bitField0_ = (bitField0_ & ~0x00000008); tightenedVariablesBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getTightenedVariablesFieldBuilder() : null; } else { tightenedVariablesBuilder_.addAllMessages(other.tightenedVariables_); } } } if (!other.sufficientAssumptionsForInfeasibility_.isEmpty()) { if (sufficientAssumptionsForInfeasibility_.isEmpty()) { sufficientAssumptionsForInfeasibility_ = other.sufficientAssumptionsForInfeasibility_; bitField0_ = (bitField0_ & ~0x00000010); } else { ensureSufficientAssumptionsForInfeasibilityIsMutable(); sufficientAssumptionsForInfeasibility_.addAll(other.sufficientAssumptionsForInfeasibility_); } onChanged(); } if (other.getAllSolutionsWereFound() != false) { setAllSolutionsWereFound(other.getAllSolutionsWereFound()); } if (other.getNumBooleans() != 0L) { setNumBooleans(other.getNumBooleans()); } if (other.getNumConflicts() != 0L) { setNumConflicts(other.getNumConflicts()); } if (other.getNumBranches() != 0L) { setNumBranches(other.getNumBranches()); } if (other.getNumBinaryPropagations() != 0L) { setNumBinaryPropagations(other.getNumBinaryPropagations()); } if (other.getNumIntegerPropagations() != 0L) { setNumIntegerPropagations(other.getNumIntegerPropagations()); } if (other.getWallTime() != 0D) { setWallTime(other.getWallTime()); } if (other.getUserTime() != 0D) { setUserTime(other.getUserTime()); } if (other.getDeterministicTime() != 0D) { setDeterministicTime(other.getDeterministicTime()); } if (other.getPrimalIntegral() != 0D) { setPrimalIntegral(other.getPrimalIntegral()); } if (!other.getSolutionInfo().isEmpty()) { solutionInfo_ = other.solutionInfo_; onChanged(); } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; } @java.lang.Override public final boolean isInitialized() { return true; } @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { com.google.ortools.sat.CpSolverResponse parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { parsedMessage = (com.google.ortools.sat.CpSolverResponse) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { mergeFrom(parsedMessage); } } return this; } private int bitField0_; private int status_ = 0; /** *
     * The status of the solve.
     * 
* * .operations_research.sat.CpSolverStatus status = 1; * @return The enum numeric value on the wire for status. */ @java.lang.Override public int getStatusValue() { return status_; } /** *
     * The status of the solve.
     * 
* * .operations_research.sat.CpSolverStatus status = 1; * @param value The enum numeric value on the wire for status to set. * @return This builder for chaining. */ public Builder setStatusValue(int value) { status_ = value; onChanged(); return this; } /** *
     * The status of the solve.
     * 
* * .operations_research.sat.CpSolverStatus status = 1; * @return The status. */ @java.lang.Override public com.google.ortools.sat.CpSolverStatus getStatus() { @SuppressWarnings("deprecation") com.google.ortools.sat.CpSolverStatus result = com.google.ortools.sat.CpSolverStatus.valueOf(status_); return result == null ? com.google.ortools.sat.CpSolverStatus.UNRECOGNIZED : result; } /** *
     * The status of the solve.
     * 
* * .operations_research.sat.CpSolverStatus status = 1; * @param value The status to set. * @return This builder for chaining. */ public Builder setStatus(com.google.ortools.sat.CpSolverStatus value) { if (value == null) { throw new NullPointerException(); } status_ = value.getNumber(); onChanged(); return this; } /** *
     * The status of the solve.
     * 
* * .operations_research.sat.CpSolverStatus status = 1; * @return This builder for chaining. */ public Builder clearStatus() { status_ = 0; onChanged(); return this; } private com.google.protobuf.Internal.LongList solution_ = emptyLongList(); private void ensureSolutionIsMutable() { if (!((bitField0_ & 0x00000001) != 0)) { solution_ = mutableCopy(solution_); bitField0_ |= 0x00000001; } } /** *
     * A feasible solution to the given problem. Depending on the returned status
     * it may be optimal or just feasible. This is in one-to-one correspondence
     * with a CpModelProto::variables repeated field and list the values of all
     * the variables.
     * 
* * repeated int64 solution = 2; * @return A list containing the solution. */ public java.util.List getSolutionList() { return ((bitField0_ & 0x00000001) != 0) ? java.util.Collections.unmodifiableList(solution_) : solution_; } /** *
     * A feasible solution to the given problem. Depending on the returned status
     * it may be optimal or just feasible. This is in one-to-one correspondence
     * with a CpModelProto::variables repeated field and list the values of all
     * the variables.
     * 
* * repeated int64 solution = 2; * @return The count of solution. */ public int getSolutionCount() { return solution_.size(); } /** *
     * A feasible solution to the given problem. Depending on the returned status
     * it may be optimal or just feasible. This is in one-to-one correspondence
     * with a CpModelProto::variables repeated field and list the values of all
     * the variables.
     * 
* * repeated int64 solution = 2; * @param index The index of the element to return. * @return The solution at the given index. */ public long getSolution(int index) { return solution_.getLong(index); } /** *
     * A feasible solution to the given problem. Depending on the returned status
     * it may be optimal or just feasible. This is in one-to-one correspondence
     * with a CpModelProto::variables repeated field and list the values of all
     * the variables.
     * 
* * repeated int64 solution = 2; * @param index The index to set the value at. * @param value The solution to set. * @return This builder for chaining. */ public Builder setSolution( int index, long value) { ensureSolutionIsMutable(); solution_.setLong(index, value); onChanged(); return this; } /** *
     * A feasible solution to the given problem. Depending on the returned status
     * it may be optimal or just feasible. This is in one-to-one correspondence
     * with a CpModelProto::variables repeated field and list the values of all
     * the variables.
     * 
* * repeated int64 solution = 2; * @param value The solution to add. * @return This builder for chaining. */ public Builder addSolution(long value) { ensureSolutionIsMutable(); solution_.addLong(value); onChanged(); return this; } /** *
     * A feasible solution to the given problem. Depending on the returned status
     * it may be optimal or just feasible. This is in one-to-one correspondence
     * with a CpModelProto::variables repeated field and list the values of all
     * the variables.
     * 
* * repeated int64 solution = 2; * @param values The solution to add. * @return This builder for chaining. */ public Builder addAllSolution( java.lang.Iterable values) { ensureSolutionIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, solution_); onChanged(); return this; } /** *
     * A feasible solution to the given problem. Depending on the returned status
     * it may be optimal or just feasible. This is in one-to-one correspondence
     * with a CpModelProto::variables repeated field and list the values of all
     * the variables.
     * 
* * repeated int64 solution = 2; * @return This builder for chaining. */ public Builder clearSolution() { solution_ = emptyLongList(); bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } private double objectiveValue_ ; /** *
     * Only make sense for an optimization problem. The objective value of the
     * returned solution if it is non-empty. If there is no solution, then for a
     * minimization problem, this will be an upper-bound of the objective of any
     * feasible solution, and a lower-bound for a maximization problem.
     * 
* * double objective_value = 3; * @return The objectiveValue. */ @java.lang.Override public double getObjectiveValue() { return objectiveValue_; } /** *
     * Only make sense for an optimization problem. The objective value of the
     * returned solution if it is non-empty. If there is no solution, then for a
     * minimization problem, this will be an upper-bound of the objective of any
     * feasible solution, and a lower-bound for a maximization problem.
     * 
* * double objective_value = 3; * @param value The objectiveValue to set. * @return This builder for chaining. */ public Builder setObjectiveValue(double value) { objectiveValue_ = value; onChanged(); return this; } /** *
     * Only make sense for an optimization problem. The objective value of the
     * returned solution if it is non-empty. If there is no solution, then for a
     * minimization problem, this will be an upper-bound of the objective of any
     * feasible solution, and a lower-bound for a maximization problem.
     * 
* * double objective_value = 3; * @return This builder for chaining. */ public Builder clearObjectiveValue() { objectiveValue_ = 0D; onChanged(); return this; } private double bestObjectiveBound_ ; /** *
     * Only make sense for an optimization problem. A proven lower-bound on the
     * objective for a minimization problem, or a proven upper-bound for a
     * maximization problem.
     * 
* * double best_objective_bound = 4; * @return The bestObjectiveBound. */ @java.lang.Override public double getBestObjectiveBound() { return bestObjectiveBound_; } /** *
     * Only make sense for an optimization problem. A proven lower-bound on the
     * objective for a minimization problem, or a proven upper-bound for a
     * maximization problem.
     * 
* * double best_objective_bound = 4; * @param value The bestObjectiveBound to set. * @return This builder for chaining. */ public Builder setBestObjectiveBound(double value) { bestObjectiveBound_ = value; onChanged(); return this; } /** *
     * Only make sense for an optimization problem. A proven lower-bound on the
     * objective for a minimization problem, or a proven upper-bound for a
     * maximization problem.
     * 
* * double best_objective_bound = 4; * @return This builder for chaining. */ public Builder clearBestObjectiveBound() { bestObjectiveBound_ = 0D; onChanged(); return this; } private com.google.protobuf.Internal.LongList solutionLowerBounds_ = emptyLongList(); private void ensureSolutionLowerBoundsIsMutable() { if (!((bitField0_ & 0x00000002) != 0)) { solutionLowerBounds_ = mutableCopy(solutionLowerBounds_); bitField0_ |= 0x00000002; } } /** *
     * Advanced usage.
     * If the problem has some variables that are not fixed at the end of the
     * search (because of a particular search strategy in the CpModelProto) then
     * this will be used instead of filling the solution above. The two fields
     * will then contains the lower and upper bounds of each variable as they were
     * when the best "solution" was found.
     * 
* * repeated int64 solution_lower_bounds = 18; * @return A list containing the solutionLowerBounds. */ public java.util.List getSolutionLowerBoundsList() { return ((bitField0_ & 0x00000002) != 0) ? java.util.Collections.unmodifiableList(solutionLowerBounds_) : solutionLowerBounds_; } /** *
     * Advanced usage.
     * If the problem has some variables that are not fixed at the end of the
     * search (because of a particular search strategy in the CpModelProto) then
     * this will be used instead of filling the solution above. The two fields
     * will then contains the lower and upper bounds of each variable as they were
     * when the best "solution" was found.
     * 
* * repeated int64 solution_lower_bounds = 18; * @return The count of solutionLowerBounds. */ public int getSolutionLowerBoundsCount() { return solutionLowerBounds_.size(); } /** *
     * Advanced usage.
     * If the problem has some variables that are not fixed at the end of the
     * search (because of a particular search strategy in the CpModelProto) then
     * this will be used instead of filling the solution above. The two fields
     * will then contains the lower and upper bounds of each variable as they were
     * when the best "solution" was found.
     * 
* * repeated int64 solution_lower_bounds = 18; * @param index The index of the element to return. * @return The solutionLowerBounds at the given index. */ public long getSolutionLowerBounds(int index) { return solutionLowerBounds_.getLong(index); } /** *
     * Advanced usage.
     * If the problem has some variables that are not fixed at the end of the
     * search (because of a particular search strategy in the CpModelProto) then
     * this will be used instead of filling the solution above. The two fields
     * will then contains the lower and upper bounds of each variable as they were
     * when the best "solution" was found.
     * 
* * repeated int64 solution_lower_bounds = 18; * @param index The index to set the value at. * @param value The solutionLowerBounds to set. * @return This builder for chaining. */ public Builder setSolutionLowerBounds( int index, long value) { ensureSolutionLowerBoundsIsMutable(); solutionLowerBounds_.setLong(index, value); onChanged(); return this; } /** *
     * Advanced usage.
     * If the problem has some variables that are not fixed at the end of the
     * search (because of a particular search strategy in the CpModelProto) then
     * this will be used instead of filling the solution above. The two fields
     * will then contains the lower and upper bounds of each variable as they were
     * when the best "solution" was found.
     * 
* * repeated int64 solution_lower_bounds = 18; * @param value The solutionLowerBounds to add. * @return This builder for chaining. */ public Builder addSolutionLowerBounds(long value) { ensureSolutionLowerBoundsIsMutable(); solutionLowerBounds_.addLong(value); onChanged(); return this; } /** *
     * Advanced usage.
     * If the problem has some variables that are not fixed at the end of the
     * search (because of a particular search strategy in the CpModelProto) then
     * this will be used instead of filling the solution above. The two fields
     * will then contains the lower and upper bounds of each variable as they were
     * when the best "solution" was found.
     * 
* * repeated int64 solution_lower_bounds = 18; * @param values The solutionLowerBounds to add. * @return This builder for chaining. */ public Builder addAllSolutionLowerBounds( java.lang.Iterable values) { ensureSolutionLowerBoundsIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, solutionLowerBounds_); onChanged(); return this; } /** *
     * Advanced usage.
     * If the problem has some variables that are not fixed at the end of the
     * search (because of a particular search strategy in the CpModelProto) then
     * this will be used instead of filling the solution above. The two fields
     * will then contains the lower and upper bounds of each variable as they were
     * when the best "solution" was found.
     * 
* * repeated int64 solution_lower_bounds = 18; * @return This builder for chaining. */ public Builder clearSolutionLowerBounds() { solutionLowerBounds_ = emptyLongList(); bitField0_ = (bitField0_ & ~0x00000002); onChanged(); return this; } private com.google.protobuf.Internal.LongList solutionUpperBounds_ = emptyLongList(); private void ensureSolutionUpperBoundsIsMutable() { if (!((bitField0_ & 0x00000004) != 0)) { solutionUpperBounds_ = mutableCopy(solutionUpperBounds_); bitField0_ |= 0x00000004; } } /** * repeated int64 solution_upper_bounds = 19; * @return A list containing the solutionUpperBounds. */ public java.util.List getSolutionUpperBoundsList() { return ((bitField0_ & 0x00000004) != 0) ? java.util.Collections.unmodifiableList(solutionUpperBounds_) : solutionUpperBounds_; } /** * repeated int64 solution_upper_bounds = 19; * @return The count of solutionUpperBounds. */ public int getSolutionUpperBoundsCount() { return solutionUpperBounds_.size(); } /** * repeated int64 solution_upper_bounds = 19; * @param index The index of the element to return. * @return The solutionUpperBounds at the given index. */ public long getSolutionUpperBounds(int index) { return solutionUpperBounds_.getLong(index); } /** * repeated int64 solution_upper_bounds = 19; * @param index The index to set the value at. * @param value The solutionUpperBounds to set. * @return This builder for chaining. */ public Builder setSolutionUpperBounds( int index, long value) { ensureSolutionUpperBoundsIsMutable(); solutionUpperBounds_.setLong(index, value); onChanged(); return this; } /** * repeated int64 solution_upper_bounds = 19; * @param value The solutionUpperBounds to add. * @return This builder for chaining. */ public Builder addSolutionUpperBounds(long value) { ensureSolutionUpperBoundsIsMutable(); solutionUpperBounds_.addLong(value); onChanged(); return this; } /** * repeated int64 solution_upper_bounds = 19; * @param values The solutionUpperBounds to add. * @return This builder for chaining. */ public Builder addAllSolutionUpperBounds( java.lang.Iterable values) { ensureSolutionUpperBoundsIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, solutionUpperBounds_); onChanged(); return this; } /** * repeated int64 solution_upper_bounds = 19; * @return This builder for chaining. */ public Builder clearSolutionUpperBounds() { solutionUpperBounds_ = emptyLongList(); bitField0_ = (bitField0_ & ~0x00000004); onChanged(); return this; } private java.util.List tightenedVariables_ = java.util.Collections.emptyList(); private void ensureTightenedVariablesIsMutable() { if (!((bitField0_ & 0x00000008) != 0)) { tightenedVariables_ = new java.util.ArrayList(tightenedVariables_); bitField0_ |= 0x00000008; } } private com.google.protobuf.RepeatedFieldBuilderV3< com.google.ortools.sat.IntegerVariableProto, com.google.ortools.sat.IntegerVariableProto.Builder, com.google.ortools.sat.IntegerVariableProtoOrBuilder> tightenedVariablesBuilder_; /** *
     * Advanced usage.
     * If the option fill_tightened_domains_in_response is set, then this field
     * will be a copy of the CpModelProto.variables where each domain has been
     * reduced using the information the solver was able to derive. Note that this
     * is only filled with the info derived during a normal search and we do not
     * have any dedicated algorithm to improve it.
     * If the problem is a feasibility problem, then these bounds will be valid
     * for any feasible solution. If the problem is an optimization problem, then
     * these bounds will only be valid for any OPTIMAL solutions, it can exclude
     * sub-optimal feasible ones.
     * 
* * repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21; */ public java.util.List getTightenedVariablesList() { if (tightenedVariablesBuilder_ == null) { return java.util.Collections.unmodifiableList(tightenedVariables_); } else { return tightenedVariablesBuilder_.getMessageList(); } } /** *
     * Advanced usage.
     * If the option fill_tightened_domains_in_response is set, then this field
     * will be a copy of the CpModelProto.variables where each domain has been
     * reduced using the information the solver was able to derive. Note that this
     * is only filled with the info derived during a normal search and we do not
     * have any dedicated algorithm to improve it.
     * If the problem is a feasibility problem, then these bounds will be valid
     * for any feasible solution. If the problem is an optimization problem, then
     * these bounds will only be valid for any OPTIMAL solutions, it can exclude
     * sub-optimal feasible ones.
     * 
* * repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21; */ public int getTightenedVariablesCount() { if (tightenedVariablesBuilder_ == null) { return tightenedVariables_.size(); } else { return tightenedVariablesBuilder_.getCount(); } } /** *
     * Advanced usage.
     * If the option fill_tightened_domains_in_response is set, then this field
     * will be a copy of the CpModelProto.variables where each domain has been
     * reduced using the information the solver was able to derive. Note that this
     * is only filled with the info derived during a normal search and we do not
     * have any dedicated algorithm to improve it.
     * If the problem is a feasibility problem, then these bounds will be valid
     * for any feasible solution. If the problem is an optimization problem, then
     * these bounds will only be valid for any OPTIMAL solutions, it can exclude
     * sub-optimal feasible ones.
     * 
* * repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21; */ public com.google.ortools.sat.IntegerVariableProto getTightenedVariables(int index) { if (tightenedVariablesBuilder_ == null) { return tightenedVariables_.get(index); } else { return tightenedVariablesBuilder_.getMessage(index); } } /** *
     * Advanced usage.
     * If the option fill_tightened_domains_in_response is set, then this field
     * will be a copy of the CpModelProto.variables where each domain has been
     * reduced using the information the solver was able to derive. Note that this
     * is only filled with the info derived during a normal search and we do not
     * have any dedicated algorithm to improve it.
     * If the problem is a feasibility problem, then these bounds will be valid
     * for any feasible solution. If the problem is an optimization problem, then
     * these bounds will only be valid for any OPTIMAL solutions, it can exclude
     * sub-optimal feasible ones.
     * 
* * repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21; */ public Builder setTightenedVariables( int index, com.google.ortools.sat.IntegerVariableProto value) { if (tightenedVariablesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureTightenedVariablesIsMutable(); tightenedVariables_.set(index, value); onChanged(); } else { tightenedVariablesBuilder_.setMessage(index, value); } return this; } /** *
     * Advanced usage.
     * If the option fill_tightened_domains_in_response is set, then this field
     * will be a copy of the CpModelProto.variables where each domain has been
     * reduced using the information the solver was able to derive. Note that this
     * is only filled with the info derived during a normal search and we do not
     * have any dedicated algorithm to improve it.
     * If the problem is a feasibility problem, then these bounds will be valid
     * for any feasible solution. If the problem is an optimization problem, then
     * these bounds will only be valid for any OPTIMAL solutions, it can exclude
     * sub-optimal feasible ones.
     * 
* * repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21; */ public Builder setTightenedVariables( int index, com.google.ortools.sat.IntegerVariableProto.Builder builderForValue) { if (tightenedVariablesBuilder_ == null) { ensureTightenedVariablesIsMutable(); tightenedVariables_.set(index, builderForValue.build()); onChanged(); } else { tightenedVariablesBuilder_.setMessage(index, builderForValue.build()); } return this; } /** *
     * Advanced usage.
     * If the option fill_tightened_domains_in_response is set, then this field
     * will be a copy of the CpModelProto.variables where each domain has been
     * reduced using the information the solver was able to derive. Note that this
     * is only filled with the info derived during a normal search and we do not
     * have any dedicated algorithm to improve it.
     * If the problem is a feasibility problem, then these bounds will be valid
     * for any feasible solution. If the problem is an optimization problem, then
     * these bounds will only be valid for any OPTIMAL solutions, it can exclude
     * sub-optimal feasible ones.
     * 
* * repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21; */ public Builder addTightenedVariables(com.google.ortools.sat.IntegerVariableProto value) { if (tightenedVariablesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureTightenedVariablesIsMutable(); tightenedVariables_.add(value); onChanged(); } else { tightenedVariablesBuilder_.addMessage(value); } return this; } /** *
     * Advanced usage.
     * If the option fill_tightened_domains_in_response is set, then this field
     * will be a copy of the CpModelProto.variables where each domain has been
     * reduced using the information the solver was able to derive. Note that this
     * is only filled with the info derived during a normal search and we do not
     * have any dedicated algorithm to improve it.
     * If the problem is a feasibility problem, then these bounds will be valid
     * for any feasible solution. If the problem is an optimization problem, then
     * these bounds will only be valid for any OPTIMAL solutions, it can exclude
     * sub-optimal feasible ones.
     * 
* * repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21; */ public Builder addTightenedVariables( int index, com.google.ortools.sat.IntegerVariableProto value) { if (tightenedVariablesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureTightenedVariablesIsMutable(); tightenedVariables_.add(index, value); onChanged(); } else { tightenedVariablesBuilder_.addMessage(index, value); } return this; } /** *
     * Advanced usage.
     * If the option fill_tightened_domains_in_response is set, then this field
     * will be a copy of the CpModelProto.variables where each domain has been
     * reduced using the information the solver was able to derive. Note that this
     * is only filled with the info derived during a normal search and we do not
     * have any dedicated algorithm to improve it.
     * If the problem is a feasibility problem, then these bounds will be valid
     * for any feasible solution. If the problem is an optimization problem, then
     * these bounds will only be valid for any OPTIMAL solutions, it can exclude
     * sub-optimal feasible ones.
     * 
* * repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21; */ public Builder addTightenedVariables( com.google.ortools.sat.IntegerVariableProto.Builder builderForValue) { if (tightenedVariablesBuilder_ == null) { ensureTightenedVariablesIsMutable(); tightenedVariables_.add(builderForValue.build()); onChanged(); } else { tightenedVariablesBuilder_.addMessage(builderForValue.build()); } return this; } /** *
     * Advanced usage.
     * If the option fill_tightened_domains_in_response is set, then this field
     * will be a copy of the CpModelProto.variables where each domain has been
     * reduced using the information the solver was able to derive. Note that this
     * is only filled with the info derived during a normal search and we do not
     * have any dedicated algorithm to improve it.
     * If the problem is a feasibility problem, then these bounds will be valid
     * for any feasible solution. If the problem is an optimization problem, then
     * these bounds will only be valid for any OPTIMAL solutions, it can exclude
     * sub-optimal feasible ones.
     * 
* * repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21; */ public Builder addTightenedVariables( int index, com.google.ortools.sat.IntegerVariableProto.Builder builderForValue) { if (tightenedVariablesBuilder_ == null) { ensureTightenedVariablesIsMutable(); tightenedVariables_.add(index, builderForValue.build()); onChanged(); } else { tightenedVariablesBuilder_.addMessage(index, builderForValue.build()); } return this; } /** *
     * Advanced usage.
     * If the option fill_tightened_domains_in_response is set, then this field
     * will be a copy of the CpModelProto.variables where each domain has been
     * reduced using the information the solver was able to derive. Note that this
     * is only filled with the info derived during a normal search and we do not
     * have any dedicated algorithm to improve it.
     * If the problem is a feasibility problem, then these bounds will be valid
     * for any feasible solution. If the problem is an optimization problem, then
     * these bounds will only be valid for any OPTIMAL solutions, it can exclude
     * sub-optimal feasible ones.
     * 
* * repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21; */ public Builder addAllTightenedVariables( java.lang.Iterable values) { if (tightenedVariablesBuilder_ == null) { ensureTightenedVariablesIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, tightenedVariables_); onChanged(); } else { tightenedVariablesBuilder_.addAllMessages(values); } return this; } /** *
     * Advanced usage.
     * If the option fill_tightened_domains_in_response is set, then this field
     * will be a copy of the CpModelProto.variables where each domain has been
     * reduced using the information the solver was able to derive. Note that this
     * is only filled with the info derived during a normal search and we do not
     * have any dedicated algorithm to improve it.
     * If the problem is a feasibility problem, then these bounds will be valid
     * for any feasible solution. If the problem is an optimization problem, then
     * these bounds will only be valid for any OPTIMAL solutions, it can exclude
     * sub-optimal feasible ones.
     * 
* * repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21; */ public Builder clearTightenedVariables() { if (tightenedVariablesBuilder_ == null) { tightenedVariables_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000008); onChanged(); } else { tightenedVariablesBuilder_.clear(); } return this; } /** *
     * Advanced usage.
     * If the option fill_tightened_domains_in_response is set, then this field
     * will be a copy of the CpModelProto.variables where each domain has been
     * reduced using the information the solver was able to derive. Note that this
     * is only filled with the info derived during a normal search and we do not
     * have any dedicated algorithm to improve it.
     * If the problem is a feasibility problem, then these bounds will be valid
     * for any feasible solution. If the problem is an optimization problem, then
     * these bounds will only be valid for any OPTIMAL solutions, it can exclude
     * sub-optimal feasible ones.
     * 
* * repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21; */ public Builder removeTightenedVariables(int index) { if (tightenedVariablesBuilder_ == null) { ensureTightenedVariablesIsMutable(); tightenedVariables_.remove(index); onChanged(); } else { tightenedVariablesBuilder_.remove(index); } return this; } /** *
     * Advanced usage.
     * If the option fill_tightened_domains_in_response is set, then this field
     * will be a copy of the CpModelProto.variables where each domain has been
     * reduced using the information the solver was able to derive. Note that this
     * is only filled with the info derived during a normal search and we do not
     * have any dedicated algorithm to improve it.
     * If the problem is a feasibility problem, then these bounds will be valid
     * for any feasible solution. If the problem is an optimization problem, then
     * these bounds will only be valid for any OPTIMAL solutions, it can exclude
     * sub-optimal feasible ones.
     * 
* * repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21; */ public com.google.ortools.sat.IntegerVariableProto.Builder getTightenedVariablesBuilder( int index) { return getTightenedVariablesFieldBuilder().getBuilder(index); } /** *
     * Advanced usage.
     * If the option fill_tightened_domains_in_response is set, then this field
     * will be a copy of the CpModelProto.variables where each domain has been
     * reduced using the information the solver was able to derive. Note that this
     * is only filled with the info derived during a normal search and we do not
     * have any dedicated algorithm to improve it.
     * If the problem is a feasibility problem, then these bounds will be valid
     * for any feasible solution. If the problem is an optimization problem, then
     * these bounds will only be valid for any OPTIMAL solutions, it can exclude
     * sub-optimal feasible ones.
     * 
* * repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21; */ public com.google.ortools.sat.IntegerVariableProtoOrBuilder getTightenedVariablesOrBuilder( int index) { if (tightenedVariablesBuilder_ == null) { return tightenedVariables_.get(index); } else { return tightenedVariablesBuilder_.getMessageOrBuilder(index); } } /** *
     * Advanced usage.
     * If the option fill_tightened_domains_in_response is set, then this field
     * will be a copy of the CpModelProto.variables where each domain has been
     * reduced using the information the solver was able to derive. Note that this
     * is only filled with the info derived during a normal search and we do not
     * have any dedicated algorithm to improve it.
     * If the problem is a feasibility problem, then these bounds will be valid
     * for any feasible solution. If the problem is an optimization problem, then
     * these bounds will only be valid for any OPTIMAL solutions, it can exclude
     * sub-optimal feasible ones.
     * 
* * repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21; */ public java.util.List getTightenedVariablesOrBuilderList() { if (tightenedVariablesBuilder_ != null) { return tightenedVariablesBuilder_.getMessageOrBuilderList(); } else { return java.util.Collections.unmodifiableList(tightenedVariables_); } } /** *
     * Advanced usage.
     * If the option fill_tightened_domains_in_response is set, then this field
     * will be a copy of the CpModelProto.variables where each domain has been
     * reduced using the information the solver was able to derive. Note that this
     * is only filled with the info derived during a normal search and we do not
     * have any dedicated algorithm to improve it.
     * If the problem is a feasibility problem, then these bounds will be valid
     * for any feasible solution. If the problem is an optimization problem, then
     * these bounds will only be valid for any OPTIMAL solutions, it can exclude
     * sub-optimal feasible ones.
     * 
* * repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21; */ public com.google.ortools.sat.IntegerVariableProto.Builder addTightenedVariablesBuilder() { return getTightenedVariablesFieldBuilder().addBuilder( com.google.ortools.sat.IntegerVariableProto.getDefaultInstance()); } /** *
     * Advanced usage.
     * If the option fill_tightened_domains_in_response is set, then this field
     * will be a copy of the CpModelProto.variables where each domain has been
     * reduced using the information the solver was able to derive. Note that this
     * is only filled with the info derived during a normal search and we do not
     * have any dedicated algorithm to improve it.
     * If the problem is a feasibility problem, then these bounds will be valid
     * for any feasible solution. If the problem is an optimization problem, then
     * these bounds will only be valid for any OPTIMAL solutions, it can exclude
     * sub-optimal feasible ones.
     * 
* * repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21; */ public com.google.ortools.sat.IntegerVariableProto.Builder addTightenedVariablesBuilder( int index) { return getTightenedVariablesFieldBuilder().addBuilder( index, com.google.ortools.sat.IntegerVariableProto.getDefaultInstance()); } /** *
     * Advanced usage.
     * If the option fill_tightened_domains_in_response is set, then this field
     * will be a copy of the CpModelProto.variables where each domain has been
     * reduced using the information the solver was able to derive. Note that this
     * is only filled with the info derived during a normal search and we do not
     * have any dedicated algorithm to improve it.
     * If the problem is a feasibility problem, then these bounds will be valid
     * for any feasible solution. If the problem is an optimization problem, then
     * these bounds will only be valid for any OPTIMAL solutions, it can exclude
     * sub-optimal feasible ones.
     * 
* * repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21; */ public java.util.List getTightenedVariablesBuilderList() { return getTightenedVariablesFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< com.google.ortools.sat.IntegerVariableProto, com.google.ortools.sat.IntegerVariableProto.Builder, com.google.ortools.sat.IntegerVariableProtoOrBuilder> getTightenedVariablesFieldBuilder() { if (tightenedVariablesBuilder_ == null) { tightenedVariablesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< com.google.ortools.sat.IntegerVariableProto, com.google.ortools.sat.IntegerVariableProto.Builder, com.google.ortools.sat.IntegerVariableProtoOrBuilder>( tightenedVariables_, ((bitField0_ & 0x00000008) != 0), getParentForChildren(), isClean()); tightenedVariables_ = null; } return tightenedVariablesBuilder_; } private com.google.protobuf.Internal.IntList sufficientAssumptionsForInfeasibility_ = emptyIntList(); private void ensureSufficientAssumptionsForInfeasibilityIsMutable() { if (!((bitField0_ & 0x00000010) != 0)) { sufficientAssumptionsForInfeasibility_ = mutableCopy(sufficientAssumptionsForInfeasibility_); bitField0_ |= 0x00000010; } } /** *
     * A subset of the model "assumptions" field. This will only be filled if the
     * status is INFEASIBLE. This subset of assumption will be enough to still get
     * an infeasible problem.
     * This is related to what is called the irreducible inconsistent subsystem or
     * IIS. Except one is only concerned by the provided assumptions. There is
     * also no guarantee that we return an irreducible (aka minimal subset).
     * However, this is based on SAT explanation and there is a good chance it is
     * not too large.
     * If you really want a minimal subset, a possible way to get one is by
     * changing your model to minimize the number of assumptions at false, but
     * this is likely an harder problem to solve.
     * TODO(user): Allows for returning multiple core at once.
     * 
* * repeated int32 sufficient_assumptions_for_infeasibility = 23; * @return A list containing the sufficientAssumptionsForInfeasibility. */ public java.util.List getSufficientAssumptionsForInfeasibilityList() { return ((bitField0_ & 0x00000010) != 0) ? java.util.Collections.unmodifiableList(sufficientAssumptionsForInfeasibility_) : sufficientAssumptionsForInfeasibility_; } /** *
     * A subset of the model "assumptions" field. This will only be filled if the
     * status is INFEASIBLE. This subset of assumption will be enough to still get
     * an infeasible problem.
     * This is related to what is called the irreducible inconsistent subsystem or
     * IIS. Except one is only concerned by the provided assumptions. There is
     * also no guarantee that we return an irreducible (aka minimal subset).
     * However, this is based on SAT explanation and there is a good chance it is
     * not too large.
     * If you really want a minimal subset, a possible way to get one is by
     * changing your model to minimize the number of assumptions at false, but
     * this is likely an harder problem to solve.
     * TODO(user): Allows for returning multiple core at once.
     * 
* * repeated int32 sufficient_assumptions_for_infeasibility = 23; * @return The count of sufficientAssumptionsForInfeasibility. */ public int getSufficientAssumptionsForInfeasibilityCount() { return sufficientAssumptionsForInfeasibility_.size(); } /** *
     * A subset of the model "assumptions" field. This will only be filled if the
     * status is INFEASIBLE. This subset of assumption will be enough to still get
     * an infeasible problem.
     * This is related to what is called the irreducible inconsistent subsystem or
     * IIS. Except one is only concerned by the provided assumptions. There is
     * also no guarantee that we return an irreducible (aka minimal subset).
     * However, this is based on SAT explanation and there is a good chance it is
     * not too large.
     * If you really want a minimal subset, a possible way to get one is by
     * changing your model to minimize the number of assumptions at false, but
     * this is likely an harder problem to solve.
     * TODO(user): Allows for returning multiple core at once.
     * 
* * repeated int32 sufficient_assumptions_for_infeasibility = 23; * @param index The index of the element to return. * @return The sufficientAssumptionsForInfeasibility at the given index. */ public int getSufficientAssumptionsForInfeasibility(int index) { return sufficientAssumptionsForInfeasibility_.getInt(index); } /** *
     * A subset of the model "assumptions" field. This will only be filled if the
     * status is INFEASIBLE. This subset of assumption will be enough to still get
     * an infeasible problem.
     * This is related to what is called the irreducible inconsistent subsystem or
     * IIS. Except one is only concerned by the provided assumptions. There is
     * also no guarantee that we return an irreducible (aka minimal subset).
     * However, this is based on SAT explanation and there is a good chance it is
     * not too large.
     * If you really want a minimal subset, a possible way to get one is by
     * changing your model to minimize the number of assumptions at false, but
     * this is likely an harder problem to solve.
     * TODO(user): Allows for returning multiple core at once.
     * 
* * repeated int32 sufficient_assumptions_for_infeasibility = 23; * @param index The index to set the value at. * @param value The sufficientAssumptionsForInfeasibility to set. * @return This builder for chaining. */ public Builder setSufficientAssumptionsForInfeasibility( int index, int value) { ensureSufficientAssumptionsForInfeasibilityIsMutable(); sufficientAssumptionsForInfeasibility_.setInt(index, value); onChanged(); return this; } /** *
     * A subset of the model "assumptions" field. This will only be filled if the
     * status is INFEASIBLE. This subset of assumption will be enough to still get
     * an infeasible problem.
     * This is related to what is called the irreducible inconsistent subsystem or
     * IIS. Except one is only concerned by the provided assumptions. There is
     * also no guarantee that we return an irreducible (aka minimal subset).
     * However, this is based on SAT explanation and there is a good chance it is
     * not too large.
     * If you really want a minimal subset, a possible way to get one is by
     * changing your model to minimize the number of assumptions at false, but
     * this is likely an harder problem to solve.
     * TODO(user): Allows for returning multiple core at once.
     * 
* * repeated int32 sufficient_assumptions_for_infeasibility = 23; * @param value The sufficientAssumptionsForInfeasibility to add. * @return This builder for chaining. */ public Builder addSufficientAssumptionsForInfeasibility(int value) { ensureSufficientAssumptionsForInfeasibilityIsMutable(); sufficientAssumptionsForInfeasibility_.addInt(value); onChanged(); return this; } /** *
     * A subset of the model "assumptions" field. This will only be filled if the
     * status is INFEASIBLE. This subset of assumption will be enough to still get
     * an infeasible problem.
     * This is related to what is called the irreducible inconsistent subsystem or
     * IIS. Except one is only concerned by the provided assumptions. There is
     * also no guarantee that we return an irreducible (aka minimal subset).
     * However, this is based on SAT explanation and there is a good chance it is
     * not too large.
     * If you really want a minimal subset, a possible way to get one is by
     * changing your model to minimize the number of assumptions at false, but
     * this is likely an harder problem to solve.
     * TODO(user): Allows for returning multiple core at once.
     * 
* * repeated int32 sufficient_assumptions_for_infeasibility = 23; * @param values The sufficientAssumptionsForInfeasibility to add. * @return This builder for chaining. */ public Builder addAllSufficientAssumptionsForInfeasibility( java.lang.Iterable values) { ensureSufficientAssumptionsForInfeasibilityIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, sufficientAssumptionsForInfeasibility_); onChanged(); return this; } /** *
     * A subset of the model "assumptions" field. This will only be filled if the
     * status is INFEASIBLE. This subset of assumption will be enough to still get
     * an infeasible problem.
     * This is related to what is called the irreducible inconsistent subsystem or
     * IIS. Except one is only concerned by the provided assumptions. There is
     * also no guarantee that we return an irreducible (aka minimal subset).
     * However, this is based on SAT explanation and there is a good chance it is
     * not too large.
     * If you really want a minimal subset, a possible way to get one is by
     * changing your model to minimize the number of assumptions at false, but
     * this is likely an harder problem to solve.
     * TODO(user): Allows for returning multiple core at once.
     * 
* * repeated int32 sufficient_assumptions_for_infeasibility = 23; * @return This builder for chaining. */ public Builder clearSufficientAssumptionsForInfeasibility() { sufficientAssumptionsForInfeasibility_ = emptyIntList(); bitField0_ = (bitField0_ & ~0x00000010); onChanged(); return this; } private boolean allSolutionsWereFound_ ; /** *
     * This will be true iff the solver was asked to find all solutions to a
     * satisfiability problem (or all optimal solutions to an optimization
     * problem), and it was successful in doing so.
     * TODO(user): Remove as we also use the OPTIMAL vs FEASIBLE status for that.
     * 
* * bool all_solutions_were_found = 5; * @return The allSolutionsWereFound. */ @java.lang.Override public boolean getAllSolutionsWereFound() { return allSolutionsWereFound_; } /** *
     * This will be true iff the solver was asked to find all solutions to a
     * satisfiability problem (or all optimal solutions to an optimization
     * problem), and it was successful in doing so.
     * TODO(user): Remove as we also use the OPTIMAL vs FEASIBLE status for that.
     * 
* * bool all_solutions_were_found = 5; * @param value The allSolutionsWereFound to set. * @return This builder for chaining. */ public Builder setAllSolutionsWereFound(boolean value) { allSolutionsWereFound_ = value; onChanged(); return this; } /** *
     * This will be true iff the solver was asked to find all solutions to a
     * satisfiability problem (or all optimal solutions to an optimization
     * problem), and it was successful in doing so.
     * TODO(user): Remove as we also use the OPTIMAL vs FEASIBLE status for that.
     * 
* * bool all_solutions_were_found = 5; * @return This builder for chaining. */ public Builder clearAllSolutionsWereFound() { allSolutionsWereFound_ = false; onChanged(); return this; } private long numBooleans_ ; /** *
     * Some statistics about the solve.
     * 
* * int64 num_booleans = 10; * @return The numBooleans. */ @java.lang.Override public long getNumBooleans() { return numBooleans_; } /** *
     * Some statistics about the solve.
     * 
* * int64 num_booleans = 10; * @param value The numBooleans to set. * @return This builder for chaining. */ public Builder setNumBooleans(long value) { numBooleans_ = value; onChanged(); return this; } /** *
     * Some statistics about the solve.
     * 
* * int64 num_booleans = 10; * @return This builder for chaining. */ public Builder clearNumBooleans() { numBooleans_ = 0L; onChanged(); return this; } private long numConflicts_ ; /** * int64 num_conflicts = 11; * @return The numConflicts. */ @java.lang.Override public long getNumConflicts() { return numConflicts_; } /** * int64 num_conflicts = 11; * @param value The numConflicts to set. * @return This builder for chaining. */ public Builder setNumConflicts(long value) { numConflicts_ = value; onChanged(); return this; } /** * int64 num_conflicts = 11; * @return This builder for chaining. */ public Builder clearNumConflicts() { numConflicts_ = 0L; onChanged(); return this; } private long numBranches_ ; /** * int64 num_branches = 12; * @return The numBranches. */ @java.lang.Override public long getNumBranches() { return numBranches_; } /** * int64 num_branches = 12; * @param value The numBranches to set. * @return This builder for chaining. */ public Builder setNumBranches(long value) { numBranches_ = value; onChanged(); return this; } /** * int64 num_branches = 12; * @return This builder for chaining. */ public Builder clearNumBranches() { numBranches_ = 0L; onChanged(); return this; } private long numBinaryPropagations_ ; /** * int64 num_binary_propagations = 13; * @return The numBinaryPropagations. */ @java.lang.Override public long getNumBinaryPropagations() { return numBinaryPropagations_; } /** * int64 num_binary_propagations = 13; * @param value The numBinaryPropagations to set. * @return This builder for chaining. */ public Builder setNumBinaryPropagations(long value) { numBinaryPropagations_ = value; onChanged(); return this; } /** * int64 num_binary_propagations = 13; * @return This builder for chaining. */ public Builder clearNumBinaryPropagations() { numBinaryPropagations_ = 0L; onChanged(); return this; } private long numIntegerPropagations_ ; /** * int64 num_integer_propagations = 14; * @return The numIntegerPropagations. */ @java.lang.Override public long getNumIntegerPropagations() { return numIntegerPropagations_; } /** * int64 num_integer_propagations = 14; * @param value The numIntegerPropagations to set. * @return This builder for chaining. */ public Builder setNumIntegerPropagations(long value) { numIntegerPropagations_ = value; onChanged(); return this; } /** * int64 num_integer_propagations = 14; * @return This builder for chaining. */ public Builder clearNumIntegerPropagations() { numIntegerPropagations_ = 0L; onChanged(); return this; } private double wallTime_ ; /** * double wall_time = 15; * @return The wallTime. */ @java.lang.Override public double getWallTime() { return wallTime_; } /** * double wall_time = 15; * @param value The wallTime to set. * @return This builder for chaining. */ public Builder setWallTime(double value) { wallTime_ = value; onChanged(); return this; } /** * double wall_time = 15; * @return This builder for chaining. */ public Builder clearWallTime() { wallTime_ = 0D; onChanged(); return this; } private double userTime_ ; /** * double user_time = 16; * @return The userTime. */ @java.lang.Override public double getUserTime() { return userTime_; } /** * double user_time = 16; * @param value The userTime to set. * @return This builder for chaining. */ public Builder setUserTime(double value) { userTime_ = value; onChanged(); return this; } /** * double user_time = 16; * @return This builder for chaining. */ public Builder clearUserTime() { userTime_ = 0D; onChanged(); return this; } private double deterministicTime_ ; /** * double deterministic_time = 17; * @return The deterministicTime. */ @java.lang.Override public double getDeterministicTime() { return deterministicTime_; } /** * double deterministic_time = 17; * @param value The deterministicTime to set. * @return This builder for chaining. */ public Builder setDeterministicTime(double value) { deterministicTime_ = value; onChanged(); return this; } /** * double deterministic_time = 17; * @return This builder for chaining. */ public Builder clearDeterministicTime() { deterministicTime_ = 0D; onChanged(); return this; } private double primalIntegral_ ; /** * double primal_integral = 22; * @return The primalIntegral. */ @java.lang.Override public double getPrimalIntegral() { return primalIntegral_; } /** * double primal_integral = 22; * @param value The primalIntegral to set. * @return This builder for chaining. */ public Builder setPrimalIntegral(double value) { primalIntegral_ = value; onChanged(); return this; } /** * double primal_integral = 22; * @return This builder for chaining. */ public Builder clearPrimalIntegral() { primalIntegral_ = 0D; onChanged(); return this; } private java.lang.Object solutionInfo_ = ""; /** *
     * Additional information about how the solution was found.
     * 
* * string solution_info = 20; * @return The solutionInfo. */ public java.lang.String getSolutionInfo() { java.lang.Object ref = solutionInfo_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); solutionInfo_ = s; return s; } else { return (java.lang.String) ref; } } /** *
     * Additional information about how the solution was found.
     * 
* * string solution_info = 20; * @return The bytes for solutionInfo. */ public com.google.protobuf.ByteString getSolutionInfoBytes() { java.lang.Object ref = solutionInfo_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); solutionInfo_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** *
     * Additional information about how the solution was found.
     * 
* * string solution_info = 20; * @param value The solutionInfo to set. * @return This builder for chaining. */ public Builder setSolutionInfo( java.lang.String value) { if (value == null) { throw new NullPointerException(); } solutionInfo_ = value; onChanged(); return this; } /** *
     * Additional information about how the solution was found.
     * 
* * string solution_info = 20; * @return This builder for chaining. */ public Builder clearSolutionInfo() { solutionInfo_ = getDefaultInstance().getSolutionInfo(); onChanged(); return this; } /** *
     * Additional information about how the solution was found.
     * 
* * string solution_info = 20; * @param value The bytes for solutionInfo to set. * @return This builder for chaining. */ public Builder setSolutionInfoBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); solutionInfo_ = value; onChanged(); return this; } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); } @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } // @@protoc_insertion_point(builder_scope:operations_research.sat.CpSolverResponse) } // @@protoc_insertion_point(class_scope:operations_research.sat.CpSolverResponse) private static final com.google.ortools.sat.CpSolverResponse DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new com.google.ortools.sat.CpSolverResponse(); } public static com.google.ortools.sat.CpSolverResponse getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public CpSolverResponse parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return new CpSolverResponse(input, extensionRegistry); } }; public static com.google.protobuf.Parser parser() { return PARSER; } @java.lang.Override public com.google.protobuf.Parser getParserForType() { return PARSER; } @java.lang.Override public com.google.ortools.sat.CpSolverResponse getDefaultInstanceForType() { return DEFAULT_INSTANCE; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy