Comment 5 for bug 787403

Revision history for this message
Matt Giuca (mgiuca) wrote :

No.. I'm not saying we shouldn't have keys instead of objects. I'm not talking about the datastore classes at all; just the client classes.

Basically, here's what we did for the Game (client) class. It was:
class Game
{
    Long activeVersion;
}

it is now:
class Game
{
    GameVersion activeVersion;
}

(Note that the database class is still a Key.)

It *should have been*:

class Game
{
    Long activeVersion;
    GameVersion activeVersionObject;
}

That would solve the many problems where things expect an activeVersion to be a key but it isn't. For example the fact that it is set to null when it is read, and needs to be non-null when it is written -- again, see bug #788075.

I am saying a) we need to fix this, and b) do not make the same mistake with devTeam. DO NOT DO this:

class Game
{
    DevTeam devTeam;
}

Instead, do this:

class Game
{
    Long devTeam;
    DevTeam devTeamObject;
}