001    /*
002    @license.text@
003     */
004    package biz.hammurapi.authorization;
005    
006    import java.security.AccessControlException;
007    
008    /**
009     * Interface for authorization checks.
010     * @author Pavel Vlasov
011     * @revision $Revision$
012     */
013    public interface AuthorizationProvider {
014    
015            /**
016             * @param clazz
017             * @param action
018             * @return
019             */
020            boolean hasClassPermission(Class clazz, String action);
021    
022            /**
023             * @param clazz
024             * @param action
025             */
026            void checkClassPermission(Class clazz, String action) throws AccessControlException;
027    
028            /**
029             * @param instance
030             * @param action
031             * @return
032             */
033            boolean hasInstancePermission(Object instance, String action);
034    
035            /**
036             * @param instance
037             * @param action
038             */
039            void checkInstancePermission(Object instance, String action) throws AccessControlException;
040    
041            /**
042             * @param className
043             * @param action
044             * @return
045             */
046            boolean hasClassPermission(String className, String action);
047            
048            /**
049             * @param role Role.
050             * @return True if the provider is in specified role.
051             */
052            boolean isInRole(Object role);
053                    
054    }