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

org.infinispan.util.SetMapper Maven / Gradle / Ivy

There is a newer version: 15.1.0.Dev04
Show newest version
package org.infinispan.util;

import java.util.Collection;
import java.util.Set;
import java.util.function.Function;

import org.infinispan.commons.util.InjectiveFunction;

/**
 * A set that maps another one to a new one of a possibly different type.  Note this set is read only
 * and doesn't accept write operations.
 * 

* This class currently only accepts a {@link Function} that also implements {@link InjectiveFunction} so that it can * guarantee the resulting mapped values are distinct from each other. This is important as many operations because * very costly if this is not true. *

* Some operations such as {@link Collection#contains(Object)} and {@link Collection#containsAll(Collection)} may be * more expensive then normal since they cannot utilize lookups into the original collection. * @author wburns * @since 9.0 */ public class SetMapper extends CollectionMapper implements Set { public SetMapper(Set realCollection, Function mapper) { super(realCollection, mapper); if (!(mapper instanceof InjectiveFunction)) { throw new IllegalArgumentException("Function must also provided distinct values as evidented by implementing" + "the marker interface InjectiveFunction"); } } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy