OSDN Git Service

start v1.101.107-SNAPSHOT develop
authorOlyutorskii <olyutorskii@users.osdn.me>
Sat, 8 Oct 2022 04:59:16 +0000 (13:59 +0900)
committerOlyutorskii <olyutorskii@users.osdn.me>
Sat, 8 Oct 2022 04:59:16 +0000 (13:59 +0900)
25 files changed:
.gitignore
CHANGELOG.txt
config/checkstyle/checkstyle-suppressions.xml
config/checkstyle/checkstyle.xml
config/pmd/pmdrules.xml
pom.xml
src/assembly/src.xml
src/main/java/jp/sourceforge/jovsonz/JsArray.java
src/main/java/jp/sourceforge/jovsonz/JsBoolean.java
src/main/java/jp/sourceforge/jovsonz/JsComposition.java
src/main/java/jp/sourceforge/jovsonz/JsNull.java
src/main/java/jp/sourceforge/jovsonz/JsNumber.java
src/main/java/jp/sourceforge/jovsonz/JsObject.java
src/main/java/jp/sourceforge/jovsonz/JsPair.java
src/main/java/jp/sourceforge/jovsonz/JsParseException.java
src/main/java/jp/sourceforge/jovsonz/JsString.java
src/main/java/jp/sourceforge/jovsonz/JsTypes.java
src/main/java/jp/sourceforge/jovsonz/JsValue.java
src/main/java/jp/sourceforge/jovsonz/JsVisitException.java
src/main/java/jp/sourceforge/jovsonz/Json.java
src/main/java/jp/sourceforge/jovsonz/JsonAppender.java
src/main/java/jp/sourceforge/jovsonz/JsonSource.java
src/main/java/jp/sourceforge/jovsonz/UnmodIterator.java
src/main/java/jp/sourceforge/jovsonz/ValueVisitor.java
src/main/java/jp/sourceforge/jovsonz/package-info.java

index 3bf3b09..c659fa3 100644 (file)
@@ -1,4 +1,8 @@
-##### Git ignore pattern   https://git-scm.com/docs/gitignore
+##### Git ignore pattern
+## See https://git-scm.com/docs/gitignore
+## See https://docs.github.com/en/free-pro-team@latest/github/using-git/ignoring-files
+## See https://github.com/github/gitignore
+## See https://www.toptal.com/developers/gitignore
 
 
 ### Unix
@@ -20,7 +24,8 @@ __MACOSX
 ### Windows
 
 Thumbs.db
-desktop.ini
+[Dd]esktop.ini
+*.lnk
 
 
 ### JDK
@@ -64,4 +69,9 @@ hs_err_pid*
 *.ipr
 
 
+### Visual Studio Code
+
+/.vscode/
+
+
 ### EOF ###
index 94446be..c900ee4 100644 (file)
@@ -4,6 +4,10 @@
 Jovsonz 変更履歴
 
 
+1.101.106 (2022-10-08)
+    ・interfaceの修飾子を明示化。(JDK9対応)
+    ・Javadoc不備に対応。(JDK17対応)
+
 1.101.104 (2019-05-03)
     ・Maven3対応。
     ・JDK1.8が必須となる。
index eb5b801..f7071b1 100644 (file)
@@ -6,11 +6,11 @@
 
 <!--
     Checkstyle suppressions
