/FileExtraction/Java_unseen/Wind-Development_WindSpigot/WindSpigot-API/src/main/java/org/bukkit/permissions/PermissionAttachmentInfo.java
package org.bukkit.permissions;

/**
 * Holds information on a permission and which {@link PermissionAttachment}
 * provides it
 */
public class PermissionAttachmentInfo {
	private final Permissible permissible;
	private final String permission;
	private final PermissionAttachment attachment;
	private final boolean value;

	public PermissionAttachmentInfo(Permissible permissible, String permission, PermissionAttachment attachment,
			boolean value) {
		if (permissible == null) {
			throw new IllegalArgumentException("Permissible may not be null");
		} else if (permission == null) {
			throw new IllegalArgumentException("Permissions may not be null");
		}

		this.permissible = permissible;
		this.permission = permission;
		this.attachment = attachment;
		this.value = value;
	}

	/**
	 * Gets the permissible this is attached to
	 *
	 * @return Permissible this permission is for
	 */
	public Permissible getPermissible() {
		return permissible;
	}

	/**
	 * Gets the permission being set
	 *
	 * @return Name of the permission
	 */
	public String getPermission() {
		return permission;
	}

	/**
	 * Gets the attachment providing this permission. This may be null for default
	 * permissions (usually parent permissions).
	 *
	 * @return Attachment
	 */
	public PermissionAttachment getAttachment() {
		return attachment;
	}

	/**
	 * Gets the value of this permission
	 *
	 * @return Value of the permission
	 */
	public boolean getValue() {
		return value;
	}
}
