User.java :  » Network » socialconferenceproject » at » socialconference » backend » model » Android Open Source

Android Open Source » Network » socialconferenceproject 
socialconferenceproject » at » socialconference » backend » model » User.java
package at.socialconference.backend.model;

import java.util.HashSet;
import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import at.socialconference.backend.persistence.DBController;

@Entity
@Table(name = "t_user")
public class User implements Insertable {

  // Low Level: min infos

  public static final int LEVEL_LOW = 0;
  public static final int LEVEL_MEDIUM = 1;
  public static final int LEVEL_HIGH = 2;

  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  @Column(name = "userid")
  private Integer id;

  @Column(name = "firstname")
  private String firstname;

  @Column(name = "lastname")
  private String lastname;

  @Column(name = "gender")
  private String gender;

  @Column(name = "phone")
  private String phone;

  @Column(name = "title")
  private String title;

  @Column(name = "webpage")
  private String webpage;

  @Column(name = "dblp")
  private String dblp;

  @Column(name = "city")
  private String city;

  @ManyToOne(fetch = FetchType.EAGER)
  @JoinColumn(name = "country")
  private Country country;

  @Column(name = "address")
  private String address;

  @Column(name = "zip")
  private String zip;

  @Column(name = "mail")
  private String mail;

  @ManyToMany(fetch = FetchType.EAGER)
  @JoinTable(name = "t_user_topic", joinColumns = { @JoinColumn(name = "userid") }, inverseJoinColumns = { @JoinColumn(name = "topicid") })
  private Set<Topic> fieldOfInterests = new HashSet<Topic>();

  // @ManyToMany()
  // @JoinTable(name = "t_relations", joinColumns = { @JoinColumn(name =
  // "userid_a") }, inverseJoinColumns = { @JoinColumn(name = "userid_b") })
  // private List<User> relations = new ArrayList<User>();

  @Column(name = "tw_access_token")
  private String tw_access_token;

  @Column(name = "tw_access_token_secret")
  private String tw_access_secret;

  public User() {

  }

  public String getFirstname() {
    return firstname;
  }

  public void setFirstname(String firstname) {
    this.firstname = firstname;
  }

  public String getLastname() {
    return lastname;
  }

  public void setLastname(String lastname) {
    this.lastname = lastname;
  }

  public String getGender() {
    return gender;
  }

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

  public String getPhone() {
    return phone;
  }

  public void setPhone(String phone) {
    this.phone = phone;
  }

  public String getTitle() {
    return title;
  }

  public void setTitle(String title) {
    this.title = title;
  }

  public String getWebpage() {
    return webpage;
  }

  public void setWebpage(String webpage) {
    this.webpage = webpage;
  }

  public String getDblp() {
    return dblp;
  }

  public void setDblp(String dblp) {
    this.dblp = dblp;
  }

  public String getCity() {
    return city;
  }

  public void setCity(String city) {
    this.city = city;
  }

  public Country getCountry() {
    return country;
  }

  public void setCountry(Country country) {
    this.country = country;
  }

  public String getAddress() {
    return address;
  }

  public void setAddress(String address) {
    this.address = address;
  }

  public String getZip() {
    return zip;
  }

  public void setZip(String zip) {
    this.zip = zip;
  }

  public void setFieldOfInterests(Set<Topic> fieldOfInterests) {
    this.fieldOfInterests = fieldOfInterests;
  }

  public Set<Topic> getFieldOfInterests() {
    return fieldOfInterests;
  }

  public void addTopic(Topic topic) {
    fieldOfInterests.add(topic);
  }

  // public void setRelations(List<User> relations) {
  // this.relations = relations;
  // }
  // public List<User> getRelations() {
  // return relations;
  // }
  // public void addFriend(User user){
  // relations.add(user);
  // }
  public void setId(Integer id) {
    this.id = id;
  }

  public Integer getId() {
    return id;
  }

  public void setMail(String mail) {
    this.mail = mail;
  }

  public String getMail() {
    return mail;
  }

  public void setTw_access_token(String tw_access_token) {
    this.tw_access_token = tw_access_token;
  }

  public String getTw_access_token() {
    return tw_access_token;
  }

  public void setTw_access_secret(String tw_access_secret) {
    this.tw_access_secret = tw_access_secret;
  }

  public String getTw_access_secret() {
    return tw_access_secret;
  }

  /**
   * Creates an interUser Object
   * 
   * @param level
   *            TrustLevel
   * @return Filtered interUser Object
   */
  public at.socialconference.inter.model.User generateInterUser(int level) {
    String countryname = country == null ? "" : country.getName();
    at.socialconference.inter.model.User user = new at.socialconference.inter.model.User(id, firstname, lastname, gender, phone, title,
        webpage, dblp, city, countryname, address, zip, mail, null, tw_access_token, tw_access_secret);
    for (Topic t : fieldOfInterests)
      user.addTopic(t.getTopic());

    switch (level) {
    case User.LEVEL_LOW:
      user.setPhone(null);
      user.setAddress(null);
      user.setCity(null);
      user.setZip(null);
      user.setMail(null);
      user.setTw_access_token(null);
      user.setTw_access_secret(null);
      break;
    case User.LEVEL_MEDIUM:
      user.setContacts(null);
      user.setTw_access_token(null);
      user.setTw_access_secret(null);
      break;
    case User.LEVEL_HIGH:
      break;
    default:
      break;
    }
    user.setSecurityLevel(level);
    return user;
  }

  /**
   * Constructor (Wrapper)
   * 
   * @param user
   *            InterModelUser
   */
  public User(at.socialconference.inter.model.User user) {
    this.setId(user.getId());
    this.setFirstname(user.getFirstname());
    this.setLastname(user.getLastname());
    this.setGender(user.getGender());
    this.setPhone(user.getPhone());
    this.setTitle(user.getTitle());
    this.setWebpage(user.getWebpage());
    this.setDblp(user.getDblp());
    this.setCity(user.getCity());
    this.setDblp(user.getDblp());
    this.setZip(user.getZip());
    this.setAddress(user.getAddress());
    this.setMail(user.getMail());
    this.setTw_access_token(user.getTw_access_token());
    this.setTw_access_secret(user.getTw_access_secret());
    Country c = DBController.getCountry(user.getCountry());
    this.setCountry(c);
    this.setAddress(user.getAddress());
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.