blob: 260a2f2feb0ae041d92814f7f346f84b127c5dfe [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.iotdb.db.mpp.plan.execution.config;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.CountStorageGroupTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.CreateFunctionTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.CreateTriggerTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.DeleteStorageGroupTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.DeleteTimeSeriesTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.DropFunctionTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.DropTriggerTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.SetStorageGroupTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.SetTTLTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.ShowClusterTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.ShowConfigNodesTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.ShowDataNodesTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.ShowFunctionsTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.ShowRegionTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.ShowStorageGroupTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.ShowTTLTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.ShowTriggersTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.UnSetTTLTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.template.CreateSchemaTemplateTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.template.SetSchemaTemplateTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.template.ShowNodesInSchemaTemplateTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.template.ShowPathSetTemplateTask;
import org.apache.iotdb.db.mpp.plan.execution.config.metadata.template.ShowSchemaTemplateTask;
import org.apache.iotdb.db.mpp.plan.execution.config.sys.AuthorizerTask;
import org.apache.iotdb.db.mpp.plan.execution.config.sys.ClearCacheTask;
import org.apache.iotdb.db.mpp.plan.execution.config.sys.FlushTask;
import org.apache.iotdb.db.mpp.plan.execution.config.sys.LoadConfigurationTask;
import org.apache.iotdb.db.mpp.plan.execution.config.sys.MergeTask;
import org.apache.iotdb.db.mpp.plan.execution.config.sys.SetSystemStatusTask;
import org.apache.iotdb.db.mpp.plan.execution.config.sys.sync.CreatePipeSinkTask;
import org.apache.iotdb.db.mpp.plan.execution.config.sys.sync.CreatePipeTask;
import org.apache.iotdb.db.mpp.plan.execution.config.sys.sync.DropPipeSinkTask;
import org.apache.iotdb.db.mpp.plan.execution.config.sys.sync.DropPipeTask;
import org.apache.iotdb.db.mpp.plan.execution.config.sys.sync.ShowPipeSinkTask;
import org.apache.iotdb.db.mpp.plan.execution.config.sys.sync.ShowPipeTask;
import org.apache.iotdb.db.mpp.plan.execution.config.sys.sync.StartPipeTask;
import org.apache.iotdb.db.mpp.plan.execution.config.sys.sync.StopPipeTask;
import org.apache.iotdb.db.mpp.plan.statement.Statement;
import org.apache.iotdb.db.mpp.plan.statement.StatementNode;
import org.apache.iotdb.db.mpp.plan.statement.StatementVisitor;
import org.apache.iotdb.db.mpp.plan.statement.metadata.CountStorageGroupStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.CreateFunctionStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.CreateTriggerStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.DeleteStorageGroupStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.DeleteTimeSeriesStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.DropFunctionStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.DropTriggerStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.SetStorageGroupStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.SetTTLStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowClusterStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowConfigNodesStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowDataNodesStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowFunctionsStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowRegionStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowStorageGroupStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowTTLStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowTriggersStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.UnSetTTLStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.template.CreateSchemaTemplateStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.template.SetSchemaTemplateStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.template.ShowNodesInSchemaTemplateStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.template.ShowPathSetTemplateStatement;
import org.apache.iotdb.db.mpp.plan.statement.metadata.template.ShowSchemaTemplateStatement;
import org.apache.iotdb.db.mpp.plan.statement.sys.AuthorStatement;
import org.apache.iotdb.db.mpp.plan.statement.sys.ClearCacheStatement;
import org.apache.iotdb.db.mpp.plan.statement.sys.FlushStatement;
import org.apache.iotdb.db.mpp.plan.statement.sys.LoadConfigurationStatement;
import org.apache.iotdb.db.mpp.plan.statement.sys.MergeStatement;
import org.apache.iotdb.db.mpp.plan.statement.sys.SetSystemStatusStatement;
import org.apache.iotdb.db.mpp.plan.statement.sys.sync.CreatePipeSinkStatement;
import org.apache.iotdb.db.mpp.plan.statement.sys.sync.CreatePipeStatement;
import org.apache.iotdb.db.mpp.plan.statement.sys.sync.DropPipeSinkStatement;
import org.apache.iotdb.db.mpp.plan.statement.sys.sync.DropPipeStatement;
import org.apache.iotdb.db.mpp.plan.statement.sys.sync.ShowPipeSinkStatement;
import org.apache.iotdb.db.mpp.plan.statement.sys.sync.ShowPipeStatement;
import org.apache.iotdb.db.mpp.plan.statement.sys.sync.StartPipeStatement;
import org.apache.iotdb.db.mpp.plan.statement.sys.sync.StopPipeStatement;
import org.apache.iotdb.tsfile.exception.NotImplementedException;
public class ConfigTaskVisitor
extends StatementVisitor<IConfigTask, ConfigTaskVisitor.TaskContext> {
@Override
public IConfigTask visitNode(StatementNode node, TaskContext context) {
throw new UnsupportedOperationException(
"Unsupported statement type: " + node.getClass().getName());
}
@Override
public IConfigTask visitStatement(Statement statement, TaskContext context) {
throw new NotImplementedException("ConfigTask is not implemented for: " + statement);
}
@Override
public IConfigTask visitSetStorageGroup(SetStorageGroupStatement statement, TaskContext context) {
return new SetStorageGroupTask(statement);
}
@Override
public IConfigTask visitDeleteStorageGroup(
DeleteStorageGroupStatement statement, TaskContext context) {
return new DeleteStorageGroupTask(statement);
}
@Override
public IConfigTask visitShowStorageGroup(
ShowStorageGroupStatement statement, TaskContext context) {
return new ShowStorageGroupTask(statement);
}
@Override
public IConfigTask visitCountStorageGroup(
CountStorageGroupStatement statement, TaskContext context) {
return new CountStorageGroupTask(statement);
}
@Override
public IConfigTask visitSetTTL(SetTTLStatement statement, TaskContext context) {
return new SetTTLTask(statement);
}
@Override
public IConfigTask visitUnSetTTL(UnSetTTLStatement statement, TaskContext context) {
return new UnSetTTLTask(statement);
}
@Override
public IConfigTask visitShowTTL(ShowTTLStatement showTTLStatement, TaskContext context) {
return new ShowTTLTask(showTTLStatement);
}
@Override
public IConfigTask visitShowCluster(
ShowClusterStatement showClusterStatement, TaskContext context) {
return new ShowClusterTask(showClusterStatement);
}
@Override
public IConfigTask visitAuthor(AuthorStatement statement, TaskContext context) {
return new AuthorizerTask(statement);
}
@Override
public IConfigTask visitMerge(MergeStatement mergeStatement, TaskContext context) {
return new MergeTask(mergeStatement);
}
@Override
public IConfigTask visitFlush(FlushStatement flushStatement, TaskContext context) {
return new FlushTask(flushStatement);
}
@Override
public IConfigTask visitClearCache(ClearCacheStatement clearCacheStatement, TaskContext context) {
return new ClearCacheTask(clearCacheStatement);
}
@Override
public IConfigTask visitLoadConfiguration(
LoadConfigurationStatement loadConfigurationStatement, TaskContext context) {
return new LoadConfigurationTask(loadConfigurationStatement);
}
@Override
public IConfigTask visitSetSystemStatus(
SetSystemStatusStatement setSystemStatusStatement, TaskContext context) {
return new SetSystemStatusTask(setSystemStatusStatement);
}
@Override
public IConfigTask visitCreateFunction(
CreateFunctionStatement createFunctionStatement, TaskContext context) {
return new CreateFunctionTask(createFunctionStatement);
}
@Override
public IConfigTask visitDropFunction(
DropFunctionStatement dropFunctionStatement, TaskContext context) {
return new DropFunctionTask(dropFunctionStatement);
}
@Override
public IConfigTask visitShowFunctions(
ShowFunctionsStatement showFunctionsStatement, TaskContext context) {
return new ShowFunctionsTask();
}
@Override
public IConfigTask visitCreateTrigger(
CreateTriggerStatement createTriggerStatement, TaskContext context) {
return new CreateTriggerTask(createTriggerStatement);
}
@Override
public IConfigTask visitDropTrigger(
DropTriggerStatement dropTriggerStatement, TaskContext context) {
return new DropTriggerTask(dropTriggerStatement);
}
@Override
public IConfigTask visitShowTriggers(
ShowTriggersStatement showTriggersStatement, TaskContext context) {
return new ShowTriggersTask();
}
@Override
public IConfigTask visitShowRegion(ShowRegionStatement showRegionStatement, TaskContext context) {
return new ShowRegionTask(showRegionStatement);
}
@Override
public IConfigTask visitCreateSchemaTemplate(
CreateSchemaTemplateStatement createSchemaTemplateStatement, TaskContext context) {
return new CreateSchemaTemplateTask(createSchemaTemplateStatement);
}
@Override
public IConfigTask visitShowNodesInSchemaTemplate(
ShowNodesInSchemaTemplateStatement showNodesInSchemaTemplateStatement, TaskContext context) {
return new ShowNodesInSchemaTemplateTask(showNodesInSchemaTemplateStatement);
}
@Override
public IConfigTask visitShowSchemaTemplate(
ShowSchemaTemplateStatement showSchemaTemplateStatement, TaskContext context) {
return new ShowSchemaTemplateTask(showSchemaTemplateStatement);
}
@Override
public IConfigTask visitSetSchemaTemplate(
SetSchemaTemplateStatement setSchemaTemplateStatement, TaskContext context) {
return new SetSchemaTemplateTask(setSchemaTemplateStatement);
}
@Override
public IConfigTask visitShowPathSetTemplate(
ShowPathSetTemplateStatement showPathSetTemplateStatement, TaskContext context) {
return new ShowPathSetTemplateTask(showPathSetTemplateStatement);
}
@Override
public IConfigTask visitShowDataNodes(
ShowDataNodesStatement showDataNodesStatement, TaskContext context) {
return new ShowDataNodesTask(showDataNodesStatement);
}
@Override
public IConfigTask visitShowConfigNodes(
ShowConfigNodesStatement showConfigNodesStatement, TaskContext context) {
return new ShowConfigNodesTask(showConfigNodesStatement);
}
@Override
public IConfigTask visitShowPipeSink(
ShowPipeSinkStatement showPipeSinkStatement, TaskContext context) {
return new ShowPipeSinkTask(showPipeSinkStatement);
}
@Override
public IConfigTask visitShowPipe(ShowPipeStatement showPipeStatement, TaskContext context) {
return new ShowPipeTask(showPipeStatement);
}
@Override
public IConfigTask visitDropPipe(DropPipeStatement dropPipeStatement, TaskContext context) {
return new DropPipeTask(dropPipeStatement);
}
@Override
public IConfigTask visitCreatePipeSink(
CreatePipeSinkStatement createPipeSinkStatement, TaskContext context) {
return new CreatePipeSinkTask(createPipeSinkStatement);
}
@Override
public IConfigTask visitDropPipeSink(
DropPipeSinkStatement dropPipeSinkStatement, TaskContext context) {
return new DropPipeSinkTask(dropPipeSinkStatement);
}
@Override
public IConfigTask visitCreatePipe(CreatePipeStatement createPipeStatement, TaskContext context) {
return new CreatePipeTask(createPipeStatement);
}
@Override
public IConfigTask visitStartPipe(StartPipeStatement startPipeStatement, TaskContext context) {
return new StartPipeTask(startPipeStatement);
}
@Override
public IConfigTask visitStopPipe(StopPipeStatement stopPipeStatement, TaskContext context) {
return new StopPipeTask(stopPipeStatement);
}
@Override
public IConfigTask visitDeleteTimeseries(
DeleteTimeSeriesStatement deleteTimeSeriesStatement, TaskContext context) {
return new DeleteTimeSeriesTask(context.getQueryId(), deleteTimeSeriesStatement);
}
public static class TaskContext {
private final String queryId;
public TaskContext(String queryId) {
this.queryId = queryId;
}
public String getQueryId() {
return queryId;
}
}
}