package org.seasar.doma.it.entity;

/** */
@javax.annotation.Generated(value = { "Doma", "1.36.0-SNAPSHOT" }, date = "2022-09-08T03:50:53.985+0900")
public final class _CompKeyEmployee extends org.seasar.doma.jdbc.entity.AbstractEntityType<org.seasar.doma.it.entity.CompKeyEmployee> {

    static {
        org.seasar.doma.internal.Artifact.validateVersion("1.36.0-SNAPSHOT");
    }

    private static final _CompKeyEmployee __singleton = new _CompKeyEmployee();

    private static final org.seasar.doma.jdbc.entity.OriginalStatesAccessor<org.seasar.doma.it.entity.CompKeyEmployee> __originalStatesAccessor = new org.seasar.doma.jdbc.entity.OriginalStatesAccessor<org.seasar.doma.it.entity.CompKeyEmployee>(org.seasar.doma.it.entity.CompKeyEmployee.class, "originalStates");

    /** the employeeId1 */
    public final org.seasar.doma.jdbc.entity.AssignedIdPropertyType<java.lang.Object, org.seasar.doma.it.entity.CompKeyEmployee, java.lang.Integer, java.lang.Object> $employeeId1 = new org.seasar.doma.jdbc.entity.AssignedIdPropertyType<java.lang.Object, org.seasar.doma.it.entity.CompKeyEmployee, java.lang.Integer, java.lang.Object>(org.seasar.doma.it.entity.CompKeyEmployee.class, java.lang.Integer.class, org.seasar.doma.wrapper.IntegerWrapper.class, null, null, "employeeId1", "EMPLOYEE_ID1");

    /** the employeeId2 */
    public final org.seasar.doma.jdbc.entity.AssignedIdPropertyType<java.lang.Object, org.seasar.doma.it.entity.CompKeyEmployee, java.lang.Integer, java.lang.Object> $employeeId2 = new org.seasar.doma.jdbc.entity.AssignedIdPropertyType<java.lang.Object, org.seasar.doma.it.entity.CompKeyEmployee, java.lang.Integer, java.lang.Object>(org.seasar.doma.it.entity.CompKeyEmployee.class, java.lang.Integer.class, org.seasar.doma.wrapper.IntegerWrapper.class, null, null, "employeeId2", "EMPLOYEE_ID2");

    /** the employeeNo */
    public final org.seasar.doma.jdbc.entity.BasicPropertyType<java.lang.Object, org.seasar.doma.it.entity.CompKeyEmployee, java.lang.Integer, java.lang.Object> $employeeNo = new org.seasar.doma.jdbc.entity.BasicPropertyType<java.lang.Object, org.seasar.doma.it.entity.CompKeyEmployee, java.lang.Integer, java.lang.Object>(org.seasar.doma.it.entity.CompKeyEmployee.class, java.lang.Integer.class, org.seasar.doma.wrapper.IntegerWrapper.class, null, null, "employeeNo", "EMPLOYEE_NO", true, true);

    /** the employeeName */
    public final org.seasar.doma.jdbc.entity.BasicPropertyType<java.lang.Object, org.seasar.doma.it.entity.CompKeyEmployee, java.lang.String, java.lang.Object> $employeeName = new org.seasar.doma.jdbc.entity.BasicPropertyType<java.lang.Object, org.seasar.doma.it.entity.CompKeyEmployee, java.lang.String, java.lang.Object>(org.seasar.doma.it.entity.CompKeyEmployee.class, java.lang.String.class, org.seasar.doma.wrapper.StringWrapper.class, null, null, "employeeName", "EMPLOYEE_NAME", true, true);

