Users are allowed to post-filter the retrieved components using a custom sieve. A sieve is an implementation of the interface JSieve (see http://github.com/hampos/DeciBell/blob/algorithmic/src/org/kinkydesign/decibell/db/sieve/JSieve.java). Consider using public ArrayList search(DeciBell db, JSieve sieve) in Component (http://github.com/hampos/DeciBell/blob/algorithmic/src/org/kinkydesign/decibell/Component.java).