- Removed redundant modifiers from EmployeeRecord and ReportRecord.
- Added assertions to RecordKey constructors.
- Fixed sync operation on the server side.

Patch by: amitmanjhi
Review by: rjrjr (desk review)


git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@7948 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/bikeshed/src/com/google/gwt/sample/expenses/gwt/request/EmployeeRecord.java b/bikeshed/src/com/google/gwt/sample/expenses/gwt/request/EmployeeRecord.java
index a5a8ee3..dc478e7 100644
--- a/bikeshed/src/com/google/gwt/sample/expenses/gwt/request/EmployeeRecord.java
+++ b/bikeshed/src/com/google/gwt/sample/expenses/gwt/request/EmployeeRecord.java
@@ -25,11 +25,10 @@
  * IRL this class will be generated by a JPA-savvy tool run before compilation.
  */
 public interface EmployeeRecord extends Record {
-  public static final Property<String> userName = new Property<String>(
-      "userName", String.class);
-  public static final Property<String> displayName = new Property<String>(
-      "displayName", String.class);
-  public static final Property<EmployeeRecord> supervisor = new Property<EmployeeRecord>(
+  Property<String> userName = new Property<String>("userName", String.class);
+  Property<String> displayName = new Property<String>("displayName",
+      String.class);
+  Property<EmployeeRecord> supervisor = new Property<EmployeeRecord>(
       "supervisor", EmployeeRecord.class);
 
   String getDisplayName();
diff --git a/bikeshed/src/com/google/gwt/sample/expenses/gwt/request/ReportRecord.java b/bikeshed/src/com/google/gwt/sample/expenses/gwt/request/ReportRecord.java
index 1a1644e..2829fb9 100644
--- a/bikeshed/src/com/google/gwt/sample/expenses/gwt/request/ReportRecord.java
+++ b/bikeshed/src/com/google/gwt/sample/expenses/gwt/request/ReportRecord.java
@@ -28,12 +28,10 @@
  */
 public interface ReportRecord extends Record {
 
-  public static final Property<Date> created = new Property<Date>("created",
-      Date.class);
-  public static final Property<String> purpose = new Property<String>(
-      "purpose", String.class);
-  public static final Property<EmployeeRecord> reporter = new Property<EmployeeRecord>(
-      "reporter", EmployeeRecord.class);
+  Property<Date> created = new Property<Date>("created", Date.class);
+  Property<String> purpose = new Property<String>("purpose", String.class);
+  Property<EmployeeRecord> reporter = new Property<EmployeeRecord>("reporter",
+      EmployeeRecord.class);
 
   Date getCreated();
 
diff --git a/bikeshed/src/com/google/gwt/sample/expenses/server/ExpensesDataServlet.java b/bikeshed/src/com/google/gwt/sample/expenses/server/ExpensesDataServlet.java
index 364f363..218c41f 100644
--- a/bikeshed/src/com/google/gwt/sample/expenses/server/ExpensesDataServlet.java
+++ b/bikeshed/src/com/google/gwt/sample/expenses/server/ExpensesDataServlet.java
@@ -96,7 +96,7 @@
       int length = reportArray.length();
       if (length > 0) {
         JSONObject report = reportArray.getJSONObject(0);
-        Report r = Report.findReport(report.getLong(Record.id.getName()));
+        Report r = Report.findReport(report.getString(Record.id.getName()));
         r.setPurpose(report.getString(ReportRecord.purpose.getName()));
         r.persist();
         report.put(Record.version.getName(), r.getVersion());
diff --git a/bikeshed/src/com/google/gwt/sample/expenses/server/domain/Employee.java b/bikeshed/src/com/google/gwt/sample/expenses/server/domain/Employee.java
index 0be04aa..9a5dfc4 100644
--- a/bikeshed/src/com/google/gwt/sample/expenses/server/domain/Employee.java
+++ b/bikeshed/src/com/google/gwt/sample/expenses/server/domain/Employee.java
@@ -60,7 +60,7 @@
     }
   }
 
-  public static Employee findEmployee(Long id) {
+  public static Employee findEmployee(String id) {
     if (id == null) {
       return null;
     }
diff --git a/bikeshed/src/com/google/gwt/sample/expenses/server/domain/Report.java b/bikeshed/src/com/google/gwt/sample/expenses/server/domain/Report.java
index 229b3d5..7027066 100644
--- a/bikeshed/src/com/google/gwt/sample/expenses/server/domain/Report.java
+++ b/bikeshed/src/com/google/gwt/sample/expenses/server/domain/Report.java
@@ -62,7 +62,7 @@
     }
   }
 
-  public static Report findReport(Long id) {
+  public static Report findReport(String id) {
     if (id == null) {
       return null;
     }
diff --git a/bikeshed/src/com/google/gwt/valuestore/client/RecordKey.java b/bikeshed/src/com/google/gwt/valuestore/client/RecordKey.java
index 4d57591..2bde533 100644
--- a/bikeshed/src/com/google/gwt/valuestore/client/RecordKey.java
+++ b/bikeshed/src/com/google/gwt/valuestore/client/RecordKey.java
@@ -19,18 +19,28 @@
 import com.google.gwt.valuestore.shared.impl.RecordJsoImpl;
 import com.google.gwt.valuestore.shared.impl.RecordSchema;
 
+/**
+ * The key used to store {@link com.google.gwt.valuestore.shared.Record Record}s
+ * in {@link com.google.gwt.valuestore.shared.ValueStore ValueStore}.
+ */
 class RecordKey {
   final RecordSchema<?> schema;
   final Object id;
 
   RecordKey(RecordImpl record) {
-    this.schema = record.getSchema();
-    this.id = record.getId();
+    this(record.getId(), record.getSchema());
   }
 
   RecordKey(RecordJsoImpl record) {
-    this.schema = record.getSchema();
-    this.id = record.getId();
+    this(record.getId(), record.getSchema());
+  }
+
+  private RecordKey(Object id, RecordSchema<?> schema) {
+    assert id != null;
+    assert schema != null;
+
+    this.id = id;
+    this.schema = schema;
   }
 
   @Override