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.ProjectValue; import org.dodgybits.shuffle.web.client.model.ProjectValue.Builder; import com.google.appengine.api.datastore.Key; import com.google.appengine.api.users.User; @SuppressWarnings("serial") @PersistenceCapable(identityType = IdentityType.APPLICATION) public class Project implements Serializable { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Key mKey; @Persistent private User mUser; @Persistent private String mName; @Persistent private Key mDefaultContextKey; public final Key getKey() { return mKey; } public final User getUser() { return mUser; } public final String getName() { return mName; } public final Key getDefaultContextKey() { return mDefaultContextKey; } public final ProjectValue toProjectValue() { KeyValue<ProjectValue> keyValue = toKeyValue(mKey); KeyValue<ContextValue> defaultContextKey = toKeyValue(mDefaultContextKey); Builder builder = new Builder(); builder.setId(keyValue) .setName(mName) .setDefaultContextId(defaultContextKey); return builder.build(); } public static final Project fromProjectValue(User user, ProjectValue value) { Project project = new Project(); project.mKey = toKey(value.getId()); project.mName = value.getName(); project.mDefaultContextKey = toKey(value.getDefaultContextId()); project.mUser = user; return project; } }