/* * Copyright 1999-2017 Alibaba Group Holding Ltd. * * Licensed 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 com.alibaba.druid.sql.dialect.oracle.ast.stmt; import java.util.ArrayList; import java.util.List; import com.alibaba.druid.sql.ast.SQLExpr; import com.alibaba.druid.sql.ast.SQLName; import com.alibaba.druid.sql.ast.SQLObject; import com.alibaba.druid.sql.dialect.oracle.ast.OracleSQLObjectImpl; import com.alibaba.druid.sql.dialect.oracle.visitor.OracleASTVisitor; public class OracleAlterTableSplitPartition extends OracleAlterTableItem { private SQLName name; private List<SQLExpr> at = new ArrayList<SQLExpr>(); private List<SQLExpr> values = new ArrayList<SQLExpr>(); private List<NestedTablePartitionSpec> into = new ArrayList<NestedTablePartitionSpec>(); private UpdateIndexesClause updateIndexes = null; @Override public void accept0(OracleASTVisitor visitor) { if (visitor.visit(this)) { acceptChild(visitor, name); acceptChild(visitor, at); acceptChild(visitor, values); acceptChild(visitor, updateIndexes); } visitor.endVisit(this); } public UpdateIndexesClause getUpdateIndexes() { return updateIndexes; } public void setUpdateIndexes(UpdateIndexesClause updateIndexes) { this.updateIndexes = updateIndexes; } public SQLName getName() { return name; } public void setName(SQLName name) { this.name = name; } public List<SQLExpr> getAt() { return at; } public void setAt(List<SQLExpr> at) { this.at = at; } public List<NestedTablePartitionSpec> getInto() { return into; } public void setInto(List<NestedTablePartitionSpec> into) { this.into = into; } public List<SQLExpr> getValues() { return values; } public void setValues(List<SQLExpr> values) { this.values = values; } public static class NestedTablePartitionSpec extends OracleSQLObjectImpl { private SQLName partition; private List<SQLObject> segmentAttributeItems = new ArrayList<SQLObject>(); @Override public void accept0(OracleASTVisitor visitor) { if (visitor.visit(this)) { acceptChild(visitor, partition); acceptChild(visitor, segmentAttributeItems); } visitor.endVisit(this); } public SQLName getPartition() { return partition; } public void setPartition(SQLName partition) { this.partition = partition; } public List<SQLObject> getSegmentAttributeItems() { return segmentAttributeItems; } public void setSegmentAttributeItems(List<SQLObject> segmentAttributeItems) { this.segmentAttributeItems = segmentAttributeItems; } } public static class TableSpaceItem extends OracleSQLObjectImpl { private SQLName tablespace; public TableSpaceItem(){ } public TableSpaceItem(SQLName tablespace){ this.tablespace = tablespace; } @Override public void accept0(OracleASTVisitor visitor) { if (visitor.visit(this)) { acceptChild(visitor, tablespace); } visitor.endVisit(this); } public SQLName getTablespace() { return tablespace; } public void setTablespace(SQLName tablespace) { this.tablespace = tablespace; } } public static class UpdateIndexesClause extends OracleSQLObjectImpl { private List<SQLObject> items = new ArrayList<SQLObject>(); @Override public void accept0(OracleASTVisitor visitor) { if (visitor.visit(this)) { acceptChild(visitor, items); } visitor.endVisit(this); } public List<SQLObject> getItems() { return items; } public void setItems(List<SQLObject> items) { this.items = items; } } }