import java.util.Map;
import java.util.HashMap;
class LockPlain {
private final java.util.concurrent.locks.ReadWriteLock dictionaryLock = new java.util.concurrent.locks.ReentrantReadWriteLock();
private Map<String, String> dictionary = new HashMap<String, String>();
LockPlain() {
super();
}
public @lombok.WriteLock("dictionaryLock") @java.lang.SuppressWarnings("all") void put(final @lombok.Validate.NotEmpty @lombok.Sanitize.With("checkKey") String key, final String value) {
if ((key == null))
{
throw new java.lang.NullPointerException(java.lang.String.format("The validated object \'%s\' (argument #%s) is null", "key", 1));
}
if (key.isEmpty())
{
throw new java.lang.IllegalArgumentException(java.lang.String.format("The validated object \'%s\' (argument #%s) is empty", "key", 1));
}
final String sanitizedKey = checkKey(key);
this.dictionaryLock.writeLock().lock();
try
{
dictionary.put(sanitizedKey, value);
}
finally
{
this.dictionaryLock.writeLock().unlock();
}
}
public @lombok.ReadLock("dictionaryLock") @java.lang.SuppressWarnings("all") String get(final @lombok.Validate.NotEmpty @lombok.Sanitize.With("checkKey") String key) {
if ((key == null))
{
throw new java.lang.NullPointerException(java.lang.String.format("The validated object \'%s\' (argument #%s) is null", "key", 1));
}
if (key.isEmpty())
{
throw new java.lang.IllegalArgumentException(java.lang.String.format("The validated object \'%s\' (argument #%s) is empty", "key", 1));
}
final String sanitizedKey = checkKey(key);
this.dictionaryLock.readLock().lock();
try
{
return dictionary.get(sanitizedKey);
}
finally
{
this.dictionaryLock.readLock().unlock();
}
}
private String checkKey(final String key) {
return key;
}
}