// Path: core/src/main/java/com/monkeyk/os/domain/shared/BeanProvider.java
// public abstract class BeanProvider {
// 
//     private static ApplicationContext applicationContext;
// 
//     private BeanProvider() {
//     }
// 
//     public static void initialize(ApplicationContext applicationContext) {
//         BeanProvider.applicationContext = applicationContext;
//     }
// 
//     /**
//      * Get Bean by clazz.
//      *
//      * @param clazz Class
//      * @param <T>   class type
//      * @return Bean instance
//      */
//     public static <T> T getBean(Class<T> clazz) {
//         if (applicationContext == null) {
//             return null;
//         }
//         return applicationContext.getBean(clazz);
//     }
// 
//     @SuppressWarnings("unchecked")
//     public static <T> T getBean(String beanId) {
//         if (applicationContext == null) {
//             return null;
//         }
//         return (T) applicationContext.getBean(beanId);
//     }
// 
// }
// 
// Path: core/src/main/java/com/monkeyk/os/domain/users/Roles.java
// public class Roles extends AbstractDomain {
//     private static final long serialVersionUID = 8762398291767207066L;
// 
// 
//     private transient UsersRepository usersRepository = BeanProvider.getBean(UsersRepository.class);
// 
//     private int id;
// 
//     private String roleName;
// 
//     public Roles() {
//     }
// 
//     public int id() {
//         return id;
//     }
// 
//     public Roles id(int id) {
//         this.id = id;
//         return this;
//     }
// 
//     public List<String> permissions() {
//         return this.usersRepository.findPermissionsByRoles(this.guid);
//     }
// 
//     public String roleName() {
//         return roleName;
//     }
// 
//     public Roles roleName(String roleName) {
//         this.roleName = roleName;
//         return this;
//     }
// }
// 
// Path: core/src/main/java/com/monkeyk/os/domain/users/Users.java
// public class Users extends AbstractDomain {
//     private static final long serialVersionUID = -3990278799194556012L;
// 
//     private transient UsersRepository usersRepository = BeanProvider.getBean(UsersRepository.class);
// 
//     private String username;
//     private String password;
// 
// 
//     private boolean defaultUser;
//     private Date lastLoginTime;
// 
//     public Users() {
//     }
// 
// 
//     public List<Roles> rolesList() {
//         return usersRepository.findUsersRolesList(this.guid);
//     }
// 
// 
//     public String username() {
//         return username;
//     }
// 
//     public Users username(String username) {
//         this.username = username;
//         return this;
//     }
// 
//     public String password() {
//         return password;
//     }
// 
//     public Users password(String password) {
//         this.password = password;
//         return this;
//     }
// 
//     public boolean defaultUser() {
//         return defaultUser;
//     }
// 
//     public Users defaultUser(boolean defaultUser) {
//         this.defaultUser = defaultUser;
//         return this;
//     }
// 
//     public Date lastLoginTime() {
//         return lastLoginTime;
//     }
// 
//     public Users lastLoginTime(Date lastLoginTime) {
//         this.lastLoginTime = lastLoginTime;
//         return this;
//     }
// }
// 
// Path: authz/src/main/java/com/monkeyk/os/domain/users/UsersAuthzRepository.java
// public interface UsersAuthzRepository extends UsersRepository {
// 
//     List<Users> findUsersByUsername(String username);
// 
//     List<Roles> findAvailableRolesList();
// 
//     Users findByUsername(String username);
// 
//     int saveUsers(Users users);
// 
//     Roles findRolesByGuid(String guid);
// 
//     void insertUserRoles(int userId, int rolesId);
// }
// 
// Path: authz/src/main/java/com/monkeyk/os/service/dto/UsersFormDto.java
// public class UsersFormDto extends UsersDto {
//     private static final long serialVersionUID = 3873686200178717100L;
// 
// 
//     private List<String> roleGuids = new ArrayList<>();
// 
// 
//     public UsersFormDto() {
//     }
// 
//     public UsersFormDto(Users users, boolean fully) {
//         super(users, fully);
//     }
// 
// 
//     public List<String> getRoleGuids() {
//         return roleGuids;
//     }
// 
//     public void setRoleGuids(List<String> roleGuids) {
//         this.roleGuids = roleGuids;
//     }
// 
// 
//     public Users newUsers() {
//         return new Users()
//                 .username(getUsername())
//                 .password(PasswordHandler.md5(getPassword()))
//                 .guid(GuidGenerator.generate());
//     }
// }


import com.monkeyk.os.domain.shared.BeanProvider;
import com.monkeyk.os.domain.users.Roles;
import com.monkeyk.os.domain.users.Users;
import com.monkeyk.os.domain.users.UsersAuthzRepository;
import com.monkeyk.os.service.dto.UsersFormDto;
import java.util.List;
package com.monkeyk.os.service.business;



/**
 * 2016/6/7
 *
 * @author Shengzhao Li
 */
public class UsersFormSaver {

    private transient UsersAuthzRepository usersRepository = BeanProvider.getBean(UsersAuthzRepository.class);


    private UsersFormDto formDto;

