Index: chrome/common/extensions/docs/server2/host_file_system_creator.py |
diff --git a/chrome/common/extensions/docs/server2/host_file_system_creator.py b/chrome/common/extensions/docs/server2/host_file_system_creator.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1fd5cf8af5060c34c531f1e40e019bcda5f16b4b |
--- /dev/null |
+++ b/chrome/common/extensions/docs/server2/host_file_system_creator.py |
@@ -0,0 +1,54 @@ |
+# Copyright 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. |
+ |
+from caching_file_system import CachingFileSystem |
+from local_file_system import LocalFileSystem |
+from object_store_creator import ObjectStoreCreator |
+from offline_file_system import OfflineFileSystem |
+from subversion_file_system import SubversionFileSystem |
+from test_branch_utility import TestBranchUtility |
+ |
+ |
+class HostFileSystemCreator(object): |
+ '''Creates file systems using a create method provided by a servlet. |
+ ''' |
+ def __init__(self, |
+ branch_utility, |
+ create_method, |
+ object_store_creator=None, |
not at google - send to devlin
2013/07/09 23:11:55
how/why can/should this be None?
epeterson
2013/07/16 00:28:23
It is None no longer!
|
+ offline=True): |
not at google - send to devlin
2013/07/09 23:11:55
always default to False. it makes sense here.
epeterson
2013/07/16 00:28:23
Done.
|
+ self._branch_utility = branch_utility |
+ self._create_method = create_method |
+ self._object_store_creator = object_store_creator |
+ if object_store_creator: |
+ self._caching = True |
+ self._offline = offline |
+ |
+ def CreateAtVersion(self, version): |
+ branch = self._branch_utility.GetBranchForVersion(version) |
+ return self.CreateAtBranch(branch) |
+ |
+ def CreateAtBranch(self, branch): |
+ fs = self._create_method(branch) |
+ if self._offline: |
+ fs = OfflineFileSystem(fs) |
+ if self._caching: |
+ fs = CachingFileSystem(fs, self._object_store_creator) |
+ return fs |
+ |
+ @staticmethod |
+ def ForTest(file_system, object_store_creator): |
+ return HostFileSystemCreator(TestBranchUtility.CreateWithCannedData(), |
+ lambda _: file_system, |
+ object_store_creator, |
+ offline=False) |
+ |
+ @staticmethod |
+ def ForLocal(object_store_creator): |
+ return HostFileSystemCreator( |
+ TestBranchUtility.CreateWithCannedData(), |
+ lambda _: CachingFileSystem(LocalFileSystem.Create(), |
+ object_store_creator), |
+ object_store_creator, |
+ offline=False) |