diff options
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/util/UUEncoder.java')
-rw-r--r-- | framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/util/UUEncoder.java | 148 |
1 files changed, 0 insertions, 148 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/util/UUEncoder.java b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/util/UUEncoder.java deleted file mode 100644 index 77e1bee1..00000000 --- a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/util/UUEncoder.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) 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 org.apache.tools.ant.util; - -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.io.PrintStream; - -/** - * UUEncoding of an input stream placed into an outputstream. - * This class is meant to be a drop in replacement for - * sun.misc.UUEncoder, which was previously used by Ant. - * The uuencode algorithm code has been copied from the - * geronimo project. - **/ - -public class UUEncoder { - protected static final int DEFAULT_MODE = 644; - private static final int MAX_CHARS_PER_LINE = 45; - private static final int INPUT_BUFFER_SIZE = MAX_CHARS_PER_LINE * 100; - private OutputStream out; - private String name; - - /** - * Constructor specifying a name for the encoded buffer, begin - * line will be: - * <pre> - * begin 644 [NAME] - * </pre> - * @param name the name of the encoded buffer. - */ - public UUEncoder(String name) { - this.name = name; - } - - /** - * UUEncode bytes from the input stream, and write them as text characters - * to the output stream. This method will run until it exhausts the - * input stream. - * @param is the input stream. - * @param out the output stream. - * @throws IOException if there is an error. - */ - public void encode(InputStream is, OutputStream out) - throws IOException { - this.out = out; - encodeBegin(); - byte[] buffer = new byte[INPUT_BUFFER_SIZE]; - int count; - while ((count = is.read(buffer, 0, buffer.length)) != -1) { - int pos = 0; - while (count > 0) { - int num = count > MAX_CHARS_PER_LINE - ? MAX_CHARS_PER_LINE - : count; - encodeLine(buffer, pos, num, out); - pos += num; - count -= num; - } - } - out.flush(); - encodeEnd(); - } - - /** - * Encode a string to the output. - */ - private void encodeString(String n) throws IOException { - PrintStream writer = new PrintStream(out); - writer.print(n); - writer.flush(); - } - - private void encodeBegin() throws IOException { - encodeString("begin " + DEFAULT_MODE + " " + name + "\n"); - } - - private void encodeEnd() throws IOException { - encodeString(" \nend\n"); - } - - /** - * Encode a single line of data (less than or equal to 45 characters). - * - * @param data The array of byte data. - * @param off The starting offset within the data. - * @param length Length of the data to encode. - * @param out The output stream the encoded data is written to. - * - * @exception IOException - */ - private void encodeLine( - byte[] data, int offset, int length, OutputStream out) - throws IOException { - // write out the number of characters encoded in this line. - // CheckStyle:MagicNumber OFF - out.write((byte) ((length & 0x3F) + ' ')); - // CheckStyle:MagicNumber ON - byte a; - byte b; - byte c; - - for (int i = 0; i < length;) { - // set the padding defaults - b = 1; - c = 1; - // get the next 3 bytes (if we have them) - a = data[offset + i++]; - if (i < length) { - b = data[offset + i++]; - if (i < length) { - c = data[offset + i++]; - } - } - - // CheckStyle:MagicNumber OFF - byte d1 = (byte) (((a >>> 2) & 0x3F) + ' '); - byte d2 = (byte) ((((a << 4) & 0x30) | ((b >>> 4) & 0x0F)) + ' '); - byte d3 = (byte) ((((b << 2) & 0x3C) | ((c >>> 6) & 0x3)) + ' '); - byte d4 = (byte) ((c & 0x3F) + ' '); - // CheckStyle:MagicNumber ON - - out.write(d1); - out.write(d2); - out.write(d3); - out.write(d4); - } - - // terminate with a linefeed alone - out.write('\n'); - } -} |