blob: 72ebd43518fde36cabb0a9c4206a62c05a25bad8 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2003 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Common Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-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>
* @see org.eclipse.update.core.model.PluginEntryModel
* @see org.eclipse.update.core.model.NonPluginEntryModel
* @since 2.0
*/
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.
*
* @see org.eclipse.core.boot.BootLoader
* @return the operating system specification or <code>null</code>.
* @since 2.0
*/
public String getOS() {
return os;
}
/**
* Returns optional windowing system specification.
*
* @see org.eclipse.core.boot.BootLoader
* @return the windowing system specification or <code>null</code>.
* @since 2.0
*/
public String getWS() {
return ws;
}
/**
* Returns optional system architecture specification.
*
* @see org.eclipse.core.boot.BootLoader
* @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.
*
* @see org.eclipse.core.boot.BootLoader
* @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.
*
* @see org.eclipse.core.boot.BootLoader
* @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.
*
* @see org.eclipse.core.boot.BootLoader
* @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;
}
}