001/*
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements.  See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License.  You may obtain a copy of the License at
008 *
009 *      http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017package org.apache.wicket.response;
018
019import org.apache.wicket.request.Response;
020
021
022/**
023 * Response implementation that discards all output.
024 * 
025 * @author Jonathan Locke
026 */
027public class NullResponse extends Response
028{
029        /** The one and only instance of NullResponse */
030        private static final NullResponse instance = new NullResponse();
031
032        /**
033         * Private constructor to force use of static factory method.
034         */
035        private NullResponse()
036        {
037        }
038
039        /**
040         * @return The one and only instance of NullResponse
041         */
042        public static NullResponse getInstance()
043        {
044                return instance;
045        }
046
047        /**
048         * @see org.apache.wicket.request.Response#write(CharSequence)
049         */
050        @Override
051        public void write(CharSequence string)
052        {
053                // Does nothing
054        }
055
056        @Override
057        public void write(byte[] array)
058        {
059        }
060
061        @Override
062        public void write(byte[] array, int offset, int length)
063        {
064        }
065
066        @Override
067        public String encodeURL(CharSequence url)
068        {
069                return url != null ? url.toString() : null;
070        }
071
072        @Override
073        public Object getContainerResponse()
074        {
075                return null;
076        }
077}