alluxio.collections.FieldIndex Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of alluxio-core-common Show documentation
Show all versions of alluxio-core-common Show documentation
Common utilities shared in Alluxio core modules
/*
* The Alluxio Open Foundation licenses this work under the Apache License, version 2.0
* (the "License"). You may not use this work except in compliance with the License, which is
* available at www.apache.org/licenses/LICENSE-2.0
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied, as more fully set forth in the License.
*
* See the NOTICE file distributed with this work for information regarding copyright ownership.
*/
package alluxio.collections;
import java.util.Iterator;
import java.util.Set;
/**
* An interface representing an index for {@link IndexedSet}, each index for this set must
* implement the interface to define how to get the value of the field chosen as the index. Users
* must use the same instance of the implementation of this interface as the parameter in all
* methods of {@link IndexedSet} to represent the same index.
*
* @param type of objects in this index
* @param type of the field used for indexing
*/
public interface FieldIndex extends Iterable {
/**
* Adds an object o to the index.
*
* @param o the object to add to the index
* @return true if object is added successfully, false otherwise
*/
boolean add(T o);
/**
* Removes the object o from the index.
*
* @param o the object to remove from index
* @return whether the specified element was in the index
*/
boolean remove(T o);
/**
* Removes all the entries in this index.
*/
void clear();
/**
* Returns whether there is an object with the specified index field value in the set.
*
* @param fieldValue the field value to be satisfied
* @return true if there is one such object, otherwise false
*/
boolean containsField(V fieldValue);
/**
* Returns whether there is an object in the set.
*
* @param o the object to be checked
* @return true if there is one such object, otherwise false
*/
boolean containsObject(T o);
/**
* Gets a subset of objects with the specified field value. If there is no object with
* the specified field value, an empty set is returned.
*
* @param value the field value to be satisfied
* @return the set of objects or an empty set if no such object exists
*/
Set getByField(V value);
/**
* Gets an object from the set of objects with the specified field value.
*
* @param value the field value to be satisfied
* @return the object or null if there is no such object
*/
T getFirst(V value);
/**
* Returns an iterator over the elements in this index. The elements are returned in no particular
* order.
*
* Note that the behavior of the iterator is unspecified if the underlying collection is modified
* while a thread is going through the iterator.
*
* @return an iterator over the elements in this {@link FieldIndex}
*/
Iterator iterator();
/**
* @return the number of objects in this index set
*/
int size();
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy