프로젝트 생성
프로젝트 생성에서 커스터마이징 할 수 있는 영역을 제공합니다.
1. 제공되는 커스터마이징 목록(2)
기능 | 설명 |
---|---|
bindGradleProjectResourceGeneratorProvider |
프로젝트 생성 마법사로 프로젝트를 생성할 때 필요한 Gradle 자원을 생성하는 모듈을 제공하는 제공자를 바인딩합니다. |
bindNewProjectExtension |
프로젝트 생성 마법사로 프로젝트를 생성할 때 함께 생성할 기본 패키지 목록, 프로젝트 생성 전/후 처리등의 모듈을 제공하는 확장기능을 바인딩합니다. |
2. 상세
메소드의 기능을 확인하고 필요한 부분을 커스터마이징 할 수 있습니다.
2.1. bindGradleProjectResourceGeneratorProvider
프로젝트 생성 마법사로 프로젝트를 생성할 때 필요한 Gradle 자원을 생성하는 모듈을 제공하는 제공자를 바인딩합니다.
1. 인터페이스 및 클래스
모듈이 반드시 구현 해야하는 인터페이스 또는 상속 해야하는 클래스입니다.
com.bankwareglobal.ide.bxframework.se.project.IBxmGradleProjectResourceGeneratorProvider
2. 기본 구현 클래스
해당 기능을 위해 구현된 기본 클래스입니다. 인터페이스 및 클래스에서 필요한 기본 기능이 구현되어있으며 모듈을 확장할 경우 이 클래스를 상속 받아서 구현할 수 있습니다.
com.bankwareglobal.ide.bxframework.se.project.generator.impl.BxmGradleProjectResourceGeneratorProvider
3. 구현 예제
com.bankwareglobal.ide.bxframework.se.extensions.overriding.impl.ExtGradleProjectResourceGeneratorProvider
package com.bankwareglobal.ide.bxframework.se.extensions.overriding.impl;
import com.bankwareglobal.ide.bxframework.core.documentation.Documentation;
import com.bankwareglobal.ide.bxframework.se.extensions.generator.ExtGradleProjectResourceGenerator_7_6;
import com.bankwareglobal.ide.bxframework.se.project.generator.impl.BxmGradleProjectResourceGenerator;
import com.bankwareglobal.ide.bxframework.se.project.generator.impl.BxmGradleProjectResourceGeneratorProvider;
/**
* 프로젝트 생성 마법사로 프로젝트를 생성할 때 필요한 Gradle 자원을 생성하는 모듈을 제공자
*/
public class ExtGradleProjectResourceGeneratorProvider extends BxmGradleProjectResourceGeneratorProvider {
/**
* Gradle 배포버전 7.6에 해당하는 자원 생성기를 반환합니다.
*/
@Override
protected BxmGradleProjectResourceGenerator createFor_7_6() {
return new ExtGradleProjectResourceGenerator_7_6();
}
}
4. 재구현된 메소드 목록(1)
메소드 이름 | 설명 |
---|---|
createFor_7_6 |
Gradle 배포버전 7.6에 해당하는 자원 생성기를 반환합니다. |
2.2. bindNewProjectExtension
프로젝트 생성 마법사로 프로젝트를 생성할 때 함께 생성할 기본 패키지 목록, 프로젝트 생성 전/후 처리등의 모듈을 제공하는 확장기능을 바인딩합니다.
1. 인터페이스 및 클래스
모듈이 반드시 구현 해야하는 인터페이스 또는 상속 해야하는 클래스입니다.
com.bankwareglobal.ide.bxframework.core.project.INewProjectExtension
2. 기본 구현 클래스
해당 기능을 위해 구현된 기본 클래스입니다. 인터페이스 및 클래스에서 필요한 기본 기능이 구현되어있으며 모듈을 확장할 경우 이 클래스를 상속 받아서 구현할 수 있습니다.
com.bankwareglobal.ide.bxframework.se.extensions.impl.DefaultNewProjectExtension
3. 구현 예제
com.bankwareglobal.ide.bxframework.se.extensions.overriding.impl.ExtNewProjectExtension
package com.bankwareglobal.ide.bxframework.se.extensions.overriding.impl;
import java.util.List;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.swt.widgets.Shell;
import com.bankwareglobal.ide.bxframework.core.constants.ProjectType;
import com.bankwareglobal.ide.bxframework.core.model.AbstractProjectModel;
import com.bankwareglobal.ide.bxframework.core.project.INewProjectExtension;
import com.bankwareglobal.ide.bxframework.core.project.NameSelectorDialog;
import com.bankwareglobal.ide.bxframework.core.project.PackageSet;
import com.bankwareglobal.ide.commons.utils.StringUtils;
import com.google.common.collect.Lists;
public class ExtNewProjectExtension
implements INewProjectExtension
{
/**
* 프로젝트 생성 마법사에서 프로젝트 이름을 선택하는 다이얼로그를 반환합니다.
*/
@Override
public NameSelectorDialog createNameSelectDialog(
Shell shell
, ProjectType projectType
) {
return null;
}
/**
* 프로젝트 생성 마법사에서 프로젝트 이름을 선택하는 다이얼로그 팝업 여부를 반환합니다.
*/
@Override
public boolean useNameSelector() {
return false;
}
/**
* 프로젝트 생성 마법사를 통해 프로젝트 생성 시, src 또는 src/main/java 등에 생성할 패키지 목록을 반환합니다.
*/
@Override
public List<PackageSet> getSourceMainJavaPackageSet(AbstractProjectModel projectModel) {
String packagePrefix= StringUtils.nvl(projectModel.getProjectCode(), "bxm.ide.extensions");
return Lists.newArrayList(
new PackageSet(StringUtils.merge(".", packagePrefix, "service"), "서비스")
, new PackageSet(StringUtils.merge(".", packagePrefix, "service.dto"), "서비스 DTO")
, new PackageSet(StringUtils.merge(".", packagePrefix, "bean"), "Bean")
, new PackageSet(StringUtils.merge(".", packagePrefix, "bean.dto"), "Bean DTO")
, new PackageSet(StringUtils.merge(".", packagePrefix, "dbio"), "DBIO")
, new PackageSet(StringUtils.merge(".", packagePrefix, "dbio.dto"), "DBIO DTO")
, new PackageSet(StringUtils.merge(".", packagePrefix, "utils"), "기타 클래스")
, new PackageSet(StringUtils.merge(".", packagePrefix, "inf.dto"), "인터페이스 DTO")
);
}
/**
* 프로젝트 생성 마법사를 통해 프로젝트 생성 시, src/resource 또는 src/main/resource 등에 생성할 패키지 목록을 반환합니다.
*/
@Override
public List<PackageSet> getSourceMainResourcePackageSet(AbstractProjectModel projectModel) {
return Lists.newArrayList();
}
/**
* 프로젝트 생성 마법사를 통해 프로젝트 생성 시, src-gen 또는 src/gen/java 등에 생성할 패키지 목록을 반환합니다.
*/
@Override
public List<PackageSet> getSourceGenJavaPackageSet(AbstractProjectModel projectModel) {
return Lists.newArrayList();
}
/**
* 프로젝트 생성 마법사를 통해 프로젝트 생성 시, test 또는 src/test/java 등에 생성할 패키지 목록을 반환합니다.
*/
@Override
public List<PackageSet> getSourceTestJavaPackageSet(AbstractProjectModel projectModel) {
return Lists.newArrayList();
}
/**
* 프로젝트 생성 마법사를 통해 프로젝트 생성 시, src/test/resource 등에 생성할 패키지 목록을 반환합니다.
*/
@Override
public List<PackageSet> getSourceTestResourcePackageSet(AbstractProjectModel projectModel) {
return Lists.newArrayList();
}
/**
* 프로젝트 생성 마법사를 통해 프로젝트를 생성 전 생성 작업을 작성합니다.
* @param javaProject
*/
@Override
public void doBeforeCreation(AbstractProjectModel projectModel) {
}
/**
* 프로젝트 생성 마법사를 통해 프로젝트를 생성 후 생성 작업을 작성합니다.
* @param javaProject
*/
@Override
public void doAfterCreation(IJavaProject javaProject, AbstractProjectModel projectModel) {
}
}
4. 재구현된 메소드 목록(9)
메소드 이름 | 설명 |
---|---|
createNameSelectDialog |
프로젝트 생성 마법사에서 프로젝트 이름을 선택하는 다이얼로그를 반환합니다. |
useNameSelector |
프로젝트 생성 마법사에서 프로젝트 이름을 선택하는 다이얼로그 팝업 여부를 반환합니다. |
getSourceMainJavaPackageSet |
프로젝트 생성 마법사를 통해 프로젝트 생성 시, src 또는 src/main/java 등에 생성할 패키지 목록을 반환합니다. |
getSourceMainResourcePackageSet |
프로젝트 생성 마법사를 통해 프로젝트 생성 시, src/resource 또는 src/main/resource 등에 생성할 패키지 목록을 반환합니다. |
getSourceGenJavaPackageSet |
프로젝트 생성 마법사를 통해 프로젝트 생성 시, src-gen 또는 src/gen/java 등에 생성할 패키지 목록을 반환합니다. |
getSourceTestJavaPackageSet |
프로젝트 생성 마법사를 통해 프로젝트 생성 시, test 또는 src/test/java 등에 생성할 패키지 목록을 반환합니다. |
getSourceTestResourcePackageSet |
프로젝트 생성 마법사를 통해 프로젝트 생성 시, src/test/resource 등에 생성할 패키지 목록을 반환합니다. |
doBeforeCreation |
프로젝트 생성 마법사를 통해 프로젝트를 생성 전 생성 작업을 작성합니다. |
doAfterCreation |
프로젝트 생성 마법사를 통해 프로젝트를 생성 후 생성 작업을 작성합니다. |