All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.mygreen.supercsv.annotation.conversion.CsvHalfChar Maven / Gradle / Ivy

Go to download

CSVのJavaライブラリであるSuperCSVに、アノテーション機能を追加したライブラリです。

There is a newer version: 2.3
Show newest version
package com.github.mygreen.supercsv.annotation.conversion;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Repeatable;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import com.github.mygreen.supercsv.annotation.DefaultGroup;
import com.github.mygreen.supercsv.builder.BuildCase;
import com.github.mygreen.supercsv.cellprocessor.conversion.CharCategory;

/**
 * 日本語の全角文字を半角文字に変換します。
 * 
 * 

基本的な使い方

* *
    *
  • 属性 {@link #categories()}で、変換対象の文字の種類を指定することができます。 *
      *
    • 指定しない場合は、全ての文字が変換対象となります。
    • *
    • 文字の種類は、「英字のアルファベット」「数値」「空白」「記号」「片仮名」があります。
    • *
    • 特に片仮名については、濁点・半濁点の場合、全角から半角に変換すると文字数が変わるので注意してください。
    • *
    *
  • *
  • アノテーション{@link CsvFullChar}と併用する際には、処理結果が互いに変換対象となるため、 * 属性{@link #cases()}や{@link #groups()}で適用するケースを分けるようにしてください。 *
  • *
* *

 * {@literal @CsvBean}
 * public class SampleCsv {
 *     
 *     {@literal @CsvColumn(number=1)}
 *     {@literal @CsvHalfChar}
 *     private Integer number;
 *     
 *     // 文字種別を限定する場合
 *     {@literal @CsvColumn(number=2)}
 *     {@literal @CsvHalfChar(categories={CharCategory.Alpha, CharCategory.Number})}
 *     private String name;
 *     
 *     // 書き込み時のみ適用する場合
 *     {@literal @CsvColumn(number=3)}
 *     {@literal @CsvHalfChar(cases=BuildCase.Write)}
 *     private String comment;
 *     
 *     // getter/setterは省略
 * }
 * 
* * @since 2.0 * @author T.TSUCHIE * */ @Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Repeatable(CsvHalfChar.List.class) @CsvConversion(value={}) public @interface CsvHalfChar { /** * 変換対象の文字の種類を指定します。 * @return 指定しない場合は、全ての文字が対象となります。 */ CharCategory[] categories() default {}; /** * 適用するケースを指定します。 * @return 何も指定しない場合は全てのケースに適用されます。 */ BuildCase[] cases() default {}; /** * グループのクラスを指定します。 *

処理ごとに適用するアノテーションを切り替えたい場合に指定します。 * @return 指定しない場合は、{@link DefaultGroup}が適用され全ての処理に適用されます。 */ Class[] groups() default {}; /** * アノテーションの処理順序の定義。 * @return 値が大きいほど後に実行されます。 * 値が同じ場合は、アノテーションのクラス名の昇順になります。 */ int order() default 0; /** * アノテーションを複数個指定する際の要素です。 */ @Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @interface List { CsvHalfChar[] value(); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy