// Path: authrite-service/src/main/java/com/lewisd/authrite/resources/model/User.java
// public class User implements Principal {
// 
//     private final UUID id;
//     @NotEmpty
//     @Email(regexp = ".+@.+\\..+")
//     private final String email;
//     @NotEmpty
//     @Length(min = 3, max = 20)
//     private final String displayName;
// 
//     private final Set<Roles> roles;
// 
//     @JsonCreator
//     public User(@JsonProperty("id") final UUID id,
//                 @JsonProperty("email") final String email,
//                 @JsonProperty("displayName") final String displayName,
//                 @JsonProperty("roles") final Set<Roles> roles) {
//         this.id = id;
//         this.email = email;
//         this.displayName = displayName;
//         this.roles = roles == null ? Collections.emptySet() : new HashSet<>(roles);
//     }
// 
//     public UUID getId() {
//         return id;
//     }
// 
//     public String getEmail() {
//         return email;
//     }
// 
//     public String getDisplayName() {
//         return displayName;
//     }
// 
//     public Set<Roles> getRoles() {
//         return roles;
//     }
// 
//     public static User fromDB(final DBUser user) {
//         return new User(
//                 user.getId(),
//                 user.getEmail(),
//                 user.getDisplayName(),
//                 user.getRoles());
//     }
// 
//     @JsonIgnore
//     @Override
//     public String getName() {
//         return email;
//     }
// 
//     @Override
//     public boolean implies(final Subject subject) {
//         return false;
//     }
// 
//     public boolean canRead(final Class<?> resourceClass, final UUID userId) {
//         for (Roles role : roles) {
//             if (role.canRead(resourceClass, this, userId)) {
//                 return true;
//             }
//         }
//         return false;
//     }
// 
//     public boolean canModify(final Class<?> resourceClass, final UUID userId) {
//         for (Roles role : roles) {
//             if (role.canWrite(resourceClass, this, userId)) {
//                 return true;
//             }
//         }
//         return false;
//     }
// 
//     @JsonIgnore
//     public boolean isAdminForReading() {
//         return roles.contains(Roles.ADMIN) || roles.contains(Roles.RO_ADMIN);
//     }
// }


import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.lewisd.authrite.resources.model.User;
import javax.validation.Valid;
package com.lewisd.authrite.resources.requests;



public class UpdateUserRequest {

    @Valid
// Path: authrite-service/src/main/java/com/lewisd/authrite/resources/model/User.java
// public class User implements Principal {
// 
//     private final UUID id;
//     @NotEmpty
//     @Email(regexp = ".+@.+\\..+")
//     private final String email;
//     @NotEmpty
//     @Length(min = 3, max = 20)
//     private final String displayName;
// 
//     private final Set<Roles> roles;
// 
//     @JsonCreator
//     public User(@JsonProperty("id") final UUID id,
//                 @JsonProperty("email") final String email,
//                 @JsonProperty("displayName") final String displayName,
//                 @JsonProperty("roles") final Set<Roles> roles) {
//         this.id = id;
//         this.email = email;
//         this.displayName = displayName;
//         this.roles = roles == null ? Collections.emptySet() : new HashSet<>(roles);
//     }
// 
//     public UUID getId() {
//         return id;
//     }
// 
//     public String getEmail() {
//         return email;
//     }
// 
//     public String getDisplayName() {
//         return displayName;
//     }
// 
//     public Set<Roles> getRoles() {
//         return roles;
//     }
// 
//     public static User fromDB(final DBUser user) {
//         return new User(
//                 user.getId(),
//                 user.getEmail(),
//                 user.getDisplayName(),
//                 user.getRoles());
//     }
// 
//     @JsonIgnore
//     @Override
//     public String getName() {
//         return email;
//     }
// 
//     @Override
//     public boolean implies(final Subject subject) {
//         return false;
//     }
// 
//     public boolean canRead(final Class<?> resourceClass, final UUID userId) {
//         for (Roles role : roles) {
//             if (role.canRead(resourceClass, this, userId)) {
//                 return true;
//             }
//         }
//         return false;
//     }
// 
//     public boolean canModify(final Class<?> resourceClass, final UUID userId) {
//         for (Roles role : roles) {
//             if (role.canWrite(resourceClass, this, userId)) {
//                 return true;
//             }
//         }
//         return false;
//     }
// 
//     @JsonIgnore
//     public boolean isAdminForReading() {
//         return roles.contains(Roles.ADMIN) || roles.contains(Roles.RO_ADMIN);
//     }
// }


// Path: authrite-service/src/main/java/com/lewisd/authrite/resources/requests/UpdateUserRequest.java
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.lewisd.authrite.resources.model.User;
import javax.validation.Valid;

package com.lewisd.authrite.resources.requests;



public class UpdateUserRequest {

    @Valid
    private final User user;