package #(baseModelPackageName);

import com.jfinal.plugin.activerecord.IBean;
import io.jpress.base.BaseOptionsModel;

/**
 * Generated by JPress, do not modify this file.
 */
#if (generateChainSetter)
@SuppressWarnings({"serial", "unchecked"})
#else
@SuppressWarnings("serial")
#end
public abstract class #(tableMeta.baseModelName)<M extends #(tableMeta.baseModelName)<M>> extends BaseOptionsModel<M> implements IBean {

    private static final long serialVersionUID = 1L;

#set(b = generateChainSetter)
#for(cm : tableMeta.columnMetas)
    #if (cm.remarks)
    /**
     * #(cm.remarks)
     */
     #end
	#set(argName = javaKeyword.contains(cm.attrName) ? '_' + cm.attrName : cm.attrName)
	public #(b ? 'M' : 'void') set#(firstCharToUpperCase(cm.attrName))(#(cm.javaType) #(argName)) {
		set("#(cm.name)", #(argName));
		#if(b)
		return (M)this;
		#end
	}

	#if (cm.remarks)
    /**
     * #(cm.remarks)
     */
     #end
	#set(getterOfModel = getterTypeMap.get(cm.javaType))
	#if(isBlank(getterOfModel))
		#set(getterOfModel = 'get')
	#end
	public #(cm.javaType) get#(firstCharToUpperCase(cm.attrName))() {
		return #(getterOfModel)("#(cm.name)");
	}

#end
}

