서비스 템플릿 마법사

서비스 템플릿 마법사에서 커스터마이징 할 수 있는 영역을 제공합니다.

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

Copyright© Bankwareglobal All Rights Reserved.