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