View Javadoc

1   package org.apache.turbine.services.security.torque;
2   
3   /*
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *   http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
20   */
21  
22  import org.apache.torque.om.Persistent;
23  
24  import org.apache.turbine.om.security.Permission;
25  import org.apache.turbine.services.security.TurbineSecurity;
26  import org.apache.turbine.util.security.TurbineSecurityException;
27  
28  /***
29   * This class represents a permission given to a Role associated with the
30   * current Session. It is separated from the actual Torque peer object
31   * to be able to replace the Peer with an user supplied Peer (and Object)
32   *
33   * @author <a href="mailto:frank.kim@clearink.com">Frank Y. Kim</a>
34   * @author <a href="mailto:jmcnally@collab.net">John D. McNally</a>
35   * @author <a href="mailto:bmclaugh@algx.net">Brett McLaughlin</a>
36   * @author <a href="mailto:mpoeschl@marmot.at">Martin Poeschl</a>
37   * @author <a href="mailto:hps@intermeta.de">Henning P. Schmiedehausen</a>
38   * @version $Id: TorquePermission.java 534527 2007-05-02 16:10:59Z tv $
39   */
40  
41  public class TorquePermission
42      extends TorqueObject
43      implements Permission,
44                 Comparable
45  {
46  
47  	private static final long serialVersionUID = -5524685597021445523L;
48  
49      /***
50       * Constructs a Permission
51       */
52      public TorquePermission()
53      {
54        super();
55      }
56  
57      /***
58       * Constructs a new Permission with the sepcified name.
59       *
60       * @param name The name of the new object.
61       */
62      public TorquePermission(String name)
63      {
64          super(name);
65      }
66  
67      /***
68       * The package private Constructor is used when the PermissionPeerManager
69       * has retrieved a list of Database Objects from the peer and
70       * must 'wrap' them into TorquePermission Objects.
71       * You should not use it directly!
72       *
73       * @param obj An Object from the peer
74       */
75  
76      public TorquePermission(Persistent obj)
77      {
78          super(obj);
79      }
80  
81      /***
82       * Returns the underlying Object for the Peer
83       *
84       * Used in the PermissionPeerManager when building a new Criteria.
85       *
86       * @return The underlying Persistent Object
87       *
88       */
89  
90      public Persistent getPersistentObj()
91      {
92          if (obj == null)
93          {
94              obj = PermissionPeerManager.newPersistentInstance();
95          }
96          return obj;
97      }
98  
99      /***
100      * Returns the name of this object.
101      *
102      * @return The name of the object.
103      */
104     public String getName()
105     {
106         return PermissionPeerManager.getPermissionName(getPersistentObj());
107     }
108 
109     /***
110      * Sets the name of this object.
111      *
112      * @param name The name of the object.
113      */
114     public void setName(String name)
115     {
116         PermissionPeerManager.setPermissionName(getPersistentObj(), name);
117     }
118 
119     /***
120      * Gets the Id of this object
121      *
122      * @return The Id of the object
123      */
124     public int getId()
125     {
126         return PermissionPeerManager.getIdAsObj(getPersistentObj()).intValue();
127     }
128 
129     /***
130      * Gets the Id of this object
131      *
132      * @return The Id of the object
133      */
134     public Integer getIdAsObj()
135     {
136         return PermissionPeerManager.getIdAsObj(getPersistentObj());
137     }
138 
139     /***
140      * Sets the Id of this object
141      *
142      * @param id The new Id
143      */
144     public void setId(int id)
145     {
146         PermissionPeerManager.setId(getPersistentObj(), id);
147     }
148 
149     /***
150      * Creates a new Permission in the system.
151      *
152      * @param name The name of the new Permission.
153      * @return An object representing the new Permission.
154      * @throws TurbineSecurityException if the Permission could not be created.
155      * @deprecated Please use the createPermission method in TurbineSecurity.
156      */
157     public static Permission create(String name)
158         throws TurbineSecurityException
159     {
160         return TurbineSecurity.createPermission(name);
161     }
162 
163     /***
164      * Makes changes made to the Permission attributes permanent.
165      *
166      * @throws TurbineSecurityException if there is a problem while
167      *  saving data.
168      */
169     public void save()
170         throws TurbineSecurityException
171     {
172         TurbineSecurity.savePermission(this);
173     }
174 
175     /***
176      * Removes a permission from the system.
177      *
178      * @throws TurbineSecurityException if the Permission could not be removed.
179      */
180     public void remove()
181         throws TurbineSecurityException
182     {
183         TurbineSecurity.removePermission(this);
184     }
185 
186     /***
187      * Renames the permission.
188      *
189      * @param name The new Permission name.
190      * @throws TurbineSecurityException if the Permission could not be renamed.
191      */
192     public void rename(String name)
193         throws TurbineSecurityException
194     {
195         TurbineSecurity.renamePermission(this, name);
196     }
197 }
198 
199 
200