    /** the managerId1 */
    public final org.seasar.doma.jdbc.entity.BasicPropertyType<java.lang.Object, org.seasar.doma.it.entity.CompKeyEmployee, java.lang.Integer, java.lang.Object> $managerId1 = new org.seasar.doma.jdbc.entity.BasicPropertyType<java.lang.Object, org.seasar.doma.it.entity.CompKeyEmployee, java.lang.Integer, java.lang.Object>(org.seasar.doma.it.entity.CompKeyEmployee.class, java.lang.Integer.class, org.seasar.doma.wrapper.IntegerWrapper.class, null, null, "managerId1", "MANAGER_ID1", true, true);

    /** the managerId2 */
    public final org.seasar.doma.jdbc.entity.BasicPropertyType<java.lang.Object, org.seasar.doma.it.entity.CompKeyEmployee, java.lang.Integer, java.lang.Object> $managerId2 = new org.seasar.doma.jdbc.entity.BasicPropertyType<java.lang.Object, org.seasar.doma.it.entity.CompKeyEmployee, java.lang.Integer, java.lang.Object>(org.seasar.doma.it.entity.CompKeyEmployee.class, java.lang.Integer.class, org.seasar.doma.wrapper.IntegerWrapper.class, null, null, "managerId2", "MANAGER_ID2", true, true);

    /** the hiredate */
    public final org.seasar.doma.jdbc.entity.BasicPropertyType<java.lang.Object, org.seasar.doma.it.entity.CompKeyEmployee, java.sql.Date, java.lang.Object> $hiredate = new org.seasar.doma.jdbc.entity.BasicPropertyType<java.lang.Object, org.seasar.doma.it.entity.CompKeyEmployee, java.sql.Date, java.lang.Object>(org.seasar.doma.it.entity.CompKeyEmployee.class, java.sql.Date.class, org.seasar.doma.wrapper.DateWrapper.class, null, null, "hiredate", "HIREDATE", true, true);

    /** the salary */
    public final org.seasar.doma.jdbc.entity.BasicPropertyType<java.lang.Object, org.seasar.doma.it.entity.CompKeyEmployee, java.math.BigDecimal, java.lang.Object> $salary = new org.seasar.doma.jdbc.entity.BasicPropertyType<java.lang.Object, org.seasar.doma.it.entity.CompKeyEmployee, java.math.BigDecimal, java.lang.Object>(org.seasar.doma.it.entity.CompKeyEmployee.class, java.math.BigDecimal.class, org.seasar.doma.wrapper.BigDecimalWrapper.class, null, null, "salary", "SALARY", true, true);

    /** the departmentId1 */
    public final org.seasar.doma.jdbc.entity.BasicPropertyType<java.lang.Object, org.seasar.doma.it.entity.CompKeyEmployee, java.lang.Integer, java.lang.Object> $departmentId1 = new org.seasar.doma.jdbc.entity.BasicPropertyType<java.lang.Object, org.seasar.doma.it.entity.CompKeyEmployee, java.lang.Integer, java.lang.Object>(org.seasar.doma.it.entity.CompKeyEmployee.class, java.lang.Integer.class, org.seasar.doma.wrapper.IntegerWrapper.class, null, null, "departmentId1", "DEPARTMENT_ID1", true, true);

    /** the departmentId2 */
    public final org.seasar.doma.jdbc.entity.BasicPropertyType<java.lang.Object, org.seasar.doma.it.entity.CompKeyEmployee, java.lang.Integer, java.lang.Object> $departmentId2 = new org.seasar.doma.jdbc.entity.BasicPropertyType<java.lang.Object, org.seasar.doma.it.entity.CompKeyEmployee, java.lang.Integer, java.lang.Object>(org.seasar.doma.it.entity.CompKeyEmployee.class, java.lang.Integer.class, org.seasar.doma.wrapper.IntegerWrapper.class, null, null, "departmentId2", "DEPARTMENT_ID2", true, true);

