package com.querydsl.dynamodb.domain;
import java.util.Date;
import com.amazonaws.services.dynamodbv2.datamodeling.*;
@DynamoDBTable(tableName = "User")
public class User {
public enum Gender {
MALE, FEMALE
}
private String id;
private String firstName;
private String lastName;
private Date created;
private Gender gender;
private int age;
private String details;
public User() {
}
public User(String firstName, String lastName, int age, Date created) {
super();
this.firstName = firstName;
this.lastName = lastName;
this.created = created;
this.age = age;
}
@Override
public String toString() {
return "TestUser [id=" + id + ", firstName=" + firstName + ", lastName=" + lastName + "]";
}
@DynamoDBHashKey(attributeName = "id")
@DynamoDBAutoGeneratedKey
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@DynamoDBRangeKey(attributeName = "firstName")
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
@DynamoDBRangeKey(attributeName = "lastName")
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
@DynamoDBRangeKey(attributeName = "created")
public Date getCreated() {
return created;
}
public void setCreated(Date created) {
this.created = created;
}
@DynamoDBRangeKey(attributeName = "age")
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@DynamoDBMarshalling(marshallerClass = GenderConverter.class)
public Gender getGender() {
return gender;
}
public void setGender(Gender gender) {
this.gender = gender;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
User other = (User) obj;
if (id == null) {
if (other.id != null) {
return false;
}
} else if (!id.equals(other.id)) {
return false;
}
return true;
}
@DynamoDBAttribute(attributeName = "details")
public String getDetails() {
return details;
}
public void setDetails(String details) {
this.details = details;
}
}