blob: b010baba60ae3109513b696bbb5ecf42a8717102 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006, 2007 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 - Initial API and implementation
*******************************************************************************/
package org.eclipse.update.internal.core;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.update.core.IURLEntry;
import org.eclipse.update.core.VersionedIdentifier;
import org.eclipse.update.internal.model.SiteWithTimestamp;
public class ExtendedSite extends SiteWithTimestamp /*Site*/ {
private boolean digestExist;
private String[] availableLocals;
private String digestURL;
private LiteFeature[] liteFeatures;
private LiteFeature[] allLiteFeatures;
private IURLEntry[] associateSites;
private boolean pack200 = false;
private IURLEntry selectedMirror;
public String getDigestURL() {
return digestURL;
}
public void setDigestURL(String digestURL) {
this.digestURL = digestURL;
}
public String[] getAvailableLocals() {
return availableLocals;
}
public void setAvailableLocals(String[] availableLocals) {
this.availableLocals = availableLocals;
}
public boolean isDigestExist() {
return digestExist;
}
public void setDigestExist(boolean digestExist) {
this.digestExist = digestExist;
}
public LiteFeature[] getLiteFeatures() {
if (getCurrentConfiguredSite()!=null)
return filterFeatures(getNonFilteredLiteFeatures());
else
return getNonFilteredLiteFeatures();
}
public void setLiteFeatures(LiteFeature[] liteFeatures) {
if ((liteFeatures == null) || (liteFeatures.length == 0))
return;
this.allLiteFeatures = liteFeatures;
List temp = new ArrayList();
for(int i = 0; i < allLiteFeatures.length ; i++) {
if (getFeatureReference(allLiteFeatures[i]) != null) {
temp.add(allLiteFeatures[i]);
}
}
if (!temp.isEmpty()) {
this.liteFeatures = (LiteFeature[])temp.toArray( new LiteFeature[temp.size()]);
}
}
public LiteFeature getLiteFeature(VersionedIdentifier vid) {
if (allLiteFeatures == null)
return null;
for(int i = 0; i < allLiteFeatures.length ; i++) {
if (vid.equals(allLiteFeatures[i].getVersionedIdentifier())) {
return allLiteFeatures[i];
}
}
return null;
}
public LiteFeature[] getNonFilteredLiteFeatures() {
return liteFeatures;
}
public void setNonFilteredLiteFeatures(LiteFeature[] liteFeatures) {
this.liteFeatures = liteFeatures;
}
/**
* Get whether or not this site may contain jars packed with pack200.
* The packed version of foo.jar, is expected to be foo.jar.pack.gz
* @return
*/
public boolean supportsPack200() {
return pack200;
}
/**
* Set whether or not this site may contain jars packed with pack200
* The packed version of foo.jar is expected to be foo.jar.pack.gz
* @param pack
*/
public void setSupportsPack200(boolean pack){
pack200 = pack;
}
/*
* Method filterFeatures.
* Also implemented in Feature
*
* @param list
* @return List
*/
private LiteFeature[] filterFeatures(LiteFeature[] allIncluded) {
List list = new ArrayList();
if (allIncluded!=null){
for (int i = 0; i < allIncluded.length; i++) {
LiteFeature included = allIncluded[i];
if (UpdateManagerUtils.isValidEnvironment(included))
list.add(included);
else{
if (UpdateCore.DEBUG && UpdateCore.DEBUG_SHOW_WARNINGS){
UpdateCore.warn("Filtered out feature reference:"+included); //$NON-NLS-1$
}
}
}
}
LiteFeature[] result = new LiteFeature[list.size()];
if (!list.isEmpty()){
list.toArray(result);
}
return result;
}
public IURLEntry[] getAssociateSites() {
return associateSites;
}
public void setAssociateSites(IURLEntry[] associateSites) {
this.associateSites = associateSites;
}
public IURLEntry getSelectedMirror() {
return selectedMirror;
}
public void setSelectedMirror(IURLEntry selectedMirror) {
this.selectedMirror = selectedMirror;
}
}