    public UsersFormSaver(UsersFormDto formDto) {
// Path: core/src/main/java/com/monkeyk/os/domain/shared/BeanProvider.java
// public abstract class BeanProvider {
// 
//     private static ApplicationContext applicationContext;
// 
//     private BeanProvider() {
//     }
// 
//     public static void initialize(ApplicationContext applicationContext) {
//         BeanProvider.applicationContext = applicationContext;
//     }
// 
//     /**
//      * Get Bean by clazz.
//      *
//      * @param clazz Class
//      * @param <T>   class type
//      * @return Bean instance
//      */
//     public static <T> T getBean(Class<T> clazz) {
//         if (applicationContext == null) {
//             return null;
//         }
//         return applicationContext.getBean(clazz);
//     }
// 
//     @SuppressWarnings("unchecked")
//     public static <T> T getBean(String beanId) {
//         if (applicationContext == null) {
//             return null;
//         }
//         return (T) applicationContext.getBean(beanId);
//     }
// 
// }
// 
// Path: core/src/main/java/com/monkeyk/os/domain/users/Roles.java
// public class Roles extends AbstractDomain {
//     private static final long serialVersionUID = 8762398291767207066L;
// 
// 
//     private transient UsersRepository usersRepository = BeanProvider.getBean(UsersRepository.class);
// 
//     private int id;
// 
//     private String roleName;
// 
//     public Roles() {
//     }
// 
//     public int id() {
//         return id;
//     }
// 
//     public Roles id(int id) {
//         this.id = id;
//         return this;
//     }
// 
//     public List<String> permissions() {
//         return this.usersRepository.findPermissionsByRoles(this.guid);
//     }
// 
//     public String roleName() {
//         return roleName;
//     }
// 
//     public Roles roleName(String roleName) {
//         this.roleName = roleName;
//         return this;
//     }
// }
// 
// Path: core/src/main/java/com/monkeyk/os/domain/users/Users.java
// public class Users extends AbstractDomain {
//     private static final long serialVersionUID = -3990278799194556012L;
// 
//     private transient UsersRepository usersRepository = BeanProvider.getBean(UsersRepository.class);
// 
//     private String username;
//     private String password;
// 
// 
//     private boolean defaultUser;
//     private Date lastLoginTime;
// 
//     public Users() {
//     }
// 
// 
//     public List<Roles> rolesList() {
//         return usersRepository.findUsersRolesList(this.guid);
//     }
// 
// 
//     public String username() {
//         return username;
//     }
// 
//     public Users username(String username) {
//         this.username = username;
//         return this;
//     }
// 
//     public String password() {
//         return password;
//     }
// 
//     public Users password(String password) {
//         this.password = password;
//         return this;
//     }
// 
//     public boolean defaultUser() {
//         return defaultUser;
//     }
// 
//     public Users defaultUser(boolean defaultUser) {
//         this.defaultUser = defaultUser;
//         return this;
//     }
// 
//     public Date lastLoginTime() {
//         return lastLoginTime;
//     }
// 
//     public Users lastLoginTime(Date lastLoginTime) {
//         this.lastLoginTime = lastLoginTime;
//         return this;
//     }
// }
// 
// Path: authz/src/main/java/com/monkeyk/os/domain/users/UsersAuthzRepository.java
// public interface UsersAuthzRepository extends UsersRepository {
// 
//     List<Users> findUsersByUsername(String username);
// 
//     List<Roles> findAvailableRolesList();
// 
//     Users findByUsername(String username);
// 
//     int saveUsers(Users users);
// 
//     Roles findRolesByGuid(String guid);
// 
//     void insertUserRoles(int userId, int rolesId);
// }
// 
// Path: authz/src/main/java/com/monkeyk/os/service/dto/UsersFormDto.java
// public class UsersFormDto extends UsersDto {
//     private static final long serialVersionUID = 3873686200178717100L;
// 
// 
//     private List<String> roleGuids = new ArrayList<>();
// 
// 
//     public UsersFormDto() {
//     }
// 
//     public UsersFormDto(Users users, boolean fully) {
//         super(users, fully);
//     }
// 
// 
//     public List<String> getRoleGuids() {
//         return roleGuids;
//     }
// 
//     public void setRoleGuids(List<String> roleGuids) {
//         this.roleGuids = roleGuids;
//     }
// 
// 
//     public Users newUsers() {
//         return new Users()
//                 .username(getUsername())
//                 .password(PasswordHandler.md5(getPassword()))
//                 .guid(GuidGenerator.generate());
//     }
// }


// Path: authz/src/main/java/com/monkeyk/os/service/business/UsersFormSaver.java
import com.monkeyk.os.domain.shared.BeanProvider;
import com.monkeyk.os.domain.users.Roles;
import com.monkeyk.os.domain.users.Users;
import com.monkeyk.os.domain.users.UsersAuthzRepository;
import com.monkeyk.os.service.dto.UsersFormDto;
import java.util.List;

package com.monkeyk.os.service.business;



/**
 * 2016/6/7
 *
 * @author Shengzhao Li
 */
public class UsersFormSaver {

    private transient UsersAuthzRepository usersRepository = BeanProvider.getBean(UsersAuthzRepository.class);


    private UsersFormDto formDto;

    public UsersFormSaver(UsersFormDto formDto) {
        this.formDto = formDto;