001    /**
002     * Copyright (C) 2011-2012 Barchart, Inc. <http://www.barchart.com/>
003     *
004     * All rights reserved. Licensed under the OSI BSD License.
005     *
006     * http://www.opensource.org/licenses/bsd-license.php
007     */
008    package com.barchart.util.concurrent;
009    
010    public class CancellableFutureNotifier<V, T extends FutureCallback<V, T>>
011                    extends FutureNotifierBase<V, T> {
012    
013            private FutureCallback<?, ?> parent;
014    
015            public CancellableFutureNotifier() {
016                    parent = null;
017            }
018    
019            public CancellableFutureNotifier(final FutureCallback<?, ?> parent_) {
020                    parent = parent_;
021            }
022    
023            public void setCancelCallback(final FutureCallback<?, ?> parent_) {
024                    parent = parent_;
025            }
026    
027            @Override
028            public boolean cancel(final boolean mayInterrupt) {
029                    if (parent != null) {
030                            parent.cancel(mayInterrupt);
031                    }
032                    return super.cancel(mayInterrupt);
033            }
034    
035    }