001 /*
002 * Cumulus4j - Securing your data in the cloud - http://cumulus4j.org
003 * Copyright (C) 2011 NightLabs Consulting GmbH
004 *
005 * This program is free software: you can redistribute it and/or modify
006 * it under the terms of the GNU Affero General Public License as
007 * published by the Free Software Foundation, either version 3 of the
008 * License, or (at your option) any later version.
009 *
010 * This program is distributed in the hope that it will be useful,
011 * but WITHOUT ANY WARRANTY; without even the implied warranty of
012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
013 * GNU Affero General Public License for more details.
014 *
015 * You should have received a copy of the GNU Affero General Public License
016 * along with this program. If not, see <http://www.gnu.org/licenses/>.
017 */
018 package org.cumulus4j.keymanager.back.shared;
019
020 import javax.xml.bind.annotation.XmlRootElement;
021
022 /**
023 * {@link Response} implementation not containing any data and symbolising Java's <code>null</code> value.
024 *
025 * @author Marco หงุ่ยตระกูล-Schulze - marco at nightlabs dot de
026 */
027 @XmlRootElement
028 public class NullResponse
029 extends Response
030 {
031 private static final long serialVersionUID = 1L;
032
033 /**
034 * Create a <code>NullResponse</code> without a prior request. This is just used as filler
035 * without being forwarded to any requester. It circumvents the problem that Jersey has a problem
036 * when a REST service (aka resource) method expecting an entity should be called without one.
037 */
038 public NullResponse() { }
039
040 /**
041 * Create a <code>NullResponse</code> as answer to a prior request. It is
042 * processed like any other response, i.e. forwarded to the requester, but finally
043 * translated to <code>null</code>
044 * (<code>org.cumulus4j.store.crypto.keymanager.messagebroker.MessageBroker.query(Class<R>, Request)</code>
045 * never returns a <code>NullResponse</code> instance; instead it returns <code>null</code>).
046 * @param request the request that is answered by this new <code>NullResponse</code> instance.
047 */
048 public NullResponse(Request request)
049 {
050 super(request);
051 }
052 }