001 /* 002 * Cumulus4j - Securing your data in the cloud - http://cumulus4j.org 003 * Copyright (C) 2011 NightLabs Consulting GmbH 004 * 005 * This program is free software: you can redistribute it and/or modify 006 * it under the terms of the GNU Affero General Public License as 007 * published by the Free Software Foundation, either version 3 of the 008 * License, or (at your option) any later version. 009 * 010 * This program is distributed in the hope that it will be useful, 011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 013 * GNU Affero General Public License for more details. 014 * 015 * You should have received a copy of the GNU Affero General Public License 016 * along with this program. If not, see <http://www.gnu.org/licenses/>. 017 */ 018 package org.cumulus4j.store.query.eval; 019 020 import java.util.Set; 021 022 import org.cumulus4j.store.query.QueryEvaluator; 023 import org.datanucleus.query.expression.SubqueryExpression; 024 025 /** 026 * Evaluator handling a <a target="_blank" href="http://www.datanucleus.org/products/accessplatform_3_0/jdo/jdoql_subquery.html">sub-query</a>. 027 * @author Andy Jefferson 028 * @author Marco หงุ่ยตระกูล-Schulze - marco at nightlabs dot de (only added javadoc) 029 */ 030 public class SubqueryExpressionEvaluator 031 extends AbstractExpressionEvaluator<SubqueryExpression> 032 { 033 /** 034 * Create an instance. 035 * @param queryEvaluator the evaluator responsible for the evaluation of the whole query. 036 * @param parent the parent in the tree structure or <code>null</code>, if this is the root. 037 * @param expression the expression to evaluate. 038 */ 039 public SubqueryExpressionEvaluator(QueryEvaluator queryEvaluator, AbstractExpressionEvaluator<?> parent, SubqueryExpression expression) 040 { 041 super(queryEvaluator, parent, expression); 042 } 043 044 @Override 045 protected Set<Long> _queryResultDataEntryIDs(ResultDescriptor resultDescriptor) 046 throws UnsupportedOperationException 047 { 048 throw new UnsupportedOperationException("NYI"); 049 } 050 051 }