class ReentrantReadWriteLockGroup {

    public ReentrantReadWriteLock getLock(String id) {
        ReentrantReadWriteLock lock = locks.get(id);
        if (lock == null) {
            locks.putIfAbsent(id, new ReentrantReadWriteLock(fairness));
        }
        lock = locks.get(id);

        if (CLEANUP_THRESHOLD <= ++counter) {
            cleanUp(lock);
            counter = 0;
        }
        return lock;
    }

    public  ReentrantReadWriteLockGroup();
    public  ReentrantReadWriteLockGroup(int counter);
    public  ReentrantReadWriteLockGroup(boolean fairness);
    public  ReentrantReadWriteLockGroup(boolean fairness, int counter);

}