blob: 847c8210d08f8e4dfeaf8febc9ab0a66e6e8f69c [file] [log] [blame]
package com.intellij.util;
import com.intellij.openapi.util.Key;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import java.util.HashMap;
import java.util.Map;
/**
* @author peter
*/
public class ProcessingContext {
private Map<Object, Object> myMap;
private SharedProcessingContext mySharedContext;
public ProcessingContext() {
}
public ProcessingContext(final SharedProcessingContext sharedContext) {
mySharedContext = sharedContext;
}
@NotNull
public SharedProcessingContext getSharedContext() {
if (mySharedContext == null) {
return mySharedContext = new SharedProcessingContext();
}
return mySharedContext;
}
@SuppressWarnings({"ConstantConditions"})
public Object get(@NotNull @NonNls final Object key) {
return myMap == null? null : myMap.get(key);
}
public void put(@NotNull @NonNls final Object key, @NotNull final Object value) {
checkMapInitialized();
myMap.put(key, value);
}
public <T> void put(Key<T> key, T value) {
checkMapInitialized();
myMap.put(key, value);
}
@SuppressWarnings({"ConstantConditions"})
public <T> T get(Key<T> key) {
return myMap == null ? null : (T)myMap.get(key);
}
private void checkMapInitialized() {
if (myMap == null) myMap = new HashMap<Object, Object>(1);
}
}