/** * Get set of all keys in linked role. * * @return set of public keys (see {@link PublicKey}) */ @Override @Deprecated public Set<PublicKey> getKeys() { final Role role = resolve(); return (role == null) ? null : role.getKeys(); }
/** * If this role has public keys, they will be replaced with {@link AnonymousId}. */ @Override public void anonymize() { final Role role = resolve(); if (role != null) role.anonymize(); }
/** * Get set of all key records in linked role. * * @return set of key records (see {@link KeyRecord}) */ @Override @Deprecated public Set<KeyRecord> getKeyRecords() { return resolve().getKeyRecords(); }
/** * Get set of all anonymous identifiers in linked role. * * @return set of anonymous identifiers (see {@link AnonymousId}) */ @Override @Deprecated public Set<AnonymousId> getAnonymousIds() { final Role role = resolve(); return (role == null) ? null : role.getAnonymousIds(); }
/** * Get set of all key addresses in linked role. * * @return set of key addresses (see {@link KeyAddress}) */ @Override @Deprecated public Set<KeyAddress> getKeyAddresses() { final Role role = resolve(); return (role == null) ? null : role.getKeyAddresses(); }
/** * Check validity of role * * @return true if role is valid */ @Override public boolean isValid() { final Role role = resolve(); return (role == null) ? false : role.isValid(); }
/** * Check role is allowed to keys * * @param keys is set of keys * @return true if role is allowed to keys */ @Override public boolean isAllowedForKeys(Set<? extends AbstractKey> keys) { if(!super.isAllowedForKeys(keys)) return false; final Role role = resolve(); return (role == null) ? false : role.isAllowedForKeys(keys); }
@Test public void resolve() throws Exception { Contract c = new Contract(); SimpleRole s1 = new SimpleRole("owner"); c.registerRole(s1); RoleLink r1 = new RoleLink("lover", "owner"); c.registerRole(r1); RoleLink r2 = r1.linkAs("mucker"); assertSame(s1, s1.resolve()); assertSame(s1, r1.resolve()); assertSame(s1, r2.resolve()); }
@Test public void detectsCirculars() throws Exception { Contract c = new Contract(); RoleLink r1 = new RoleLink("bar", "foo"); RoleLink r2 = new RoleLink("foo", "bar"); c.registerRole(r1); c.registerRole(r2); assertNull(r2.resolve()); }