주석문
이번 장에서는 어플리케이션 개발을 위해 작성되는 프로그램 주석 작성에 대한 주의 사항을 설명한다. 주석문은 JavaDoc 형태의 주석문을 사용한다.
1. Service, Bean 클래스 주석문
Service 와 Bean 클래스의 주석문은 BXM Studio 의 Wizard로 생성하면 다음처럼 자동으로 생성 된다. @author 부분에 개발자(한글이름) 부분을 실제 개발자 이름으로 변경한다.
/**
* <b>BXM Business class</b>
* <p>
* <b>Revision history</b><br>
* <pre>
* 2019.01.04 : New creation
* </pre>
*
* @since 2019.01.04
* @version 1.0.0
* @author 개발자(한글이름)
*/
2. Service 오퍼레이션 및 Bean의 메소드 주석문
Service 오퍼레이션과 Bean의 메소드의 주석문은 사용자가 직접 입력한다. 주석문을 작성하려는 Service 오퍼레이션 또는 Bean 의 메소드 선언 위에 /**을 입력 후 Enter 키를 입력하면 다음과 같은 JavaDoc 주석이 생성된다.
/**
* @param input DSmpEmpTst000Dto
* @return DSmpEmpTst000Dto
* @throws DefaultApplicationException
*/
@BxmCategory(logicalName = "샘플직원정보 단건 조회")
public DSmpEmpTst000Dto getEmpInf(DSmpEmpTst000Dto input) throws DefaultApplicationException {
... ...
}
3. 메소드 본문에서의 주석문
Service 오퍼레이션 및 Bean 의 메소드 본문에서 주석은 Flow Diagram 산출물을 위해 다음과 같이 JavaDoc 형태의 주석을 사용한다.
4. @BXMType
소스코드에 주석 및 어노테이션을 작성하면 이를 이용하며 Studio에서 소스코드의 플로우를 표현한다.
4.1. LogicalArea
프로우 디자이너로 업무 흐름을 표현하고자 할 때 사용한다.
@Desc : BXMType의 설명을 작성한다. 한줄 인 경우에 20자 이내에서 작성하고, 두줄인 경우 한주에 10자 이내에서 작성한다. 초과한 경우 플로우 디자이너에서 짤려서 보인다.
/**
* @BXMType LogicalArea
* @Desc 업무구분에 따른 분기처리를 수행한다.
*/
/**
* @BXMType LogicalArea
* @Desc 구분이 'I' 이면
* 등록처리
*/
logger.debug("등록처리");
4.2. IF
플로우 디자이너에 표현하고자 하는 분기문에 대해서 아래와 같이 작성한다.
@Desc : BXMType의 설명을 작성한다. 한줄 인 경우에 20자 이내에서 작성하고, 두줄인 경우 한주에 10자 이내에서 작성한다. 초과한 경우 플로우 디자이너에서 짤려서 보인다.
/**
* @BXMType IF
* @Desc 조회 결과에 따른 메시지 조립
*/
if(output.getFeduDeptNo() == 10)/** 조회한 사원의 부서번호가 10 이면.. */
{
logger.debug("조회한 사원의 부서번호 : 10");
}
else /** 조회한 부서번호가 10이 아니면.. */
{
logger.debug("조회한 사원의 부서번호 : {}", output.getFeduDeptNo());
}
4.3. Loop
플로우 디자이너에 표현하고자 하는 반복문에 대해서 아래와 같이 작성한다.
@Desc : BXMType의 설명을 작성한다. 한줄 인 경우에 20자 이내에서 작성하고, 두줄인 경우 한주에 10자 이내에서 작성한다. 초과한 경우 플로우 디자이너에서 짤려서 보인다.
/**
* @BXMType Loop
* @Desc Bean의 Output을 Service의 Output으로 설정.
*/
for (DSmpEmpTst000Dto fetchDto : beanOutput) {
outDtoSub1 = new SSMP1002A001OutDtoSubGrid01();
outDtoSub1.setFeduEmpNo(fetchDto.getFeduEmpNo());
outDtoSub1.setFeduEmpNm(fetchDto.getFeduEmpNm());
outDtoSub1.setFeduOccpNm(fetchDto.getFeduOccpNm());
output.getGrid01().add(outDtoSub1);
}