public class YamlBuilder extends GroovyObjectSupport implements Writable
Constructor and Description |
---|
YamlBuilder() |
Modifier and Type | Method and Description |
---|---|
Object |
call(Closure c)
A closure passed to a YAML builder will create a root YAML object
|
Object |
call(Collection coll,
Closure c)
Delegates to
call(Iterable, Closure) |
Object |
call(Iterable coll,
Closure c)
A collection and closure passed to a YAML builder will create a root YAML array applying
the closure to each object in the collection
|
Object |
call(List l)
A list of elements as arguments to the YAML builder creates a root YAML array
|
Object |
call(Map m)
Named arguments can be passed to the YAML builder instance to create a root YAML object
|
Object |
call(Object... args)
Varargs elements as arguments to the YAML builder create a root YAML array
|
Object |
getContent() |
Object |
invokeMethod(String name,
Object args)
A method call on the YAML builder instance will create a root object with only one key
whose name is the name of the method being called.
|
String |
toString()
Serializes the internal data structure built with the builder to a conformant YAML payload string
|
Writer |
writeTo(Writer out)
The YAML builder implements the
Writable interface,
so that you can have the builder serialize itself the YAML payload to a writer. |
getMetaClass, setMetaClass
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getProperty, setProperty
public Object getContent()
public Object call(Map m)
Example:
def yaml = new groovy.yaml.YamlBuilder()
yaml name: "Guillaume", age: 33
assert yaml.toString() == '''---
name: "Guillaume"
age: 33
'''
m
- a map of key / value pairspublic Object call(List l)
Example:
def yaml = new groovy.yaml.YamlBuilder()
def result = yaml([1, 2, 3])
assert result instanceof List
assert yaml.toString() == '''---
- 1
- 2
- 3
'''
l
- a list of valuespublic Object call(Object... args)
Example:
def yaml = new groovy.yaml.YamlBuilder()
def result = yaml 1, 2, 3
assert result instanceof List
assert yaml.toString() == '''---
- 1
- 2
- 3
'''
args
- an array of valuespublic Object call(Iterable coll, Closure c)
Example:
class Author {
String name
}
def authors = [new Author (name: "Guillaume"), new Author (name: "Jochen"), new Author (name: "Paul")]
def yaml = new groovy.yaml.YamlBuilder()
yaml authors, { Author author ->
name author.name
}
assert yaml.toString() == '''---
- name: "Guillaume"
- name: "Jochen"
- name: "Paul"
'''
coll
- a collectionc
- a closure used to convert the objects of collpublic Object call(Collection coll, Closure c)
call(Iterable, Closure)
coll
- c
- public Object call(Closure c)
Example:
def yaml = new groovy.yaml.YamlBuilder()
def result = yaml {
name "Guillaume"
age 33
}
assert result instanceof Map
assert yaml.toString() == '''---
name: "Guillaume"
age: 33
'''
c
- a closure whose method call statements represent key / values of a YAML objectpublic Object invokeMethod(String name, Object args)
Example with a classical builder-style:
def yaml = new groovy.yaml.YamlBuilder()
def result = yaml.person {
name "Guillaume"
age 33
}
assert result instanceof Map
assert yaml.toString() == '''---
person:
name: "Guillaume"
age: 33
'''
Or alternatively with a method call taking named arguments:
def yaml = new groovy.yaml.YamlBuilder()
yaml.person name: "Guillaume", age: 33
assert yaml.toString() == '''---
person:
name: "Guillaume"
age: 33
'''
If you use named arguments and a closure as last argument,
the key/value pairs of the map (as named arguments)
and the key/value pairs represented in the closure
will be merged together —
the closure properties overriding the map key/values
in case the same key is used.
def yaml = new groovy.yaml.YamlBuilder()
yaml.person(name: "Guillaume", age: 33) { town "Paris" }
assert yaml.toString() == '''---
person:
name: "Guillaume"
age: 33
town: "Paris"
'''
The empty args call will create a key whose value will be an empty YAML object:
def yaml = new groovy.yaml.YamlBuilder()
yaml.person()
assert yaml.toString() == '''---
person: {}
'''
invokeMethod
in interface GroovyObject
name
- the single keyargs
- the value associated with the keypublic String toString()
Example:
def yaml = new groovy.yaml.YamlBuilder()
yaml { temperature 37 }
assert yaml.toString() == '''---
temperature: 37
'''
public Writer writeTo(Writer out) throws IOException
Writable
interface,
so that you can have the builder serialize itself the YAML payload to a writer.
Example:
def yaml = new groovy.yaml.YamlBuilder()
yaml { temperature 37 }
def out = new StringWriter()
out <<
yaml
assert out.toString() == '''---
temperature: 37
'''
writeTo
in interface Writable
out
- a writer on which to serialize the YAML payloadIOException
- if an error occurred while outputting data to the writer