/*
* Copyright 2008-2009 MOPAS(Ministry of Public Administration and Security).
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package egovframework.rte.itl.integration;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;
/**
* 전자정부 연계 서비스의 표준 메시지 헤더 인터페이스
* <p>
* <b>NOTE:</b> 전자정부 연계 서비스의 표준 메시지 헤더 interface이다.
* </p>
*
* @author 실행환경 개발팀 심상호
* @since 2009.06.01
* @version 1.0
* @see <pre>
* == 개정이력(Modification Information) ==
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.06.01 심상호 최초 생성
*
* </pre>
*/
public interface EgovIntegrationMessageHeader {
/**
* <b>Class Name</b> : ResultCode
* <p>
* <b>Description</b> : 전자정부 연계 서비스 결과 코드를 나타내는 enum이다. </p>
* <p>
* <table border="1">
* <caption><b>Modification Information</b></caption>
* <tr bgcolor="bbbbbb">
* <th>수정일</th>
* <th>수정자</th>
* <th>수정내용</th>
* </tr>
* <tr>
* <td>2009.03.03</td>
* <td>심상호</td>
* <td>최초 생성</td>
* </tr>
* </table>
* </p>
*
* @author 실행환경 개발팀 심상호
* @since 2009. 06. 01
* @version 1.0
* @see
*/
/**
* 전자정부 연계 서비스 결과 코드를 나타내는 enum
* <p>
* <b>NOTE:</b> 전자정부 연계 서비스 결과 코드를 나타내는 enum이다.</p>
*
* @author 실행환경 개발팀 심상호
* @since 2009.06.01
* @version 1.0
* @see <pre>
* == 개정이력(Modification Information) ==
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.06.01 심상호 최초 생성
*
* </pre>
*/
public enum ResultCode {
/**
* 정상 종료 : <br>
* 연계가 정상적으로 종료된 경우
*/
OK("0000"),
/**
* Timeout 발생 : <br>
* 연계 수행 중 Client 단에서 Timeout이 발생한 경우
*/
TIME_OUT("0001"),
/**
* 업무 오류 발생 : <br>
* 연계 수행 중 Server 단에서 업무적인 오류가 발생한 경우
*/
BUSINESS_ERROR("0002"),
// Configuration
/**
* 사용하지 않는 연계 : <br>
* 연계 정의(IntegrationDefinition)의 <code>using</code> flag가
* <code>false</code>인 경우
*/
NOT_USABLE_INTEGRATION("1000"),
/**
* 연계 가용시간이 아님 : <br>
* 연계를 요청한 시각이 연계 정의(IntegrationDefinition)의 <code>validateFrom</code>와
* <code>validateTo</code> 사이가 아닌 경우
* <p>
* <table border="1">
* <caption> <b> 연계 가용시각 조건 ( <code>now : Calendar</code> = 현재 시각) </b>
* </caption>
* <tr bgcolor="bbbbbb">
* <th><code>validateFrom</code></th>
* <th><code>validateTo</code></th>
* <th>valid condition</th>
* </tr>
* <tr>
* <td><code>null</code></td>
* <td><code>null</code></td>
* <td><code>= true</code></td>
* </tr>
* <tr>
* <td><code>from : Calendar</code></td>
* <td><code>null</code></td>
* <td><code>= (from.compareTo(now) <=
* 0)</code></td>
* </tr>
* <tr>
* <td><code>null</code></td>
* <td><code>to : Calendar</code></td>
* <td><code>= (now.compareTo(to) <= 0)</code></td>
* </tr>
* <tr>
* <td><code>from : Calendar</code></td>
* <td><code>to : Calendar</code></td>
* <td><code>= (from.compareTo(now> <= 0 &&
* now.compareTo(to) <= 0) </code></td>
* </tr>
* </table>
* </p>
*/
INVALID_TIME("1001"),
/**
* 사용하지 않는 서비스 : <br>
* 연계 정의(IntegrationDefinition)에 등록된 제공 서비스(ServiceDefinition)의
* <code>using</code> flag 값이 <code>false</code>인 경우
*/
NOT_USABLE_SERVICE("1002"),
/**
* 기대하지 않은 연계 요청자 : <br>
* 연계 제공 시스템(Server)에 등록된 연계 정의(IntegrationDefinition)의 요청 시스템 코드값과 요청
* 메시지 헤더의 요청 시스템 코드값이 일치하지 않는 경우
*/
UNEXPECTED_CONSUMER("1003"),
/**
* 기대하지 않은 연계 제공자 : <br>
* 연계 제공 시스템(Server)에 등록된 시스템 코드와 요청 메시지 헤더의 제공 시스템 코드값이 일치하지 않는 경우
*/
UNEXPECTED_PROVIDER("1004"),
/**
* 제공하지 않는 서비스 : <br>
* 연계 제공 시스템(Server)에 등록되어 있지 않은 서비스를 요청한 경우
*/
NO_SUCH_SERVICE("1005"),
/**
* 연계 서비스 초기화 실패 : <br>
* 연계 제공 서비스를 초기화하는데 실패한 경우
*/
FAIL_IN_INITIALIZING("1006"),
// send request
/**
* 요청 메시지 생성 실패 : <br>
* Client에서 요청 메시지를 생성할 때 오류가 발생한 경우
*/
FAIL_IN_CREATING_REQUEST_MESSAGE("2000"),
/**
* 요청 메시지 송신 실패 : <br>
* Client에서 요청 메시지를 송신할 때 오류가 발생한 경우
*/
FAIL_IN_SENDING_REQUEST("2001"),
// receive request
/**
* 요청 메시지 수신 실패 : <br>
* Server에서 요청 메시지를 수신할 때 오류가 발생한 경우
*/
FAIL_IN_RECEIVING_REQUEST("3000"),
/**
* 요청 메시지 분석 실패 : <br>
* Server에서 요청 메시지를 분석할 때 오류가 발생한 경우
*/
FAIL_IN_PARSING_REQUEST_MESSAGE("3001"),
/**
* 요청 메시지 헤더 부재 : <br>
* Server에서 받은 요청 메시지에 표준 메시지 헤더가 존재하지 않는 경우
*/
NO_MESSAGE_HEADER_IN_REQUEST("3002"),
/**
* 서비스 제공 모듈 호출 실패 : <br>
* Server에서 서비스 제공 모듈을 호출할 때 오류가 발생한 경우
*/
FAIL_TO_CALL_SERVICE_PROVIDER("3003"),
// send response
/**
* 응답 메시지 생성 실패 : <br>
* Server에서 응답 메시지를 생성할 때 오류가 발생한 경우
*/
FAIL_IN_CREATING_RESPONSE_MESSAGE("4000"),
/**
* 응답 메시지 송신 실패 : <br>
* Server에서 응답 메시지를 송신할 때 오류가 발생한 경우
*/
FAIL_IN_SENDING_RESPONSE("4001"),
// receive response
/**
* 응답 메시지 수신 실패 : <br>
* Client에서 응답 메시지를 수신할 때 오류가 발생한 경우
*/
FAIL_IN_RECEIVING_RESPONSE("5000"),
/**
* 응답 메시지 분석 실패 : <br>
* Client에서 응답 메시지를 분석할 때 오류가 발생한 경우
*/
FAIL_IN_PARSING_RESPONSE_MESSAGE("5001");
/** value */
private String value;
/**
* Constructor
*
* @param value
* value
*/
private ResultCode(String value) {
this.value = value;
}
/**
* value
*
* @return the value
*/
public String getValue() {
return value;
}
/** codes */
private static Map<String, ResultCode> codes = new HashMap<String, ResultCode>();
static {
for (ResultCode resultCode : ResultCode.values()) {
codes.put(resultCode.value, resultCode);
}
}
/**
* <code>value</code> 값에 해당하는 ResultCode를 return한다.
*
* @param value
* value
* @return ResultCode
*/
public static ResultCode getCode(final String value) {
return codes.get(value);
}
}
/**
* 연계 Id를 읽어온다.
*
* @return 연계 Id
*/
public String getIntegrationId();
/**
* 연계 Id를 setting한다.
*
* @param integrationId
* 연계 Id
*/
public void setIntegrationId(final String integrationId);
/**
* 제공 기관 Id를 읽어온다.
*
* @return 제공 기관 Id
*/
public String getProviderOrganizationId();
/**
* 제공 기관 Id를 setting한다.
*
* @param providerOrganizationId
* 제공 기관 Id
*/
public void setProviderOrganizationId(final String providerOrganizationId);
/**
* 제공 시스템 Id를 읽어온다.
*
* @return 제공 시스템 Id
*/
public String getProviderSystemId();
/**
* 제공 시스템 Id를 setting한다.
*
* @param providerSystemId
* 제공 시스템 Id
*/
public void setProviderSystemId(final String providerSystemId);
/**
* 제공 서비스 Id를 읽어온다.
*
* @return 제공 서비스 Id
*/
public String getProviderServiceId();
/**
* 제공 서비스 Id를 setting한다.
*
* @param providerServiceId
* 제공 서비스 Id
*/
public void setProviderServiceId(final String providerServiceId);
/**
* 요청 기관 Id를 읽어온다.
*
* @return 요청 기관 Id
*/
public String getConsumerOrganizationId();
/**
* 요청 기관 Id를 setting한다.
*
* @param consumerOrganizationId
* 요청 기관 Id
*/
public void setConsumerOrganizationId(final String consumerOrganizationId);
/**
* 요청 시스템 Id를 읽어온다.
*
* @return 요청 시스템 Id
*/
public String getConsumerSystemId();
/**
* 요청 시스템 Id를 setting한다.
*
* @param consumerSystemId
* 요청 시스템 Id
*/
public void setConsumerSystemId(final String consumerSystemId);
/**
* 요청 송신 시각을 읽어온다.
*
* @return 요청 송신 시각
*/
public Calendar getRequestSendTime();
/**
* 요청 송신 시각을 setting한다.
*
* @param requestSendTime
* 요청 송신 시각
*/
public void setRequestSendTime(final Calendar requestSendTime);
/**
* 요청 수신 시각을 읽어온다.
*
* @return 요청 수신 시각
*/
public Calendar getRequestReceiveTime();
/**
* 요청 수신 시각을 setting한다.
*
* @param requestReceiveTime
* 요청 수신 시각
*/
public void setRequestReceiveTime(final Calendar requestReceiveTime);
/**
* 응답 송신 시각을 읽어온다.
*
* @return 응답 송신 시각
*/
public Calendar getResponseSendTime();
/**
* 응답 송신 시각을 setting한다.
*
* @param responseSendTime
* 응답 송신 시각
*/
public void setResponseSendTime(final Calendar responseSendTime);
/**
* 응답 수신 시각을 읽어온다.
*
* @return 응답 수신 시각
*/
public Calendar getResponseReceiveTime();
/**
* 응답 수신 시각을 setting한다.
*
* @param responseReceiveTime
* 응답 수신 시각
*/
public void setResponseReceiveTime(final Calendar responseReceiveTime);
/**
* 결과 코드를 읽어온다.
*
* @return 결과 코드
*/
public ResultCode getResultCode();
/**
* 결과 코드를 setting한다.
*
* @param resultCode
* 결과 코드
*/
public void setResultCode(final ResultCode resultCode);
/**
* 결과 메시지를 읽어온다.
*
* @return 결과 메시지
*/
public String getResultMessage();
/**
* 결과 메시지를 setting한다.
*
* @param resultMessage
* 결과 메시지
*/
public void setResultMessage(final String resultMessage);
}