com.orangesignal.csv.manager.CsvLoader Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of orangesignal-csv Show documentation
Show all versions of orangesignal-csv Show documentation
OrangeSignal CSV is a very flexible csv (comma-separated values) read and write library for Java.
/*
* Copyright 2013 the original author or 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.orangesignal.csv.manager;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
import java.util.List;
import java.util.zip.ZipFile;
import java.util.zip.ZipInputStream;
import com.orangesignal.csv.LhaEntryFilter;
import com.orangesignal.csv.ZipEntryFilter;
import com.orangesignal.csv.filters.BeanFilter;
import com.orangesignal.csv.handlers.BeanOrder;
import com.orangesignal.jlha.LhaFile;
import com.orangesignal.jlha.LhaInputStream;
/**
* 区切り文字形式データの統合入力インタフェースです。
*
* @param 区切り文字形式データの型
* @author Koji Sugisawa
*/
public interface CsvLoader {
/**
* Java プログラム要素フィルタを設定します。
*
* @param filter Java プログラム要素フィルタ
* @return このオブジェクトへの参照
* @since 1.3.0
*/
CsvLoader filter(BeanFilter filter);
/**
* 並び替え条件を設定します。
*
* @param orders 並び替え条件
* @return このオブジェクトへの参照
* @since 1.3.0
*/
CsvLoader order(BeanOrder... orders);
/**
* 取得データの開始位置を設定します。
*
* @param offset 取得データの開始位置
* @return このオブジェクトへの参照
* @since 1.3.0
*/
CsvLoader offset(int offset);
/**
* 取得データの限度数を設定します。
*
* @param limit 取得データの限度数
* @return このオブジェクトへの参照
* @since 1.3.0
*/
CsvLoader limit(int limit);
/**
* 指定された文字入力ストリームを読込み、
* 変換された区切り文字形式データのインスタンスを返します。
*
* @param reader 文字入力ストリーム
* @return 変換された区切り文字形式データのインスタンス
* @throws IOException 入出力エラーが発生した場合
*/
List from(Reader reader) throws IOException;
/**
* 指定された入力ストリームを指定されたエンコーディングで読込み、
* 変換された区切り文字形式データのインスタンスを返します。
*
* @param in 入力ストリーム
* @param encoding エンコーディング
* @return 変換された区切り文字形式データのインスタンス
* @throws IOException 入出力エラーが発生した場合
*/
List from(InputStream in, String encoding) throws IOException;
/**
* 指定された入力ストリームをプラットフォームのデフォルトエンコーディングで読込み、
* 変換された区切り文字形式データのインスタンスを返します。
*
* @param in 入力ストリーム
* @return 変換された区切り文字形式データのインスタンス
* @throws IOException 入出力エラーが発生した場合
*/
List from(InputStream in) throws IOException;
/**
* 指定されたファイルを指定されたエンコーディングで読込み、
* 変換された区切り文字形式データのインスタンスを返します。
*
* @param file 入力ファイル
* @param encoding エンコーディング
* @return 変換された区切り文字形式データのインスタンス
* @throws IOException 入出力エラーが発生した場合
*/
List from(File file, String encoding) throws IOException;
/**
* 指定されたファイルをプラットフォームのデフォルトエンコーディングで読込み、
* 変換された区切り文字形式データのインスタンスを返します。
*
* @param file 入力ファイル
* @return 変換された区切り文字形式データのインスタンス
* @throws IOException 入出力エラーが発生した場合
*/
List from(File file) throws IOException;
// ------------------------------------------------------------------------
// static load (compress support)
/**
* 指定された LHA 入力ストリームから指定されたフィルタの基準を満たす LHA エントリを指定されたエンコーディングで読込み、
* 変換された区切り文字形式データのインスタンスを返します。
*
* @param in LHA 入力ストリーム
* @param encoding エンコーディング
* @param filter LHA エントリフィルタ
* @return 変換された区切り文字形式データのインスタンス
* @throws IOException 入出力エラーが発生した場合
* @since 1.2.1
*/
List from(LhaInputStream in, String encoding, LhaEntryFilter filter) throws IOException;
/**
* 指定された LHA 入力ストリームからすべての LHA エントリを指定されたエンコーディングで読込み、
* 変換された区切り文字形式データのインスタンスを返します。
*
* @param in LHA 入力ストリーム
* @param encoding エンコーディング
* @return 変換された区切り文字形式データのインスタンス
* @throws IOException 入出力エラーが発生した場合
* @since 1.2.1
*/
List from(LhaInputStream in, String encoding) throws IOException;
/**
* 指定された LHA 入力ストリームから指定されたフィルタの基準を満たす LHA エントリをプラットフォームのデフォルトエンコーディングで読込み、
* 変換された区切り文字形式データのインスタンスを返します。
*
* @param in LHA 入力ストリーム
* @param filter LHA エントリフィルタ
* @return 変換された区切り文字形式データのインスタンス
* @throws IOException 入出力エラーが発生した場合
*/
List from(LhaInputStream in, LhaEntryFilter filter) throws IOException;
/**
* 指定された LHA 入力ストリームからすべての LHA エントリをプラットフォームのデフォルトエンコーディングで読込み、
* 変換された区切り文字形式データのインスタンスを返します。
*
* @param in LHA 入力ストリーム
* @return 変換された区切り文字形式データのインスタンス
* @throws IOException 入出力エラーが発生した場合
*/
List from(LhaInputStream in) throws IOException;
/**
* 指定された LHA ファイルから指定されたフィルタの基準を満たす LHA エントリを指定されたエンコーディングで読込み、
* 変換された区切り文字形式データのインスタンスを返します。
*
* @param lhaFile LHA ファイル
* @param encoding エンコーディング
* @param filter LHA エントリフィルタ
* @return 変換された区切り文字形式データのインスタンス
* @throws IOException 入出力エラーが発生した場合
* @since 1.2.1
*/
List from(LhaFile lhaFile, String encoding, LhaEntryFilter filter) throws IOException;
/**
* 指定された LHA ファイルから指定されたすべての LHA エントリを指定されたエンコーディングで読込み、
* 変換された区切り文字形式データのインスタンスを返します。
*
* @param lhaFile LHA ファイル
* @param encoding エンコーディング
* @return 変換された区切り文字形式データのインスタンス
* @throws IOException 入出力エラーが発生した場合
* @since 1.2.1
*/
List from(LhaFile lhaFile, String encoding) throws IOException;
/**
* 指定された LHA ファイルから指定されたフィルタの基準を満たす LHA エントリをプラットフォームのデフォルトエンコーディングで読込み、
* 変換された区切り文字形式データのインスタンスを返します。
*
* @param lhaFile LHA ファイル
* @param filter LHA エントリフィルタ
* @return 変換された区切り文字形式データのインスタンス
* @throws IOException 入出力エラーが発生した場合
*/
List from(LhaFile lhaFile, LhaEntryFilter filter) throws IOException;
/**
* 指定された LHA ファイルからすべての LHA エントリをプラットフォームのデフォルトエンコーディングで読込み、
* 変換された区切り文字形式データのインスタンスを返します。
*
* @param lhaFile LHA ファイル
* @return 変換された区切り文字形式データのインスタンス
* @throws IOException 入出力エラーが発生した場合
*/
List from(LhaFile lhaFile) throws IOException;
/**
* 指定された ZIP 入力ストリームから指定されたフィルタの基準を満たす ZIP エントリを指定されたエンコーディングで読込み、
* 変換された区切り文字形式データのインスタンスを返します。
*
* @param in ZIP 入力ストリーム
* @param encoding エンコーディング
* @param filter ZIP エントリフィルタ
* @return 変換された区切り文字形式データのインスタンス
* @throws IOException 入出力エラーが発生した場合
* @since 1.2.1
*/
List from(ZipInputStream in, String encoding, ZipEntryFilter filter) throws IOException;
/**
* 指定された ZIP 入力ストリームからすべての ZIP エントリを指定されたエンコーディングで読込み、
* 変換された区切り文字形式データのインスタンスを返します。
*
* @param in ZIP 入力ストリーム
* @param encoding エンコーディング
* @return 変換された区切り文字形式データのインスタンス
* @throws IOException 入出力エラーが発生した場合
* @since 1.2.1
*/
List from(ZipInputStream in, String encoding) throws IOException;
/**
* 指定された ZIP 入力ストリームから指定されたフィルタの基準を満たす ZIP エントリをプラットフォームのデフォルトエンコーディングで読込み、
* 変換された区切り文字形式データのインスタンスを返します。
*
* @param in ZIP 入力ストリーム
* @param filter ZIP エントリフィルタ
* @return 変換された区切り文字形式データのインスタンス
* @throws IOException 入出力エラーが発生した場合
*/
List from(ZipInputStream in, ZipEntryFilter filter) throws IOException;
/**
* 指定された ZIP 入力ストリームからすべての ZIP エントリをプラットフォームのデフォルトエンコーディングで読込み、
* 変換された区切り文字形式データのインスタンスを返します。
*
* @param in ZIP 入力ストリーム
* @return 変換された区切り文字形式データのインスタンス
* @throws IOException 入出力エラーが発生した場合
*/
List from(ZipInputStream in) throws IOException;
/**
* 指定された ZIP ファイルから指定されたフィルタの基準を満たす ZIP エントリを指定されたエンコーディングで読込み、
* 変換された区切り文字形式データのインスタンスを返します。
*
* @param zipFile ZIP ファイル
* @param encoding エンコーディング
* @param filter ZIP エントリフィルタ
* @return 変換された区切り文字形式データのインスタンス
* @throws IOException 入出力エラーが発生した場合
* @since 1.2.1
*/
List from(ZipFile zipFile, String encoding, ZipEntryFilter filter) throws IOException;
/**
* 指定された ZIP ファイルからすべての ZIP エントリを指定されたエンコーディングで読込み、
* 変換された区切り文字形式データのインスタンスを返します。
*
* @param zipFile ZIP ファイル
* @param encoding エンコーディング
* @return 変換された区切り文字形式データのインスタンス
* @throws IOException 入出力エラーが発生した場合
* @since 1.2.1
*/
List from(ZipFile zipFile, String encoding) throws IOException;
/**
* 指定された ZIP ファイルから指定されたフィルタの基準を満たす ZIP エントリをプラットフォームのデフォルトエンコーディングで読込み、
* 変換された区切り文字形式データのインスタンスを返します。
*
* @param zipFile ZIP ファイル
* @param filter ZIP エントリフィルタ
* @return 変換された区切り文字形式データのインスタンス
* @throws IOException 入出力エラーが発生した場合
*/
List from(ZipFile zipFile, ZipEntryFilter filter) throws IOException;
/**
* 指定された ZIP ファイルからすべての ZIP エントリをプラットフォームのデフォルトエンコーディングで読込み、
* 変換された区切り文字形式データのインスタンスを返します。
*
* @param zipFile ZIP ファイル
* @return 変換された区切り文字形式データのインスタンス
* @throws IOException 入出力エラーが発生した場合
*/
List from(ZipFile zipFile) throws IOException;
}