*/
protected <C extends Component> List<C> findComponents(final ODatabaseDocumentTx db,
final Class<C> componentClass,
@Nullable final MetadataQuery metadataQuery) {
checkAllNotNull(db, componentClass);
OrientQueryBuilder queryBuilder = orientQueryBuilder(db, componentClass, metadataQuery);
String query = queryBuilder.buildQuery(componentClass, false);
return FluentIterable
.from(executeQuery(db, query, queryBuilder.getParameters()))
.transform(new Function<ODocument, C>()
{
@Override
public C apply(final ODocument componentDocument) {
return componentFrom(db, registeredComponentAdapter(componentClass), componentDocument);