content: /**
   * Licensed to the Apache Software Foundation (ASF) under one or more
   * contributor license agreements.  See the NOTICE file distributed with
   * this work for additional information regarding copyright ownership.
   * The ASF licenses this file to You under the Apache License, Version 2.0
   * (the "License"); you may not use this file except in compliance with
   * the License.  You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  package org.apache.activemq.security;
  
  import java.util.Set;
  
  import org.apache.activemq.command.ActiveMQDestination;
  import org.apache.activemq.filter.DestinationMap;
  
  /**
   * An AuthorizationMap which is configured with individual DestinationMaps for
   * each operation.
   * 
   * @org.apache.xbean.XBean
   * 
   * 
   */
  public class SimpleAuthorizationMap implements AuthorizationMap {
  
      private DestinationMap writeACLs;
      private DestinationMap readACLs;
      private DestinationMap adminACLs;
  
      private TempDestinationAuthorizationEntry tempDestinationAuthorizationEntry;
  
      public SimpleAuthorizationMap() {
      }
  
      public SimpleAuthorizationMap(DestinationMap writeACLs, DestinationMap readACLs, DestinationMap adminACLs) {
          this.writeACLs = writeACLs;
          this.readACLs = readACLs;
          this.adminACLs = adminACLs;
      }
  
      /*
       * Need to think how to retrieve the ACLs for temporary destinations since
       * they are not map to a specific destination. For now we'll just retrieve
       * it from a TempDestinationAuthorizationEntry same way as the
       * DefaultAuthorizationMap. The ACLs retrieved here will be map to all temp
       * destinations
       */
  
      public void setTempDestinationAuthorizationEntry(
                                                       TempDestinationAuthorizationEntry tempDestinationAuthorizationEntry) {
          this.tempDestinationAuthorizationEntry = tempDestinationAuthorizationEntry;
      }
  
      public TempDestinationAuthorizationEntry getTempDestinationAuthorizationEntry() {
          return this.tempDestinationAuthorizationEntry;
      }
  
      public Set<Object> getTempDestinationAdminACLs() {
          if (tempDestinationAuthorizationEntry != null) {
              return tempDestinationAuthorizationEntry.getAdminACLs();
          } else {
              return null;
          }
      }
  
      public Set<Object> getTempDestinationReadACLs() {
          if (tempDestinationAuthorizationEntry != null) {
              return tempDestinationAuthorizationEntry.getReadACLs();
          } else {
              return null;
          }
      }
  
      public Set<Object> getTempDestinationWriteACLs() {
          if (tempDestinationAuthorizationEntry != null) {
              return tempDestinationAuthorizationEntry.getWriteACLs();
          } else {
              return null;
          }
      }
  
      @SuppressWarnings("unchecked")
      public Set<Object> getAdminACLs(ActiveMQDestination destination) {
          return adminACLs.get(destination);
      }
  
      @SuppressWarnings("unchecked")
      public Set<Object> getReadACLs(ActiveMQDestination destination) {
          return readACLs.get(destination);
      }
  
      @SuppressWarnings("unchecked")
      public Set<Object> getWriteACLs(ActiveMQDestination destination) {
          return writeACLs.get(destination);
      }
  
      public DestinationMap getAdminACLs() {
          return adminACLs;
      }
  
      public void setAdminACLs(DestinationMap adminACLs) {
          this.adminACLs = adminACLs;
      }
  
      public DestinationMap getReadACLs() {
          return readACLs;
      }
  
      public void setReadACLs(DestinationMap readACLs) {
          this.readACLs = readACLs;
      }
  
      public DestinationMap getWriteACLs() {
          return writeACLs;
      }
  
      public void setWriteACLs(DestinationMap writeACLs) {
          this.writeACLs = writeACLs;
      }
  
  }
  