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.fukurou.xml;
017    
018    /**
019     * ã“ã?クラスã¯ã€HybsXMLHandler ã«è¨­å®šã™ã‚?Listener インターフェースã§ã™ã?
020     * ã“れã¯ã€HybsXMLHandler#setTagElementListener( TagElementListener ) ã™ã‚‹ã“ã¨ã§ã€?
021     * ROW 毎㫠å†?ƒ¨æƒ??ã‚?TagElement オブジェクト化ã—ã?action( TagElement )
022     * ãŒå‘¼ã³å‡ºã•れã¾ã™ã?ã“ã? Listener を介ã—ã¦ã€?¼‘レコードãšã¤å‡¦ç?™ã‚‹ã“ã¨ã?
023     * å¯èƒ½ã§ã™ã?
024     *
025     * ã“ã? Listener ã‚?implements ã—ãŸã‚¯ãƒ©ã‚¹ã‚’å?別ã«ä½œæ?ã™ã‚‹ã“ã¨ã§ã€?
026     * XML処ç?‚’ã€ã?ラグインå¯èƒ½ã«ã—ã¾ã™ã?
027     *
028     * @version  4.0
029     * @author   Kazuhiko Hasegawa
030     * @since    JDK5.0,
031     */
032    public interface TagElementListener  {
033    
034            /**
035             * <ROWSET> ã‚¿ã‚°ã®ä¸?•ªæœ??ã«å‘¼ã³å‡ºã•れã¾ã™ã?
036             * ROWSET ã®å±žæ?ã§ã‚ã‚‹ã€table 属æ?ã¨ã€dbid 属æ? ã‚’ã?TagElement ã®
037             * get メソãƒ?ƒ‰ã§å–å¾—ã§ãã¾ã™ã?
038             * å–得時ã®ã‚­ãƒ¼ã¯ã€ãれãžã‚Œã?"TABLE" 㨠"DBID" ã§ã™ã?
039             *
040             * @param tag タグエレメン�
041             * @see org.opengion.fukurou.xml.TagElement
042             * @see HybsXMLHandler#setTagElementListener( TagElementListener )
043             */
044            void actionInit( TagElement tag ) ;
045    
046            /**
047             * <ROW> ã‚¿ã‚°ã® endElement 処ç?¯Žã«å‘¼ã³å‡ºã•れã¾ã™ã?
048             * ã“ã? Listener ã‚’ã‚»ãƒ?ƒˆã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šã€è¡Œãƒ‡ãƒ¼ã‚¿ã‚’å–å¾—é?度ã€?
049             * TagElement オブジェクトを作æ?ã—ã?ã“ã?メソãƒ?ƒ‰ãŒå‘¼ã³å‡ºã•れã¾ã™ã?
050             *
051             * @param tag タグエレメン�
052             * @see org.opengion.fukurou.xml.TagElement
053             * @see HybsXMLHandler#setTagElementListener( TagElementListener )
054             */
055            void actionRow( TagElement tag ) ;
056    
057            /**
058             * <EXEC_SQL> ã‚¿ã‚°ã® endElement 処ç?¯Žã«å‘¼ã³å‡ºã•れã¾ã™ã?
059             * getBody メソãƒ?ƒ‰ã‚’使用ã—ã¦ã€ã“ã®ã‚¿ã‚°ã®BODYéƒ¨ã®æ–?­—å?ã‚’å–å¾—ã—ã¾ã™ã?
060             * ã“ã? Listener ã‚’ã‚»ãƒ?ƒˆã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šã€EXEC_SQL ãƒ??ã‚¿ã‚’å–å¾—é?度ã€?
061             * TagElement オブジェクトを作æ?ã—ã?ã“ã?メソãƒ?ƒ‰ãŒå‘¼ã³å‡ºã•れã¾ã™ã?
062             *
063             * @param tag タグエレメン�
064             * @see org.opengion.fukurou.xml.TagElement
065             * @see HybsXMLHandler#setTagElementListener( TagElementListener )
066             */
067            void actionExecSQL( TagElement tag ) ;
068    
069            /**
070             * <MERGE_SQL> ã‚¿ã‚°ã® endElement 処ç?™‚ã«å‘¼ã³å‡ºã•れã¾ã™ã?
071             * getBody メソãƒ?ƒ‰ã‚’使用ã—ã¦ã€ã“ã®ã‚¿ã‚°ã®BODYéƒ¨ã®æ–?­—å?ã‚’å–å¾—ã—ã¾ã™ã?
072             * MERGE_SQLã‚¿ã‚°ã¯ã€ã?ージ処ç?—ãŸã„ãƒ??タ部よりも上ä½ã«è¨˜è¿°ã—ã¦ãŠã
073             * å¿?¦ãŒã‚りã¾ã™ãŒã€ä¸­é–“部ã«è¨˜è¿°ã—ã¦ã‚‚æ§‹ã„ã¾ã›ã‚“。ãŸã?—ã€?¼‘回ã®ã¿ã§ã™ã?
074             * ã“ã?ã‚¿ã‚°ãŒç¾ã‚Œã‚‹ã¾ã§ã¯ã€INSERT ã®ã¿å®Ÿè¡Œã•れã¾ã™ã?ã“ã?タグ以é™ã?ã€?
075             * ä¸?—¦ UPDATE ã—ã?çµæžœã??ä»¶ã®å ´åˆã?ã€INSERTã™ã‚‹æµã‚Œã«ãªã‚Šã¾ã™ã?
076             * 完å?ã« INSERT ã®ã¿ã§ã‚ã‚‹ãƒ??ã‚¿ã‚’å‰åŠã«ã€UPDATE/INSERTを行ã†
077             * ãƒ??タを後åŠã«ã€ãã®é–“ã«ã€MERGE_SQL ã‚¿ã‚°ã‚’å?れるã“ã¨ã§ã€ç„¡æ„味ãª
078             * UPDATE ã‚’é¿ã‘ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã?
079             * ã“ã? Listener ã‚’ã‚»ãƒ?ƒˆã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šã€MERGE_SQL ãƒ??ã‚¿ã‚’å–å¾—é?度ã€?
080             * TagElement オブジェクトを作æ?ã—ã?ã“ã?メソãƒ?ƒ‰ãŒå‘¼ã³å‡ºã•れã¾ã™ã?
081             *
082             * @param tag タグエレメン�
083             * @see org.opengion.fukurou.xml.TagElement
084             * @see HybsXMLHandler#setTagElementListener( TagElementListener )
085             */
086            void actionMergeSQL( TagElement tag ) ;
087    }