// Copyright (c) 2009-2010 by the projectusus.org contributors
// This software is released under the terms and conditions
// of the Eclipse Public License (EPL) 1.0.
// See http://www.eclipse.org/legal/epl-v10.html for details.
package org.projectusus.core.internal.proportions.rawdata;
import java.util.Collection;
import java.util.Hashtable;
import java.util.Map;
import java.util.Set;
import org.projectusus.core.basis.IRawData;
class RawData<S, T extends IRawData> implements IRawData {
private Map<S, T> rawDataMap;
RawData() {
rawDataMap = new Hashtable<S, T>();
}
synchronized T getRawData( S key ) {
return rawDataMap.get( key );
}
synchronized void addRawData( S key, T newObject ) {
rawDataMap.put( key, newObject );
}
synchronized int getRawDataElementCount() {
return rawDataMap.size();
}
synchronized void remove( S key ) {
rawDataMap.remove( key );
}
synchronized void removeAll() {
rawDataMap.clear();
}
synchronized Set<S> getAllKeys() {
return rawDataMap.keySet();
}
synchronized Collection<T> getAllRawDataElements() {
return rawDataMap.values();
}
}