Project

General

Profile

1 1399 tao
/**
2
 *  '$RCSfile$'
3
 *    Purpose: A Class that represents an XML Text node and its contents,
4
 *             and can build itself from a database connection
5
 *  Copyright: 2000 Regents of the University of California and the
6
 *             National Center for Ecological Analysis and Synthesis
7
 *    Authors: Matt Jones
8
 *    Release: @release@
9
 *
10
 *   '$Author$'
11
 *     '$Date$'
12
 * '$Revision$'
13
 *
14
 * This program is free software; you can redistribute it and/or modify
15
 * it under the terms of the GNU General Public License as published by
16
 * the Free Software Foundation; either version 2 of the License, or
17
 * (at your option) any later version.
18
 *
19
 * This program is distributed in the hope that it will be useful,
20
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22
 * GNU General Public License for more details.
23
 *
24
 * You should have received a copy of the GNU General Public License
25
 * along with this program; if not, write to the Free Software
26
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
27
 */
28
29
package edu.ucsb.nceas.metacat;
30
31
import java.util.Vector;
32 2663 sgarg
import org.apache.log4j.Logger;
33 1399 tao
/**
34
 * A Class that represents an XML access rule. It include principal and
35
 * permission
36
 */
37
public class AccessRule
38
{
39 1402 tao
  private String permissionType = null;
40
  private Vector principal = new Vector();
41
  private int permission = 0;
42 2663 sgarg
  private Logger logMetacat = Logger.getLogger(AccessRule.class);
43 1402 tao
44
  /** Set the permssionType */
45
  public void setPermissionType(String type)
46
  {
47
    permissionType = type;
48
  }
49
50
  public String getPermissionType()
51
  {
52
     return permissionType;
53
  }
54
55
  /** Set the a principle */
56
  public void addPrincipal(String newPrincipal)
57
  {
58
    this.principal.addElement(newPrincipal);
59
  }
60 1399 tao
61 1402 tao
  /** Get the principle vector */
62
  public Vector getPrincipal()
63
  {
64
    return principal;
65
  }
66 1399 tao
67 1402 tao
  /**
68
   * Set a permission.
69
   */
70
  public void setPermission(int myPermission)
71
  {
72
    permission = myPermission;
73
  }
74 1399 tao
75 1402 tao
  /**
76
   * Get permission
77
   */
78
  public int getPermission()
79
  {
80
    return permission;
81
  }
82
83
  /**
84
   * Copy a AccessRule to another accessrule object
85
   */
86 1406 tao
  public Object clone()
87 1402 tao
  {
88
    // create a new object
89
    AccessRule newRule = new AccessRule();
90
    // set permissiontype
91 2663 sgarg
    logMetacat.info("copy permission type: "+
92 2588 sgarg
                              this.getPermissionType());
93 1406 tao
    newRule.setPermissionType(this.getPermissionType());
94 1402 tao
    // set permission
95 2663 sgarg
    logMetacat.info("copy permission: "+
96 2588 sgarg
                              this.getPermission());
97 1406 tao
    newRule.setPermission(this.getPermission());
98 1402 tao
    // walk through all the principals
99 1406 tao
    Vector principalVector = this.getPrincipal();
100 1402 tao
    for (int i=0; i<principalVector.size(); i++)
101 1399 tao
    {
102 1402 tao
      String name = (String)principalVector.elementAt(i);
103 2663 sgarg
      logMetacat.info("copy principle: "+ name);
104 1402 tao
      // Add this name to newrules
105
      newRule.addPrincipal(name);
106 1399 tao
    }
107 1402 tao
    return newRule;
108
  }
109
110 1406 tao
111 1402 tao
}//AccessRule