package test.annotation;

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import net.w_horse.excelpojo.annotation.Bean;
import net.w_horse.excelpojo.annotation.ConstantValue;
import net.w_horse.excelpojo.annotation.HorizontalRepeats;
import net.w_horse.excelpojo.annotation.LabeledCell;
import net.w_horse.excelpojo.annotation.MappedCell;
import net.w_horse.excelpojo.annotation.PointedCell;
import net.w_horse.excelpojo.annotation.VerticalRepeats;
import net.w_horse.excelpojo.xml.tag.RetrieveFrom;

@Bean
public class AnnotationTest {
	@LabeledCell(label = "Stringのラベル1", retrieveFrom=RetrieveFrom.RIGHT)
	private String stringField4LabeledCell1;
	@LabeledCell(label = "intのラベル1", retrieveFrom=RetrieveFrom.RIGHT)
	private int intField4LabeledCell1;
	@LabeledCell(label = "booleanのラベル1", retrieveFrom=RetrieveFrom.RIGHT)
	private boolean booleanField4LabeledCell1;
	@LabeledCell(label = "doubleのラベル1", retrieveFrom=RetrieveFrom.RIGHT)
	private double doubleField4LabeledCell1;
	@LabeledCell(label = "日付のラベル1", retrieveFrom=RetrieveFrom.RIGHT)
	private String dateField4LabeledCell1;

	@PointedCell(position = "(14, 3)")
	private String stringField4PointedCell1;
	@PointedCell(position = "(15, 3)")
	private int intField4PointedCell1;
	@PointedCell(position = "(16, 3)")
	private boolean booleanField4PointedCell1;
	@PointedCell(position = "(17, 3)")
	private double doubleField4PointedCell1;
	@PointedCell(position = "(18, 3)")
	private String dateField4PointedCell1;

	@ConstantValue("固定値：文字列")
	private String stringField4ConstantValue1;
	@ConstantValue("258")
	private int intField4ConstantValue1;
	@ConstantValue("false")
	private boolean booleanField4ConstantValue1;
	@ConstantValue("3.14")
	private double doubleField4ConstantValue1;

	@MappedCell(previousLabel="会員数推移")
	private Map<String, String> mapField4MappedCell1 = new LinkedHashMap<String, String>();

	@VerticalRepeats(targetClass = "test.annotation.AnnotationTestElement", label="会員一覧", terminate="Terminate")
	private List<AnnotationTestElement> list4VerticalRepeats1;
	@VerticalRepeats(targetClass = "test.annotation.AnnotationTestElement", label="会員一覧２", retrieveFrom=RetrieveFrom.RIGHT, terminate="Terminate", listClass="test.annotation.AnnotationTestElement[]")
	private AnnotationTestElement[] arr4VerticalRepeats1;

	@HorizontalRepeats(targetClass = "test.annotation.AnnotationTestElement", label="横方向テーブル", terminate="Terminate")
	private List<AnnotationTestElement> list4HorizontalRepeats1;
//	@HorizontalRepeats(targetClass = "test.annotation.AnnotationTestElement", label="横方向テーブル２", retrieveFrom=RetrieveFrom.BOTTOM, terminate="Terminate", listClass="test.annotation.AnnotationTestElement[]")
	@HorizontalRepeats(targetClass = "test.annotation.AnnotationTestElement", label="横方向テーブル２", terminate="Terminate", listClass="test.annotation.AnnotationTestElement[]")
	private AnnotationTestElement[] arr4HorizontalRepeats1;

