/*
- * Copyright 2005 the original author or authors.
- *
+ * Copyright 2005-2010 the original author or authors.
+ *
* 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.
*/
package org.wamblee.observer;
-import org.apache.log4j.Logger;
-
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
-
/**
* Implements subscription and notification logic for an observer pattern. This
* class is thread safe.
*/
public class Observable<ObservableType, Event> {
- private static final Logger LOGGER = Logger.getLogger(Observable.class);
-
/**
* Observable.
*/
/**
* Constructs the observable.
- *
+ *
* @param aObservable
* Observable this instance is used for.
* @param aNotifier
/**
* Subscribe an obvers.
- *
+ *
* @param aObserver
* Observer to subscribe.
* @return Event Event to send.
*/
- public synchronized long subscribe(
- Observer<ObservableType, Event> aObserver) {
+ public synchronized long subscribe(Observer<ObservableType, Event> aObserver) {
long subscription = counter++; // integer rage is so large it will
- // never roll over.
+ // never roll over.
observers.put(subscription, aObserver);
/**
* Unsubscribe an observer.
- *
+ *
* @param aSubscription
* Subscription which is used
* @throws IllegalArgumentException
/**
* Gets the number of subscribed observers.
- *
+ *
* @return Number of subscribed observers.
*/
public int getObserverCount() {
/**
* Notifies all subscribed observers.
- *
+ *
* @param aEvent
* Event to send.
*/
notifier.update(observer, observable, aEvent);
}
}
-
- /*
- * (non-Javadoc)
- *
- * @see java.lang.Object#finalize()
- */
- @Override
- protected void finalize() throws Throwable {
- if (observers.size() > 0) {
- LOGGER.error(
- "Still observers registered at finalization of observer!");
-
- for (Observer observer : observers.values()) {
- LOGGER.error(" observer: " + observer);
- }
- }
-
- super.finalize();
- }
}