X.XXX.X (20XX-XX-XX)
・Maven3対応。
+ ・JDK1.7が必須となる。
1.101.2 (2011-05-13)
・初回リリース。
=== 実行環境 ===
- - JovsonzはJava言語(JLS3)で記述されたプログラムです。
- - JovsonzはJRE1.5に準拠したJava実行環境で利用できるように作られています。
- 原則として、JRE1.5に準拠した実行系であれば、プラットフォームを選びません。
+ - JovsonzはJava言語(JavaSE7)で記述されたプログラムです。
+ - JovsonzはJRE1.7に準拠したJava実行環境で利用できるように作られています。
+ 原則として、JRE1.7に準拠した実行系であれば、プラットフォームを選びません。
=== 開発プロジェクト運営元 ===
<properties>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
- <maven.compiler.source>1.5</maven.compiler.source>
- <maven.compiler.target>1.5</maven.compiler.target>
+ <maven.compiler.source>1.7</maven.compiler.source>
+ <maven.compiler.target>1.7</maven.compiler.target>
<maven.compiler.showDeprecation>true</maven.compiler.showDeprecation>
<maven.compiler.showWarnings>true</maven.compiler.showWarnings>
<version>[2.2,)</version>
</requireMavenVersion>
<requireJavaVersion>
- <version>[1.5,)</version>
+ <version>[1.7,)</version>
</requireJavaVersion>
</rules>
</configuration>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
- <source>1.5</source> <!-- for NetBeans IDE -->
- <target>1.5</target>
+ <source>1.7</source> <!-- for NetBeans IDE -->
+ <target>1.7</target>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
<compilerArguments>
private static final String ERRMSG_NOELEM =
"missing element in ARRAY";
- private final List<JsValue> valueList = new LinkedList<JsValue>();
+ private final List<JsValue> valueList = new LinkedList<>();
private boolean changed = false;
/**
for(JsValue value : this.valueList){
if( ! (value instanceof JsComposition) ) continue;
- JsComposition composition = (JsComposition) value;
+ JsComposition<?> composition = (JsComposition) value;
if(composition.hasChanged()) return true;
}
for(JsValue value : this.valueList){
if( ! (value instanceof JsComposition) ) continue;
- JsComposition composition = (JsComposition) value;
+ JsComposition<?> composition = (JsComposition) value;
composition.setUnchanged();
}
* @return 反復子イテレータ
* @see UnmodIterator
*/
+ @Override
public Iterator<JsValue> iterator(){
return UnmodIterator.unmodIterator(this.valueList);
}
"no hash value in OBJECT";
private final Map<String, JsPair> pairMap =
- new TreeMap<String, JsPair>();
+ new TreeMap<>();
private final Collection<JsPair> pairCollection = this.pairMap.values();
private boolean changed = false;
for(JsPair pair : this){
JsValue value = pair.getValue();
if( ! (value instanceof JsComposition) ) continue;
- JsComposition composition = (JsComposition) value;
+ JsComposition<?> composition = (JsComposition) value;
if(composition.hasChanged()) return true;
}
for(JsPair pair : this){
JsValue value = pair.getValue();
if( ! (value instanceof JsComposition) ) continue;
- JsComposition composition = (JsComposition) value;
+ JsComposition<?> composition = (JsComposition) value;
composition.setUnchanged();
}
* @return PAIRリスト
*/
public List<JsPair> getPairList(){
- List<JsPair> result = new ArrayList<JsPair>(this.pairMap.size());
+ List<JsPair> result = new ArrayList<>(this.pairMap.size());
for(JsPair pair : this){
result.add(pair);
* PAIR出現順序は未定義。
* @return 反復子イテレータ
*/
+ @Override
public Iterator<JsPair> iterator(){
return UnmodIterator.unmodIterator(this.pairCollection);
}
* @throws JsVisitException 何らかの理由で処理中断
* @throws IOException 出力エラー
*/
- public static void dumpJson(Appendable appout, JsComposition topValue)
+ public static void dumpJson(Appendable appout, JsComposition<?> topValue)
throws NullPointerException,
JsVisitException,
IOException {
* @throws IOException 入力エラー
* @throws JsParseException パースエラー
*/
- private static JsComposition parseJson(JsonSource source)
+ private static JsComposition<?> parseJson(JsonSource source)
throws IOException, JsParseException{
JsValue topValue = parseValue(source);
if(topValue == null) return null;
throw new JsParseException(JsParseException.ERRMSG_INVALIDROOT,
source.getLineNumber() );
}
- JsComposition result = (JsComposition) topValue;
+ JsComposition<?> result = (JsComposition) topValue;
return result;
}
* @throws IOException 入力エラー
* @throws JsParseException パースエラー
*/
- public static JsComposition parseJson(Reader source)
+ public static JsComposition<?> parseJson(Reader source)
throws IOException, JsParseException{
JsonSource jsonSource = new JsonSource(source);
return parseJson(jsonSource);
private final Appendable appout;
private final Stack<DumpContext> contextStack =
- new Stack<DumpContext>();
+ new Stack<>();
private IOException ioException = null;
* コンテキストをプッシュ退避する。
* @param composition 現在のコンテキスト
*/
- protected void pushComposition(JsComposition composition){
+ protected void pushComposition(JsComposition<?> composition){
DumpContext context = new DumpContext(composition);
this.contextStack.push(context);
return;
* @return スタックトップのコンテキスト
* @throws EmptyStackException スタック構造が空
*/
- protected JsComposition popComposition() throws EmptyStackException{
+ protected JsComposition<?> popComposition() throws EmptyStackException{
DumpContext context = this.contextStack.pop();
- JsComposition composition = context.getComposition();
+ JsComposition<?> composition = context.getComposition();
return composition;
}
if(isNestEmpty()) return false;
DumpContext context = this.contextStack.peek();
- JsComposition composition = context.getComposition();
+ JsComposition<?> composition = context.getComposition();
JsTypes type = composition.getJsTypes();
if(type != JsTypes.ARRAY) return false;
if(type.isComposition()){
assert value instanceof JsComposition;
- JsComposition composition = (JsComposition) value;
+ JsComposition<?> composition = (JsComposition) value;
pushComposition(composition);
}
* @throws JsVisitException {@inheritDoc}
*/
@Override
- public void visitCompositionClose(JsComposition closed)
+ public void visitCompositionClose(JsComposition<?> closed)
throws JsVisitException{
boolean hasDumped = hasChildDumped();
- JsComposition composition = popComposition();
+ JsComposition<?> composition = popComposition();
if(hasDumped) putAfterLastElement();
else putEmptyElement();
* ネストされた各JSON集約型コンテキストの出力状況。
*/
private static class DumpContext{
- private final JsComposition composition;
+ private final JsComposition<?> composition;
private boolean childDumped;
/**
* 子要素が出力された事実は無い状態で始まる。
* @param composition レベルに対応するOBJECTもしくはARRAY型Value
*/
- DumpContext(JsComposition composition){
+ DumpContext(JsComposition<?> composition){
this.composition = composition;
this.childDumped = false;
return;
* このレベルに対応するJSON集約型を返す。
* @return OBJECTもしくはARRAY型Value
*/
- JsComposition getComposition(){
+ JsComposition<?> getComposition(){
return this.composition;
}
* @throws IOException 入出力エラー
* @see java.io.Closeable
*/
+ @Override
public void close() throws IOException{
this.closed = true;
this.stackPt = 0;
public static <E> Iterator<E> wrapUnmod(Iterator<E> iterator)
throws NullPointerException{
if(iterator == null) throw new NullPointerException();
- return new UnmodIterator<E>(iterator);
+ return new UnmodIterator<>(iterator);
}
/**
if(iterable == null) throw new NullPointerException();
final Iterable<E> innerArg = iterable;
return new Iterable<E>(){
+ @Override
public Iterator<E> iterator(){
Iterator<E> iterator = innerArg.iterator();
- return new UnmodIterator<E>(iterator);
+ return new UnmodIterator<>(iterator);
}
};
}
throws NullPointerException{
if(iterable == null) throw new NullPointerException();
Iterator<E> iterator = iterable.iterator();
- return new UnmodIterator<E>(iterator);
+ return new UnmodIterator<>(iterator);
}
/**
* @throws JsVisitException ビジターがトラバース中止を判断した際に
* 投げられる。
*/
- void visitCompositionClose(JsComposition composition)
+ void visitCompositionClose(JsComposition<?> composition)
throws JsVisitException;
}
return;
}
- public void visitCompositionClose(JsComposition composite)
+ public void visitCompositionClose(JsComposition<?> composite)
throws JsVisitException{
visited.add(composite);
return;
throw new JsVisitException();
}
- public void visitCompositionClose(JsComposition composite)
+ public void visitCompositionClose(JsComposition<?> composite)
throws JsVisitException{
throw new JsVisitException();
}
throw new JsVisitException();
}
- public void visitCompositionClose(JsComposition composite)
+ public void visitCompositionClose(JsComposition<?> composite)
throws JsVisitException{
throw new JsVisitException();
}
throw new JsVisitException();
}
- public void visitCompositionClose(JsComposition composite)
+ public void visitCompositionClose(JsComposition<?> composite)
throws JsVisitException{
throw new JsVisitException();
}
throw new JsVisitException();
}
- public void visitCompositionClose(JsComposition composite)
+ public void visitCompositionClose(JsComposition<?> composite)
throws JsVisitException{
throw new JsVisitException();
}
return;
}
- public void visitCompositionClose(JsComposition composite)
+ public void visitCompositionClose(JsComposition<?> composite)
throws JsVisitException{
visited.add(composite);
return;
throw new JsVisitException();
}
- public void visitCompositionClose(JsComposition composite)
+ public void visitCompositionClose(JsComposition<?> composite)
throws JsVisitException{
throw new JsVisitException();
}
System.out.println("getIOException");
Reader reader = new StringReader("[1,2,3,4,5]");
- JsComposition root = Json.parseJson(reader);
+ JsComposition<?> root = Json.parseJson(reader);
Appendable app = new TroubleAppender(3);
JsonAppender appender = new JsonAppender(app);
String HASHSEP = "\u0020:\u0020";
Reader reader;
- JsComposition root;
+ JsComposition<?> root;
StringBuilder dump = new StringBuilder();
reader = new StringReader("{}");
System.out.println("parseJson");
Reader reader;
- JsComposition root;
+ JsComposition<?> root;
reader = new StringReader("{}");
root = Json.parseJson(reader);
public void tearDown() {
}
- private void assert3ListAndIterator(List list, Iterator unmod){
+ private void assert3ListAndIterator(List<?> list, Iterator<?> unmod){
assertEquals(3, list.size());
assertTrue(unmod.hasNext());