00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 package org.openmobileis.synchro.algo.replication.utils;
00029
00030 import org.openmobileis.common.util.exception.SynchroException;
00031 import org.openmobileis.synchro.algo.replication.SynchroAtomicObject;
00032
00040 public class SynchroAtomicObjectManager {
00041 private static SynchroAtomicObjectManager manager;
00042 private SynchroAtomicObjectDelegate delegate;
00043
00044 private SynchroAtomicObjectManager() {
00045 }
00046
00047 public static SynchroAtomicObjectManager getManager() {
00048 if (manager == null) {
00049 synchronized(SynchroAtomicObjectManager.class) {
00050 if (manager == null) {
00051 manager = new SynchroAtomicObjectManager();
00052 }
00053 }
00054 }
00055 return manager;
00056 }
00057
00058 public SynchroAtomicObjectDelegate getDelegate() {
00059 return this.delegate;
00060 }
00061
00067 public void purgeAtomicObjcet(String serviceName, long deletedTime) throws SynchroException {
00068 delegate.purgeAtomicObjcet(serviceName, deletedTime);
00069 }
00070
00075 public SynchroAtomicObject[] getAllModifiedAtomicObjectForServiceSince(String serviceName, long date, String userLink) throws SynchroException{
00076 return delegate.getAllModifiedAtomicObjectForServiceSince(serviceName, date, userLink);
00077 }
00078
00086 public synchronized void updateAtomicObject(SynchroAtomicObject object, String serviceName, String userLink) throws SynchroException {
00087 Object obj = delegate.getAtomicObject(object.getUID(), serviceName);
00088 if (obj != null) {
00089 delegate.updateAtomicObject(object, serviceName, userLink);
00090 } else {
00091 delegate.createAtomicObject(object, serviceName, userLink);
00092 }
00093 }
00094
00095 public void registerDelegateManager(SynchroAtomicObjectDelegate d) {
00096 delegate = d;
00097 }
00101 public SynchroAtomicObject getAtomicObject(String uid, String serviceName) throws SynchroException{
00102 return delegate.getAtomicObject(uid, serviceName);
00103 }
00104 }