001package com.hammurapi.common; 002 003/** 004 * Converts argument to com.hammurapi.common.Observable. If argument is instance 005 * of com.hammurapi.common.Observable, it is returned as is. If argument is instance 006 * of java.util.Observable, it is adapted to com.hammurapi.common.Observable. If argument 007 * is instance of com.hammurapi.common.Adaptable, then its getAdapter() method is invoked to 008 * get com.hammurapi.common.Observable adapter. 009 * @author Pavel Vlasov 010 * 011 * @param <T> 012 */ 013public class SimpleObservableConverter<T> implements ObservableConverter<T> { 014 015 /** 016 * @param obj 017 * @return Observable or null if argument cannot be converted to observable. 018 */ 019 @Override 020 public Observable<T> convert(T obj) { 021 if (obj instanceof Observable) { 022 return (Observable<T>) obj; 023 } 024 025 if (obj instanceof java.util.Observable) { 026 return (Observable<T>) new ObservableAdapter((java.util.Observable) obj); 027 } 028 029 if (obj instanceof Adaptable) { 030 return ((Adaptable) obj).getAdapter(Observable.class, DefaultContext.INSTANCE); 031 } 032 033 return null; 034 } 035 036}