Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (C) 2012 The Guava Authors
   *
   * 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.common.io;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 
 
Provides simple GWT-compatible substitutes for InputStream, OutputStream, Reader, and Writer so that BaseEncoding can use streaming implementations while remaining GWT-compatible.

Author(s):
Louis Wasserman
 
 @GwtCompatible(emulated = true)
 final class GwtWorkarounds {
   private GwtWorkarounds() {}

  
A GWT-compatible substitute for a Reader.
 
   interface CharInput {
     int read() throws IOException;
     void close() throws IOException;
   }

  
Views a CharSequence as a CharInput.
 
   static CharInput asCharInput(final CharSequence chars) {
     checkNotNull(chars);
     return new CharInput() {
       int index = 0;
 
       @Override
       public int read() {
         if ( < chars.length()) {
           return chars.charAt(++);
         } else {
           return -1;
         }
       }
 
       @Override
       public void close() {
          = chars.length();
       }
     };
   }

  
A GWT-compatible substitute for an InputStream.
 
   interface ByteInput {
     int read() throws IOException;
     void close() throws IOException;
   }

  
A GWT-compatible substitute for an OutputStream.
 
   interface ByteOutput {
     void write(byte bthrows IOException;
     void flush() throws IOException;
     void close() throws IOException;
   }

  
A GWT-compatible substitute for a Writer.
 
   interface CharOutput {
     void write(char cthrows IOException;
     void flush() throws IOException;
     void close() throws IOException;
   }

  
Returns a CharOutput whose toString() method can be used to get the combined output.
 
   static CharOutput stringBuilderOutput(int initialSize) {
     final StringBuilder builder = new StringBuilder(initialSize);
     return new CharOutput() {
 
      @Override
      public void write(char c) {
        builder.append(c);
      }
      @Override
      public void flush() {}
      @Override
      public void close() {}
      @Override
      public String toString() {
        return builder.toString();
      }
    };
  }
New to GrepCode? Check out our FAQ X