blob: bfdf71c7e54be6d6803da08d56acff15266f7a87 [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.confignode.consensus.request;
import org.apache.iotdb.confignode.consensus.request.auth.AuthorPlan;
import org.apache.iotdb.confignode.consensus.request.write.database.DatabaseSchemaPlan;
import org.apache.iotdb.confignode.consensus.request.write.database.DeleteDatabasePlan;
import org.apache.iotdb.confignode.consensus.request.write.database.SetTTLPlan;
import org.apache.iotdb.confignode.consensus.request.write.pipe.payload.PipeDeactivateTemplatePlan;
import org.apache.iotdb.confignode.consensus.request.write.pipe.payload.PipeDeleteLogicalViewPlan;
import org.apache.iotdb.confignode.consensus.request.write.pipe.payload.PipeDeleteTimeSeriesPlan;
import org.apache.iotdb.confignode.consensus.request.write.pipe.payload.PipeUnsetSchemaTemplatePlan;
import org.apache.iotdb.confignode.consensus.request.write.template.CommitSetSchemaTemplatePlan;
import org.apache.iotdb.confignode.consensus.request.write.template.CreateSchemaTemplatePlan;
import org.apache.iotdb.confignode.consensus.request.write.template.DropSchemaTemplatePlan;
import org.apache.iotdb.confignode.consensus.request.write.template.ExtendSchemaTemplatePlan;
public abstract class ConfigPhysicalPlanVisitor<R, C> {
public R process(ConfigPhysicalPlan plan, C context) {
switch (plan.getType()) {
case CreateDatabase:
return visitCreateDatabase((DatabaseSchemaPlan) plan, context);
case AlterDatabase:
return visitAlterDatabase((DatabaseSchemaPlan) plan, context);
case DeleteDatabase:
return visitDeleteDatabase((DeleteDatabasePlan) plan, context);
case CreateSchemaTemplate:
return visitCreateSchemaTemplate((CreateSchemaTemplatePlan) plan, context);
case CommitSetSchemaTemplate:
return visitCommitSetSchemaTemplate((CommitSetSchemaTemplatePlan) plan, context);
case ExtendSchemaTemplate:
return visitExtendSchemaTemplate((ExtendSchemaTemplatePlan) plan, context);
case DropSchemaTemplate:
return visitDropSchemaTemplate((DropSchemaTemplatePlan) plan, context);
case PipeUnsetTemplate:
return visitPipeUnsetSchemaTemplate((PipeUnsetSchemaTemplatePlan) plan, context);
case PipeDeleteTimeSeries:
return visitPipeDeleteTimeSeries((PipeDeleteTimeSeriesPlan) plan, context);
case PipeDeleteLogicalView:
return visitPipeDeleteLogicalView((PipeDeleteLogicalViewPlan) plan, context);
case PipeDeactivateTemplate:
return visitPipeDeactivateTemplate((PipeDeactivateTemplatePlan) plan, context);
case CreateRole:
return visitCreateRole((AuthorPlan) plan, context);
case DropRole:
return visitDropRole((AuthorPlan) plan, context);
case GrantRole:
return visitGrantRole((AuthorPlan) plan, context);
case RevokeRole:
return visitRevokeRole((AuthorPlan) plan, context);
case CreateUser:
return visitCreateUser((AuthorPlan) plan, context);
case CreateUserWithRawPassword:
return visitCreateRawUser((AuthorPlan) plan, context);
case UpdateUser:
return visitUpdateUser((AuthorPlan) plan, context);
case DropUser:
return visitDropUser((AuthorPlan) plan, context);
case GrantUser:
return visitGrantUser((AuthorPlan) plan, context);
case RevokeUser:
return visitRevokeUser((AuthorPlan) plan, context);
case GrantRoleToUser:
return visitGrantRoleToUser((AuthorPlan) plan, context);
case RevokeRoleFromUser:
return visitRevokeRoleFromUser((AuthorPlan) plan, context);
case SetTTL:
return visitTTL((SetTTLPlan) plan, context);
default:
return visitPlan(plan, context);
}
}
/** Top Level Description */
public abstract R visitPlan(ConfigPhysicalPlan plan, C context);
public R visitCreateDatabase(DatabaseSchemaPlan createDatabasePlan, C context) {
return visitPlan(createDatabasePlan, context);
}
public R visitAlterDatabase(DatabaseSchemaPlan alterDatabasePlan, C context) {
return visitPlan(alterDatabasePlan, context);
}
public R visitDeleteDatabase(DeleteDatabasePlan deleteDatabasePlan, C context) {
return visitPlan(deleteDatabasePlan, context);
}
public R visitCreateSchemaTemplate(CreateSchemaTemplatePlan createSchemaTemplatePlan, C context) {
return visitPlan(createSchemaTemplatePlan, context);
}
public R visitCommitSetSchemaTemplate(
CommitSetSchemaTemplatePlan commitSetSchemaTemplatePlan, C context) {
return visitPlan(commitSetSchemaTemplatePlan, context);
}
public R visitPipeUnsetSchemaTemplate(
PipeUnsetSchemaTemplatePlan pipeUnsetSchemaTemplatePlan, C context) {
return visitPlan(pipeUnsetSchemaTemplatePlan, context);
}
public R visitExtendSchemaTemplate(ExtendSchemaTemplatePlan extendSchemaTemplatePlan, C context) {
return visitPlan(extendSchemaTemplatePlan, context);
}
public R visitDropSchemaTemplate(DropSchemaTemplatePlan dropSchemaTemplatePlan, C context) {
return visitPlan(dropSchemaTemplatePlan, context);
}
public R visitPipeDeleteTimeSeries(PipeDeleteTimeSeriesPlan pipeDeleteTimeSeriesPlan, C context) {
return visitPlan(pipeDeleteTimeSeriesPlan, context);
}
public R visitPipeDeleteLogicalView(
PipeDeleteLogicalViewPlan pipeDeleteLogicalViewPlan, C context) {
return visitPlan(pipeDeleteLogicalViewPlan, context);
}
public R visitPipeDeactivateTemplate(
PipeDeactivateTemplatePlan pipeDeactivateTemplatePlan, C context) {
return visitPlan(pipeDeactivateTemplatePlan, context);
}
public R visitCreateUser(AuthorPlan createUserPlan, C context) {
return visitPlan(createUserPlan, context);
}
public R visitCreateRawUser(AuthorPlan createRawUserPlan, C context) {
return visitPlan(createRawUserPlan, context);
}
public R visitUpdateUser(AuthorPlan updateUserPlan, C context) {
return visitPlan(updateUserPlan, context);
}
public R visitDropUser(AuthorPlan dropUserPlan, C context) {
return visitPlan(dropUserPlan, context);
}
public R visitGrantUser(AuthorPlan grantUserPlan, C context) {
return visitPlan(grantUserPlan, context);
}
public R visitRevokeUser(AuthorPlan revokeUserPlan, C context) {
return visitPlan(revokeUserPlan, context);
}
public R visitCreateRole(AuthorPlan createRolePlan, C context) {
return visitPlan(createRolePlan, context);
}
public R visitDropRole(AuthorPlan dropRolePlan, C context) {
return visitPlan(dropRolePlan, context);
}
public R visitGrantRole(AuthorPlan grantRolePlan, C context) {
return visitPlan(grantRolePlan, context);
}
public R visitRevokeRole(AuthorPlan revokeRolePlan, C context) {
return visitPlan(revokeRolePlan, context);
}
public R visitGrantRoleToUser(AuthorPlan grantRoleToUserPlan, C context) {
return visitPlan(grantRoleToUserPlan, context);
}
public R visitRevokeRoleFromUser(AuthorPlan revokeRoleFromUserPlan, C context) {
return visitPlan(revokeRoleFromUserPlan, context);
}
public R visitTTL(SetTTLPlan setTTLPlan, C context) {
return visitPlan(setTTLPlan, context);
}
}