View Javadoc
1   package com.srv4pos.server.api.sync.sample;
2   
3   import com.srv4pos.server.api.keyboard.KeyboardInfo;
4   import com.srv4pos.server.api.sync.EntitySyncAdapter;
5   import com.srv4pos.server.api.sync.Uploader;
6   
7   import java.util.List;
8   
9   /**
10   * Created by moonsweel on 22.06.16.
11   */
12  public class KeyboardSyncAdapter implements EntitySyncAdapter<KeyboardInfo> {
13      private MemoryLocalStorage storage;
14  
15      public KeyboardSyncAdapter(MemoryLocalStorage storage) {
16          this.storage = storage;
17      }
18  
19      public void upload(Uploader<KeyboardInfo> uploader) {
20          List<SyncKeyboard> keyboards = storage.getKeyboards();
21          for (SyncKeyboard keyboard : keyboards) {
22              if (!keyboard.isSynced()) {
23                  doUpload(uploader, keyboard);
24              }
25          }
26      }
27  
28      private void doUpload(Uploader<KeyboardInfo> uploader, SyncKeyboard keyboard) {
29          final KeyboardInfo keyboardInfo = keyboard.getInfo();
30  
31          final String newIdentifier = uploader.upload(keyboardInfo, null);
32          if (newIdentifier != null && newIdentifier.length() > 0) {
33              keyboardInfo.setIdentifier(newIdentifier);
34          }
35  
36          keyboard.setSynced(true);
37      }
38  
39      public void createOrUpdateEntityFromInfo(KeyboardInfo info) {
40          SyncKeyboard keyboard = storage.getKeyboardByIdentifier(info.getIdentifier());
41  
42          if (keyboard == null) {
43              keyboard = new SyncKeyboard(info);
44              storage.add(keyboard); // adding even if info is in "deleted" state (info.isDeleted() == true)
45          } else {
46              keyboard.setInfo(info);
47          }
48  
49          keyboard.setSynced(true);
50      }
51  }