package org.ultramine.permission; import org.ultramine.permission.internal.AbstractResolver; import org.ultramine.permission.internal.CheckResult; import org.ultramine.permission.internal.MetaResolver; public class DummyPermission implements IPermission { private String key; public DummyPermission(String key) { this.key = key.toLowerCase(); } @Override public String getKey() { return key; } @Override public CheckResult check(String key) { if (key == null) return CheckResult.UNRESOLVED; key = key.toLowerCase(); if (key.equals(getKey()) || "*".equals(getKey())) return CheckResult.TRUE; if (getKey().endsWith(".*")) { String base = getKey().substring(0, getKey().length() - 3); if (key.startsWith(base)) return CheckResult.TRUE; } return CheckResult.UNRESOLVED; } @Override public String getMeta(String key) { return ""; } @Override public void mergePermissionsTo(AbstractResolver<Boolean> resolver) { resolver.merge(getKey(), (Boolean)true, Integer.MAX_VALUE); } @Override public void mergeMetaTo(MetaResolver resolver) { } @Override public void subscribe(IDirtyListener listener) { } @Override public void unsubscribe(IDirtyListener listener) { } @Override public int hashCode() { return getKey().hashCode(); } @Override public boolean equals(Object obj) { if (obj instanceof IPermission) return getKey().equals(((IPermission)obj).getKey()); return super.equals(obj); } }