aboutsummaryrefslogtreecommitdiffstats
path: root/guava-tests/test/com/google/common/io/SourceSinkFactories.java
diff options
context:
space:
mode:
Diffstat (limited to 'guava-tests/test/com/google/common/io/SourceSinkFactories.java')
-rw-r--r--guava-tests/test/com/google/common/io/SourceSinkFactories.java378
1 files changed, 0 insertions, 378 deletions
diff --git a/guava-tests/test/com/google/common/io/SourceSinkFactories.java b/guava-tests/test/com/google/common/io/SourceSinkFactories.java
deleted file mode 100644
index 0ebfe28..0000000
--- a/guava-tests/test/com/google/common/io/SourceSinkFactories.java
+++ /dev/null
@@ -1,378 +0,0 @@
-/*
- * 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;
-import static com.google.common.io.SourceSinkFactory.ByteSinkFactory;
-import static com.google.common.io.SourceSinkFactory.ByteSourceFactory;
-import static com.google.common.io.SourceSinkFactory.CharSinkFactory;
-import static com.google.common.io.SourceSinkFactory.CharSourceFactory;
-
-import com.google.common.base.Charsets;
-
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.io.Reader;
-import java.io.Writer;
-import java.nio.CharBuffer;
-import java.util.Arrays;
-import java.util.logging.Logger;
-
-import javax.annotation.Nullable;
-
-/**
- * {@link SourceSinkFactory} implementations.
- *
- * @author Colin Decker
- */
-public class SourceSinkFactories {
-
- private SourceSinkFactories() {}
-
- public static CharSourceFactory stringCharSourceFactory() {
- return new StringSourceFactory();
- }
-
- public static ByteSourceFactory byteArraySourceFactory() {
- return new ByteArraySourceFactory();
- }
-
- public static ByteSourceFactory fileByteSourceFactory() {
- return new FileByteSourceFactory();
- }
-
- public static ByteSinkFactory fileByteSinkFactory() {
- return new FileByteSinkFactory(null);
- }
-
- public static ByteSinkFactory appendingFileByteSinkFactory() {
- String initialString = IoTestCase.ASCII + IoTestCase.I18N;
- return new FileByteSinkFactory(initialString.getBytes(Charsets.UTF_8));
- }
-
- public static CharSourceFactory fileCharSourceFactory() {
- return new FileCharSourceFactory();
- }
-
- public static CharSinkFactory fileCharSinkFactory() {
- return new FileCharSinkFactory(null);
- }
-
- public static CharSinkFactory appendingFileCharSinkFactory() {
- String initialString = IoTestCase.ASCII + IoTestCase.I18N;
- return new FileCharSinkFactory(initialString);
- }
-
- public static ByteSourceFactory urlByteSourceFactory() {
- return new UrlByteSourceFactory();
- }
-
- public static CharSourceFactory urlCharSourceFactory() {
- return new UrlCharSourceFactory();
- }
-
- public static CharSourceFactory asCharSourceFactory(final ByteSourceFactory factory) {
- checkNotNull(factory);
- return new CharSourceFactory() {
- @Override
- public CharSource createSource(String string) throws IOException {
- return factory.createSource(string.getBytes(Charsets.UTF_8))
- .asCharSource(Charsets.UTF_8);
- }
-
- @Override
- public String getExpected(String data) {
- return checkNotNull(data);
- }
-
- @Override
- public void tearDown() throws IOException {
- factory.tearDown();
- }
- };
- }
-
- public static CharSinkFactory asCharSinkFactory(final ByteSinkFactory factory) {
- checkNotNull(factory);
- return new CharSinkFactory() {
- @Override
- public CharSink createSink() throws IOException {
- return factory.createSink().asCharSink(Charsets.UTF_8);
- }
-
- @Override
- public String getSinkContents() throws IOException {
- return new String(factory.getSinkContents(), Charsets.UTF_8);
- }
-
- @Override
- public String getExpected(String data) {
- /*
- * Get what the byte sink factory would expect for no written bytes, then append expected
- * string to that.
- */
- byte[] factoryExpectedForNothing = factory.getExpected(new byte[0]);
- return new String(factoryExpectedForNothing, Charsets.UTF_8) + checkNotNull(data);
- }
-
- @Override
- public void tearDown() throws IOException {
- factory.tearDown();
- }
- };
- }
-
- public static ByteSourceFactory asSlicedByteSourceFactory(final ByteSourceFactory factory,
- final int off, final int len) {
- checkNotNull(factory);
- return new ByteSourceFactory() {
- @Override
- public ByteSource createSource(byte[] bytes) throws IOException {
- return factory.createSource(bytes).slice(off, len);
- }
-
- @Override
- public byte[] getExpected(byte[] bytes) {
- return Arrays.copyOfRange(factory.getExpected(bytes), off, off + len);
- }
-
- @Override
- public void tearDown() throws IOException {
- factory.tearDown();
- }
- };
- }
-
- private static class StringSourceFactory implements CharSourceFactory {
-
- @Override
- public CharSource createSource(String data) throws IOException {
- return CharStreams.asCharSource(data);
- }
-
- @Override
- public String getExpected(String data) {
- return data;
- }
-
- @Override
- public void tearDown() throws IOException {
- }
- }
-
- private static class ByteArraySourceFactory implements ByteSourceFactory {
-
- @Override
- public ByteSource createSource(byte[] bytes) throws IOException {
- return ByteStreams.asByteSource(bytes);
- }
-
- @Override
- public byte[] getExpected(byte[] bytes) {
- return bytes;
- }
-
- @Override
- public void tearDown() throws IOException {
- }
- }
-
- private abstract static class FileFactory {
-
- private static final Logger logger = Logger.getLogger(FileFactory.class.getName());
-
- private final ThreadLocal<File> fileThreadLocal = new ThreadLocal<File>();
-
- protected File createFile() throws IOException {
- File file = File.createTempFile("SinkSourceFile", "txt");
- fileThreadLocal.set(file);
- return file;
- }
-
- protected File getFile() {
- return fileThreadLocal.get();
- }
- public final void tearDown() throws IOException {
- if (!fileThreadLocal.get().delete()) {
- logger.warning("Unable to delete file: " + fileThreadLocal.get());
- }
- fileThreadLocal.remove();
- }
- }
-
- private static class FileByteSourceFactory extends FileFactory implements ByteSourceFactory {
-
- @Override
- public ByteSource createSource(byte[] bytes) throws IOException {
- checkNotNull(bytes);
- File file = createFile();
- OutputStream out = new FileOutputStream(file);
- try {
- out.write(bytes);
- } finally {
- out.close();
- }
- return Files.asByteSource(file);
- }
-
- @Override
- public byte[] getExpected(byte[] bytes) {
- return checkNotNull(bytes);
- }
- }
-
- private static class FileByteSinkFactory extends FileFactory implements ByteSinkFactory {
-
- private final byte[] initialBytes;
-
- private FileByteSinkFactory(@Nullable byte[] initialBytes) {
- this.initialBytes = initialBytes;
- }
-
- @Override
- public ByteSink createSink() throws IOException {
- File file = createFile();
- if (initialBytes != null) {
- FileOutputStream out = new FileOutputStream(file);
- try {
- out.write(initialBytes);
- } finally {
- out.close();
- }
- return Files.asByteSink(file, FileWriteMode.APPEND);
- }
- return Files.asByteSink(file);
- }
-
- @Override
- public byte[] getExpected(byte[] bytes) {
- if (initialBytes == null) {
- return checkNotNull(bytes);
- } else {
- byte[] result = new byte[initialBytes.length + bytes.length];
- System.arraycopy(initialBytes, 0, result, 0, initialBytes.length);
- System.arraycopy(bytes, 0, result, initialBytes.length, bytes.length);
- return result;
- }
- }
-
- @Override
- public byte[] getSinkContents() throws IOException {
- File file = getFile();
- InputStream in = new FileInputStream(file);
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- byte[] buffer = new byte[100];
- int read;
- while ((read = in.read(buffer)) != -1) {
- out.write(buffer, 0, read);
- }
- return out.toByteArray();
- }
- }
-
- private static class FileCharSourceFactory extends FileFactory implements CharSourceFactory {
-
- @Override
- public CharSource createSource(String string) throws IOException {
- checkNotNull(string);
- File file = createFile();
- Writer writer = new OutputStreamWriter(new FileOutputStream(file), Charsets.UTF_8);
- try {
- writer.write(string);
- } finally {
- writer.close();
- }
- return Files.asCharSource(file, Charsets.UTF_8);
- }
-
- @Override
- public String getExpected(String string) {
- return checkNotNull(string);
- }
- }
-
- private static class FileCharSinkFactory extends FileFactory implements CharSinkFactory {
-
- private final String initialString;
-
- private FileCharSinkFactory(@Nullable String initialString) {
- this.initialString = initialString;
- }
-
- @Override
- public CharSink createSink() throws IOException {
- File file = createFile();
- if (initialString != null) {
- Writer writer = new OutputStreamWriter(new FileOutputStream(file), Charsets.UTF_8);
- try {
- writer.write(initialString);
- } finally {
- writer.close();
- }
- return Files.asCharSink(file, Charsets.UTF_8, FileWriteMode.APPEND);
- }
- return Files.asCharSink(file, Charsets.UTF_8);
- }
-
- @Override
- public String getExpected(String string) {
- checkNotNull(string);
- return initialString == null
- ? string
- : initialString + string;
- }
-
- @Override
- public String getSinkContents() throws IOException {
- File file = getFile();
- Reader reader = new InputStreamReader(new FileInputStream(file), Charsets.UTF_8);
- StringBuilder builder = new StringBuilder();
- CharBuffer buffer = CharBuffer.allocate(100);
- while (reader.read(buffer) != -1) {
- buffer.flip();
- builder.append(buffer);
- buffer.clear();
- }
- return builder.toString();
- }
- }
-
- private static class UrlByteSourceFactory extends FileByteSourceFactory {
-
- @Override
- public ByteSource createSource(byte[] bytes) throws IOException {
- super.createSource(bytes);
- return Resources.asByteSource(getFile().toURI().toURL());
- }
- }
-
- private static class UrlCharSourceFactory extends FileCharSourceFactory {
-
- @Override
- public CharSource createSource(String string) throws IOException {
- super.createSource(string); // just ignore returned CharSource
- return Resources.asCharSource(getFile().toURI().toURL(), Charsets.UTF_8);
- }
- }
-}