@@ -0,0 +1,796 @@
+package com.apexmob.skink;%0D%0A%0D%0Apublic abstract class AbstractDataListener implements DataListener %7B%0D%0A%09%0D%0A%09private final DataManager dataManager;%0D%0A%09%0D%0A%09protected AbstractDataListener() %7B%0D%0A%09%09dataManager = null;%0D%0A%09%7D%0D%0A%09%0D%0A%09protected AbstractDataListener(DataManager dataManager) %7B%0D%0A%09%09if (dataManager == null) %7B%0D%0A%09%09%09throw new IllegalArgumentException(%22The data manager provided is null%22);%0D%0A%09%09%7D%0D%0A%09%09this.dataManager = dataManager;%0D%0A%09%7D%0D%0A%09%0D%0A%09protected boolean hasDataManager() %7B%0D%0A%09%09return dataManager != null;%0D%0A%09%7D%0D%0A%09%0D%0A%09protected DataManager getDataManager() %7B%0D%0A%09%09return dataManager;%0D%0A%09%7D%0D%0A%0D%0A%09@Override%0D%0A%09public void onData(Data data) %7B%0D%0A%09%7D%0D%0A%0D%0A%09@Override%0D%0A%09public void onDataComplete(DataComplete dataComplete) %7B%0D%0A%09%7D%0D%0A%0D%0A%09@Override%0D%0A%09public void onListenerComplete(ListenerComplete listenerComplete) %7B%0D%0A%09%7D%0D%0A%0D%0A%7D%0D%0A

Add AbstractDataListener to serve as empty implementation of DataListener with common functionality.