/* * Copyright 2013 Anton Tananaev (anton.tananaev@gmail.com) * * 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 org.traccar.web.shared.model; import java.io.Serializable; import java.util.LinkedList; import java.util.List; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.OneToOne; import javax.persistence.Table; import com.google.gwt.user.client.rpc.GwtTransient; @Entity @Table(name="users") public class User implements Serializable, Cloneable { private static final long serialVersionUID = 1; public User() { admin = false; } public User(User user) { id = user.id; login = user.login; password = user.password; admin = user.admin; } @Id @GeneratedValue private long id; public long getId() { return id; } @Column(unique = true) private String login; public void setLogin(String login) { this.login = login; } public String getLogin() { return login; } private String password; public void setPassword(String password) { this.password = password; } public String getPassword() { return password; } // TODO temporary nullable to migrate from old database private Boolean admin; public void setAdmin(boolean admin) { this.admin = admin; } public boolean getAdmin() { // TODO temporary nullable to migrate from old database return (admin == null) ? false : admin; } @GwtTransient @OneToMany(fetch = FetchType.EAGER) private List devices = new LinkedList(); public void setDevices(List devices) { this.devices = devices; } public List getDevices() { return devices; } @OneToOne(cascade = CascadeType.ALL) private UserSettings userSettings; public void setUserSettings(UserSettings userSettings) { this.userSettings = userSettings; } public UserSettings getUserSettings() { return userSettings; } }