package com.getit.todoapp.domain; import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import org.springframework.roo.addon.javabean.RooJavaBean; import org.springframework.roo.addon.jpa.entity.RooJpaEntity; import org.springframework.roo.addon.tostring.RooToString; import flexjson.JSONDeserializer; import flexjson.JSONSerializer; import javax.persistence.Column; import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.Version; import org.springframework.roo.addon.json.RooJson; @Entity @RooJavaBean @RooToString @RooJpaEntity @RooJson public class Userinfo { private static final String CLASS_EXTENSION = "*.class"; /** */ @NotNull @Column(unique = true) private String userName; /** */ @NotNull @Column(unique = true) private String email; /** */ private String firstName; /** */ private String lastName; /** */ @OneToMany(cascade = CascadeType.ALL, mappedBy = "userName") private Set<Todo> todoes = new HashSet<Todo>(); /** */ @NotNull private String password; @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "id") private Long id; @Version @Column(name = "version") private Integer version; public String toString() { return ReflectionToStringBuilder.toString(this, ToStringStyle.SHORT_PREFIX_STYLE); } public Long getId() { return this.id; } public void setId(Long id) { this.id = id; } public Integer getVersion() { return this.version; } public void setVersion(Integer version) { this.version = version; } public String getUserName() { return this.userName; } public void setUserName(String userName) { this.userName = userName; } public String getEmail() { return this.email; } public void setEmail(String email) { this.email = email; } public String getFirstName() { return this.firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return this.lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public Set<Todo> getTodoes() { return this.todoes; } public void setTodoes(Set<Todo> todoes) { this.todoes = todoes; } public String getPassword() { return this.password; } public void setPassword(String password) { this.password = password; } public String toJson() { return new JSONSerializer().exclude(CLASS_EXTENSION).serialize(this); } public String toJson(String[] fields) { return new JSONSerializer().include(fields).exclude(CLASS_EXTENSION).serialize(this); } public static Userinfo fromJsonToUserinfo(String json) { return new JSONDeserializer<Userinfo>().use(null, Userinfo.class).deserialize(json); } public static String toJsonArray(Collection<Userinfo> collection) { return new JSONSerializer().exclude(CLASS_EXTENSION).serialize(collection); } public static String toJsonArray(Collection<Userinfo> collection, String[] fields) { return new JSONSerializer().include(fields).exclude(CLASS_EXTENSION).serialize(collection); } public static Collection<Userinfo> fromJsonArrayToUserinfoes(String json) { return new JSONDeserializer<List<Userinfo>>().use(null, ArrayList.class).use("values", Userinfo.class).deserialize(json); } }