| /******************************************************************************* |
| * Copyright (c) 2000, 2010 IBM Corporation and others. |
| * 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: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.update.core.model; |
| |
| |
| /** |
| * Content entry model object. |
| * This is the base class for plug-in and non-plug-in entry models. |
| * <p> |
| * This class must be subclassed by clients. |
| * </p> |
| * <p> |
| * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to |
| * change significantly before reaching stability. It is being made available at this early stage to solicit feedback |
| * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken |
| * (repeatedly) as the API evolves. |
| * </p> |
| * @see org.eclipse.update.core.model.PluginEntryModel |
| * @see org.eclipse.update.core.model.NonPluginEntryModel |
| * @since 2.0 |
| * @deprecated The org.eclipse.update component has been replaced by Equinox p2. |
| * This API will be deleted in a future release. See bug 311590 for details. |
| */ |
| public abstract class ContentEntryModel extends ModelObject { |
| |
| /** |
| * An indication the size could not be determined |
| * |
| * @since 2.0 |
| */ |
| public static final long UNKNOWN_SIZE = -1; |
| |
| private long downloadSize = UNKNOWN_SIZE; |
| private long installSize = UNKNOWN_SIZE; |
| private String os; |
| private String ws; |
| private String nl; |
| private String arch; |
| |
| /** |
| * Creates a uninitialized content entry model object. |
| * |
| * @since 2.0 |
| */ |
| protected ContentEntryModel() { |
| super(); |
| } |
| |
| /** |
| * Returns the download size of the entry, if it can be determined. |
| * |
| * @return download size of the entry in KiloBytes, or an indication |
| * the size could not be determined |
| * @since 2.0 |
| */ |
| |
| public long getDownloadSize() { |
| return downloadSize; |
| } |
| |
| /** |
| * Returns the install size of the entry, if it can be determined. |
| * |
| * @return install size of the entry in KiloBytes, or an indication |
| * the size could not be determined |
| * @since 2.0 |
| */ |
| public long getInstallSize() { |
| return installSize; |
| } |
| |
| /** |
| * Returns optional operating system specification. |
| * |
| * @return the operating system specification or <code>null</code>. |
| * @since 2.0 |
| */ |
| public String getOS() { |
| return os; |
| } |
| |
| /** |
| * Returns optional windowing system specification. |
| * |
| * @return the windowing system specification or <code>null</code>. |
| * @since 2.0 |
| */ |
| |
| public String getWS() { |
| return ws; |
| } |
| |
| /** |
| * Returns optional system architecture specification. |
| * |
| * @return the system architecture specification or <code>null</code>. |
| * @since 2.0 |
| */ |
| public String getOSArch() { |
| return arch; |
| } |
| |
| /** |
| * Returns optional locale specification. |
| * |
| * @return the locale specification, or <code>null</code>. |
| * @since 2.0 |
| */ |
| public String getNL() { |
| return nl; |
| } |
| |
| /** |
| * Sets the download size of the entry. |
| * Throws a runtime exception if this object is marked read-only. |
| * |
| * @param downloadSize download size of the entry in KiloBytes |
| * @since 2.0 |
| */ |
| public void setDownloadSize(long downloadSize) { |
| assertIsWriteable(); |
| if (downloadSize < 0) |
| this.downloadSize = UNKNOWN_SIZE; |
| else |
| this.downloadSize = downloadSize; |
| } |
| |
| /** |
| * Sets the install size of the entry. |
| * Throws a runtime exception if this object is marked read-only. |
| * |
| * @param installSize install size of the entry in KiloBytes |
| * @since 2.0 |
| */ |
| public void setInstallSize(long installSize) { |
| assertIsWriteable(); |
| if (installSize < 0) |
| this.installSize = UNKNOWN_SIZE; |
| else |
| this.installSize = installSize; |
| } |
| |
| /** |
| * Sets the operating system specification. |
| * Throws a runtime exception if this object is marked read-only. |
| * |
| * @param os comma-separated list of OS identifiers as defined by Eclipse. |
| * @since 2.0 |
| */ |
| public void setOS(String os) { |
| assertIsWriteable(); |
| this.os = os; |
| } |
| |
| /** |
| * Sets the windowing system specification. |
| * Throws a runtime exception if this object is marked read-only. |
| * |
| * @param ws comma-separated list of WS identifiers as defined by Eclipse. |
| * @since 2.0 |
| */ |
| public void setWS(String ws) { |
| assertIsWriteable(); |
| this.ws = ws; |
| } |
| |
| /** |
| * Sets the system architecture specification. |
| * Throws a runtime exception if this object is marked read-only. |
| * |
| * @param arch comma-separated list of arch identifiers as defined by Eclipse. |
| * @since 2.0 |
| */ |
| public void setArch(String arch) { |
| assertIsWriteable(); |
| this.arch = arch; |
| } |
| |
| /** |
| * Sets the locale specification. |
| * Throws a runtime exception if this object is marked read-only. |
| * |
| * @param nl comma-separated list of locale identifiers. |
| * @since 2.0 |
| */ |
| public void setNL(String nl) { |
| assertIsWriteable(); |
| this.nl = nl; |
| } |
| } |