Group.java

  1. /*
  2.  * $Source$
  3.  * $Revision$
  4.  *
  5.  * Copyright (C) 2000 William Chesters
  6.  *
  7.  * Part of Melati (http://melati.org), a framework for the rapid
  8.  * development of clean, maintainable web applications.
  9.  *
  10.  * Melati is free software; Permission is granted to copy, distribute
  11.  * and/or modify this software under the terms either:
  12.  *
  13.  * a) the GNU General Public License as published by the Free Software
  14.  *    Foundation; either version 2 of the License, or (at your option)
  15.  *    any later version,
  16.  *
  17.  *    or
  18.  *
  19.  * b) any version of the Melati Software License, as published
  20.  *    at http://melati.org
  21.  *
  22.  * You should have received a copy of the GNU General Public License and
  23.  * the Melati Software License along with this program;
  24.  * if not, write to the Free Software Foundation, Inc.,
  25.  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA to obtain the
  26.  * GNU General Public License and visit http://melati.org to obtain the
  27.  * Melati Software License.
  28.  *
  29.  * Feel free to contact the Developers of Melati (http://melati.org),
  30.  * if you would like to work out a different arrangement than the options
  31.  * outlined here.  It is our intention to allow Melati to be used by as
  32.  * wide an audience as possible.
  33.  *
  34.  * This program is distributed in the hope that it will be useful,
  35.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  36.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  37.  * GNU General Public License for more details.
  38.  *
  39.  * Contact details for copyright holder:
  40.  *
  41.  *     William Chesters <williamc@paneris.org>
  42.  *     http://paneris.org/~williamc
  43.  *     Obrechtstraat 114, 2517VX Den Haag, The Netherlands
  44.  */

  45. package org.melati.poem;

  46. import org.melati.poem.generated.GroupBase;

  47. /**
  48.  * An authorisation grouping that a {@link User} can belong to.
  49.  *
  50.  * Melati POEM generated, programmer modifiable stub
  51.  * for a <code>Persistent</code> <code>Group</code> object.
  52.  *
  53.  * <p>
  54.  * Description:
  55.  *   A group to which registered users of the database can belong.
  56.  * </p>
  57.  *
  58.  * <table>
  59.  * <caption>
  60.  * Field summary for SQL table <code>Group</code>
  61.  * </caption>
  62.  * <tr><th>Name</th><th>Type</th><th>Description</th></tr>
  63.  * <tr><td> id </td><td> Integer </td><td> The Table Row Object ID </td></tr>
  64.  * <tr><td> name </td><td> String </td><td> A human-readable name for the
  65.  * group </td></tr>
  66.  * </table>
  67.  *
  68.  * See org.melati.poem.prepro.TableDef#generateMainJava
  69.  */
  70. public class Group extends GroupBase {

  71.  /**
  72.   * Constructor
  73.   * for a <code>Persistent</code> <code>Group</code> object.
  74.   * <p>
  75.   * Description:
  76.   *   A group to which registered users of the database can belong.
  77.   * </p>
  78.   *
  79.   * See org.melati.poem.prepro.TableDef#generateMainJava
  80.   */
  81.   public Group() {}

  82.   // programmer's domain-specific code here

  83.  /**
  84.   * Constructor
  85.   * for a <code>Persistent</code> <code>Group</code> object.
  86.   * <p>
  87.   * Description:
  88.   *   A group to which registered users of the database can belong.
  89.   * </p>
  90.   *
  91.   * @param name the name of the {@link Group} to create
  92.   */
  93.   public Group(String name) {
  94.     this.name = name;
  95.   }

  96.  /**
  97.   * Allow this object to be read by anyone.
  98.   *
  99.   * @param token any {@link AccessToken}
  100.   */
  101.   public void assertCanRead(AccessToken token) {}
  102.  
  103.   public GroupMembership ensureMember(User u) {
  104.     GroupMembershipTable<GroupMembership> gmt = getDatabase().getGroupMembershipTable();
  105.     return gmt.ensure(this, u);
  106.   }
  107. }