From 68b65bad41900dde8b4beb095a42cf958fc08fcc Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Fri, 13 Jul 2007 00:15:04 +0000 Subject: [PATCH] Create a ConfirmAdapter that expects a result but ignores it. The old ConfirmAdapter becomes a trivial implementation that simply expects a Void result. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4759 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../presents/util/ConfirmAdapter.java | 32 ++------- .../presents/util/IgnoreConfirmAdapter.java | 65 +++++++++++++++++++ 2 files changed, 69 insertions(+), 28 deletions(-) create mode 100644 src/java/com/threerings/presents/util/IgnoreConfirmAdapter.java diff --git a/src/java/com/threerings/presents/util/ConfirmAdapter.java b/src/java/com/threerings/presents/util/ConfirmAdapter.java index f4e4737ee..6e3dd9b96 100644 --- a/src/java/com/threerings/presents/util/ConfirmAdapter.java +++ b/src/java/com/threerings/presents/util/ConfirmAdapter.java @@ -21,44 +21,20 @@ package com.threerings.presents.util; -import com.samskivert.util.ResultListener; - -import com.threerings.presents.Log; -import com.threerings.presents.client.InvocationService.ConfirmListener; -import com.threerings.presents.data.InvocationCodes; -import com.threerings.presents.server.InvocationException; +import com.threerings.presents.client.InvocationService; /** * Adapts the response from a {@link ResultListener} to a {@link ConfirmListener} if the failure is * an instance fo {@link InvocationException} the message will be passed on to the confirm * listener, otherwise they will be provided with {@link InvocationCodes#INTERNAL_ERROR}. */ -public class ConfirmAdapter implements ResultListener +public class ConfirmAdapter extends IgnoreConfirmAdapter { /** * Creates an adapter with the supplied listener. */ - public ConfirmAdapter (ConfirmListener listener) + public ConfirmAdapter (InvocationService.ConfirmListener listener) { - _listener = listener; + super(listener); } - - // documentation inherited from interface - public void requestCompleted (Void result) - { - _listener.requestProcessed(); - } - - // documentation inherited from interface - public void requestFailed (Exception cause) - { - if (cause instanceof InvocationException) { - _listener.requestFailed(cause.getMessage()); - } else { - Log.logStackTrace(cause); - _listener.requestFailed(InvocationCodes.INTERNAL_ERROR); - } - } - - protected ConfirmListener _listener; } diff --git a/src/java/com/threerings/presents/util/IgnoreConfirmAdapter.java b/src/java/com/threerings/presents/util/IgnoreConfirmAdapter.java new file mode 100644 index 000000000..14d6ee5ea --- /dev/null +++ b/src/java/com/threerings/presents/util/IgnoreConfirmAdapter.java @@ -0,0 +1,65 @@ +// +// $Id$ +// +// Narya library - tools for developing networked games +// Copyright (C) 2002-2007 Three Rings Design, Inc., All Rights Reserved +// http://www.threerings.net/code/narya/ +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published +// by the Free Software Foundation; either version 2.1 of the License, or +// (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +package com.threerings.presents.util; + +import com.samskivert.util.ResultListener; + +import com.threerings.presents.Log; +import com.threerings.presents.client.InvocationService; +import com.threerings.presents.data.InvocationCodes; +import com.threerings.presents.server.InvocationException; + +/** + * Adapts the response from a {@link ResultListener} to a {@link ConfirmListener} wherein the + * result is ignored. If the failure is an instance fo {@link InvocationException} the message will + * be passed on to the confirm listener, otherwise they will be provided with {@link + * InvocationCodes#INTERNAL_ERROR}. + */ +public class IgnoreConfirmAdapter implements ResultListener +{ + /** + * Creates an adapter with the supplied listener. + */ + public IgnoreConfirmAdapter (InvocationService.ConfirmListener listener) + { + _listener = listener; + } + + // documentation inherited from interface + public void requestCompleted (T result) + { + _listener.requestProcessed(); + } + + // documentation inherited from interface + public void requestFailed (Exception cause) + { + if (cause instanceof InvocationException) { + _listener.requestFailed(cause.getMessage()); + } else { + Log.logStackTrace(cause); + _listener.requestFailed(InvocationCodes.INTERNAL_ERROR); + } + } + + protected InvocationService.ConfirmListener _listener; +}