日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

javadoc提取工具_使JavaDoc保持最新状态的工具

發布時間:2023/12/3 java 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javadoc提取工具_使JavaDoc保持最新状态的工具 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

javadoc提取工具

在許多項目中,文檔不是最新的。 更改代碼后,很容易忘記更改文檔。 原因是可以理解的。 在代碼中進行更改,然后進行調試,然后希望在測試中進行更改(或者,如果您使用的是更多TDD,則以相反的順序進行更改),然后是新功能版本的喜悅和新版本的喜悅您忘記執行更新文檔的繁瑣任務。

在本文中,我將顯示一個示例,說明如何簡化流程并確保文檔至少是最新的。

工具

我在本文中使用的工具是Java :: Geci,它是一個代碼生成框架。 Java :: Geci的最初設計目標是提供一個框架,在該框架中,編寫代碼生成器將代碼注入到現有的Java源代碼中或生成新的Java源文件非常容易。 因此,名稱為:GEnerate Code Inline或GEnerate Code,Inject。

當我們談論文檔時,代碼生成支持工具會做什么?

在框架的最高級別上,源代碼只是一個文本文件。 像JavaDoc一樣,文檔也是文本。 源目錄結構中的文檔(例如markdown文件)是文本。 復制文本的一部分并將其轉換到其他位置是代碼生成的一種特殊形式。 這正是我們將要做的。

文檔的兩種用途

Java :: Geci有幾種支持文檔的方式。 我將在本文中描述其中之一。

方法是在單元測試中找到一些行,并在可能的轉換后將內容復制到JavaDoc中。 我將使用3.9版之后的apache.commons.lang項目當前主版本的示例進行演示。 盡管有改進的余地,但該項目的文獻記錄非常豐富。 必須以盡可能少的人力來執行此改進。 (不是因為我們懶惰,而是因為人類的工作容易出錯。)

重要的是要了解Java :: Geci不是預處理工具。 該代碼進入了實際的源代碼,并且得到了更新。 Java :: Geci不能消除復制粘貼代碼和文本的冗余。 它對其進行管理,并確保每當導致結果發生更改時,就一遍又一遍地復制和創建代碼。

Java :: Geci的一般工作方式

如果您已經聽說過Java :: Geci,則可以跳過本章。 對于其他人,這里是框架的簡要結構。

Java :: Geci在單元測試運行時生成代碼。 Java :: Geci實際上是作為一個或多個單元測試運行的。 有一個流暢的API可以配置框架。 從本質Geci ,這意味著運行生成器的單元測試是一個斷言語句,該語句創建一個新的Geci對象,調用配置方法,然后調用generate() 。 此方法generate()生成某些內容后返回true。 如果生成的所有代碼與源文件中的代碼完全相同,則返回false 。 如果源代碼中有任何更改,則在其周圍使用Assertion.assertFalse將使測試失敗。 只需再次運行編譯和測試。

框架收集所有配置為要收集的文件,并調用已配置和注冊的代碼生成器。 代碼生成器與代表源文件的抽象Source和Segment對象一起使用,并且源文件中的行可能會被生成的代碼覆蓋。 當所有生成器完成工作后,框架將收集所有段,將其插入Source對象中,如果其中任何一個發生了重大變化,則它將更新文件。

最后,框架返回到啟動它的單元測試代碼。 如果更新了任何源代碼文件,則返回值為true否則為false 。

JavaDoc中的示例

JavaDoc示例將示例自動包含在Apache Commons Lang3庫中的方法org.apache.commons.lang3.ClassUtils.getAbbreviatedName()的文檔中。 當前在master分支中的文檔是:

/** * Gets the abbreviated class name from a {@code String}. * * The string passed in is assumed to be a class name - it is not checked. * * The abbreviation algorithm will shorten the class name, usually without * significant loss of meaning. * The abbreviated class name will always include the complete package hierarchy. * If enough space is available, rightmost sub-packages will be displayed in full * length. * * ** * * * * * <table><caption>Examples</caption> <tbody> <tr> <td>className</td> <td>len</td> <td>return</td> <td>null</td> <td>1</td> <td>""</td> <td>"java.lang.String"</td> <td>5</td> <td>"jlString"</td> <td>"java.lang.String"</td> <td>15</td> <td>"j.lang.String"</td> <td>"java.lang.String"</td> <td>30</td> <td>"java.lang.String"</td> </tr> </tbody> </table> * @param className the className to get the abbreviated name for, may be {@code null} * @param len the desired length of the abbreviated name * @return the abbreviated name or an empty string * @throws IllegalArgumentException if len <= 0 * @since 3.4 */

