001 /*
002 * JBoss, Home of Professional Open Source.
003 * Copyright 2008, Red Hat Middleware LLC, and individual contributors
004 * as indicated by the @author tags. See the copyright.txt file in the
005 * distribution for a full listing of individual contributors.
006 *
007 * This is free software; you can redistribute it and/or modify it
008 * under the terms of the GNU Lesser General Public License as
009 * published by the Free Software Foundation; either version 2.1 of
010 * the License, or (at your option) any later version.
011 *
012 * This software is distributed in the hope that it will be useful,
013 * but WITHOUT ANY WARRANTY; without even the implied warranty of
014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
015 * Lesser General Public License for more details.
016 *
017 * You should have received a copy of the GNU Lesser General Public
018 * License along with this software; if not, write to the Free
019 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
020 * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
021 */
022 package org.jboss.dna.graph.commands;
023
024 /**
025 * The base interface for all repository commands
026 *
027 * @author Randall Hauch
028 */
029 public interface GraphCommand {
030
031 /**
032 * Return whether this command has been cancelled.
033 *
034 * @return true if this command has been cancelled, or false otherwise.
035 */
036 boolean isCancelled();
037
038 /**
039 * Set the error for this command.
040 *
041 * @param error the exception
042 * @see #getError()
043 * @see #hasError()
044 * @see #hasNoError()
045 */
046 void setError( Throwable error );
047
048 /**
049 * Get the error for this command.
050 *
051 * @return the error, or null if there is no error
052 * @see #setError(Throwable)
053 * @see #hasError()
054 * @see #hasNoError()
055 */
056 Throwable getError();
057
058 /**
059 * Return true if this command has an {@link #getError() error}.
060 *
061 * @return true if the command has an error, or false otherwise
062 * @see #getError()
063 * @see #setError(Throwable)
064 * @see #hasNoError()
065 */
066 boolean hasError();
067
068 /**
069 * Convenience method that is equivalent to <code>!hasError()</code>.
070 *
071 * @return true if the command has no error, or false otherwise
072 * @see #getError()
073 * @see #setError(Throwable)
074 * @see #hasError()
075 */
076 boolean hasNoError();
077
078 }