package de.twenty11.skysail.server.ext.mail; import java.util.HashMap; import java.util.Map; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; import javax.validation.constraints.Size; import org.codehaus.jackson.annotate.JsonIgnore; import de.twenty11.skysail.common.Presentable; import de.twenty11.skysail.common.PresentableHeader; import de.twenty11.skysail.common.forms.Field; import de.twenty11.skysail.common.forms.Form; import de.twenty11.skysail.common.forms.IgnoreValuesProvider; @Form(name = "AccountForm") @Entity public class AccountDescriptor implements Presentable { @Id @GeneratedValue @JsonIgnore private int pid;// primary key for db public int getPid() { return this.pid; } @NotNull(message = "Name is mandatory") @Size(min = 1, message = "name must not be empty") @Field(valuesProvider = IgnoreValuesProvider.class) @Pattern(regexp = "^[a-zA-Z0-9]+$", message = "name must only contain letters or digits.") private String name; @NotNull(message = "Host is mandatory") @Size(min = 1, message = "host must not be empty") @Field(valuesProvider = IgnoreValuesProvider.class) private String host; @NotNull(message = "Username is mandatory") @Size(min = 1, message = "username must not be empty") @Field(valuesProvider = IgnoreValuesProvider.class) private String username; @Field(valuesProvider = IgnoreValuesProvider.class) private String password; public AccountDescriptor() { } @Override @JsonIgnore public PresentableHeader getHeader() { return new PresentableHeader.Builder(name).setLink("accounts/" + name).build(); } @Override @JsonIgnore public Map<String, Object> getContent() { Map<String, Object> results = new HashMap<String, Object>(); results.put("host", host); results.put("username", username); return results; } public AccountDescriptor(String name) { this.name = name; } public String getHost() { return host; } public void setHost(String host) { this.host = host; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getName() { return name; } }