+++ /dev/null
-/*******************************************************************************
- * Copyright (c) 2010, 2012 Sonatype, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Sonatype, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.aether.version;
-
-/**
- * A range of versions.
- */
-public interface VersionRange
-{
-
- /**
- * Determines whether the specified version is contained within this range.
- *
- * @param version The version to test, must not be {@code null}.
- * @return {@code true} if this range contains the specified version, {@code false} otherwise.
- */
- boolean containsVersion( Version version );
-
- /**
- * Gets a lower bound (if any) for this range. If existent, this range does not contain any version smaller than its
- * lower bound. Note that complex version ranges might exclude some versions even within their bounds.
- *
- * @return A lower bound for this range or {@code null} is there is none.
- */
- Bound getLowerBound();
-
- /**
- * Gets an upper bound (if any) for this range. If existent, this range does not contain any version greater than
- * its upper bound. Note that complex version ranges might exclude some versions even within their bounds.
- *
- * @return An upper bound for this range or {@code null} is there is none.
- */
- Bound getUpperBound();
-
- /**
- * A bound of a version range.
- */
- static final class Bound
- {
-
- private final Version version;
-
- private final boolean inclusive;
-
- /**
- * Creates a new bound with the specified properties.
- *
- * @param version The bounding version, must not be {@code null}.
- * @param inclusive A flag whether the specified version is included in the range or not.
- */
- public Bound( Version version, boolean inclusive )
- {
- if ( version == null )
- {
- throw new IllegalArgumentException( "version missing" );
- }
- this.version = version;
- this.inclusive = inclusive;
- }
-
- /**
- * Gets the bounding version.
- *
- * @return The bounding version, never {@code null}.
- */
- public Version getVersion()
- {
- return version;
- }
-
- /**
- * Indicates whether the bounding version is included in the range or not.
- *
- * @return {@code true} if the bounding version is included in the range, {@code false} if not.
- */
- public boolean isInclusive()
- {
- return inclusive;
- }
-
- @Override
- public boolean equals( Object obj )
- {
- if ( obj == this )
- {
- return true;
- }
- else if ( obj == null || !getClass().equals( obj.getClass() ) )
- {
- return false;
- }
-
- Bound that = (Bound) obj;
- return inclusive == that.inclusive && version.equals( that.version );
- }
-
- @Override
- public int hashCode()
- {
- int hash = 17;
- hash = hash * 31 + version.hashCode();
- hash = hash * 31 + ( inclusive ? 1 : 0 );
- return hash;
- }
-
- @Override
- public String toString()
- {
- return String.valueOf( version );
- }
-
- }
-
-}