亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? streamingmarkupbuilder.groovy

?? Groovy動態(tài)語言 運行在JVM中的動態(tài)語言 可以方便的處理業(yè)務(wù)邏輯變化大的業(yè)務(wù)
?? GROOVY
字號:
package groovy.xml

import groovy.xml.streamingmarkupsupport.AbstractStreamingBuilder
import groovy.xml.streamingmarkupsupport.StreamingMarkupWriter
import groovy.xml.streamingmarkupsupport.BaseMarkupBuilder


/*

Copyright 2004 (C) John Wilson. All Rights Reserved.

Redistribution and use of this software and associated documentation
("Software"), with or without modification, are permitted provided
that the following conditions are met:

1. Redistributions of source code must retain copyright
   statements and notices.  Redistributions must also contain a
   copy of this document.

2. Redistributions in binary form must reproduce the
   above copyright notice, this list of conditions and the
   following disclaimer in the documentation and/or other
   materials provided with the distribution.

3. The name "groovy" must not be used to endorse or promote
   products derived from this Software without prior written
   permission of The Codehaus.  For written permission,
   please contact info@codehaus.org.

4. Products derived from this Software may not be called "groovy"
   nor may "groovy" appear in their names without prior written
   permission of The Codehaus. "groovy" is a registered
   trademark of The Codehaus.

5. Due credit should be given to The Codehaus -
   http://groovy.codehaus.org/

THIS SOFTWARE IS PROVIDED BY THE CODEHAUS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
THE CODEHAUS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.

*/

    class StreamingMarkupBuilder extends AbstractStreamingBuilder {
        def pendingStack = []
        def commentClosure = {doc, pendingNamespaces, namespaces, namespaceSpecificTags, prefix, attrs, body, out ->
                                        out.unescaped() << "<!--"
                                        out.bodyText() << body
                                        out.unescaped() << "-->"
                                     }
         def piClosure = {doc, pendingNamespaces, namespaces, namespaceSpecificTags, prefix, attrs, body, out ->
                                    attrs.each {target, instruction ->
                                      out.unescaped() << "<?"
                                      if (instruction instanceof Map) {
                                        out.unescaped() << target
                                        instruction.each { name, value ->
                                          if (value.toString().contains('"')) {
                                            out.unescaped() << " $name='$value'"
                                          } else {
                                            out.unescaped() << " $name=\"$value\""                                          
                                          }
                                        }
                                      } else {
                                        out.unescaped() << "$target $instruction"
                                      }
                                      out.unescaped() << "?>"
                                    }
                                 }
        def declarationClosure = {doc, pendingNamespaces, namespaces, namespaceSpecificTags, prefix, attrs, body, out ->
                                     out.unescaped() << '<?xml version="1.0" encoding="'
                                     out.bodyText() << "${out.encoding}"
                                     out.unescaped() << '"?>\n'
                                 }
        def noopClosure = {doc, pendingNamespaces, namespaces, namespaceSpecificTags, prefix, attrs, body, out ->
                                      if (body instanceof Closure) {
                                        def body1 = body.clone()
                                        
                                        body1.delegate = doc
                                        body1(doc)
                                      } else if (body instanceof Buildable) {
                                          body.build(doc)
                                      } else if (body != null) {
                                          body.each {
                                            if (it instanceof Closure) {
                                              def body1 = it.clone()
                                              
                                              body1.delegate = doc
                                              body1(doc)
                                            } else if (it instanceof Buildable) {
                                              it.build(doc)
                                            } else {
                                              out.bodyText() << it
                                            }
                                          }
                                      }
                                }
        def unescapedClosure = {doc, pendingNamespaces, namespaces, namespaceSpecificTags, prefix, attrs, body, out ->
                                          out.unescaped() << body
                                     }
        def tagClosure = {tag, doc, pendingNamespaces, namespaces, namespaceSpecificTags, prefix, attrs, body, out ->
                                  if (prefix != "") {
                                      if (!(namespaces.containsKey(prefix) || pendingNamespaces.containsKey(prefix))) {
                                          throw new GroovyRuntimeException("Namespace prefix: ${prefix} is not bound to a URI")
                                      }
          
                                      if (prefix != ":") tag = prefix + ":" + tag
                                  }
          
                                  out = out.unescaped() << "<${tag}"
          
                                  attrs.each {key, value ->
                                                  if (key.contains('$')) {
                                                      def parts = key.tokenize('$')
          
                                                      if (namespaces.containsKey(parts[0]) || pendingNamespaces.containsKey(parts[0])) {
                                                          key = parts[0] + ":" + parts[1]
                                                      } else {
                                                          throw new GroovyRuntimeException("bad attribute namespace tag: ${parts[0]} in ${key}")
                                                      }
                                                  }
          
                                                  out << " ${key}='"
                                                  out.attributeValue() << "${value}"
                                                  out << "'"
                                                }
          
                                  def hiddenNamespaces = [:]
          
                                  pendingNamespaces.each {key, value ->
                                      hiddenNamespaces[key] = namespaces[key]
                                      namespaces[key] = value
                                      out << ((key == ":") ? " xmlns='" : " xmlns:${key}='")
                                      out.attributeValue() << "${value}"
                                      out << "'"
                                  }
          
                                  if (body == null) {
                                      out << "/>"
                                  } else {
                                      out << ">"
          
                                      pendingStack.add pendingNamespaces.clone()
                                      pendingNamespaces.clear()
          
                                      if (body instanceof Closure) {
                                        def body1 = body.clone()
                                        
                                        body1.delegate = doc
                                        body1(doc)
                                      } else if (body instanceof Buildable) {
                                          body.build(doc)
                                      } else {
                                          body.each {
                                            if (it instanceof Closure) {
                                              def body1 = it.clone()
                                              
                                              body1.delegate = doc
                                              body1(doc)
                                            } else if (it instanceof Buildable) {
                                              it.build(doc)
                                            } else {
                                              out.bodyText() << it
                                            }
                                          }
                                      }
          
                                      pendingNamespaces.clear()
                                      pendingNamespaces.putAll pendingStack.pop()
          
                                      out << "</${tag}>"
                                  }
          
                                  hiddenNamespaces.each {key, value ->
                                                              if (value == null) {
                                                                  namespaces.remove key
                                                              } else {
                                                                  namespaces[key] = value
                                                              }
                                                         }
                              }

        def builder = null

        StreamingMarkupBuilder() {
            specialTags.putAll(['yield':noopClosure,
                                'yieldUnescaped':unescapedClosure,
                                'xmlDeclaration':declarationClosure,
                                'comment':commentClosure,
                                'pi':piClosure])

            def nsSpecificTags = [':'                                              : [tagClosure, tagClosure, [:]],    // the default namespace
                                  'http://www.w3.org/XML/1998/namespace'           : [tagClosure, tagClosure, [:]],
                                  'http://www.codehaus.org/Groovy/markup/keywords' : [badTagClosure, tagClosure, specialTags]]

            this.builder = new BaseMarkupBuilder(nsSpecificTags)
        }
        
        def encoding = null

        public bind(closure) {
            def boundClosure = this.builder.bind(closure);
            def enc = encoding; // take a snapshot of the encoding when the closure is bound to the builder

            {out ->
                out = new StreamingMarkupWriter(out, enc)
                boundClosure.trigger = out
                out.flush()
            }.asWritable()
        }
    }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美aⅴ...| 日韩不卡免费视频| 91麻豆精品国产| 不卡av在线免费观看| 久久丁香综合五月国产三级网站| 亚洲天堂福利av| 久久亚洲一区二区三区四区| 欧美日韩一本到| 91免费视频网| 国产精品911| 老色鬼精品视频在线观看播放| 一区二区三区国产精华| 久久久国产精华| 日韩欧美国产一区在线观看| 欧美视频日韩视频在线观看| 北条麻妃一区二区三区| 国产91在线看| 国产精品一区二区在线看| 日本大胆欧美人术艺术动态| 亚洲国产一区二区视频| 自拍偷拍国产精品| 国产精品久久久久久久久果冻传媒 | 国产一区二区三区最好精华液| 亚洲成av人片在线| 一区二区三区免费看视频| 中文字幕一区二区三区在线不卡| 久久久国际精品| 国产亚洲女人久久久久毛片| 亚洲精品一区二区精华| 欧美一级片在线看| 91精品国产综合久久小美女| 91麻豆精品国产91久久久久久| 欧美色中文字幕| 欧美精品一卡二卡| 欧美日韩高清影院| 91精品国产入口| 日韩一区二区三区视频在线观看| 777奇米成人网| 日韩三级电影网址| 日韩欧美一卡二卡| 亚洲精品在线观看网站| 久久久综合网站| 国产无人区一区二区三区| 久久久精品天堂| 日本一区二区三区dvd视频在线| 国产偷国产偷精品高清尤物| 亚洲国产成人在线| 亚洲视频1区2区| 亚洲h在线观看| 麻豆精品国产91久久久久久| 九九九久久久精品| 国产不卡视频一区二区三区| 99久免费精品视频在线观看 | 欧美成人欧美edvon| xfplay精品久久| 国产免费观看久久| 亚洲毛片av在线| 免费人成网站在线观看欧美高清| 狠狠色狠狠色综合系列| 成人污污视频在线观看| 91麻豆.com| 7777精品伊人久久久大香线蕉的| 精品久久久久久亚洲综合网| 国产精品欧美久久久久无广告| 一区二区在线免费观看| 日本午夜精品视频在线观看 | 在线观看亚洲专区| 欧美一级在线视频| 欧美国产97人人爽人人喊| 一区二区视频在线| 蜜臀av在线播放一区二区三区| 高清av一区二区| 欧美日韩一区 二区 三区 久久精品| 日韩视频一区在线观看| 国产精品人妖ts系列视频| 亚洲大片精品永久免费| 国产乱人伦偷精品视频不卡 | 精品国产免费一区二区三区四区 | 国产福利一区在线| 91久久精品网| 精品动漫一区二区三区在线观看| 国产精品免费免费| 免费成人在线观看| 91丨九色丨蝌蚪丨老版| 精品美女一区二区三区| 亚洲视频一二区| 久久 天天综合| 欧美主播一区二区三区美女| 久久蜜桃av一区精品变态类天堂| 亚洲激情图片小说视频| 韩国成人精品a∨在线观看| 日本韩国一区二区| 久久久不卡网国产精品一区| 午夜精品久久久久影视| 成人午夜视频免费看| 91精品一区二区三区久久久久久| 日韩一区中文字幕| 国产精品1区二区.| 91精品国产综合久久久蜜臀图片| 最新高清无码专区| 国产精选一区二区三区| 51精品国自产在线| 亚洲一区二区三区四区在线免费观看 | 8x福利精品第一导航| 中文字幕一区免费在线观看| 精品一区二区三区欧美| 91麻豆精品国产自产在线观看一区| 亚洲日本护士毛茸茸| 国产不卡视频一区二区三区| 精品福利av导航| 麻豆免费精品视频| 欧美老女人第四色| 亚洲综合一区二区精品导航| 91在线免费视频观看| 国产婷婷色一区二区三区在线| 奇米888四色在线精品| 欧美日韩高清一区二区| 亚洲最大成人网4388xx| 色综合久久久久久久久久久| √…a在线天堂一区| 丰满白嫩尤物一区二区| 欧美精品一区二区久久久| 日韩国产欧美在线播放| 欧美色涩在线第一页| 亚洲日本青草视频在线怡红院| 成人激情小说乱人伦| 国产精品麻豆99久久久久久| 成人av午夜电影| 国产精品婷婷午夜在线观看| 成人精品gif动图一区| 国产亚洲欧洲997久久综合| 国产精品一区在线观看乱码| 欧美精品一区二区久久久| 精品亚洲porn| 精品国产髙清在线看国产毛片| 久久se精品一区精品二区| www日韩大片| 成人国产精品免费观看动漫| 国产精品卡一卡二| 色就色 综合激情| 午夜精品影院在线观看| 欧美日本国产一区| 美国毛片一区二区三区| 欧美精品一区二区三区一线天视频| 国内一区二区在线| 久久精品亚洲精品国产欧美kt∨| 国产精品18久久久久| 欧美激情一二三区| 色狠狠综合天天综合综合| 一区二区三区不卡视频 | 亚州成人在线电影| 欧美午夜电影在线播放| 日韩精品色哟哟| 久久久另类综合| 99久久国产综合精品色伊| 亚洲男人天堂一区| 8v天堂国产在线一区二区| 久久99日本精品| 国产日韩欧美精品综合| 91黄色激情网站| 美女网站色91| 中文无字幕一区二区三区| 日本久久电影网| 久久 天天综合| 亚洲视频中文字幕| 4438亚洲最大| 成人18视频日本| 五月天亚洲婷婷| 中文字幕第一页久久| 欧美日韩亚洲综合| 国产一区二三区好的| 一区二区三区欧美久久| 欧美精品一区二区三区蜜桃| www.成人网.com| 免费视频一区二区| 最新中文字幕一区二区三区| 在线播放一区二区三区| 国产成人av自拍| 视频一区视频二区中文| 国产欧美日韩综合精品一区二区| 欧美日韩日日骚| 成人免费看黄yyy456| 日韩黄色片在线观看| 国产精品福利一区二区三区| 欧美一区三区二区| 99久久99久久久精品齐齐| 麻豆免费精品视频| 一区二区三区在线免费| 久久午夜电影网| 欧美电影影音先锋| 91麻豆精品一区二区三区| 久久er精品视频| 亚洲在线视频免费观看| 国产区在线观看成人精品| 777xxx欧美| 精品视频在线免费看| 99这里都是精品| 国产美女在线精品| 久久精品国产久精国产爱| 一区二区免费看|