com.liferay.portal.kernel.util.MapBackedSet Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of com.liferay.portal.kernel Show documentation
Show all versions of com.liferay.portal.kernel Show documentation
Contains interfaces for the portal services. Interfaces are only loaded by the global class loader and are shared by all plugins.
/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.liferay.portal.kernel.util;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.Serializable;
import java.util.AbstractSet;
import java.util.Collection;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
/**
* @author Shuyang Zhou
*/
public class MapBackedSet extends AbstractSet implements Serializable {
public MapBackedSet(Map backedMap) {
if (!backedMap.isEmpty()) {
throw new IllegalArgumentException("Map is not empty");
}
_backedMap = backedMap;
_backedMapKeySet = backedMap.keySet();
}
@Override
public boolean add(E element) {
if (_backedMap.put(element, Boolean.TRUE) == null) {
return true;
}
else {
return false;
}
}
@Override
public void clear() {
_backedMap.clear();
}
@Override
public boolean contains(Object obj) {
return _backedMap.containsKey(obj);
}
@Override
public boolean containsAll(Collection> collection) {
return _backedMapKeySet.containsAll(collection);
}
@Override
public boolean equals(Object obj) {
if ((obj == this) || _backedMapKeySet.equals(obj)) {
return true;
}
else {
return false;
}
}
@Override
public int hashCode() {
return _backedMapKeySet.hashCode();
}
@Override
public boolean isEmpty() {
return _backedMap.isEmpty();
}
@Override
public Iterator iterator() {
return _backedMapKeySet.iterator();
}
@Override
public boolean remove(Object obj) {
if (_backedMap.remove(obj) != null) {
return true;
}
else {
return false;
}
}
@Override
public boolean removeAll(Collection> collection) {
return _backedMapKeySet.removeAll(collection);
}
@Override
public boolean retainAll(Collection> collection) {
return _backedMapKeySet.retainAll(collection);
}
@Override
public int size() {
return _backedMap.size();
}
@Override
public Object[] toArray() {
return _backedMapKeySet.toArray();
}
@Override
public T[] toArray(T[] array) {
return _backedMapKeySet.toArray(array);
}
@Override
public String toString() {
return _backedMapKeySet.toString();
}
private void readObject(ObjectInputStream objectInputStream)
throws ClassNotFoundException, IOException {
objectInputStream.defaultReadObject();
_backedMapKeySet = _backedMap.keySet();
}
private final Map _backedMap;
private transient Set _backedMapKeySet;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy