001/**
002 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
003 *
004 * Copyright (c) 2006 Sun Microsystems Inc. All Rights Reserved
005 *
006 * The contents of this file are subject to the terms
007 * of the Common Development and Distribution License
008 * (the License). You may not use this file except in
009 * compliance with the License.
010 *
011 * You can obtain a copy of the License at
012 * https://opensso.dev.java.net/public/CDDLv1.0.html or
013 * opensso/legal/CDDLv1.0.txt
014 * See the License for the specific language governing
015 * permission and limitations under the License.
016 *
017 * When distributing Covered Code, include this CDDL
018 * Header Notice in each file and include the License file
019 * at opensso/legal/CDDLv1.0.txt.
020 * If applicable, add the following below the CDDL Header,
021 * with the fields enclosed by brackets [] replaced by
022 * your own identifying information:
023 * "Portions Copyrighted [year] [name of copyright owner]"
024 *
025 * $Id: ProtectedResource.java,v 1.2 2008/06/25 05:43:44 qcheng Exp $
026 *
027 */
028
029
030
031package com.sun.identity.policy;
032import java.util.Set;
033
034/**
035 * Class that encapsulates a resource and policies protecting the resource
036 * for a given user
037 *
038 * @supported.all.api
039 */
040public class ProtectedResource {
041
042    private String resourceName;
043    private Set policies;
044
045    /**
046     * Constructs a <code>ProtectedResource</code> based on 
047     * the given resource name and protecting policies
048     * @param resourceName the resource that is protected
049     * @param policies set of policies that protect
050     *        the resource. The set contains Policy objects.
051     */
052    ProtectedResource(String resourceName, Set policies) {
053        this.resourceName = resourceName;
054        this.policies = policies;
055    }
056
057    /**
058     * Sets the protected resource name
059     * @param resourceName protected resource name
060     */
061    void setResourceName(String resourceName) {
062        this.resourceName = resourceName;
063    }
064
065    /**
066     * Gets the protected resource name 
067     * @return protected resource name
068     */
069    public String getResourceName() {
070        return resourceName;
071    }
072
073    /**
074     * Sets policies that protect the resource name
075     * @param policies set of policies that protect the resource.
076     *       The set contains Policy objects.
077     */
078    void setPolicies(Set policies) {
079        this.policies = policies;
080    }
081
082    /**
083     * Gets policies that protect the resource name
084     * @return set of policies that protect the resource.
085     *       The set contains Policy objects.
086     */
087    public Set getPolicies() {
088        return policies;
089    }
090}