我們要解決的問題是自動維護示例。 要使用Java :: Geci做到這一點,我們必須做三件事:

  • 將Java :: Geci添加為項目的依賴項
  • 創建一個運行框架的單元測試
  • 在單元測試中標記零件,這是信息的來源
  • 用Java :: Geci`Segment`替換手動復制的示例文本,以便Java :: Geci將自動從測試中復制文本
  • 相依性

    Java :: Geci在Maven Central存儲庫中。 當前版本是1.2.0 。 它必須作為測試依賴項添加到項目中。 最終的LANG庫沒有依賴性,就像對JUnit或用于開發的其他任何東西都不具有依賴性。 必須添加兩個顯式依賴項:

    com.javax0.geci javageci-docugen 1.2.0 test com.javax0.geci javageci-core 1.2.0 test

    工件javageci-docugen包含文檔處理生成器。 工件javageci-core包含核心生成器。 該工件還帶來了javageci-engine和javageci-api工件。 引擎本身就是框架,API本身就是API。

    單元測試

    第二個更改是新文件org.apache.commons.lang3.docugen.UpdateJavaDocTest 。 該文件是一個簡單且非常常規的單元測試:

    /* * Licensed to the Apache Software Foundation (ASF) ... */ package org.apache.commons.lang3.docugen; import *; public class UpdateJavaDocTest { @Test void testUpdateJavaDocFromUnitTests() throws Exception { final Geci geci = new Geci(); int i = 0 ; Assertions.assertFalse(geci.source(Source.maven()) .register(SnippetCollector.builder().files( "\\.java$" ).phase(i++).build()) .register(SnippetAppender.builder().files( "\\.java$" ).phase(i++).build()) .register(SnippetRegex.builder().files( "\\.java$" ).phase(i++).build()) .register(SnippetTrim.builder().files( "\\.java$" ).phase(i++).build()) .register(SnippetNumberer.builder().files( "\\.java$" ).phase(i++).build()) .register(SnipetLineSkipper.builder().files( "\\.java$" ).phase(i++).build()) .register(MarkdownCodeInserter.builder().files( "\\.java$" ).phase(i++).build()) .splitHelper( "java" , new MarkdownSegmentSplitHelper()) .comparator((orig, gen) -> !orig.equals(gen)) .generate(), geci.failed()); } }

    我們在這里可以看到巨大的Assertions.assertFalse調用。 首先,我們創建一個新的Geci對象,然后告訴它源文件在哪里。 在不深入討論細節的情況下,用戶可以通過多種不同方式指定來源。 在此示例中,我們只是說,當我們使用Maven作為構建工具時,源文件通常位于這些文件中。

    接下來要做的是注冊不同的生成器。 生成器,尤其是代碼生成器通常獨立運行,因此框架不保證執行順序。 在這種情況下,如我們稍后將看到的,這些生成器在很大程度上取決于彼此的動作。 確保它們以正確的順序執行很重要。 該框架讓我們可以分階段實現這一目標。 詢問生成器,它們需要多少個階段,并且在每個階段中,還詢問是否需要調用它們。 每個生成器對象都是使用構建器模式創建的,在此模式中,每個生成器對象都被告知應運行哪個階段。 當生成器配置為在階段i運行(調用.phase(i) )時,它將告訴框架它至少需要i階段,而對于階段1..i-1 ,它將處于非活動狀態。 這樣,配置可確保生成器按以下順序運行:

  • 片段收集器
  • SnippetAppender
  • 片段正則表達式
  • 片段修剪
  • 片段編號器
  • SnipetLine船長
  • MarkdownCodeInserter
  • 從技術上講,所有這些都是生成器,但它們不會“生成”代碼。 SnippetCollector從源文件中收集片段。 當某些示例代碼需要程序不同部分的文本時, SnippetAppender可以將多個代碼片段附加在一起。 SnippetRegex可以在使用正則表達式和replaceAll功能之前修改代碼段(我們將在此示例中看到)。 SnippetTrim可以從行的開頭刪除前導制表符和空格。 當對代碼進行深列表時,這一點很重要。 在這種情況下,只需將摘錄片段導入文檔中,就可以輕松地將實際字符從右側的可打印區域中移出。 如果我們有一些代碼在文檔中引用了某些行,則SnippetNumberer可以對代碼段行進行編號。 SnipetLineSkipper可以從代碼中跳過某些行。 例如,您可以對其進行配置,以便跳過導入語句。

    最后,可以更改源代碼的真正“生成器”是MarkdownCodeInserter 。 創建它是為了將片段插入以Markdown格式的文件中,但是當需要將文本插入JavaDoc部件中時,它對于Java源文件也同樣有效。

    最后兩個配置調用告訴框架使用MarkdownSegmentSplitHelper并使用簡單的equals比較原始行和代碼生成后創建的行。 SegmentSplitHelper對象可幫助框架在源代碼中查找段。 在Java文件中,這些段通常是默認情況下的

    線。 這有助于將手冊和生成的代碼分開。 在所有高級編輯器中,該編輯器折疊也是可折疊的,因此您可以專注于手動創建的代碼。

    但是,在這種情況下,我們將插入到JavaDoc注釋內的段中。 這些JavaDoc注釋可能包含一些標記,但也友好HTML,因此它們比Java更像Markdown。 尤其是,它們可能包含不會出現在輸出文檔中的XML注釋。 在這種情況下,由MarkdownSegmentSplitHelper對象定義的片段開始于

    <!-- snip snipName parameters ... -->

    <!-- end snip -->

    線。

    必須出于非常特定的原因指定比較器。 該框架具有兩個內置的比較器。 一個是默認的比較器,該比較器逐行比較每個字符。 它用于除Java外的所有文件類型。 在Java的情況下,使用了一個特殊的比較器,該比較器可以識別何時僅更改注釋或僅重新格式化代碼。 在這種情況下,我們將更改Java文件中注釋的內容,因此我們需要告訴框架使用簡單的比較器,否則它將不會影響我們進行任何更新。 (花了30分鐘的時間調試為什么不先更新文件。)

    最后一個調用是generate() ,它將啟動整個過程。

    標記代碼

    記錄此方法的單元測試代碼是org.apache.commons.lang3.ClassUtilsTest.test_getAbbreviatedName_Class() 。 外觀應如下所示:

    @Test public void test_getAbbreviatedName_Class() { // snippet test_getAbbreviatedName_Class assertEquals( "" , ClassUtils.getAbbreviatedName((Class<?>) null , 1 )); assertEquals( "jlString" , ClassUtils.getAbbreviatedName(String. class , 1 )); assertEquals( "jlString" , ClassUtils.getAbbreviatedName(String. class , 5 )); assertEquals( "j.lang.String" , ClassUtils.getAbbreviatedName(String. class , 13 )); assertEquals( "j.lang.String" , ClassUtils.getAbbreviatedName(String. class , 15 )); assertEquals( "java.lang.String" , ClassUtils.getAbbreviatedName(String. class , 20 )); // end snippet }

    我不會在此顯示原始內容,因為唯一的區別是插入了兩個snippet ...和end snippet行。 這些是SnippetCollector收集它們之間的線并將其存儲在“ snippet store”(沒有什么神秘的東西,實際上是一個很大的哈希圖)中的觸發器。

    定義一個細分

    真正有趣的部分是如何修改JavaDoc。 在本文開頭,我已經介紹了今天的完整代碼。 新版本是:

    /** * Gets the abbreviated class name from a {@code String}. * * The string passed in is assumed to be a class name - it is not checked. * * The abbreviation algorithm will shorten the class name, usually without * significant loss of meaning. * The abbreviated class name will always include the complete package hierarchy. * If enough space is available, rightmost sub-packages will be displayed in full * length. * * ** you can write manually anything here, the code generator will update it when you start it up * <table><caption>Examples</caption> <tbody> <tr> <td>className</td> <td>len</td> <td>return</td> <!-- snip test_getAbbreviatedName_Class regex=" replace='/~s*assertEquals~((.*?)~s*,~s*ClassUtils~.getAbbreviatedName~((.*?)~s*,~s*(~d+)~)~);/* </tr><tr> <td>{@code $2}</td> <td>$3</td> <td>{@code $1}</td> </tr> /' escape='~'" --><!-- end snip --> </tbody> </table> * @param className the className to get the abbreviated name for, may be {@code null} * @param len the desired length of the abbreviated name * @return the abbreviated name or an empty string * @throws IllegalArgumentException if len <= 0 * @since 3.4 */

    重要的部分是15…20行的位置。 (您會看到,有時對代碼段行進行編號很重要。)第15行表示段開始。 段的名稱為test_getAbbreviatedName_Class并且在沒有其他定義的情況下,該段也將用作要插入的代碼段的名稱。 但是,在插入代碼段之前,它會由SnippetRegex生成器進行轉換。 它將替換正則表達式的每個匹配項

    \s*assertEquals\((.*?)\s*,\s*ClassUtils\.getAbbreviatedName\((.*?)\s*,\s*(\d+)\)\);

    與字符串

    * {@code $2}$3{@code $1}

    由于這些正則表達式位于字符串內部,因此也需要\\\\而不是單個\ 。 那會使我們的正則表達式看起來很糟糕。 因此,可以將生成器SnippetRegex配置為使用我們選擇的其他一些字符,這種字符不太容易出現籬笆現象。 在此示例中,我們使用波浪號字符,并且通常可以使用。 當我們運行它時,最終結果是:

    <!-- snip test_getAbbreviatedName_Class regex=" replace='/~s*assertEquals~((.*?)~s*,~s*ClassUtils~.getAbbreviatedName~((.*?)~s*,~s*(~d+)~)~);/* < tr > <td>{@code $2}< /td > <td>$3< /td > <td>{@code $1}< /td > < /tr > / ' escape=' ~'" --> * {@code (Class) null}1{@code "" } * {@code String.class}1{@code "jlString" } * {@code String.class}5{@code "jlString" } * {@code String.class}13{@code "j.lang.String" } * {@code String.class}15{@code "j.lang.String" } * {@code String.class}20{@code "java.lang.String" } <!-- end snip -->

    摘要/外賣

    文檔更新可以自動化。 首先,這有點麻煩。 開發人員不必復制和重新格式化文本,而是必須設置新的單元測試,標記代碼段,標記段,使用正則表達式構造轉換。 但是,完成后,任何更新都是自動的。 單元測試更改后,您將無法忘記更新文檔。

    這與創建單元測試時遵循的方法相同。 首先,創建單元測試而不是只是臨時地調試和運行代碼,然后查看調試器,以查看它是否確實如我們預期的那樣工作,這有點麻煩。 但是,完成后會自動檢查所有更新。 當影響舊代碼的代碼發生變化時,就不會忘記檢查舊功能。

    我認為文檔維護應與測試一樣自動化。 通常,任何可以在軟件開發中自動化的東西都必須自動化,以節省工作量并減少錯誤。

    翻譯自: https://www.javacodegeeks.com/2019/09/tools-keep-javadoc-date.html

    javadoc提取工具

    總結

    以上是生活随笔為你收集整理的javadoc提取工具_使JavaDoc保持最新状态的工具的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    亚洲免费观看在线视频 | 黄色小说18 | 成人免费大片黄在线播放 | 免费日韩电影 | 久久国产精彩视频 | 九九日韩| av片无限看 | 97香蕉超级碰碰久久免费软件 | 日日草夜夜操 | 久久8精品 | 久99久在线| 久久亚洲福利视频 | 伊人久久电影网 | 午夜免费电影院 | 狠狠干 狠狠操 | 久久久网页 | 高清av免费观看 | 婷婷中文在线 | 中文字幕高清在线 | 免费av高清 | 黄色小说网站在线 | 精品一区二区免费视频 | 日韩美女高潮 | 好看的国产精品视频 | 操高跟美女 | 天堂网一区二区三区 | 久久91久久久久麻豆精品 | av福利第一导航 | 婷婷丁香在线 | 99在线观看 | 亚洲国产精品影院 | 日韩欧美精品一区二区三区经典 | 香蕉久草 | av色图天堂网 | 黄色影院在线免费观看 | 欧美在线视频一区二区三区 | 色婷婷久久| 精品国产色 | 国产免费小视频 | av一区在线播放 | 91香蕉视频 | 国产99一区| 97在线精品视频 | 中文字幕一区二区三区在线播放 | www.天天草 | 国产v在线观看 | 一区二区伦理电影 | 久久久精品国产免费观看一区二区 | 欧美日韩国产一区二 | 欧美久久99 | 亚洲欧美经典 | 日免费视频 | 日韩精品资源 | 亚洲欧洲美洲av | 日本精品午夜 | 五月婷婷丁香在线观看 | 色婷婷午夜 | 国产精品久久久久久久久蜜臀 | 经典三级一区 | 91视频高清| 在线国产黄色 | 激情大尺度视频 | 日韩午夜一级片 | 狠狠干网址 | av大片免费看 | 国产视频亚洲精品 | 天天射狠狠干 | 色视频在线 | 国产淫片| 久久久91精品国产一区二区精品 | 国产日产亚洲精华av | 欧美日韩视频在线一区 | 四虎在线观看精品视频 | 高清一区二区三区 | 亚洲精品中文在线观看 | 女人魂免费观看 | 亚州人成在线播放 | 久久高清视频免费 | 三日本三级少妇三级99 | 亚洲自拍偷拍色图 | 国产一二三精品 | 中文字幕韩在线第一页 | 久久a久久| 久久福利精品 | 黄色小网站免费看 | 国产成人精品日本亚洲999 | 91网站在线视频 | 天天曰天天干 | 人人干在线 | 亚洲国产日韩欧美在线 | 国产网站av | 深爱激情五月婷婷 | 免费观看xxxx9999片 | 男女日麻批 | 久久狠狠婷婷 | 欧美一级黄大片 | 国产高清精品在线观看 | 欧美成人精品欧美一级乱 | 欧美aa一级 | 久草视频在线资源站 | 成人久久久久久久久久 | 欧美午夜精品久久久久 | 97免费在线观看视频 | 91精品免费在线 | 国产精品国产三级国产aⅴ入口 | 久久精品国产v日韩v亚洲 | 婷婷久久综合九色综合 | 狠狠色伊人亚洲综合网站色 | 香蕉久久国产 | 色婷婷视频在线观看 | 欧美日韩国产亚洲乱码字幕 | 久久99久久99精品免视看婷婷 | 成人h视频在线播放 | 国产中的精品av小宝探花 | 久久国产精品免费一区 | 极品美女被弄高潮视频网站 | 97超碰免费| 在线看毛片网站 | 国产精品每日更新 | 天天操夜夜操国产精品 | 国产视频二区三区 | 亚洲成人精品av | 国产亚洲激情视频在线 | 久久国产高清 | 成人a视频| 国产96精品 | 视频在线日韩 | 久久草在线视频国产 | 国产日韩欧美视频在线观看 | 爱射综合 | 日韩成人不卡 | 天天射天天操天天干 | 毛片a级片 | 91免费观看国产 | 久久久国产精品成人免费 | 丁香五香天综合情 | 久久久五月婷婷 | 亚洲精品视频在线观看视频 | 免费日韩一区二区三区 | 欧美激情视频一区二区三区免费 | 免费黄色a网站 | 国产日韩欧美在线影视 | 婷婷婷国产在线视频 | 丁香五月缴情综合网 | 在线亚洲观看 | 天天射色综合 | 精品国产乱码久久 | www.在线看片.com | 丁香六月在线观看 | 久久天天躁夜夜躁狠狠85麻豆 | 日韩免费区| 99久久久久久国产精品 | 久久黄色免费观看 | 在线观看国产亚洲 | 精品国产123 | 欧美 日韩 国产 成人 在线 | 看污网站 | 国产又粗又长又硬免费视频 | 国产精品午夜久久久久久99热 | 亚洲精品成人在线 | 韩国在线一区 | 探花视频免费观看高清视频 | 精品国产福利在线 | 久久久国产一区二区三区 | 欧美日韩国产在线观看 | 成人免费观看网址 | 成人a v视频 | 精品国产欧美 | 亚洲黄色av网址 | 三级黄色网络 | 国产成人精品在线播放 | 精品免费观看视频 | 国产一区二区高清不卡 | 可以免费看av | 免费h漫在线观看 | 欧美日韩二区三区 | 四虎成人精品在永久免费 | 波多野结衣在线观看视频 | 18岁免费看片 | 免费黄色av片 | 天天色天天操天天爽 | 免费a级观看 | 2018好看的中文在线观看 | 97色狠狠| aaawww| 婷婷天天色 | 日本中文字幕一二区观 | 最近中文字幕国语免费高清6 | 国产精品99久久免费黑人 | 欧美亚洲国产一卡 | 免费看一级黄色大全 | 久久久精品综合 | 在线观看黄 | 蜜臀久久99静品久久久久久 | 在线观看视频一区二区三区 | japanesexxxhd奶水 91在线精品一区二区 | 91豆麻精品91久久久久久 | 干av在线 | 在线免费观看国产视频 | 97精品国产aⅴ | 国产精品久久久久久久久久久久冷 | 久久手机免费视频 | 亚洲在线不卡 | 超碰人人舔| 日韩在线观看一区 | 激情综合网天天干 | www色| 五月天伊人网 | 亚洲精品在线观看不卡 | 成人在线免费观看网站 | 五月激情丁香婷婷 | 成年人视频在线免费 | 久久精品播放 | 国产精品欧美在线 | 国产精品久久人 | 日韩免费一区二区在线观看 | 久久久久五月天 | 天天干中文字幕 | 最近中文字幕免费大全 | 日韩免费不卡视频 | 日韩一区二区三区免费视频 | 欧美男同视频网站 | 亚洲男男gaygay无套同网址 | 99久久精品国产一区二区成人 | 丁香婷婷综合激情五月色 | 麻豆va一区二区三区久久浪 | 久久久久久久国产精品 | 五月花丁香婷婷 | 中文在线a在线 | 亚洲国产精品va在线 | 久久全国免费视频 | 中文字幕日韩伦理 | 免费观看高清 | 午夜在线免费观看视频 | 欧美在线视频精品 | 国内久久精品 | 在线观看视频在线 | 久久亚洲成人网 | 久久公开免费视频 | 天天天天干 | 亚洲永久免费av | 一区二区三区在线免费观看 | 天干啦夜天干天干在线线 | 婷婷亚洲五月色综合 | 在线观看91精品国产网站 | 2024国产精品视频 | 久久图 | 在线视频精品播放 | 成人午夜免费福利 | 国产精品一区二区三区免费看 | 日韩欧美视频在线播放 | 99视频免费| 久久久久久久久久毛片 | 99久热在线精品视频观看 | 日本老少交 | 91视频91自拍| 国产性xxxx| 国产成人综合在线观看 | 伊人婷婷色 | 国产精品成人a免费观看 | 88av色| 日本久久精品视频 | 中文字幕电影一区 | 天天草天天干天天射 | 成人在线视频观看 | 日韩综合精品 | 欧美xxxxx在线视频 | 国内精品国产三级国产aⅴ久 | 在线a视频免费观看 | 日韩在线视频免费看 | 少妇bbbb搡bbbb搡bbbb | 9久久精品 | 欧美日韩视频精品 | 99免费看片 | 久久免费视频精品 | 国产一卡久久电影永久 | 国产精品久久久久久久久软件 | 毛片网站在线观看 | 久久伊人操 | 日韩和的一区二在线 | 国产在线观看av | 日韩欧美国产视频 | 精品人人人人 | av电影免费| 婷婷色5月 | 一本—道久久a久久精品蜜桃 | 日韩高清片 | 国产精品久久久一区二区三区网站 | 久久久久久久久久久久亚洲 | 在线国产精品一区 | 日韩精品视频第一页 | 人人插人人看 | 亚洲不卡av一区二区三区 | 国产1区在线 | 久久九九影院 | 亚洲国产精品免费 | 人人澡人人爱 | 成人h动漫精品一区二 | 久久看片 | 精品国产1区二区 | 亚洲成人资源 | 亚洲婷婷网 | 丝袜少妇在线 | 亚洲天堂色婷婷 | 国产一区二区视频在线播放 | 欧美日韩亚洲在线观看 | 欧美另类v| 五月综合久久 | 黄色国产高清 | 久久久www | 国产成人精品综合 | 久久久久国产精品视频 | 色先锋av资源中文字幕 | 精品国产一区二区在线 | 亚洲免费永久精品国产 | 狠狠色丁香婷婷 | 亚州天堂| 99久e精品热线免费 99国产精品久久久久久久久久 | 亚州精品天堂中文字幕 | 久久精品国产一区二区三区 | 成人国产精品免费 | 久久精品99久久 | 国产群p| 精品国产一区二区三区免费 | 伊人宗合网 | 亚洲精品一区二区三区四区高清 | 成人小视频在线观看免费 | 亚洲精品国产免费 | 中文字幕中文字幕 | 美女久久久 | 日韩在线资源 | 天天操夜夜摸 | 亚洲禁18久人片 | 日韩深夜在线观看 | free,性欧美| 国产精品免费麻豆入口 | 九九综合久久 | 一区二区三区视频网站 | 欧美一区二区伦理片 | 久久综合五月天婷婷伊人 | 欧美巨大 | 天天添夜夜操 | 国产精品永久在线 | 成在线播放 | 国产黄色片久久 | 亚洲精品女人久久久 | 精品久久久久久综合日本 | 人人干狠狠操 | 国产主播99 | 久久久91精品国产 | 欧美一区免费观看 | 青春草免费视频 | 天天干夜夜擦 | 久久免费a | 人人爽人人舔 | 国产精品永久在线观看 | 成年人在线电影 | 激情网五月天 | 成人午夜精品福利免费 | 午夜视频免费 | 在线免费av观看 | 亚洲一二三区精品 | 久久亚洲婷婷 | 亚洲精品视频免费在线 | 一区二区av | 最近免费在线观看 | 亚洲精区二区三区四区麻豆 | 黄色免费高清视频 | 国产亲近乱来精品 | 国产中文字幕亚洲 | 精品久久久久一区二区国产 | 久久国产99| 操操操干干干 | 天天综合婷婷 | 亚洲综合色激情五月 | 欧美美女一级片 | 国产精品专区在线观看 | 在线免费观看不卡av | 在线免费观看视频一区二区三区 | 久久av一区二区三区亚洲 | 色综合久久综合 | 99精品在线免费在线观看 | 国产精品久久久久久久免费观看 | 亚洲黄色av一区 | 国产成人一区二区三区 | 成人在线视频你懂的 | 黄色在线看网站 | 国产粉嫩在线观看 | av网站在线观看免费 | 日韩高清精品免费观看 | 精品久久久国产 | 欧美亚洲xxx| 久久在视频 | 久草在线高清视频 | 国产精品一区在线观看你懂的 | 久久夜色精品国产欧美乱极品 | 亚州精品天堂中文字幕 | 国产精品精品国产婷婷这里av | 久草网在线视频 | 亚洲国产三级在线观看 | www久久国产| 精品亚洲欧美无人区乱码 | 干干夜夜 | 亚洲成人精品 | 免费a v在线 | 婷婷丁香色综合狠狠色 | 国产免费资源 | 97人人艹| 97超碰在线免费观看 | 免费精品视频在线 | 欧美日韩二三区 | 久久综合偷偷噜噜噜色 | 999视频在线播放 | 高清av免费一区中文字幕 | 久久激情视频 久久 | 国产精品一区免费观看 | 人人网人人爽 | 狠狠操狠狠干2017 | 欧美精品久久久久久久亚洲调教 | av在线免费观看黄 | 久久精品在线免费观看 | 欧美乱熟臀69xxxxxx | 亚州欧美精品 | 日批视频在线观看免费 | 午夜精品视频免费在线观看 | 精品国产伦一区二区三区观看说明 | 日韩精品中文字幕在线不卡尤物 | 午夜视频一区二区 | 久久久男人的天堂 | 韩国精品福利一区二区三区 | 97在线观视频免费观看 | 免费观看全黄做爰大片国产 | 日韩视频免费观看高清完整版在线 | 国内外成人在线 | 欧美精品生活片 | 国产精品久久久久久吹潮天美传媒 | 欧美激情第十页 | 天天躁天天躁天天躁婷 | 久久精品99国产精品亚洲最刺激 | 国产精品久久久久久久7电影 | 99在线观看视频网站 | 中文十次啦 | 亚洲国产中文字幕在线视频综合 | 国产一级性生活 | 97国产在线播放 | 国产一线二线三线在线观看 | 91精品专区 | 日本精品视频在线播放 | 天天综合91 | 一区二区中文字幕在线播放 | 亚洲精品av中文字幕在线在线 | 深爱激情综合 | 欧美aaa级片 | 久久99久久99精品 | 狠狠干激情 | 国产一区视频在线 | 久久久久久久国产精品视频 | 日韩欧美不卡 | 中文字幕免费观看视频 | h久久| 午夜视频亚洲 | 能在线看的av | 国产99久久久国产精品成人免费 | 国产福利精品在线观看 | 看黄色.com | 久久只有精品 | 永久免费毛片 | 国产品久精国精产拍 | 国精产品满18岁在线 | 视频二区在线 | 超碰av在线播放 | 91人人澡人人爽人人精品 | 国产精品去看片 | 狠狠婷婷 | 国产黄色电影 | 日韩视频三区 | 国产精品99视频 | 欧美一级黄色视屏 | 香蕉影院在线播放 | 麻豆91在线播放 | 国产一级片一区二区三区 | 日av免费 | 亚洲精品国偷自产在线99热 | 婷婷在线精品视频 | 国产三级精品在线 | 午夜视频在线观看一区二区三区 | 日韩在线免费不卡 | 日韩亚洲在线 | 亚洲美女视频在线观看 | 久久综合婷婷国产二区高清 | 欧美久久久影院 | 三级毛片视频 | 亚洲四虎| 亚洲国产免费av | 91成人看片 | 亚洲成人网在线 | 国产高清视频免费观看 | 午夜精品久久久久久久久久久久久久 | 日本激情动作片免费看 | 亚洲精品免费看 | 免费国产视频 | 成年人视频在线免费播放 | www.久久免费视频 | 亚洲成人av免费 | 中文字幕视频在线播放 | 人人揉人人揉人人揉人人揉97 | 国产一区二区在线观看免费 | 国产1区2区 | 精品国产伦一区二区三区 | 国产高清在线免费观看 | 九九交易行官网 | 精品国产一二三 | 日韩深夜在线观看 | 国产一区二区不卡视频 | 国产主播99 | 99re中文字幕 | 久艹在线观看视频 | 最近日韩中文字幕中文 | 成人性生交大片免费看中文网站 | 国产99久久九九精品免费 | www操操| 成人免费视频a | 久久精品在线免费观看 | 亚洲国产精品500在线观看 | 免费在线观看毛片网站 | 日本黄色免费大片 | 日韩视频一区二区在线观看 | 欧美一区二区三区在线视频观看 | 亚洲综合少妇 | 色婷婷电影 | 超碰97免费观看 | 久久99精品热在线观看 | 国产 日韩 在线 亚洲 字幕 中文 | 久久精品—区二区三区 | 亚洲 欧洲 国产 日本 综合 | 黄网站免费久久 | 99视频精品全国免费 | 特级a毛片 | 97超在线| www.在线观看av | 久久伊人操 | 国产精品久久久久aaaa | 精品在线你懂的 | 丁香六月激情 | 亚洲日本国产精品 | 国产999在线| 久久精品视频一 | 欧美日韩另类在线 | 成人h视频 | 国产不卡一区二区视频 | 欧美国产日韩激情 | 国产日韩精品一区二区三区在线 | 曰韩在线 | 在线观看中文字幕视频 | 久草视频在线免费播放 | 国产麻豆精品久久一二三 | 日韩一区二区三区免费视频 | 久久成人免费 | 久久久久久蜜桃一区二区 | 91chinesexxx| 久草视频99| 国产精品国产亚洲精品看不卡15 | 亚洲精品视频一二三 | 麻豆视频国产 | 特级毛片在线观看 | 午夜影院在线观看18 | 涩涩伊人| 香蕉视频在线观看免费 | 综合久久久久久久 | 国产一区二区三区四区大秀 | av大片免费看 | 免费一级片观看 | 日韩精品在线一区 | 国产一级特黄毛片在线毛片 | 欧美日韩不卡在线观看 | 日韩69av| 97超碰免费 | 日韩视频中文字幕在线观看 | 日韩中文在线字幕 | 激情综合五月 | 亚洲三级在线免费观看 | 久久在线观看视频 | 日本久久影视 | 久久伊人五月天 | 国产免费亚洲 | 国产又黄又硬又爽 | 国产亚洲视频系列 | 亚洲高清视频一区二区三区 | 日韩免费一级a毛片在线播放一级 | 伊人视频 | 国产免费中文字幕 | 人人狠狠综合久久亚洲 | 最新日韩中文字幕 | caobi视频 | 麻豆传媒视频在线免费观看 | 欧美成人精品三级在线观看播放 | 亚洲成人欧美 | 国偷自产中文字幕亚洲手机在线 | 一本一本久久a久久精品综合小说 | 欧美日韩视频在线播放 | 日日干夜夜骑 | 手机在线观看国产精品 | 亚洲欧美综合精品久久成人 | 香蕉视频亚洲 | 97在线观看免费 | www.婷婷com | 亚洲国产中文字幕在线 | 99久热在线精品视频观看 | 亚洲精品欧美精品 | 国产精品美女999 | 在线免费黄色av | 天天综合视频在线观看 | 日韩在线观看中文 | 九九久久精品视频 | 亚洲h色精品 | 狠狠干综合| 日韩av成人 | 国产日韩欧美在线观看 | 伊人电影在线观看 | 啪啪午夜免费 | 精品久久久久久综合日本 | 美女黄频免费 | 丁香六月久久综合狠狠色 | 成人在线视频免费 | 亚a在线 | 综合黄色网 | 天天射成人 | 亚洲天堂社区 | 黄色在线观看免费 | 天天人人综合 | 免费福利视频网 | 99九九99九九九视频精品 | 成人国产电影在线观看 | 99精品视频在线观看视频 | 久久精品国产亚洲精品2020 | 亚洲精品视频免费 | av免费观看网站 | 就要干b| 91麻豆精品国产91久久久使用方法 | 国产成人av综合色 | 国产精品久久久久久影院 | 亚洲一区二区三区在线看 | 久久av一区二区三区亚洲 | 天天操天天干天天干 | 国产精品国产三级国产aⅴ9色 | 精品人人人人 | 久久久久北条麻妃免费看 | 欧美日韩国产高清视频 | 91人人澡人人爽 | 少妇高潮冒白浆 | 亚洲三级黄色 | 中文字幕在线第一页 | 五月开心网 | 天堂久色 | 成人av电影在线播放 | 天天色天天操综合网 | 一区二区三区日韩视频在线观看 | 中文字幕在线视频国产 | 免费观看成人网 | 久久99国产精品自在自在app | 日韩精品中文字幕在线观看 | 国产 一区二区三区 在线 | 国产精品永久免费观看 | 婷婷丁香激情五月 | 国产最新精品视频 | 在线观看免费视频 | 六月丁香婷婷网 | 国产精品密入口果冻 | 国产黄色大片免费看 | 色视频在线观看免费 | 久久精品成人热国产成 | 色91在线视频 | 中文字幕视频播放 | 国产成人在线精品 | 美女视频网站久久 | 四虎精品成人免费网站 | 99热只有精品在线观看 | 999视频在线播放 | 久久96国产精品久久99软件 | 97在线视频观看 | 久久久久国产精品免费网站 | 国产在线色站 | 精品1区二区 | 在线观看网站黄 | 日韩欧美综合在线视频 | 97色噜噜| 人人干天天射 | 欧美在线视频精品 | 2023国产精品自产拍在线观看 | 天天夜夜亚洲 | 天天爽天天爽夜夜爽 | 久草在线手机视频 | 国产欧美日韩视频 | 久久久国产精品亚洲一区 | 欧美aaa一级 | 久视频在线播放 | 午夜精品久久 | 中国一级特黄毛片大片久久 | 日韩视频一区二区三区在线播放免费观看 | 国产中文字幕视频 | 九九久久影视 | 国产视频午夜 | 免费久久久| 亚洲人久久 | 久草com | 美女黄频免费 | 亚洲1区 在线 | 国产黄色片在线 | 亚洲 欧美 另类人妖 | 91在线免费视频 | 手机色在线 | 91精品国产成人www | 成人黄大片 | 999视频精品 | 久久九九国产视频 | www.狠狠操.com | 成人aⅴ视频 | 国产精品男女啪啪 | 午夜三级在线 | 久久久久久欧美二区电影网 | 免费亚洲精品视频 | 天天舔天天射天天操 | 蜜臀一区二区三区精品免费视频 | 婷婷夜夜| 91丨九色丨蝌蚪丨老版 | 久久久99国产精品免费 | 88av视频 | 99精品视频99 | 日韩精品五月天 | 色婷婷丁香 | 中文字幕在线观看视频一区二区三区 | av天天在线观看 | 国产日产高清dvd碟片 | 激情五月婷婷综合 | 亚洲精品国产视频 | 九九热在线免费观看 | 亚洲精品久久久蜜臀下载官网 | av动图 | 国产乱老熟视频网88av | 99操视频 | 天天插天天干天天操 | 亚洲乱码一区 | 97网在线观看 | 欧美日韩免费一区二区三区 | 日韩精品一区二区不卡 | 久久99国产视频 | 一区二区网 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 国产伦精品一区二区三区高清 | 欧美精品v国产精品v日韩精品 | 91成人在线免费观看 | 中文字幕国产精品一区二区 | 久草线| 国产一级a毛片视频爆浆 | 国产日韩欧美在线一区 | 成人网444ppp | 国产精品久久久久久久久久 | 欧美一二三专区 | 97激情影院 | 国产传媒中文字幕 | 午夜av在线电影 | 一区二区三区在线观看 | 青青草国产在线 | 日韩欧美高清 | 色网av | 美女在线免费视频 | 天天天天天天天天操 | 成人a大片 | 日本中文字幕网 | 亚洲欧洲av在线 | 天天摸日日操 | www.天堂av| 最近高清中文字幕 | 欧美日韩a视频 | 中文字幕日韩电影 | 五月婷婷免费 | 欧美激情h | 色偷偷网站视频 | 久久久久久久久久久久国产精品 | 十八岁以下禁止观看的1000个网站 | 狠狠狠色丁香婷婷综合久久五月 | 久久看看 | 免费三级黄色 | 久久99中文字幕 | 久久久综合九色合综国产精品 | 日本中文字幕电影在线免费观看 | 人人爱人人添 | 国产亚洲在线 | 欧美激情h| 婷婷九月激情 | 波多野结衣在线视频免费观看 | 五月婷在线播放 | 国产免费亚洲高清 | 久久精品国产精品亚洲 | 日本三级中文字幕在线观看 | 黄色免费网站下载 | 亚洲五月花| 一区二区三区动漫 | 美女黄色网在线播放 | 超碰97成人 | 久久艹国产| 不卡精品 | 人人澡人人爽欧一区 | 欧美国产在线看 | 91网址在线 | 超碰人人舔 | 四虎成人免费观看 | 在线有码中文字幕 | 在线免费视频a | 日批网站免费观看 | 国产精品免费一区二区三区在线观看 | 中文字幕av全部资源www中文字幕在线观看 | 亚洲 欧美 91| 日日碰狠狠躁久久躁综合网 | 亚洲永久国产精品 | 久艹视频在线免费观看 | 国产精品99免视看9 国产精品毛片一区视频 | www操操操 | 91麻豆免费看 | 国内精品视频在线播放 | 日韩免费视频线观看 | 免费看的黄色 | 国产在线观看h | a v在线视频 | 九九热99视频 | 夜夜澡人模人人添人人看 | 99精品国产99久久久久久97 | 人人狠狠综合久久亚洲婷 | 一区二区三区日韩在线 | 亚洲国产精品电影在线观看 | 亚洲另类视频在线观看 | 91久久国产精品 | 在线观看日韩一区 | 亚洲黄色高清 | 国产一级免费观看 | 午夜视频免费在线观看 | 国产视| 色五月激情五月 | 久久久久久久久久亚洲精品 | 黄色免费网站 | 久久免费在线视频 | 天天干天天看 | 成年人网站免费观看 | 最近日本中文字幕 | 亚洲三级网| 日韩免费电影 | 国产精品久久久久婷婷 | 色婷婷色 | 成人黄色在线 | 成人午夜电影免费在线观看 | 精品久久一区 | 免费精品视频在线 | 丁香婷婷综合激情 | 亚洲麻豆精品 | www.五月天激情 | 天天干,天天草 | 欧美热久久 | 黄色aaa毛片| 日韩精品91偷拍在线观看 | 久热香蕉视频 | 91免费观看国产 | 丁香午夜婷婷 | 日本中文字幕在线 | 最近中文字幕第一页 | 国产二区免费视频 | 91久久丝袜国产露脸动漫 | 在线午夜 | 十八岁以下禁止观看的1000个网站 | 久草在线免费看视频 | 亚洲免费观看视频 | 国产精品第7页 | 亚洲免费不卡 | 亚洲国产美女久久久久 | 在线观看黄av | 波多野结衣在线播放视频 | 天天操狠狠操 | 久草影视在线观看 | 中文字幕免费 | 久久成人综合 | 亚洲黄色app| 久久久久久久久久久综合 | 国产成人av电影 | 精品国产欧美一区二区三区不卡 | 久久精品国产v日韩v亚洲 | 99久久成人| av成人免费观看 | 国产一卡二卡四卡国 | 欧美日韩高清 | 婷婷综合导航 | 久久久久久久久爱 | 黄色小说网站在线 | 91尤物国产尤物福利在线播放 | 99免费看片 | 国产精品久久久久久久婷婷 | 亚洲午夜久久久久久久久 | 久草在线手机视频 | 51久久成人国产精品麻豆 | 国产精品大全 | 国产一二三区av | 午夜美女影院 | 视频在线观看一区 | 天堂av免费观看 | 天天做天天爱天天综合网 | 夜夜躁日日躁狠狠久久88av | 91热视频| 最新日韩视频在线观看 | 91精品综合在线观看 | 亚洲精品一区二区三区四区高清 | 天天操人人干 | 天天综合导航 | av在线播放快速免费阴 | 在线观看视频免费播放 | 国产精品成人av电影 | 亚洲小视频在线观看 | 午夜精品久久久久久久99无限制 | 91精品国产电影 | av成人免费观看 | 国产视频不卡一区 | 久久国产欧美日韩精品 | 亚洲精品高清视频 | 国产乱码精品一区二区三区介绍 | a成人v| 中文字幕一区二区三区在线观看 | 人人澡人人澡人人 | 国产精品ⅴa有声小说 | 日韩二区在线播放 | 久久久亚洲精品 | 精品视频免费播放 | 91丨九色丨勾搭 | 五月天亚洲婷婷 | 日韩欧美一区视频 | 亚洲国产丝袜在线观看 | 亚洲一区二区三区毛片 | av中文天堂 | 免费观看完整版无人区 | 欧美巨大 | 成人av亚洲 | 在线视频99| 香蕉手机在线 | 亚洲国产影院 | 热久久免费视频精品 | 日韩精品不卡 | 国产又粗又猛又黄视频 | 久久精品99国产精品日本 | 99久久精品免费看国产四区 | 在线观看日韩国产 | 9在线观看免费高清完整版 玖玖爱免费视频 | 久草新在线| 欧美另类重口 | 国产中文字幕视频在线 | 亚洲高清资源 | 久章草在线观看 | 国产高清在线观看av | 久久久久久久av | 久草在线综合网 | 精品一二三区 | 综合色在线 | 久久99免费视频 | 夜夜爽夜夜操 | 欧美精品一区二区蜜臀亚洲 | 免费看污污视频的网站 | 丁香六月久久综合狠狠色 | 视频在线一区二区三区 | 91精品国产九九九久久久亚洲 | 黄色毛片大全 | 国产一级二级三级视频 | 国产永久网站 | 91手机视频 | 日韩肉感妇bbwbbwbbw | 91精品看片 | 九九影视理伦片 | 婷婷国产v亚洲v欧美久久 | 超碰97免费在线 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 麻豆国产电影 | 热九九精品 | 亚洲日本中文字幕在线观看 | 91成人网在线观看 | 麻豆传媒视频在线免费观看 | wwwwwww色| 国产中文字幕第一页 | 天天综合网入口 | 天天射天天 | 欧美91av| av三级在线免费观看 | 在线成人小视频 | 啪啪凸凸 | 国产精品欧美精品 | 九色视频网站 | www日韩精品 | 综合天堂av久久久久久久 | 激情欧美国产 | 日韩免费在线视频 | 精品一区二区亚洲 | 午夜精品久久久久久久99水蜜桃 | 久久精品一 | 国产喷水在线 | 久久精品国产成人精品 |