edu.ucsb.nceas.metacat
Class AccessControlList

java.lang.Object
  extended byorg.xml.sax.helpers.DefaultHandler
      extended byedu.ucsb.nceas.metacat.AccessControlList
All Implemented Interfaces:
AccessControlInterface, org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler

public class AccessControlList
extends org.xml.sax.helpers.DefaultHandler
implements AccessControlInterface

A Class that loads eml-access.xml file containing ACL for a metadata document into relational DB. It extends DefaultHandler class to handle SAX parsing events when processing the XML stream.


Field Summary
 
Fields inherited from interface edu.ucsb.nceas.metacat.AccessControlInterface
ACCESS, ACLID, ALL, ALLOW, ALLOWFIRST, ALLSTRING, CHMOD, CHMODSTRING, DENY, DENYFIRST, PERMISSION, PRINCIPAL, PUBLIC, READ, READSTRING, WRITE, WRITESTRING
 
Constructor Summary
AccessControlList(DBConnection conn)
          Construct an instance of the AccessControlList class.
AccessControlList(DBConnection conn, java.lang.String aclid, java.lang.String user, java.lang.String[] groups, int serverCode)
          Construct an instance of the AccessControlList class.
 
Method Summary
 void characters(char[] ch, int start, int length)
          Callback method used by the SAX Parser when the text sequences of an xml stream are detected.
 void endElement(java.lang.String uri, java.lang.String localName, java.lang.String qName)
          Callback method used by the SAX Parser when the end tag of an element is detected.
 void endEntity(java.lang.String name)
          SAX Handler that receives notification of the end of entities.
 java.lang.String getACL(java.lang.String docid, java.lang.String user, java.lang.String[] groups)
          Get Access Control List information for document from db connetion.
 java.lang.String getDocname()
          Get the document name.
static int intValue(java.lang.String permission)
           
 boolean processingDTD()
          Get the document processing state.
 void startDocument()
          Callback method used by the SAX Parser when beginning of the document
 void startDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId)
          SAX Handler that receives notification of DOCTYPE.
 void startElement(java.lang.String uri, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes atts)
          Callback method used by the SAX Parser when the start tag of an element is detected.
 void startEntity(java.lang.String name)
          SAX Handler that receives notification of the start of entities.
 
Methods inherited from class org.xml.sax.helpers.DefaultHandler
endDocument, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startPrefixMapping, unparsedEntityDecl, warning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AccessControlList

public AccessControlList(DBConnection conn)
                  throws java.sql.SQLException
Construct an instance of the AccessControlList class. It is used by the permission check up from DBQuery or DocumentImpl and from "getaccesscontrol" action

Parameters:
conn - the JDBC connection where acl info is get

AccessControlList

public AccessControlList(DBConnection conn,
                         java.lang.String aclid,
                         java.lang.String user,
                         java.lang.String[] groups,
                         int serverCode)
                  throws org.xml.sax.SAXException,
                         java.io.IOException,
                         McdbException
Construct an instance of the AccessControlList class. It parse acl file and loads acl data into db connection.

Parameters:
conn - the JDBC connection where acl data are loaded
aclid - the Accession# of the document with the acl data
user - the user connected to MetaCat servlet and owns the document
groups - the groups to which user belongs
serverCode - the serverid from xml_replication on which this document resides.
Method Detail

startDocument

public void startDocument()
                   throws org.xml.sax.SAXException
Callback method used by the SAX Parser when beginning of the document

Specified by:
startDocument in interface org.xml.sax.ContentHandler
Throws:
org.xml.sax.SAXException

startElement

public void startElement(java.lang.String uri,
                         java.lang.String localName,
                         java.lang.String qName,
                         org.xml.sax.Attributes atts)
                  throws org.xml.sax.SAXException
Callback method used by the SAX Parser when the start tag of an element is detected. Used in this context to parse and store the acl information in class variables.

Specified by:
startElement in interface org.xml.sax.ContentHandler
Throws:
org.xml.sax.SAXException

characters

public void characters(char[] ch,
                       int start,
                       int length)
                throws org.xml.sax.SAXException
Callback method used by the SAX Parser when the text sequences of an xml stream are detected. Used in this context to parse and store the acl information in class variables.

Specified by:
characters in interface org.xml.sax.ContentHandler
Throws:
org.xml.sax.SAXException

endElement

public void endElement(java.lang.String uri,
                       java.lang.String localName,
                       java.lang.String qName)
                throws org.xml.sax.SAXException
Callback method used by the SAX Parser when the end tag of an element is detected. Used in this context to parse and store the acl information in class variables.

Specified by:
endElement in interface org.xml.sax.ContentHandler
Throws:
org.xml.sax.SAXException

startDTD

public void startDTD(java.lang.String name,
                     java.lang.String publicId,
                     java.lang.String systemId)
              throws org.xml.sax.SAXException
SAX Handler that receives notification of DOCTYPE. Sets the DTD.

Parameters:
name - name of the DTD
publicId - Public Identifier of the DTD
systemId - System Identifier of the DTD
Throws:
org.xml.sax.SAXException

startEntity

public void startEntity(java.lang.String name)
                 throws org.xml.sax.SAXException
SAX Handler that receives notification of the start of entities.

Parameters:
name - name of the entity
Throws:
org.xml.sax.SAXException

endEntity

public void endEntity(java.lang.String name)
               throws org.xml.sax.SAXException
SAX Handler that receives notification of the end of entities.

Parameters:
name - name of the entity
Throws:
org.xml.sax.SAXException

getDocname

public java.lang.String getDocname()
Get the document name.


processingDTD

public boolean processingDTD()
Get the document processing state.


intValue

public static int intValue(java.lang.String permission)

getACL

public java.lang.String getACL(java.lang.String docid,
                               java.lang.String user,
                               java.lang.String[] groups)
                        throws java.sql.SQLException,
                               java.lang.Exception
Get Access Control List information for document from db connetion. User or Group should have permissions for reading access control information for a document specified by @docid.

Parameters:
docid - document identifier which acl info to get
user - name of user connected to Metacat system
groups - names of user's groups to which user belongs
Throws:
java.sql.SQLException
java.lang.Exception


Copyright © 2000 National Center for Ecological Analysis and Synthesis. All Rights Reserved.