    /** the addressId1 */
    public final org.seasar.doma.jdbc.entity.BasicPropertyType<java.lang.Object, org.seasar.doma.it.entity.CompKeyEmployee, java.lang.Integer, java.lang.Object> $addressId1 = new org.seasar.doma.jdbc.entity.BasicPropertyType<java.lang.Object, org.seasar.doma.it.entity.CompKeyEmployee, java.lang.Integer, java.lang.Object>(org.seasar.doma.it.entity.CompKeyEmployee.class, java.lang.Integer.class, org.seasar.doma.wrapper.IntegerWrapper.class, null, null, "addressId1", "ADDRESS_ID1", true, true);

    /** the addressId2 */
    public final org.seasar.doma.jdbc.entity.BasicPropertyType<java.lang.Object, org.seasar.doma.it.entity.CompKeyEmployee, java.lang.Integer, java.lang.Object> $addressId2 = new org.seasar.doma.jdbc.entity.BasicPropertyType<java.lang.Object, org.seasar.doma.it.entity.CompKeyEmployee, java.lang.Integer, java.lang.Object>(org.seasar.doma.it.entity.CompKeyEmployee.class, java.lang.Integer.class, org.seasar.doma.wrapper.IntegerWrapper.class, null, null, "addressId2", "ADDRESS_ID2", true, true);

    /** the version */
    public final org.seasar.doma.jdbc.entity.VersionPropertyType<java.lang.Object, org.seasar.doma.it.entity.CompKeyEmployee, java.lang.Integer, java.lang.Object> $version = new org.seasar.doma.jdbc.entity.VersionPropertyType<java.lang.Object, org.seasar.doma.it.entity.CompKeyEmployee, java.lang.Integer, java.lang.Object>(org.seasar.doma.it.entity.CompKeyEmployee.class, java.lang.Integer.class, org.seasar.doma.wrapper.IntegerWrapper.class, null, null, "version", "VERSION");

    private final org.seasar.doma.jdbc.entity.NullEntityListener<org.seasar.doma.it.entity.CompKeyEmployee> __listener;

    private final org.seasar.doma.jdbc.entity.NamingType __namingType;

    private final boolean __immutable;

    private final String __catalogName;

    private final String __schemaName;

    private final String __tableName;

    private final String __qualifiedTableName;

    private final String __name;

    private final java.util.List<org.seasar.doma.jdbc.entity.EntityPropertyType<org.seasar.doma.it.entity.CompKeyEmployee, ?>> __idPropertyTypes;

    private final java.util.List<org.seasar.doma.jdbc.entity.EntityPropertyType<org.seasar.doma.it.entity.CompKeyEmployee, ?>> __entityPropertyTypes;

    private final java.util.Map<String, org.seasar.doma.jdbc.entity.EntityPropertyType<org.seasar.doma.it.entity.CompKeyEmployee, ?>> __entityPropertyTypeMap;

