| /******************************************************************************* |
| * Copyright (c) 2000, 2009 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.search; |
| |
| import java.net.*; |
| import java.util.Vector; |
| |
| import org.eclipse.update.internal.search.*; |
| |
| /** |
| * This class encapsulates update scope of the update search. |
| * Sites that need to be visited should be added to the scope. |
| * If some categories should be skipped, their names must be |
| * passed as array of strings to the method. |
| * |
| * <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 UpdateSearchRequest |
| * @since 3.0 |
| * @deprecated The org.eclipse.update component has been replaced by Equinox p2. This |
| * provisional API was never promoted to stable API, and may be removed from a future release of the platform. |
| */ |
| public class UpdateSearchScope { |
| private Vector sites; |
| private URL updateMapURL; |
| private boolean isFeatureProvidedSitesEnabled = true; |
| |
| private static class UpdateSearchSite |
| extends UpdateSiteAdapter |
| implements IUpdateSearchSite { |
| private String[] categoriesToSkip; |
| |
| public UpdateSearchSite( |
| String label, |
| URL siteURL, |
| String[] categoriesToSkip) { |
| super(label, siteURL); |
| this.categoriesToSkip = categoriesToSkip; |
| } |
| public String[] getCategoriesToSkip() { |
| return categoriesToSkip; |
| } |
| } |
| |
| /** |
| * The default constructor. |
| */ |
| public UpdateSearchScope() { |
| sites = new Vector(); |
| } |
| |
| /** |
| * Sets the optional URL of the update map file. This file |
| * is used to redirect search for new updates to other |
| * servers and is typically used when a local |
| * update site proxy (possibly behind the firewall) is |
| * set up. |
| * @param url the url of the Java properties file that |
| * contains the redirection information. |
| */ |
| |
| public void setUpdateMapURL(URL url) { |
| this.updateMapURL = url; |
| } |
| |
| /** |
| * Returns the optional URL of the update map file. By |
| * default, no map file is set. |
| * @return the URL of the map file or <samp>null</samp> |
| * if not set. |
| */ |
| |
| public URL getUpdateMapURL() { |
| return updateMapURL; |
| } |
| |
| /** |
| * Adds the site to scan to the search scope. |
| * @param label the presentation name of the site to visit. |
| * @param siteURL the URL of the site to visit. |
| * @param categoriesToSkip an array of category names that should be skipped or <samp>null</samp> if all features should be considered. |
| */ |
| public void addSearchSite( |
| String label, |
| URL siteURL, |
| String[] categoriesToSkip) { |
| sites.add(new UpdateSearchSite(label, siteURL, categoriesToSkip)); |
| } |
| |
| /** |
| * Returns the sites that should be visited during the search. |
| * @return an array of site adapters |
| */ |
| public IUpdateSearchSite[] getSearchSites() { |
| return (UpdateSearchSite[]) sites.toArray( |
| new UpdateSearchSite[sites.size()]); |
| } |
| |
| /** |
| * In addition to the sites added by addSearchSite(), features contribute their own update url's. |
| * This method returns true if those sites are also searched. |
| * @return true if update site provided by features are also searched. Default is true. |
| */ |
| public boolean isFeatureProvidedSitesEnabled(){ |
| return isFeatureProvidedSitesEnabled; |
| } |
| |
| /** |
| * Enable or disable searching of feature provided update sites. |
| * If disabled, only sites added by addSearchSite() are searched. |
| * @param enable false to disable searching of feature provided sites. By default, these sites are searched. |
| */ |
| public void setFeatureProvidedSitesEnabled(boolean enable){ |
| this.isFeatureProvidedSitesEnabled = enable; |
| } |
| } |