import java.util.Comparator;
import java.util.List;
import java.util.Set;
+import java.util.logging.Level;
+import java.util.logging.Logger;
-import net.pterodactylus.util.collection.Default;
+import net.pterodactylus.util.logging.Logging;
+import net.pterodactylus.util.object.Default;
import net.pterodactylus.wotns.freenet.wot.Identity;
import net.pterodactylus.wotns.freenet.wot.IdentityManager;
import net.pterodactylus.wotns.freenet.wot.OwnIdentity;
*/
public class Resolver {
+ private static final Logger logger = Logging.getLogger(Resolver.class);
+
private final IdentityManager identityManager;
- private OwnIdentity ownIdentity;
+ private String ownIdentityId;
public Resolver(IdentityManager identityManager) {
this.identityManager = identityManager;
}
- public void setOwnIdentity(OwnIdentity ownIdentity) {
- this.ownIdentity = ownIdentity;
+ public String getOwnIdentityId() {
+ return ownIdentityId;
+ }
+
+ public void setOwnIdentityId(String ownIdentityId) {
+ this.ownIdentityId = ownIdentityId;
}
//
identityName = shortName.substring(0, atSign);
keyStart = shortName.substring(atSign + 1);
}
- @SuppressWarnings("hiding")
final OwnIdentity ownIdentity;
- if (this.ownIdentity == null) {
+ if ((this.ownIdentityId != null) && (identityManager.getOwnIdentity(this.ownIdentityId) != null)) {
+ ownIdentity = identityManager.getOwnIdentity(this.ownIdentityId);
+ } else if (this.ownIdentityId == null) {
Set<OwnIdentity> ownIdentities = identityManager.getAllOwnIdentities();
if (!ownIdentities.isEmpty()) {
ownIdentity = ownIdentities.iterator().next();
ownIdentity = null;
}
} else {
- ownIdentity = this.ownIdentity;
+ logger.log(Level.SEVERE, "Can not resolve “" + shortName + "” without a Web of Trust Identity!");
+ ownIdentity = null;
}
if (ownIdentity == null) {
return null;
}
System.out.println("using own identity " + ownIdentity + " to resolve " + shortName);
- Set<Identity> trustedIdentities = Default.forNull(identityManager.getTrustedIdentities(ownIdentity), Collections.<Identity>emptySet());
+ Set<Identity> trustedIdentities = Default.forNull(identityManager.getTrustedIdentities(ownIdentity), Collections.<Identity> emptySet());
List<Identity> matchingIdentities = new ArrayList<Identity>();
System.out.println("checking " + trustedIdentities);
for (Identity identity : trustedIdentities) {