mirror of
https://github.com/plexusorg/toml4j.git
synced 2024-12-28 03:04:14 +00:00
parent
a5e34f464f
commit
ab05197c9d
5 changed files with 65 additions and 15 deletions
|
@ -1,5 +1,11 @@
|
|||
# toml4j Changelog
|
||||
|
||||
## 0.6.0 / 2016-05-09
|
||||
|
||||
## Added
|
||||
|
||||
* Toml#toMap() convenience method (thanks to __[andytill](https://github.com/andytill)__ and __[Gyscos](https://github.com/Gyscos))
|
||||
|
||||
## 0.5.1 / 2016-01-24
|
||||
|
||||
### Fixed
|
||||
|
|
23
README.md
23
README.md
|
@ -41,6 +41,14 @@ An exception is thrown if the source is not valid TOML.
|
|||
|
||||
The data can then be accessed either by converting the Toml instance to your own class or by accessing tables and keys by name.
|
||||
|
||||
### Maps
|
||||
|
||||
`Toml#toMap()` is a quick way to turn a Toml instance into a `Map<String, Object>`.
|
||||
|
||||
```java
|
||||
Map<String, Object> map = new Toml().read("a=1").toMap();
|
||||
```
|
||||
|
||||
### Custom classes
|
||||
|
||||
`Toml#to(Class<T>)` maps a Toml instance to the given class.
|
||||
|
@ -214,13 +222,6 @@ for (Map.Entry<String, Object> entry : myToml.entrySet()) {
|
|||
}
|
||||
```
|
||||
|
||||
You can also convert a Toml instance to a `Map<String, Object>`:
|
||||
|
||||
```java
|
||||
Toml toml = new Toml().read("a = 1");
|
||||
Map<String, Object> map = toml.to(Map.class);
|
||||
```
|
||||
|
||||
`Toml#contains(String)` verifies that the instance contains a key of any type (primitive, table or array of tables) of the given name. `Toml#containsPrimitive(String)`, `Toml#containsTable(String)` and `Toml#containsTableArray(String)` return true only if a key exists and is a primitive, table or array of tables, respectively. Compound keys can be used to check existence at any depth.
|
||||
|
||||
|
||||
|
@ -245,7 +246,15 @@ class AClass {
|
|||
|
||||
TomlWriter tomlWriter = new TomlWriter();
|
||||
AClass obj = new AClass();
|
||||
|
||||
Map<String, Object> map = new HashMap<String, Object>();
|
||||
int[] intArray = { 2, 3 };
|
||||
map.put("anInt", 1);
|
||||
map.put("anArray", intArray);
|
||||
|
||||
String tomlString = tomlWriter.write(obj);
|
||||
tomlString = tomlWriter.write(map);
|
||||
|
||||
tomlWriter.write(obj, new File("path/to/file"));
|
||||
tomlWriter.write(obj, new ByteArrayOutputStream());
|
||||
tomlWriter.write(obj, new OutputStreamWriter(anOutputStream));
|
||||
|
|
|
@ -302,6 +302,16 @@ public class Toml {
|
|||
* @return A new instance of targetClass.
|
||||
*/
|
||||
public <T> T to(Class<T> targetClass) {
|
||||
JsonElement json = DEFAULT_GSON.toJsonTree(toMap());
|
||||
|
||||
if (targetClass == JsonElement.class) {
|
||||
return targetClass.cast(json);
|
||||
}
|
||||
|
||||
return DEFAULT_GSON.fromJson(json, targetClass);
|
||||
}
|
||||
|
||||
public Map<String, Object> toMap() {
|
||||
HashMap<String, Object> valuesCopy = new HashMap<String, Object>(values);
|
||||
|
||||
if (defaults != null) {
|
||||
|
@ -311,14 +321,8 @@ public class Toml {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
JsonElement json = DEFAULT_GSON.toJsonTree(valuesCopy);
|
||||
|
||||
if (targetClass == JsonElement.class) {
|
||||
return targetClass.cast(json);
|
||||
}
|
||||
|
||||
return DEFAULT_GSON.fromJson(json, targetClass);
|
||||
|
||||
return valuesCopy;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -267,6 +267,11 @@ public class TomlWriterTest {
|
|||
|
||||
assertEquals("[b.c]\nanInt = 1\n", new TomlWriter().write(new A()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void should_write_map() throws Exception {
|
||||
assertEquals("a = 1\n", new TomlWriter().write(new Toml().read("a = 1").toMap()));
|
||||
}
|
||||
|
||||
class Base {
|
||||
protected int anInt = 2;
|
||||
|
|
26
src/test/java/com/moandjiezana/toml/Toml_ToMapTest.java
Normal file
26
src/test/java/com/moandjiezana/toml/Toml_ToMapTest.java
Normal file
|
@ -0,0 +1,26 @@
|
|||
package com.moandjiezana.toml;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
public class Toml_ToMapTest {
|
||||
|
||||
@Test
|
||||
public void should_convert_simple_values() {
|
||||
Map<String, Object> toml = new Toml().read("a = 1").toMap();
|
||||
|
||||
Assert.assertEquals(Long.valueOf(1), toml.get("a"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("unchecked")
|
||||
public void should_covert_table() throws Exception {
|
||||
Map<String, Object> toml = new Toml().read("c = 2\n [a]\n b = 1").toMap();
|
||||
|
||||
Assert.assertEquals(Long.valueOf(1), ((Map<String, Object>) toml.get("a")).get("b"));
|
||||
Assert.assertEquals(Long.valueOf(2), toml.get("c"));
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue