package com.eactive.eai.common.server; 

import java.io.Serializable;

/** 
* 1. 기능 : 운영하는 EAI 엔진 서버 정보를 표현하는 Java Value object
*           관련 테이블 - TSEAISY02
* 2. 처리 개요 : 
*     - 운영하는 EAI엔전 서버 정보를 표현하는 Java Value object
* 3. 주의사항 
*/
public class EAIServerVO implements Serializable
{
         
    /**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	/**
     * T3 PROTOCOL PREFIX
     */
    public static final String T3_PROTOCOL      = "t3"; 
    /**
     * HTTP PROTOCOL PREFIX
     */
    public static final String HTTP_PROTOCOL    = "http";   
    /**
     * IIOP PROTOCOL PREFIX
     */
    public static final String IIOP_PROTOCOL    = "iiop";
    
   /**
     *  EAI 서버 이름
     */
    private String name;            // EAI서버인스탄스명[TSEAISY02.EAISevrInstncName]
    /**
     * EAI 서버 ip 주소
     */
    private String address;         // EAI서버IP주소[TSEAISY02.EAISevrIP]
    
    
    /**
     * EAI 서버 리스 포트
     */
    private String port;            //서버리슨포트명
    /**
     * EAI 서버 장애 시 FAILOVER 서버
     */
    private String failoverSvr;     //장애극복서버명

    /**
     * EAI 서버가 운영되는 하드웨어 호스트이름
     */
    private String hostNm;     //호스트명
    
    /**
     * 1. 기능 : Defualt Constructor
     * 2. 처리 개요 : 
     *    - Defualt Constructor
     * 3. 주의사항
     *
     **/
    public EAIServerVO() {
    }
    
    /**
     * 1. 기능 : EAI 서버 이름을 저장하는 생성자 함수
     * 2. 처리 개요 : 
     *    - EAI 서버 이름을 저장하는 생성자 함수
     * 3. 주의사항
     *
     * @param   name    EAI 서버 이름
     **/
    public EAIServerVO(String name) {
        this.name = name;   
    } 
    
    /**
     * 1. 기능 : EAI 서버 이름을 저장하는 setter method
     * 2. 처리 개요 : 
     *    - EAI 서버 이름을 저장한다.
     * 3. 주의사항
     *
     * @param   name    EAI 서버 이름
     **/
    public void setName(String name) {
        this.name = name;   
    }
    
    /**
     * 1. 기능 : EAI 서버 이름을 반환하는 getter method
     * 2. 처리 개요 : 
     *    - EAI 서버 이름을 반환한다.
     * 3. 주의사항
     *
     * @return   EAI 서버 이름
     **/
    public String getName() {
        return this.name;   
    }
    
    /**
     * 1. 기능 : EAI 서버 IP 주로을 저장하는 setter method
     * 2. 처리 개요 : 
     *    - EAI 서버 IP 주로를 저장한다.
     * 3. 주의사항
     *
     * @param   address    EAI 서버 IP 주소
     **/
    public void setAddress(String address) {
        this.address = address;   
    }
    
    /**
     * 1. 기능 : EAI 서버 IP주소를 반환하는 getter method
     * 2. 처리 개요 : 
     *    - EAI 서버 IP주소을 반환한다.
     * 3. 주의사항
     *
     * @return   EAI 서버 IP주소
     **/
    public String getAddress() {
        return this.address;   
    }
    
    /**
     * 1. 기능 : EAI 서버 리슨 포트를 저장하는 setter method
     * 2. 처리 개요 : 
     *    - EAI 서버 리슨 포트호를 저장한다.
     * 3. 주의사항
     *
     * @param   port    EAI 서버 리슨 포트
     **/
    public void setPort(String port) {
        this.port = port;
    }   
    
    /**
     * 1. 기능 : EAI 서버 리슨 포트를 반환하는 getter method
     * 2. 처리 개요 : 
     *    - EAI 서버 리슨 포트를 반환한다.
     * 3. 주의사항
     *
     * @return   EAI 서버 리슨 포트
     **/
    public String getPort() {
        return this.port;   
    }
    
    /**
     * 1. 기능 : EAI 서버 FailOver 서버를 저장하는 setter method
     * 2. 처리 개요 : 
     *    - EAI 서버 FailOver 서버호를 저장한다.
     * 3. 주의사항
     *
     * @param   failoverSvr    FailOver 서버
     **/
    public void setFailoverSvr(String failoverSvr) {
        this.failoverSvr = failoverSvr;   
    }
    
    /**
     * 1. 기능 : EAI 서버 FailOver 서버를 반환하는 getter method
     * 2. 처리 개요 : 
     *    - EAI 서버 FailOver 서버트를 반환한다.
     * 3. 주의사항
     *
     * @return   EAI 서버 FailOver 서버
     **/
    public String getFailoverSvr() {
        return this.failoverSvr;   
    }
    
    /**
     * 1. 기능 : EAI 서버에 대한 URL을 반환하는 getter method
     * 2. 처리 개요 : 
     *    - EAI 서버에 대한 URL을 반환한다.
     * 3. 주의사항
     *
     * @return   EAI 서버에 대한 URL
     **/
    public String toURL(String protocol) {
        StringBuffer sb = new StringBuffer();
        sb.append(protocol).append(":").append("//");
        sb.append(address).append(":").append(port);
        
        return sb.toString();    
    }
    
    /**
     * 1. 기능 : EAIServerVO의 정보를 반환하는 메서드
     *    - EAIServerVO의 정보를 반환한다.
     * 3. 주의사항
     *
     * @return   EAIServerVO의 정보
     **/
    public String toString() {
        StringBuffer sb = new StringBuffer();
        sb.append("EAIServerVO[ name=").append(name);
        sb.append(", address=").append(address);
        sb.append(", port=").append(port);
        sb.append(", failoverSvr=").append(failoverSvr);
        sb.append(" ]");
        
        return sb.toString();   
    }
    
    /**
     * 1. 기능 : 호스트명을 저장하는 setter method
     * 2. 처리 개요 : 
     *    - 호스트명을 저장한다.
     * 3. 주의사항
     *
     * @param   address    EAI 서버 IP 주소
     **/
    // Migration - 추가
    public void setHostName(String hostNm) {
        this.hostNm = hostNm;   
    }
    
    /**
     * 1. 기능 : 호스트명을 반환하는 getter method
     * 2. 처리 개요 : 
     *    - 호스트명을 반환한다.
     * 3. 주의사항
     *
     * @return   EAI 서버 IP주소
     **/
    // Migration - 추가
    public String getHostName() {
        return this.hostNm;   
    }    
} 
