| /******************************************************************************* |
| * Copyright (c) 2009, 2010 Cloudsmith Inc. and others. |
| * |
| * This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License 2.0 |
| * which accompanies this distribution, and is available at |
| * https://www.eclipse.org/legal/epl-2.0/ |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| * |
| * Contributors: |
| * Cloudsmith Inc. - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.equinox.internal.p2.metadata; |
| |
| import org.eclipse.equinox.p2.metadata.Version; |
| |
| /** |
| * The abstract BasicVersion class adds the methods necessary to to compare and serialize |
| * versions in version ranges. The class is not intended as public API. |
| */ |
| public abstract class BasicVersion extends Version { |
| private static final long serialVersionUID = -2983093417537485027L; |
| |
| /** |
| * Returns the OSGi major component of this version identifier. |
| * |
| * @return The major component. |
| * @throws UnsupportedOperationException if the first element in the |
| * vector is not a number. |
| * @see #isOSGiCompatible() |
| */ |
| public abstract int getMajor(); |
| |
| /** |
| * Returns the OSGi micro component of this version identifier. |
| * |
| * @return The micro component. |
| * @throws UnsupportedOperationException if the third element in the |
| * vector is not a number. |
| * @see #isOSGiCompatible() |
| */ |
| public abstract int getMicro(); |
| |
| /** |
| * Returns the OSGi minor component of this version identifier. |
| * |
| * @return The minor component. |
| * @throws UnsupportedOperationException if the second element in the |
| * vector is not a number. |
| * @see #isOSGiCompatible() |
| */ |
| public abstract int getMinor(); |
| |
| /** |
| * Returns the OSGi qualifier component of this version identifier. |
| * |
| * @return The qualifier component or <code>null</code> if not set. |
| * @throws UnsupportedOperationException if the fourth element in the |
| * vector is set to something other then a string. |
| * @see #isOSGiCompatible() |
| */ |
| public abstract String getQualifier(); |
| |
| /** |
| * Appends the original for this version onto the <code>sb</code> StringBuffer |
| * if present. |
| * @param sb The buffer that will receive the raw string format |
| * @param rangeSafe Set to <code>true</code> if range delimiters should be escaped |
| */ |
| public abstract void originalToString(StringBuffer sb, boolean rangeSafe); |
| |
| /** |
| * Appends the raw format for this version onto the <code>sb</code> StringBuffer. |
| * @param sb The buffer that will receive the raw string format |
| * @param rangeSafe Set to <code>true</code> if range delimiters should be escaped |
| */ |
| public abstract void rawToString(StringBuffer sb, boolean rangeSafe); |
| |
| /** |
| * This method is package protected since it violates the immutable |
| * contract. |
| * @return The raw vector. Must be treated as read-only |
| */ |
| abstract Comparable<?>[] getVector(); |
| } |