// Copyright (c) 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. part of cassowary; enum Relation { equalTo, lessThanOrEqualTo, greaterThanOrEqualTo, } class Constraint { final Relation relation; final Expression expression; double priority = Priority.required; Constraint(this.expression, this.relation); Constraint operator |(double p) => this..priority = p; String toString() { StringBuffer buffer = new StringBuffer(); buffer.write(expression.toString()); switch (relation) { case Relation.equalTo: buffer.write(" == 0 "); break; case Relation.greaterThanOrEqualTo: buffer.write(" >= 0 "); break; case Relation.lessThanOrEqualTo: buffer.write(" <= 0 "); break; } buffer.write(" | priority = ${priority}"); if (priority == Priority.required) { buffer.write(" (required)"); } return buffer.toString(); } }