blob: 4330c4e8f0d1db720b506ad521911e42cafd9c39 [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.asterix.lang.common.base;
public interface Statement extends ILangExpression {
/**
* The statement kind.
*
* @return kind
*/
Kind getKind();
/**
* get a byte representing the statement category.
* Each category describes the type of modifications this statement does.
*
* @return kind byte
*/
byte getCategory();
class Category {
/** no modifications */
public static final byte QUERY = 0x01;
/** modify data */
public static final byte UPDATE = 0x02;
/** modify metadata */
public static final byte DDL = 0x04;
/** modify anything */
public static final byte PROCEDURE = 0x08;
private Category() {
}
public static String toString(byte category) {
switch (category) {
case QUERY:
return "query";
case UPDATE:
return "update";
case DDL:
return "ddl";
case PROCEDURE:
return "procedure";
default:
throw new IllegalArgumentException(String.valueOf(category));
}
}
}
enum Kind {
DATASET_DECL,
DATAVERSE_DECL,
DATAVERSE_DROP,
DATASET_DROP,
DELETE,
INSERT,
UPSERT,
UPDATE,
FUNCTION_DECL,
VIEW_DECL,
LOAD,
NODEGROUP_DECL,
NODEGROUP_DROP,
QUERY,
SET,
TYPE_DECL,
TYPE_DROP,
WRITE,
CREATE_INDEX,
CREATE_DATAVERSE,
CREATE_VIEW,
CREATE_FULL_TEXT_FILTER,
CREATE_FULL_TEXT_CONFIG,
INDEX_DROP,
FULL_TEXT_FILTER_DROP,
FULL_TEXT_CONFIG_DROP,
CREATE_FEED,
DROP_FEED,
START_FEED,
STOP_FEED,
CONNECT_FEED,
DISCONNECT_FEED,
CREATE_FEED_POLICY,
DROP_FEED_POLICY,
CREATE_FUNCTION,
CREATE_ADAPTER,
CREATE_LIBRARY,
FUNCTION_DROP,
ADAPTER_DROP,
LIBRARY_DROP,
CREATE_SYNONYM,
SYNONYM_DROP,
VIEW_DROP,
ANALYZE,
ANALYZE_DROP,
COMPACT,
EXTERNAL_DATASET_REFRESH,
SUBSCRIBE_FEED,
EXTENSION,
}
}