-    for Checkstyle 8.18 or later
+    for Checkstyle 8.29 or later
 
     [ https://checkstyle.org/ ]
 
-    Copyright(c) 2010 olyutorskii
+    Copyright(c) 2019 olyutorskii
 -->
 
 
     <suppress files="" checks="DesignForExtension" />
 
     <!-- Coding -->
+    <suppress files="" checks="AvoidNoArgumentSuperConstructorCall" />
     <suppress files="" checks="ExplicitInitialization" />
     <suppress files="" checks="FinalLocalVariable" />
     <suppress files="" checks="MagicNumber" />
-    <suppress files="" checks="OneStatementPerLine" />
+    <suppress files="" checks="NoArrayTrailingComma" />
+    <suppress files="" checks="NoEnumTrailingComma" />
 
     <!-- Imports -->
     <suppress files="" checks="ImportControl" />
 
     <!-- Javadoc Comments -->
-    <suppress files="" checks="JavadocTagContinuationIndentation" />    
     <suppress files="" checks="SummaryJavadocCheck" />
 
     <!-- Miscellaneous -->
     <suppress files="" checks="FinalParameters" />
     <suppress files="" checks="TrailingComment" />
 
-    <!-- Modifiers -->
-    <suppress files="" checks="InterfaceMemberImpliedModifier" />
+    <!-- Modifier -->
+    <suppress files="" checks="RedundantModifier" />
 
     <!-- Whitespace -->
+    <suppress files="" checks="ParenPad" />
     <suppress files="" checks="SingleSpaceSeparator" />
 
 </suppressions>
index d154a5d..eb53383 100644 (file)
@@ -6,11 +6,11 @@
 
 <!--
     Checkstyle modules
-    for Checkstyle 8.18 or later
+    for Checkstyle 8.45 or later
 
     [ https://checkstyle.org/ ]
 
-    Copyright(c) 2010 olyutorskii
+    Copyright(c) 2019 olyutorskii
 -->
 
 
     <property name="localeCountry" value="JP" />
     <property name="localeLanguage" value="en" />
     <!--property name="localeLanguage" value="ja" /-->
-    <property name="fileExtensions" value="java, xml, properties" />
+    <property name="fileExtensions" value="java, properties, xml, xsd, md, txt" />
     <property name="severity" value="error" />
 
 
     <!-- Filters -->
+
     <module name="SeverityMatchFilter" />
     <!--module name="SuppressionFilter" /-->
+    <!--module name="SuppressionSingleFilter" /-->
     <module name="SuppressWarningsFilter" />
     <module name="SuppressWithPlainTextCommentFilter" />
 
 
     <!-- Headers -->
+
     <module name="Header">
         <property name="header" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;" />
         <property name="fileExtensions" value="xml" />
 
 
     <!-- Javadoc Comments -->
+
     <module name="JavadocPackage" />
 
 
     <!-- Miscellaneous -->
+
     <module name="NewlineAtEndOfFile">
-        <property name="fileExtensions" value="java" />
+        <property name="fileExtensions" value="java, properties, xml, xsd, md, txt" />
     </module>
+    <module name="OrderedProperties" />
     <module name="Translation" />
     <module name="UniqueProperties" />
 
 
     <!-- Regexp -->
+
     <module name="RegexpMultiline">
         <property name="format" value="[\u000b\f\u001a]" />
     </module>
 
 
     <!-- Size Violations -->
-    <module name="FileLength">
-        <property name="max" value="2000"/>
+
+    <module name="FileLength" />
+    <module name="LineLength">
+        <property name="fileExtensions" value="java" />
+        <property name="max" value="100" />
     </module>
 
 
     <!-- Whitespace -->
+
     <module name="FileTabCharacter" />
 
 
         <module name="InterfaceIsType" />
         <module name="MutableException" />
         <module name="OneTopLevelClass" />
-        <module name="ThrowsCount">
-            <property name="max" value="4" />
-        </module>
+        <module name="ThrowsCount" />
         <module name="VisibilityModifier" />
 
 
     <!-- Coding -->
 
         <module name="ArrayTrailingComma" />
+        <module name="AvoidDoubleBraceInitialization" />
         <module name="AvoidInlineConditionals" />
+        <module name="AvoidNoArgumentSuperConstructorCall" />
         <module name="CovariantEquals" />
         <module name="DeclarationOrder" />
         <module name="DefaultComesLast" />
         <module name="IllegalToken">
             <property name="tokens" value="LITERAL_NATIVE" />
         </module>
-        <module name="IllegalTokenText">
-            <property name="tokens" value="NUM_INT, NUM_LONG" />
-            <property name="format" value="^0_*[0-7]" />
-            <property name="message" value="inhibit octal number" />
-        </module>
+        <module name="IllegalTokenText" />
         <module name="IllegalType" />
         <module name="InnerAssignment" />
         <module name="MagicNumber" />
+        <module name="MatchXpath" />
         <module name="MissingCtor" />
         <module name="MissingSwitchDefault" />
         <module name="ModifiedControlVariable" />
         <module name="NestedForDepth" />
         <module name="NestedIfDepth" />
         <module name="NestedTryDepth" />
+        <module name="NoArrayTrailingComma" />
         <module name="NoClone" />
+        <module name="NoEnumTrailingComma" />
         <module name="NoFinalizer" />
         <module name="OneStatementPerLine" />
         <module name="OverloadMethodsDeclarationOrder" />
         <module name="ParameterAssignment" />
         <module name="RequireThis">
             <property name="checkMethods" value="false" />
+            <property name="validateOnlyOverlapping" value="false" />
         </module>
-        <module name="ReturnCount">
-            <property name="max" value="5" />
-        </module>
+        <module name="ReturnCount" />
         <module name="SimplifyBooleanExpression" />
         <module name="SimplifyBooleanReturn" />
         <module name="StringLiteralEquality" />
         <module name="SuperClone" />
         <module name="SuperFinalize" />
         <module name="UnnecessaryParentheses" />
-        <module name="VariableDeclarationUsageDistance">
-            <property name="allowedDistance" value="5" />
-        </module>
+        <module name="UnnecessarySemicolonAfterOuterTypeDeclaration" />
+        <module name="UnnecessarySemicolonAfterTypeMemberDeclaration" />
+        <module name="UnnecessarySemicolonInEnumeration" />
+        <module name="UnnecessarySemicolonInTryWithResources" />
+        <module name="UnusedLocalVariable" />
+        <module name="VariableDeclarationUsageDistance" />
 
 
     <!-- Imports -->
     <!-- Javadoc Comments -->
 
         <module name="AtclauseOrder" />
+        <module name="InvalidJavadocPosition" />
+        <module name="JavadocBlockTagLocation" />
+        <module name="JavadocContentLocationCheck" />
         <module name="JavadocMethod" />
+        <module name="JavadocMissingLeadingAsterisk" />
+        <module name="JavadocMissingWhitespaceAfterAsterisk" />
         <module name="JavadocParagraph" />
         <module name="JavadocStyle">
             <property
         <module name="JavadocVariable">
             <property name="scope" value="protected" />
         </module>
+        <module name="MissingJavadocMethod" />
+        <module name="MissingJavadocPackage" />
+        <module name="MissingJavadocType" />
         <module name="NonEmptyAtclauseDescription" />
         <module name="SingleLineJavadoc" />
         <module name="SummaryJavadocCheck" />
         <module name="Indentation">
             <property name="caseIndent" value="0" />
         </module>
+        <module name="NoCodeInFile" />
         <module name="OuterTypeFilename" />
         <module name="TodoComment">
             <property name="format" value="TODO" />
     <!-- Naming Conventions -->
 
         <module name="AbbreviationAsWordInName" />
-        <module name="AbstractClassName">
-            <property
-                name="format"
-                value="^Abstract.*$|^.*Factory$|^.*Builder$|^.*Adapter$"
-            />
-        </module>
+        <module name="AbstractClassName" />
         <module name="CatchParameterName" />
         <module name="ClassTypeParameterName" />
         <module name="ConstantName" />
+        <module name="IllegalIdentifierName" />
         <module name="InterfaceTypeParameterName" />
         <module name="LambdaParameterName" />
-        <module name="LocalFinalVariableName">
-            <property name="format" value="^[a-z][_a-zA-Z0-9]*$" />
-        </module>
-        <module name="LocalVariableName">
-            <property name="format" value="^[a-z][_a-zA-Z0-9]*$" />
-        </module>
-        <module name="MemberName">
-            <property name="format" value="^[a-z][_a-zA-Z0-9]*$" />
-        </module>
+        <module name="LocalFinalVariableName" />
+        <module name="LocalVariableName" />
+        <module name="MemberName" />
         <module name="MethodName" />
         <module name="MethodTypeParameterName" />
         <module name="PackageName" />
-        <module name="ParameterName">
-            <property name="format" value="^[a-z][_a-zA-Z0-9]*$" />
-        </module>
-        <module name="StaticVariableName">
-            <property name="format" value="^[a-z][_a-zA-Z0-9]*$" />
-        </module>
+        <module name="ParameterName" />
+        <module name="PatternVariableName" />
+        <module name="RecordComponentName" />
+        <module name="RecordTypeParameterName" />
+        <module name="StaticVariableName" />
         <module name="TypeName" />
 
 
 
         <module name="AnonInnerLength" />
         <module name="ExecutableStatementCount" />
-        <module name="LineLength">
-            <property name="max" value="78" />
-        </module>
+        <module name="LambdaBodyLength" />
         <module name="MethodCount" />
         <module name="MethodLength" />
         <module name="OuterTypeNumber" />
         <module name="ParameterNumber" />
+        <module name="RecordComponentNumber" />
 
 
     <!-- Whitespace -->
         <module name="EmptyForInitializerPad" />
         <module name="EmptyForIteratorPad" />
         <module name="EmptyLineSeparator">
-            <property
-                name="tokens"
-                value="PACKAGE_DEF,
-                       IMPORT,
-                       CLASS_DEF,
-                       INTERFACE_DEF,
-                       ENUM_DEF,
-                       STATIC_INIT,
-                       INSTANCE_INIT,
-                       METHOD_DEF,
-                       CTOR_DEF,
-                       "
-            />
+            <property name="allowNoEmptyLineBetweenFields" value="true" />
         </module>
         <module name="GenericWhitespace" />
         <module name="MethodParamPad">
             <property name="allowLineBreaks" value="false" />
             <property name="tokens" value="COMMA, POST_INC, POST_DEC" />
         </module>
-        <module name="NoWhitespaceBefore">
-            <property name="allowLineBreaks" value="true" />
-            <property name="tokens" value="SEMI" />
-        </module>
-        <module name="OperatorWrap">
-            <property name="option" value="eol" />
-            <property
-                name="tokens"
-                value="ASSIGN,
-                       BAND_ASSIGN, BOR_ASSIGN, BXOR_ASSIGN,
-                       PLUS_ASSIGN, MINUS_ASSIGN,
-                       STAR_ASSIGN, DIV_ASSIGN, MOD_ASSIGN,
-                       SL_ASSIGN, SR_ASSIGN, BSR_ASSIGN"
-            />
-        </module>
-        <module name="OperatorWrap">
-            <property name="option" value="nl" />
-            <property
-                name="tokens"
-                value="QUESTION,
-                       BAND, BOR, BXOR,
-                       PLUS, MINUS, STAR, DIV, MOD,
-                       LAND, LOR,
-                       EQUAL, NOT_EQUAL"
-            />
-        </module>
+        <module name="NoWhitespaceBeforeCaseDefaultColon" />
+        <module name="OperatorWrap" />
         <module name="ParenPad">
             <property name="option" value="nospace" />
             <property
         <module name="SingleSpaceSeparator" />
         <module name="TypecastParenPad" />
         <module name="WhitespaceAfter" >
-            <property name="tokens" value="COMMA, SEMI," />
+            <property name="tokens" value="COMMA, SEMI" />
         </module>
         <module name="WhitespaceAround">
             <property
                        MINUS, STAR, DIV, MOD,
                        PLUS_ASSIGN, MINUS_ASSIGN,
                        STAR_ASSIGN, DIV_ASSIGN, MOD_ASSIGN,
-                       EQUAL, NOT_EQUAL, GT, GE, LT, LE,
+                       EQUAL, NOT_EQUAL, GT, GE, LT, LE
                        "
             />
         </module>
index e8d6346..a82c723 100644 (file)
@@ -2,16 +2,16 @@
 
 <!--
     Custom rule set
-    for PMD [ https://pmd.github.io/ ] 6.13.0 or later
+    for PMD [ https://pmd.github.io/ ] 6.28.0 or later
 
-    Copyright(c) 2016 olyutorskii
+    Copyright(c) 2019 olyutorskii
 -->
 
 <ruleset
   xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0
-  http://pmd.sourceforge.net/ruleset_2_0_0.xsd"
+  https://pmd.sourceforge.io/ruleset_2_0_0.xsd"
   name="Custom ruleset"
 >
 
 
     <rule ref="category/java/codestyle.xml" >
         <exclude name="CommentDefaultAccessModifier" />
-        <exclude name="DefaultPackage" />
         <exclude name="LocalVariableCouldBeFinal" />
         <exclude name="MethodArgumentCouldBeFinal" />
         <exclude name="OnlyOneReturn" />
         <exclude name="ShortVariable" />
         <exclude name="UnnecessaryLocalBeforeReturn" />
+        <exclude name="UnnecessaryModifier" />
         <exclude name="UnnecessaryReturn" />
     </rule>
     <rule ref="category/java/codestyle.xml/ControlStatementBraces" >
     </rule>
 
     <rule ref="category/java/design.xml" >
-        <exclude name="AvoidThrowingNullPointerException" />
         <exclude name="AvoidUncheckedExceptionsInSignatures" />
         <exclude name="LawOfDemeter" />
         <exclude name="LoosePackageCoupling" />
-        <exclude name="SimplifyBooleanReturns" />
     </rule>
 
     <rule ref="category/java/documentation.xml" />
     <rule ref="category/java/documentation.xml/CommentSize" >
         <properties>
             <property name="maxLines" value="25"/>
+            <property name="maxLineLength" value="100"/>
         </properties>
     </rule>
 
     <rule ref="category/java/errorprone.xml" >
         <exclude name="AvoidLiteralsInIfCondition" />
         <exclude name="BeanMembersShouldSerialize" />
-        <exclude name="DataflowAnomalyAnalysis" />
     </rule>
 
     <rule ref="category/java/multithreading.xml" />
diff --git a/pom.xml b/pom.xml
index 5946d16..f8bcf63 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -16,7 +16,7 @@
     <groupId>jp.sourceforge.jovsonz</groupId>
     <artifactId>jovsonz</artifactId>
 
-    <version>1.101.105-SNAPSHOT</version>
+    <version>1.101.107-SNAPSHOT</version>
 
     <packaging>jar</packaging>
     <name>Jovsonz</name>
@@ -78,6 +78,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
+        <!--maven.compiler.release>8</maven.compiler.release-->
 
         <maven.compiler.showDeprecation>true</maven.compiler.showDeprecation>
         <maven.compiler.showWarnings>true</maven.compiler.showWarnings>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
 
-        <project.mainconf>${project.basedir}/src/main/config</project.mainconf>
+        <!-- MJAVADOC-700 -->
+        <sourcepath>${basedir}/src/main/java</sourcepath>
 
-        <locale>en</locale>
-        <site.locales>${locale}</site.locales>
-        <javadoc.locale>${locale}</javadoc.locale>
-        <spotbugs.jvmArgs>-Duser.language=${locale}</spotbugs.jvmArgs>
+        <!-- DO NOT USE ${locale} with site-plugin -->
+        <site.locales>en</site.locales>
+        <javadoc.locale>en</javadoc.locale>
+        <spotbugs.jvmArgs>-Duser.language=en</spotbugs.jvmArgs>
 
-        <!-- Walk around: JDK 11 javadoc + Maven -->
-        <detectJavaApiLink>false</detectJavaApiLink>
-
-        <surefire-plugin.version>3.0.0-M3</surefire-plugin.version>
-        <jacoco-plugin.version>0.8.3</jacoco-plugin.version>
-
-        <checkstyle-plugin.version>3.0.0</checkstyle-plugin.version>
-        <checkstyleruntime.version>8.18</checkstyleruntime.version>
-        <checkstyle.config.location>${project.basedir}/config/checkstyle/checkstyle.xml</checkstyle.config.location>
-        <checkstyle.suppressions.location>${project.basedir}/config/checkstyle/checkstyle-suppressions.xml</checkstyle.suppressions.location>
+        <checkstyle.config.location>config/checkstyle/checkstyle.xml</checkstyle.config.location>
+        <checkstyle.suppressions.location>config/checkstyle/checkstyle-suppressions.xml</checkstyle.suppressions.location>
         <checkstyle.enable.rss>false</checkstyle.enable.rss>
 
-        <pmd-plugin.version>3.12.0</pmd-plugin.version>
-        <pmd.analysisCache>true</pmd.analysisCache>
-
-        <spotbugs-plugin.version>3.1.11</spotbugs-plugin.version>
         <spotbugs.effort>Max</spotbugs.effort>
         <spotbugs.threshold>Low</spotbugs.threshold>
         <!-- for Jenkins -->
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
-            <version>4.12</version>
+            <version>4.13.2</version>
             <scope>test</scope>
         </dependency>
 
 
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-clean-plugin</artifactId>
+                    <version>3.2.0</version>
+                </plugin>
+
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-enforcer-plugin</artifactId>
+                    <version>3.1.0</version>
+                </plugin>
+
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-resources-plugin</artifactId>
+                    <version>3.3.0</version>
+                </plugin>
+
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-compiler-plugin</artifactId>
+                    <version>3.10.1</version>
+                </plugin>
+
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-surefire-plugin</artifactId>
+                    <version>3.0.0-M7</version>
+                </plugin>
+
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-surefire-report-plugin</artifactId>
+                    <version>3.0.0-M7</version>
+                </plugin>
+
+                <plugin>
+                    <groupId>org.jacoco</groupId>
+                    <artifactId>jacoco-maven-plugin</artifactId>
+                    <version>0.8.8</version>
+                </plugin>
+
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-jar-plugin</artifactId>
+                    <version>3.3.0</version>
+                </plugin>
+
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-source-plugin</artifactId>
+                    <version>3.2.1</version>
+                </plugin>
+
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-install-plugin</artifactId>
+                    <version>3.0.1</version>
+                </plugin>
+
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-deploy-plugin</artifactId>
+                    <version>3.0.0</version>
+                </plugin>
+
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-site-plugin</artifactId>
+                    <version>3.12.1</version>
+                </plugin>
+
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-assembly-plugin</artifactId>
+                    <version>3.4.2</version>
+                </plugin>
+
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-project-info-reports-plugin</artifactId>
+                    <version>3.4.1</version>
+                </plugin>
+
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-javadoc-plugin</artifactId>
+                    <version>3.4.1</version>
+                </plugin>
+
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-jxr-plugin</artifactId>
+                    <version>3.3.0</version>
+                </plugin>
+
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-checkstyle-plugin</artifactId>
-                    <version>${checkstyle-plugin.version}</version>
+                    <version>3.2.0</version>
                     <dependencies>
                         <dependency>
                             <groupId>com.puppycrawl.tools</groupId>
                             <artifactId>checkstyle</artifactId>
-                            <version>${checkstyleruntime.version}</version>
+                            <version>10.3.4</version>
+                        </dependency>
+                    </dependencies>
+                </plugin>
+
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-pmd-plugin</artifactId>
+                    <version>3.19.0</version>
+                    <dependencies>
+                        <dependency>
+                            <groupId>net.sourceforge.pmd</groupId>
+                            <artifactId>pmd-core</artifactId>
+                            <version>6.50.0</version>
+                        </dependency>
+                        <dependency>
+                            <groupId>net.sourceforge.pmd</groupId>
+                            <artifactId>pmd-java</artifactId>
+                            <version>6.50.0</version>
+                        </dependency>
+                    </dependencies>
+                </plugin>
+
+                <plugin>
+                    <groupId>com.github.spotbugs</groupId>
+                    <artifactId>spotbugs-maven-plugin</artifactId>
+                    <version>4.7.2.0</version>
+                    <dependencies>
+                        <dependency>
+                            <groupId>com.github.spotbugs</groupId>
+                            <artifactId>spotbugs</artifactId>
+                            <version>4.7.2</version>
                         </dependency>
                     </dependencies>
                 </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-clean-plugin</artifactId>
-                <version>3.1.0</version>
                 <configuration>
                     <filesets>
                         <fileset>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-enforcer-plugin</artifactId>
-                <version>3.0.0-M2</version>
                 <executions>
                     <execution>
                         <id>enforce-versions</id>
 
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-resources-plugin</artifactId>
-                <version>3.1.0</version>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
-                <version>3.8.0</version>
                 <configuration>
                     <source>1.8</source>  <!-- for NetBeans IDE -->
                     <target>1.8</target>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-surefire-plugin</artifactId>
-                <version>${surefire-plugin.version}</version>
                 <configuration>
                     <enableAssertions>true</enableAssertions>
                 </configuration>
             <plugin>
                 <groupId>org.jacoco</groupId>
                 <artifactId>jacoco-maven-plugin</artifactId>
-                <version>${jacoco-plugin.version}</version>
                 <executions>
                     <execution>
                         <id>default-prepare-agent</id>
                             <goal>prepare-agent</goal>
                         </goals>
                     </execution>
-                    <execution>
-                        <id>default-report</id>
-                        <phase>prepare-package</phase>
-                        <goals>
-                            <goal>report</goal>
-                        </goals>
-                    </execution>
-                    <execution>
-                        <id>default-check</id>
-                        <goals>
-                            <goal>check</goal>
-                        </goals>
-                        <configuration>
-                            <rules>
-                                <rule implementation="org.jacoco.maven.RuleConfiguration">
-                                    <element>BUNDLE</element>
-                                    <limits>
-                                        <limit implementation="org.jacoco.report.check.Limit">
-                                            <counter>COMPLEXITY</counter>
-                                            <value>COVEREDRATIO</value>
-                                            <minimum>0.0</minimum>
-                                        </limit>
-                                    </limits>
-                                </rule>
-                            </rules>
-                        </configuration>
-                    </execution>
                 </executions>
             </plugin>
 
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-jar-plugin</artifactId>
-                <version>3.1.1</version>
                 <configuration>
                     <archive>
                         <manifest>
                 </configuration>
             </plugin>
 
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-source-plugin</artifactId>
-                <version>3.0.1</version>
-                <configuration>
-                    <includePom>true</includePom>
-                    <archive>
-                        <manifestEntries>
-                            <Built-By>${project.organization.name}</Built-By>
-                        </manifestEntries>
-                    </archive>
-                </configuration>
-                <executions>
-                    <execution>
-                        <id>attach-sources</id>
-                        <phase>verify</phase>
-                        <goals>
-                          <goal>jar-no-fork</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-install-plugin</artifactId>
-                <version>3.0.0-M1</version>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-deploy-plugin</artifactId>
-                <version>3.0.0-M1</version>
-            </plugin>
-
 
             <!-- site lifecycle -->
 
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-site-plugin</artifactId>
-                <version>3.7.1</version>
                 <configuration>
                     <locales>${site.locales}</locales>
                 </configuration>
 
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-assembly-plugin</artifactId>
-                <version>3.1.1</version>
+                <artifactId>maven-javadoc-plugin</artifactId>
                 <configuration>
-                    <descriptors>
-                        <descriptor>src/assembly/src.xml</descriptor>
-                    </descriptors>
+                    <locale>${javadoc.locale}</locale>
+                    <!-- for JDK11 javadoc -->
+                    <additionalJOption>-J-Duser.language=${javadoc.locale}</additionalJOption>
+                    <source>${maven.compiler.source}</source>
+                    <notimestamp>true</notimestamp>
+                    <header>${project.name} ${project.version} API</header>
+                    <nohelp>true</nohelp>
+                    <author>false</author>
+                    <quiet>true</quiet>
+                    <doclint>all</doclint>
+                    <show>protected</show>
                 </configuration>
             </plugin>
 
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-checkstyle-plugin</artifactId>
-                <version>${checkstyle-plugin.version}</version>
+                <artifactId>maven-assembly-plugin</artifactId>
+                <configuration>
+                    <tarLongFileMode>posix</tarLongFileMode>
+                    <descriptors>
+                        <descriptor>src/assembly/src.xml</descriptor>
+                    </descriptors>
+                </configuration>
             </plugin>
 
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-pmd-plugin</artifactId>
-                <version>${pmd-plugin.version}</version>
                 <configuration>
                     <rulesets>
-                        <ruleset>${project.basedir}/config/pmd/pmdrules.xml</ruleset>
+                        <ruleset>config/pmd/pmdrules.xml</ruleset>
                     </rulesets>
                 </configuration>
             </plugin>
 
-            <plugin>
-                <groupId>com.github.spotbugs</groupId>
-                <artifactId>spotbugs-maven-plugin</artifactId>
-                <version>${spotbugs-plugin.version}</version>
-            </plugin>
-
         </plugins>
 
         <resources>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-project-info-reports-plugin</artifactId>
-                <version>3.0.0</version>
                 <configuration>
                     <linkOnly>true</linkOnly>
                     <offline>true</offline>
                             <report>dependencies</report>
                             <report>dependency-convergence</report>
                             <report>plugins</report>
-                            <report>plugin-management</report>
                             <report>team</report>
                             <report>issue-management</report>
                             <report>scm</report>
                             <report>ci-management</report>
                             <report>mailing-lists</report>
                             <report>modules</report>
+                            <report>plugin-management</report>
 -->
                         </reports>
                     </reportSet>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-javadoc-plugin</artifactId>
-                <version>3.1.0</version>
                 <configuration>
-                    <author>false</author>
-                    <notimestamp>true</notimestamp>
-                    <quiet>true</quiet>
-                    <show>protected</show>
-                    <header>${project.name} ${project.version} API</header>
-                    <version>true</version>
                     <locale>${javadoc.locale}</locale>
                     <!-- for JDK11 javadoc -->
                     <additionalJOption>-J-Duser.language=${javadoc.locale}</additionalJOption>
+                    <source>${maven.compiler.source}</source>
+                    <notimestamp>true</notimestamp>
+                    <header>${project.name} ${project.version} API</header>
+                    <nohelp>true</nohelp>
+                    <author>false</author>
+                    <quiet>true</quiet>
+                    <doclint>all</doclint>
+                    <show>protected</show>
                 </configuration>
                 <reportSets>
                     <reportSet>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-jxr-plugin</artifactId>
-                <version>3.0.0</version>
             </plugin>
 
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-surefire-report-plugin</artifactId>
-                <version>${surefire-plugin.version}</version>
             </plugin>
 
             <plugin>
                 <groupId>org.jacoco</groupId>
                 <artifactId>jacoco-maven-plugin</artifactId>
-                <version>${jacoco-plugin.version}</version>
                 <reportSets>
                     <reportSet>
                         <reports>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-checkstyle-plugin</artifactId>
-                <version>${checkstyle-plugin.version}</version>
                 <reportSets>
                     <reportSet>
                         <reports>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-pmd-plugin</artifactId>
-                <version>${pmd-plugin.version}</version>
                 <configuration>
                     <rulesets>
-                        <ruleset>${project.basedir}/config/pmd/pmdrules.xml</ruleset>
+                        <ruleset>config/pmd/pmdrules.xml</ruleset>
                     </rulesets>
                 </configuration>
                 <reportSets>
             <plugin>
                 <groupId>com.github.spotbugs</groupId>
                 <artifactId>spotbugs-maven-plugin</artifactId>
-                <version>${spotbugs-plugin.version}</version>
             </plugin>
 
         </plugins>
 
     </reporting>
 
-    <profiles/>
+    <profiles>
+
+        <profile>
+            <id>release-profile</id>
+
+            <activation>
+                <property>
+                    <name>performRelease</name>
+                    <value>true</value>
+                </property>
+            </activation>
+
+            <build>
+                <plugins>
+
+                    <plugin>
+                        <inherited>true</inherited>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-source-plugin</artifactId>
+                        <configuration>
+                            <includePom>true</includePom>
+                            <archive>
+                                <manifestEntries>
+                                    <Built-By>${project.organization.name}</Built-By>
+                                </manifestEntries>
+                            </archive>
+                        </configuration>
+                        <executions>
+                            <execution>
+                                <id>attach-sources</id>
+                                <goals>
+                                    <goal>jar-no-fork</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+
+                    <plugin>
+                        <inherited>true</inherited>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-javadoc-plugin</artifactId>
+                        <configuration>
+                            <show>protected</show>
+                            <archive>
+                                <manifestEntries>
+                                    <Built-By>${project.organization.name}</Built-By>
+                                </manifestEntries>
+                            </archive>
+                        </configuration>
+                        <executions>
+                            <execution>
+                                <id>attach-javadocs</id>
+                                <goals>
+                                    <goal>jar</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+
+                </plugins>
+            </build>
+        </profile>
+
+    </profiles>
 
 </project>
 
index b4f4424..c543c11 100644 (file)
@@ -8,13 +8,13 @@
 >
 
 <!--
-    OSDN.net用リリースファイル構成定義ファイル
-    Maven3 assembly用
+    for maven-assembly-plugin
 -->
 
     <id>src</id>
 
     <formats>
+        <format>tar.gz</format>
         <format>zip</format>
     </formats>
 
index 84802f5..b099753 100644 (file)
@@ -14,8 +14,11 @@ import java.util.List;
 
 /**
  * JSON ARRAY型Valueを表す。
- * 子要素の配列リストを反映する。
- * <h1>表記例</h1>
+ *
+ * <p>子要素の配列リストを反映する。
+ *
+ * <p>表記例
+ *
  * <pre>
  * [
  *     true ,
@@ -45,9 +48,11 @@ public class JsArray
 
     /**
      * JSON文字列ソースからARRAY型Valueを読み込む。
-     * さらに子Valueへとパース解析が進む可能性がある。
+     *
+     * <p>さらに子Valueへとパース解析が進む可能性がある。
      * 別型の可能性のある先頭文字を読み込んだ場合、
      * ソースに文字を読み戻した後nullが返される。
+     *
      * @param source 文字列ソース
      * @return ARRAY型Value。別型の可能性がある場合はnull。
      * @throws IOException 入力エラー
@@ -91,7 +96,9 @@ public class JsArray
 
     /**
      * {@inheritDoc}
-     * 常に{@link JsTypes#ARRAY}を返す。
+     *
+     * <p>常に{@link JsTypes#ARRAY}を返す。
+     *
      * @return {@inheritDoc}
      */
     @Override
@@ -101,9 +108,11 @@ public class JsArray
 
     /**
      * このValueおよび子孫に変更があったか判定する。
-     * 子要素の追加・削除が行われたか、
+     *
+     * <p>子要素の追加・削除が行われたか、
      * もしくは子要素のいずれかに変更が認められれば、
      * このARRAY型Valueに変更があったとみなされる。
+     *
      * @return {@inheritDoc}
      */
     @Override
@@ -137,7 +146,9 @@ public class JsArray
 
     /**
      * 深さ優先探索を行い各種構造の出現をビジターに通知する。
-     * thisを通知した後、子Valueを順に訪問し、最後に閉じ括弧を通知する。
+     *
+     * <p>thisを通知した後、子Valueを順に訪問し、最後に閉じ括弧を通知する。
+     *
      * @param visitor {@inheritDoc}
      * @throws JsVisitException {@inheritDoc}
      */
@@ -156,6 +167,7 @@ public class JsArray
 
     /**
      * 配列要素数を返す。
+     *
      * @return {@inheritDoc}
      */
     @Override
@@ -165,6 +177,7 @@ public class JsArray
 
     /**
      * 配列が空か判定する。
+     *
      * @return {@inheritDoc}
      */
     @Override
@@ -184,7 +197,9 @@ public class JsArray
 
     /**
      * ハッシュ値を返す。
-     * 全ての子孫Valueのハッシュ値からその都度合成される。高コスト注意!。
+     *
+     * <p>全ての子孫Valueのハッシュ値からその都度合成される。高コスト注意!。
+     *
      * @return {@inheritDoc}
      * @see java.util.List#hashCode()
      */
@@ -195,9 +210,11 @@ public class JsArray
 
     /**
      * 等価判定を行う。
-     * 双方の配列サイズが一致し
+     *
+     * <p>双方の配列サイズが一致し
      * その全ての子Valueでのequals()が等価と判断された場合のみ
      * 等価と判断される。
+     *
      * @param obj {@inheritDoc}
      * @return {@inheritDoc}
      * @see java.util.List#equals(Object)
@@ -214,7 +231,9 @@ public class JsArray
 
     /**
      * 配列にValueを追加する。
-     * 同じJsValueインスタンスを複数回追加することも可能。
+     *
+     * <p>同じJsValueインスタンスを複数回追加することも可能。
+     *
      * @param value JSON Value
      * @throws NullPointerException 引数がnull
      */
@@ -227,6 +246,7 @@ public class JsArray
 
     /**
      * 配列から指定された位置のValueを返す。
+     *
      * @param index 0で始まる配列上の位置
      * @return Value JSON Value
      * @throws IndexOutOfBoundsException 不正な位置指定
@@ -237,12 +257,15 @@ public class JsArray
 
     /**
      * 配列からValueを削除する。
-     * {@link java.util.List#remove(Object)}と異なり、
+     *
+     * <p>{@link java.util.List#remove(Object)}と異なり、
      * 削除対象の検索に際して
      * {@link java.lang.Object#equals(Object)}は使われない。
-     * 一致するインスタンスが複数存在する場合、
+     *
+     * <p>一致するインスタンスが複数存在する場合、
      * 先頭に近いインスタンスのみ削除される。
      * 一致するインスタンスが存在しなければなにもしない。
+     *
      * @param value JSON Value
      * @return 既存のValueが削除されたならtrue
      */
@@ -266,6 +289,7 @@ public class JsArray
 
     /**
      * 配列から指定位置のValueを削除する。
+     *
      * @param index 0で始まる削除対象のインデックス値
      * @return 削除されたValue
      * @throws IndexOutOfBoundsException 不正なインデックス値
@@ -278,7 +302,9 @@ public class JsArray
 
     /**
      * Valueにアクセスするための反復子を提供する。
-     * この反復子での削除作業はできない。
+     *
+     * <p>この反復子での削除作業はできない。
+     *
      * @return 反復子イテレータ
      * @see UnmodIterator
      */
@@ -289,8 +315,11 @@ public class JsArray
 
     /**
      * {@inheritDoc}
-     * 文字列表現を返す。
-     * JSON表記の全体もしくは一部としての利用も可能。
+     *
+     * <p>文字列表現を返す。
+     *
+     * <p>JSON表記の全体もしくは一部としての利用も可能。
+     *
      * @return {@inheritDoc}
      */
     @Override
index 06e4a0f..e152151 100644 (file)
@@ -11,9 +11,12 @@ import java.io.IOException;
 
 /**
  * JSON BOOLEAN型Valueを表す。
- * 真偽値を反映する。
+ *
+ * <p>真偽値を反映する。
  * インスタンスは2つしか存在しえない。
- * <h1>表記例</h1>
+ *
+ * <p>表記例
+ *
  * <pre>
  * true
  * false
@@ -39,7 +42,8 @@ public final class JsBoolean
 
     /**
      * 隠しコンストラクタ。
-     * 2回しか呼ばれないはず。
+     *
+     * <p>2回しか呼ばれないはず。
      */
     private JsBoolean(){
         super();
@@ -48,8 +52,10 @@ public final class JsBoolean
 
     /**
      * JSON文字列ソースからBOOLEAN型Valueを読み込む。
-     * 別型の可能性のある先頭文字を読み込んだ場合、
+     *
+     * <p>別型の可能性のある先頭文字を読み込んだ場合、
      * ソースに文字を読み戻した後nullが返される。
+     *
      * @param source 文字列ソース
      * @return BOOLEAN型Value。別型の可能性がある場合はnull。
      * @throws IOException 入力エラー
@@ -91,7 +97,9 @@ public final class JsBoolean
 
     /**
      * {@inheritDoc}
-     * 常に{@link JsTypes#BOOLEAN}を返す。
+     *
+     * <p>常に{@link JsTypes#BOOLEAN}を返す。
+     *
      * @return {@inheritDoc}
      */
     @Override
@@ -101,7 +109,9 @@ public final class JsBoolean
 
     /**
      * 各種構造の出現をビジターに通知する。
-     * この実装ではthisの出現のみを通知する。
+     *
+     * <p>この実装ではthisの出現のみを通知する。
+     *
      * @param visitor {@inheritDoc}
      * @throws JsVisitException {@inheritDoc}
      */
@@ -114,8 +124,10 @@ public final class JsBoolean
 
     /**
      * {@inheritDoc}
-     * ハッシュ値を返す。
+     *
+     * <p>ハッシュ値を返す。
      * 真なら{@link #HASH_TRUE}、偽なら{@link #HASH_FALSE}を返す。
+     *
      * @return {@inheritDoc}
      */
     @Override
@@ -128,7 +140,9 @@ public final class JsBoolean
 
     /**
      * {@inheritDoc}
-     * 等価判定を行う。
+     *
+     * <p>等価判定を行う。
+     *
      * @param obj {@inheritDoc}
      * @return {@inheritDoc}
      */
@@ -141,8 +155,10 @@ public final class JsBoolean
 
     /**
      * {@inheritDoc}
-     * BOOLEAN型Valueを順序付ける。
+     *
+     * <p>BOOLEAN型Valueを順序付ける。
      * ({@link #TRUE}、{@link #FALSE})の順に順序付けられる。
+     *
      * @param value {@inheritDoc}
      * @return {@inheritDoc}
      * @throws NullPointerException 引数がnull
@@ -161,6 +177,7 @@ public final class JsBoolean
 
     /**
      * boolean値を反映したBOOLEAN型Valueを返す。
+     *
      * @param bool boolean値
      * @return BOOLEAN型Value
      */
@@ -171,6 +188,7 @@ public final class JsBoolean
 
     /**
      * boolean値を返す。
+     *
      * @return boolean値
      */
     public boolean booleanValue(){
@@ -180,6 +198,7 @@ public final class JsBoolean
 
     /**
      * 真か判定する。
+     *
      * @return 真ならtrue
      */
     public boolean isTrue(){
@@ -189,6 +208,7 @@ public final class JsBoolean
 
     /**
      * 偽か判定する。
+     *
      * @return 偽ならtrue
      */
     public boolean isFalse(){
@@ -198,7 +218,9 @@ public final class JsBoolean
 
     /**
      * 文字列表現を返す。
-     * JSON表記の一部としての利用も可能。
+     *
+     * <p>JSON表記の一部としての利用も可能。
+     *
      * @return {@inheritDoc}
      */
     @Override
index e18ec8b..b13c7e9 100644 (file)
@@ -9,44 +9,55 @@ package jp.sourceforge.jovsonz;
 
 /**
  * 子要素を持つJSON型の抽象インタフェース。
- * JSON最上位構造であるための必要条件。
- * 子要素を持ちうるJSON型はOBJECT型かARRAY型のみ。
+ *
+ * <p>JSON最上位構造であるための必要条件。
+ *
+ * <p>子要素を持ちうるJSON型はOBJECT型かARRAY型のみ。
+ *
  * @param <E> 反復子の要素型
  */
 public interface JsComposition<E> extends JsValue, Iterable<E> {
 
     /**
      * 要素数を返す。
+     *
      * <p>OBJECT型の場合は直下のPAIR総数。</p>
+     *
      * <p>ARRAY型の場合は直下の子要素総数。</p>
+     *
      * @return 要素数
      */
-    int size();
+    public abstract int size();
 
     /**
      * 子要素が空か否か判定する。
+     *
      * @return 要素がなければtrue
      */
-    boolean isEmpty();
+    public abstract boolean isEmpty();
 
     /**
      * 子要素を空にする。
      */
-    void clear();
+    public abstract void clear();
 
     /**
      * このValueおよび子孫に変更があったか判定する。
-     * Value生成直後はfalseでなければならない。
-     * ロードしたデータに対し
+     *
+     * <p>Value生成直後はfalseでなければならない。
+     *
+     * <p>ロードしたデータに対し
      * 再セーブの必要があるかどうかの判定などを目的とする。
-     * <p>変更が可能なValueはOBJECT型かARRAY型のみ。</p>
+     *
+     * <p>変更が可能なValueはOBJECT型かARRAY型のみ。
+     *
      * @return 変更があればtrue
      */
-    boolean hasChanged();
+    public abstract boolean hasChanged();
 
     /**
      * このValueおよび子孫に変更がなかったことにする。
      */
-    void setUnchanged();
+    public abstract void setUnchanged();
 
 }
index b0e1015..f9e1a37 100644 (file)
@@ -11,9 +11,12 @@ import java.io.IOException;
 
 /**
  * JSON NULL型Valueを表す。
- * Javaのnullとは一切無関係。
+ *
+ * <p>Javaのnullとは一切無関係。
  * その実体はシングルトン。
- * <h1>表記例</h1>
+ *
+ * <p>表記例
+ *
  * <pre>
  * null
  * </pre>
@@ -32,7 +35,8 @@ public final class JsNull
 
     /**
      * 隠しコンストラクタ。
-     * 1回しか呼ばれないはず
+     *
+     * <p>1回しか呼ばれないはず
      */
     private JsNull(){
         super();
@@ -41,8 +45,10 @@ public final class JsNull
 
     /**
      * JSON文字列ソースからNULL型Valueを読み込む。
-     * 別型の可能性のある先頭文字を読み込んだ場合、
+     *
+     * <p>別型の可能性のある先頭文字を読み込んだ場合、
      * ソースに文字を読み戻した後nullが返される。
+     *
      * @param source 文字列ソース
      * @return NULL型Value。別型の可能性がある場合はnull。
      * @throws IOException 入力エラー
@@ -67,7 +73,9 @@ public final class JsNull
 
     /**
      * {@inheritDoc}
-     * 常に{@link JsTypes#NULL}を返す。
+     *
+     * <p>常に{@link JsTypes#NULL}を返す。
+     *
      * @return {@inheritDoc}
      */
     @Override
@@ -77,7 +85,9 @@ public final class JsNull
 
     /**
      * 各種構造の出現をビジターに通知する。
-     * この実装ではthisの出現のみを通知する。
+     *
+     * <p>この実装ではthisの出現のみを通知する。
+     *
      * @param visitor {@inheritDoc}
      * @throws JsVisitException {@inheritDoc}
      */
@@ -90,8 +100,10 @@ public final class JsNull
 
     /**
      * {@inheritDoc}
-     * ハッシュ値を返す。
+     *
+     * <p>ハッシュ値を返す。
      * 常に{@value ONLYHASH}を返す。
+     *
      * @return {@inheritDoc}
      */
     @Override
@@ -101,8 +113,10 @@ public final class JsNull
 
     /**
      * {@inheritDoc}
-     * 等価判定を行う。
+     *
+     * <p>等価判定を行う。
      * {@link #NULL}が渡された時のみtrueを返す。
+     *
      * @param obj {@inheritDoc}
      * @return {@inheritDoc}
      */
@@ -115,8 +129,10 @@ public final class JsNull
 
     /**
      * {@inheritDoc}
-     * NULL型Valueを順序付ける。シングルトン相手にほぼ無意味。
+     *
+     * <p>NULL型Valueを順序付ける。シングルトン相手にほぼ無意味。
      * null以外の引数には必ず0を返す。
+     *
      * @param value {@inheritDoc}
      * @return {@inheritDoc}
      * @throws NullPointerException 引数がnull
@@ -129,9 +145,11 @@ public final class JsNull
 
     /**
      * {@inheritDoc}
-     * 文字列表現を返す。
+     *
+     * <p>文字列表現を返す。
      * 常に文字列 {@value TEXT} を返す。
      * JSON表記の一部としての利用も可能。
+     *
      * @return {@inheritDoc}
      */
     @Override
index 545f134..1b35cb9 100644 (file)
@@ -15,18 +15,22 @@ import java.math.RoundingMode;
 
 /**
  * JSON NUMBER型Valueを表す。
- * 整数、実数を含めた数値を反映する。
- * <p>
- * 10を基数とした{@link java.math.BigDecimal}を実装ベースとする。
+ *
+ * <p>整数、実数を含めた数値を反映する。
+ *
+ * <p>10を基数とした{@link java.math.BigDecimal}を実装ベースとする。
  * ※ IEEE754浮動小数ではない。
- * </p>
- * <p>(1)と(1.0)はスケール値によって区別される</p>
- * <h1>表記例</h1>
+ *
+ * <p>(1)と(1.0)はスケール値によって区別される
+ *
+ * <p>表記例
+ *
  * <pre>
  * -43
  * 0.56
  * 3.23E-06
  * </pre>
+ *
  * @see java.math.BigDecimal
  */
 public class JsNumber
@@ -46,6 +50,7 @@ public class JsNumber
 
     /**
      * コンストラクタ。
+     *
      * @param val 初期整数値
      */
     public JsNumber(long val){
@@ -55,12 +60,14 @@ public class JsNumber
 
     /**
      * コンストラクタ。
-     * <p>
-     * {@link java.math.BigDecimal#valueOf(double)}と同等の丸めが行われる。
-     * (1.0/10.0)を渡すと0.1相当になる。
-     * 必要に応じて{@link java.math.BigDecimal}を
+     *
+     * <p>{@link java.math.BigDecimal#valueOf(double)}と同等の丸めが行われる。
+     *
+     * <p>(1.0/10.0)を渡すと0.1相当になる。
+     *
+     * <p>必要に応じて{@link java.math.BigDecimal}を
      * 引数に持つコンストラクタと使い分けること。
-     * </p>
+     *
      * @param val 初期実数値
      * @see java.math.BigDecimal#valueOf(double)
      */
@@ -71,9 +78,10 @@ public class JsNumber
 
     /**
      * コンストラクタ。
+     *
      * @param val 初期整数値
      * @throws ArithmeticException 正確な結果を
-     * {@link java.math.BigDecimal}に納め切れない
+     *  {@link java.math.BigDecimal}に納め切れない
      */
     public JsNumber(BigInteger val) throws ArithmeticException{
         this(new BigDecimal(val, DEF_MC));
@@ -82,11 +90,14 @@ public class JsNumber
 
     /**
      * コンストラクタ。
-     * 書式は{@link java.math.BigDecimal#BigDecimal(String)}に準ずる。
+     *
+     * <p>書式は{@link java.math.BigDecimal#BigDecimal(String)}に準ずる。
+     *
      * @param val 初期数値の文字列表記
      * @throws NumberFormatException 不正な数値表記
      * @throws ArithmeticException 正確な結果を
-     * {@link java.math.BigDecimal}に納め切れない
+     *  {@link java.math.BigDecimal}に納め切れない
+     *
      * @see java.math.BigDecimal#BigDecimal(String)
      */
     public JsNumber(CharSequence val)
@@ -97,6 +108,7 @@ public class JsNumber
 
     /**
      * コンストラクタ。
+     *
      * @param val 初期数値
      * @throws NullPointerException 引数がnull
      */
@@ -109,8 +121,10 @@ public class JsNumber
 
     /**
      * 任意の文字がUnicodeのBasic-Latinの数字か否か判定する。
+     *
      * @param ch 文字
      * @return 数字ならtrue
+     *
      * @see java.lang.Character#isDigit(char)
      */
     public static boolean isLatinDigit(char ch){
@@ -120,9 +134,12 @@ public class JsNumber
 
     /**
      * 文字ソースから符号付きの数字並びを読み込む。
-     * 先頭'+'符号は読み飛ばされる。
+     *
+     * <p>先頭'+'符号は読み飛ばされる。
      * 冒頭のゼロ'0'に続く数字を許すか否か指定が可能。
-     * <p>NUMBER型表記の整数部、小数部、指数部読み込みの下請けメソッド。</p>
+     *
+     * <p>NUMBER型表記の整数部、小数部、指数部読み込みの下請けメソッド。
+     *
      * @param source 文字列ソース
      * @param app 出力先
      * @param allowZeroTrail 冒頭のゼロ'0'に続く数字を許すならtrue
@@ -174,7 +191,9 @@ public class JsNumber
 
     /**
      * 文字ソースから、ピリオド「.」で始まるNUMBER型小数部を読み込む。
-     * 小数部がなければなにもせずに戻る。
+     *
+     * <p>小数部がなければなにもせずに戻る。
+     *
      * @param source 文字列ソース
      * @param app 出力先
      * @return 引数と同じ出力先
@@ -220,7 +239,9 @@ public class JsNumber
 
     /**
      * 文字ソースから「e」もしくは「E」で始まるNUMBER型指数部を読み込む。
-     * 指数部がなければなにもせずに戻る。
+     *
+     * <p>指数部がなければなにもせずに戻る。
+     *
      * @param source 文字列ソース
      * @param app 出力先
      * @return 引数と同じ出力先
@@ -247,8 +268,10 @@ public class JsNumber
 
     /**
      * JSON文字列ソースからNUMBER型Valueを読み込む。
-     * 別型の可能性のある先頭文字を読み込んだ場合、
+     *
+     * <p>別型の可能性のある先頭文字を読み込んだ場合、
      * ソースに文字を読み戻した後nullが返される。
+     *
      * @param source 文字列ソース
      * @return NUMBER型Value。別型の可能性がある場合はnull。
      * @throws IOException 入力エラー
@@ -275,7 +298,9 @@ public class JsNumber
 
     /**
      * {@inheritDoc}
-     * 常に{@link JsTypes#NUMBER}を返す。
+     *
+     * <p>常に{@link JsTypes#NUMBER}を返す。
+     *
      * @return {@inheritDoc}
      */
     @Override
@@ -285,7 +310,9 @@ public class JsNumber
 
     /**
      * 各種構造の出現をビジターに通知する。
-     * この実装ではthisの出現のみを通知する。
+     *
+     * <p>この実装ではthisの出現のみを通知する。
+     *
      * @param visitor {@inheritDoc}
      * @throws JsVisitException {@inheritDoc}
      */
@@ -298,9 +325,12 @@ public class JsNumber
 
     /**
      * {@inheritDoc}
-     * ハッシュ値を返す。
+     *
+     * <p>ハッシュ値を返す。
      * {@link java.math.BigDecimal#hashCode()}と同じ値を返す。
+     *
      * @return {@inheritDoc}
+     *
      * @see java.math.BigDecimal#hashCode()
      */
     @Override
@@ -310,12 +340,16 @@ public class JsNumber
 
     /**
      * {@inheritDoc}
-     * 等価判定を行う。
+     *
+     * <p>等価判定を行う。
      * {@link java.math.BigDecimal#equals(Object)}と同等の判断が行われる。
-     * 「1.2」と「0.12E+1」など、
+     *
+     * <p>「1.2」と「0.12E+1」など、
      * スケールの一致しない値は異なる値と見なされる。
+     *
      * @param obj {@inheritDoc}
      * @return {@inheritDoc}
+     *
      * @see java.math.BigDecimal#equals(Object)
      */
     @Override
@@ -328,11 +362,15 @@ public class JsNumber
 
     /**
      * {@inheritDoc}
-     * NUMBER型Valueを昇順に順序付ける。
-     * 「1.2」と「0.12E+1」など、スケールが異なっても値が同じであれば
+     *
+     * <p>NUMBER型Valueを昇順に順序付ける。
+     *
+     * <p>「1.2」と「0.12E+1」など、スケールが異なっても値が同じであれば
      * 等しい値と見なされる。
+     *
      * @param value {@inheritDoc}
      * @return {@inheritDoc}
+     *
      * @see java.math.BigDecimal#compareTo(BigDecimal)
      */
     @Override
@@ -343,8 +381,11 @@ public class JsNumber
 
     /**
      * int型の数値を返す。
-     * 情報が失われる可能性がある。
+     *
+     * <p>情報が失われる可能性がある。
+     *
      * @return int型数値
+     *
      * @see java.lang.Number#intValue()
      * @see java.math.BigDecimal#intValue()
      */
@@ -354,8 +395,11 @@ public class JsNumber
 
     /**
      * long型の数値を返す。
-     * 情報が失われる可能性がある。
+     *
+     * <p>情報が失われる可能性がある。
+     *
      * @return long型数値
+     *
      * @see java.lang.Number#longValue()
      * @see java.math.BigDecimal#longValue()
      */
@@ -365,8 +409,11 @@ public class JsNumber
 
     /**
      * float型の数値を返す。
-     * 情報が失われる可能性がある。
+     *
+     * <p>情報が失われる可能性がある。
+     *
      * @return float型数値
+     *
      * @see java.lang.Number#floatValue()
      * @see java.math.BigDecimal#floatValue()
      */
@@ -376,8 +423,11 @@ public class JsNumber
 
     /**
      * double型の数値を返す。
-     * 情報が失われる可能性がある。
+     *
+     * <p>情報が失われる可能性がある。
+     *
      * @return double型数値
+     *
      * @see java.lang.Number#doubleValue()
      * @see java.math.BigDecimal#doubleValue()
      */
@@ -387,6 +437,7 @@ public class JsNumber
 
     /**
      * {@link java.math.BigDecimal}型の数値表現を返す。
+     *
      * @return BigDecimal型数値
      */
     public BigDecimal decimalValue(){
@@ -395,7 +446,8 @@ public class JsNumber
 
     /**
      * スケール値を返す。
-     * このインスタンスが整数文字列表記に由来する場合、
+     *
+     * <p>このインスタンスが整数文字列表記に由来する場合、
      * スケール値は0になるはず。
      *
      * <ul>
@@ -407,6 +459,7 @@ public class JsNumber
      * </ul>
      *
      * @return スケール値
+     *
      * @see java.math.BigDecimal#scale()
      */
     public int scale(){
@@ -415,8 +468,10 @@ public class JsNumber
 
     /**
      * 文字列表現を返す。
-     * {@link java.math.BigDecimal#toString()}に準ずる。
+     *
+     * <p>{@link java.math.BigDecimal#toString()}に準ずる。
      * JSON表記の一部としての利用も可能。
+     *
      * @return {@inheritDoc}
      */
     @Override
index c5ad78a..d6be80d 100644 (file)
@@ -18,9 +18,12 @@ import java.util.TreeMap;
 
 /**
  * JSON OBJECT型Valueを表す。
- * PAIR名と子要素の組(PAIR)の集合を反映する。
+ *
+ * <p>PAIR名と子要素の組(PAIR)の集合を反映する。
  * PAIR名の並び順に関しては未定義とする。
- * <h1>表記例</h1>
+ *
+ * <p>表記例
+ *
  * <pre>
  * {
  *     "Name" : "Joe" ,
@@ -57,9 +60,12 @@ public class JsObject
 
     /**
      * JSON文字列ソースからOBJECT型Valueを読み込む。
-     * さらに子Valueへとパース解析が進む可能性がある。
-     * 別型の可能性のある先頭文字を読み込んだ場合、
+     *
+     * <p>さらに子Valueへとパース解析が進む可能性がある。
+     *
+     * <p>別型の可能性のある先頭文字を読み込んだ場合、
      * ソースに文字を読み戻した後nullが返される。
+     *
      * @param source 文字列ソース
      * @return OBJECT型Value。別型の可能性がある場合はnull。
      * @throws IOException 入力エラー
@@ -117,7 +123,9 @@ public class JsObject
 
     /**
      * {@inheritDoc}
-     * 常に{@link JsTypes#OBJECT}を返す。
+     *
+     * <p>常に{@link JsTypes#OBJECT}を返す。
+     *
      * @return {@inheritDoc}
      */
     @Override
@@ -127,9 +135,11 @@ public class JsObject
 
     /**
      * このValueおよび子孫に変更があったか判定する。
-     * PAIRの追加・削除が行われたか、
+     *
+     * <p>PAIRの追加・削除が行われたか、
      * もしくはPAIRのValue値いずれかに変更が認められれば、
      * このOBJECT型Valueに変更があったとみなされる。
+     *
      * @return {@inheritDoc}
      */
     @Override
@@ -165,9 +175,12 @@ public class JsObject
 
     /**
      * 深さ優先探索を行い各種構造の出現をビジターに通知する。
-     * thisを通知した後、PAIRの各名前およびValueを順に訪問し、
+     *
+     * <p>thisを通知した後、PAIRの各名前およびValueを順に訪問し、
      * 最後に閉じ括弧を通知する。
-     * PAIRの訪問順に関しては未定義。
+     *
+     * <p>PAIRの訪問順に関しては未定義。
+     *
      * @param visitor {@inheritDoc}
      * @throws JsVisitException {@inheritDoc}
      */
@@ -189,6 +202,7 @@ public class JsObject
 
     /**
      * PAIR総数を返す。
+     *
      * @return PAIR総数
      */
     @Override
@@ -198,6 +212,7 @@ public class JsObject
 
     /**
      * PAIR集合が空か判定する。
+     *
      * @return 空ならtrue
      */
     @Override
@@ -217,7 +232,9 @@ public class JsObject
 
     /**
      * ハッシュ値を返す。
-     * 全てのPAIRのハッシュ値からその都度合成される。高コスト注意!。
+     *
+     * <p>全てのPAIRのハッシュ値からその都度合成される。高コスト注意!。
+     *
      * @return {@inheritDoc}
      */
     @Override
@@ -227,9 +244,11 @@ public class JsObject
 
     /**
      * 等価判定を行う。
-     * 双方のPAIR数が一致し、
+     *
+     * <p>双方のPAIR数が一致し、
      * 全てのPAIR名およびそれに対応付けられたValueが一致した場合のみ
      * 等価と判断される。
+     *
      * @param obj {@inheritDoc}
      * @return {@inheritDoc}
      */
@@ -245,6 +264,7 @@ public class JsObject
 
     /**
      * 名前とValueからPAIRを登録する。
+     *
      * @param name 名前
      * @param value Value
      * @return 旧Value。同じ内容のPAIRがすでに存在していたらnull
@@ -271,6 +291,7 @@ public class JsObject
 
     /**
      * PAIR名からValueを取得する。
+     *
      * @param name PAIR名
      * @return 対応するValue。見つからなければnull
      */
@@ -283,7 +304,9 @@ public class JsObject
 
     /**
      * PAIRを追加する。
-     * 同じPAIR名を持つPAIRは無条件に上書きされる。
+     *
+     * <p>同じPAIR名を持つPAIRは無条件に上書きされる。
+     *
      * @param pair PAIR
      */
     public void putPair(JsPair pair){
@@ -293,6 +316,7 @@ public class JsObject
 
     /**
      * PAIR名からPAIRを返す。
+     *
      * @param name PAIR名
      * @return PAIR。見つからなければnull
      */
@@ -305,6 +329,7 @@ public class JsObject
 
     /**
      * 指定した名前のPAIRを削除する。
+     *
      * @param name PAIR名
      * @return 消されたPAIR。該当するPAIRがなければnull
      */
@@ -317,6 +342,7 @@ public class JsObject
 
     /**
      * 保持する全PAIRのPAIR名の集合を返す。
+     *
      * @return すべての名前
      */
     public Set<String> nameSet(){
@@ -325,7 +351,9 @@ public class JsObject
 
     /**
      * PAIRのリストを返す。
-     * このリストを上書き操作しても影響はない。
+     *
+     * <p>このリストを上書き操作しても影響はない。
+     *
      * @return PAIRリスト
      */
     public List<JsPair> getPairList(){
@@ -340,8 +368,10 @@ public class JsObject
 
     /**
      * PAIRにアクセスするための反復子を提供する。
-     * この反復子での削除作業はできない。
+     *
+     * <p>この反復子での削除作業はできない。
      * PAIR出現順序は未定義。
+     *
      * @return 反復子イテレータ
      */
     @Override
@@ -351,7 +381,9 @@ public class JsObject
 
     /**
      * 文字列表現を返す。
-     * JSON表記の全体もしくは一部としての利用も可能。
+     *
+     * <p>JSON表記の全体もしくは一部としての利用も可能。
+     *
      * @return {@inheritDoc}
      */
     @Override
index a10fb76..cf30af5 100644 (file)
@@ -11,7 +11,8 @@ import java.io.IOException;
 
 /**
  * OBJECT型Value内に列挙される、名前の付いたValueとの組(PAIR)。
- * PAIRはValueではない。
+ *
+ * <p>PAIRはValueではない。
  *
  * <pre>
  * {
@@ -28,6 +29,7 @@ public class JsPair {
 
     /**
      * コンストラクタ。
+     *
      * @param name PAIR名
      * @param value PAIR名に対応付けられるValue
      * @throws NullPointerException 引数のいずれかがnull
@@ -46,10 +48,12 @@ public class JsPair {
 
     /**
      * コンストラクタ。
-     * STRING型をValueに持つPAIRが生成される。
+     *
+     * <p>STRING型をValueに持つPAIRが生成される。
+     *
      * @param name PAIR名
      * @param text PAIR名に対応付けられる文字列データ。
-     * エスケープされる前段階の表記。
+     *  エスケープされる前段階の表記。
      * @throws NullPointerException 引数がnull
      */
     public JsPair(String name, CharSequence text)
@@ -60,7 +64,9 @@ public class JsPair {
 
     /**
      * コンストラクタ。
-     * BOOLEAN型をValueに持つPAIRが生成される。
+     *
+     * <p>BOOLEAN型をValueに持つPAIRが生成される。
+     *
      * @param name PAIR名
      * @param bool PAIR名に対応付けられる真偽値
      * @throws NullPointerException PAIR名がnull
@@ -73,7 +79,9 @@ public class JsPair {
 
     /**
      * コンストラクタ。
-     * NUMBER型をValueに持つPAIRが生成される。
+     *
+     * <p>NUMBER型をValueに持つPAIRが生成される。
+     *
      * @param name PAIR名
      * @param number PAIR名に対応付けられる整数値
      * @throws NullPointerException PAIR名がnull
@@ -86,7 +94,9 @@ public class JsPair {
 
     /**
      * コンストラクタ。
-     * NUMBER型をValueに持つPAIRが生成される。
+     *
+     * <p>NUMBER型をValueに持つPAIRが生成される。
+     *
      * @param name PAIR名
      * @param number PAIR名に対応付けられる実数値
      * @throws NullPointerException PAIR名がnull
@@ -99,6 +109,7 @@ public class JsPair {
 
     /**
      * PAIR名を返す。
+     *
      * @return PAIR名
      */
     public String getName(){
@@ -107,6 +118,7 @@ public class JsPair {
 
     /**
      * Valueを返す。
+     *
      * @return Value
      */
     public JsValue getValue(){
@@ -115,8 +127,11 @@ public class JsPair {
 
     /**
      * {@inheritDoc}
-     * ハッシュ値を返す。
-     * PAIR名とValue双方のハッシュ値から合成される。
+     *
+     * <p>ハッシュ値を返す。
+     *
+     * <p>PAIR名とValue双方のハッシュ値から合成される。
+     *
      * @return {@inheritDoc}
      */
     @Override
@@ -128,8 +143,11 @@ public class JsPair {
 
     /**
      * {@inheritDoc}
-     * 等価判定を行う。
-     * PAIR名とValue双方が一致する場合のみ真となる。
+     *
+     * <p>等価判定を行う。
+     *
+     * <p>PAIR名とValue双方が一致する場合のみ真となる。
+     *
      * @param obj {@inheritDoc}
      * @return {@inheritDoc}
      */
@@ -148,7 +166,9 @@ public class JsPair {
 
     /**
      * 文字列表現を返す。
-     * JSON表記の一部としての利用も可能。
+     *
+     * <p>JSON表記の一部としての利用も可能。
+     *
      * @return {@inheritDoc}
      */
     @Override
index 094da39..65fe409 100644 (file)
@@ -9,7 +9,8 @@ package jp.sourceforge.jovsonz;
 
 /**
  * 入力文字列パース中断例外。
- * JSON文字列ソースへのパース処理の中断時に投げられる。
+ *
+ * <p>JSON文字列ソースへのパース処理の中断時に投げられる。
  */
 @SuppressWarnings("serial")
 public class JsParseException extends Exception {
@@ -23,6 +24,7 @@ public class JsParseException extends Exception {
 
     private static final int LINE_UNKNOWN = 0;
 
+    /** line number. */
     private final int lineNumber;
 
     /**
@@ -35,6 +37,7 @@ public class JsParseException extends Exception {
 
     /**
      * コンストラクタ。
+     *
      * @param message 詳細メッセージ。不明な場合はnull
      * @param lineNumber 行番号。不明な場合は0以下の値
      */
@@ -45,6 +48,7 @@ public class JsParseException extends Exception {
 
     /**
      * コンストラクタ。
+     *
      * @param message 詳細メッセージ。不明な場合はnull
      * @param cause 原因となった例外。不明な場合はnull
      * @param lineNumber 行番号。不明な場合は0以下の値
@@ -57,6 +61,7 @@ public class JsParseException extends Exception {
 
     /**
      * パースエラーの起きた行番号を返す。
+     *
      * @return 行番号。不明な場合は0以下の値。
      */
     public int getLineNumber(){
@@ -65,6 +70,7 @@ public class JsParseException extends Exception {
 
     /**
      * 有効な行番号を保持しているか判定する。
+     *
      * @return 有効な行番号(1以上)を保持していればtrue
      */
     public boolean hasValidLineNumber(){
@@ -74,7 +80,9 @@ public class JsParseException extends Exception {
 
     /**
      * {@inheritDoc}
-     * 有効な行番号があれば一緒に出力される。
+     *
+     * <p>有効な行番号があれば一緒に出力される。
+     *
      * @return {@inheritDoc}
      */
     @Override
index 3f2ecc3..7c2df68 100644 (file)
@@ -11,8 +11,11 @@ import java.io.IOException;
 
 /**
  * JSON STRING型Valueを表す。
- * Unicode文字列データを反映する。
- * <h1>表記例</h1>
+ *
+ * <p>Unicode文字列データを反映する。
+ *
+ * <p>表記例
+ *
  * <pre>
  * "xyz"
  * "漢"
@@ -35,7 +38,8 @@ public class JsString
 
     /**
      * コンストラクタ。
-     * 長さ0の空文字が設定される。
+     *
+     * <p>長さ0の空文字が設定される。
      */
     public JsString(){
         this("");
@@ -44,7 +48,9 @@ public class JsString
 
     /**
      * コンストラクタ。
-     * 引数はJSON書式ではない生文字列。
+     *
+     * <p>引数はJSON書式ではない生文字列。
+     *
      * @param rawSeq 生文字列
      * @throws NullPointerException 引数がnull
      */
@@ -58,6 +64,7 @@ public class JsString
     /**
      * FFFF形式4桁で16進エスケープされた文字列を読み、
      * char1文字にデコードする。
+     *
      * @param source 文字列ソース
      * @return 文字
      * @throws IOException 入力エラー
@@ -98,11 +105,12 @@ public class JsString
 
     /**
      * '\'に続くスペシャルキャラの読み込みを行う。
+     *
      * @param source 文字列ソース
      * @param app スペシャルキャラ格納文字列
      * @throws IOException 入出力エラー
      * @throws JsParseException "\z"などの不正なスペシャルキャラ
-     * もしくは意図しない入力終了
+     *  もしくは意図しない入力終了
      */
     private static void parseSpecial(JsonSource source, Appendable app)
             throws IOException, JsParseException{
@@ -130,8 +138,10 @@ public class JsString
 
     /**
      * JSON文字列ソースからSTRING型Valueを読み込む。
-     * 別型の可能性のある先頭文字を読み込んだ場合、
+     *
+     * <p>別型の可能性のある先頭文字を読み込んだ場合、
      * ソースに文字を読み戻した後nullが返される。
+     *
      * @param source 文字列ソース
      * @return STRING型Value。別型の可能性がある場合はnull。
      * @throws IOException 入力エラー
@@ -168,11 +178,13 @@ public class JsString
 
     /**
      * 任意の文字からエスケープ出力用シンボルを得る。
-     * このシンボルは'\'に続けて用いられる1文字である。
+     *
+     * <p>このシンボルは'\'に続けて用いられる1文字である。
      * 'u'を返す事はありえない。
+     *
      * @param ch 任意の文字
      * @return エスケープ出力用シンボル。
-     * 1文字エスケープの必要がない場合は'\0'
+     *  1文字エスケープの必要がない場合は'\0'
      */
     private static char escapeSymbol(char ch){
         char result;
@@ -192,7 +204,9 @@ public class JsString
 
     /**
      * 特殊文字をエスケープ出力する。
-     * 特殊文字でなければなにもしない。
+     *
+     * <p>特殊文字でなければなにもしない。
+     *
      * @param appout 出力先
      * @param ch 文字
      * @return 特殊文字出力がエスケープされた時にtrue
@@ -218,6 +232,7 @@ public class JsString
 
     /**
      * JSON STRING型Value形式で文字列を出力する。
+     *
      * @param appout 文字出力
      * @param seq 文字列
      * @throws IOException 出力エラー
@@ -241,6 +256,7 @@ public class JsString
 
     /**
      * JSON STRING型Value形式の文字列を返す。
+     *
      * @param seq 生文字列
      * @return STRING型表記に変換された文字列
      */
@@ -258,7 +274,9 @@ public class JsString
 
     /**
      * {@inheritDoc}
-     * 常に{@link JsTypes#STRING}を返す。
+     *
+     * <p>常に{@link JsTypes#STRING}を返す。
+     *
      * @return {@inheritDoc}
      */
     @Override
@@ -268,7 +286,9 @@ public class JsString
 
     /**
      * 各種構造の出現をビジターに通知する。
-     * この実装ではthisの出現のみを通知する。
+     *
+     * <p>この実装ではthisの出現のみを通知する。
+     *
      * @param visitor {@inheritDoc}
      * @throws JsVisitException {@inheritDoc}
      */
@@ -281,7 +301,9 @@ public class JsString
 
     /**
      * {@inheritDoc}
-     * ハッシュ値を返す。
+     *
+     * <p>ハッシュ値を返す。
+     *
      * @return {@inheritDoc}
      */
     @Override
@@ -291,8 +313,11 @@ public class JsString
 
     /**
      * {@inheritDoc}
-     * 等価判定を行う。
-     * {@link java.lang.String#equals(Object)}に準ずる。
+     *
+     * <p>等価判定を行う。
+     *
+     * <p>{@link java.lang.String#equals(Object)}に準ずる。
+     *
      * @param obj {@inheritDoc}
      * @return {@inheritDoc}
      */
@@ -308,8 +333,11 @@ public class JsString
 
     /**
      * {@inheritDoc}
-     * STRING型Valueを昇順に順序付ける。
-     * {@link java.lang.String#compareTo(String)}に準ずる。
+     *
+     * <p>STRING型Valueを昇順に順序付ける。
+     *
+     * <p>{@link java.lang.String#compareTo(String)}に準ずる。
+     *
      * @param value {@inheritDoc}
      * @return {@inheritDoc}
      */
@@ -322,7 +350,9 @@ public class JsString
 
     /**
      * {@inheritDoc}
-     * 指定位置の文字を返す。
+     *
+     * <p>指定位置の文字を返す。
+     *
      * @param index {@inheritDoc}
      * @return {@inheritDoc}
      * @throws IndexOutOfBoundsException {@inheritDoc}
@@ -335,7 +365,9 @@ public class JsString
 
     /**
      * {@inheritDoc}
-     * 文字列長(char値総数)を返す。
+     *
+     * <p>文字列長(char値総数)を返す。
+     *
      * @return {@inheritDoc}
      */
     @Override
@@ -345,7 +377,9 @@ public class JsString
 
     /**
      * {@inheritDoc}
-     * 部分文字列を返す。
+     *
+     * <p>部分文字列を返す。
+     *
      * @param start {@inheritDoc}
      * @param end {@inheritDoc}
      * @return {@inheritDoc}
@@ -359,6 +393,7 @@ public class JsString
 
     /**
      * クォーテーションやエスケープ処理の施されていない生の文字列を返す。
+     *
      * @return 生の文字列
      */
     public String toRawString(){
@@ -367,8 +402,10 @@ public class JsString
 
     /**
      * {@inheritDoc}
-     * クォーテーションとエスケープ処理の施された文字列表記を生成する。
+     *
+     * <p>クォーテーションとエスケープ処理の施された文字列表記を生成する。
      * JSON表記の一部としての利用も可能。
+     *
      * @return {@inheritDoc}
      */
     @Override
index 3e00a13..35464f3 100644 (file)
@@ -33,6 +33,7 @@ public enum JsTypes {
 
     /**
      * コンストラクタ。
+     *
      * @param klass {@link java.lang.Class}型
      */
     private JsTypes(Class<? extends JsValue> klass){
@@ -49,6 +50,7 @@ public enum JsTypes {
 
     /**
      * {@link java.lang.Class}型から対応する型列挙を返す。
+     *
      * @param carg 任意のjava.lang.Class型変数
      * @return 型列挙。JSON型に由来しないクラスが指定されたときはnull
      * @throws NullPointerException 引数がnull
@@ -66,6 +68,7 @@ public enum JsTypes {
 
     /**
      * 対応する{@link java.lang.Class}型を返す。
+     *
      * @return java.lang.Class型
      */
     public Class<? extends JsValue> getJsClass(){
@@ -74,7 +77,9 @@ public enum JsTypes {
 
     /**
      * このJSON型が子要素を持ちうるか判定する。
-     * 子要素を持ちうるJSON型はOBJECT型かARRAY型のみ。
+     *
+     * <p>子要素を持ちうるJSON型はOBJECT型かARRAY型のみ。
+     *
      * @return 子要素を持ちうるならtrue
      */
     public boolean isComposition(){
index 9635760..4d38bfd 100644 (file)
@@ -14,16 +14,18 @@ public interface JsValue {
 
     /**
      * 対応するJSON型列挙を返す。
+     *
      * @return JSON型列挙
      */
-    JsTypes getJsTypes();
+    public abstract JsTypes getJsTypes();
 
     /**
      * 深さ優先探索を行い各種構造の出現をビジターに通知する。
+     *
      * @param visitor ビジター
      * @throws JsVisitException ビジターにより
-     * トラバース中断が判断された時に投げられる。
+     *  トラバース中断が判断された時に投げられる。
      */
-    void traverse(ValueVisitor visitor) throws JsVisitException;
+    public abstract void traverse(ValueVisitor visitor) throws JsVisitException;
 
 }
index e976c47..b866974 100644 (file)
@@ -9,12 +9,12 @@ package jp.sourceforge.jovsonz;
 
 /**
  * トラバース中断例外。
- * JSONツリー構造のトラバース処理の中断時に投げられる。
- * <p>
- * トラバース処理内部でIOExceptionなどのチェック例外が発生した場合、
+ *
+ * <p>JSONツリー構造のトラバース処理の中断時に投げられる。
+ *
+ * <p>トラバース処理内部でIOExceptionなどのチェック例外が発生した場合、
  * チェーン例外機構({@link java.lang.Throwable#getCause()} etc.)
  * を用いるのが望ましい。
- * </p>
  */
 @SuppressWarnings("serial")
 public class JsVisitException extends Exception {
@@ -29,6 +29,7 @@ public class JsVisitException extends Exception {
 
     /**
      * コンストラクタ。
+     *
      * @param message 詳細メッセージ。不明な場合はnull
      */
     public JsVisitException(String message){
@@ -38,6 +39,7 @@ public class JsVisitException extends Exception {
 
     /**
      * コンストラクタ。
+     *
      * @param message 詳細メッセージ。不明な場合はnull
      * @param cause 原因となった例外。不明な場合はnull
      */
@@ -48,6 +50,7 @@ public class JsVisitException extends Exception {
 
     /**
      * コンストラクタ。
+     *
      * @param cause 原因となった例外。不明な場合はnull
      */
     public JsVisitException(Throwable cause){
index e408c03..5c7c2c3 100644 (file)
@@ -29,6 +29,7 @@ public final class Json {
 
     /**
      * JSON最上位構造から文字出力を開始する。
+     *
      * @param appout 出力先
      * @param topValue OBJECT型かARRAY型のValue
      * @throws NullPointerException 引数がnull
@@ -57,9 +58,10 @@ public final class Json {
 
     /**
      * JSONの各種Valueを文字ソースから読み取る。
+     *
      * @param source 文字入力
      * @return 各種Value。
-     * 0個以上連続するホワイトスペースと共にソースの終わりに達したときはnull
+     *  0個以上連続するホワイトスペースと共にソースの終わりに達したときはnull
      * @throws IOException 入力エラー
      * @throws JsParseException パースエラー
      */
@@ -91,9 +93,10 @@ public final class Json {
 
     /**
      * JSONの最上位構造を文字ソースから読み取る。
+     *
      * @param source 文字入力ソース
      * @return JSON最上位構造。OBJECT型かARRAY型のいずれか。
-     * 入力が0個以上のホワイトスペースのみで埋められていた場合はnull。
+     *  入力が0個以上のホワイトスペースのみで埋められていた場合はnull。
      * @throws IOException 入力エラー
      * @throws JsParseException パースエラー
      */
@@ -113,9 +116,10 @@ public final class Json {
 
     /**
      * JSONの最上位構造を文字リーダから読み取る。
+     *
      * @param source 文字入力リーダ
      * @return JSON最上位構造。OBJECT型かARRAY型のいずれか。
-     * 入力が0個以上のホワイトスペースのみで埋められていた場合はnull。
+     *  入力が0個以上のホワイトスペースのみで埋められていた場合はnull。
      * @throws IOException 入力エラー
      * @throws JsParseException パースエラー
      */
index 3dc56cd..98ec664 100644 (file)
@@ -14,18 +14,15 @@ import java.util.Stack;
 
 /**
  * JSON文字出力用ビジター。
- * <p>
- * JSON Valueのトラバース時にこのビジターを指定すると、
+ *
+ * <p>JSON Valueのトラバース時にこのビジターを指定すると、
  * 事前に用意した文字出力先にJSONフォーマットで出力される。
- * </p>
- * <p>
- * 出力に伴う{@link java.io.IOException}は
+ *
+ * <p>出力に伴う{@link java.io.IOException}は
  * {@link JsVisitException}のチェーン例外となる。
- * </p>
- * <p>
- * 前回パースの成功/失敗に関わらず、
+ *
+ * <p>前回パースの成功/失敗に関わらず、
  * インスタンスの再利用時の挙動は保証されない。
- * </p>
  */
 class JsonAppender implements ValueVisitor {
 
@@ -51,6 +48,7 @@ class JsonAppender implements ValueVisitor {
 
     /**
      * コンストラクタ。
+     *
      * @param appout 出力先
      * @throws NullPointerException 引数がnull
      */
@@ -64,6 +62,7 @@ class JsonAppender implements ValueVisitor {
 
     /**
      * コンテキストをプッシュ退避する。
+     *
      * @param composition 現在のコンテキスト
      */
     protected void pushComposition(JsComposition<?> composition){
@@ -74,6 +73,7 @@ class JsonAppender implements ValueVisitor {
 
     /**
      * コンテキストをポップ復帰する。
+     *
      * @return スタックトップのコンテキスト
      * @throws EmptyStackException スタック構造が空
      */
@@ -85,6 +85,7 @@ class JsonAppender implements ValueVisitor {
 
     /**
      * ネスト構造の深さを返す。
+     *
      * @return 0から始まる深さ
      */
     protected int nestDepth(){
@@ -93,6 +94,7 @@ class JsonAppender implements ValueVisitor {
 
     /**
      * ネスト構造が空(深さ0)か判定する。
+     *
      * @return 空ならtrue
      */
     protected boolean isNestEmpty(){
@@ -101,6 +103,7 @@ class JsonAppender implements ValueVisitor {
 
     /**
      * ネスト後、一つでも子要素が出力されたか判定する。
+     *
      * @return 子要素が出力されていればtrue
      */
     protected boolean hasChildDumped(){
@@ -120,6 +123,7 @@ class JsonAppender implements ValueVisitor {
 
     /**
      * 現在のコンテキストがARRAY型配列要素出力中の状態か否か判定する。
+     *
      * @return 現在のコンテキストがARRAY型配列要素出力中ならtrue
      */
     protected boolean isArrayContext(){
@@ -135,8 +139,10 @@ class JsonAppender implements ValueVisitor {
 
     /**
      * 1文字出力。
+     *
      * @param ch 文字
      * @throws JsVisitException 出力エラー。
+     *
      * @see java.lang.Appendable#append(char)
      */
     protected void append(char ch) throws JsVisitException{
@@ -151,8 +157,10 @@ class JsonAppender implements ValueVisitor {
 
     /**
      * 文字列出力。
+     *
      * @param seq 文字列
      * @throws JsVisitException 出力エラー。
+     *
      * @see java.lang.Appendable#append(CharSequence)
      */
     protected void append(CharSequence seq) throws JsVisitException{
@@ -167,7 +175,9 @@ class JsonAppender implements ValueVisitor {
 
     /**
      * 可能であれば出力先をフラッシュする。
+     *
      * @throws JsVisitException 出力エラー
+     *
      * @see java.io.Flushable
      */
     protected void flush() throws JsVisitException{
@@ -184,6 +194,7 @@ class JsonAppender implements ValueVisitor {
 
     /**
      * トラバース中断の原因となったIOExceptionを返す。
+     *
      * @return トラバース中断の原因となったIOException。なければnull。
      */
     public IOException getIOException(){
@@ -192,6 +203,7 @@ class JsonAppender implements ValueVisitor {
 
     /**
      * トラバース中断の原因となったIOExceptionがあるか判定する。
+     *
      * @return トラバース中断の原因となったIOExceptionがあればtrue
      */
     public boolean hasIOException(){
@@ -201,6 +213,7 @@ class JsonAppender implements ValueVisitor {
 
     /**
      * pairの名前を出力する。
+     *
      * @param name pair名
      * @throws JsVisitException 出力エラー
      */
@@ -216,6 +229,7 @@ class JsonAppender implements ValueVisitor {
 
     /**
      * pair区切りコロンを出力する。
+     *
      * @throws JsVisitException 出力エラー
      */
     protected void putPairSeparator() throws JsVisitException{
@@ -225,7 +239,9 @@ class JsonAppender implements ValueVisitor {
 
     /**
      * 要素間区切りコンマを出力する。
-     * JSONでは最後の要素の後にコンマを出力してはいけない。
+     *
+     * <p>JSONでは最後の要素の後にコンマを出力してはいけない。
+     *
      * @throws JsVisitException 出力エラー
      */
     protected void putComma() throws JsVisitException{
@@ -235,6 +251,7 @@ class JsonAppender implements ValueVisitor {
 
     /**
      * 改行を出力する。
+     *
      * @throws JsVisitException 出力エラー。
      */
     protected void putNewLine() throws JsVisitException{
@@ -244,6 +261,7 @@ class JsonAppender implements ValueVisitor {
 
     /**
      * インデントを出力する。
+     *
      * @throws JsVisitException 出力エラー
      */
     protected void putIndent() throws JsVisitException{
@@ -256,6 +274,7 @@ class JsonAppender implements ValueVisitor {
 
     /**
      * OBJECT及びARRAY型の最初の要素の前部分を出力する。
+     *
      * @throws JsVisitException 出力エラー
      */
     protected void putBefore1stElement() throws JsVisitException{
@@ -266,6 +285,7 @@ class JsonAppender implements ValueVisitor {
 
     /**
      * OBJECT及びARRAY型の要素間区切りを出力する。
+     *
      * @throws JsVisitException 出力エラー
      */
     protected void putBetweenElement() throws JsVisitException{
@@ -277,6 +297,7 @@ class JsonAppender implements ValueVisitor {
 
     /**
      * OBJECT及びARRAY型の最後の要素の後部分を出力する。
+     *
      * @throws JsVisitException 出力エラー
      */
     protected void putAfterLastElement() throws JsVisitException{
@@ -287,6 +308,7 @@ class JsonAppender implements ValueVisitor {
 
     /**
      * OBJECT及びARRAY型の空要素を出力する。
+     *
      * @throws JsVisitException 出力エラー
      */
     protected void putEmptyElement() throws JsVisitException{
@@ -296,6 +318,7 @@ class JsonAppender implements ValueVisitor {
 
     /**
      * パース前の出力を行う。
+     *
      * @throws JsVisitException 出力エラー
      */
     protected void putBeforeParse() throws JsVisitException{
@@ -305,6 +328,7 @@ class JsonAppender implements ValueVisitor {
 
     /**
      * パース後の出力を行う。
+     *
      * @throws JsVisitException 出力エラー
      */
     protected void putAfterParse() throws JsVisitException{
@@ -314,7 +338,9 @@ class JsonAppender implements ValueVisitor {
 
     /**
      * {@inheritDoc}
-     * Valueの出力を行う。
+     *
+     * <p>Valueの出力を行う。
+     *
      * @param value {@inheritDoc}
      * @throws JsVisitException {@inheritDoc}
      */
@@ -347,7 +373,9 @@ class JsonAppender implements ValueVisitor {
 
     /**
      * {@inheritDoc}
-     * OBJECT内の各pairの名前を出力する。
+     *
+     * <p>OBJECT内の各pairの名前を出力する。
+     *
      * @param pairName {@inheritDoc}
      * @throws JsVisitException {@inheritDoc}
      */
@@ -367,7 +395,9 @@ class JsonAppender implements ValueVisitor {
 
     /**
      * {@inheritDoc}
-     * 閉じ括弧を出力する。
+     *
+     * <p>閉じ括弧を出力する。
+     *
      * @param closed {@inheritDoc}
      * @throws JsVisitException {@inheritDoc}
      */
@@ -405,7 +435,9 @@ class JsonAppender implements ValueVisitor {
 
         /**
          * コンストラクタ。
-         * 子要素が出力された事実は無い状態で始まる。
+         *
+         * <p>子要素が出力された事実は無い状態で始まる。
+         *
          * @param composition レベルに対応するOBJECTもしくはARRAY型Value
          */
         DumpContext(JsComposition<?> composition){
@@ -416,6 +448,7 @@ class JsonAppender implements ValueVisitor {
 
         /**
          * このレベルに対応するJSON集約型を返す。
+         *
          * @return OBJECTもしくはARRAY型Value
          */
         JsComposition<?> getComposition(){
@@ -424,6 +457,7 @@ class JsonAppender implements ValueVisitor {
 
         /**
          * このレベルで子要素出力が行われたか判定する。
+         *
          * @return 子要素出力が行われていたならtrue
          */
         boolean hasChildDumped(){
index 758c007..c2a9ebb 100644 (file)
@@ -14,9 +14,12 @@ import java.io.StringReader;
 
 /**
  * JSONデータ用入力ソース。
- * 先読みした文字のプッシュバック機能と行番号のカウント機能を有する。
- * 行番号は1から始まる。
+ *
+ * <p>先読みした文字のプッシュバック機能と行番号のカウント機能を有する。
+ *
+ * <p>行番号は1から始まる。
  * 行と行はLF('\n')で区切られるものとする。(※CRは無視)
+ *
  * @see java.io.PushbackReader
  * @see java.io.LineNumberReader
  */
@@ -48,6 +51,7 @@ class JsonSource implements Closeable {
 
     /**
      * コンストラクタ。
+     *
      * @param reader 文字入力リーダー
      * @throws NullPointerException 引数がnull
      */
@@ -60,8 +64,11 @@ class JsonSource implements Closeable {
 
     /**
      * コンストラクタ。
-     * 任意の文字列を入力ソースとする。
+     *
+     * <p>任意の文字列を入力ソースとする。
+     *
      * @param text 文字列
+     *
      * @see java.io.StringReader
      */
     public JsonSource(CharSequence text){
@@ -71,6 +78,7 @@ class JsonSource implements Closeable {
 
     /**
      * JSON規格のwhitespace文字を判定する。
+     *
      * @param ch 判定対象文字
      * @return whitespaceならtrue
      */
@@ -89,8 +97,9 @@ class JsonSource implements Closeable {
 
     /**
      * JSON規格のwhitespace文字を判定する。
+     *
      * @param ch 判定対象文字。
-     * 上位16bitがゼロでなければwhitespaceと判定されない。
+     *  上位16bitがゼロでなければwhitespaceと判定されない。
      * @return whitespaceならtrue。引数が負の場合はfalse。
      */
     public static boolean isWhitespace(int ch){
@@ -101,6 +110,7 @@ class JsonSource implements Closeable {
 
     /**
      * プッシュバック可能な残り文字数を返す。
+     *
      * @return プッシュバック可能な残り文字数
      */
     public int getPushBackSpared(){
@@ -109,6 +119,7 @@ class JsonSource implements Closeable {
 
     /**
      * 現時点での行番号を返す。
+     *
      * @return 1から始まる行番号
      */
     public int getLineNumber(){
@@ -117,8 +128,10 @@ class JsonSource implements Closeable {
 
     /**
      * 1文字読み込む。
+     *
      * @return 読み込んだ文字。入力が終わっている場合は負の値。
      * @throws IOException 入力エラー
+     *
      * @see java.io.Reader#read()
      */
     public int read() throws IOException{
@@ -138,6 +151,7 @@ class JsonSource implements Closeable {
 
     /**
      * 入力末端ではないと仮定して1文字読み込む。
+     *
      * @return 読み込んだ文字。
      * @throws IOException 入力エラー
      * @throws JsParseException 入力が終わっている
@@ -153,8 +167,10 @@ class JsonSource implements Closeable {
 
     /**
      * 入力が文字列とマッチするか判定する。
-     * 失敗しても読み戻しは行われない。
+     *
+     * <p>失敗しても読み戻しは行われない。
      * 長さ0の文字列は必ずマッチに成功する。
+     *
      * @param seq マッチ対象文字列
      * @return マッチすればtrue
      * @throws IOException 入力エラー
@@ -171,7 +187,9 @@ class JsonSource implements Closeable {
 
     /**
      * 1文字読み戻す。
-     * 行数カウントへも反映される。
+     *
+     * <p>行数カウントへも反映される。
+     *
      * @param ch 読み戻す文字
      * @throws IOException バッファあふれもしくはクローズ済み
      */
@@ -191,8 +209,11 @@ class JsonSource implements Closeable {
 
     /**
      * 1文字読み戻す。
-     * char型にキャストした引数が次回読み込まれる。
-     * 行数カウントへも反映される。
+     *
+     * <p>char型にキャストした引数が次回読み込まれる。
+     *
+     * <p>行数カウントへも反映される。
+     *
      * @param ch 読み戻す文字。負の符号を含む上位16bitは無視される。
      * @throws IOException バッファあふれもしくはクローズ済み
      */
@@ -203,6 +224,7 @@ class JsonSource implements Closeable {
 
     /**
      * whitespace文字を読み飛ばす。
+     *
      * @throws IOException 入力エラー
      */
     public void skipWhiteSpace() throws IOException{
@@ -220,6 +242,7 @@ class JsonSource implements Closeable {
 
     /**
      * まだ読み込めるデータがあるか判定する。
+     *
      * @return まだ読めるデータがあればtrue
      * @throws IOException IO入力エラー
      */
@@ -232,8 +255,11 @@ class JsonSource implements Closeable {
 
     /**
      * コンストラクタで指定されたReaderを閉じる。
-     * クローズ後の読み込みおよび読み戻し動作は全て例外を投げる。
+     *
+     * <p>クローズ後の読み込みおよび読み戻し動作は全て例外を投げる。
+     *
      * @throws IOException 入出力エラー
+     *
      * @see java.io.Closeable
      */
     @Override
index 1786e34..cfe99ae 100644 (file)
@@ -13,6 +13,7 @@ import java.util.NoSuchElementException;
 /**
  * 既存の{@link java.util.Iterator}および{@link java.lang.Iterable}に対し、
  * 削除のできない変更操作不可なIteratorラッパを提供する。
+ *
  * @param <E> コレクション内の要素型
  */
 public class UnmodIterator<E> implements Iterator<E> {
@@ -21,6 +22,7 @@ public class UnmodIterator<E> implements Iterator<E> {
 
     /**
      * コンストラクタ。
+     *
      * @param iterator ラップ元Iterator
      * @throws NullPointerException 引数がnull
      */
@@ -33,6 +35,7 @@ public class UnmodIterator<E> implements Iterator<E> {
 
     /**
      * 削除操作不可なラップIteratorを生成する。
+     *
      * @param <E> コレクション内の要素型
      * @param iterator ラップ元Iterator
      * @return 変更操作不可なIterator
@@ -46,6 +49,7 @@ public class UnmodIterator<E> implements Iterator<E> {
 
     /**
      * 削除操作不可なラップIterableを生成する。
+     *
      * @param <E> コレクション内の要素型
      * @param iterable ラップ元Iterable
      * @return 変更操作不可なIteratorを生成するIterable
@@ -66,6 +70,7 @@ public class UnmodIterator<E> implements Iterator<E> {
 
     /**
      * Iterableに由来する削除操作不可なラップIteratorを生成する。
+     *
      * @param <E> コレクション内の要素型
      * @param iterable Iterable
      * @return 変更操作不可なIterator
@@ -80,7 +85,9 @@ public class UnmodIterator<E> implements Iterator<E> {
 
     /**
      * {@inheritDoc}
-     * 反復子に次の要素があるか判定する。
+     *
+     * <p>反復子に次の要素があるか判定する。
+     *
      * @return {@inheritDoc}
      */
     @Override
@@ -90,7 +97,9 @@ public class UnmodIterator<E> implements Iterator<E> {
 
     /**
      * {@inheritDoc}
-     * 反復子の次の要素を取得する。
+     *
+     * <p>反復子の次の要素を取得する。
+     *
      * @return {@inheritDoc}
      * @throws NoSuchElementException これ以上要素はない。
      */
@@ -101,7 +110,9 @@ public class UnmodIterator<E> implements Iterator<E> {
 
     /**
      * {@inheritDoc}
-     * 必ず失敗し例外を投げる。
+     *
+     * <p>必ず失敗し例外を投げる。
+     *
      * @throws UnsupportedOperationException {@inheritDoc}
      */
     @Override
index e04c0ad..1cd8a76 100644 (file)
@@ -14,29 +14,34 @@ public interface ValueVisitor {
 
     /**
      * Value登場の通知を受け取る。
+     *
      * @param value JSON Value
      * @throws JsVisitException ビジターがトラバース中止を判断した際に
-     * 投げられる。
+     *  投げられる。
      */
-    void visitValue(JsValue value) throws JsVisitException;
+    public abstract void visitValue(JsValue value) throws JsVisitException;
 
     /**
      * OBJECT型内部のPAIR名登場の通知を受け取る。
-     * PAIRの示すValueの出現する直前に通知が行われる。
+     *
+     * <p>PAIRの示すValueの出現する直前に通知が行われる。
+     *
      * @param pairName PAIR名
      * @throws JsVisitException ビジターがトラバース中止を判断した際に
-     * 投げられる。
+     *  投げられる。
      */
-    void visitPairName(String pairName) throws JsVisitException;
+    public abstract void visitPairName(String pairName) throws JsVisitException;
 
     /**
      * 括弧構造終了の通知を受け取る。
-     * <p>括弧構造を持つJSON型は、OBJECT型かARRAY型のみ。</p>
+     *
+     * <p>括弧構造を持つJSON型は、OBJECT型かARRAY型のみ。
+     *
      * @param composition OBJECT型かARRAY型のいずれかのValue
      * @throws JsVisitException ビジターがトラバース中止を判断した際に
-     * 投げられる。
+     *  投げられる。
      */
-    void visitCompositionClose(JsComposition<?> composition)
+    public abstract void visitCompositionClose(JsComposition<?> composition)
             throws JsVisitException;
 
 }
index 7176733..b4d4998 100644 (file)
@@ -43,7 +43,8 @@
  *
  * <hr>
  *
- * <h1>JSON基本型</h1>
+ * <p>JSON基本型
+ *
  * <dl>
  * <dt>OBJECT型</dt>
  * <dd>{  "Name" : "Joe",  "Age" : 88  }</dd>