Groovy AntBuilder, пропустите условные атрибуты, такие как функциональность "setOmitNullAttributes" в MarkupBulder - PullRequest
0 голосов
/ 14 января 2011

пример кода:

def ant = new AntBuilder()
ant.'antlib:org.jacoco.ant:agent'(
                enabled: enabled,
                property: 'agentvmparam')

Когда этот «включенный» параметр имеет значение null, я бы хотел, чтобы он не присутствовал при преобразовании задачи муравья, а не был просто «пустым».«empty» оценивается как «true» http://ant.apache.org/manual/develop.html#set-magic, что не то, что я хочу.

Пример XML-компоновщика:

def xml = new MarkupBuilder()
xml.omitNullAttributes = true
xml.root(
        requiredAttribute:'required',
        optionalAttribute: optionalAttribute
        ) { }

То, что «omitNullAttributes» будет гарантировать, чтоПараметр xml элемента "AdditionalAttribute" даже не присутствует, если параметр Groovy имеет значение NULL.

, поэтому вместо

<root requiredAttribute='required' optionalAttribute='' />
я получаю
<root requiredAttribute='required' />

1 Ответ

0 голосов
/ 14 января 2011

Немного о возможном обходном пути, но работает ли это?

def ant = new AntBuilder()
ant.'antlib:org.jacoco.ant:agent'( [ enabled:enabled, 
                                     property:'agentvmparam' ].findAll { it.value != null } )

т.е.: используйте findAll для удаления нулевых записей карты параметров

...