package network.thunder.core.communication.objects.messages.impl;
import network.thunder.core.communication.objects.messages.impl.message.gossip.objects.PubkeyIPObject;
import network.thunder.core.communication.objects.messages.interfaces.helper.LNEventHelper;
import network.thunder.core.communication.objects.messages.interfaces.helper.LNEventListener;
import network.thunder.core.communication.objects.subobjects.PaymentSecret;
import network.thunder.core.database.objects.Channel;
import network.thunder.core.database.objects.Payment;
import network.thunder.core.database.objects.PaymentWrapper;
import network.thunder.core.mesh.NodeClient;
import java.util.ArrayList;
import java.util.List;
/**
* Created by matsjerratsch on 08/02/2016.
*/
public class LNEventHelperImpl implements LNEventHelper {
List<LNEventListener> listeners = new ArrayList<>();
@Override
public void addListener (LNEventListener listener) {
listeners.add(listener);
}
@Override
public void removeListener (LNEventListener listener) {
listeners.remove(listener);
}
@Override
public void onConnectionOpened (NodeClient node) {
for (LNEventListener listener : listeners) {
listener.onConnectionOpened(node);
}
}
@Override
public void onConnectionClosed (NodeClient node) {
for (LNEventListener listener : listeners) {
listener.onConnectionClosed(node);
}
}
@Override
public void onChannelOpened (Channel channel) {
for (LNEventListener listener : listeners) {
listener.onChannelOpened(channel);
}
}
@Override
public void onChannelClosed (Channel channel) {
for (LNEventListener listener : listeners) {
listener.onChannelClosed(channel);
}
}
@Override
public void onReceivedIP (PubkeyIPObject ip) {
for (LNEventListener listener : listeners) {
listener.onReceivedIP(ip);
}
}
@Override
public void onPaymentRelayed (PaymentWrapper wrapper) {
for (LNEventListener listener : listeners) {
listener.onPaymentRelayed(wrapper);
}
}
@Override
public void onPaymentRefunded (Payment payment) {
for (LNEventListener listener : listeners) {
listener.onPaymentRefunded(payment);
}
}
@Override
public void onPaymentExchangeDone () {
}
@Override
public void onPaymentCompleted (PaymentSecret payment) {
for (LNEventListener listener : listeners) {
listener.onPaymentCompleted(payment);
}
}
@Override
public void onP2PDataReceived () {
for (LNEventListener listener : listeners) {
listener.onP2PDataReceived();
}
}
}