서비스 템플릿 마법사
서비스 템플릿 마법사에서 커스터마이징 할 수 있는 영역을 제공합니다.
1. 제공되는 커스터마이징 목록(1)
기능 | 설명 |
---|---|
bindServiceTemplateNamingDeterminator |
서비스 템플릿 마법사를 통해 생성되는 자원의 이름을 결정하는 결정자를 바인딩합니다. |
2. 상세
메소드의 기능을 확인하고 필요한 부분을 커스터마이징 할 수 있습니다.
2.1. bindServiceTemplateNamingDeterminator
서비스 템플릿 마법사를 통해 생성되는 자원의 이름을 결정하는 결정자를 바인딩합니다.
1. 인터페이스 및 클래스
모듈이 반드시 구현 해야하는 인터페이스 또는 상속 해야하는 클래스입니다.
com.bankwareglobal.ide.bxframework.se.template.extensions.IServiceTemplateNamingDeterminator
2. 기본 구현 클래스
해당 기능을 위해 구현된 기본 클래스입니다. 인터페이스 및 클래스에서 필요한 기본 기능이 구현되어있으며 모듈을 확장할 경우 이 클래스를 상속 받아서 구현할 수 있습니다.
com.bankwareglobal.ide.bxframework.se.template.extensions.impl.BxmServiceTemplateNamingDeterminator
3. 구현 예제
com.bankwareglobal.ide.bxframework.se.extensions.overriding.impl.ExtServiceTemplateNamingDeterminator
package com.bankwareglobal.ide.bxframework.se.extensions.overriding.impl;
import org.eclipse.core.resources.IProject;
import com.bankwareglobal.ide.bxframework.se.template.extensions.IServiceTemplateNamingDeterminator;
import com.bankwareglobal.ide.bxframework.se.utils.BxmUtils2;
import com.bankwareglobal.ide.commons.utils.JavaUtils;
import com.bankwareglobal.ide.commons.utils.StringUtils;
import bxm.common.instance.config.BxmApplication;
public class ExtServiceTemplateNamingDeterminator
implements IServiceTemplateNamingDeterminator {
/**
* 서비스 템플릿 마법사를 통해 생성되는 DBIO 의 패키지 이름을 반환합니다.
*/
@Override
public String getDbioPackageName(IProject project, String prefix, String suffix) {
return getPackageName(project, prefix, suffix, "dbio");
}
/**
* 서비스 템플릿 마법사를 통해 생성되는 DBIO 의 클래스 이름을 반환합니다.
*/
@Override
public String getDbioClassName(IProject project, String prefix, String suffix) {
StringBuilder builder = new StringBuilder();
String _prefix = null;
String _suffix = null;
if (StringUtils.hasText(prefix)) {
_prefix = StringUtils.capitalize(StringUtils.toCamelCase(prefix));
}
if (StringUtils.hasText(suffix)) {
_suffix = StringUtils.capitalize(StringUtils.toCamelCase(suffix));
}
String packPrefix = JavaUtils.getStandardPackPrefix(project.getName());
String l3 = "";
String[] codeArr = packPrefix.split("\\.");
if (codeArr.length > 3) {
l3 = codeArr[2];
}
append(builder, "D", l3, _prefix, _suffix, "001");
return builder.toString();
}
/**
* 서비스 템플릿 마법사를 통해 생성되는 DBIO 의 메소드 이름(SQL ID)을 반환합니다.
*/
@Override
public String getSqlIdName(IProject project, String ownerName, String statement, boolean singleResult, boolean lockUpdate, boolean paging, String prefix, String suffix) {
if ("SELECT".equalsIgnoreCase(statement)) {
if (paging) {
return "selectPage01";
} else {
if (singleResult) {
if (lockUpdate) {
return "selectOneLockUpdate01";
} else {
return "selectOne01";
}
} else {
if (lockUpdate) {
return "selectListLockUpdate01";
} else {
return "selectList01";
}
}
}
} else if ("INSERT".equalsIgnoreCase(statement)) {
return "insert01";
} else if ("UPDATE".equalsIgnoreCase(statement)) {
return "update01";
} else if ("DELETE".equalsIgnoreCase(statement)) {
return "delete01";
} else {
return "auto_generated_sql";
}
}
/**
* 서비스 템플릿 마법사를 통해 생성되는 DBIO 의 Input DTO 패키지 이름을 반환합니다.
*/
@Override
public String getSqlIdInputPackageName(IProject project, String prefix, String suffix) {
return getPackageName(project, prefix, suffix, "dto");
}
/**
* 서비스 템플릿 마법사를 통해 생성되는 DBIO 의 Input DTO 클래스 이름을 반환합니다.
*/
@Override
public String getSqlIdInputClassName(IProject project, String ownerName, String prefix, String suffix) {
return getDtoName(project, ownerName, prefix, suffix, "InDto");
}
/**
* 서비스 템플릿 마법사를 통해 생성되는 DBIO 의 Output DTO 패키지 이름을 반환합니다.
*/
@Override
public String getSqlIdOutputPackageName(IProject project, String prefix, String suffix) {
return getPackageName(project, prefix, suffix, "dto");
}
/**
* 서비스 템플릿 마법사를 통해 생성되는 DBIO 의 Output DTO 클래스 이름을 반환합니다.
*/
@Override
public String getSqlIdOutputClassName(IProject project, String ownerName, String prefix, String suffix) {
return getDtoName(project, ownerName, prefix, suffix, "OutDto");
}
/**
* 서비스 템플릿 마법사를 통해 생성되는 Bean 의 패키지 이름을 반환합니다.
*/
@Override
public String getBeanPackageName(IProject project, String prefix, String suffix) {
return getPackageName(project, prefix, suffix, "bean");
}
/**
* 서비스 템플릿 마법사를 통해 생성되는 Bean 의 클래스 이름을 반환합니다.
*/
@Override
public String getBeanClassName(IProject project, String prefix, String suffix) {
return getClassName(project, prefix, suffix, "M", "001");
}
/**
* 서비스 템플릿 마법사를 통해 생성되는 Bean 의 메소드 이름을 반환합니다.
*/
@Override
public String getBeanMethodName(IProject project, String ownerName, String prefix, String suffix) {
String _ownerName = StringUtils.toCamelCase(ownerName);
return StringUtils.merge("", prefix, StringUtils.capitalize(_ownerName), StringUtils.capitalize(suffix));
}
/**
* 서비스 템플릿 마법사를 통해 생성되는 Bean 의 Input 패키지 이름을 반환합니다.
*/
@Override
public String getBeanInputPackageName(IProject project, String prefix, String suffix) {
return getPackageName(project, prefix, suffix, "dto");
}
/**
* 서비스 템플릿 마법사를 통해 생성되는 Bean 의 Input 클래스 이름을 반환합니다.
*/
@Override
public String getBeanInputClassName(IProject project, String ownerName, String prefix, String suffix) {
return getDtoName(project, ownerName, prefix, suffix, "InDto");
}
/**
* 서비스 템플릿 마법사를 통해 생성되는 Bean 의 Output 패키지 이름을 반환합니다.
*/
@Override
public String getBeanOutputPackageName(IProject project, String prefix, String suffix) {
return getPackageName(project, prefix, suffix, "dto");
}
/**
* 서비스 템플릿 마법사를 통해 생성되는 Bean 의 Input 클래스 이름을 반환합니다.
*/
@Override
public String getBeanOutputClassName(IProject project, String ownerName, String prefix, String suffix) {
return getDtoName(project, ownerName, prefix, suffix, "OutDto");
}
/**
* 서비스 템플릿 마법사를 통해 생성되는 서비스의 패키지 이름을 반환합니다.
*/
@Override
public String getServicePackageName(IProject project, String prefix, String suffix) {
return getPackageName(project, prefix, suffix, "service");
}
/**
* 서비스 템플릿 마법사를 통해 생성되는 서비스의 클래스 이름을 반환합니다.
*/
@Override
public String getServiceClassName(IProject project, String prefix, String suffix) {
return getClassName(project, prefix, suffix, "S", "1001A");
}
/**
* 서비스 템플릿 마법사를 통해 생성되는 서비스의 Service Operation 이름을 반환합니다.
*/
@Override
public String getServiceOperationName(IProject project, String ownerName, String prefix, String suffix) {
String _ownerName = StringUtils.toCamelCase(ownerName);
return StringUtils.merge("", _ownerName.toLowerCase(), "001");
}
/**
* 서비스 템플릿 마법사를 통해 생성되는 서비스의 Input 패키지 이름을 반환합니다.
*/
@Override
public String getServiceOperationInputPackageName(IProject project, String prefix, String suffix) {
return getPackageName(project, prefix, suffix, "dto");
}
/**
* 서비스 템플릿 마법사를 통해 생성되는 서비스의 Input 클래스 이름을 반환합니다.
*/
@Override
public String getServiceOperationInputClassName(IProject project, String ownerName, String prefix, String suffix) {
return getDtoName(project, ownerName, prefix, suffix, "001InDto");
}
/**
* 서비스 템플릿 마법사를 통해 생성되는 서비스의 Output 패키지 이름을 반환합니다.
*/
@Override
public String getServiceOperationOutputPackageName(IProject project, String prefix, String suffix) {
return getPackageName(project, prefix, suffix, "dto");
}
/**
* 서비스 템플릿 마법사를 통해 생성되는 서비스의 Output 클래스 이름을 반환합니다.
*/
@Override
public String getServiceOperationOutputClassName(IProject project, String ownerName, String prefix, String suffix) {
return getDtoName(project, ownerName, prefix, suffix, "001OutDto");
}
/**
* 서비스 템플릿 마법사를 통해 생성되는 서비스의 Output Grid DTO의 패키지 이름을 반환합니다.
*/
@Override
public String getServiceOperationOutputGridDtoPackageName(IProject project, String prefix, String suffix) {
return getPackageName(project, prefix, suffix, "dto");
}
/**
* 서비스 템플릿 마법사를 통해 생성되는 서비스의 Output Grid DTO의 클래스 이름을 반환합니다.
*/
@Override
public String getServiceOperationOutputGridDtoClassName(IProject project, String ownerName, String prefix, String suffix) {
return getDtoName(project, ownerName, prefix, suffix, "001OutSubDto");
}
private StringBuilder appendWithDot(StringBuilder builder, String... suffixList) {
for (String suffix : suffixList) {
if (StringUtils.hasText(suffix)) {
if (builder.length() > 0) {
builder.append('.');
}
builder.append(suffix);
}
}
return builder;
}
private StringBuilder append(StringBuilder builder, String... suffixList) {
for (String suffix : suffixList) {
if (StringUtils.hasText(suffix)) {
builder.append(suffix);
}
}
return builder;
}
private String getPackageName(IProject project, String prefix, String suffix, String resourceTypeSuffix) {
StringBuilder builder = new StringBuilder();
if (StringUtils.hasText(prefix)) {
appendWithDot(builder, prefix);
} else {
if (project != null) {
String packPrefix = JavaUtils.getStandardPackPrefix(project.getName());
appendWithDot(builder, packPrefix);
try {
BxmApplication bxmApplication = BxmUtils2.getApplicationDescriptor(project);
switch (bxmApplication.getType()) {
case ONLINE:
appendWithDot(builder, "online");
break;
case BATCH:
appendWithDot(builder, "batch");
break;
default:
break;
}
} catch (Exception e) {
// ignore
e.printStackTrace();
}
}
}
if (StringUtils.hasText(suffix)) {
appendWithDot(builder, suffix);
} else {
String temp= builder.toString();
if ( !temp.endsWith("."+resourceTypeSuffix)) {
appendWithDot(builder, resourceTypeSuffix);
}
}
return builder.toString();
}
private String getClassName(IProject project, String prefix, String suffix, String resourceTypePrefix, String resourceTypeSuffix) {
StringBuilder builder = new StringBuilder();
String _prefix = null;
String _suffix = null;
if (StringUtils.hasText(prefix)) {
_prefix = StringUtils.capitalize(StringUtils.toCamelCase(prefix));
}
if (StringUtils.hasText(suffix)) {
_suffix = StringUtils.capitalize(StringUtils.toCamelCase(suffix));
}
String packPrefix = JavaUtils.getStandardPackPrefix(project.getName());
String l3 = "";
String[] codeArr = packPrefix.split("\\.");
if (codeArr.length > 3) {
l3 = codeArr[2];
}
append(builder, resourceTypePrefix, l3, _prefix, _suffix, resourceTypeSuffix);
return builder.toString();
}
private String getDtoName(IProject project, String ownerName, String prefix, String suffix, String resourceTypeSuffix) {
return StringUtils.merge("", StringUtils.capitalize(ownerName), resourceTypeSuffix);
}
}
4. 재구현된 메소드 목록(28)
메소드 이름 | 설명 |
---|---|
getDbioPackageName |
서비스 템플릿 마법사를 통해 생성되는 DBIO 의 패키지 이름을 반환합니다. |
getDbioClassName |
서비스 템플릿 마법사를 통해 생성되는 DBIO 의 클래스 이름을 반환합니다. |
getSqlIdName |
서비스 템플릿 마법사를 통해 생성되는 DBIO 의 메소드 이름(SQL ID)을 반환합니다. |
getSqlIdInputPackageName |
서비스 템플릿 마법사를 통해 생성되는 DBIO 의 Input DTO 패키지 이름을 반환합니다. |
getSqlIdInputClassName |
서비스 템플릿 마법사를 통해 생성되는 DBIO 의 Input DTO 클래스 이름을 반환합니다. |
getSqlIdOutputPackageName |
서비스 템플릿 마법사를 통해 생성되는 DBIO 의 Output DTO 패키지 이름을 반환합니다. |
getSqlIdOutputClassName |
서비스 템플릿 마법사를 통해 생성되는 DBIO 의 Output DTO 클래스 이름을 반환합니다. |
getBeanPackageName |
서비스 템플릿 마법사를 통해 생성되는 Bean 의 패키지 이름을 반환합니다. |
getBeanClassName |
서비스 템플릿 마법사를 통해 생성되는 Bean 의 클래스 이름을 반환합니다. |
getBeanMethodName |
서비스 템플릿 마법사를 통해 생성되는 Bean 의 메소드 이름을 반환합니다. |
getBeanInputPackageName |
서비스 템플릿 마법사를 통해 생성되는 Bean 의 Input 패키지 이름을 반환합니다. |
getBeanInputClassName |
서비스 템플릿 마법사를 통해 생성되는 Bean 의 Input 클래스 이름을 반환합니다. |
getBeanOutputPackageName |
서비스 템플릿 마법사를 통해 생성되는 Bean 의 Output 패키지 이름을 반환합니다. |
getBeanOutputClassName |
서비스 템플릿 마법사를 통해 생성되는 Bean 의 Input 클래스 이름을 반환합니다. |
getServicePackageName |
서비스 템플릿 마법사를 통해 생성되는 서비스의 패키지 이름을 반환합니다. |
getServiceClassName |
서비스 템플릿 마법사를 통해 생성되는 서비스의 클래스 이름을 반환합니다. |
getServiceOperationName |
서비스 템플릿 마법사를 통해 생성되는 서비스의 Service Operation 이름을 반환합니다. |
getServiceOperationInputPackageName |
서비스 템플릿 마법사를 통해 생성되는 서비스의 Input 패키지 이름을 반환합니다. |
getServiceOperationInputClassName |
서비스 템플릿 마법사를 통해 생성되는 서비스의 Input 클래스 이름을 반환합니다. |
getServiceOperationOutputPackageName |
서비스 템플릿 마법사를 통해 생성되는 서비스의 Output 패키지 이름을 반환합니다. |
getServiceOperationOutputClassName |
서비스 템플릿 마법사를 통해 생성되는 서비스의 Output 클래스 이름을 반환합니다. |
getServiceOperationOutputGridDtoPackageName |
서비스 템플릿 마법사를 통해 생성되는 서비스의 Output Grid DTO의 패키지 이름을 반환합니다. |
getServiceOperationOutputGridDtoClassName |
서비스 템플릿 마법사를 통해 생성되는 서비스의 Output Grid DTO의 클래스 이름을 반환합니다. |
appendWithDot |
|
append |
|
getPackageName |
|
getClassName |
|
getDtoName |