You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@abdera.apache.org by jm...@apache.org on 2007/11/22 22:41:57 UTC

svn commit: r597500 - /incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/impl/SimpleResponseContext.java

Author: jmsnell
Date: Thu Nov 22 13:41:57 2007
New Revision: 597500

URL: http://svn.apache.org/viewvc?rev=597500&view=rev
Log:
Simple base impl of an AbstractResponseContext; intended to make it easier to create custom ResponseContext implementations

Added:
    incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/impl/SimpleResponseContext.java

Added: incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/impl/SimpleResponseContext.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/impl/SimpleResponseContext.java?rev=597500&view=auto
==============================================================================
--- incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/impl/SimpleResponseContext.java (added)
+++ incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/impl/SimpleResponseContext.java Thu Nov 22 13:41:57 2007
@@ -0,0 +1,79 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements.  The ASF licenses this file to You
+* 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.  For additional information regarding
+* copyright in this work, please see the NOTICE file in the top level
+* directory of this distribution.
+*/
+package org.apache.abdera.protocol.server.impl;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+
+/**
+ * A simple base implementation of AbstractResponseContext that makes it a bit 
+ * easier to create custom ResponseContext implementations
+ * 
+ * e.g. new SimpleResponseContext() {
+ *        public boolean hasEntity() { return true; }
+ *        public void writeEntity(Writer writer) { ... }
+ *      }
+ */
+public abstract class SimpleResponseContext 
+  extends AbstractResponseContext {
+  
+  protected String encoding = "UTF-8";
+  
+  protected void setEncoding(String encoding) {
+    this.encoding = encoding;
+  }
+  
+  protected String getEncoding() {
+    return this.encoding;
+  }
+  
+  public void writeTo(
+    OutputStream out) 
+      throws IOException {
+    if (hasEntity())
+      writeTo(new OutputStreamWriter(out,encoding));
+  }
+  
+  public void writeTo(
+    Writer writer) 
+      throws IOException {
+    if (hasEntity())
+      writeEntity(writer);
+  }
+  
+  protected abstract void writeEntity(
+    Writer writer) 
+      throws IOException;
+  
+  public void writeTo(
+    OutputStream out, 
+    org.apache.abdera.writer.Writer writer)
+      throws IOException {
+    throw new UnsupportedOperationException();
+  }
+  
+  public void writeTo(
+    Writer javaWriter,
+    org.apache.abdera.writer.Writer abderaWriter) 
+      throws IOException {
+    throw new UnsupportedOperationException();
+  }
+  
+}