All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.magicwerk.brownies.collections.KeyCollectionAsSet Maven / Gradle / Ivy

Go to download

Brownies Collections complements the Java Collections Framework. GapList combines the strengths of both ArrayList and LinkedList. BigList is a list optimized for storing large number of elements. There are specialized List implementations for all primitive data types (IntGapList, IntBigList, IntObjGapList, IntObjBigList). The key collection classes offer support for keys and constraints for lists and collections (KeyList, KeyCollection, KeySet, Key1List, Key1Collection, Key1Set, Key2List, Key2Collection, Key2Set).

There is a newer version: 0.9.3
Show newest version
/*
 * Copyright 2013 by Thomas Mauch
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * $Id: KeyCollectionAsSet.java 2953 2015-09-15 23:01:19Z origo $
 */
package org.magicwerk.brownies.collections;

import java.io.Serializable;
import java.util.Collection;

import org.magicwerk.brownies.collections.exceptions.DuplicateKeyException;

/**
 * Implements a Set based on a Collection.
 *
 * @author Thomas Mauch
 * @version $Id: KeyCollectionAsSet.java 2953 2015-09-15 23:01:19Z origo $
 */
@SuppressWarnings("serial")
public class KeyCollectionAsSet extends CollectionAsSet implements Serializable {

    public KeyCollectionAsSet(KeyCollectionImpl coll, boolean immutable) {
    	super(coll, immutable);

    	coll.checkAsSet();
    }

	@Override
	public boolean add(E e) {
		checkMutable();
		try {
			return coll.add(e);
		}
		catch (DuplicateKeyException ex) {
			return false;
		}
	}

	@Override
	public boolean addAll(Collection c) {
		checkMutable();
		boolean changed = false;
		for (E e: c) {
			if (add(e)) {
				changed = true;
			}
		}
		return changed;
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy