Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2013-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved.
   *
   * Licensed under the Apache License, Version 2.0 (the "License").
   * You may not use this file except in compliance with the License.
   * A copy of the License is located at
   *
   *  http://aws.amazon.com/apache2.0
   *
  * or in the "license" file accompanying this file. This file 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.amazonaws.internal;
 
 import static com.amazonaws.util.SdkRuntime.shouldAbort;
 
 
Base class for AWS Java SDK specific java.io.FilterInputStream.
 
 public class SdkFilterInputStream extends FilterInputStream implements
         MetricAwareReleasable {
     protected SdkFilterInputStream(InputStream in) {
         super(in);
     }
 
     @Override
     public boolean isMetricActivated() {
         if ( instanceof MetricAware) {
             MetricAware metricAware = (MetricAware);
             return metricAware.isMetricActivated();
         }
         return false;
     }

    
Aborts with subclass specific abortion logic executed if needed. Note the interrupted status of the thread is cleared by this method.

Throws:
com.amazonaws.AbortedException if found necessary.
 
     protected final void abortIfNeeded() {
         if (shouldAbort()) {
             abort();    // execute subclass specific abortion logic
             throw new AbortedException();
         }
     }

    
Can be used to provide abortion logic prior to throwing the AbortedException. No-op by default.
 
     protected void abort() {
         // no-op by default, but subclass such as S3ObjectInputStream may override
     }
 
     @Override
     public int read() throws IOException {
         abortIfNeeded();
         return .read();
     }
 
     @Override
     public int read(byte b[], int offint lenthrows IOException {
         abortIfNeeded();
         return .read(bofflen);
     }
 
     @Override
     public long skip(long nthrows IOException {
         abortIfNeeded();
         return .skip(n);
     }
 
     @Override
     public int available() throws IOException {
         abortIfNeeded();
         return .available();
     }
 
     @Override
     public void close() throws IOException {
         .close();
         abortIfNeeded();
     }
 
     @Override
     public synchronized void mark(int readlimit) {
         abortIfNeeded();
         .mark(readlimit);
     }
 
     @Override
    public synchronized void reset() throws IOException {
        abortIfNeeded();
        .reset();
    }
    @Override
    public boolean markSupported() {
        abortIfNeeded();
        return .markSupported();
    }
    @Override
    public void release() {
        // Don't call IOUtils.release(in, null) or else could lead to infinite loop
        SdkIOUtils.closeQuietly(this);
        if ( instanceof Releasable) {
            // This allows any underlying stream that has the close operation
            // disabled to be truly released
            Releasable r = (Releasable);
            r.release();
        }
    }
New to GrepCode? Check out our FAQ X