001    /*
002    * file CcAccessControlEntry.java
003    *
004    * Licensed Materials - Property of IBM
005    * Restricted Materials of IBM
006    * 
007    * com.ibm.rational.wvcm.stp.cc.CcAccessControlEntry
008    *
009    * (C) Copyright IBM Corporation 2012.  All Rights Reserved. 
010    * Note to U.S. Government Users Restricted Rights:  Use, duplication or  
011    * disclosure restricted by GSA ADP  Schedule Contract with IBM Corp. 
012    */
013    package com.ibm.rational.wvcm.stp.cc;
014    
015    import javax.wvcm.WvcmException;
016    
017    /**
018     * <p>
019     * An access control entry provides a triple of a role kind, identity and permission set
020     * as part of an effective ACL for a VOB resource.
021     * <p>
022     * This interface provides an aggregate object for handling such an entry.
023     * </p>
024     */
025    public interface CcAccessControlEntry {
026        
027        public enum PrincipalKind {
028            NONE("<id-kind-none>"),
029            USER("User"),
030            GROUP("Group"),
031            EVERYONE("Everyone"),
032            OWNER_USER("Owner-User"),
033            OWNER_GROUP("Owner-Group"),
034            ROLE("Role");
035            
036            private final String m_kind;
037    
038            PrincipalKind(String kind) {
039                m_kind = kind;
040            }
041    
042            public String toString() {
043                return m_kind;
044            }
045        }
046      
047        /**
048         * Get the kind of principal for which this entry applies.
049         */
050        public PrincipalKind getPrincipalKind();
051        
052        /**
053         * Get the principal name for the entry.  Includes domain name when applicable
054         */
055        public String getPrincipalName();
056        
057        /**
058         * Get the human readable permissions for this entry.
059         */
060        public String getPermissions() throws WvcmException;
061    
062    }