Index: sync/android/java/src/org/chromium/sync/internal_api/pub/base/ModelType.java |
diff --git a/sync/android/java/src/org/chromium/sync/internal_api/pub/base/ModelType.java b/sync/android/java/src/org/chromium/sync/internal_api/pub/base/ModelType.java |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4dbdab0a76a9dd634058d8a112513b8cda3b82fe |
--- /dev/null |
+++ b/sync/android/java/src/org/chromium/sync/internal_api/pub/base/ModelType.java |
@@ -0,0 +1,46 @@ |
+// Copyright (c) 2013 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+package org.chromium.sync.internal_api.pub.base; |
+ |
+import com.google.ipc.invalidation.external.client.types.ObjectId; |
+import com.google.protos.ipc.invalidation.Types; |
+ |
+/** |
+ * The model types that are synced in Chrome for Android. |
+ */ |
+public enum ModelType { |
+ |
+ /** |
+ * A bookmark folder or a bookmark URL object. |
+ */ |
+ BOOKMARK("BOOKMARK"), |
+ /** |
+ * A typed_url folder or a typed_url object. |
+ */ |
+ TYPED_URL("TYPED_URL"), |
+ /** |
+ * An object representing a browser session or tab. |
+ */ |
+ SESSION("SESSION"); |
+ |
+ private final String mModelType; |
+ |
+ ModelType(String modelType) { |
+ mModelType = modelType; |
+ } |
+ |
+ public ObjectId toObjectId() { |
+ return ObjectId.newInstance(Types.ObjectSource.Type.CHROME_SYNC.getNumber(), |
+ mModelType.getBytes()); |
+ } |
+ |
+ public static ModelType fromObjectId(ObjectId objectId) { |
+ try { |
+ return valueOf(new String(objectId.getName())); |
+ } catch (IllegalArgumentException e) { |
+ return null; |
+ } |
+ } |
+} |