Package com.springsource.greenhouse.signup

Source Code of com.springsource.greenhouse.signup.SignupForm

/*
* Copyright 2010 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.springsource.greenhouse.signup;

import java.util.List;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.codehaus.jackson.annotate.JsonProperty;
import org.codehaus.jackson.map.annotate.JsonDeserialize;
import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.NotEmpty;
import org.joda.time.LocalDate;
import org.springframework.social.connect.UserProfile;

import com.springsource.greenhouse.account.AccountRepository;
import com.springsource.greenhouse.account.Gender;
import com.springsource.greenhouse.account.Person;
import com.springsource.greenhouse.validation.Confirm;

/**
* The model for the new member signup form.
* @author Keith Donald
*/
@Confirm(field="email", message="does not match confirmation email")
@JsonIgnoreProperties(ignoreUnknown=true)
public class SignupForm {
 
  @NotEmpty
  @JsonProperty("first-name")
  private String firstName;

  @NotEmpty
  @JsonProperty("last-name")
  private String lastName;

  @NotEmpty
  @Email
  @JsonProperty("email")
  private String email;

  @JsonProperty("confirm-email")
  private String confirmEmail;
 
  @JsonProperty("gender")
  @JsonDeserialize(using=SignupFormDeserializers.GenderDeserializer.class)
  private Gender gender;

  @NotNull
  private Integer month;
 
  @NotNull
  private Integer day;
 
  @NotNull
  private Integer year;
 
  @Size(min=6, message="must be at least 6 characters")
  @JsonProperty("password")
  private String password;

  /**
   * The person's first name.
   */
  public String getFirstName() {
    return firstName;
  }

  public void setFirstName(String firstName) {
    this.firstName = firstName;
  }

  /**
   * The person's last name.
   */
  public String getLastName() {
    return lastName;
  }

  public void setLastName(String lastName) {
    this.lastName = lastName;
  }

  /**
   * The person's email, must be unique.
   */
  public String getEmail() {
    return email;
  }

  public void setEmail(String email) {
    this.email = email;
  }

  /**
   * A confirmation of the person's email. Must match.
   */
  public String getConfirmEmail() {
    return confirmEmail;
  }

  public void setConfirmEmail(String confirmEmail) {
    this.confirmEmail = confirmEmail;
  }

  /**
   * The member's password.
   */
  public String getPassword() {
    return password;
  }

  public void setPassword(String password) {
    this.password = password;
  }

  /**
   * The member's gender.
   */
  public Gender getGender() {
    return gender;
  }

  public void setGender(Gender gender) {
    this.gender = gender;
  }

  /**
   * The month them member as born.
   */
  public Integer getMonth() {
    return month;
  }

  public void setMonth(Integer month) {
    this.month = month;
  }

  /**
   * The day them member was born.
   */
  public Integer getDay() {
    return day;
  }

  public void setDay(Integer day) {
    this.day = day;
  }

  /**
   * The year the member was born.
   */
  public Integer getYear() {
    return year;
  }

  public void setYear(Integer year) {
    this.year = year;
  }

 
  @JsonProperty("birthdate")
  @JsonDeserialize(using=SignupFormDeserializers.BirthdateDeserializer.class)
  protected void setBirthdate(List<Integer> birthdateFields) {
    this.month = birthdateFields.get(0);
    this.day = birthdateFields.get(1);
    this.year = birthdateFields.get(2);
  }
 
  /**
   * Creates a Person record from this SignupForm.
   * A Person is used as input to {@link AccountRepository} to create a new member Account.
   */
  public Person createPerson() {
    return new Person(firstName, lastName, email, password, gender, new LocalDate(year, month, day));
  }
 
  /**
   * Factory method that creates a pre-populated SignupForm from a ServiceProviderUser model obtained from a provider user sign-in attempt.
   * @param providerUser the providerUser model
   */
  public static SignupForm fromProviderUser(UserProfile providerUser) {
    SignupForm form = new SignupForm();
    form.setFirstName(providerUser.getFirstName());
    form.setLastName(providerUser.getLastName());
    form.setEmail(providerUser.getEmail());
    form.setConfirmEmail(providerUser.getEmail());
    return form;
  }
}
TOP

Related Classes of com.springsource.greenhouse.signup.SignupForm

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.