package com.giftoftheembalmer.gotefarm.server.dao;
import com.google.appengine.api.datastore.Key;
import javax.jdo.annotations.Element;
import javax.jdo.annotations.Extension;
import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.Order;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;
import java.util.List;
@PersistenceCapable(identityType = IdentityType.APPLICATION,
detachable = "true")
public class EventTemplate {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
@Persistent(defaultFetchGroup = "true")
private Key guild;
@Persistent
private String name;
@Persistent
private int size;
@Persistent
private int minimumLevel;
@Persistent
private String instance;
@Persistent(defaultFetchGroup = "true")
private Key instanceKey;
// FIXME: Using List here due to AppEngine bug, switch to Set once
// it is fixed.
// http://code.google.com/p/datanucleus-appengine/issues/detail?id=26
@Persistent(defaultFetchGroup = "true")
@Element(dependent = "true")
@Order(extensions = @Extension(vendorName="datanucleus", key="list-ordering", value="boss asc"))
private List<EventBoss> bosses;
// FIXME: Using List here due to AppEngine bug, switch to Set once
// it is fixed.
// http://code.google.com/p/datanucleus-appengine/issues/detail?id=26
@Persistent(defaultFetchGroup = "true")
@Element(dependent = "true")
@Order(extensions = @Extension(vendorName="datanucleus", key="list-ordering", value="role asc"))
private List<EventRole> roles;
// FIXME: Using List here due to AppEngine bug, switch to Set once
// it is fixed.
// http://code.google.com/p/datanucleus-appengine/issues/detail?id=26
@Persistent(defaultFetchGroup = "true")
@Element(dependent = "true")
@Order(extensions = @Extension(vendorName="datanucleus", key="list-ordering", value="badge asc"))
private List<EventBadge> badges;
public EventTemplate(Key guild, String name, int size, int minimumLevel,
String instance, Key instanceKey) {
this.guild = guild;
this.name = name;
this.size = size;
this.minimumLevel = minimumLevel;
this.instance = instance;
this.instanceKey = instanceKey;
}
public List<EventBadge> getBadges() {
return badges;
}
public List<EventBoss> getBosses() {
return bosses;
}
public Key getGuild() {
return guild;
}
public String getInstance() {
return instance;
}
public Key getInstanceKey() {
return instanceKey;
}
public Key getKey() {
return key;
}
public int getMinimumLevel() {
return minimumLevel;
}
public String getName() {
return name;
}
public List<EventRole> getRoles() {
return roles;
}
public int getSize() {
return size;
}
public void setBadges(List<EventBadge> badges) {
this.badges = badges;
}
public void setBosses(List<EventBoss> bosses) {
this.bosses = bosses;
}
public void setInstance(String instance, Key instanceKey) {
this.instance = instance;
this.instanceKey = instanceKey;
}
public void setMinimumLevel(int minimumLevel) {
this.minimumLevel = minimumLevel;
}
public void setName(String name) {
this.name = name;
}
public void setRoles(List<EventRole> roles) {
this.roles = roles;
}
public void setSize(int size) {
this.size = size;
}
}