EclipseWtpFacet (Gradle API 2.9)
Date: 2015-11-17

Package: org.gradle.plugins.ide.eclipse.model

## [Groovy] Class EclipseWtpFacet

- org.gradle.plugins.ide.eclipse.model.EclipseWtpFacet

- Enables fine-tuning wtp facet details of the Eclipse plugin

  Advanced configuration closures beforeMerged and whenMerged receive WtpFacet object as parameter.

       apply plugin: 'java'
       apply plugin: 'war'
       apply plugin: 'eclipse-wtp'

       eclipse {
         wtp {
           facet {
             //you can add some extra wtp facets; mandatory keys: 'name', 'version':
             facet name: 'someCoolFacet', version: '1.3'

             file {
               //if you want to mess with the resulting XML in whatever way you fancy
               withXml {
                 def node = it.asNode()
                 node.appendNode('xml', 'is what I love')
               }

               //beforeMerged and whenMerged closures are the highest voodoo for the tricky edge cases.
               //the type passed to the closures is WtpFacet

               //closure executed after wtp facet file content is loaded from existing file
               //but before gradle build information is merged
               beforeMerged { wtpFacet ->
                 //tinker with WtpFacet here
               }

               //closure executed after wtp facet file content is loaded from existing file
               //and after gradle build information is merged
               whenMerged { wtpFacet ->
                 //you can tinker with the WtpFacet here
               }
             }
           }
         }
       }

- - ### Properties Summary

    Properties
    Type | Name and description
    --- | ---
    `List<Facet>` | `facets` The facets to be added as elements.
    `XmlFileContentMerger` | `file` See file(Closure)

  - ### Constructor Summary

    Constructors
    Constructor and description
    `EclipseWtpFacet (XmlFileContentMerger file)`

  - ### Methods Summary

    Methods
    Type | Name and description
    --- | ---
    `void` | `facet(Map<String, ?> args)` Adds a facet.
    `void` | `file(groovy.lang.Closure closure)` Enables advanced configuration like tinkering with the output XML or affecting the way existing wtp facet file content is merged with gradle build information
    `void` | `mergeXmlFacet(WtpFacet xmlFacet)`

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class Object` | `wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll`

- - ### Property Detail

    - #### List<Facet> facets

      The facets to be added as elements.

      For examples see docs for EclipseWtpFacet

    - #### final XmlFileContentMerger file

      See file(Closure)

  - ### Constructor Detail

    - #### EclipseWtpFacet(XmlFileContentMerger file)

  - ### Method Detail

    - #### void facet(Map<String, ?> args)

      Adds a facet.

      For examples see docs for EclipseWtpFacet

      Parameters:
        `args` - A map that must contain a 'name' and 'version' key with corresponding values.

    - #### void file(groovy.lang.Closure closure)

      Enables advanced configuration like tinkering with the output XML or affecting the way existing wtp facet file content is merged with gradle build information

      The object passed to whenMerged{} and beforeMerged{} closures is of type WtpFacet

      For example see docs for EclipseWtpFacet

    - #### void mergeXmlFacet(WtpFacet xmlFacet)