001    /*
002     * Copyright (c) 2009 The openGion Project.
003     *
004     * Licensed under the Apache License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     *
008     *     http://www.apache.org/licenses/LICENSE-2.0
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
013     * either express or implied. See the License for the specific language
014     * governing permissions and limitations under the License.
015     */
016    package org.opengion.hayabusa.db;
017    
018    import org.opengion.fukurou.util.ErrMsg;
019    
020    import java.sql.SQLData;
021    import java.sql.SQLInput;
022    import java.sql.SQLOutput;
023    import java.sql.SQLException;
024    
025    /**
026     * SQLData インターフェースを継承した シス?変数の受け渡し用オブジェクトです?
027     * 行番号??と改?ード[A:追?C:変更/D:削除]を持って?す?
028     *
029     * @og.group エラー処?
030     *
031     * @version  4.0
032     * @author   Kazuhiko Hasegawa
033     * @since    JDK5.0,
034     */
035    public class DBErrMsg implements SQLData {
036            private String sql_type ;
037            private ErrMsg errMsg   ;
038    
039            /**
040             *  ?ォルトコンストラクター
041             */
042            public DBErrMsg() {
043                    sql_type = null;
044                    errMsg   = null;
045            }
046    
047            /**
048             *  すべての属???を指定して、新しい DBErrMsg オブジェクトを作?します?
049             *
050             * @param    type ??タベ?スタイプ文字?
051             * @param    no 行番号
052             * @param    keka 結果 0:正常 1:警?2:異常
053             * @param    errCD メ?ージID
054             * @param    arg0 メ?ージの引数0
055             * @param    arg1 メ?ージの引数1
056             * @param    arg2 メ?ージの引数2
057             * @param    arg3 メ?ージの引数3
058             * @param    arg4 メ?ージの引数4
059             * @param    pg PG?
060             * @param    step ス?プ名
061             */
062    //      public DBErrMsg( final String type,final int no,final int keka,final String errCD,
063    //                                              final String arg0,final String arg1,final String arg2,
064    //                                              final String arg3,final String arg4 ) {
065            public DBErrMsg( final String type,final int no,final int keka,final String errCD,
066                            final String arg0,final String arg1,final String arg2,final String arg3,final String arg4,
067                            final String pg,final String step) {
068                    sql_type = type;
069    //              errMsg   = new ErrMsg( no,keka,errCD,arg0,arg1,arg2,arg3,arg4 );
070                    errMsg   = new ErrMsg( no,keka,pg,step,errCD,arg0,arg1,arg2,arg3,arg4 ); // 3.8.9.5 (2007/09/12)
071            }
072    
073            /**
074             *  ?のエラーメ?ージオブジェクトを返します?
075             *
076             * @return   エラーメ?ージ
077             */
078            public ErrMsg getErrMsg() {
079                    return errMsg;
080            }
081    
082            // ============================================================
083            // implements SQLData
084            // ============================================================
085    
086            /**
087             *  ???タイプ???を返します?
088             *
089             * @return    ???タイプ???
090             * @throws SQLException ※ こ?実?ら? SQLException は、throw されません?
091             */
092            public String getSQLTypeName() throws SQLException {
093                    return sql_type;
094            }
095    
096            /**
097             *  ??タベ?ス?より?属?を取得し、オブジェクトを構築します?
098             *
099             * @og.rev 2.0.0.4 (2002/09/27) エラーメ?ージ表示の、行番号がおかし?の修正?
100             *
101             * @param       stream  ストリー?
102             * @param    typeName ???タイプ???
103             * @throws SQLException ??タベ?スアクセスエラー
104             */
105            public void readSQL( final SQLInput stream, final String typeName ) throws SQLException {
106                    sql_type = typeName;
107    
108                    int    no    = stream.readInt()+1;              // PLSQLでは、引数そ?ままの番号をセ?する?
109                    int    kekka = stream.readInt();
110                    String id    = stream.readString();
111                    String arg0 = stream.readString();
112                    String arg1 = stream.readString();
113                    String arg2 = stream.readString();
114                    String arg3 = stream.readString();
115                    String arg4 = stream.readString();
116                    String pg    = stream.readString(); // 3.8.9.5 (2007/09/12)
117                    String step  = stream.readString(); // 3.8.9.5 (2007/09/12)
118    
119    //              errMsg   = new ErrMsg( no,kekka,id,arg0,arg1,arg2,arg3,arg4 );
120                    errMsg   = new ErrMsg( no,kekka,pg,step,id,arg0,arg1,arg2,arg3,arg4 );   // 3.8.9.5 (2007/09/12)
121            }
122    
123            /**
124             *  ??タベ?ス?に?属?を設定します?
125             *
126             * @param       stream  ストリー?
127             * @throws SQLException ??タベ?スアクセスエラー
128             */
129            public void writeSQL( final SQLOutput stream ) throws SQLException {
130                    stream.writeInt(    errMsg.getNo()    );
131                    stream.writeInt(    errMsg.getKekka() );
132                    stream.writeString( errMsg.getId()    );
133                    stream.writeString( errMsg.getArg(0) );
134                    stream.writeString( errMsg.getArg(1) );
135                    stream.writeString( errMsg.getArg(2) );
136                    stream.writeString( errMsg.getArg(3) );
137                    stream.writeString( errMsg.getArg(4) );
138                    stream.writeString( errMsg.getPg()    );         // 3.8.9.5 (2007/09/12)
139                    stream.writeString( errMsg.getStep()  );         // 3.8.9.5 (2007/09/12)
140            }
141    }