View Javadoc
1   /*******************************************************************************
2    * Copyright (c) 2010, 2014 Sonatype, Inc.
3    * All rights reserved. This program and the accompanying materials
4    * are made available under the terms of the Eclipse Public License v1.0
5    * which accompanies this distribution, and is available at
6    * http://www.eclipse.org/legal/epl-v10.html
7    *
8    * Contributors:
9    *    Sonatype, Inc. - initial API and implementation
10   *******************************************************************************/
11  package org.eclipse.aether.version;
12  
13  /**
14   * A constraint on versions for a dependency. A constraint can either consist of a version range (e.g. "[1, ]") or a
15   * single version (e.g. "1.1"). In the first case, the constraint expresses a hard requirement on a version matching the
16   * range. In the second case, the constraint expresses a soft requirement on a specific version (i.e. a recommendation).
17   */
18  public interface VersionConstraint
19  {
20  
21      /**
22       * Gets the version range of this constraint.
23       * 
24       * @return The version range or {@code null} if none.
25       */
26      VersionRange getRange();
27  
28      /**
29       * Gets the version recommended by this constraint.
30       * 
31       * @return The recommended version or {@code null} if none.
32       */
33      Version getVersion();
34  
35      /**
36       * Determines whether the specified version satisfies this constraint. In more detail, a version satisfies this
37       * constraint if it matches its version range or if this constraint has no version range and the specified version
38       * equals the version recommended by the constraint.
39       * 
40       * @param version The version to test, must not be {@code null}.
41       * @return {@code true} if the specified version satisfies this constraint, {@code false} otherwise.
42       */
43      boolean containsVersion( Version version );
44  
45  }