001    /*
002     * Copyright 2002-2005 the original author or authors.
003     * 
004     * Licensed under the Apache License, Version 2.0 (the "License"); you may not
005     * use this file except in compliance with the License. You may obtain a copy of
006     * the License at
007     * 
008     * http://www.apache.org/licenses/LICENSE-2.0
009     * 
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
012     * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
013     * License for the specific language governing permissions and limitations under
014     * the License.
015     */
016    package org.springframework.richclient.core;
017    
018    import org.springframework.richclient.security.SecurityController;
019    
020    /**
021     * Interface implemented by objects whose authorized state can be controlled by a 
022     * {@link SecurityController}. Any object that implements this interface and is processed by
023     * {@link org.springframework.richclient.application.config.ApplicationObjectConfigurer#configure(Object, String)}
024     * will be linked to the security controller with the id returned by
025     * {@link #getSecurityControllerId()}
026     * 
027     * @author Larry Streepy
028     * @see org.springframework.richclient.security.SecurityController
029     * @see org.springframework.richclient.application.config.ApplicationObjectConfigurer#configure(Object, String)
030     */
031    public interface SecurityControllable extends Authorizable {
032    
033        /**
034         * Set the Id of the security controller that should manage this object.
035         * @param controllerId Id (bean name) of the security controller
036         */
037        public void setSecurityControllerId(String controllerId);
038    
039        /**
040         * Get the id (bean name) of the security controller that should manage this object.
041         * @return controller id
042         */
043        public String getSecurityControllerId();
044        
045    }