    private _CompKeyEmployee() {
        __listener = new org.seasar.doma.jdbc.entity.NullEntityListener<org.seasar.doma.it.entity.CompKeyEmployee>();
        __namingType = org.seasar.doma.jdbc.entity.NamingType.SNAKE_UPPER_CASE;
        __immutable = false;
        __name = "CompKeyEmployee";
        __catalogName = "";
        __schemaName = "";
        __tableName = "COMP_KEY_EMPLOYEE";
        __qualifiedTableName = "COMP_KEY_EMPLOYEE";
        java.util.List<org.seasar.doma.jdbc.entity.EntityPropertyType<org.seasar.doma.it.entity.CompKeyEmployee, ?>> __idList = new java.util.ArrayList<org.seasar.doma.jdbc.entity.EntityPropertyType<org.seasar.doma.it.entity.CompKeyEmployee, ?>>();
        java.util.List<org.seasar.doma.jdbc.entity.EntityPropertyType<org.seasar.doma.it.entity.CompKeyEmployee, ?>> __list = new java.util.ArrayList<org.seasar.doma.jdbc.entity.EntityPropertyType<org.seasar.doma.it.entity.CompKeyEmployee, ?>>(13);
        java.util.Map<String, org.seasar.doma.jdbc.entity.EntityPropertyType<org.seasar.doma.it.entity.CompKeyEmployee, ?>> __map = new java.util.HashMap<String, org.seasar.doma.jdbc.entity.EntityPropertyType<org.seasar.doma.it.entity.CompKeyEmployee, ?>>(13);
        __idList.add($employeeId1);
        __list.add($employeeId1);
        __map.put("employeeId1", $employeeId1);
        __idList.add($employeeId2);
        __list.add($employeeId2);
        __map.put("employeeId2", $employeeId2);
        __list.add($employeeNo);
        __map.put("employeeNo", $employeeNo);
        __list.add($employeeName);
        __map.put("employeeName", $employeeName);
        __list.add($managerId1);
        __map.put("managerId1", $managerId1);
        __list.add($managerId2);
        __map.put("managerId2", $managerId2);
        __list.add($hiredate);
        __map.put("hiredate", $hiredate);
        __list.add($salary);
        __map.put("salary", $salary);
        __list.add($departmentId1);
        __map.put("departmentId1", $departmentId1);
        __list.add($departmentId2);
        __map.put("departmentId2", $departmentId2);
        __list.add($addressId1);
        __map.put("addressId1", $addressId1);
        __list.add($addressId2);
        __map.put("addressId2", $addressId2);
        __list.add($version);
        __map.put("version", $version);
        __idPropertyTypes = java.util.Collections.unmodifiableList(__idList);
        __entityPropertyTypes = java.util.Collections.unmodifiableList(__list);
        __entityPropertyTypeMap = java.util.Collections.unmodifiableMap(__map);
    }

    @Override
    public org.seasar.doma.jdbc.entity.NamingType getNamingType() {
        return __namingType;
    }

    @Override
    public boolean isImmutable() {
        return __immutable;
    }

    @Override
    public String getName() {
        return __name;
    }

    @Override
    public String getCatalogName() {
        return __catalogName;
    }

    @Override
    public String getSchemaName() {
        return __schemaName;
    }

    @Override
    public String getTableName() {
        return __tableName;
    }

    @Override
    public String getQualifiedTableName() {
        return __qualifiedTableName;
    }

    @Override
    public void preInsert(org.seasar.doma.it.entity.CompKeyEmployee entity, org.seasar.doma.jdbc.entity.PreInsertContext<org.seasar.doma.it.entity.CompKeyEmployee> context) {
        __listener.preInsert(entity, context);
    }

    @Override
    public void preUpdate(org.seasar.doma.it.entity.CompKeyEmployee entity, org.seasar.doma.jdbc.entity.PreUpdateContext<org.seasar.doma.it.entity.CompKeyEmployee> context) {
        __listener.preUpdate(entity, context);
    }

    @Override
    public void preDelete(org.seasar.doma.it.entity.CompKeyEmployee entity, org.seasar.doma.jdbc.entity.PreDeleteContext<org.seasar.doma.it.entity.CompKeyEmployee> context) {
        __listener.preDelete(entity, context);
    }

    @Override
    public void postInsert(org.seasar.doma.it.entity.CompKeyEmployee entity, org.seasar.doma.jdbc.entity.PostInsertContext<org.seasar.doma.it.entity.CompKeyEmployee> context) {
        __listener.postInsert(entity, context);
    }

    @Override
    public void postUpdate(org.seasar.doma.it.entity.CompKeyEmployee entity, org.seasar.doma.jdbc.entity.PostUpdateContext<org.seasar.doma.it.entity.CompKeyEmployee> context) {
        __listener.postUpdate(entity, context);
    }

    @Override
    public void postDelete(org.seasar.doma.it.entity.CompKeyEmployee entity, org.seasar.doma.jdbc.entity.PostDeleteContext<org.seasar.doma.it.entity.CompKeyEmployee> context) {
        __listener.postDelete(entity, context);
    }

