net.nokok.twitduke.pluginsupport.eventrunner.StreamEventRunner.java Source code

Java tutorial

Introduction

Here is the source code for net.nokok.twitduke.pluginsupport.eventrunner.StreamEventRunner.java

Source

/*
 * The MIT License
 *
 * Copyright 2014 noko
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */
package net.nokok.twitduke.pluginsupport.eventrunner;

import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import net.nokok.twitduke.pluginsupport.PluginObjectName;
import net.nokok.twitduke.pluginsupport.plugin.Plugin;
import net.nokok.twitduke.pluginsupport.plugin.PluginRegistrable;
import twitter4j.DirectMessage;
import twitter4j.StallWarning;
import twitter4j.Status;
import twitter4j.StatusDeletionNotice;
import twitter4j.StatusListener;
import twitter4j.User;
import twitter4j.UserList;
import twitter4j.UserStreamListener;

public class StreamEventRunner implements UserStreamListener, StatusListener, PluginRegistrable {

    private final EventRunner eventRunner = new EventRunner(PluginObjectName.STREAM);

    public StreamEventRunner() {

    }

    public StreamEventRunner(List<Plugin> plugins) {
        plugins.forEach(eventRunner::addPlugin);
    }

    @Override
    public void addPlugin(Plugin p) {
        eventRunner.addPlugin(p);
    }

    @Override
    public void onBlock(User source, User blockedUser) {
        eventRunner.invokeAll("onBlock", source, blockedUser);
    }

    @Override
    public void onDeletionNotice(long directMessageId, long userId) {
        eventRunner.invokeAll("onDeletionNotice", directMessageId, userId);
    }

    @Override
    public void onDeletionNotice(StatusDeletionNotice statusDeletionNotice) {
        eventRunner.invokeAll("onDeletionNotice", statusDeletionNotice);
    }

    @Override
    public void onDirectMessage(DirectMessage directMessage) {
        eventRunner.invokeAll("onDirectMessage", directMessage);
    }

    @Override
    public void onException(Exception ex) {
        eventRunner.invokeAll("onException", ex);
    }

    @Override
    public void onFavorite(User source, User target, Status favoritedStatus) {
        eventRunner.invokeAll("onFavorite", source, target, favoritedStatus);
    }

    @Override
    public void onFollow(User source, User followedUser) {
        eventRunner.invokeAll("onFollow", source, followedUser);
    }

    @Override
    public void onFriendList(long[] friendIds) {
        List<long[]> friends = Stream.of(friendIds).collect(Collectors.toList());
        eventRunner.invokeAll("onFriendList", friends);
    }

    @Override
    public void onScrubGeo(long userId, long upToStatusId) {
        eventRunner.invokeAll("onScrubGeo", userId, upToStatusId);
    }

    @Override
    public void onStallWarning(StallWarning warning) {
        eventRunner.invokeAll("onStallWarning", warning);
    }

    @Override
    public void onStatus(Status status) {
        eventRunner.invokeAll("onStatus", status);
    }

    @Override
    public void onTrackLimitationNotice(int numberOfLimitedStatuses) {
        eventRunner.invokeAll("onTrackLimitationNotice", numberOfLimitedStatuses);
    }

    @Override
    public void onUnblock(User source, User unblockedUser) {
        eventRunner.invokeAll("onUnblock", source, unblockedUser);
    }

    @Override
    public void onUnfavorite(User source, User target, Status unfavoritedStatus) {
        eventRunner.invokeAll("onUnfavorite", source, target, unfavoritedStatus);
    }

    @Override
    public void onUnfollow(User source, User unfollowedUser) {
        eventRunner.invokeAll("onUnFollow", source, unfollowedUser);
    }

    @Override
    public void onUserListCreation(User listOwner, UserList list) {
        eventRunner.invokeAll("onUserListCreation", listOwner, list);
    }

    @Override
    public void onUserListDeletion(User listOwner, UserList list) {
        eventRunner.invokeAll("onUserListDeletion", listOwner, list);
    }

    @Override
    public void onUserListMemberAddition(User addedMember, User listOwner, UserList list) {
        eventRunner.invokeAll("onUserListMemberAddition", addedMember, listOwner, list);
    }

    @Override
    public void onUserListMemberDeletion(User deletedMember, User listOwner, UserList list) {
        eventRunner.invokeAll("onUserListMemberDeletion", deletedMember, listOwner, list);
    }

    @Override
    public void onUserListSubscription(User subscriber, User listOwner, UserList list) {
        eventRunner.invokeAll("onUserListSubscription", subscriber, listOwner, list);
    }

    @Override
    public void onUserListUnsubscription(User subscriber, User listOwner, UserList list) {
        eventRunner.invokeAll("onUserListUnsubscription", subscriber, listOwner, list);
    }

    @Override
    public void onUserListUpdate(User listOwner, UserList list) {
        eventRunner.invokeAll("onUserListUpdate", listOwner, list);
    }

    @Override
    public void onUserProfileUpdate(User updatedUser) {
        eventRunner.invokeAll("onUserProfileUpdate", updatedUser);
    }

}