/** * Abiquo community edition * cloud management application for hybrid clouds * Copyright (C) 2008-2010 - Abiquo Holdings S.L. * * This application is free software; you can redistribute it and/or * modify it under the terms of the GNU LESSER GENERAL PUBLIC * LICENSE as published by the Free Software Foundation under * version 3 of the License * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * LESSER GENERAL PUBLIC LICENSE v.3 for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ package com.abiquo.abiserver.pojo.user; import java.util.Calendar; import java.util.Collection; import java.util.Date; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.Transformer; import org.apache.commons.lang.StringUtils; import com.abiquo.abiserver.business.hibernate.pojohb.user.UserHB; import com.abiquo.abiserver.pojo.IPojo; import com.abiquo.server.core.enterprise.User.AuthType; import com.abiquo.server.core.enterprise.UserDto; import edu.emory.mathcs.backport.java.util.Arrays; public class User implements IPojo<UserHB> { /* ------------- Public atributes ------------- */ private Integer id; private Role role; private String user; private String name; private String surname; private String description; private String email; private String pass; private Boolean active; private String locale; private Enterprise enterprise; private Integer[] availableVirtualDatacenters; private Date creationDate; private AuthType authType; public AuthType getAuthType() { return authType; } public void setAuthType(final AuthType authType) { this.authType = authType; } public Integer[] getAvailableVirtualDatacenters() { return availableVirtualDatacenters; } public void setAvailableVirtualDatacenters(final Integer[] availableVirtualDatacenters) { this.availableVirtualDatacenters = availableVirtualDatacenters; } public Integer getId() { return id; } public void setId(final Integer id) { this.id = id; } public Role getRole() { return role; } public void setRole(final Role role) { this.role = role; } public String getUser() { return user; } public void setUser(final String user) { this.user = user; } public String getName() { return name; } public void setName(final String name) { this.name = name; } public String getSurname() { return surname; } public void setSurname(final String surname) { this.surname = surname; } public String getDescription() { return description; } public void setDescription(final String description) { this.description = description; } public String getEmail() { return email; } public void setEmail(final String email) { this.email = email; } public String getPass() { return pass; } public void setPass(final String pass) { this.pass = pass; } public Boolean getActive() { return active; } public void setActive(final Boolean active) { this.active = active; } public String getLocale() { return locale; } public void setLocale(final String locale) { this.locale = locale; } public Enterprise getEnterprise() { return enterprise; } public void setEnterprise(final Enterprise enterprise) { this.enterprise = enterprise; } public Date getCreationDate() { return creationDate; } public void setCreationDate(final Date creationDate) { this.creationDate = creationDate; } /** * Method to create the hibernate pojo object * * @deprecated all the persistence should be throught the api and we don't need this method any * more */ @Override @Deprecated public UserHB toPojoHB() { UserHB userHB = new UserHB(); userHB.setIdUser(id); userHB.setRoleHB(role.toPojoHB()); userHB.setUser(user); userHB.setName(name); userHB.setSurname(surname); userHB.setDescription(description); userHB.setEmail(email); userHB.setLocale(locale); userHB.setPassword(pass); userHB.setActive(active ? 1 : 0); userHB.setAuthType(authType.name()); userHB.setCreationDate(creationDate); if (enterprise != null) { userHB.setEnterpriseHB(enterprise.toPojoHB()); } else { userHB.setEnterpriseHB(null); } return userHB; } @SuppressWarnings("unchecked") public static User create(final UserDto dto, final Enterprise enterprise, final Role role) { User user = new User(); user.setId(dto.getId()); user.setEnterprise(enterprise); user.setRole(role); user.setUser(dto.getNick()); user.setName(dto.getName()); user.setSurname(dto.getSurname()); user.setDescription(dto.getDescription()); user.setEmail(dto.getEmail()); user.setLocale(dto.getLocale()); user.setPass(dto.getPassword()); user.setActive(dto.isActive()); user.setAuthType(StringUtils.isBlank(dto.getAuthType()) ? AuthType.ABIQUO : AuthType .valueOf(dto.getAuthType())); if (!StringUtils.isEmpty(dto.getAvailableVirtualDatacenters())) { String[] ids = dto.getAvailableVirtualDatacenters().split(","); Collection<Integer> idsI = CollectionUtils.collect(Arrays.asList(ids), new Transformer() { @Override public Object transform(final Object input) { return Integer.valueOf(input.toString()); } }); user.setAvailableVirtualDatacenters(idsI.toArray(new Integer[idsI.size()])); } else { user.setAvailableVirtualDatacenters(new Integer[] {}); } user.setCreationDate(Calendar.getInstance().getTime()); return user; } }