|
Packit |
5e46da |
/*
|
|
Packit |
5e46da |
* This file is part of libbluray
|
|
Packit |
5e46da |
* Copyright (C) 2010 William Hahne
|
|
Packit |
5e46da |
*
|
|
Packit |
5e46da |
* This library is free software; you can redistribute it and/or
|
|
Packit |
5e46da |
* modify it under the terms of the GNU Lesser General Public
|
|
Packit |
5e46da |
* License as published by the Free Software Foundation; either
|
|
Packit |
5e46da |
* version 2.1 of the License, or (at your option) any later version.
|
|
Packit |
5e46da |
*
|
|
Packit |
5e46da |
* This library is distributed in the hope that it will be useful,
|
|
Packit |
5e46da |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit |
5e46da |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit |
5e46da |
* Lesser General Public License for more details.
|
|
Packit |
5e46da |
*
|
|
Packit |
5e46da |
* You should have received a copy of the GNU Lesser General Public
|
|
Packit |
5e46da |
* License along with this library. If not, see
|
|
Packit |
5e46da |
* <http://www.gnu.org/licenses/>.
|
|
Packit |
5e46da |
*/
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
package javax.tv.service.selection;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
import java.security.Permission;
|
|
Packit |
5e46da |
import javax.tv.locator.Locator;
|
|
Packit |
5e46da |
import java.io.Serializable;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
public final class SelectPermission extends Permission implements Serializable {
|
|
Packit |
5e46da |
public SelectPermission(Locator locator, String actions) {
|
|
Packit |
5e46da |
super(locator == null ? "*" : locator.toExternalForm());
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
if (actions == null)
|
|
Packit |
5e46da |
throw new NullPointerException();
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
this.locator = locator == null ? "*" : locator.toExternalForm();
|
|
Packit |
5e46da |
this.actions = actions;
|
|
Packit |
5e46da |
}
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
public SelectPermission(String locator, String actions) {
|
|
Packit |
5e46da |
super(locator == null ? "*" : locator);
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
if (actions == null)
|
|
Packit |
5e46da |
throw new NullPointerException();
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
this.locator = locator == null ? "*" : locator;
|
|
Packit |
5e46da |
this.actions = actions;
|
|
Packit |
5e46da |
}
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
public boolean implies(Permission perm) {
|
|
Packit |
5e46da |
if (!(perm instanceof SelectPermission))
|
|
Packit |
5e46da |
return false;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
SelectPermission sperm = (SelectPermission) perm;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
if (!sperm.actions.equals(actions) && !actions.equals("*"))
|
|
Packit |
5e46da |
return false;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
if (!sperm.locator.equals(locator) && !locator.equals("*"))
|
|
Packit |
5e46da |
return false;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
return true;
|
|
Packit |
5e46da |
}
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
public boolean equals(Object obj) {
|
|
Packit |
5e46da |
if (!(obj instanceof SelectPermission))
|
|
Packit |
5e46da |
return false;
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
SelectPermission other = (SelectPermission) obj;
|
|
Packit |
5e46da |
if (!actions.equals(other.actions))
|
|
Packit |
5e46da |
return false;
|
|
Packit |
5e46da |
if (!locator.equals(other.locator))
|
|
Packit |
5e46da |
return false;
|
|
Packit |
5e46da |
return true;
|
|
Packit |
5e46da |
}
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
public int hashCode() {
|
|
Packit |
5e46da |
final int prime = 31;
|
|
Packit |
5e46da |
int result = 1;
|
|
Packit |
5e46da |
result = prime * result + ((actions == null) ? 0 : actions.hashCode());
|
|
Packit |
5e46da |
result = prime * result + ((locator == null) ? 0 : locator.hashCode());
|
|
Packit |
5e46da |
return result;
|
|
Packit |
5e46da |
}
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
public String getActions() {
|
|
Packit |
5e46da |
return actions;
|
|
Packit |
5e46da |
}
|
|
Packit |
5e46da |
|
|
Packit |
5e46da |
private String actions;
|
|
Packit |
5e46da |
private String locator;
|
|
Packit |
5e46da |
private static final long serialVersionUID = 3418810478648506665L;
|
|
Packit |
5e46da |
}
|