    @Override
    public java.util.List<org.seasar.doma.jdbc.entity.EntityPropertyType<org.seasar.doma.it.entity.CompKeyEmployee, ?>> getEntityPropertyTypes() {
        return __entityPropertyTypes;
    }

    @Override
    public org.seasar.doma.jdbc.entity.EntityPropertyType<org.seasar.doma.it.entity.CompKeyEmployee, ?> getEntityPropertyType(String __name) {
        return __entityPropertyTypeMap.get(__name);
    }

    @Override
    public java.util.List<org.seasar.doma.jdbc.entity.EntityPropertyType<org.seasar.doma.it.entity.CompKeyEmployee, ?>> getIdPropertyTypes() {
        return __idPropertyTypes;
    }

    @Override
    public org.seasar.doma.jdbc.entity.GeneratedIdPropertyType<java.lang.Object, org.seasar.doma.it.entity.CompKeyEmployee, ?, ?> getGeneratedIdPropertyType() {
        return null;
    }

    @Override
    public org.seasar.doma.jdbc.entity.VersionPropertyType<java.lang.Object, org.seasar.doma.it.entity.CompKeyEmployee, ?, ?> getVersionPropertyType() {
        return $version;
    }

    @Override
    public org.seasar.doma.it.entity.CompKeyEmployee newEntity() {
        return new org.seasar.doma.it.entity.CompKeyEmployee();
    }

    @Override
    public org.seasar.doma.it.entity.CompKeyEmployee newEntity(java.util.Map<String, Object> __args) {
        return new org.seasar.doma.it.entity.CompKeyEmployee();
    }

    @Override
    public Class<org.seasar.doma.it.entity.CompKeyEmployee> getEntityClass() {
        return org.seasar.doma.it.entity.CompKeyEmployee.class;
    }

    @Override
    public org.seasar.doma.it.entity.CompKeyEmployee getOriginalStates(org.seasar.doma.it.entity.CompKeyEmployee __entity) {
        return __originalStatesAccessor.get(__entity);
    }

    @Override
    public void saveCurrentStates(org.seasar.doma.it.entity.CompKeyEmployee __entity) {
        org.seasar.doma.it.entity.CompKeyEmployee __currentStates = new org.seasar.doma.it.entity.CompKeyEmployee();
        $employeeId1.getWrapper(__currentStates).set($employeeId1.getWrapper(__entity).getCopy());
        $employeeId2.getWrapper(__currentStates).set($employeeId2.getWrapper(__entity).getCopy());
        $employeeNo.getWrapper(__currentStates).set($employeeNo.getWrapper(__entity).getCopy());
        $employeeName.getWrapper(__currentStates).set($employeeName.getWrapper(__entity).getCopy());
        $managerId1.getWrapper(__currentStates).set($managerId1.getWrapper(__entity).getCopy());
        $managerId2.getWrapper(__currentStates).set($managerId2.getWrapper(__entity).getCopy());
        $hiredate.getWrapper(__currentStates).set($hiredate.getWrapper(__entity).getCopy());
        $salary.getWrapper(__currentStates).set($salary.getWrapper(__entity).getCopy());
        $departmentId1.getWrapper(__currentStates).set($departmentId1.getWrapper(__entity).getCopy());
        $departmentId2.getWrapper(__currentStates).set($departmentId2.getWrapper(__entity).getCopy());
        $addressId1.getWrapper(__currentStates).set($addressId1.getWrapper(__entity).getCopy());
        $addressId2.getWrapper(__currentStates).set($addressId2.getWrapper(__entity).getCopy());
        $version.getWrapper(__currentStates).set($version.getWrapper(__entity).getCopy());
        __originalStatesAccessor.set(__entity, __currentStates);
    }

    /**
     * @return the singleton
     */
    public static _CompKeyEmployee getSingletonInternal() {
        return __singleton;
    }

    /**
     * @return the new instance
     */
    public static _CompKeyEmployee newInstance() {
        return new _CompKeyEmployee();
    }

}
