if (parameters == null)
{
throw new NullPointerException();
}
final DataFactory dataFactoryForQuery = backend.getDataFactoryForQuery(query);
final DataCacheKey key;
if (dataFactoryForQuery != null && dataCache != null)
{
// search the datafactory that executes a query
// metadata: query fields that are used
// metadata: get a query-string hash-object (or the raw query)
final String metaKey = dataFactoryForQuery.getClass().getName();
final DataFactoryMetaData metaData = DataFactoryRegistry.getInstance().getMetaData(metaKey);
final String[] referencedFields = metaData.getReferencedFields(dataFactoryForQuery, query, parameters);
if (referencedFields != null)
{
final Object queryHash = metaData.getQueryHash(dataFactoryForQuery, query, parameters);