View Javadoc

1   /*
2   Copyright (c) 2008 Health Market Science, Inc.
3   
4   This library is free software; you can redistribute it and/or
5   modify it under the terms of the GNU Lesser General Public
6   License as published by the Free Software Foundation; either
7   version 2.1 of the License.
8   
9   This library is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  Lesser General Public License for more details.
13  
14  You should have received a copy of the GNU Lesser General Public
15  License along with this library; if not, write to the Free Software
16  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
17  USA
18  
19  You can contact Health Market Science at info@healthmarketscience.com
20  or at the following address:
21  
22  Health Market Science
23  2700 Horizon Drive
24  Suite 200
25  King of Prussia, PA 19406
26  */
27  
28  package com.healthmarketscience.sqlbuilder;
29  
30  import java.io.IOException;
31  
32  import com.healthmarketscience.common.util.AppendableExt;
33  
34  /**
35   * Query which generates a REVOKE (privileges) statement.
36   *
37   * @author James Ahlborn
38   */
39  public class RevokeQuery extends BaseGrantQuery<RevokeQuery>
40  {
41  
42    private DropQuery.Behavior _behavior;
43    
44    public RevokeQuery() {
45    }
46  
47    /** Sets the behavior for the revoke query */
48    public RevokeQuery setBehavior(DropQuery.Behavior newBehavior) {
49      _behavior = newBehavior;
50      return this;
51    }  
52  
53    @Override
54    protected void appendTo(AppendableExt app, SqlContext newContext)
55      throws IOException
56    {
57      newContext.setUseTableAliases(false);
58      
59      app.append("REVOKE ").append(_privileges).append(" ON ")
60        .append(_targetObj).append(" FROM ").append(_grantees);
61      if(_behavior != null) {
62        app.append(_behavior);
63      }
64    }
65  
66  }