@Override public QueryResult<?> execute(DataStorage dataStorage) throws IOException { CompiledQuery compiledQuery; try { compiledQuery = dataStorage.compile(this.query); } catch (QueryCompileException e) { throw new IOException(e); } try { EntityDefinition entityDefinition = EntityDefinitionManager.getEntityByServiceName(compiledQuery.getServiceName()); return dataStorage.query(compiledQuery, entityDefinition); } catch (InstantiationException | IllegalAccessException e) { throw new IOException(e); } } }
@SuppressWarnings("unchecked") @Override public ModifyResult<String> execute(DataStorage storage) throws IOException { ModifyResult result; try { if (this.ids != null) { result = storage.deleteByID(this.ids,this.entityDefinition); } else if (this.entities != null) { result = storage.delete(this.entities, this.entityDefinition); } else if (this.query != null) { CompiledQuery compiledQuery = storage.compile(this.query); this.entityDefinition = EntityDefinitionManager.getEntityByServiceName(compiledQuery.getServiceName()); result = storage.delete(compiledQuery,this.entityDefinition); } else { throw new IllegalStateException("bad delete statement, not given enough parameters"); } } catch (QueryCompileException e) { throw new IOException(e); } catch (Exception ex) { throw new IOException(ex); } return result; } }
@Test public void testResultNotNullQuery() throws Exception { RawQuery query = mock(RawQuery.class); CompiledQuery compiledQuery = mock(CompiledQuery.class); DeleteStatement deleteStatement = new DeleteStatement(query); when(mockDataStorage.compile(query)).thenReturn(compiledQuery); when(compiledQuery.getServiceName()).thenReturn("TestTimeSeriesAPIEntity"); deleteStatement.execute(mockDataStorage); verify(mockDataStorage).delete(any(CompiledQuery.class), any(EntityDefinition.class)); }
@Test public void testQueryExecute() throws Exception { RawQuery query = mock(RawQuery.class); CompiledQuery compiledQuery = mock(CompiledQuery.class); QueryStatement queryStatement = new QueryStatement(query); when(mockDataStorage.compile(query)).thenReturn(compiledQuery); when(compiledQuery.getServiceName()).thenReturn("TestTimeSeriesAPIEntity"); queryStatement.execute(mockDataStorage); verify(mockDataStorage).query(any(), any()); } }
GenericQuery reader = GenericQueryBuilder .select(query.getSearchCondition().getOutputFields()) .from(query.getServiceName(), query.getRawQuery().getMetricName()).where(query.getSearchCondition()) .groupBy(query.isHasAgg(), query.getGroupByFields(), query.getAggregateFunctionTypes(), query.getAggregateFields()) .timeSeries(query.getRawQuery().isTimeSeries(), query.getRawQuery().getIntervalmin())
GenericQuery reader = GenericQueryBuilder .select(query.getSearchCondition().getOutputFields()) .from(query.getServiceName(),query.getRawQuery().getMetricName()).where(query.getSearchCondition()) .groupBy(query.isHasAgg(), query.getGroupByFields(), query.getAggregateFunctionTypes(), query.getAggregateFields()) .timeSeries(query.getRawQuery().isTimeSeries(),query.getRawQuery().getIntervalmin())
GenericQuery reader = GenericQueryBuilder .select(query.getSearchCondition().getOutputFields()) .from(query.getServiceName(), query.getRawQuery().getMetricName()).where(query.getSearchCondition()) .groupBy(query.isHasAgg(), query.getGroupByFields(), query.getAggregateFunctionTypes(), query.getAggregateFields()) .timeSeries(query.getRawQuery().isTimeSeries(), query.getRawQuery().getIntervalmin())
GenericQuery reader = GenericQueryBuilder .select(query.getSearchCondition().getOutputFields()) .from(query.getServiceName(),query.getRawQuery().getMetricName()).where(query.getSearchCondition()) .groupBy(query.isHasAgg(), query.getGroupByFields(), query.getAggregateFunctionTypes(), query.getAggregateFields()) .timeSeries(query.getRawQuery().isTimeSeries(),query.getRawQuery().getIntervalmin())
if(query.getServiceName().equals(GenericMetricEntity.GENERIC_METRIC_SERVICE)){ where = where.and(new Criterion(new ColumnImpl(this.tableName, JdbcConstants.METRIC_NAME_COLUMN_NAME),this.query.getRawQuery().getMetricName(),SqlEnum.EQUAL));
if(query.getServiceName().equals(GenericMetricEntity.GENERIC_METRIC_SERVICE)){ where = where.and(new Criterion(new ColumnImpl(this.tableName, JdbcConstants.METRIC_NAME_COLUMN_NAME),this.query.getRawQuery().getMetricName(),SqlEnum.EQUAL));