/* Copyright (c) 2008 Google Inc.
*
* 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.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.gdata.client.batch;
import com.google.gdata.util.common.base.Preconditions;
import com.google.gdata.data.BaseFeed;
import com.google.gdata.data.IFeed;
import com.google.gdata.data.batch.BatchInterrupted;
import com.google.gdata.data.batch.IBatchInterrupted;
import com.google.gdata.util.ServiceException;
/**
* Exception thrown by the client when an entry with a
* {@code <batch:interrupted>} tag has been detected.
*
*
*/
public class BatchInterruptedException
extends ServiceException {
private final IFeed feed;
private final IBatchInterrupted interrupted;
/**
* Creates a BatchInterrupted exception.
*
* @param feed
* @param interrupted
*/
public BatchInterruptedException(IFeed feed, IBatchInterrupted interrupted) {
super("Batch Interrupted (some operations might have succeeded) : " +
interrupted.getReason());
this.feed = feed;
this.interrupted = interrupted;
}
/**
* Gets the {@code <batch:interrupted>} tag that describes
* what went wrong.
*
* @return BatchInterrupted object
* @deprecated Use {@link #getIBatchInterrupted()} instead.
*/
@Deprecated
public BatchInterrupted getBatchInterrupted() {
Preconditions.checkState(interrupted == null
|| interrupted instanceof BatchInterrupted,
"Use getIBatchInterrupted() instead");
return (BatchInterrupted) interrupted;
}
/**
* Gets the {@code <batch:interrupted>} tag that describes
* what went wrong.
*
* @return BatchInterrupted object
*/
public IBatchInterrupted getIBatchInterrupted() {
return interrupted;
}
/**
* Gets the interrupted feed, which might contain reports of successful
* operations.
*
* The last entry on the feed is always the entry that contains the
* {@link BatchInterrupted} object.
*
* @return the feed
* @deprecated Use {@link #getIFeed()} instead.
*/
@Deprecated
public BaseFeed<?, ?> getFeed() {
Preconditions.checkState(feed == null
|| feed instanceof BaseFeed,
"Use getIFeed() instead");
return (BaseFeed<?, ?>) feed;
}
public IFeed getIFeed() {
return feed;
}
}