/*
* Copyright 2010-2014 Amazon Technologies, Inc.
*
* 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://aws.amazon.com/apache2.0
*
* This file 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.amazonaws.eclipse.core.accounts.preferences;
import java.util.HashSet;
import java.util.Set;
import com.amazonaws.eclipse.core.preferences.AbstractPreferencePropertyMonitor;
import com.amazonaws.eclipse.core.preferences.PreferenceConstants;
/**
* Responsible for monitoring for account info (access/secret keys, etc) changes
* and notifying listeners.
*/
@SuppressWarnings("deprecation")
public final class PluginPreferenceStoreAccountInfoMonitor extends AbstractPreferencePropertyMonitor {
private static final long NOTIFICATION_DELAY = 1000L;
private static final Set<String> watchedProperties = new HashSet<String>();
static {
watchedProperties.add(PreferenceConstants.P_ACCESS_KEY);
watchedProperties.add(PreferenceConstants.P_ACCOUNT_IDS);
watchedProperties.add(PreferenceConstants.P_CERTIFICATE_FILE);
watchedProperties.add(PreferenceConstants.P_CURRENT_ACCOUNT);
watchedProperties.add(PreferenceConstants.P_PRIVATE_KEY_FILE);
watchedProperties.add(PreferenceConstants.P_SECRET_KEY);
watchedProperties.add(PreferenceConstants.P_USER_ID);
}
public PluginPreferenceStoreAccountInfoMonitor() {
super(NOTIFICATION_DELAY);
}
@Override
protected boolean watchPreferenceProperty(String preferenceKey) {
String bareProperty = preferenceKey.substring(preferenceKey.indexOf(":") + 1);
return watchedProperties.contains(bareProperty);
}
}