/******************************************************************************* * Copyright 2012 Google Inc. All Rights Reserved. * * 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 * * 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.google.gdt.eclipse.suite.update; import com.google.gdt.eclipse.core.update.internal.core.FeatureUpdateChecker; import com.google.gdt.eclipse.suite.update.FeatureUpdateCheckersMap.UpdateSiteToken; import java.util.EnumMap; import java.util.Map; /** * A map from {@link UpdateSiteToken} to {@link FeatureUpdateChecker}. This is * used to determine which FeatureUpdateChecker is to be used if the update site * URL has the token given by UpdateSiteToken. FeatureUpdateChecker is used to * scan the downloaded contents from the update site to determine if an update * is available. The class is created so that we don't have to write * EnumMap<UpdateSiteToken, FeatureUpdateChecker> again and again. */ public class FeatureUpdateCheckersMap extends EnumMap<UpdateSiteToken, FeatureUpdateChecker> { /** * The token is a unique substring in the update site URL which will decide if * the update site is for the GWT SDK. */ public enum UpdateSiteToken { // TODO(deepanshu): Add a build time flag that will choose tokens based on the build being from // trunk or release branch. GWT_SDK("gwt"); private final String token; private UpdateSiteToken(String token) { this.token = token; } public String getToken() { return token; } } public FeatureUpdateCheckersMap(Class<UpdateSiteToken> keyType) { super(keyType); } public FeatureUpdateCheckersMap(EnumMap<UpdateSiteToken, ? extends FeatureUpdateChecker> m) { super(m); } public FeatureUpdateCheckersMap(Map<UpdateSiteToken, ? extends FeatureUpdateChecker> m) { super(m); } }