기본 DBIO 마법사

기본 DBIO 마법사에서 커스터마이징 할 수 있는 영역을 제공합니다.

1. 제공되는 커스터마이징 목록(1)

기본 DBIO 마법사에서 제공되는 커스터마이징 영역 목록
기능 설명

bindDbioNamingDeterminator

기본 DBIO 마법사를 통해 생성되는 자원의 이름을 결정하는 이름 결정자를 바인딩합니다.

2. 상세

메소드의 기능을 확인하고 필요한 부분을 커스터마이징 할 수 있습니다.

2.1. bindDbioNamingDeterminator

기본 DBIO 마법사를 통해 생성되는 자원의 이름을 결정하는 이름 결정자를 바인딩합니다.

1. 인터페이스 및 클래스

모듈이 반드시 구현 해야하는 인터페이스 또는 상속 해야하는 클래스입니다.

com.bankwareglobal.ide.bxframework.core.dbio.module.IDbioNamingDeterminator

2. 기본 구현 클래스

해당 기능을 위해 구현된 기본 클래스입니다. 인터페이스 및 클래스에서 필요한 기본 기능이 구현되어있으며 모듈을 확장할 경우 이 클래스를 상속 받아서 구현할 수 있습니다.

com.bankwareglobal.ide.bxframework.se.dbio.model.BxmDefaultDbioNamingDeterminator

3. 구현 예제

