package net.mms_projects.copy_it.sync_services; import java.util.Date; import java.util.concurrent.Executor; import net.mms_projects.copy_it.PollingServiceInterface; import net.mms_projects.copy_it.SyncListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class TestService implements PushServiceInterface, PollingServiceInterface { public static String SERVICE_NAME = "test"; protected SyncListener listener; private boolean pushEnabled; private boolean pullingEnabled; private final Logger log = LoggerFactory.getLogger(this.getClass()); private Executor executor; public TestService(SyncListener listener) { this.listener = listener; } @Override public String getServiceName() { return SERVICE_NAME; } @Override public void setExecutor(Executor executor) { this.executor = executor; } @Override public Executor getExecutor() { return this.executor; } @Override public void activatePolling() { this.pullingEnabled = true; log.debug("Activated! Faking pulls"); this.executor.execute(new Runnable() { @Override public void run() { try { Thread.sleep(2000); listener.onRemoteContentChange("Random content 1", new Date()); Thread.sleep(500); listener.onRemoteContentChange("Random content 2", new Date()); Thread.sleep(100); listener.onRemoteContentChange("Random content 3", new Date()); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); } @Override public void deactivatePolling() { this.pullingEnabled = false; log.debug("Deactivated!"); } @Override public void activatePush() { this.pushEnabled = true; } @Override public void deactivatePush() { this.pushEnabled = false; } @Override public void updateRemoteContentAsync(final String content, final Date date) { this.executor.execute(new Runnable() { @Override public void run() { setRemoteContent(content, date); } }); } @Override public boolean isPollingActivated() { return this.pullingEnabled; } @Override public boolean isPushActivated() { return this.pushEnabled; } @Override public void setRemoteContent(String content, Date date) { System.out .println("Contacting server blabla taking long time blabla...."); try { Thread.sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }