blob: 468dbc7d57485ed58424e37c4ae2f0439cab1e1e [file] [log] [blame]
/*
* Copyright (C) 2012 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.motorola.studio.android.installer.utilities;
import java.util.List;
public abstract class InstallableItem
{
/**
* Example: IInstallableUnit iu
*/
private Object data;
/**
* (will be the bundle_id in case of Eclipse installable components)
*/
private String bundleID;
private Integer version;
private boolean isInstalled;
private String license;
private String displayName;
private String description;
private List<String> requirementsIds;
private int sizeInBytes;
private String provider;
private boolean canBeInstalled = true;
private String reasonNotToInstall = "";
public Object getData()
{
return data;
}
public void setData(Object data)
{
this.data = data;
}
public String getBundleID()
{
return bundleID;
}
public void setBundleID(String bundleID)
{
this.bundleID = bundleID;
}
public boolean isInstalled()
{
return isInstalled;
}
public void setInstalled(boolean isInstalled)
{
this.isInstalled = isInstalled;
}
public String getLicense()
{
return license;
}
public void setLicense(String license)
{
this.license = license;
}
public String getDisplayName()
{
return displayName;
}
public void setDisplayName(String displayName)
{
this.displayName = displayName;
}
public String getDescription()
{
return description;
}
public void setDescription(String description)
{
this.description = description;
}
public List<String> getRequirementsIds()
{
return requirementsIds;
}
public void setRequirementsIds(List<String> requirementsIds)
{
this.requirementsIds = requirementsIds;
}
public int getSizeInBytes()
{
return sizeInBytes;
}
public void setSizeInBytes(int sizeInBytes)
{
this.sizeInBytes = sizeInBytes;
}
public String getProvider()
{
return provider;
}
public void setProvider(String provider)
{
this.provider = provider;
}
public Integer getVersion()
{
return version;
}
public void setVersion(Integer version)
{
this.version = version;
}
/**
* @return true if any of the licenses are NOT accepted, false otherwise
*/
public abstract boolean hasLicenseNotAccepted();
/**
* Do any action required after license is accepted
*/
public abstract void acceptLicenses();
/**
* Gets the maximum buffer size for a reading using streams.
*
* @return Returns the maximum buffer size.
*/
public abstract int getMaxBufferSize();
/**
* @param canBeInstalled the canBeInstalled to set
*/
public void setCanBeInstalled(boolean canBeInstalled)
{
this.canBeInstalled = canBeInstalled;
}
/**
* @return the canBeInstalled
*/
public boolean canBeInstalled()
{
return canBeInstalled;
}
/**
* @param reasonNotToInstall the reasonNotToInstall to set
*/
public void setReasonNotToInstall(String reasonNotToInstall)
{
this.reasonNotToInstall = reasonNotToInstall;
}
/**
* @return the reasonNotToInstall
*/
public String getReasonNotToInstall()
{
return reasonNotToInstall;
}
/**
* This method analyzes whether all pre-requirements have been
* fulfilled for this {@link InstallableItem}. In case it does,
* <code>true</code> is returned, otherwise <code>false</code>
* is given back.
*
* @return Returns <code>true</code> in case all pre-requirements
* have been fulfilled, <code>false</code> otherwise.
*/
public abstract boolean hasPrerequirementsFulfilled();
/* (non-Javadoc)
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(Object obj)
{
return (obj != null) && (obj instanceof InstallableItem) && (this.bundleID != null)
&& (((InstallableItem) obj).bundleID != null)
&& this.bundleID.equals(((InstallableItem) obj).bundleID);
}
/* (non-Javadoc)
* @see java.lang.Object#hashCode()
*/
@Override
public int hashCode()
{
return bundleID != null ? bundleID.hashCode() : 3;
}
}