
org.jboss.logmanager.ThreadLocalMDC Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jboss-logmanager Show documentation
Show all versions of jboss-logmanager Show documentation
An implementation of java.util.logging.LogManager
The newest version!
package org.jboss.logmanager;
import java.util.Map;
final class ThreadLocalMDC implements MDCProvider {
private static final Holder mdc = new Holder();
@Override
public String get(String key) {
final Object value = getObject(key);
return value == null ? null : value.toString();
}
@Override
public Object getObject(String key) {
return mdc.get().get(key);
}
@Override
public String put(String key, String value) {
final Object oldValue = putObject(key, value);
return oldValue == null ? null : oldValue.toString();
}
@Override
public Object putObject(String key, Object value) {
if (key == null) {
throw new NullPointerException("key is null");
}
if (value == null) {
throw new NullPointerException("value is null");
}
return mdc.get().put(key, value);
}
@Override
public String remove(String key) {
final Object oldValue = removeObject(key);
return oldValue == null ? null : oldValue.toString();
}
@Override
public Object removeObject(String key) {
return mdc.get().remove(key);
}
@Override
public Map copy() {
final FastCopyHashMap result = new FastCopyHashMap<>();
for (Map.Entry entry : mdc.get().entrySet()) {
result.put(entry.getKey(), entry.getValue().toString());
}
return result;
}
@Override
public Map copyObject() {
return mdc.get().clone();
}
@Override
public boolean isEmpty() {
return mdc.get().isEmpty();
}
@Override
public void clear() {
mdc.get().clear();
}
private static final class Holder extends InheritableThreadLocal> {
@Override
protected FastCopyHashMap childValue(final FastCopyHashMap parentValue) {
return new FastCopyHashMap<>(parentValue);
}
@Override
protected FastCopyHashMap initialValue() {
return new FastCopyHashMap<>();
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy