mirror of
https://github.com/plexusorg/toml4j.git
synced 2024-12-29 11:42:15 +00:00
Added Toml#parse(Reader) and Toml#parse(InputStream)
This commit is contained in:
parent
86257278b7
commit
b0a8de8b19
3 changed files with 73 additions and 11 deletions
|
@ -29,7 +29,7 @@ MyClass myClass = toml.to(MyClass.class);
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
A `com.moandjiezana.toml.Toml` instance is populated by calling one of `parse(File)` or `parse(String)`.
|
A `com.moandjiezana.toml.Toml` instance is populated by calling one of `parse(File)`, `parse(InputStream)`, `parse(Reader)` or `parse(String)`.
|
||||||
|
|
||||||
````java
|
````java
|
||||||
Toml toml = new Toml().parse("a=1");
|
Toml toml = new Toml().parse("a=1");
|
||||||
|
|
|
@ -1,14 +1,19 @@
|
||||||
package com.moandjiezana.toml;
|
package com.moandjiezana.toml;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
|
import java.io.FileReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.io.Reader;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Scanner;
|
|
||||||
|
|
||||||
import org.parboiled.Parboiled;
|
import org.parboiled.Parboiled;
|
||||||
import org.parboiled.parserunners.RecoveringParseRunner;
|
import org.parboiled.parserunners.RecoveringParseRunner;
|
||||||
|
@ -53,27 +58,60 @@ public class Toml {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Populates the current Toml instance with values from tomlString.
|
* Populates the current Toml instance with values from file.
|
||||||
*
|
*
|
||||||
* @param file
|
* @param file
|
||||||
* @return this instance
|
* @return this instance
|
||||||
* @throws IllegalStateException If file contains invalid TOML
|
* @throws IllegalStateException If file contains invalid TOML
|
||||||
*/
|
*/
|
||||||
public Toml parse(File file) {
|
public Toml parse(File file) {
|
||||||
Scanner scanner = null;
|
|
||||||
try {
|
try {
|
||||||
scanner = new Scanner(file);
|
return parse(new FileReader(file));
|
||||||
|
|
||||||
return parse(scanner.useDelimiter("\\Z").next());
|
|
||||||
} catch (FileNotFoundException e) {
|
} catch (FileNotFoundException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
} finally {
|
|
||||||
if (scanner != null) {
|
|
||||||
scanner.close();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Populates the current Toml instance with values from inputStream.
|
||||||
|
*
|
||||||
|
* @param inputStream
|
||||||
|
* @return this instance
|
||||||
|
* @throws IllegalStateException If file contains invalid TOML
|
||||||
|
*/
|
||||||
|
public Toml parse(InputStream inputStream) {
|
||||||
|
return parse(new InputStreamReader(inputStream));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Populates the current Toml instance with values from reader.
|
||||||
|
*
|
||||||
|
* @param reader
|
||||||
|
* @return this instance
|
||||||
|
* @throws IllegalStateException If file contains invalid TOML
|
||||||
|
*/
|
||||||
|
public Toml parse(Reader reader) {
|
||||||
|
BufferedReader bufferedReader = null;
|
||||||
|
try {
|
||||||
|
bufferedReader = new BufferedReader(reader);
|
||||||
|
|
||||||
|
StringBuilder w = new StringBuilder();
|
||||||
|
String line = bufferedReader.readLine();
|
||||||
|
while (line != null) {
|
||||||
|
w.append(line).append('\n');
|
||||||
|
line = bufferedReader.readLine();
|
||||||
|
}
|
||||||
|
parse(w.toString());
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
} finally {
|
||||||
|
try {
|
||||||
|
bufferedReader.close();
|
||||||
|
} catch (IOException e) {}
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Populates the current Toml instance with values from tomlString.
|
* Populates the current Toml instance with values from tomlString.
|
||||||
*
|
*
|
||||||
|
|
24
src/test/java/com/moandjiezana/toml/TomlParseTest.java
Normal file
24
src/test/java/com/moandjiezana/toml/TomlParseTest.java
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
package com.moandjiezana.toml;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
|
import java.io.StringReader;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
public class TomlParseTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void should_parse_input_stream() throws Exception {
|
||||||
|
Toml toml = new Toml().parse(getClass().getResourceAsStream("should_load_from_file.toml"));
|
||||||
|
|
||||||
|
assertEquals("value", toml.getString("key"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void should_parse_reader() throws Exception {
|
||||||
|
Toml toml = new Toml().parse(new StringReader("key=1"));
|
||||||
|
|
||||||
|
assertEquals(1, toml.getLong("key").intValue());
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue