package org.atomnuke.source.result; import org.atomnuke.source.action.AtomSourceAction; import org.atomnuke.atom.model.Entry; import org.atomnuke.atom.model.Feed; import org.atomnuke.source.action.ActionType; import org.atomnuke.source.action.AtomSourceActionImpl; /** * * @author zinic */ public class AtomSourceResultImpl implements AtomSourceResult { private static final AtomSourceAction DEFAULT_SOURCE_ACTION = new AtomSourceActionImpl(ActionType.HAS_NEXT); private final AtomSourceAction requestedAction; private final ResultType resultType; private final Feed feed; private final Entry entry; public AtomSourceResultImpl(Feed feed) { this(DEFAULT_SOURCE_ACTION, feed); } public AtomSourceResultImpl(Entry entry) { this(DEFAULT_SOURCE_ACTION, entry); } public AtomSourceResultImpl(AtomSourceAction action) { this(action, ResultType.EMPTY, null, null); } public AtomSourceResultImpl(AtomSourceAction action, Feed feed) { this(action, ResultType.FEED, feed, null); } public AtomSourceResultImpl(AtomSourceAction action, Entry entry) { this(action, ResultType.ENTRY, null, entry); } public AtomSourceResultImpl(AtomSourceAction requestedAction, ResultType resultType, Feed feed, Entry entry) { this.requestedAction = requestedAction; this.resultType = resultType; this.feed = feed; this.entry = entry; } @Override public ResultType type() { return resultType; } @Override public AtomSourceAction action() { return requestedAction; } @Override public Feed feed() { return feed; } @Override public Entry entry() { return entry; } }