1 package org.apache.archiva.redback.rbac; 2 3 /* 4 * Copyright 2001-2006 The Apache Software Foundation. 5 * 6 * Licensed under the Apache License, Version 2.0 (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 */ 18 19 /** 20 * Permission 21 * <p/> 22 * A permission is the wrapper for an operation and a resource effectively saying 23 * that the operation is authorized for that resource. 24 * <p/> 25 * P(Operation, Resource) 26 * 27 * @author Jesse McConnell <jmcconnell@apache.org> 28 * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a> 29 * 30 */ 31 public interface Permission 32 { 33 34 /** 35 * Long description of the Permission 36 */ 37 String getDescription(); 38 39 /** 40 * Get the short name of the permission. 41 * <p/> 42 * NOTE: This field is considered the Primary Key for this object. 43 * 44 * @return the short name for this permission. 45 */ 46 String getName(); 47 48 /** 49 * Operation that this permission is authorizing 50 */ 51 Operation getOperation(); 52 53 /** 54 * This is the resource associated with this permission. 55 * <p/> 56 * Implementors must always supply a Resource. 57 * 58 * @return the Resource. 59 */ 60 Resource getResource(); 61 62 /** 63 * Set null 64 * 65 * @param description 66 */ 67 void setDescription( String description ); 68 69 /** 70 * Set the short name for this permission. 71 * 72 * @param name 73 */ 74 void setName( String name ); 75 76 /** 77 * Set null 78 * 79 * @param operation 80 */ 81 void setOperation( Operation operation ); 82 83 /** 84 * @param resource 85 */ 86 void setResource( Resource resource ); 87 88 /** 89 * Test to see if the object is a permanent object or not. 90 * 91 * @return true if the object is permanent. 92 */ 93 boolean isPermanent(); 94 95 /** 96 * Set flag indicating if the object is a permanent object or not. 97 * 98 * @param permanent true if the object is permanent. 99 */ 100 void setPermanent( boolean permanent ); 101 }