/* * Copyright (c) 2013, OpenCloudDB/MyCAT and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software;Designed and Developed mainly by many Chinese * opensource volunteers. you can redistribute it and/or modify it under the * terms of the GNU General Public License version 2 only, as published by the * Free Software Foundation. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Any questions about this component can be directed to it's project Web address * https://code.google.com/p/opencloudb/. * */ package com.akiban.sql.parser; import com.akiban.sql.StandardException; /** * This class represents a set of privileges on one table. */ public class TablePrivilegesNode extends QueryTreeNode { // Action types // TODO: Could be enum, but used as array index below. public static final int SELECT_ACTION = 0; public static final int DELETE_ACTION = 1; public static final int INSERT_ACTION = 2; public static final int UPDATE_ACTION = 3; public static final int REFERENCES_ACTION = 4; public static final int TRIGGER_ACTION = 5; public static final int ACTION_COUNT = 6; private boolean[] actionAllowed = new boolean[ACTION_COUNT]; private ResultColumnList[] columnLists = new ResultColumnList[ACTION_COUNT]; /** * Add all actions */ public void addAll() { for (int i = 0; i < ACTION_COUNT; i++) { actionAllowed[i] = true; columnLists[i] = null; } } /** * Add one action to the privileges for this table * * @param action The action type * @param privilegeColumnList The set of privilege columns. Null for all columns * * @exception StandardException standard error policy. */ public void addAction(int action, ResultColumnList privilegeColumnList) { actionAllowed[action] = true; if (privilegeColumnList == null) columnLists[action] = null; else if (columnLists[action] == null) columnLists[action] = privilegeColumnList; else columnLists[action].appendResultColumns(privilegeColumnList, false); } }