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

org.aksw.commons.accessors.CollectionAccessorSingleton Maven / Gradle / Ivy

There is a newer version: 0.9.9
Show newest version
package org.aksw.commons.accessors;

import java.util.Collection;
import java.util.Collections;

import com.google.common.collect.Range;

/**
 * An accessor that refers to an immutable collection.
 * 
 * @author raven May 2, 2018
 *
 * @param 
 */
public class CollectionAccessorSingleton
	implements CollectionAccessor
{
	protected Collection values;
	
	protected transient Collection unmodifiableValuesView;
	protected transient Range multiplicity;

	public CollectionAccessorSingleton(T value) {
		this(Collections.singleton(value));
	}

	public CollectionAccessorSingleton(Collection values) {
		super();
		this.values = values;
		this.unmodifiableValuesView = Collections.unmodifiableCollection(values);
		this.multiplicity = Range.singleton((long)values.size());
	}

	@Override
	public Collection get() {
		return unmodifiableValuesView;
	}
	
	@Override
	public Range getMultiplicity() {
		return multiplicity;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy