2 * Sone - Identity.java - Copyright © 2010–2020 David Roden
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 package net.pterodactylus.sone.freenet.wot;
24 * Interface for web of trust identities, defining all functions that can be
25 * performed on an identity. An identity is only a container for identity data
26 * and will not perform any updating in the WebOfTrust plugin itself.
28 public interface Identity {
31 * Returns the ID of the identity.
33 * @return The ID of the identity
35 public String getId();
38 * Returns the nickname of the identity.
40 * @return The nickname of the identity
42 public String getNickname();
45 * Returns the request URI of the identity.
47 * @return The request URI of the identity
49 public String getRequestUri();
52 * Returns all contexts of this identity.
54 * @return All contexts of this identity
56 public Set<String> getContexts();
59 * Returns whether this identity has the given context.
62 * The context to check for
63 * @return {@code true} if this identity has the given context,
64 * {@code false} otherwise
66 public boolean hasContext(String context);
69 * Adds the given context to this identity.
74 public Identity addContext(String context);
77 * Sets all contexts of this identity.
80 * All contexts of the identity
82 public void setContexts(Set<String> contexts);
85 * Removes the given context from this identity.
88 * The context to remove
90 public Identity removeContext(String context);
93 * Returns all properties of this identity.
95 * @return All properties of this identity
97 public Map<String, String> getProperties();
100 * Returns the value of the property with the given name.
103 * The name of the property
104 * @return The value of the property
106 public String getProperty(String name);
109 * Sets the property with the given name to the given value.
112 * The name of the property
114 * The value of the property
116 public Identity setProperty(String name, String value);
119 * Sets all properties of this identity.
122 * The new properties of this identity
124 public void setProperties(Map<String, String> properties);
127 * Removes the property with the given name.
130 * The name of the property to remove
132 public Identity removeProperty(String name);
134 Map<OwnIdentity, Trust> getTrust();
137 * Retrieves the trust that this identity receives from the given own
138 * identity. If this identity is not in the own identity’s trust tree, a
139 * {@link Trust} is returned that has all its elements set to {@code null}.
140 * If the trust can not be retrieved, {@code null} is returned.
143 * The own identity to get the trust for
144 * @return The trust assigned to this identity, or {@code null} if the trust
145 * could not be retrieved
147 public Trust getTrust(OwnIdentity ownIdentity);
150 * Sets the trust given by an own identity to this identity.
153 * The own identity that gave trust to this identity
155 * The trust given by the given own identity
157 public Identity setTrust(OwnIdentity ownIdentity, Trust trust);
160 * Removes trust assignment from the given own identity for this identity.
163 * The own identity that removed the trust assignment for this
166 public Identity removeTrust(OwnIdentity ownIdentity);