hackedteam/core-blackberry

View on GitHub
InjectionFramework/src/blackberry/interfaces/Listener.java

Summary

Maintainability
A
1 hr
Test Coverage
//#preprocess

/* *************************************************
 * Copyright (c) 2010 - 2011
 * HT srl,   All rights reserved.
 * 
 * Project      : RCS, RCSBlackBerry
 * *************************************************/
    
package blackberry.interfaces;


import java.util.Vector;

import blackberry.debug.Debug;
import blackberry.debug.DebugLevel;


public abstract class Listener {

    //#ifdef DEBUG
    static Debug debug = new Debug("Listener", DebugLevel.INFORMATION);
    //#endif

    /**
     * Adds the observer.
     * 
     * @param observers
     *            Vector of observers
     * @param observer
     *            the observer
     */
    public synchronized static void addObserver(final Vector observers,
            final Observer observer) {

        //#ifdef DBC
        Check.requires(!observers.contains(observer), "already observing");
        //#endif

        //#ifdef DEBUG
        debug.trace("adding observer: " + observer);
        //#endif
        if (!observers.contains(observer)) {
            observers.addElement(observer);
        }else{
            //#ifdef DEBUG
            debug.warn("addObserver: already observing");
            //#endif
        }
    }

    /**
     * Removes observer.
     * 
     * @param observers
     *            Vector of observers
     * @param observer
     *            the observer
     */
    public synchronized static void removeObserver(final Vector observers,
            final Observer observer) {
        //#ifdef DEBUG
        debug.trace("removing observer: " + observer);
        //#endif

        if (observers.contains(observer)) {
            observers.removeElement(observer);
        } else {
            //#ifdef DEBUG
            debug.trace("removing observer not present: " + observer);
            //#endif
        }
    }
}