package com.test;

import org.apache.phoenix.schema.PDatum;
import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.types.PDataType;

public class GenericPDatum implements PDatum{

	private boolean isNull = false;
	
	private PDataType type ;
	
	private Integer maxLength;
	
	private SortOrder sortOrder ;
	
	private Integer scale;
	
	private GenericPDatum(){
		
	}
	
	private GenericPDatum(PDataType type){
		this.type = type;
		this.sortOrder = SortOrder.getDefault();
	}
	
	public static GenericPDatum pDatum(PDataType type){
		return new GenericPDatum(type);
	}
	
	public GenericPDatum nullble(boolean isNull){
		this.isNull = isNull;
		return this;
	}
	
	public GenericPDatum maxLength(Integer maxLength){
		this.maxLength = maxLength;
		return this;
	}
	
	public GenericPDatum sort(SortOrder sortOrder){
		this.sortOrder = sortOrder;
		return this;
	}
	
	public GenericPDatum sclae(Integer scale){
		this.scale = scale;
		return this;
	}
	
	@Override
	public boolean isNullable() {
		return isNull;
	}
	
	@Override
	public SortOrder getSortOrder() {
		return this.sortOrder;
	}
	
	@Override
	public Integer getScale() {
		return this.scale;
	}
	
	@Override
	public Integer getMaxLength() {
		return this.maxLength;
	}
	
	@Override
	public PDataType getDataType() {
		return this.type;
	}
	
	
}
