/*
* Copyright 2010 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Portions copyright 2006-2009 James Murty. Please see LICENSE.txt
* for applicable license terms and NOTICE.txt for applicable notices.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file 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 com.amazonaws.services.s3.model;
/**
* Specifies a grant, consisting of one grantee and one permission.
*
* @see Grant#Grant(Grantee, Permission)
*/
public class Grant {
private Grantee grantee = null;
private Permission permission = null;
/**
* Constructs a new {@link Grant} object using the specified grantee and permission
* objects.
*
* @param grantee
* The grantee being granted a permission by this grant.
* @param permission
* The permission being granted to the grantee by this grant.
*/
public Grant(Grantee grantee, Permission permission) {
this.grantee = grantee;
this.permission = permission;
}
/**
* Gets the grantee being granted a permission by this grant.
*
* @return The grantee being granted a permission by this grant.
*
* @see Grant#getPermission()
*/
public Grantee getGrantee() {
return grantee;
}
/**
* Gets the permission being granted to the grantee by this grant.
*
* @return The permission being granted to the grantee by this grant.
*
* @see Grant#getGrantee()
*/
public Permission getPermission() {
return permission;
}
public int hashCode() {
return (grantee + ":" + permission.toString()).hashCode();
}
public boolean equals(Object obj) {
return (obj instanceof Grant
&& this.getGrantee().getIdentifier().equals(((Grant)obj).getGrantee().getIdentifier())
&& this.getPermission().equals(((Grant)obj).getPermission())
);
}
}