blob: 8a82c22b23bb22023ece0c79636e5f068cc6cd3a [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011 itemis AG (http://www.itemis.eu) and others.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
*******************************************************************************/
package org.eclipse.xtext.xbase.lib;
import com.google.common.annotations.GwtCompatible;
/**
* This is an extension library for {@link Comparable comparables}.
*
* @author Sven Efftinge - Initial contribution and API
*/
@GwtCompatible public class ComparableExtensions {
/**
* The comparison operator <code>less than</code>.
*
* @param left
* a comparable
* @param right
* the value to compare with
* @return <code>left.compareTo(right) &lt; 0</code>
*/
@Pure /* not guaranteed, since compareTo() is invoked */
@Inline("($1.compareTo($2) < 0)")
public static <C> boolean operator_lessThan(Comparable<? super C> left, C right) {
return left.compareTo(right) < 0;
}
/**
* The comparison operator <code>greater than</code>.
*
* @param left
* a comparable
* @param right
* the value to compare with
* @return <code>left.compareTo(right) &gt; 0</code>
*/
@Pure /* not guaranteed, since compareTo() is invoked */
@Inline("($1.compareTo($2) > 0)")
public static <C> boolean operator_greaterThan(Comparable<? super C> left, C right) {
return left.compareTo(right) > 0;
}
/**
* The comparison operator <code>less than or equals</code>.
*
* @param left
* a comparable
* @param right
* the value to compare with
* @return <code>left.compareTo(right) &lt;= 0</code>
*/
@Pure /* not guaranteed, since compareTo() is invoked */
@Inline("($1.compareTo($2) <= 0)")
public static <C> boolean operator_lessEqualsThan(Comparable<? super C> left, C right) {
return left.compareTo(right) <= 0;
}
/**
* The comparison operator <code>greater than or equals</code>.
*
* @param left
* a comparable
* @param right
* the value to compare with
* @return <code>left.compareTo(right) &gt;= 0</code>
*/
@Pure /* not guaranteed, since compareTo() is invoked */
@Inline("($1.compareTo($2) >= 0)")
public static <C> boolean operator_greaterEqualsThan(Comparable<? super C> left, C right) {
return left.compareTo(right) >= 0;
}
/**
* The spaceship operator <code>&lt;=&gt;</code>.
*
* @param left
* a comparable
* @param right
* the value to compare with
* @return <code>left.compareTo(right)</code>
* @since 2.4
*/
@Pure /* not guaranteed, since compareTo() is invoked */
@Inline("($1.compareTo($2))")
public static <C> int operator_spaceship(Comparable<? super C> left, C right) {
return left.compareTo(right);
}
}