package org.dodgybits.shuffle.web.server.model;
import static org.dodgybits.shuffle.web.server.persistence.JdoUtils.toKey;
import static org.dodgybits.shuffle.web.server.persistence.JdoUtils.toKeyValue;
import java.io.Serializable;
import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;
import org.dodgybits.shuffle.web.client.model.ContextValue;
import org.dodgybits.shuffle.web.client.model.KeyValue;
import org.dodgybits.shuffle.web.client.model.ContextValue.Builder;
import com.google.appengine.api.datastore.Key;
import com.google.appengine.api.users.User;
@SuppressWarnings("serial")
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Context implements Serializable {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key mKey;
@Persistent
private User mUser;
@Persistent
private String mName;
public final Key getKey() {
return mKey;
}
public final User getUser() {
return mUser;
}
public final String getName() {
return mName;
}
public final ContextValue toContextValue() {
KeyValue<ContextValue> keyValue = toKeyValue(mKey);
Builder builder = new Builder();
builder.setId(keyValue)
.setName(mName);
return builder.build();
}
public static final Context fromContextValue(User user, ContextValue value) {
Context context = new Context();
context.mKey = toKey(value.getId());
context.mName = value.getName();
context.mUser = user;
return context;
}
}