Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /*
  * Licensed to Julian Hyde under one or more
  * contributor license agreements.  See the NOTICE file distributed with
  * this work for additional information regarding copyright ownership.
  * 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.
 */
package net.hydromatic.quidem;
Writer that accepts only a given amount of text.
class LimitWriter extends FilterWriter {
  private int length;
  private final int maxLength;
  protected LimitWriter(Writer wint maxLength) {
    super(w);
    this. = maxLength;
  }
  private int length() {
    return ;
  }
  @Override public void write(int cthrows IOException {
    final int newLength = length() + 1;
    if (newLength <= ) {
      super.write(c);
      ++;
    }
  }
  @Override public void write(char[] cbufint offint len)
      throws IOException {
    if ( + len <= ) {
      // enough room for whole string
      super.write(cbufofflen);
       += len;
    } else if ( < ) {
      // enough room for part of string
      super.write(cbuf, off, maxLength - );
       = ;
    }
  }
  @Override public void write(String strint offint lenthrows IOException {
    if ( + len <= ) {
      // enough room for whole string
      super.write(strofflen);
       += len;
    } else if ( < ) {
      // enough room for part of string
      super.write(str, off, maxLength - );
       = ;
    }
  }

  
Appends a message if the limit has been reached or exceeded.
  public void ellipsis(String message) {
    if ( >= ) {
      try {
        .write(message);
        .flush();
      } catch (IOException e) {
        throw Throwables.propagate(e);
      }
    }
  }
// End LimitWriter.java
New to GrepCode? Check out our FAQ X