import java.util.Collection;
import java.util.Collections;
+import java.util.HashMap;
import java.util.HashSet;
+import java.util.Map;
import java.util.Set;
/**
private final String requestUri;
private final Set<String> contexts = new HashSet<>();
+ private final Map<String, String> properties = new HashMap<>();
/**
* Creates a new identity.
* @param requestUri
* The request URI of the identity
*/
- public Identity(String identifier, String nickname, String requestUri, Collection<String> contexts) {
+ public Identity(String identifier, String nickname, String requestUri, Collection<String> contexts, Map<String, String> properties) {
this.identifier = identifier;
this.nickname = nickname;
this.requestUri = requestUri;
this.contexts.addAll(contexts);
+ this.properties.putAll(properties);
}
/**
return Collections.unmodifiableSet(contexts);
}
+ public Map<String, String> getProperties() {
+ return Collections.unmodifiableMap(properties);
+ }
+
/**
* {@inheritDoc}
*/
package net.pterodactylus.fcp.plugin;
import java.util.Collection;
+import java.util.Map;
import java.util.StringJoiner;
/**
* @param insertUri
* The insert URI of the identity
*/
- public OwnIdentity(String identifier, String nickname, String requestUri, String insertUri, Collection<String> contexts) {
- super(identifier, nickname, requestUri, contexts);
+ public OwnIdentity(String identifier, String nickname, String requestUri, String insertUri, Collection<String> contexts, Map<String, String> properties) {
+ super(identifier, nickname, requestUri, contexts, properties);
this.insertUri = insertUri;
}
.add("requestUri='" + getRequestUri() + "'")
.add("insertUri='" + insertUri + "'")
.add("contexts='" + getContexts() + "'")
+ .add("properties='" + getProperties() + "'")
.toString();
}
import net.pterodactylus.fcp.highlevel.FcpClient;
import net.pterodactylus.fcp.highlevel.FcpException;
+import static java.util.Collections.emptyMap;
import static java.util.Collections.emptySet;
/**
String identifier = replies.get("ID");
String newRequestUri = replies.get("RequestURI");
String newInsertUri = replies.get("InsertURI");
- return new OwnIdentity(identifier, nickname, newRequestUri, newInsertUri, emptySet());
+ return new OwnIdentity(identifier, nickname, newRequestUri, newInsertUri, emptySet(), emptyMap());
}
/**
String nickname = replies.get("Nickname" + identityIndex);
String requestUri = replies.get("RequestURI" + identityIndex);
String insertUri = replies.get("InsertURI" + identityIndex);
- ownIdentities.add(new OwnIdentity(identity, nickname, requestUri, insertUri, emptySet()));
+ ownIdentities.add(new OwnIdentity(identity, nickname, requestUri, insertUri, emptySet(), emptyMap()));
}
return ownIdentities;
}
}
String identifier = replies.get("ID");
String nickname = replies.get("Nickname");
- return new Identity(identifier, nickname, requestUri, emptySet());
+ return new Identity(identifier, nickname, requestUri, emptySet(), emptyMap());
}
/**
String identifier = replies.get("Identity" + identityIndex);
String nickname = replies.get("Nickname" + identityIndex);
String requestUri = replies.get("RequestURI" + identityIndex);
- identities.add(new Identity(identifier, nickname, requestUri, emptySet()));
+ identities.add(new Identity(identifier, nickname, requestUri, emptySet(), emptyMap()));
}
return identities;
}
String requestUri = replies.get("RequestURI" + identityIndex);
byte trust = Byte.parseByte(replies.get("Value" + identityIndex));
String comment = replies.get("Comment" + identityIndex);
- identityTrusts.put(new Identity(identifier, nickname, requestUri, emptySet()), new IdentityTrust(trust, comment));
+ identityTrusts.put(new Identity(identifier, nickname, requestUri, emptySet(), emptyMap()), new IdentityTrust(trust, comment));
}
return identityTrusts;
}
String requestUri = replies.get("RequestURI" + identityIndex);
byte trust = Byte.parseByte(replies.get("Value" + identityIndex));
String comment = replies.get("Comment" + identityIndex);
- identityTrusts.put(new Identity(identifier, nickname, requestUri, emptySet()), new IdentityTrust(trust, comment));
+ identityTrusts.put(new Identity(identifier, nickname, requestUri, emptySet(), emptyMap()), new IdentityTrust(trust, comment));
}
return identityTrusts;
}
import org.hamcrest.Matcher;
import org.hamcrest.TypeSafeDiagnosingMatcher;
+import java.util.Map;
import java.util.Set;
public class IdentityMatchers {
};
}
+ public static Matcher<Identity> hasProperties(Matcher<? super Map<String, String>> propertiesMatcher) {
+ return new TypeSafeDiagnosingMatcher<Identity>() {
+ @Override
+ protected boolean matchesSafely(Identity identity, Description mismatchDescription) {
+ if (!propertiesMatcher.matches(identity.getProperties())) {
+ propertiesMatcher.describeMismatch(identity.getProperties(), mismatchDescription);
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public void describeTo(Description description) {
+ description.appendText("has properties ").appendValue(propertiesMatcher);
+ }
+ };
+ }
+
}