// Path: debugoverlay-no-op/src/main/java/com/ms_square/debugoverlay/DataModule.java
// public interface DataModule<T> {
// 
//     void start();
// 
//     void stop();
// 
//     void notifyObservers();
// 
//     void addObserver(DataObserver<T> observer);
// 
//     void removeObserver(DataObserver<T> observer);
// }
// 
// Path: debugoverlay-no-op/src/main/java/com/ms_square/debugoverlay/DataObserver.java
// public interface DataObserver<T> {
//     void onDataAvailable(T data);
// }


import com.ms_square.debugoverlay.DataModule;
import com.ms_square.debugoverlay.DataObserver;
package com.ms_square.debugoverlay.modules;


public abstract class BaseDataModule<T> implements DataModule<T> {

    @Override
    public void notifyObservers() {

    }

    @Override
    public void addObserver(DataObserver observer) {

    }

// Path: debugoverlay-no-op/src/main/java/com/ms_square/debugoverlay/DataModule.java
// public interface DataModule<T> {
// 
//     void start();
// 
//     void stop();
// 
//     void notifyObservers();
// 
//     void addObserver(DataObserver<T> observer);
// 
//     void removeObserver(DataObserver<T> observer);
// }
// 
// Path: debugoverlay-no-op/src/main/java/com/ms_square/debugoverlay/DataObserver.java
// public interface DataObserver<T> {
//     void onDataAvailable(T data);
// }


// Path: debugoverlay-no-op/src/main/java/com/ms_square/debugoverlay/modules/BaseDataModule.java
import com.ms_square.debugoverlay.DataModule;
import com.ms_square.debugoverlay.DataObserver;

package com.ms_square.debugoverlay.modules;


public abstract class BaseDataModule<T> implements DataModule<T> {

    @Override
    public void notifyObservers() {

    }

    @Override
    public void addObserver(DataObserver observer) {

    }

    @Override