기본 DBIO 마법사
기본 DBIO 마법사에서 커스터마이징 할 수 있는 영역을 제공합니다.
1. 제공되는 커스터마이징 목록(1)
기능 | 설명 |
---|---|
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의 클래스 이름을 반환합니다. |