cz.cuni.versatile.api
Interface PreferenceBag

All Superinterfaces:
java.util.Collection, java.util.Set
All Known Implementing Classes:
PreferenceBagImpl

public interface PreferenceBag
extends java.util.Set

A marker interface to denote an unordered set of values. The reason we are not directly using java.util.Set is that we want to distinguish properties whose values are sets (type Set), which need to be treated as individuals (i.e. comparing entire sets for equality, etc.) versus the cases when a property of another type (e.g. String) happens to have multiple values.

In general, a ValueProvider for any Property, regardless of its type, can return PreferenceBag, a collection of multiple values, instead of a single value of the given type. The semantics of a property value being a PreferenceBag is equivalent to logical OR operator, or even more precisely to the IN construct of SQL:
SELECT * FROM Table WHERE Attribute IN (...)

Remarks: PreferenceBag corresponds to the RDF:Bag construct. It is used to let the client to enumerate all acceptable options without stating their relative preference.

Author:
Jaroslav Gergic

Methods inherited from interface java.util.Set
add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray