/*
 * Copyright 2004-2014 ICEsoft Technologies Canada Corp.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the
 * License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an "AS
 * IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */

package org.icepush;

import java.util.Collections;
import java.util.Map;
import java.util.Set;

public class NoopPushGroupManager
implements PushGroupManager {
    public final static PushGroupManager Instance = new NoopPushGroupManager();

    private NoopPushGroupManager() {
    }

    public void addBlockingConnectionServer(final BlockingConnectionServer server) {
    }

    public void addMember(final String groupName, final String pushID) {
    }

    public void addNotificationReceiver(final NotificationBroadcaster.Receiver observer) {
    }

    public void addPushGroupListener(final PushGroupListener listener) {
    }

    public void backOff(final String browserID, final long delay) {
    }

    public void cancelConfirmationTimeout(final Set<String> pushIDSet) {
    }

    public void cancelExpiryTimeout(final Set<String> pushIDSet) {
    }

    public void clearPendingNotification(final String pushID) {
    }

    public void clearPendingNotifications(final Set<String> pushIDSet) {
    }

    public void deleteNotificationReceiver(final NotificationBroadcaster.Receiver observer) {
    }

    public Map<String, String[]> getGroupMap() {
        return Collections.EMPTY_MAP;
    }

    public Set<String> getPendingNotificationSet() {
        return Collections.emptySet();
    }

    public PushID getPushID(final String pushIDString) {
        return null;
    }

    public void push(final String groupName) {
    }

    public void push(final String groupName, final PushConfiguration config) {
    }

    public void park(final String pushID, final NotifyBackURI notifyBackURI) {
    }
    
    public void pruneParkedIDs(final NotifyBackURI notifyBackURI, final Set<String> listenedPushIDSet)  {
    }

    public void recordListen(final Set<String> pushIDSet, final long sequenceNumber) {
    }

    public void removeBlockingConnectionServer(final BlockingConnectionServer server) {
    }

    public void removeMember(final String groupName, final String pushID) {
    }

    public void removePushGroupListener(final PushGroupListener listener) {
    }

    public boolean setNotifyBackURI(
        final Set<String> pushIDSet, final NotifyBackURI notifyBackURI, final boolean broadcast) {

        return false;
    }

    public void shutdown() {
    }

    public void startConfirmationTimeout(final Set<String> pushIDSet) {
    }

    public void startExpiryTimeout(final Set<String> pushIDSet, final NotifyBackURI notifyBackURI) {
    }

    public NotifyBackURI getNotifyBackURI(String pushID) {
        return null;
    }
}
