]> git.argeo.org Git - lgpl/argeo-commons.git/blob - security/SimplePrincipal.java
Prepare next development cycle
[lgpl/argeo-commons.git] / security / SimplePrincipal.java
1 package org.argeo.util.security;
2
3 import java.security.Principal;
4
5 import org.argeo.ArgeoException;
6
7 /** Canonical implementation of a {@link Principal} */
8 public class SimplePrincipal implements Principal {
9 private final String name;
10
11 public SimplePrincipal(String name) {
12 if (name == null)
13 throw new ArgeoException("Principal name cannot be null");
14 this.name = name;
15 }
16
17 public String getName() {
18 return name;
19 }
20
21 @Override
22 public int hashCode() {
23 return name.hashCode();
24 }
25
26 @Override
27 public boolean equals(Object obj) {
28 if (obj == null)
29 return false;
30 return name.equals(obj.toString());
31 }
32
33 @Override
34 protected Object clone() throws CloneNotSupportedException {
35 return new SimplePrincipal(name);
36 }
37
38 @Override
39 public String toString() {
40 return name;
41 }
42
43 }