	/**
	 * stringField4LabeledCell1を取得します。
	 * @return stringField4LabeledCell1
	 */
	public String getStringField4LabeledCell1() {
	    return stringField4LabeledCell1;
	}
	/**
	 * stringField4LabeledCell1を設定します。
	 * @param stringField4LabeledCell1 stringField4LabeledCell1
	 */
	public void setStringField4LabeledCell1(String stringField4LabeledCell1) {
	    this.stringField4LabeledCell1 = stringField4LabeledCell1;
	}
	/**
	 * intField4LabeledCell1を取得します。
	 * @return intField4LabeledCell1
	 */
	public int getIntField4LabeledCell1() {
	    return intField4LabeledCell1;
	}
	/**
	 * intField4LabeledCell1を設定します。
	 * @param intField4LabeledCell1 intField4LabeledCell1
	 */
	public void setIntField4LabeledCell1(int intField4LabeledCell1) {
	    this.intField4LabeledCell1 = intField4LabeledCell1;
	}
	/**
	 * booleanField4LabeledCell1を取得します。
	 * @return booleanField4LabeledCell1
	 */
	public boolean isBooleanField4LabeledCell1() {
	    return booleanField4LabeledCell1;
	}
	/**
	 * booleanField4LabeledCell1を設定します。
	 * @param booleanField4LabeledCell1 booleanField4LabeledCell1
	 */
	public void setBooleanField4LabeledCell1(boolean booleanField4LabeledCell1) {
	    this.booleanField4LabeledCell1 = booleanField4LabeledCell1;
	}
	/**
	 * doubleField4LabeledCell1を取得します。
	 * @return doubleField4LabeledCell1
	 */
	public double getDoubleField4LabeledCell1() {
	    return doubleField4LabeledCell1;
	}
	/**
	 * doubleField4LabeledCell1を設定します。
	 * @param doubleField4LabeledCell1 doubleField4LabeledCell1
	 */
	public void setDoubleField4LabeledCell1(double doubleField4LabeledCell1) {
	    this.doubleField4LabeledCell1 = doubleField4LabeledCell1;
	}
	/**
	 * stringField4PointedCell1を取得します。
	 * @return stringField4PointedCell1
	 */
	public String getStringField4PointedCell1() {
	    return stringField4PointedCell1;
	}
	/**
	 * stringField4PointedCell1を設定します。
	 * @param stringField4PointedCell1 stringField4PointedCell1
	 */
	public void setStringField4PointedCell1(String stringField4PointedCell1) {
	    this.stringField4PointedCell1 = stringField4PointedCell1;
	}
	/**
	 * intField4PointedCell1を取得します。
	 * @return intField4PointedCell1
	 */
	public int getIntField4PointedCell1() {
	    return intField4PointedCell1;
	}
	/**
	 * intField4PointedCell1を設定します。
	 * @param intField4PointedCell1 intField4PointedCell1
	 */
	public void setIntField4PointedCell1(int intField4PointedCell1) {
	    this.intField4PointedCell1 = intField4PointedCell1;
	}
	/**
	 * booleanField4PointedCell1を取得します。
	 * @return booleanField4PointedCell1
	 */
	public boolean isBooleanField4PointedCell1() {
	    return booleanField4PointedCell1;
	}
	/**
	 * booleanField4PointedCell1を設定します。
	 * @param booleanField4PointedCell1 booleanField4PointedCell1
	 */
	public void setBooleanField4PointedCell1(boolean booleanField4PointedCell1) {
	    this.booleanField4PointedCell1 = booleanField4PointedCell1;
	}
	/**
	 * doubleField4PointedCell1を取得します。
	 * @return doubleField4PointedCell1
	 */
	public double getDoubleField4PointedCell1() {
	    return doubleField4PointedCell1;
	}
	/**
	 * doubleField4PointedCell1を設定します。
	 * @param doubleField4PointedCell1 doubleField4PointedCell1
	 */
	public void setDoubleField4PointedCell1(double doubleField4PointedCell1) {
	    this.doubleField4PointedCell1 = doubleField4PointedCell1;
	}
	/**
	 * stringField4ConstantValue1を取得します。
	 * @return stringField4ConstantValue1
	 */
	public String getStringField4ConstantValue1() {
	    return stringField4ConstantValue1;
	}
	/**
	 * stringField4ConstantValue1を設定します。
	 * @param stringField4ConstantValue1 stringField4ConstantValue1
	 */
	public void setStringField4ConstantValue1(String stringField4ConstantValue1) {
	    this.stringField4ConstantValue1 = stringField4ConstantValue1;
	}
	/**
	 * intField4ConstantValue1を取得します。
	 * @return intField4ConstantValue1
	 */
	public int getIntField4ConstantValue1() {
	    return intField4ConstantValue1;
	}
	/**
	 * intField4ConstantValue1を設定します。
	 * @param intField4ConstantValue1 intField4ConstantValue1
	 */
	public void setIntField4ConstantValue1(int intField4ConstantValue1) {
	    this.intField4ConstantValue1 = intField4ConstantValue1;
	}
	/**
	 * booleanField4ConstantValue1を取得します。
	 * @return booleanField4ConstantValue1
	 */
	public boolean isBooleanField4ConstantValue1() {
	    return booleanField4ConstantValue1;
	}
	/**
	 * booleanField4ConstantValue1を設定します。
	 * @param booleanField4ConstantValue1 booleanField4ConstantValue1
	 */
	public void setBooleanField4ConstantValue1(boolean booleanField4ConstantValue1) {
	    this.booleanField4ConstantValue1 = booleanField4ConstantValue1;
	}
	/**
	 * doubleField4ConstantValue1を取得します。
	 * @return doubleField4ConstantValue1
	 */
	public double getDoubleField4ConstantValue1() {
	    return doubleField4ConstantValue1;
	}
	/**
	 * doubleField4ConstantValue1を設定します。
	 * @param doubleField4ConstantValue1 doubleField4ConstantValue1
	 */
	public void setDoubleField4ConstantValue1(double doubleField4ConstantValue1) {
	    this.doubleField4ConstantValue1 = doubleField4ConstantValue1;
	}
	/**
	 * mapField4MappedCell1を取得します。
	 * @return mapField4MappedCell1
	 */
	public Map<String,String> getMapField4MappedCell1() {
	    return mapField4MappedCell1;
	}
	/**
	 * mapField4MappedCell1を設定します。
	 * @param mapField4MappedCell1 mapField4MappedCell1
	 */
	public void setMapField4MappedCell1(Map<String,String> mapField4MappedCell1) {
	    this.mapField4MappedCell1 = mapField4MappedCell1;
	}
	/**
	 * list4VerticalRepeats1を取得します。
	 * @return list4VerticalRepeats1
	 */
	public List<AnnotationTestElement> getList4VerticalRepeats1() {
	    return list4VerticalRepeats1;
	}
	/**
	 * list4VerticalRepeats1を設定します。
	 * @param list4VerticalRepeats1 list4VerticalRepeats1
	 */
	public void setList4VerticalRepeats1(List<AnnotationTestElement> list4VerticalRepeats1) {
	    this.list4VerticalRepeats1 = list4VerticalRepeats1;
	}
	/**
	 * arr4VerticalRepeats1を取得します。
	 * @return arr4VerticalRepeats1
	 */
	public AnnotationTestElement[] getArr4VerticalRepeats1() {
	    return arr4VerticalRepeats1;
	}
	/**
	 * arr4VerticalRepeats1を設定します。
	 * @param arr4VerticalRepeats1 arr4VerticalRepeats1
	 */
	public void setArr4VerticalRepeats1(AnnotationTestElement[] arr4VerticalRepeats1) {
	    this.arr4VerticalRepeats1 = arr4VerticalRepeats1;
	}
	/**
	 * list4HorizontalRepeats1を取得します。
	 * @return list4HorizontalRepeats1
	 */
	public List<AnnotationTestElement> getList4HorizontalRepeats1() {
	    return list4HorizontalRepeats1;
	}
	/**
	 * list4HorizontalRepeats1を設定します。
	 * @param list4HorizontalRepeats1 list4HorizontalRepeats1
	 */
	public void setList4HorizontalRepeats1(List<AnnotationTestElement> list4HorizontalRepeats1) {
	    this.list4HorizontalRepeats1 = list4HorizontalRepeats1;
	}
	/**
	 * arr4HorizontalRepeats1を取得します。
	 * @return arr4HorizontalRepeats1
	 */
	public AnnotationTestElement[] getArr4HorizontalRepeats1() {
	    return arr4HorizontalRepeats1;
	}
	/**
	 * arr4HorizontalRepeats1を設定します。
	 * @param arr4HorizontalRepeats1 arr4HorizontalRepeats1
	 */
	public void setArr4HorizontalRepeats1(AnnotationTestElement[] arr4HorizontalRepeats1) {
	    this.arr4HorizontalRepeats1 = arr4HorizontalRepeats1;
	}
	public void setDateField4LabeledCell1(String dateField4LabeledCell1) {
		this.dateField4LabeledCell1 = dateField4LabeledCell1;
	}
	public String getDateField4LabeledCell1() {
		return dateField4LabeledCell1;
	}
	public void setDateField4PointedCell1(String dateField4PointedCell1) {
		this.dateField4PointedCell1 = dateField4PointedCell1;
	}
	public String getDateField4PointedCell1() {
		return dateField4PointedCell1;
	}
}