com.bankwareglobal.ide.bxframework.se.extensions.overriding.impl.ExtDbioNamingDeterminator

                package com.bankwareglobal.ide.bxframework.se.extensions.overriding.impl;

                import org.eclipse.jdt.core.IJavaProject;

                import com.bankwareglobal.ide.bxframework.core.dbio.module.IDbioNamingDeterminator;
                import com.bankwareglobal.ide.bxframework.se.utils.BxmUtils2;

                import bxm.common.instance.config.ApplicationType;

                public class ExtDbioNamingDeterminator implements IDbioNamingDeterminator {

                    public final static String DBIO_NAME_PREFIX = "D";
                    public final static String DBIO_NAME_SUFFIX = "000";

                    /**
                     * 기본 DBIO 마법사를 통해 생성되는 DBIO의 SQL(구문 유형 Select PK)의 ID를 반환합니다.
                     */
                    @Override
                    public String getSelectStatementIdByPK(IJavaProject javaProject, String tableName, String pkName) {
                        StringBuilder sb = new StringBuilder();

                        sb.append("selectOne")
                        .append('_')
                        .append(pkName)
                        ;

                        return sb.toString();
                    }

                    /**
                     * 기본 DBIO 마법사를 통해 생성되는 DBIO의 SQL(구문 유형 Select PK - Lock Update)의 ID를 반환합니다.
                     */
                    @Override
                    public String getSelectForUpdateStatementIdByPK(IJavaProject javaProject, String tableName, String pkName) {
                        StringBuilder sb = new StringBuilder();

                        sb.append("selectOneLock")
                        .append('_')
                        .append(pkName)
                        ;

                        return sb.toString();
                    }

                    /**
                     * 기본 DBIO 마법사를 통해 생성되는 DBIO의 SQL(구문 유형 Select Unique Index)의 ID를 반환합니다.
                     */
                    @Override
                    public String getSelectStatementIdByUK(IJavaProject javaProject, String tableName, String ukName) {
                        StringBuilder sb = new StringBuilder();

                        sb.append("selectOne")
                        .append('_')
                        .append(ukName)
                        ;

                        return sb.toString();
                    }

                    /**
                     * 기본 DBIO 마법사를 통해 생성되는 DBIO의 SQL(구문 유형 Select Non-Unique Index)의 ID를 반환합니다.
                     */
                    @Override
                    public String getSelectStatementIdByNonUK(IJavaProject javaProject, String tableName, String ukName) {
                        StringBuilder sb = new StringBuilder();

                        sb.append("selectList")
                        .append('_')
                        .append(ukName)
                        ;

                        return sb.toString();
                    }

                    /**
                     * 기본 DBIO 마법사를 통해 생성되는 DBIO의 SQL(구문 유형 Update PK)의 ID를 반환합니다.
                     */
                    @Override
                    public String getUpdateStatementIdByPK(IJavaProject javaProject, String tableName, String pkName) {
                        StringBuilder sb = new StringBuilder();

                        sb.append("update")
                        .append('_')
                        .append(pkName)
                        ;

                        return sb.toString();
                    }

                    /**
                     * 기본 DBIO 마법사를 통해 생성되는 DBIO의 SQL(구문 유형 Update Unique Index)의 ID를 반환합니다.
                     */
                    @Override
                    public String getUpdateStatementIdByUK(IJavaProject javaProject, String tableName, String ukName) {
                        StringBuilder sb = new StringBuilder();

                        sb.append("update")
                        .append('_')
                        .append(ukName)
                        ;

                        return sb.toString();
                    }

                    /**
                     * 기본 DBIO 마법사를 통해 생성되는 DBIO의 SQL(구문 유형 Delete PK)의 ID를 반환합니다.
                     */
                    @Override
                    public String getDeleteStatementIdByPK(IJavaProject javaProject, String tableName, String pkName) {
                        StringBuilder sb = new StringBuilder();

                        sb.append("delete")
                        .append('_')
                        .append(pkName)
                        ;

                        return sb.toString();
                    }

                    /**
                     * 기본 DBIO 마법사를 통해 생성되는 DBIO의 SQL(구문 유형 Delete Unique Index)의 ID를 반환합니다.
                     */
                    @Override
                    public String getDeleteStatementIdByUK(IJavaProject javaProject, String tableName, String ukName) {
                        StringBuilder sb = new StringBuilder();

                        sb.append("delete")
                        .append('_')
                        .append(ukName)
                        ;

                        return sb.toString();
                    }

                    /**
                     * 기본 DBIO 마법사를 통해 생성되는 DBIO의 SQL(구문 유형 Insert PK)의 ID를 반환합니다.
                     */
                    @Override
                    public String getInsertStatementIdByPK(IJavaProject javaProject, String tableName, String pkName) {
                        StringBuilder sb = new StringBuilder();

                        sb.append("insert")
                        .append('_')
                        .append(pkName)
                        ;

                        return sb.toString();
                    }

                    /**
                     * 기본 DBIO 마법사를 통해 생성되는 DBIO의 네임스페이스를 반환합니다.
                     */
                    @Override
                    public String getDbioNamspace(IJavaProject resource, String packageName, String tableName) {
                        return getDbioPackageName(resource, tableName) + "." + getDbioClassName(resource, tableName);
                    }

                    /**
                     * 기본 DBIO 마법사를 통해 생성되는 DBIO의 패키지 이름을 반환합니다.
                     */
                    @Override
                    public String getDbioPackageName(IJavaProject project, String tableName) {
                        ApplicationType applicationType;
                        try {
                            applicationType = BxmUtils2.getApplicationDescriptor(project.getProject()).getType();

                            if(ApplicationType.BATCH.equals(applicationType)) {
                                return String.join(".", "batch", "dbio");
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                        }

                        return String.join(".", "online", "dbio");
                    }

                    /**
                     * 기본 DBIO 마법사를 통해 생성되는 DBIO의 클래스 이름을 반환합니다.
                     */
                    @Override
                    public String getDbioClassName(IJavaProject resource, String tableName) {
                        StringBuilder sb = new StringBuilder();

                        sb.append(DBIO_NAME_PREFIX)
                        .append(tableName).append(DBIO_NAME_SUFFIX);

                        return sb.toString();
                    }

                    /**
                     * 기본 DBIO 마법사를 통해 생성되는 DBIO의 논리 이름을 반환합니다.
                     */
                    @Override
                    public String getDbioLogicalName(IJavaProject javaProject, String tableName, String tableComment) {
                        return null;
                    }

                    /**
                     * 기본 DBIO 마법사를 통해 생성되는 DBIO의 설명을 반환합니다.
                     */
                    @Override
                    public String getDbioDescription(IJavaProject javaProject, String tableName, String tableComment) {
                        return null;
                    }

                    /**
                     * 기본 DBIO 마법사를 통해 생성되는 Input DTO의 패키지 이름을 반환합니다.
                     */
                    @Override
                    public String getInputIoPackageName(IJavaProject project, String tableName, boolean useSameIo) {
                        ApplicationType applicationType;
                        try {
                            applicationType = BxmUtils2.getApplicationDescriptor(project.getProject()).getType();

                            if(ApplicationType.BATCH.equals(applicationType)) {
                                if(useSameIo) {
                                    return String.join(".", "batch", "dbio", "dto");
                                } else {
                                    return String.join(".", "batch", "dbio", "in", "dto");
                                }
                            }

                            if(useSameIo) {
                                return String.join(".", "online", "dbio", "dto");
                            } else {
                                return String.join(".", "online", "dbio", "in", "dto");
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                        }

                        return String.join(".", "dbio", "in", "dto");
                    }

                    /**
                     * 기본 DBIO 마법사를 통해 생성되는 Input DTO의 클래스 이름을 반환합니다.
                     */
                    @Override
                    public String getInputIoClassName(IJavaProject resource, String tableName, boolean useSameIo) {
                        StringBuilder sb = new StringBuilder();

                        sb
                        .append(Character.toUpperCase(tableName.charAt(0)))
                        .append(tableName.substring(1))
                        .append(DBIO_NAME_SUFFIX);
                        if(useSameIo)
                        {
                            sb.append("Io");
                        }
                        else
                        {
                            sb.append("InputDto");
                        }

                        return sb.toString();
                    }

                    /**
                     * 기본 DBIO 마법사를 통해 생성되는 Output DTO의 패키지 이름을 반환합니다.
                     */
                    @Override
                    public String getOutputIoPackageName(IJavaProject project, String tableName, boolean useSameIo) {
                        ApplicationType applicationType;
                        try {
                            applicationType = BxmUtils2.getApplicationDescriptor(project.getProject()).getType();

                            if(ApplicationType.BATCH.equals(applicationType)) {
                                if(useSameIo) {
                                    return String.join(".", "batch", "dbio", "dto");
                                } else {
                                    return String.join(".", "batch", "dbio", "out", "dto");
                                }
                            }

                            if(useSameIo) {
                                return String.join(".", "online", "dbio", "dto");
                            } else {
                                return String.join(".", "online", "dbio", "out", "dto");
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                        }

                        return String.join(".", "dbio", "out", "dto");
                    }

                    /**
                     * 기본 DBIO 마법사를 통해 생성되는 Output DTO의 클래스 이름을 반환합니다.
                     */
                    @Override
                    public String getOutputIoClassName(IJavaProject resource, String tableName, boolean useSameIo) {
                        StringBuilder sb = new StringBuilder();

                        sb
                        .append(Character.toUpperCase(tableName.charAt(0)))
                        .append(tableName.substring(1))
                        .append(DBIO_NAME_SUFFIX);
                        if(useSameIo)
                        {
                            sb.append("Io");
                        }
                        else
                        {
                            sb.append("OutputDto");
                        }

                        return sb.toString();
                    }
                }

4. 재구현된 메소드 목록(18)

재구현된 메소드 목록
메소드 이름 설명

getSelectStatementIdByPK

기본 DBIO 마법사를 통해 생성되는 DBIO의 SQL(구문 유형 Select PK)의 ID를 반환합니다.

getSelectForUpdateStatementIdByPK

기본 DBIO 마법사를 통해 생성되는 DBIO의 SQL(구문 유형 Select PK - Lock Update)의 ID를 반환합니다.

getSelectStatementIdByUK

기본 DBIO 마법사를 통해 생성되는 DBIO의 SQL(구문 유형 Select Unique Index)의 ID를 반환합니다.

getSelectStatementIdByNonUK

기본 DBIO 마법사를 통해 생성되는 DBIO의 SQL(구문 유형 Select Non-Unique Index)의 ID를 반환합니다.

getUpdateStatementIdByPK

기본 DBIO 마법사를 통해 생성되는 DBIO의 SQL(구문 유형 Update PK)의 ID를 반환합니다.

getUpdateStatementIdByUK

기본 DBIO 마법사를 통해 생성되는 DBIO의 SQL(구문 유형 Update Unique Index)의 ID를 반환합니다.

getDeleteStatementIdByPK

기본 DBIO 마법사를 통해 생성되는 DBIO의 SQL(구문 유형 Delete PK)의 ID를 반환합니다.

getDeleteStatementIdByUK

기본 DBIO 마법사를 통해 생성되는 DBIO의 SQL(구문 유형 Delete Unique Index)의 ID를 반환합니다.

getInsertStatementIdByPK

기본 DBIO 마법사를 통해 생성되는 DBIO의 SQL(구문 유형 Insert PK)의 ID를 반환합니다.

getDbioNamspace

기본 DBIO 마법사를 통해 생성되는 DBIO의 네임스페이스를 반환합니다.

getDbioPackageName

기본 DBIO 마법사를 통해 생성되는 DBIO의 패키지 이름을 반환합니다.

getDbioClassName

기본 DBIO 마법사를 통해 생성되는 DBIO의 클래스 이름을 반환합니다.

getDbioLogicalName

기본 DBIO 마법사를 통해 생성되는 DBIO의 논리 이름을 반환합니다.

getDbioDescription

기본 DBIO 마법사를 통해 생성되는 DBIO의 설명을 반환합니다.

getInputIoPackageName

기본 DBIO 마법사를 통해 생성되는 Input DTO의 패키지 이름을 반환합니다.

getInputIoClassName

기본 DBIO 마법사를 통해 생성되는 Input DTO의 클래스 이름을 반환합니다.

getOutputIoPackageName

기본 DBIO 마법사를 통해 생성되는 Output DTO의 패키지 이름을 반환합니다.

getOutputIoClassName

기본 DBIO 마법사를 통해 생성되는 Output DTO의 클래스 이름을 반환합니다.

Copyright© Bankwareglobal All Rights Reserved.