package org.infinispan.server.core.security.simple; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; import org.infinispan.commons.marshall.SerializeWith; import org.infinispan.server.core.security.UserPrincipal; /** * SimpleUserPrincipal. * * @author Tristan Tarrant * @since 7.0 */ @SerializeWith(SimpleUserPrincipal.Externalizer.class) public final class SimpleUserPrincipal implements UserPrincipal { private final String name; public SimpleUserPrincipal(final String name) { if (name == null) { throw new IllegalArgumentException("name is null"); } this.name = name; } @Override public String getName() { return name; } @Override public int hashCode() { return name.hashCode(); } @Override public boolean equals(Object other) { return other instanceof SimpleUserPrincipal && equals((SimpleUserPrincipal) other); } public boolean equals(SimpleUserPrincipal other) { return this == other || other != null && name.equals(other.name); } @Override public String toString() { return "SimpleUserPrincipal [name=" + name + "]"; } public static class Externalizer implements org.infinispan.commons.marshall.Externalizer<SimpleUserPrincipal> { @Override public void writeObject(ObjectOutput output, SimpleUserPrincipal object) throws IOException { output.writeUTF(object.name); } @Override public SimpleUserPrincipal readObject(ObjectInput input) throws IOException, ClassNotFoundException { return new SimpleUserPrincipal(input.readUTF()); } } }