diff --git a/3.2.3/api/allclasses-frame.html b/3.2.3/api/allclasses-frame.html new file mode 100644 index 000000000..41ffe73dc --- /dev/null +++ b/3.2.3/api/allclasses-frame.html @@ -0,0 +1,174 @@ + + + + +All Classes + + + + + + + +

All Classes

+
+ +
+ + diff --git a/3.2.3/api/deprecated-list.html b/3.2.3/api/deprecated-list.html new file mode 100644 index 000000000..f6685f977 --- /dev/null +++ b/3.2.3/api/deprecated-list.html @@ -0,0 +1,106 @@ + + + + + + + + Deprecated API (Groovy Documentation) + + + + + + + + + + +
+ + + + + +
+ + +
+

Deprecated API

+

Contents

+ +
+
+ + +
+ +
+ + + + + +
+ + + + + diff --git a/3.2.3/api/grails/plugin/json/builder/DefaultJsonGenerator.ClosureConverter.html b/3.2.3/api/grails/plugin/json/builder/DefaultJsonGenerator.ClosureConverter.html new file mode 100644 index 000000000..b14026704 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/builder/DefaultJsonGenerator.ClosureConverter.html @@ -0,0 +1,448 @@ + + + + + + + + + + + DefaultJsonGenerator.ClosureConverter (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.builder
+ +

[Java] Class DefaultJsonGenerator.ClosureConverter

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/builder/DefaultJsonGenerator.html b/3.2.3/api/grails/plugin/json/builder/DefaultJsonGenerator.html new file mode 100644 index 000000000..aa9336b75 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/builder/DefaultJsonGenerator.html @@ -0,0 +1,706 @@ + + + + + + + + + + + DefaultJsonGenerator (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.builder
+ +

[Java] Class DefaultJsonGenerator

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/builder/JsonGenerator.Converter.html b/3.2.3/api/grails/plugin/json/builder/JsonGenerator.Converter.html new file mode 100644 index 000000000..7aa02c754 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/builder/JsonGenerator.Converter.html @@ -0,0 +1,261 @@ + + + + + + + + + + + JsonGenerator.Converter (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.builder
+ +

[Java] Interface JsonGenerator.Converter

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/builder/JsonGenerator.Options.html b/3.2.3/api/grails/plugin/json/builder/JsonGenerator.Options.html new file mode 100644 index 000000000..d3117919b --- /dev/null +++ b/3.2.3/api/grails/plugin/json/builder/JsonGenerator.Options.html @@ -0,0 +1,707 @@ + + + + + + + + + + + JsonGenerator.Options (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.builder
+ +

[Java] Class JsonGenerator.Options

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/builder/JsonGenerator.html b/3.2.3/api/grails/plugin/json/builder/JsonGenerator.html new file mode 100644 index 000000000..75825e023 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/builder/JsonGenerator.html @@ -0,0 +1,311 @@ + + + + + + + + + + + JsonGenerator (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.builder
+ +

[Java] Interface JsonGenerator

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/builder/JsonOutput.JsonUnescaped.html b/3.2.3/api/grails/plugin/json/builder/JsonOutput.JsonUnescaped.html new file mode 100644 index 000000000..ff621459e --- /dev/null +++ b/3.2.3/api/grails/plugin/json/builder/JsonOutput.JsonUnescaped.html @@ -0,0 +1,358 @@ + + + + + + + + + + + JsonOutput.JsonUnescaped (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.builder
+ +

[Java] Class JsonOutput.JsonUnescaped

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/builder/JsonOutput.JsonWritable.html b/3.2.3/api/grails/plugin/json/builder/JsonOutput.JsonWritable.html new file mode 100644 index 000000000..7f49ca533 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/builder/JsonOutput.JsonWritable.html @@ -0,0 +1,396 @@ + + + + + + + + + + + JsonOutput.JsonWritable (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.builder
+ +

[Java] Class JsonOutput.JsonWritable

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/builder/JsonOutput.html b/3.2.3/api/grails/plugin/json/builder/JsonOutput.html new file mode 100644 index 000000000..d1e9c805e --- /dev/null +++ b/3.2.3/api/grails/plugin/json/builder/JsonOutput.html @@ -0,0 +1,758 @@ + + + + + + + + + + + JsonOutput (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.builder
+ +

[Java] Class JsonOutput

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/builder/StreamingJsonBuilder.StreamingJsonDelegate.html b/3.2.3/api/grails/plugin/json/builder/StreamingJsonBuilder.StreamingJsonDelegate.html new file mode 100644 index 000000000..e8c96a51c --- /dev/null +++ b/3.2.3/api/grails/plugin/json/builder/StreamingJsonBuilder.StreamingJsonDelegate.html @@ -0,0 +1,827 @@ + + + + + + + + + + + StreamingJsonBuilder.StreamingJsonDelegate (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.builder
+ +

[Java] Class StreamingJsonBuilder.StreamingJsonDelegate

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/builder/StreamingJsonBuilder.html b/3.2.3/api/grails/plugin/json/builder/StreamingJsonBuilder.html new file mode 100644 index 000000000..0995ea7f9 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/builder/StreamingJsonBuilder.html @@ -0,0 +1,805 @@ + + + + + + + + + + + StreamingJsonBuilder (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.builder
+ +

[Java] Class StreamingJsonBuilder

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/builder/StreamingJsonBuilder/StreamingJsonDelegate.State.html b/3.2.3/api/grails/plugin/json/builder/StreamingJsonBuilder/StreamingJsonDelegate.State.html new file mode 100644 index 000000000..49e75ccf1 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/builder/StreamingJsonBuilder/StreamingJsonDelegate.State.html @@ -0,0 +1,271 @@ + + + + + + + + + + + StreamingJsonBuilder.StreamingJsonDelegate.State (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.builder
+ +

[Java] Enum StreamingJsonBuilder.StreamingJsonDelegate.State

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/builder/package-frame.html b/3.2.3/api/grails/plugin/json/builder/package-frame.html new file mode 100644 index 000000000..07902b42e --- /dev/null +++ b/3.2.3/api/grails/plugin/json/builder/package-frame.html @@ -0,0 +1,74 @@ + + + + + grails.plugin.json.builder + + + + + + + + + + +
+ grails.plugin.json.builder +
+ + + +
+

Interfaces

+ +
+ + + + +
+

Classes

+ +
+ + + +
+

Enums

+ +
+ + + + + + + + + diff --git a/3.2.3/api/grails/plugin/json/builder/package-summary.html b/3.2.3/api/grails/plugin/json/builder/package-summary.html new file mode 100644 index 000000000..26352fb85 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/builder/package-summary.html @@ -0,0 +1,262 @@ + + + + + +grails.plugin.json.builder (Groovy Documentation) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package grails.plugin.json.builder

+
+ + + +
+ + +
+ +
+ + + + +
+ +
+ + + +
+ +
+ + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/3.2.3/api/grails/plugin/json/converters/InstantJsonConverter.html b/3.2.3/api/grails/plugin/json/converters/InstantJsonConverter.html new file mode 100644 index 000000000..5b567a4ac --- /dev/null +++ b/3.2.3/api/grails/plugin/json/converters/InstantJsonConverter.html @@ -0,0 +1,324 @@ + + + + + + + + + + + InstantJsonConverter (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.converters
+ +

[Groovy] Class InstantJsonConverter

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/converters/LocalDateJsonConverter.html b/3.2.3/api/grails/plugin/json/converters/LocalDateJsonConverter.html new file mode 100644 index 000000000..5c1048a58 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/converters/LocalDateJsonConverter.html @@ -0,0 +1,324 @@ + + + + + + + + + + + LocalDateJsonConverter (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.converters
+ +

[Groovy] Class LocalDateJsonConverter

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/converters/LocalDateTimeJsonConverter.html b/3.2.3/api/grails/plugin/json/converters/LocalDateTimeJsonConverter.html new file mode 100644 index 000000000..c198f304f --- /dev/null +++ b/3.2.3/api/grails/plugin/json/converters/LocalDateTimeJsonConverter.html @@ -0,0 +1,324 @@ + + + + + + + + + + + LocalDateTimeJsonConverter (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.converters
+ +

[Groovy] Class LocalDateTimeJsonConverter

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/converters/LocalTimeJsonConverter.html b/3.2.3/api/grails/plugin/json/converters/LocalTimeJsonConverter.html new file mode 100644 index 000000000..6be42b3e9 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/converters/LocalTimeJsonConverter.html @@ -0,0 +1,324 @@ + + + + + + + + + + + LocalTimeJsonConverter (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.converters
+ +

[Groovy] Class LocalTimeJsonConverter

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/converters/OffsetDateTimeJsonConverter.html b/3.2.3/api/grails/plugin/json/converters/OffsetDateTimeJsonConverter.html new file mode 100644 index 000000000..fa9728cc4 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/converters/OffsetDateTimeJsonConverter.html @@ -0,0 +1,324 @@ + + + + + + + + + + + OffsetDateTimeJsonConverter (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.converters
+ +

[Groovy] Class OffsetDateTimeJsonConverter

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/converters/OffsetTimeJsonConverter.html b/3.2.3/api/grails/plugin/json/converters/OffsetTimeJsonConverter.html new file mode 100644 index 000000000..75b68ef64 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/converters/OffsetTimeJsonConverter.html @@ -0,0 +1,324 @@ + + + + + + + + + + + OffsetTimeJsonConverter (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.converters
+ +

[Groovy] Class OffsetTimeJsonConverter

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/converters/PeriodJsonConverter.html b/3.2.3/api/grails/plugin/json/converters/PeriodJsonConverter.html new file mode 100644 index 000000000..8c5e9a090 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/converters/PeriodJsonConverter.html @@ -0,0 +1,324 @@ + + + + + + + + + + + PeriodJsonConverter (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.converters
+ +

[Groovy] Class PeriodJsonConverter

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/converters/ZonedDateTimeJsonConverter.html b/3.2.3/api/grails/plugin/json/converters/ZonedDateTimeJsonConverter.html new file mode 100644 index 000000000..199c461ec --- /dev/null +++ b/3.2.3/api/grails/plugin/json/converters/ZonedDateTimeJsonConverter.html @@ -0,0 +1,324 @@ + + + + + + + + + + + ZonedDateTimeJsonConverter (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.converters
+ +

[Groovy] Class ZonedDateTimeJsonConverter

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/converters/package-frame.html b/3.2.3/api/grails/plugin/json/converters/package-frame.html new file mode 100644 index 000000000..6f97110c8 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/converters/package-frame.html @@ -0,0 +1,58 @@ + + + + + grails.plugin.json.converters + + + + + + + + + + +
+ grails.plugin.json.converters +
+ + + + + +
+

Classes

+ +
+ + + + + + + + + + diff --git a/3.2.3/api/grails/plugin/json/converters/package-summary.html b/3.2.3/api/grails/plugin/json/converters/package-summary.html new file mode 100644 index 000000000..4b9e7435f --- /dev/null +++ b/3.2.3/api/grails/plugin/json/converters/package-summary.html @@ -0,0 +1,200 @@ + + + + + +grails.plugin.json.converters (Groovy Documentation) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package grails.plugin.json.converters

+
+ + + +
+ + + + +
+ +
+ + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/3.2.3/api/grails/plugin/json/renderer/AbstractJsonViewContainerRenderer.html b/3.2.3/api/grails/plugin/json/renderer/AbstractJsonViewContainerRenderer.html new file mode 100644 index 000000000..07f13fcf5 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/renderer/AbstractJsonViewContainerRenderer.html @@ -0,0 +1,389 @@ + + + + + + + + + + + AbstractJsonViewContainerRenderer (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.renderer
+ +

[Groovy] Class AbstractJsonViewContainerRenderer<C, T>

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/renderer/ErrorsJsonViewRenderer.html b/3.2.3/api/grails/plugin/json/renderer/ErrorsJsonViewRenderer.html new file mode 100644 index 000000000..7b8bc7b8a --- /dev/null +++ b/3.2.3/api/grails/plugin/json/renderer/ErrorsJsonViewRenderer.html @@ -0,0 +1,322 @@ + + + + + + + + + + + ErrorsJsonViewRenderer (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.renderer
+ +

[Groovy] Class ErrorsJsonViewRenderer

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/renderer/JsonViewJsonRenderer.html b/3.2.3/api/grails/plugin/json/renderer/JsonViewJsonRenderer.html new file mode 100644 index 000000000..c114b4f84 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/renderer/JsonViewJsonRenderer.html @@ -0,0 +1,254 @@ + + + + + + + + + + + JsonViewJsonRenderer (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.renderer
+ +

[Groovy] Class JsonViewJsonRenderer<T>

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/renderer/package-frame.html b/3.2.3/api/grails/plugin/json/renderer/package-frame.html new file mode 100644 index 000000000..4edc39330 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/renderer/package-frame.html @@ -0,0 +1,58 @@ + + + + + grails.plugin.json.renderer + + + + + + + + + + +
+ grails.plugin.json.renderer +
+ + + + + +
+

Classes

+ +
+ + + + + + + + + + diff --git a/3.2.3/api/grails/plugin/json/renderer/package-summary.html b/3.2.3/api/grails/plugin/json/renderer/package-summary.html new file mode 100644 index 000000000..0be043bb7 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/renderer/package-summary.html @@ -0,0 +1,160 @@ + + + + + +grails.plugin.json.renderer (Groovy Documentation) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package grails.plugin.json.renderer

+
+ + + +
+ + + + +
+ +
+ + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/3.2.3/api/grails/plugin/json/view/JsonViewCompiler.html b/3.2.3/api/grails/plugin/json/view/JsonViewCompiler.html new file mode 100644 index 000000000..c0a41f13c --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/JsonViewCompiler.html @@ -0,0 +1,353 @@ + + + + + + + + + + + JsonViewCompiler (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view
+ +

[Groovy] Class JsonViewCompiler

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/JsonViewConfiguration.html b/3.2.3/api/grails/plugin/json/view/JsonViewConfiguration.html new file mode 100644 index 000000000..72ca6fca3 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/JsonViewConfiguration.html @@ -0,0 +1,446 @@ + + + + + + + + + + + JsonViewConfiguration (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view
+ +

[Groovy] Class JsonViewConfiguration

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/JsonViewGeneratorConfiguration.html b/3.2.3/api/grails/plugin/json/view/JsonViewGeneratorConfiguration.html new file mode 100644 index 000000000..0a6cc46d2 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/JsonViewGeneratorConfiguration.html @@ -0,0 +1,425 @@ + + + + + + + + + + + JsonViewGeneratorConfiguration (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view
+ +

[Groovy] Class JsonViewGeneratorConfiguration

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/JsonViewGrailsPlugin.html b/3.2.3/api/grails/plugin/json/view/JsonViewGrailsPlugin.html new file mode 100644 index 000000000..bbbb972af --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/JsonViewGrailsPlugin.html @@ -0,0 +1,659 @@ + + + + + + + + + + + JsonViewGrailsPlugin (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view
+ +

[Groovy] Class JsonViewGrailsPlugin

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/JsonViewTemplateEngine.html b/3.2.3/api/grails/plugin/json/view/JsonViewTemplateEngine.html new file mode 100644 index 000000000..44324be46 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/JsonViewTemplateEngine.html @@ -0,0 +1,516 @@ + + + + + + + + + + + JsonViewTemplateEngine (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view
+ +

[Groovy] Class JsonViewTemplateEngine

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/JsonViewWritableScript.html b/3.2.3/api/grails/plugin/json/view/JsonViewWritableScript.html new file mode 100644 index 000000000..587abe0f1 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/JsonViewWritableScript.html @@ -0,0 +1,588 @@ + + + + + + + + + + + JsonViewWritableScript (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view
+ +

[Groovy] Class JsonViewWritableScript

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/api/GrailsJsonViewHelper.html b/3.2.3/api/grails/plugin/json/view/api/GrailsJsonViewHelper.html new file mode 100644 index 000000000..9188b8be8 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/GrailsJsonViewHelper.html @@ -0,0 +1,433 @@ + + + + + + + + + + + GrailsJsonViewHelper (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.api
+ +

[Groovy] Interface GrailsJsonViewHelper

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/api/HalViewHelper.html b/3.2.3/api/grails/plugin/json/view/api/HalViewHelper.html new file mode 100644 index 000000000..2c03662a6 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/HalViewHelper.html @@ -0,0 +1,578 @@ + + + + + + + + + + + HalViewHelper (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.api
+ +

[Groovy] Interface HalViewHelper

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/api/JsonApiViewHelper.html b/3.2.3/api/grails/plugin/json/view/api/JsonApiViewHelper.html new file mode 100644 index 000000000..9a958e9c5 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/JsonApiViewHelper.html @@ -0,0 +1,256 @@ + + + + + + + + + + + JsonApiViewHelper (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.api
+ +

[Groovy] Interface JsonApiViewHelper

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/api/JsonView.html b/3.2.3/api/grails/plugin/json/view/api/JsonView.html new file mode 100644 index 000000000..18c7870da --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/JsonView.html @@ -0,0 +1,807 @@ + + + + + + + + + + + JsonView (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.api
+ +

[Groovy] Trait JsonView

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.1.html b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.1.html new file mode 100644 index 000000000..89cb27f74 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.1.html @@ -0,0 +1,283 @@ + + + + + + + + + + + DefaultGrailsJsonViewHelper.1 (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.api.internal
+ +

[Groovy] Class DefaultGrailsJsonViewHelper.1

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.2.html b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.2.html new file mode 100644 index 000000000..cae176f78 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.2.html @@ -0,0 +1,282 @@ + + + + + + + + + + + DefaultGrailsJsonViewHelper.2 (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.api.internal
+ +

[Groovy] Class DefaultGrailsJsonViewHelper.2

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.3.html b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.3.html new file mode 100644 index 000000000..7d3fcc650 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.3.html @@ -0,0 +1,282 @@ + + + + + + + + + + + DefaultGrailsJsonViewHelper.3 (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.api.internal
+ +

[Groovy] Class DefaultGrailsJsonViewHelper.3

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.4.html b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.4.html new file mode 100644 index 000000000..3ee6a0a59 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.4.html @@ -0,0 +1,282 @@ + + + + + + + + + + + DefaultGrailsJsonViewHelper.4 (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.api.internal
+ +

[Groovy] Class DefaultGrailsJsonViewHelper.4

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.5.html b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.5.html new file mode 100644 index 000000000..3ffe55bf9 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.5.html @@ -0,0 +1,282 @@ + + + + + + + + + + + DefaultGrailsJsonViewHelper.5 (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.api.internal
+ +

[Groovy] Class DefaultGrailsJsonViewHelper.5

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.6.html b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.6.html new file mode 100644 index 000000000..f779c8350 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.6.html @@ -0,0 +1,282 @@ + + + + + + + + + + + DefaultGrailsJsonViewHelper.6 (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.api.internal
+ +

[Groovy] Class DefaultGrailsJsonViewHelper.6

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.html b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.html new file mode 100644 index 000000000..51b4230db --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.html @@ -0,0 +1,827 @@ + + + + + + + + + + + DefaultGrailsJsonViewHelper (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.api.internal
+ +

[Groovy] Class DefaultGrailsJsonViewHelper

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/api/internal/DefaultHalViewHelper.1.html b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultHalViewHelper.1.html new file mode 100644 index 000000000..746c4b4d7 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultHalViewHelper.1.html @@ -0,0 +1,282 @@ + + + + + + + + + + + DefaultHalViewHelper.1 (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.api.internal
+ +

[Groovy] Class DefaultHalViewHelper.1

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/api/internal/DefaultHalViewHelper.HalStreamingJsonDelegate.html b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultHalViewHelper.HalStreamingJsonDelegate.html new file mode 100644 index 000000000..3ff08d67f --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultHalViewHelper.HalStreamingJsonDelegate.html @@ -0,0 +1,585 @@ + + + + + + + + + + + DefaultHalViewHelper.HalStreamingJsonDelegate (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.api.internal
+ +

[Groovy] Class DefaultHalViewHelper.HalStreamingJsonDelegate

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/api/internal/DefaultHalViewHelper.html b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultHalViewHelper.html new file mode 100644 index 000000000..5c92f3297 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultHalViewHelper.html @@ -0,0 +1,888 @@ + + + + + + + + + + + DefaultHalViewHelper (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.api.internal
+ +

[Groovy] Class DefaultHalViewHelper

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.1.html b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.1.html new file mode 100644 index 000000000..8ea6606c6 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.1.html @@ -0,0 +1,282 @@ + + + + + + + + + + + DefaultJsonApiViewHelper.1 (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.api.internal
+ +

[Groovy] Class DefaultJsonApiViewHelper.1

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.2.html b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.2.html new file mode 100644 index 000000000..e7ea7afa7 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.2.html @@ -0,0 +1,283 @@ + + + + + + + + + + + DefaultJsonApiViewHelper.2 (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.api.internal
+ +

[Groovy] Class DefaultJsonApiViewHelper.2

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.3.html b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.3.html new file mode 100644 index 000000000..4c5737df2 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.3.html @@ -0,0 +1,282 @@ + + + + + + + + + + + DefaultJsonApiViewHelper.3 (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.api.internal
+ +

[Groovy] Class DefaultJsonApiViewHelper.3

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.4.html b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.4.html new file mode 100644 index 000000000..b35de42e3 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.4.html @@ -0,0 +1,296 @@ + + + + + + + + + + + DefaultJsonApiViewHelper.4 (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.api.internal
+ +

[Groovy] Class DefaultJsonApiViewHelper.4

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.5.html b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.5.html new file mode 100644 index 000000000..38fa7ac24 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.5.html @@ -0,0 +1,282 @@ + + + + + + + + + + + DefaultJsonApiViewHelper.5 (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.api.internal
+ +

[Groovy] Class DefaultJsonApiViewHelper.5

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.6.html b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.6.html new file mode 100644 index 000000000..13dcff63d --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.6.html @@ -0,0 +1,282 @@ + + + + + + + + + + + DefaultJsonApiViewHelper.6 (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.api.internal
+ +

[Groovy] Class DefaultJsonApiViewHelper.6

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.7.html b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.7.html new file mode 100644 index 000000000..45b822e62 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.7.html @@ -0,0 +1,282 @@ + + + + + + + + + + + DefaultJsonApiViewHelper.7 (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.api.internal
+ +

[Groovy] Class DefaultJsonApiViewHelper.7

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.html b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.html new file mode 100644 index 000000000..edee6a4d9 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.html @@ -0,0 +1,836 @@ + + + + + + + + + + + DefaultJsonApiViewHelper (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.api.internal
+ +

[Groovy] Class DefaultJsonApiViewHelper

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonViewHelper.1.html b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonViewHelper.1.html new file mode 100644 index 000000000..e61a06685 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonViewHelper.1.html @@ -0,0 +1,282 @@ + + + + + + + + + + + DefaultJsonViewHelper.1 (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.api.internal
+ +

[Groovy] Class DefaultJsonViewHelper.1

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonViewHelper.html b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonViewHelper.html new file mode 100644 index 000000000..f2e602f3d --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonViewHelper.html @@ -0,0 +1,938 @@ + + + + + + + + + + + DefaultJsonViewHelper (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.api.internal
+ +

[Groovy] Class DefaultJsonViewHelper

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonViewIncludeExcludeSupport.html b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonViewIncludeExcludeSupport.html new file mode 100644 index 000000000..e93b51440 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/internal/DefaultJsonViewIncludeExcludeSupport.html @@ -0,0 +1,298 @@ + + + + + + + + + + + DefaultJsonViewIncludeExcludeSupport (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.api.internal
+ +

[Groovy] Class DefaultJsonViewIncludeExcludeSupport

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/api/internal/ParentInfo.html b/3.2.3/api/grails/plugin/json/view/api/internal/ParentInfo.html new file mode 100644 index 000000000..aadb535df --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/internal/ParentInfo.html @@ -0,0 +1,369 @@ + + + + + + + + + + + ParentInfo (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.api.internal
+ +

[Groovy] Class ParentInfo

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/api/internal/TemplateRenderer.html b/3.2.3/api/grails/plugin/json/view/api/internal/TemplateRenderer.html new file mode 100644 index 000000000..bac3d6e60 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/internal/TemplateRenderer.html @@ -0,0 +1,386 @@ + + + + + + + + + + + TemplateRenderer (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.api.internal
+ +

[Groovy] Class TemplateRenderer

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/api/internal/package-frame.html b/3.2.3/api/grails/plugin/json/view/api/internal/package-frame.html new file mode 100644 index 000000000..c8cb09fb5 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/internal/package-frame.html @@ -0,0 +1,58 @@ + + + + + grails.plugin.json.view.api.internal + + + + + + + + + + +
+ grails.plugin.json.view.api.internal +
+ + + + + +
+

Classes

+ +
+ + + + + + + + + + diff --git a/3.2.3/api/grails/plugin/json/view/api/internal/package-summary.html b/3.2.3/api/grails/plugin/json/view/api/internal/package-summary.html new file mode 100644 index 000000000..4b10071e5 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/internal/package-summary.html @@ -0,0 +1,320 @@ + + + + + +grails.plugin.json.view.api.internal (Groovy Documentation) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package grails.plugin.json.view.api.internal

+
+ + + +
+ + + + +
+ +
+ + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/3.2.3/api/grails/plugin/json/view/api/jsonapi/DefaultJsonApiIdRenderer.html b/3.2.3/api/grails/plugin/json/view/api/jsonapi/DefaultJsonApiIdRenderer.html new file mode 100644 index 000000000..a45342530 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/jsonapi/DefaultJsonApiIdRenderer.html @@ -0,0 +1,307 @@ + + + + + + + + + + + DefaultJsonApiIdRenderer (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.api.jsonapi
+ +

[Groovy] Class DefaultJsonApiIdRenderer

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/api/jsonapi/JsonApiIdRenderStrategy.html b/3.2.3/api/grails/plugin/json/view/api/jsonapi/JsonApiIdRenderStrategy.html new file mode 100644 index 000000000..dbc3b9304 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/jsonapi/JsonApiIdRenderStrategy.html @@ -0,0 +1,240 @@ + + + + + + + + + + + JsonApiIdRenderStrategy (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.api.jsonapi
+ +

[Groovy] Interface JsonApiIdRenderStrategy

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/api/jsonapi/package-frame.html b/3.2.3/api/grails/plugin/json/view/api/jsonapi/package-frame.html new file mode 100644 index 000000000..a680a57de --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/jsonapi/package-frame.html @@ -0,0 +1,66 @@ + + + + + grails.plugin.json.view.api.jsonapi + + + + + + + + + + +
+ grails.plugin.json.view.api.jsonapi +
+ + + +
+

Interfaces

+ +
+ + + + +
+

Classes

+ +
+ + + + + + + + + + diff --git a/3.2.3/api/grails/plugin/json/view/api/jsonapi/package-summary.html b/3.2.3/api/grails/plugin/json/view/api/jsonapi/package-summary.html new file mode 100644 index 000000000..27d7efaa8 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/jsonapi/package-summary.html @@ -0,0 +1,170 @@ + + + + + +grails.plugin.json.view.api.jsonapi (Groovy Documentation) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package grails.plugin.json.view.api.jsonapi

+
+ + + +
+ + +
+ +
+ + + + +
+ +
+ + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/3.2.3/api/grails/plugin/json/view/api/package-frame.html b/3.2.3/api/grails/plugin/json/view/api/package-frame.html new file mode 100644 index 000000000..3ea9e6585 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/package-frame.html @@ -0,0 +1,66 @@ + + + + + grails.plugin.json.view.api + + + + + + + + + + +
+ grails.plugin.json.view.api +
+ + + +
+

Interfaces

+ +
+ + + +
+

Traits

+ +
+ + + + + + + + + + + diff --git a/3.2.3/api/grails/plugin/json/view/api/package-summary.html b/3.2.3/api/grails/plugin/json/view/api/package-summary.html new file mode 100644 index 000000000..ef8de6053 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/api/package-summary.html @@ -0,0 +1,186 @@ + + + + + +grails.plugin.json.view.api (Groovy Documentation) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package grails.plugin.json.view.api

+
+ + + +
+ + +
+ +
+ + + +
+ +
+ + + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/3.2.3/api/grails/plugin/json/view/internal/JsonTemplateTypeCheckingExtension.html b/3.2.3/api/grails/plugin/json/view/internal/JsonTemplateTypeCheckingExtension.html new file mode 100644 index 000000000..a572ab3c7 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/internal/JsonTemplateTypeCheckingExtension.html @@ -0,0 +1,538 @@ + + + + + + + + + + + JsonTemplateTypeCheckingExtension (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.internal
+ +

[Groovy] Class JsonTemplateTypeCheckingExtension

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/internal/JsonViewsTransform.html b/3.2.3/api/grails/plugin/json/view/internal/JsonViewsTransform.html new file mode 100644 index 000000000..544663945 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/internal/JsonViewsTransform.html @@ -0,0 +1,325 @@ + + + + + + + + + + + JsonViewsTransform (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.internal
+ +

[Groovy] Class JsonViewsTransform

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/internal/package-frame.html b/3.2.3/api/grails/plugin/json/view/internal/package-frame.html new file mode 100644 index 000000000..337d9c491 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/internal/package-frame.html @@ -0,0 +1,58 @@ + + + + + grails.plugin.json.view.internal + + + + + + + + + + +
+ grails.plugin.json.view.internal +
+ + + + + +
+

Classes

+ +
+ + + + + + + + + + diff --git a/3.2.3/api/grails/plugin/json/view/internal/package-summary.html b/3.2.3/api/grails/plugin/json/view/internal/package-summary.html new file mode 100644 index 000000000..2fb603d1a --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/internal/package-summary.html @@ -0,0 +1,152 @@ + + + + + +grails.plugin.json.view.internal (Groovy Documentation) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package grails.plugin.json.view.internal

+
+ + + +
+ + + + +
+ +
+ + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/3.2.3/api/grails/plugin/json/view/mvc/JsonViewResolver.html b/3.2.3/api/grails/plugin/json/view/mvc/JsonViewResolver.html new file mode 100644 index 000000000..d17eac2a0 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/mvc/JsonViewResolver.html @@ -0,0 +1,501 @@ + + + + + + + + + + + JsonViewResolver (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.mvc
+ +

[Groovy] Class JsonViewResolver

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/mvc/package-frame.html b/3.2.3/api/grails/plugin/json/view/mvc/package-frame.html new file mode 100644 index 000000000..c19258acc --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/mvc/package-frame.html @@ -0,0 +1,58 @@ + + + + + grails.plugin.json.view.mvc + + + + + + + + + + +
+ grails.plugin.json.view.mvc +
+ + + + + +
+

Classes

+ +
+ + + + + + + + + + diff --git a/3.2.3/api/grails/plugin/json/view/mvc/package-summary.html b/3.2.3/api/grails/plugin/json/view/mvc/package-summary.html new file mode 100644 index 000000000..248eedee4 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/mvc/package-summary.html @@ -0,0 +1,144 @@ + + + + + +grails.plugin.json.view.mvc (Groovy Documentation) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package grails.plugin.json.view.mvc

+
+ + + +
+ + + + +
+ +
+ + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/3.2.3/api/grails/plugin/json/view/package-frame.html b/3.2.3/api/grails/plugin/json/view/package-frame.html new file mode 100644 index 000000000..4343e6b4b --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/package-frame.html @@ -0,0 +1,58 @@ + + + + + grails.plugin.json.view + + + + + + + + + + +
+ grails.plugin.json.view +
+ + + + + +
+

Classes

+ +
+ + + + + + + + + + diff --git a/3.2.3/api/grails/plugin/json/view/package-summary.html b/3.2.3/api/grails/plugin/json/view/package-summary.html new file mode 100644 index 000000000..1d5dd0955 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/package-summary.html @@ -0,0 +1,184 @@ + + + + + +grails.plugin.json.view (Groovy Documentation) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package grails.plugin.json.view

+
+ + + +
+ + + + +
+ +
+ + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/3.2.3/api/grails/plugin/json/view/template/JsonViewTemplate.html b/3.2.3/api/grails/plugin/json/view/template/JsonViewTemplate.html new file mode 100644 index 000000000..0b08542af --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/template/JsonViewTemplate.html @@ -0,0 +1,431 @@ + + + + + + + + + + + JsonViewTemplate (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.template
+ +

[Groovy] Class JsonViewTemplate

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/template/package-frame.html b/3.2.3/api/grails/plugin/json/view/template/package-frame.html new file mode 100644 index 000000000..03fb7866c --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/template/package-frame.html @@ -0,0 +1,58 @@ + + + + + grails.plugin.json.view.template + + + + + + + + + + +
+ grails.plugin.json.view.template +
+ + + + + +
+

Classes

+ +
+ + + + + + + + + + diff --git a/3.2.3/api/grails/plugin/json/view/template/package-summary.html b/3.2.3/api/grails/plugin/json/view/template/package-summary.html new file mode 100644 index 000000000..df98b02d8 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/template/package-summary.html @@ -0,0 +1,144 @@ + + + + + +grails.plugin.json.view.template (Groovy Documentation) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package grails.plugin.json.view.template

+
+ + + +
+ + + + +
+ +
+ + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/3.2.3/api/grails/plugin/json/view/test/JsonRenderResult.html b/3.2.3/api/grails/plugin/json/view/test/JsonRenderResult.html new file mode 100644 index 000000000..b423649af --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/test/JsonRenderResult.html @@ -0,0 +1,480 @@ + + + + + + + + + + + JsonRenderResult (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.test
+ +

[Groovy] Class JsonRenderResult

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/test/JsonViewTest.TestHttpResponse.html b/3.2.3/api/grails/plugin/json/view/test/JsonViewTest.TestHttpResponse.html new file mode 100644 index 000000000..78ee7881a --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/test/JsonViewTest.TestHttpResponse.html @@ -0,0 +1,507 @@ + + + + + + + + + + + JsonViewTest.TestHttpResponse (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.test
+ +

[Groovy] Class JsonViewTest.TestHttpResponse

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/test/JsonViewTest.html b/3.2.3/api/grails/plugin/json/view/test/JsonViewTest.html new file mode 100644 index 000000000..7eb32c0d3 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/test/JsonViewTest.html @@ -0,0 +1,642 @@ + + + + + + + + + + + JsonViewTest (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.test
+ +

[Groovy] Trait JsonViewTest

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/test/TestLinkGenerator.html b/3.2.3/api/grails/plugin/json/view/test/TestLinkGenerator.html new file mode 100644 index 000000000..65fc3d7be --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/test/TestLinkGenerator.html @@ -0,0 +1,450 @@ + + + + + + + + + + + TestLinkGenerator (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.test
+ +

[Groovy] Class TestLinkGenerator

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/test/TestRequestConfigurer.html b/3.2.3/api/grails/plugin/json/view/test/TestRequestConfigurer.html new file mode 100644 index 000000000..22362f34d --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/test/TestRequestConfigurer.html @@ -0,0 +1,821 @@ + + + + + + + + + + + TestRequestConfigurer (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.json.view.test
+ +

[Groovy] Class TestRequestConfigurer

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/json/view/test/package-frame.html b/3.2.3/api/grails/plugin/json/view/test/package-frame.html new file mode 100644 index 000000000..0adbcd071 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/test/package-frame.html @@ -0,0 +1,66 @@ + + + + + grails.plugin.json.view.test + + + + + + + + + + +
+ grails.plugin.json.view.test +
+ + + + +
+

Traits

+ +
+ + + +
+

Classes

+ +
+ + + + + + + + + + diff --git a/3.2.3/api/grails/plugin/json/view/test/package-summary.html b/3.2.3/api/grails/plugin/json/view/test/package-summary.html new file mode 100644 index 000000000..d4d1593c3 --- /dev/null +++ b/3.2.3/api/grails/plugin/json/view/test/package-summary.html @@ -0,0 +1,194 @@ + + + + + +grails.plugin.json.view.test (Groovy Documentation) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package grails.plugin.json.view.test

+
+ + + +
+ + + +
+ +
+ + + +
+ +
+ + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/3.2.3/api/grails/plugin/markup/view/MarkupViewCompiler.html b/3.2.3/api/grails/plugin/markup/view/MarkupViewCompiler.html new file mode 100644 index 000000000..6256ff3d8 --- /dev/null +++ b/3.2.3/api/grails/plugin/markup/view/MarkupViewCompiler.html @@ -0,0 +1,353 @@ + + + + + + + + + + + MarkupViewCompiler (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.markup.view
+ +

[Groovy] Class MarkupViewCompiler

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/markup/view/MarkupViewConfiguration.html b/3.2.3/api/grails/plugin/markup/view/MarkupViewConfiguration.html new file mode 100644 index 000000000..d08c95333 --- /dev/null +++ b/3.2.3/api/grails/plugin/markup/view/MarkupViewConfiguration.html @@ -0,0 +1,492 @@ + + + + + + + + + + + MarkupViewConfiguration (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.markup.view
+ +

[Groovy] Class MarkupViewConfiguration

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/markup/view/MarkupViewGrailsPlugin.html b/3.2.3/api/grails/plugin/markup/view/MarkupViewGrailsPlugin.html new file mode 100644 index 000000000..511124512 --- /dev/null +++ b/3.2.3/api/grails/plugin/markup/view/MarkupViewGrailsPlugin.html @@ -0,0 +1,661 @@ + + + + + + + + + + + MarkupViewGrailsPlugin (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.markup.view
+ +

[Groovy] Class MarkupViewGrailsPlugin

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/markup/view/MarkupViewTemplate.html b/3.2.3/api/grails/plugin/markup/view/MarkupViewTemplate.html new file mode 100644 index 000000000..4d0655e08 --- /dev/null +++ b/3.2.3/api/grails/plugin/markup/view/MarkupViewTemplate.html @@ -0,0 +1,445 @@ + + + + + + + + + + + MarkupViewTemplate (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.markup.view
+ +

[Groovy] Class MarkupViewTemplate

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/markup/view/MarkupViewTemplateEngine.1.html b/3.2.3/api/grails/plugin/markup/view/MarkupViewTemplateEngine.1.html new file mode 100644 index 000000000..9afc6bd20 --- /dev/null +++ b/3.2.3/api/grails/plugin/markup/view/MarkupViewTemplateEngine.1.html @@ -0,0 +1,315 @@ + + + + + + + + + + + MarkupViewTemplateEngine.1 (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.markup.view
+ +

[Groovy] Class MarkupViewTemplateEngine.1

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/markup/view/MarkupViewTemplateEngine.html b/3.2.3/api/grails/plugin/markup/view/MarkupViewTemplateEngine.html new file mode 100644 index 000000000..b142714b8 --- /dev/null +++ b/3.2.3/api/grails/plugin/markup/view/MarkupViewTemplateEngine.html @@ -0,0 +1,571 @@ + + + + + + + + + + + MarkupViewTemplateEngine (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.markup.view
+ +

[Groovy] Class MarkupViewTemplateEngine

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/markup/view/MarkupViewWritableScriptTemplate.html b/3.2.3/api/grails/plugin/markup/view/MarkupViewWritableScriptTemplate.html new file mode 100644 index 000000000..a994981f8 --- /dev/null +++ b/3.2.3/api/grails/plugin/markup/view/MarkupViewWritableScriptTemplate.html @@ -0,0 +1,432 @@ + + + + + + + + + + + MarkupViewWritableScriptTemplate (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.markup.view
+ +

[Groovy] Class MarkupViewWritableScriptTemplate

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/markup/view/api/MarkupView.html b/3.2.3/api/grails/plugin/markup/view/api/MarkupView.html new file mode 100644 index 000000000..fde341470 --- /dev/null +++ b/3.2.3/api/grails/plugin/markup/view/api/MarkupView.html @@ -0,0 +1,255 @@ + + + + + + + + + + + MarkupView (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.markup.view.api
+ +

[Groovy] Trait MarkupView

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/markup/view/api/package-frame.html b/3.2.3/api/grails/plugin/markup/view/api/package-frame.html new file mode 100644 index 000000000..437ddcaeb --- /dev/null +++ b/3.2.3/api/grails/plugin/markup/view/api/package-frame.html @@ -0,0 +1,58 @@ + + + + + grails.plugin.markup.view.api + + + + + + + + + + +
+ grails.plugin.markup.view.api +
+ + + + +
+

Traits

+ +
+ + + + + + + + + + + diff --git a/3.2.3/api/grails/plugin/markup/view/api/package-summary.html b/3.2.3/api/grails/plugin/markup/view/api/package-summary.html new file mode 100644 index 000000000..f5bd69fb4 --- /dev/null +++ b/3.2.3/api/grails/plugin/markup/view/api/package-summary.html @@ -0,0 +1,144 @@ + + + + + +grails.plugin.markup.view.api (Groovy Documentation) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package grails.plugin.markup.view.api

+
+ + + +
+ + + +
+ +
+ + + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/3.2.3/api/grails/plugin/markup/view/internal/MarkupViewsTransform.html b/3.2.3/api/grails/plugin/markup/view/internal/MarkupViewsTransform.html new file mode 100644 index 000000000..fed148da1 --- /dev/null +++ b/3.2.3/api/grails/plugin/markup/view/internal/MarkupViewsTransform.html @@ -0,0 +1,325 @@ + + + + + + + + + + + MarkupViewsTransform (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.markup.view.internal
+ +

[Groovy] Class MarkupViewsTransform

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/markup/view/internal/package-frame.html b/3.2.3/api/grails/plugin/markup/view/internal/package-frame.html new file mode 100644 index 000000000..03cff50a5 --- /dev/null +++ b/3.2.3/api/grails/plugin/markup/view/internal/package-frame.html @@ -0,0 +1,58 @@ + + + + + grails.plugin.markup.view.internal + + + + + + + + + + +
+ grails.plugin.markup.view.internal +
+ + + + + +
+

Classes

+ +
+ + + + + + + + + + diff --git a/3.2.3/api/grails/plugin/markup/view/internal/package-summary.html b/3.2.3/api/grails/plugin/markup/view/internal/package-summary.html new file mode 100644 index 000000000..ab6f78f94 --- /dev/null +++ b/3.2.3/api/grails/plugin/markup/view/internal/package-summary.html @@ -0,0 +1,144 @@ + + + + + +grails.plugin.markup.view.internal (Groovy Documentation) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package grails.plugin.markup.view.internal

+
+ + + +
+ + + + +
+ +
+ + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/3.2.3/api/grails/plugin/markup/view/mvc/MarkupViewResolver.html b/3.2.3/api/grails/plugin/markup/view/mvc/MarkupViewResolver.html new file mode 100644 index 000000000..45cc6f6ea --- /dev/null +++ b/3.2.3/api/grails/plugin/markup/view/mvc/MarkupViewResolver.html @@ -0,0 +1,501 @@ + + + + + + + + + + + MarkupViewResolver (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.markup.view.mvc
+ +

[Groovy] Class MarkupViewResolver

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/markup/view/mvc/package-frame.html b/3.2.3/api/grails/plugin/markup/view/mvc/package-frame.html new file mode 100644 index 000000000..f31f823ec --- /dev/null +++ b/3.2.3/api/grails/plugin/markup/view/mvc/package-frame.html @@ -0,0 +1,58 @@ + + + + + grails.plugin.markup.view.mvc + + + + + + + + + + +
+ grails.plugin.markup.view.mvc +
+ + + + + +
+

Classes

+ +
+ + + + + + + + + + diff --git a/3.2.3/api/grails/plugin/markup/view/mvc/package-summary.html b/3.2.3/api/grails/plugin/markup/view/mvc/package-summary.html new file mode 100644 index 000000000..59401a48a --- /dev/null +++ b/3.2.3/api/grails/plugin/markup/view/mvc/package-summary.html @@ -0,0 +1,144 @@ + + + + + +grails.plugin.markup.view.mvc (Groovy Documentation) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package grails.plugin.markup.view.mvc

+
+ + + +
+ + + + +
+ +
+ + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/3.2.3/api/grails/plugin/markup/view/package-frame.html b/3.2.3/api/grails/plugin/markup/view/package-frame.html new file mode 100644 index 000000000..634cc9d17 --- /dev/null +++ b/3.2.3/api/grails/plugin/markup/view/package-frame.html @@ -0,0 +1,58 @@ + + + + + grails.plugin.markup.view + + + + + + + + + + +
+ grails.plugin.markup.view +
+ + + + + +
+

Classes

+ +
+ + + + + + + + + + diff --git a/3.2.3/api/grails/plugin/markup/view/package-summary.html b/3.2.3/api/grails/plugin/markup/view/package-summary.html new file mode 100644 index 000000000..c471d5d3b --- /dev/null +++ b/3.2.3/api/grails/plugin/markup/view/package-summary.html @@ -0,0 +1,192 @@ + + + + + +grails.plugin.markup.view (Groovy Documentation) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package grails.plugin.markup.view

+
+ + + +
+ + + + +
+ +
+ + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/3.2.3/api/grails/plugin/markup/view/renderer/MarkupViewXmlRenderer.html b/3.2.3/api/grails/plugin/markup/view/renderer/MarkupViewXmlRenderer.html new file mode 100644 index 000000000..7a4a918aa --- /dev/null +++ b/3.2.3/api/grails/plugin/markup/view/renderer/MarkupViewXmlRenderer.html @@ -0,0 +1,254 @@ + + + + + + + + + + + MarkupViewXmlRenderer (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.plugin.markup.view.renderer
+ +

[Groovy] Class MarkupViewXmlRenderer<T>

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/plugin/markup/view/renderer/package-frame.html b/3.2.3/api/grails/plugin/markup/view/renderer/package-frame.html new file mode 100644 index 000000000..c36d8969b --- /dev/null +++ b/3.2.3/api/grails/plugin/markup/view/renderer/package-frame.html @@ -0,0 +1,58 @@ + + + + + grails.plugin.markup.view.renderer + + + + + + + + + + +
+ grails.plugin.markup.view.renderer +
+ + + + + +
+

Classes

+ +
+ + + + + + + + + + diff --git a/3.2.3/api/grails/plugin/markup/view/renderer/package-summary.html b/3.2.3/api/grails/plugin/markup/view/renderer/package-summary.html new file mode 100644 index 000000000..a66ee7884 --- /dev/null +++ b/3.2.3/api/grails/plugin/markup/view/renderer/package-summary.html @@ -0,0 +1,144 @@ + + + + + +grails.plugin.markup.view.renderer (Groovy Documentation) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package grails.plugin.markup.view.renderer

+
+ + + +
+ + + + +
+ +
+ + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/3.2.3/api/grails/views/AbstractGroovyTemplateCompiler.html b/3.2.3/api/grails/views/AbstractGroovyTemplateCompiler.html new file mode 100644 index 000000000..ea7c594a4 --- /dev/null +++ b/3.2.3/api/grails/views/AbstractGroovyTemplateCompiler.html @@ -0,0 +1,536 @@ + + + + + + + + + + + AbstractGroovyTemplateCompiler (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views
+ +

[Groovy] Class AbstractGroovyTemplateCompiler

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/AbstractWritableScript.html b/3.2.3/api/grails/views/AbstractWritableScript.html new file mode 100644 index 000000000..f8fca395a --- /dev/null +++ b/3.2.3/api/grails/views/AbstractWritableScript.html @@ -0,0 +1,514 @@ + + + + + + + + + + + AbstractWritableScript (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views
+ +

[Groovy] Class AbstractWritableScript

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/GenericViewConfiguration.html b/3.2.3/api/grails/views/GenericViewConfiguration.html new file mode 100644 index 000000000..b3f197383 --- /dev/null +++ b/3.2.3/api/grails/views/GenericViewConfiguration.html @@ -0,0 +1,717 @@ + + + + + + + + + + + GenericViewConfiguration (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views
+ +

[Groovy] Trait GenericViewConfiguration

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/GrailsViewTemplate.html b/3.2.3/api/grails/views/GrailsViewTemplate.html new file mode 100644 index 000000000..e86a2c68f --- /dev/null +++ b/3.2.3/api/grails/views/GrailsViewTemplate.html @@ -0,0 +1,526 @@ + + + + + + + + + + + GrailsViewTemplate (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views
+ +

[Groovy] Class GrailsViewTemplate

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/ResolvableGroovyTemplateEngine.1.html b/3.2.3/api/grails/views/ResolvableGroovyTemplateEngine.1.html new file mode 100644 index 000000000..3f3b4bb0e --- /dev/null +++ b/3.2.3/api/grails/views/ResolvableGroovyTemplateEngine.1.html @@ -0,0 +1,350 @@ + + + + + + + + + + + ResolvableGroovyTemplateEngine.1 (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views
+ +

[Groovy] Class ResolvableGroovyTemplateEngine.1

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/ResolvableGroovyTemplateEngine.html b/3.2.3/api/grails/views/ResolvableGroovyTemplateEngine.html new file mode 100644 index 000000000..68d1d9082 --- /dev/null +++ b/3.2.3/api/grails/views/ResolvableGroovyTemplateEngine.html @@ -0,0 +1,1028 @@ + + + + + + + + + + + ResolvableGroovyTemplateEngine (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views
+ +

[Groovy] Class ResolvableGroovyTemplateEngine

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/TemplateResolver.html b/3.2.3/api/grails/views/TemplateResolver.html new file mode 100644 index 000000000..c4f54c1ba --- /dev/null +++ b/3.2.3/api/grails/views/TemplateResolver.html @@ -0,0 +1,270 @@ + + + + + + + + + + + TemplateResolver (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views
+ +

[Groovy] Interface TemplateResolver

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/ViewCompilationException.html b/3.2.3/api/grails/views/ViewCompilationException.html new file mode 100644 index 000000000..41f69a46f --- /dev/null +++ b/3.2.3/api/grails/views/ViewCompilationException.html @@ -0,0 +1,372 @@ + + + + + + + + + + + ViewCompilationException (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views
+ +

[Groovy] Class ViewCompilationException

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/ViewConfiguration.html b/3.2.3/api/grails/views/ViewConfiguration.html new file mode 100644 index 000000000..9c247546b --- /dev/null +++ b/3.2.3/api/grails/views/ViewConfiguration.html @@ -0,0 +1,424 @@ + + + + + + + + + + + ViewConfiguration (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views
+ +

[Groovy] Interface ViewConfiguration

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/ViewException.html b/3.2.3/api/grails/views/ViewException.html new file mode 100644 index 000000000..bc19dd802 --- /dev/null +++ b/3.2.3/api/grails/views/ViewException.html @@ -0,0 +1,264 @@ + + + + + + + + + + + ViewException (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views
+ +

[Groovy] Class ViewException

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/ViewRenderException.html b/3.2.3/api/grails/views/ViewRenderException.html new file mode 100644 index 000000000..4ce5c3b99 --- /dev/null +++ b/3.2.3/api/grails/views/ViewRenderException.html @@ -0,0 +1,440 @@ + + + + + + + + + + + ViewRenderException (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views
+ +

[Groovy] Class ViewRenderException

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/ViewUriResolver.html b/3.2.3/api/grails/views/ViewUriResolver.html new file mode 100644 index 000000000..192c3322e --- /dev/null +++ b/3.2.3/api/grails/views/ViewUriResolver.html @@ -0,0 +1,260 @@ + + + + + + + + + + + ViewUriResolver (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views
+ +

[Groovy] Interface ViewUriResolver

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/Views.html b/3.2.3/api/grails/views/Views.html new file mode 100644 index 000000000..c6f312d9c --- /dev/null +++ b/3.2.3/api/grails/views/Views.html @@ -0,0 +1,282 @@ + + + + + + + + + + + Views (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views
+ +

[Groovy] Interface Views

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/ViewsEnvironment.html b/3.2.3/api/grails/views/ViewsEnvironment.html new file mode 100644 index 000000000..9681bdcb3 --- /dev/null +++ b/3.2.3/api/grails/views/ViewsEnvironment.html @@ -0,0 +1,344 @@ + + + + + + + + + + + ViewsEnvironment (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views
+ +

[Groovy] Class ViewsEnvironment

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/WritableScript.html b/3.2.3/api/grails/views/WritableScript.html new file mode 100644 index 000000000..71e341735 --- /dev/null +++ b/3.2.3/api/grails/views/WritableScript.html @@ -0,0 +1,377 @@ + + + + + + + + + + + WritableScript (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views
+ +

[Groovy] Interface WritableScript

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/WritableScriptTemplate.FieldSetter.html b/3.2.3/api/grails/views/WritableScriptTemplate.FieldSetter.html new file mode 100644 index 000000000..6639d3ce0 --- /dev/null +++ b/3.2.3/api/grails/views/WritableScriptTemplate.FieldSetter.html @@ -0,0 +1,415 @@ + + + + + + + + + + + WritableScriptTemplate.FieldSetter (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views
+ +

[Groovy] Class WritableScriptTemplate.FieldSetter

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/WritableScriptTemplate.MethodSetter.html b/3.2.3/api/grails/views/WritableScriptTemplate.MethodSetter.html new file mode 100644 index 000000000..818c2ccac --- /dev/null +++ b/3.2.3/api/grails/views/WritableScriptTemplate.MethodSetter.html @@ -0,0 +1,415 @@ + + + + + + + + + + + WritableScriptTemplate.MethodSetter (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views
+ +

[Groovy] Class WritableScriptTemplate.MethodSetter

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/WritableScriptTemplate.VariableSetter.html b/3.2.3/api/grails/views/WritableScriptTemplate.VariableSetter.html new file mode 100644 index 000000000..66d5ffdc1 --- /dev/null +++ b/3.2.3/api/grails/views/WritableScriptTemplate.VariableSetter.html @@ -0,0 +1,253 @@ + + + + + + + + + + + WritableScriptTemplate.VariableSetter (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views
+ +

[Groovy] Interface WritableScriptTemplate.VariableSetter

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/WritableScriptTemplate.html b/3.2.3/api/grails/views/WritableScriptTemplate.html new file mode 100644 index 000000000..63a56ed76 --- /dev/null +++ b/3.2.3/api/grails/views/WritableScriptTemplate.html @@ -0,0 +1,618 @@ + + + + + + + + + + + WritableScriptTemplate (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views
+ +

[Groovy] Class WritableScriptTemplate

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/WriterProvider.html b/3.2.3/api/grails/views/WriterProvider.html new file mode 100644 index 000000000..aa8372b7b --- /dev/null +++ b/3.2.3/api/grails/views/WriterProvider.html @@ -0,0 +1,242 @@ + + + + + + + + + + + WriterProvider (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views
+ +

[Groovy] Interface WriterProvider

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/api/GrailsView.html b/3.2.3/api/grails/views/api/GrailsView.html new file mode 100644 index 000000000..df71ec7ea --- /dev/null +++ b/3.2.3/api/grails/views/api/GrailsView.html @@ -0,0 +1,618 @@ + + + + + + + + + + + GrailsView (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.api
+ +

[Groovy] Trait GrailsView

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/api/GrailsViewHelper.html b/3.2.3/api/grails/views/api/GrailsViewHelper.html new file mode 100644 index 000000000..8776b24d2 --- /dev/null +++ b/3.2.3/api/grails/views/api/GrailsViewHelper.html @@ -0,0 +1,247 @@ + + + + + + + + + + + GrailsViewHelper (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.api
+ +

[Groovy] Interface GrailsViewHelper

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/api/HttpView.html b/3.2.3/api/grails/views/api/HttpView.html new file mode 100644 index 000000000..8e1c95fe7 --- /dev/null +++ b/3.2.3/api/grails/views/api/HttpView.html @@ -0,0 +1,397 @@ + + + + + + + + + + + HttpView (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.api
+ +

[Groovy] Trait HttpView

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/api/View.html b/3.2.3/api/grails/views/api/View.html new file mode 100644 index 000000000..d3be8ecbe --- /dev/null +++ b/3.2.3/api/grails/views/api/View.html @@ -0,0 +1,332 @@ + + + + + + + + + + + View (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.api
+ +

[Groovy] Trait View

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/api/http/Parameters.html b/3.2.3/api/grails/views/api/http/Parameters.html new file mode 100644 index 000000000..2f816d5b0 --- /dev/null +++ b/3.2.3/api/grails/views/api/http/Parameters.html @@ -0,0 +1,606 @@ + + + + + + + + + + + Parameters (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.api.http
+ +

[Groovy] Interface Parameters

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/api/http/Request.html b/3.2.3/api/grails/views/api/http/Request.html new file mode 100644 index 000000000..68064edb5 --- /dev/null +++ b/3.2.3/api/grails/views/api/http/Request.html @@ -0,0 +1,368 @@ + + + + + + + + + + + Request (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.api.http
+ +

[Groovy] Interface Request

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/api/http/Response.html b/3.2.3/api/grails/views/api/http/Response.html new file mode 100644 index 000000000..ff80a202a --- /dev/null +++ b/3.2.3/api/grails/views/api/http/Response.html @@ -0,0 +1,354 @@ + + + + + + + + + + + Response (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.api.http
+ +

[Groovy] Interface Response

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/api/http/package-frame.html b/3.2.3/api/grails/views/api/http/package-frame.html new file mode 100644 index 000000000..a1ccb3ec1 --- /dev/null +++ b/3.2.3/api/grails/views/api/http/package-frame.html @@ -0,0 +1,58 @@ + + + + + grails.views.api.http + + + + + + + + + + +
+ grails.views.api.http +
+ + + +
+

Interfaces

+ +
+ + + + + + + + + + + + diff --git a/3.2.3/api/grails/views/api/http/package-summary.html b/3.2.3/api/grails/views/api/http/package-summary.html new file mode 100644 index 000000000..902a61815 --- /dev/null +++ b/3.2.3/api/grails/views/api/http/package-summary.html @@ -0,0 +1,160 @@ + + + + + +grails.views.api.http (Groovy Documentation) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package grails.views.api.http

+
+ + + +
+ + +
+ +
+ + + + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/3.2.3/api/grails/views/api/internal/DefaultGrailsViewHelper.html b/3.2.3/api/grails/views/api/internal/DefaultGrailsViewHelper.html new file mode 100644 index 000000000..5792dad44 --- /dev/null +++ b/3.2.3/api/grails/views/api/internal/DefaultGrailsViewHelper.html @@ -0,0 +1,493 @@ + + + + + + + + + + + DefaultGrailsViewHelper (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.api.internal
+ +

[Groovy] Class DefaultGrailsViewHelper

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/api/internal/EmptyParameters.html b/3.2.3/api/grails/views/api/internal/EmptyParameters.html new file mode 100644 index 000000000..9f5d78d96 --- /dev/null +++ b/3.2.3/api/grails/views/api/internal/EmptyParameters.html @@ -0,0 +1,699 @@ + + + + + + + + + + + EmptyParameters (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.api.internal
+ +

[Groovy] Class EmptyParameters

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/api/internal/package-frame.html b/3.2.3/api/grails/views/api/internal/package-frame.html new file mode 100644 index 000000000..f9f254ec6 --- /dev/null +++ b/3.2.3/api/grails/views/api/internal/package-frame.html @@ -0,0 +1,58 @@ + + + + + grails.views.api.internal + + + + + + + + + + +
+ grails.views.api.internal +
+ + + + + +
+

Classes

+ +
+ + + + + + + + + + diff --git a/3.2.3/api/grails/views/api/internal/package-summary.html b/3.2.3/api/grails/views/api/internal/package-summary.html new file mode 100644 index 000000000..2c1348c47 --- /dev/null +++ b/3.2.3/api/grails/views/api/internal/package-summary.html @@ -0,0 +1,152 @@ + + + + + +grails.views.api.internal (Groovy Documentation) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package grails.views.api.internal

+
+ + + +
+ + + + +
+ +
+ + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/3.2.3/api/grails/views/api/package-frame.html b/3.2.3/api/grails/views/api/package-frame.html new file mode 100644 index 000000000..184af361f --- /dev/null +++ b/3.2.3/api/grails/views/api/package-frame.html @@ -0,0 +1,66 @@ + + + + + grails.views.api + + + + + + + + + + +
+ grails.views.api +
+ + + +
+

Interfaces

+ +
+ + + +
+

Traits

+ +
+ + + + + + + + + + + diff --git a/3.2.3/api/grails/views/api/package-summary.html b/3.2.3/api/grails/views/api/package-summary.html new file mode 100644 index 000000000..6d84f3c96 --- /dev/null +++ b/3.2.3/api/grails/views/api/package-summary.html @@ -0,0 +1,186 @@ + + + + + +grails.views.api (Groovy Documentation) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package grails.views.api

+
+ + + +
+ + +
+ +
+ + + +
+ +
+ + + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/3.2.3/api/grails/views/compiler/BuilderTypeCheckingExtension.BuilderMethodReplacer.html b/3.2.3/api/grails/views/compiler/BuilderTypeCheckingExtension.BuilderMethodReplacer.html new file mode 100644 index 000000000..9a5642808 --- /dev/null +++ b/3.2.3/api/grails/views/compiler/BuilderTypeCheckingExtension.BuilderMethodReplacer.html @@ -0,0 +1,443 @@ + + + + + + + + + + + BuilderTypeCheckingExtension.BuilderMethodReplacer (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.compiler
+ +

[Groovy] Class BuilderTypeCheckingExtension.BuilderMethodReplacer

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/compiler/BuilderTypeCheckingExtension.html b/3.2.3/api/grails/views/compiler/BuilderTypeCheckingExtension.html new file mode 100644 index 000000000..0a0059435 --- /dev/null +++ b/3.2.3/api/grails/views/compiler/BuilderTypeCheckingExtension.html @@ -0,0 +1,520 @@ + + + + + + + + + + + BuilderTypeCheckingExtension (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.compiler
+ +

[Groovy] Class BuilderTypeCheckingExtension

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/compiler/HalCodeVisitorSupport.html b/3.2.3/api/grails/views/compiler/HalCodeVisitorSupport.html new file mode 100644 index 000000000..0f56341e6 --- /dev/null +++ b/3.2.3/api/grails/views/compiler/HalCodeVisitorSupport.html @@ -0,0 +1,451 @@ + + + + + + + + + + + HalCodeVisitorSupport (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.compiler
+ +

[Groovy] Class HalCodeVisitorSupport

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/compiler/ViewsTransform.ModelTypesVisitor.html b/3.2.3/api/grails/views/compiler/ViewsTransform.ModelTypesVisitor.html new file mode 100644 index 000000000..136d10420 --- /dev/null +++ b/3.2.3/api/grails/views/compiler/ViewsTransform.ModelTypesVisitor.html @@ -0,0 +1,465 @@ + + + + + + + + + + + ViewsTransform.ModelTypesVisitor (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.compiler
+ +

[Groovy] Class ViewsTransform.ModelTypesVisitor

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/compiler/ViewsTransform.html b/3.2.3/api/grails/views/compiler/ViewsTransform.html new file mode 100644 index 000000000..560ea70af --- /dev/null +++ b/3.2.3/api/grails/views/compiler/ViewsTransform.html @@ -0,0 +1,497 @@ + + + + + + + + + + + ViewsTransform (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.compiler
+ +

[Groovy] Class ViewsTransform

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/compiler/package-frame.html b/3.2.3/api/grails/views/compiler/package-frame.html new file mode 100644 index 000000000..51479791f --- /dev/null +++ b/3.2.3/api/grails/views/compiler/package-frame.html @@ -0,0 +1,58 @@ + + + + + grails.views.compiler + + + + + + + + + + +
+ grails.views.compiler +
+ + + + + +
+

Classes

+ +
+ + + + + + + + + + diff --git a/3.2.3/api/grails/views/compiler/package-summary.html b/3.2.3/api/grails/views/compiler/package-summary.html new file mode 100644 index 000000000..399722153 --- /dev/null +++ b/3.2.3/api/grails/views/compiler/package-summary.html @@ -0,0 +1,176 @@ + + + + + +grails.views.compiler (Groovy Documentation) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package grails.views.compiler

+
+ + + +
+ + + + +
+ +
+ + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/3.2.3/api/grails/views/gradle/AbstractGroovyTemplateCompileTask.1.html b/3.2.3/api/grails/views/gradle/AbstractGroovyTemplateCompileTask.1.html new file mode 100644 index 000000000..9f3935a3a --- /dev/null +++ b/3.2.3/api/grails/views/gradle/AbstractGroovyTemplateCompileTask.1.html @@ -0,0 +1,283 @@ + + + + + + + + + + + AbstractGroovyTemplateCompileTask.1 (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.gradle
+ +

[Groovy] Class AbstractGroovyTemplateCompileTask.1

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/gradle/AbstractGroovyTemplateCompileTask.html b/3.2.3/api/grails/views/gradle/AbstractGroovyTemplateCompileTask.html new file mode 100644 index 000000000..d4364dbda --- /dev/null +++ b/3.2.3/api/grails/views/gradle/AbstractGroovyTemplateCompileTask.html @@ -0,0 +1,567 @@ + + + + + + + + + + + AbstractGroovyTemplateCompileTask (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.gradle
+ +

[Groovy] Class AbstractGroovyTemplateCompileTask

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/gradle/AbstractGroovyTemplatePlugin.html b/3.2.3/api/grails/views/gradle/AbstractGroovyTemplatePlugin.html new file mode 100644 index 000000000..cd8df73c2 --- /dev/null +++ b/3.2.3/api/grails/views/gradle/AbstractGroovyTemplatePlugin.html @@ -0,0 +1,473 @@ + + + + + + + + + + + AbstractGroovyTemplatePlugin (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.gradle
+ +

[Groovy] Class AbstractGroovyTemplatePlugin

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/gradle/ViewCompileOptions.html b/3.2.3/api/grails/views/gradle/ViewCompileOptions.html new file mode 100644 index 000000000..dcf45f44b --- /dev/null +++ b/3.2.3/api/grails/views/gradle/ViewCompileOptions.html @@ -0,0 +1,394 @@ + + + + + + + + + + + ViewCompileOptions (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.gradle
+ +

[Groovy] Class ViewCompileOptions

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/gradle/json/GrailsJsonViewsPlugin.html b/3.2.3/api/grails/views/gradle/json/GrailsJsonViewsPlugin.html new file mode 100644 index 000000000..62dd340b4 --- /dev/null +++ b/3.2.3/api/grails/views/gradle/json/GrailsJsonViewsPlugin.html @@ -0,0 +1,283 @@ + + + + + + + + + + + GrailsJsonViewsPlugin (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.gradle.json
+ +

[Groovy] Class GrailsJsonViewsPlugin

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/gradle/json/JsonViewCompilerTask.html b/3.2.3/api/grails/views/gradle/json/JsonViewCompilerTask.html new file mode 100644 index 000000000..4d9519aab --- /dev/null +++ b/3.2.3/api/grails/views/gradle/json/JsonViewCompilerTask.html @@ -0,0 +1,356 @@ + + + + + + + + + + + JsonViewCompilerTask (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.gradle.json
+ +

[Groovy] Class JsonViewCompilerTask

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/gradle/json/package-frame.html b/3.2.3/api/grails/views/gradle/json/package-frame.html new file mode 100644 index 000000000..b0071b884 --- /dev/null +++ b/3.2.3/api/grails/views/gradle/json/package-frame.html @@ -0,0 +1,58 @@ + + + + + grails.views.gradle.json + + + + + + + + + + +
+ grails.views.gradle.json +
+ + + + + +
+

Classes

+ +
+ + + + + + + + + + diff --git a/3.2.3/api/grails/views/gradle/json/package-summary.html b/3.2.3/api/grails/views/gradle/json/package-summary.html new file mode 100644 index 000000000..7fa4c5ddf --- /dev/null +++ b/3.2.3/api/grails/views/gradle/json/package-summary.html @@ -0,0 +1,152 @@ + + + + + +grails.views.gradle.json (Groovy Documentation) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package grails.views.gradle.json

+
+ + + +
+ + + + +
+ +
+ + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/3.2.3/api/grails/views/gradle/markup/GrailsMarkupViewsPlugin.html b/3.2.3/api/grails/views/gradle/markup/GrailsMarkupViewsPlugin.html new file mode 100644 index 000000000..af495c533 --- /dev/null +++ b/3.2.3/api/grails/views/gradle/markup/GrailsMarkupViewsPlugin.html @@ -0,0 +1,283 @@ + + + + + + + + + + + GrailsMarkupViewsPlugin (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.gradle.markup
+ +

[Groovy] Class GrailsMarkupViewsPlugin

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/gradle/markup/MarkupViewCompilerTask.html b/3.2.3/api/grails/views/gradle/markup/MarkupViewCompilerTask.html new file mode 100644 index 000000000..3c288d6ed --- /dev/null +++ b/3.2.3/api/grails/views/gradle/markup/MarkupViewCompilerTask.html @@ -0,0 +1,356 @@ + + + + + + + + + + + MarkupViewCompilerTask (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.gradle.markup
+ +

[Groovy] Class MarkupViewCompilerTask

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/gradle/markup/package-frame.html b/3.2.3/api/grails/views/gradle/markup/package-frame.html new file mode 100644 index 000000000..389ec44d0 --- /dev/null +++ b/3.2.3/api/grails/views/gradle/markup/package-frame.html @@ -0,0 +1,58 @@ + + + + + grails.views.gradle.markup + + + + + + + + + + +
+ grails.views.gradle.markup +
+ + + + + +
+

Classes

+ +
+ + + + + + + + + + diff --git a/3.2.3/api/grails/views/gradle/markup/package-summary.html b/3.2.3/api/grails/views/gradle/markup/package-summary.html new file mode 100644 index 000000000..36aaaf6de --- /dev/null +++ b/3.2.3/api/grails/views/gradle/markup/package-summary.html @@ -0,0 +1,152 @@ + + + + + +grails.views.gradle.markup (Groovy Documentation) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package grails.views.gradle.markup

+
+ + + +
+ + + + +
+ +
+ + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/3.2.3/api/grails/views/gradle/package-frame.html b/3.2.3/api/grails/views/gradle/package-frame.html new file mode 100644 index 000000000..177b43ec8 --- /dev/null +++ b/3.2.3/api/grails/views/gradle/package-frame.html @@ -0,0 +1,58 @@ + + + + + grails.views.gradle + + + + + + + + + + +
+ grails.views.gradle +
+ + + + + +
+

Classes

+ +
+ + + + + + + + + + diff --git a/3.2.3/api/grails/views/gradle/package-summary.html b/3.2.3/api/grails/views/gradle/package-summary.html new file mode 100644 index 000000000..eb391f0bd --- /dev/null +++ b/3.2.3/api/grails/views/gradle/package-summary.html @@ -0,0 +1,168 @@ + + + + + +grails.views.gradle (Groovy Documentation) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package grails.views.gradle

+
+ + + +
+ + + + +
+ +
+ + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/3.2.3/api/grails/views/json/test/JsonViewUnitTest.TestHttpResponse.html b/3.2.3/api/grails/views/json/test/JsonViewUnitTest.TestHttpResponse.html new file mode 100644 index 000000000..1402d0101 --- /dev/null +++ b/3.2.3/api/grails/views/json/test/JsonViewUnitTest.TestHttpResponse.html @@ -0,0 +1,507 @@ + + + + + + + + + + + JsonViewUnitTest.TestHttpResponse (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.json.test
+ +

[Groovy] Class JsonViewUnitTest.TestHttpResponse

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/json/test/JsonViewUnitTest.html b/3.2.3/api/grails/views/json/test/JsonViewUnitTest.html new file mode 100644 index 000000000..6ae6a184b --- /dev/null +++ b/3.2.3/api/grails/views/json/test/JsonViewUnitTest.html @@ -0,0 +1,434 @@ + + + + + + + + + + + JsonViewUnitTest (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.json.test
+ +

[Groovy] Trait JsonViewUnitTest

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/json/test/package-frame.html b/3.2.3/api/grails/views/json/test/package-frame.html new file mode 100644 index 000000000..bb29cce99 --- /dev/null +++ b/3.2.3/api/grails/views/json/test/package-frame.html @@ -0,0 +1,66 @@ + + + + + grails.views.json.test + + + + + + + + + + +
+ grails.views.json.test +
+ + + + +
+

Traits

+ +
+ + + +
+

Classes

+ +
+ + + + + + + + + + diff --git a/3.2.3/api/grails/views/json/test/package-summary.html b/3.2.3/api/grails/views/json/test/package-summary.html new file mode 100644 index 000000000..8c2d547f9 --- /dev/null +++ b/3.2.3/api/grails/views/json/test/package-summary.html @@ -0,0 +1,170 @@ + + + + + +grails.views.json.test (Groovy Documentation) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package grails.views.json.test

+
+ + + +
+ + + +
+ +
+ + + +
+ +
+ + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/3.2.3/api/grails/views/json/test/spock/JsonViewSetupSpecInterceptor.html b/3.2.3/api/grails/views/json/test/spock/JsonViewSetupSpecInterceptor.html new file mode 100644 index 000000000..7eb6cc46a --- /dev/null +++ b/3.2.3/api/grails/views/json/test/spock/JsonViewSetupSpecInterceptor.html @@ -0,0 +1,322 @@ + + + + + + + + + + + JsonViewSetupSpecInterceptor (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.json.test.spock
+ +

[Groovy] Class JsonViewSetupSpecInterceptor

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/json/test/spock/JsonViewSpockExtension.html b/3.2.3/api/grails/views/json/test/spock/JsonViewSpockExtension.html new file mode 100644 index 000000000..809a26de0 --- /dev/null +++ b/3.2.3/api/grails/views/json/test/spock/JsonViewSpockExtension.html @@ -0,0 +1,388 @@ + + + + + + + + + + + JsonViewSpockExtension (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.json.test.spock
+ +

[Groovy] Class JsonViewSpockExtension

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/json/test/spock/package-frame.html b/3.2.3/api/grails/views/json/test/spock/package-frame.html new file mode 100644 index 000000000..6ba39c9bd --- /dev/null +++ b/3.2.3/api/grails/views/json/test/spock/package-frame.html @@ -0,0 +1,58 @@ + + + + + grails.views.json.test.spock + + + + + + + + + + +
+ grails.views.json.test.spock +
+ + + + + +
+

Classes

+ +
+ + + + + + + + + + diff --git a/3.2.3/api/grails/views/json/test/spock/package-summary.html b/3.2.3/api/grails/views/json/test/spock/package-summary.html new file mode 100644 index 000000000..fa48ca3ac --- /dev/null +++ b/3.2.3/api/grails/views/json/test/spock/package-summary.html @@ -0,0 +1,152 @@ + + + + + +grails.views.json.test.spock (Groovy Documentation) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package grails.views.json.test.spock

+
+ + + +
+ + + + +
+ +
+ + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/3.2.3/api/grails/views/mvc/GenericGroovyTemplateView.HttpViewRequest.html b/3.2.3/api/grails/views/mvc/GenericGroovyTemplateView.HttpViewRequest.html new file mode 100644 index 000000000..84948d475 --- /dev/null +++ b/3.2.3/api/grails/views/mvc/GenericGroovyTemplateView.HttpViewRequest.html @@ -0,0 +1,551 @@ + + + + + + + + + + + GenericGroovyTemplateView.HttpViewRequest (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.mvc
+ +

[Groovy] Class GenericGroovyTemplateView.HttpViewRequest

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/mvc/GenericGroovyTemplateView.HttpViewResponse.html b/3.2.3/api/grails/views/mvc/GenericGroovyTemplateView.HttpViewResponse.html new file mode 100644 index 000000000..25383552c --- /dev/null +++ b/3.2.3/api/grails/views/mvc/GenericGroovyTemplateView.HttpViewResponse.html @@ -0,0 +1,508 @@ + + + + + + + + + + + GenericGroovyTemplateView.HttpViewResponse (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.mvc
+ +

[Groovy] Class GenericGroovyTemplateView.HttpViewResponse

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/mvc/GenericGroovyTemplateView.html b/3.2.3/api/grails/views/mvc/GenericGroovyTemplateView.html new file mode 100644 index 000000000..2dcf8c21f --- /dev/null +++ b/3.2.3/api/grails/views/mvc/GenericGroovyTemplateView.html @@ -0,0 +1,505 @@ + + + + + + + + + + + GenericGroovyTemplateView (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.mvc
+ +

[Groovy] Class GenericGroovyTemplateView

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/mvc/GenericGroovyTemplateViewResolver.html b/3.2.3/api/grails/views/mvc/GenericGroovyTemplateViewResolver.html new file mode 100644 index 000000000..14a4463ce --- /dev/null +++ b/3.2.3/api/grails/views/mvc/GenericGroovyTemplateViewResolver.html @@ -0,0 +1,404 @@ + + + + + + + + + + + GenericGroovyTemplateViewResolver (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.mvc
+ +

[Groovy] Class GenericGroovyTemplateViewResolver

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/mvc/SmartViewResolver.html b/3.2.3/api/grails/views/mvc/SmartViewResolver.html new file mode 100644 index 000000000..8f4c5bef3 --- /dev/null +++ b/3.2.3/api/grails/views/mvc/SmartViewResolver.html @@ -0,0 +1,752 @@ + + + + + + + + + + + SmartViewResolver (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.mvc
+ +

[Groovy] Class SmartViewResolver

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/mvc/http/DelegatingParameters.html b/3.2.3/api/grails/views/mvc/http/DelegatingParameters.html new file mode 100644 index 000000000..b066fb7ec --- /dev/null +++ b/3.2.3/api/grails/views/mvc/http/DelegatingParameters.html @@ -0,0 +1,765 @@ + + + + + + + + + + + DelegatingParameters (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.mvc.http
+ +

[Groovy] Class DelegatingParameters

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/mvc/http/package-frame.html b/3.2.3/api/grails/views/mvc/http/package-frame.html new file mode 100644 index 000000000..52d31816b --- /dev/null +++ b/3.2.3/api/grails/views/mvc/http/package-frame.html @@ -0,0 +1,58 @@ + + + + + grails.views.mvc.http + + + + + + + + + + +
+ grails.views.mvc.http +
+ + + + + +
+

Classes

+ +
+ + + + + + + + + + diff --git a/3.2.3/api/grails/views/mvc/http/package-summary.html b/3.2.3/api/grails/views/mvc/http/package-summary.html new file mode 100644 index 000000000..b93a26afb --- /dev/null +++ b/3.2.3/api/grails/views/mvc/http/package-summary.html @@ -0,0 +1,144 @@ + + + + + +grails.views.mvc.http (Groovy Documentation) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package grails.views.mvc.http

+
+ + + +
+ + + + +
+ +
+ + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/3.2.3/api/grails/views/mvc/package-frame.html b/3.2.3/api/grails/views/mvc/package-frame.html new file mode 100644 index 000000000..fa10fe585 --- /dev/null +++ b/3.2.3/api/grails/views/mvc/package-frame.html @@ -0,0 +1,58 @@ + + + + + grails.views.mvc + + + + + + + + + + +
+ grails.views.mvc +
+ + + + + +
+

Classes

+ +
+ + + + + + + + + + diff --git a/3.2.3/api/grails/views/mvc/package-summary.html b/3.2.3/api/grails/views/mvc/package-summary.html new file mode 100644 index 000000000..d1720db0a --- /dev/null +++ b/3.2.3/api/grails/views/mvc/package-summary.html @@ -0,0 +1,177 @@ + + + + + +grails.views.mvc (Groovy Documentation) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package grails.views.mvc

+
+ + + +
+ + + + +
+ +
+ + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/3.2.3/api/grails/views/mvc/renderer/DefaultViewRenderer.html b/3.2.3/api/grails/views/mvc/renderer/DefaultViewRenderer.html new file mode 100644 index 000000000..31f36aaf8 --- /dev/null +++ b/3.2.3/api/grails/views/mvc/renderer/DefaultViewRenderer.html @@ -0,0 +1,476 @@ + + + + + + + + + + + DefaultViewRenderer (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.mvc.renderer
+ +

[Groovy] Class DefaultViewRenderer<T>

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/mvc/renderer/package-frame.html b/3.2.3/api/grails/views/mvc/renderer/package-frame.html new file mode 100644 index 000000000..c180dccf7 --- /dev/null +++ b/3.2.3/api/grails/views/mvc/renderer/package-frame.html @@ -0,0 +1,58 @@ + + + + + grails.views.mvc.renderer + + + + + + + + + + +
+ grails.views.mvc.renderer +
+ + + + + +
+

Classes

+ +
+ + + + + + + + + + diff --git a/3.2.3/api/grails/views/mvc/renderer/package-summary.html b/3.2.3/api/grails/views/mvc/renderer/package-summary.html new file mode 100644 index 000000000..3dc69a105 --- /dev/null +++ b/3.2.3/api/grails/views/mvc/renderer/package-summary.html @@ -0,0 +1,144 @@ + + + + + +grails.views.mvc.renderer (Groovy Documentation) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package grails.views.mvc.renderer

+
+ + + +
+ + + + +
+ +
+ + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/3.2.3/api/grails/views/package-frame.html b/3.2.3/api/grails/views/package-frame.html new file mode 100644 index 000000000..3c0ac7f4e --- /dev/null +++ b/3.2.3/api/grails/views/package-frame.html @@ -0,0 +1,82 @@ + + + + + grails.views + + + + + + + + + + +
+ grails.views +
+ + + +
+

Interfaces

+ +
+ + + +
+

Traits

+ +
+ + + +
+

Classes

+ +
+ + + + +
+

Exceptions

+ +
+ + + + + + + + diff --git a/3.2.3/api/grails/views/package-summary.html b/3.2.3/api/grails/views/package-summary.html new file mode 100644 index 000000000..1e5278bc6 --- /dev/null +++ b/3.2.3/api/grails/views/package-summary.html @@ -0,0 +1,350 @@ + + + + + +grails.views (Groovy Documentation) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package grails.views

+
+ + + +
+ + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + + +
+ +
+ + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/3.2.3/api/grails/views/resolve/GenericGroovyTemplateResolver.html b/3.2.3/api/grails/views/resolve/GenericGroovyTemplateResolver.html new file mode 100644 index 000000000..16b51d18a --- /dev/null +++ b/3.2.3/api/grails/views/resolve/GenericGroovyTemplateResolver.html @@ -0,0 +1,531 @@ + + + + + + + + + + + GenericGroovyTemplateResolver (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.resolve
+ +

[Groovy] Class GenericGroovyTemplateResolver

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/resolve/GenericViewUriResolver.html b/3.2.3/api/grails/views/resolve/GenericViewUriResolver.html new file mode 100644 index 000000000..a5c7e8748 --- /dev/null +++ b/3.2.3/api/grails/views/resolve/GenericViewUriResolver.html @@ -0,0 +1,487 @@ + + + + + + + + + + + GenericViewUriResolver (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.resolve
+ +

[Groovy] Class GenericViewUriResolver

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/resolve/PluginAwareTemplateResolver.html b/3.2.3/api/grails/views/resolve/PluginAwareTemplateResolver.html new file mode 100644 index 000000000..724556295 --- /dev/null +++ b/3.2.3/api/grails/views/resolve/PluginAwareTemplateResolver.html @@ -0,0 +1,436 @@ + + + + + + + + + + + PluginAwareTemplateResolver (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.resolve
+ +

[Groovy] Class PluginAwareTemplateResolver

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/resolve/TemplateResolverUtils.html b/3.2.3/api/grails/views/resolve/TemplateResolverUtils.html new file mode 100644 index 000000000..8091eb075 --- /dev/null +++ b/3.2.3/api/grails/views/resolve/TemplateResolverUtils.html @@ -0,0 +1,316 @@ + + + + + + + + + + + TemplateResolverUtils (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.resolve
+ +

[Groovy] Class TemplateResolverUtils

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/resolve/package-frame.html b/3.2.3/api/grails/views/resolve/package-frame.html new file mode 100644 index 000000000..7ff4333fb --- /dev/null +++ b/3.2.3/api/grails/views/resolve/package-frame.html @@ -0,0 +1,58 @@ + + + + + grails.views.resolve + + + + + + + + + + +
+ grails.views.resolve +
+ + + + + +
+

Classes

+ +
+ + + + + + + + + + diff --git a/3.2.3/api/grails/views/resolve/package-summary.html b/3.2.3/api/grails/views/resolve/package-summary.html new file mode 100644 index 000000000..322f38919 --- /dev/null +++ b/3.2.3/api/grails/views/resolve/package-summary.html @@ -0,0 +1,168 @@ + + + + + +grails.views.resolve (Groovy Documentation) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package grails.views.resolve

+
+ + + +
+ + + + +
+ +
+ + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/3.2.3/api/grails/views/utils/ViewUtils.html b/3.2.3/api/grails/views/utils/ViewUtils.html new file mode 100644 index 000000000..7b5c92d54 --- /dev/null +++ b/3.2.3/api/grails/views/utils/ViewUtils.html @@ -0,0 +1,316 @@ + + + + + + + + + + + ViewUtils (Grails Views 3.2.3) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: grails.views.utils
+ +

[Groovy] Class ViewUtils

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/3.2.3/api/grails/views/utils/package-frame.html b/3.2.3/api/grails/views/utils/package-frame.html new file mode 100644 index 000000000..e43d220d1 --- /dev/null +++ b/3.2.3/api/grails/views/utils/package-frame.html @@ -0,0 +1,58 @@ + + + + + grails.views.utils + + + + + + + + + + +
+ grails.views.utils +
+ + + + + +
+

Classes

+ +
+ + + + + + + + + + diff --git a/3.2.3/api/grails/views/utils/package-summary.html b/3.2.3/api/grails/views/utils/package-summary.html new file mode 100644 index 000000000..cc991baf1 --- /dev/null +++ b/3.2.3/api/grails/views/utils/package-summary.html @@ -0,0 +1,144 @@ + + + + + +grails.views.utils (Groovy Documentation) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package grails.views.utils

+
+ + + +
+ + + + +
+ +
+ + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/3.2.3/api/groovy.ico b/3.2.3/api/groovy.ico new file mode 100644 index 000000000..e69de29bb diff --git a/3.2.3/api/help-doc.html b/3.2.3/api/help-doc.html new file mode 100644 index 000000000..f007422de --- /dev/null +++ b/3.2.3/api/help-doc.html @@ -0,0 +1,196 @@ + + + + + + + + + API Help (Groovy Documentation) + + + + + + + + + +
+ + + + + +
+ + + +
+

How This API Document Is Organized

+
This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
+
+
+ + This help file applies to API documentation generated using the standard doclet.
+ +
+ + + + + +
+ + + + diff --git a/3.2.3/api/index-all.html b/3.2.3/api/index-all.html new file mode 100644 index 000000000..807631f9f --- /dev/null +++ b/3.2.3/api/index-all.html @@ -0,0 +1,2561 @@ + + + + + + + + Index (Groovy Documentation) + + + + + + + + +
+ + + + + +
+ + +
+ +A + +B + +C + +D + +E + +F + +G + +H + +I + +J + +K + +L + +M + +N + +O + +P + +Q + +R + +S + +T + +U + +V + +W + +X + +Y + +Z + +_ + + + + +

A

+
+ +
AbstractGroovyTemplateCompiler - Class in grails.views +
A generic compiler for Groovy templates that are compiled into classes in production
+
AbstractGroovyTemplateCompiler() - Constructor in AbstractGroovyTemplateCompiler +
+
AbstractGroovyTemplateCompileTask - Class in grails.views.gradle +
Abstract Gradle task for compiling templates, using GenericGroovyTemplateCompiler
+
AbstractGroovyTemplateCompileTask.1 - Class in grails.views.gradle +
+
AbstractGroovyTemplateCompileTask.1() - Constructor in AbstractGroovyTemplateCompileTask.1 +
+
AbstractGroovyTemplateCompileTask() - Constructor in AbstractGroovyTemplateCompileTask +
+
AbstractGroovyTemplatePlugin - Class in grails.views.gradle +
Abstract implementation of a plugin that compiles views
+
AbstractGroovyTemplatePlugin(Class<? extends AbstractGroovyTemplateCompileTask>, java.lang.String, java.lang.String) - Constructor in AbstractGroovyTemplatePlugin +
+
AbstractJsonViewContainerRenderer - Class in grails.plugin.json.renderer +
A container renderer that looks up JSON views
+
AbstractJsonViewContainerRenderer() - Constructor in AbstractJsonViewContainerRenderer +
+
AbstractWritableScript - Class in grails.views +
A script that is writable
+
AbstractWritableScript() - Constructor in AbstractWritableScript +
+
actionName - Property in GrailsView +
Returns:
The current action name
+
actionName(java.lang.String) - Method in TestRequestConfigurer +
+
addConverter(Class<T>, Closure<?>) - Method in JsonGenerator.Options +
Registers a closure that will be called when the specified type or subtype + is serialized.
+
allowResourceExpansion - Property in GenericViewConfiguration +
Whether resource expansion is allowed
+
appendObjectId(java.lang.StringBuilder, java.util.Map) - Method in TestLinkGenerator +
+
APPLIED - Field in ViewsTransform +
+
apply(org.gradle.api.Project) - Method in AbstractGroovyTemplatePlugin +
+
asBoolean() - Method in DelegatingParameters +
+
asBoolean() - Method in EmptyParameters +
+
asBoolean() - Method in Parameters +
Returns:
The parameters as a boolean value.
+
ASSOCIATIONS - Property in DefaultJsonViewHelper +
The associations parameter
+
attemptResolveClass(java.lang.String) - Method in ResolvableGroovyTemplateEngine +
+
attemptResolvePath(java.lang.String) - Method in ResolvableGroovyTemplateEngine +
+
attribute(java.lang.String, java.lang.Object) - Method in TestRequestConfigurer +
+
attributeNames - Property in GenericGroovyTemplateView.HttpViewRequest +
+
attributes - Property in TestRequestConfigurer +
+
author - Property in JsonViewGrailsPlugin +
+
author - Property in MarkupViewGrailsPlugin +
+
authorEmail - Property in JsonViewGrailsPlugin +
+
authorEmail - Property in MarkupViewGrailsPlugin +
+
+ + + +

B

+
+ +
baseDir - Property in GenericGroovyTemplateResolver +
+
baseTemplateClass - Property in GenericViewConfiguration +
The template base class
+
BEFORE_CLOSURE - Field in DefaultGrailsJsonViewHelper +
+
beforeMethodCallExpression(org.codehaus.groovy.ast.expr.MethodCallExpression) - Method in BuilderTypeCheckingExtension +
+
beforeMethodCallExpression(org.codehaus.groovy.ast.expr.MethodCallExpression) - Method in JsonTemplateTypeCheckingExtension +
+
binding - Property in MarkupViewTemplate +
+
binding - Property in WritableScript +
+
BLANK - Field in GenericViewUriResolver +
+
boolean(java.lang.String, java.lang.Boolean) - Method in DelegatingParameters +
+
boolean(java.lang.String, java.lang.Boolean) - Method in EmptyParameters +
+
boolean(java.lang.String, java.lang.Boolean) - Method in Parameters +
Obtains the value of a parameter as a Boolean
+
build() - Method in JsonGenerator.Options +
Creates a JsonGenerator that is based on the current options.
+
BUILDER_CLASS_NODE - Field in JsonTemplateTypeCheckingExtension +
+
builderExpression - Field in BuilderTypeCheckingExtension.BuilderMethodReplacer +
+
builderInvokeMethod - Field in BuilderTypeCheckingExtension.BuilderMethodReplacer +
+
BuilderMethodReplacer(org.codehaus.groovy.ast.MethodNode, org.codehaus.groovy.ast.MethodNode, java.lang.String, org.codehaus.groovy.control.SourceUnit, Set<MethodCallExpression>) - Constructor in BuilderTypeCheckingExtension.BuilderMethodReplacer +
+
BuilderTypeCheckingExtension - Class in grails.views.compiler +
An abstract type checking extension for view DSLs to implement
+
BuilderTypeCheckingExtension.BuilderMethodReplacer - Class in grails.views.compiler +
+
BuilderTypeCheckingExtension() - Constructor in BuilderTypeCheckingExtension +
+
builderVariableName - Field in BuilderTypeCheckingExtension.BuilderMethodReplacer +
+
buildPaginateParams(java.lang.Integer, java.lang.Integer, java.lang.String, java.lang.String) - Method in DefaultJsonViewHelper +
+
buildQualifiers(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) - Method in SmartViewResolver +
+
byte(java.lang.String, java.lang.Integer) - Method in DelegatingParameters +
+
byte(java.lang.String, java.lang.Integer) - Method in EmptyParameters +
+
byte(java.lang.String, java.lang.Integer) - Method in Parameters +
Obtains the value of a parameter as a byte
+
+ + + +

C

+
+ +
cache - Property in GenericViewConfiguration +
Whether the cache templates
+
cache - Property in MarkupViewConfiguration +
+
cachedTemplates - Field in ResolvableGroovyTemplateEngine +
+
call(java.lang.String, grails.plugin.json.builder.JsonOutput.JsonUnescaped) - Method in DefaultHalViewHelper.HalStreamingJsonDelegate +
+
call(java.lang.String, java.util.Map, groovy.lang.Closure) - Method in StreamingJsonBuilder +
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.
+
call(java.lang.String, groovy.lang.Writable) - Method in StreamingJsonBuilder.StreamingJsonDelegate +
Writes an unescaped value.
+
callsToBeReplaced - Field in BuilderTypeCheckingExtension.BuilderMethodReplacer +
+
char(java.lang.String, java.lang.Character) - Method in DelegatingParameters +
+
char(java.lang.String, java.lang.Character) - Method in EmptyParameters +
+
char(java.lang.String, java.lang.Character) - Method in Parameters +
Obtains the value of a parameter as a character
+
characterEncoding - Property in TestRequestConfigurer +
+
charAt(int) - Method in JsonOutput.JsonWritable +
+
classLoader - Property in GenericGroovyTemplateResolver +
The class loader to use for template loading in production mode
+
classLoader - Property in ResolvableGroovyTemplateEngine +
The class loader to use
+
classNode - Property in ViewsTransform.ModelTypesVisitor +
+
cloneDelegateAndGetContent(java.io.Writer, groovy.lang.Closure, boolean, grails.plugin.json.builder.JsonGenerator) - Method in StreamingJsonBuilder.StreamingJsonDelegate +
+
CLOSE_BRACE - Field in JsonOutput +
+
CLOSE_BRACKET - Field in JsonOutput +
+
closure - Field in DefaultJsonGenerator.ClosureConverter +
+
ClosureConverter(Class<?>, Closure<?>) - Constructor in DefaultJsonGenerator.ClosureConverter +
+
COLON - Field in JsonOutput +
+
COLON_WITH_OPEN_BRACE - Field in StreamingJsonBuilder +
+
COMMA - Field in JsonOutput +
+
compilationUnit - Property in ViewsTransform +
+
compile(java.io.File) - Method in AbstractGroovyTemplateCompiler +
+
compile() - Method in AbstractGroovyTemplateCompileTask +
+
COMPILE_STATIC - Field in MarkupViewTemplateEngine +
+
compileOptions - Property in AbstractGroovyTemplateCompileTask +
+
compilerConfiguration - Field in ResolvableGroovyTemplateEngine +
Whether to reload views
+
compileStatic - Property in GenericViewConfiguration +
Whether to compile templates statically
+
compileStatic - Field in JsonViewTemplateEngine +
+
compileStatic - Field in MarkupViewTemplateEngine +
+
componentType - Property in ErrorsJsonViewRenderer +
+
config - Property in GrailsView +
Returns:
The configuration
+
config(grails.config.Config) - Method in TestRequestConfigurer +
+
configuration - Property in AbstractGroovyTemplateCompiler +
+
configuration - Property in GenericGroovyTemplateView +
+
configuration - Property in MarkupViewWritableScriptTemplate +
+
configuration - Property in SmartViewResolver +
+
configure(java.lang.ClassLoader, groovy.text.markup.TemplateConfiguration) - Method in MarkupViewTemplateEngine.1 +
+
configureCompiler(org.codehaus.groovy.control.CompilerConfiguration) - Method in AbstractGroovyTemplateCompiler +
+
configureCompiler(org.codehaus.groovy.control.CompilerConfiguration) - Method in JsonViewCompiler +
+
configureCompiler(org.codehaus.groovy.control.CompilerConfiguration) - Method in MarkupViewCompiler +
+
containsKey(java.lang.Object) - Method in DelegatingParameters +
+
containsKey(java.lang.Object) - Method in EmptyParameters +
+
containsKey(java.lang.Object) - Method in Parameters +
Returns:
Whether or not the key exists
+
contentType - Property in DefaultHalViewHelper +
+
contentType - Property in DefaultHalViewHelper.HalStreamingJsonDelegate +
+
contentType(java.lang.String) - Method in GenericGroovyTemplateView.HttpViewResponse +
+
contentType - Property in JsonRenderResult +
The content type
+
contentType(java.lang.String) - Method in JsonViewTest.TestHttpResponse +
+
contentType(java.lang.String) - Method in JsonViewUnitTest.TestHttpResponse +
+
contentType(java.lang.String) - Method in Response +
Set the response content type
+
contentType - Property in SmartViewResolver +
+
contentType - Property in TestRequestConfigurer +
+
contextPath - Property in TestRequestConfigurer +
+
controllerName - Property in GrailsView +
Returns:
The current controller name
+
controllerName(java.lang.String) - Method in TestRequestConfigurer +
+
controllerNamespace - Property in GrailsView +
Returns:
The current controller namespace
+
controllerNamespace(java.lang.String) - Method in TestRequestConfigurer +
+
convert(java.lang.Object, java.lang.String) - Method in DefaultJsonGenerator.ClosureConverter +
Converts a given value.
+
convert(java.lang.Object, java.lang.String) - Method in InstantJsonConverter +
+
convert(java.lang.Object, java.lang.String) - Method in JsonGenerator.Converter +
Converts a given object.
+
convert(java.lang.Object, java.lang.String) - Method in LocalDateJsonConverter +
+
convert(java.lang.Object, java.lang.String) - Method in LocalDateTimeJsonConverter +
+
convert(java.lang.Object, java.lang.String) - Method in LocalTimeJsonConverter +
+
convert(java.lang.Object, java.lang.String) - Method in OffsetDateTimeJsonConverter +
+
convert(java.lang.Object, java.lang.String) - Method in OffsetTimeJsonConverter +
+
convert(java.lang.Object, java.lang.String) - Method in PeriodJsonConverter +
+
convert(java.lang.Object, java.lang.String) - Method in ZonedDateTimeJsonConverter +
+
converters - Field in DefaultJsonGenerator +
+
converters - Field in JsonGenerator.Options +
+
createlinksRenderingClosure(Map<String, Object>) - Method in DefaultHalViewHelper +
+
createMarkupViewTemplate(groovy.text.Template) - Method in MarkupViewTemplateEngine +
+
createTemplate(Class<? extends Template>, java.io.File) - Method in JsonViewTemplateEngine +
+
createTemplate(Class<? extends Template>, java.io.File) - Method in MarkupViewTemplateEngine +
+
createTemplate(java.io.Reader) - Method in ResolvableGroovyTemplateEngine +
+
currentBlock - Property in HalCodeVisitorSupport +
+
curryDelegateAndGetContent(java.io.Writer, groovy.lang.Closure, java.lang.Object, boolean, grails.plugin.json.builder.JsonGenerator) - Method in StreamingJsonBuilder.StreamingJsonDelegate +
+
+ + + +

D

+
+ +
date(java.lang.String, java.lang.String) - Method in DelegatingParameters +
+
date(java.lang.String, java.lang.String) - Method in EmptyParameters +
+
date(java.lang.String, java.lang.String) - Method in Parameters +
Obtains the value of a parameter as a Date
+
dateFormat - Field in DefaultJsonGenerator +
+
dateFormat - Field in JsonGenerator.Options +
+
dateFormat - Property in JsonViewGeneratorConfiguration +
+
dateLocale - Field in DefaultJsonGenerator +
+
dateLocale - Field in JsonGenerator.Options +
+
DEEP - Field in GrailsJsonViewHelper +
The deep parameter
+
DEFAULT_EXCLUDES - Field in DefaultJsonViewHelper +
+
DEFAULT_GENERATOR - Field in JsonOutput +
+
DEFAULT_GORM_EXCLUDES - Field in DefaultJsonViewHelper +
+
DEFAULT_TIMEZONE - Field in JsonGenerator.Options +
+
DEFAULT_TIMEZONE - Field in JsonOutput +
+
DEFAULT_VALIDATEABLE_EXCLUDES - Field in DefaultJsonViewHelper +
+
defaultEncoding - Field in GenericGroovyTemplateView +
+
DefaultGrailsJsonViewHelper - Class in grails.plugin.json.view.api.internal +
Extended version of DefaultGrailsViewHelper with methods specific to JSON view rendering
+
DefaultGrailsJsonViewHelper.1 - Class in grails.plugin.json.view.api.internal +
+
DefaultGrailsJsonViewHelper.1() - Constructor in DefaultGrailsJsonViewHelper.1 +
+
DefaultGrailsJsonViewHelper.2 - Class in grails.plugin.json.view.api.internal +
+
DefaultGrailsJsonViewHelper.2() - Constructor in DefaultGrailsJsonViewHelper.2 +
+
DefaultGrailsJsonViewHelper.3 - Class in grails.plugin.json.view.api.internal +
+
DefaultGrailsJsonViewHelper.3() - Constructor in DefaultGrailsJsonViewHelper.3 +
+
DefaultGrailsJsonViewHelper.4 - Class in grails.plugin.json.view.api.internal +
+
DefaultGrailsJsonViewHelper.4() - Constructor in DefaultGrailsJsonViewHelper.4 +
+
DefaultGrailsJsonViewHelper.5 - Class in grails.plugin.json.view.api.internal +
+
DefaultGrailsJsonViewHelper.5() - Constructor in DefaultGrailsJsonViewHelper.5 +
+
DefaultGrailsJsonViewHelper.6 - Class in grails.plugin.json.view.api.internal +
+
DefaultGrailsJsonViewHelper.6() - Constructor in DefaultGrailsJsonViewHelper.6 +
+
DefaultGrailsJsonViewHelper() - Constructor in DefaultGrailsJsonViewHelper +
+
DefaultGrailsViewHelper - Class in grails.views.api.internal +
Default methods for views, additional methods can be added via traits
+
DefaultGrailsViewHelper(grails.views.api.GrailsView) - Constructor in DefaultGrailsViewHelper +
+
DefaultHalViewHelper - Class in grails.plugin.json.view.api.internal +
Helps creating HAL links
+
DefaultHalViewHelper.1 - Class in grails.plugin.json.view.api.internal +
+
DefaultHalViewHelper.1() - Constructor in DefaultHalViewHelper.1 +
+
DefaultHalViewHelper.HalStreamingJsonDelegate - Class in grails.plugin.json.view.api.internal +
+
DefaultHalViewHelper(grails.plugin.json.view.api.JsonView, grails.plugin.json.view.api.GrailsJsonViewHelper) - Constructor in DefaultHalViewHelper +
+
DefaultJsonApiIdRenderer - Class in grails.plugin.json.view.api.jsonapi +
+
DefaultJsonApiIdRenderer() - Constructor in DefaultJsonApiIdRenderer +
+
DefaultJsonApiViewHelper - Class in grails.plugin.json.view.api.internal +
Author:
Colin Harrington
+
DefaultJsonApiViewHelper.1 - Class in grails.plugin.json.view.api.internal +
+
DefaultJsonApiViewHelper.1() - Constructor in DefaultJsonApiViewHelper.1 +
+
DefaultJsonApiViewHelper.2 - Class in grails.plugin.json.view.api.internal +
+
DefaultJsonApiViewHelper.2() - Constructor in DefaultJsonApiViewHelper.2 +
+
DefaultJsonApiViewHelper.3 - Class in grails.plugin.json.view.api.internal +
+
DefaultJsonApiViewHelper.3() - Constructor in DefaultJsonApiViewHelper.3 +
+
DefaultJsonApiViewHelper.4 - Class in grails.plugin.json.view.api.internal +
+
DefaultJsonApiViewHelper.4() - Constructor in DefaultJsonApiViewHelper.4 +
+
DefaultJsonApiViewHelper.5 - Class in grails.plugin.json.view.api.internal +
+
DefaultJsonApiViewHelper.5() - Constructor in DefaultJsonApiViewHelper.5 +
+
DefaultJsonApiViewHelper.6 - Class in grails.plugin.json.view.api.internal +
+
DefaultJsonApiViewHelper.6() - Constructor in DefaultJsonApiViewHelper.6 +
+
DefaultJsonApiViewHelper.7 - Class in grails.plugin.json.view.api.internal +
+
DefaultJsonApiViewHelper.7() - Constructor in DefaultJsonApiViewHelper.7 +
+
DefaultJsonApiViewHelper(grails.plugin.json.view.api.JsonView, grails.plugin.json.view.api.GrailsJsonViewHelper) - Constructor in DefaultJsonApiViewHelper +
+
DefaultJsonGenerator - Class in grails.plugin.json.builder +
Temporary fork of DefaultJsonGenerator until Groovy 2.5.0 is out.
+
DefaultJsonGenerator.ClosureConverter - Class in grails.plugin.json.builder +
A converter that handles converting a given type to a JSON value + using a closure.
+
DefaultJsonGenerator(Options) - Constructor in DefaultJsonGenerator +
+
DefaultJsonViewHelper - Class in grails.plugin.json.view.api.internal +
+
DefaultJsonViewHelper.1 - Class in grails.plugin.json.view.api.internal +
+
DefaultJsonViewHelper.1() - Constructor in DefaultJsonViewHelper.1 +
+
DefaultJsonViewHelper() - Constructor in DefaultJsonViewHelper +
+
DefaultJsonViewIncludeExcludeSupport - Class in grails.plugin.json.view.api.internal +
+
DefaultJsonViewIncludeExcludeSupport(List<String>, List<String>) - Constructor in DefaultJsonViewIncludeExcludeSupport +
+
defaultPaginateParams(java.util.Map) - Method in DefaultJsonViewHelper +
+
defaultRenderer - Property in DefaultViewRenderer +
+
DefaultViewRenderer - Class in grails.views.mvc.renderer +
A renderer implementation that looks up a view from the ViewResolver
+
DefaultViewRenderer(Class<T>, grails.web.mime.MimeType, grails.views.mvc.SmartViewResolver, grails.core.support.proxy.ProxyHandler, grails.rest.render.RendererRegistry, grails.rest.render.Renderer) - Constructor in DefaultViewRenderer +
+
delegate - Property in DefaultHalViewHelper.HalStreamingJsonDelegate +
+
delegateInvokeMethod - Field in BuilderTypeCheckingExtension.BuilderMethodReplacer +
+
DelegatingParameters - Class in grails.views.mvc.http +
Delegate to a GrailsParameterMap implementation
+
DelegatingParameters(grails.util.TypeConvertingMap) - Constructor in DelegatingParameters +
+
description - Property in JsonViewGrailsPlugin +
+
description - Property in MarkupViewGrailsPlugin +
+
developers - Property in JsonViewGrailsPlugin +
+
developers - Property in MarkupViewGrailsPlugin +
+
DEVELOPMENT_MODE - Field in ViewsEnvironment +
+
disableUnicodeEscaping - Field in DefaultJsonGenerator +
+
disableUnicodeEscaping - Field in JsonGenerator.Options +
+
documentation - Property in JsonViewGrailsPlugin +
+
documentation - Property in MarkupViewGrailsPlugin +
+
DOT_CHAR - Field in GenericGroovyTemplateResolver +
+
DOUBLE_CLOSE_BRACKET - Field in StreamingJsonBuilder +
+
double(java.lang.String, java.lang.Double) - Method in DelegatingParameters +
+
double(java.lang.String, java.lang.Double) - Method in EmptyParameters +
+
double(java.lang.String, java.lang.Double) - Method in Parameters +
Obtains the value of a parameter as a Double
+
doWithSpring() - Method in JsonViewGrailsPlugin +
+
doWithSpring() - Method in MarkupViewGrailsPlugin +
+
doWrite(java.io.Writer) - Method in AbstractWritableScript +
Subclasses should implement to perform the write
+
doWrite(java.io.Writer) - Method in JsonViewWritableScript +
+
dynamicPrefix - Property in ViewsTransform +
+
+ + + +

E

+
+ +
EMBEDDED_ATTRIBUTE - Field in DefaultHalViewHelper +
+
embedded(java.lang.String, groovy.lang.Closure) - Method in DefaultHalViewHelper +
Outputs a HAL embedded entry for the content type and closure
+
embedded(java.lang.String, groovy.lang.Closure) - Method in HalViewHelper +
Outputs a HAL embedded entry for the content type and closure
+
EMBEDDED_PARAMETER - Field in DefaultHalViewHelper +
+
EMPTY_LIST_CHARS - Field in JsonOutput +
+
EMPTY_MAP_CHARS - Field in JsonOutput +
+
EMPTY_STRING_CHARS - Field in JsonOutput +
+
EmptyParameters - Class in grails.views.api.internal +
An empty parameters implementation
+
EmptyParameters() - Constructor in EmptyParameters +
+
enableReloading - Property in GenericViewConfiguration +
Whether to enable reloading
+
enableReloading - Property in ResolvableGroovyTemplateEngine +
Whether to enable reloading
+
encoding(java.lang.String) - Method in GenericGroovyTemplateView.HttpViewResponse +
+
encoding - Property in GenericViewConfiguration +
The encoding to use
+
encoding(java.lang.String) - Method in JsonViewTest.TestHttpResponse +
+
encoding(java.lang.String) - Method in JsonViewUnitTest.TestHttpResponse +
+
encoding(java.lang.String) - Method in Response +
Sets the response encoding
+
encoding - Property in ViewCompileOptions +
+
ensureAbsolute(java.util.Map) - Method in DefaultGrailsViewHelper +
+
equals(java.lang.Object) - Method in DefaultJsonGenerator.ClosureConverter +
Any two Converter instances registered for the same type are considered + to be equal.
+
ErrorsJsonViewRenderer - Class in grails.plugin.json.renderer +
Renderer for the errors view
+
ErrorsJsonViewRenderer() - Constructor in ErrorsJsonViewRenderer +
+
escapeUnicode - Property in JsonViewGeneratorConfiguration +
+
excludedFieldNames - Field in DefaultJsonGenerator +
+
excludedFieldNames - Field in JsonGenerator.Options +
+
excludedFieldTypes - Field in DefaultJsonGenerator +
+
excludedFieldTypes - Field in JsonGenerator.Options +
+
excludeFieldsByName(Iterable<? extends CharSequence>) - Method in JsonGenerator.Options +
Excludes from the output any fields that match the specified names.
+
excludeFieldsByType(Iterable<Class<?>>) - Method in JsonGenerator.Options +
Excludes from the output any fields whose type is the same or is + assignable to any of the given types.
+
excludeNulls - Field in DefaultJsonGenerator +
+
excludeNulls - Field in JsonGenerator.Options +
+
execute(org.gradle.work.InputChanges) - Method in AbstractGroovyTemplateCompileTask +
+
execute(org.gradle.process.JavaExecSpec) - Method in AbstractGroovyTemplateCompileTask.1 +
+
EXPAND - Property in DefaultJsonViewHelper +
The expand parameter
+
extension - Property in GenericViewConfiguration +
The file extension of the templates
+
extension - Property in GenericViewUriResolver +
+
EXTENSION - Field in JsonViewWritableScript +
+
EXTENSION - Field in MarkupViewTemplate +
+
extension - Property in ResolvableGroovyTemplateEngine +
The view uri resolver
+
extension - Property in ViewsTransform +
+
+ + + +

F

+
+ +
field - Property in WritableScriptTemplate.FieldSetter +
+
FieldSetter(java.lang.reflect.Field) - Constructor in WritableScriptTemplate.FieldSetter +
+
fileExtension - Property in AbstractGroovyTemplatePlugin +
+
fileName - Property in ViewCompilationException +
+
findConverter(Class<?>) - Method in DefaultJsonGenerator +
Finds a converter that can handle the given type.
+
findEntity(java.lang.Object) - Method in DefaultJsonViewHelper +
+
findFirstElementCausedByScript() - Method in ViewRenderException +
+
findTraitInjectors() - Method in JsonViewsTransform +
+
findTraitInjectors() - Method in MarkupViewsTransform +
+
findTraitInjectors() - Method in ViewsTransform +
+
findUniquePackages(grails.core.GrailsClass) - Method in GenericViewConfiguration +
+
findViewConfigPropertyDescriptor() - Method in JsonViewConfiguration +
+
findViewConfigPropertyDescriptor() - Method in MarkupViewConfiguration +
+
first - Field in JsonOutput.JsonWritable +
+
first - Field in StreamingJsonBuilder.StreamingJsonDelegate +
+
float(java.lang.String, java.lang.Float) - Method in DelegatingParameters +
+
float(java.lang.String, java.lang.Float) - Method in EmptyParameters +
+
float(java.lang.String, java.lang.Float) - Method in Parameters +
Obtains the value of a parameter as a Float
+
forkOptions - Property in ViewCompileOptions +
+
fullTemplateNameForClass(Class<?>) - Method in TemplateResolverUtils +
+
+ + + +

G

+
+ +
generator - Property in JsonView +
The default generator
+
generator - Property in JsonViewConfiguration +
+
generator - Property in JsonViewTemplate +
+
generator - Property in JsonViewTemplateEngine +
+
generator - Field in StreamingJsonBuilder +
+
generator - Field in StreamingJsonBuilder.StreamingJsonDelegate +
+
GenericGroovyTemplateResolver - Class in grails.views.resolve +
A generic TemplateResolver for resolving Groovy templates that are compiled into classes
+
GenericGroovyTemplateResolver() - Constructor in GenericGroovyTemplateResolver +
+
GenericGroovyTemplateView - Class in grails.views.mvc +
An implementation of the Spring AbstractUrlBaseView class for ResolvableGroovyTemplateEngine
+
GenericGroovyTemplateView.HttpViewRequest - Class in grails.views.mvc +
+
GenericGroovyTemplateView.HttpViewResponse - Class in grails.views.mvc +
+
GenericGroovyTemplateView() - Constructor in GenericGroovyTemplateView +
+
GenericGroovyTemplateViewResolver - Class in grails.views.mvc +
A UrlBasedViewResolver for ResolvableGroovyTemplateEngine
+
GenericGroovyTemplateViewResolver(grails.views.mvc.SmartViewResolver) - Constructor in GenericGroovyTemplateViewResolver +
+
GenericViewConfiguration - Trait in grails.views +
Default configuration
+
GenericViewUriResolver - Class in grails.views.resolve +
Generic implementation for resolving views
+
GenericViewUriResolver(java.lang.String) - Constructor in GenericViewUriResolver +
+
get(java.lang.String, java.lang.String) - Method in DelegatingParameters +
+
get(java.lang.String, java.lang.String) - Method in EmptyParameters +
+
get(java.lang.String, java.lang.String) - Method in Parameters +
Obtains the value of a parameter
+
getAbsoluteTemplateURI(java.lang.String, boolean) - Method in GenericViewUriResolver +
Used to resolve template names that are not relative to a controller.
+
getAt(java.lang.Object) - Method in DelegatingParameters +
+
getAt(java.lang.Object) - Method in EmptyParameters +
+
getAt(java.lang.Object) - Method in Parameters +
+
getAttribute(java.lang.String) - Method in GenericGroovyTemplateView.HttpViewRequest +
+
getAttribute(java.lang.String) - Method in Request +
Obtains the value of an attribute
+
getAttribute(java.lang.String) - Method in TestRequestConfigurer +
+
getAttributeNames() - Method in Request +
Returns:
All of the attribute names
+
getAttributeNames() - Method in TestRequestConfigurer +
+
getAttributes(org.grails.datastore.mapping.model.PersistentEntity) - Method in DefaultJsonApiViewHelper +
+
getBaseTemplateClass() - Method in ViewConfiguration +
Returns:
The template base class
+
getBinding() - Method in MarkupViewTemplate +
+
getBinding() - Method in WritableScript +
Returns:
Obtains the binding
+
getBooleanFromMap(java.lang.String, Map<?, ?>, boolean) - Method in ViewUtils +
Retrieves a boolean value from a Map for the given key
+
getBuilderClassNode() - Method in BuilderTypeCheckingExtension +
Returns:
The class node of the builder
+
getBuilderClassNode() - Method in JsonTemplateTypeCheckingExtension +
+
getBuilderInvokeMethod() - Method in BuilderTypeCheckingExtension +
Returns:
The method node to invoke for an unresolved dynamic method on the main builder variable
+
getBuilderInvokeMethod() - Method in JsonTemplateTypeCheckingExtension +
+
getBuilderVariableName() - Method in BuilderTypeCheckingExtension +
Returns:
The name within the view script of the main builder variable
+
getBuilderVariableName() - Method in JsonTemplateTypeCheckingExtension +
+
getCachedTemplatesWithDefault(java.lang.String) - Method in ResolvableGroovyTemplateEngine +
+
getCharacterEncoding() - Method in GenericGroovyTemplateView.HttpViewRequest +
+
getCharacterEncoding() - Method in Request +
Returns:
The request character encoding
+
getCompilerConfiguration() - Method in ResolvableGroovyTemplateEngine +
+
getCompilerName() - Method in AbstractGroovyTemplateCompileTask +
+
getCompilerName() - Method in JsonViewCompilerTask +
+
getCompilerName() - Method in MarkupViewCompilerTask +
+
getContentType() - Method in GenericGroovyTemplateView.HttpViewRequest +
+
getContentType() - Method in Request +
Returns:
The request content type
+
getContextPath() - Method in DefaultGrailsViewHelper +
+
getContextPath() - Method in GenericGroovyTemplateView.HttpViewRequest +
+
getContextPath() - Method in Request +
Returns:
The context path
+
getContextPath() - Method in TestLinkGenerator +
+
getDelegateInvokeMethod() - Method in BuilderTypeCheckingExtension +
Returns:
The method node to invoke for unresolved methods within closures of the builder (implicit this)
+
getDelegateInvokeMethod() - Method in JsonTemplateTypeCheckingExtension +
+
getDynamicTemplatePrefix() - Method in JsonViewTemplateEngine +
+
getDynamicTemplatePrefix() - Method in MarkupViewTemplateEngine +
+
getDynamicTemplatePrefix() - Method in ResolvableGroovyTemplateEngine +
+
getEncoding() - Method in ViewConfiguration +
Returns:
The default encoding to use to render views
+
getExcludes(java.util.Map) - Method in DefaultJsonViewHelper +
+
getExpandProperties(grails.plugin.json.view.api.JsonView, java.util.Map) - Method in DefaultJsonViewHelper +
+
getExtension() - Method in ViewConfiguration +
Returns:
The file extension
+
getFileExtension() - Method in AbstractGroovyTemplateCompileTask +
+
getFileExtension() - Method in JsonViewCompilerTask +
+
getFileExtension() - Method in MarkupViewCompilerTask +
+
getFileName() - Method in ViewRenderException +
+
getG() - Method in GrailsView +
Returns:
Obtain the view helper
+
getG() - Method in JsonView +
Returns:
The default view helper
+
getGenerator() - Method in DefaultJsonViewHelper +
+
getGenericType(java.lang.Class, java.beans.PropertyDescriptor) - Method in DefaultJsonViewHelper +
+
getHeader(java.lang.String) - Method in GenericGroovyTemplateView.HttpViewRequest +
+
getHeader(java.lang.String) - Method in Request +
Obtains the value of a header
+
getHeader(java.lang.String) - Method in TestRequestConfigurer +
+
getHeaderNames() - Method in Request +
Returns:
The header for the request
+
getHeaderNames() - Method in TestRequestConfigurer +
+
getHeaders(java.lang.String) - Method in GenericGroovyTemplateView.HttpViewRequest +
+
getHeaders(java.lang.String) - Method in Request +
Obtains all the values for the give header
+
getHeaders(java.lang.String) - Method in TestRequestConfigurer +
+
getIdGenerator() - Method in DefaultJsonApiViewHelper +
+
getIncludes(java.util.Map) - Method in DefaultJsonViewHelper +
+
getIndent(int, Map<Integer,char[]>) - Method in JsonOutput +
Creates new indent if it not exists in the indent cache.
+
getIterableWritable(java.lang.Iterable, groovy.lang.Closure) - Method in DefaultGrailsJsonViewHelper +
+
getJsonStackTrace(java.lang.Throwable) - Method in DefaultJsonViewHelper +
+
getLastOffset(java.lang.Integer, java.lang.Integer) - Method in DefaultJsonViewHelper +
+
getLineNumber() - Method in ViewCompilationException +
+
getLinkGenerator() - Method in DefaultGrailsViewHelper +
+
getLinkGenerator() - Method in GrailsView +
The link generator
+
getLinks(java.lang.Object) - Method in DefaultHalViewHelper +
+
getMappingContext() - Method in GrailsView +
The GORM mapping context
+
getMappingContext() - Method in JsonViewUnitTest +
+
getMapWritable(java.util.Map, java.util.Map, groovy.lang.Closure, JsonWritable>) - Method in DefaultGrailsJsonViewHelper +
+
getMessageSource() - Method in GrailsView +
The message source object
+
getMethod() - Method in GenericGroovyTemplateView.HttpViewRequest +
+
getMethod() - Method in Request +
Returns:
The request method
+
getMimeUtility() - Method in GrailsView +
The mime utility
+
getModelTypes() - Method in AbstractWritableScript +
+
getNextOffset(java.lang.Integer, java.lang.Integer, java.lang.Integer) - Method in DefaultJsonViewHelper +
+
getObjectProperties(java.lang.Object) - Method in DefaultJsonGenerator +
+
getOut() - Method in AbstractWritableScript +
Returns:
The current writer
+
getOut() - Method in WriterProvider +
Returns:
The current writer
+
getPackageImports() - Method in ViewConfiguration +
Returns:
The packages to automatically import
+
getPackageName() - Method in ViewConfiguration +
Returns:
The package name
+
getPage() - Method in HttpView +
Returns:
The same as getResponse()
+
getPaginationLinks(java.lang.Object, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.String, java.lang.String) - Method in DefaultJsonViewHelper +
+
getParentPath() - Method in WritableScriptTemplate +
The path to the parent directory that containers the template
+
getPersistentEntity(org.grails.datastore.mapping.model.PersistentEntity, java.lang.Object) - Method in DefaultGrailsJsonViewHelper +
Retrieves the persistent entity of the value if it exists, defaults to {
Parameters:
entity}
+
getPrevOffset(java.lang.Integer, java.lang.Integer) - Method in DefaultJsonViewHelper +
+
getProjectPackageNames(java.io.File) - Method in AbstractGroovyTemplateCompileTask +
+
getProperty(java.lang.String) - Method in EmptyParameters +
+
getProperty(java.lang.String) - Method in Parameters +
+
getProxyHandler() - Method in GrailsView +
Handlers for proxies
+
getRelationships(org.grails.datastore.mapping.model.PersistentEntity) - Method in DefaultJsonApiViewHelper +
+
getRenderNulls(java.util.Map) - Method in DefaultJsonViewHelper +
+
getScriptBaseName() - Method in AbstractGroovyTemplateCompileTask +
+
getScriptBaseName() - Method in JsonViewCompilerTask +
+
getScriptBaseName() - Method in MarkupViewCompilerTask +
+
getServerBaseURL() - Method in DefaultGrailsViewHelper +
+
getServerBaseURL() - Method in TestLinkGenerator +
+
getSourceFile() - Method in WritableScript +
Obtains the source file
+
getSourceUnit() - Method in BuilderTypeCheckingExtension.BuilderMethodReplacer +
+
getStaticImports() - Method in ViewConfiguration +
Returns:
The static imports to automatically import
+
getStringListFromMap(java.lang.String, java.util.Map, List<String>) - Method in ViewUtils +
Obtains a list of strings from the map for the given key
+
getTemplateEngine() - Method in GrailsView +
The template engine
+
getTemplateEngine() - Method in JsonViewUnitTest +
+
getTemplatePath() - Method in ViewConfiguration +
Returns:
Path to the templates
+
getText() - Method in JsonOutput.JsonUnescaped +
+
getType() - Method in WritableScriptTemplate.VariableSetter +
+
getUri() - Method in GenericGroovyTemplateView.HttpViewRequest +
+
getUri() - Method in Request +
Returns:
The request URI
+
getValidIdProperties(org.grails.datastore.mapping.model.PersistentEntity, java.lang.Object, List<String>, List<String>, java.lang.String) - Method in DefaultGrailsJsonViewHelper +
+
getViewCacheWithDefault(java.lang.String) - Method in SmartViewResolver +
+
getViewModuleName() - Method in JsonViewConfiguration +
+
getViewModuleName() - Method in MarkupViewConfiguration +
+
getViewModuleName() - Method in ViewConfiguration +
Returns:
The name of the views module (example json or markup)
+
getWriter() - Method in StreamingJsonBuilder.StreamingJsonDelegate +
Returns:
Obtains the current writer
+
GrailsJsonViewHelper - Interface in grails.plugin.json.view.api +
Additional methods specific to JSON views
+
GrailsJsonViewsPlugin - Class in grails.views.gradle.json +
Concrete implementation of plugin for JSON views
+
GrailsJsonViewsPlugin() - Constructor in GrailsJsonViewsPlugin +
+
GrailsMarkupViewsPlugin - Class in grails.views.gradle.markup +
A plugin for compiling markup templates
+
GrailsMarkupViewsPlugin() - Constructor in GrailsMarkupViewsPlugin +
+
grailsVersion - Property in JsonViewGrailsPlugin +
+
grailsVersion - Property in MarkupViewGrailsPlugin +
+
GrailsView - Trait in grails.views.api +
A trait for all view types to extend to add methods to generate links, render other templates and so on
+
GrailsViewHelper - Interface in grails.views.api +
Methods available via the 'g' namespace in views
+
GrailsViewTemplate - Class in grails.views +
Authors:
Graeme Rocher
+
GrailsViewTemplate() - Constructor in GrailsViewTemplate +
+
+ + + +

H

+
+ +
hal - Property in JsonView +
The HAL view helper
+
HalCodeVisitorSupport - Class in grails.views.compiler +
+
HalCodeVisitorSupport(org.codehaus.groovy.control.CompilationUnit) - Constructor in HalCodeVisitorSupport +
+
HalStreamingJsonDelegate(java.lang.String, grails.plugin.json.view.api.internal.DefaultHalViewHelper, grails.plugin.json.builder.StreamingJsonBuilder.StreamingJsonDelegate) - Constructor in DefaultHalViewHelper.HalStreamingJsonDelegate +
+
HalViewHelper - Interface in grails.plugin.json.view.api +
Authors:
Graeme Rocher
+
handles(Class<?>) - Method in DefaultJsonGenerator.ClosureConverter +
Returns true if this converter can handle conversions + of the given type.
+
handles(Class<?>) - Method in InstantJsonConverter +
+
handles(Class<?>) - Method in JsonGenerator.Converter +
Returns true if this converter can handle conversions + of the given type.
+
handles(Class<?>) - Method in LocalDateJsonConverter +
+
handles(Class<?>) - Method in LocalDateTimeJsonConverter +
+
handles(Class<?>) - Method in LocalTimeJsonConverter +
+
handles(Class<?>) - Method in OffsetDateTimeJsonConverter +
+
handles(Class<?>) - Method in OffsetTimeJsonConverter +
+
handles(Class<?>) - Method in PeriodJsonConverter +
+
handles(Class<?>) - Method in ZonedDateTimeJsonConverter +
+
handleValue(java.lang.Object, java.io.Writer, java.util.Map, groovy.lang.Closure, JsonWritable>, java.lang.String) - Method in DefaultGrailsJsonViewHelper +
+
hashCode() - Method in DefaultJsonGenerator.ClosureConverter +
+
header(java.lang.String, java.lang.String) - Method in GenericGroovyTemplateView.HttpViewResponse +
+
header(Map<String, String>) - Method in JsonViewTest.TestHttpResponse +
+
header(Map<String, String>) - Method in JsonViewUnitTest.TestHttpResponse +
+
header(Map<String, String>) - Method in Response +
Set a single named value header
+
header(java.lang.String, java.lang.String) - Method in TestRequestConfigurer +
+
headerNames - Property in GenericGroovyTemplateView.HttpViewRequest +
Returns:
The header for the request
+
headers(Map<String, String>) - Method in GenericGroovyTemplateView.HttpViewResponse +
+
headers - Property in JsonRenderResult +
The headers
+
headers(Map<String, String>) - Method in JsonViewTest.TestHttpResponse +
+
headers(Map<String, String>) - Method in JsonViewUnitTest.TestHttpResponse +
+
headers(Map<String, String>) - Method in Response +
Set multiple headers
+
headers - Property in TestRequestConfigurer +
+
HREF_ATTRIBUTE - Field in DefaultHalViewHelper +
+
HREFLANG_ATTRIBUTE - Field in DefaultHalViewHelper +
+
httpServletResponse - Property in GenericGroovyTemplateView.HttpViewResponse +
+
HttpView - Trait in grails.views.api +
A view that is rendered in the context of an HTTP request
+
HttpViewRequest(javax.servlet.http.HttpServletRequest) - Constructor in GenericGroovyTemplateView.HttpViewRequest +
+
HttpViewResponse(javax.servlet.http.HttpServletResponse) - Constructor in GenericGroovyTemplateView.HttpViewResponse +
+
+ + + +

I

+
+ +
includeAssociations(java.util.Map) - Method in DefaultJsonViewHelper +
+
includeExcludeSupport - Property in DefaultJsonViewHelper +
+
includes(List<String>, java.lang.String) - Method in DefaultJsonViewIncludeExcludeSupport +
+
inherits(java.util.Map) - Method in JsonView +
Specify a template that this template inherits from
+
initialize() - Method in JsonViewResolver +
+
initialize() - Method in MarkupViewResolver +
+
initializeProcessedObjects(groovy.lang.Binding) - Method in DefaultGrailsJsonViewHelper +
+
initializeTemplate(grails.views.GrailsViewTemplate, java.io.File) - Method in ResolvableGroovyTemplateEngine +
Initialises a template instance
+
initModelTypes(Class<? extends WritableScript>) - Method in ResolvableGroovyTemplateEngine.1 +
+
initModelTypes(Class<? extends WritableScript>) - Method in WritableScriptTemplate +
+
inline(java.lang.Object, groovy.lang.Closure) - Method in DefaultGrailsJsonViewHelper +
+
inline(java.lang.Object, groovy.lang.Closure) - Method in DefaultHalViewHelper +
+
inline(java.lang.Object) - Method in GrailsJsonViewHelper +
Renders the given object inline within the current JSON object instead of creating a new JSON object
+
inline(java.lang.Object) - Method in HalViewHelper +
Same as GrailsJsonViewHelper.inline but renders HAL links too
+
inline - Field in JsonOutput.JsonWritable +
+
inline - Property in JsonViewWritableScript +
+
innerEngine - Property in MarkupViewTemplateEngine +
+
insideScope - Property in BuilderTypeCheckingExtension +
+
InstantJsonConverter - Class in grails.plugin.json.converters +
A class to render a java.time.Instant as json
+
InstantJsonConverter() - Constructor in InstantJsonConverter +
+
int(java.lang.String, java.lang.Integer) - Method in DelegatingParameters +
+
int(java.lang.String, java.lang.Integer) - Method in EmptyParameters +
+
int(java.lang.String, java.lang.Integer) - Method in Parameters +
Obtains the value of a parameter as an integer
+
intercept(org.spockframework.runtime.extension.IMethodInvocation) - Method in JsonViewSetupSpecInterceptor +
+
invoke(grails.views.WritableScript, java.lang.Object) - Method in WritableScriptTemplate.FieldSetter +
+
invoke(grails.views.WritableScript, java.lang.Object) - Method in WritableScriptTemplate.MethodSetter +
+
invoke(grails.views.WritableScript, java.lang.Object) - Method in WritableScriptTemplate.VariableSetter +
+
invokeMethod(java.lang.String, java.lang.Object) - Method in DefaultHalViewHelper.HalStreamingJsonDelegate +
+
invokeMethod(java.lang.String, java.lang.Object) - Method in StreamingJsonBuilder +
A method call on the JSON builder instance will create a root object with only one key + whose name is the name of the method being called. +
+
invokeMethod(java.lang.String, java.lang.Object) - Method in StreamingJsonBuilder.StreamingJsonDelegate +
+
invokeMethod(java.lang.String, java.lang.Object) - Method in TemplateRenderer +
+
isAllowResourceExpansion() - Method in ViewConfiguration +
Returns:
Whether to allow resource expansion
+
isAttributeAssociation(org.grails.datastore.mapping.model.types.Association) - Method in DefaultJsonApiViewHelper +
+
isCache() - Method in MarkupViewConfiguration +
+
isCache() - Method in ViewConfiguration +
Returns:
Whether to cache
+
isCollectionWithClosure(java.lang.Object) - Method in StreamingJsonBuilder.StreamingJsonDelegate +
+
isCompileStatic() - Method in ViewConfiguration +
Returns:
Should compile statically
+
isDevelopmentMode() - Method in ViewsEnvironment +
Returns:
Whether development mode is enabled
+
isEmpty() - Method in DelegatingParameters +
+
isEmpty() - Method in EmptyParameters +
+
isEmpty() - Method in Parameters +
Returns:
Whether there are any parameters
+
isEnableReloading() - Method in ViewConfiguration +
Returns:
Whether reloading is enabled
+
isExcludingFieldsNamed(java.lang.String) - Method in DefaultJsonGenerator +
{@inheritDoc}
+
isExcludingFieldsNamed(java.lang.String) - Method in JsonGenerator +
Indicates whether this JsonGenerator is configured to exclude fields by + the given name.
+
isExcludingValues(java.lang.Object) - Method in DefaultJsonGenerator +
{@inheritDoc}
+
isExcludingValues(java.lang.Object) - Method in JsonGenerator +
Indicates whether this JsonGenerator is configured to exclude values + of the given object (may be null).
+
isMethodDynamic(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) - Method in BuilderTypeCheckingExtension +
+
isMethodDynamic(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) - Method in JsonTemplateTypeCheckingExtension +
+
isPrettyPrint() - Method in ViewConfiguration +
Returns:
Whether to pretty print
+
isPropertyDynamic(org.codehaus.groovy.ast.expr.PropertyExpression) - Method in BuilderTypeCheckingExtension +
+
isPropertyDynamic(org.codehaus.groovy.ast.expr.PropertyExpression) - Method in JsonTemplateTypeCheckingExtension +
+
isSimpleType(java.lang.Class, java.lang.Object) - Method in DefaultJsonViewHelper +
+
isSimpleValue(java.lang.Object) - Method in DefaultGrailsJsonViewHelper +
+
isStringType(java.lang.Class) - Method in DefaultJsonViewHelper +
+
issueManagement - Property in JsonViewGrailsPlugin +
+
issueManagement - Property in MarkupViewGrailsPlugin +
+
isUseAbsoluteLinks() - Method in ViewConfiguration +
Returns:
Whether to use absolute links
+
+ + + +

J

+
+ +
JSON_API_OBJECT - Property in DefaultJsonApiViewHelper +
The jsonapiobject parameter
+
JSON_BUILDER_INVOKE_METHOD - Field in JsonTemplateTypeCheckingExtension +
+
JSON_DATE_FORMAT - Field in JsonGenerator.Options +
+
JSON_DATE_FORMAT - Field in JsonOutput +
+
JSON_DATE_FORMAT_LOCALE - Field in JsonGenerator.Options +
+
JSON_DELEGATE_INVOKE_METHOD - Field in JsonTemplateTypeCheckingExtension +
+
json - Property in JsonRenderResult +
The JSON result
+
json - Property in JsonView +
The StreamingJsonBuilder instance
+
json(java.lang.Object) - Method in JsonViewWritableScript +
+
JSON_VIEW_SUFFIX - Field in JsonViewResolver +
+
jsonapi - Property in JsonView +
The JSON API view helper
+
JsonApiIdRenderStrategy - Interface in grails.plugin.json.view.api.jsonapi +
+
jsonApiIdRenderStrategy - Property in JsonView +
The strategy to use to render identifiers in the JSON API specification
+
jsonApiIdRenderStrategy - Property in JsonViewTemplate +
+
jsonApiIdRenderStrategy - Property in JsonViewTemplateEngine +
+
jsonApiIdRenderStrategy - Property in JsonViewTest +
+
JsonApiViewHelper - Interface in grails.plugin.json.view.api +
Authors:
Colin Harrington
+
jsonDelegate - Field in DefaultHalViewHelper +
+
JsonGenerator - Interface in grails.plugin.json.builder +
Temporary fork of groovy JsonGenerator until Groovy 2.5.0 is out.
+
JsonGenerator.Converter - Interface in grails.plugin.json.builder +
Handles converting a given type.
+
JsonGenerator.Options - Class in grails.plugin.json.builder +
A builder used to construct a JsonGenerator instance that allows + control over the serialized JSON output.
+
JsonOutput - Class in grails.plugin.json.builder +
Temporary fork of groovy.json.JsonOutput until Groovy 2.5.0 is out.
+
JsonOutput.JsonUnescaped - Class in grails.plugin.json.builder +
Represents unescaped JSON
+
JsonOutput.JsonWritable - Class in grails.plugin.json.builder +
Represents unescaped JSON
+
JsonRenderResult - Class in grails.plugin.json.view.test +
A result object returned by JsonViewTest
+
JsonRenderResult() - Constructor in JsonRenderResult +
+
JsonTemplateTypeCheckingExtension - Class in grails.plugin.json.view.internal +
A type checking extension for JSON builder
+
JsonTemplateTypeCheckingExtension() - Constructor in JsonTemplateTypeCheckingExtension +
+
jsonText - Property in JsonRenderResult +
The raw JSON text
+
JsonUnescaped(java.lang.CharSequence) - Constructor in JsonOutput.JsonUnescaped +
+
JsonView - Trait in grails.plugin.json.view.api +
Extends default view API with additional methods
+
jsonView - Property in TestRequestConfigurer +
+
JsonViewCompiler - Class in grails.plugin.json.view +
A compiler for JSON views
+
JsonViewCompiler() - Constructor in JsonViewCompiler +
+
JsonViewCompilerTask - Class in grails.views.gradle.json +
Concrete implementation that compiles JSON templates
+
JsonViewCompilerTask() - Constructor in JsonViewCompilerTask +
+
JsonViewConfiguration - Class in grails.plugin.json.view +
Default configuration for JSON views
+
JsonViewConfiguration() - Constructor in JsonViewConfiguration +
+
JsonViewGeneratorConfiguration - Class in grails.plugin.json.view +
Created by jameskleeh on 11/8/16.
+
JsonViewGeneratorConfiguration() - Constructor in JsonViewGeneratorConfiguration +
+
JsonViewGrailsPlugin - Class in grails.plugin.json.view +
+
JsonViewGrailsPlugin() - Constructor in JsonViewGrailsPlugin +
+
jsonViewHelper - Property in TemplateRenderer +
+
JsonViewJsonRenderer - Class in grails.plugin.json.renderer +
A renderer that will lookup a JSON view if it exists and render it, otherwise fallback to default
+
JsonViewJsonRenderer(Class<T>, grails.web.mime.MimeType, grails.views.mvc.SmartViewResolver, grails.core.support.proxy.ProxyHandler, grails.rest.render.RendererRegistry, grails.rest.render.Renderer) - Constructor in JsonViewJsonRenderer +
+
JsonViewResolver - Class in grails.plugin.json.view.mvc +
Authors:
Graeme Rocher
+
jsonViewResolver - Property in AbstractJsonViewContainerRenderer +
+
JsonViewResolver(grails.plugin.json.view.JsonViewTemplateEngine, java.lang.String, java.lang.String) - Constructor in JsonViewResolver +
+
JsonViewSetupSpecInterceptor - Class in grails.views.json.test.spock +
+
JsonViewSetupSpecInterceptor() - Constructor in JsonViewSetupSpecInterceptor +
+
jsonViewSetupSpecInterceptor - Property in JsonViewSpockExtension +
+
JsonViewSpockExtension - Class in grails.views.json.test.spock +
+
JsonViewSpockExtension() - Constructor in JsonViewSpockExtension +
+
JsonViewsTransform - Class in grails.plugin.json.view.internal +
Authors:
Graeme ROcher
+
JsonViewsTransform() - Constructor in JsonViewsTransform +
+
JsonViewTemplate - Class in grails.plugin.json.view.template +
+
JsonViewTemplate() - Constructor in JsonViewTemplate +
+
JsonViewTemplateEngine - Class in grails.plugin.json.view +
A template engine for parsing JSON views
+
JsonViewTemplateEngine(grails.views.ViewConfiguration, java.lang.ClassLoader) - Constructor in JsonViewTemplateEngine +
Constructs a JsonTemplateEngine with a custom base class
+
JsonViewTest - Trait in grails.plugin.json.view.test +
A trait that test classes can implement to add support for easily testing JSON views
+
JsonViewTest.TestHttpResponse - Class in grails.plugin.json.view.test +
+
JsonViewUnitTest - Trait in grails.views.json.test +
+
JsonViewUnitTest.TestHttpResponse - Class in grails.views.json.test +
+
JsonViewWritableScript - Class in grails.plugin.json.view +
+
JsonViewWritableScript() - Constructor in JsonViewWritableScript +
+
+ + + +

K

+
+ +
keySet() - Method in DelegatingParameters +
+
keySet() - Method in EmptyParameters +
+
keySet() - Method in Parameters +
Returns:
The parameter names
+
+ + + +

L

+
+ +
lastModified - Property in WritableScriptTemplate +
The last modified stamp of the source file. -1 if no source file.
+
length() - Method in JsonOutput.JsonWritable +
+
license - Property in JsonViewGrailsPlugin +
+
license - Property in MarkupViewGrailsPlugin +
+
lineNumber - Property in ViewRenderException +
+
link(java.util.Map, java.lang.String) - Method in DefaultGrailsViewHelper +
+
link(java.util.Map, java.lang.String) - Method in TestLinkGenerator +
+
linkGenerator - Property in GrailsViewTemplate +
The link generator
+
linkGenerator - Property in JsonViewTest +
+
linkGenerator - Field in ResolvableGroovyTemplateEngine +
+
LINKS_ATTRIBUTE - Field in DefaultHalViewHelper +
+
links(java.util.Map, java.lang.String) - Method in DefaultHalViewHelper +
+
links(java.util.Map, java.lang.Object, java.lang.Number) - Method in HalViewHelper +
Creates HAL links for the given model and pagination object
+
list(java.lang.String) - Method in DelegatingParameters +
+
list(java.lang.String) - Method in EmptyParameters +
+
list(java.lang.String) - Method in Parameters +
Returns value of the parameter as a list of values
+
LocalDateJsonConverter - Class in grails.plugin.json.converters +
A class to render a java.time.LocalDate as json
+
LocalDateJsonConverter() - Constructor in LocalDateJsonConverter +
+
LocalDateTimeJsonConverter - Class in grails.plugin.json.converters +
A class to render a java.time.LocalDateTime as json
+
LocalDateTimeJsonConverter() - Constructor in LocalDateTimeJsonConverter +
+
locale - Property in JsonViewGeneratorConfiguration +
+
locale - Property in View +
The locale of the view
+
localeResolver - Property in GenericGroovyTemplateView +
+
localeResolver - Property in SmartViewResolver +
+
LocalTimeJsonConverter - Class in grails.plugin.json.converters +
A class to render a java.time.LocalTime as json
+
LocalTimeJsonConverter() - Constructor in LocalTimeJsonConverter +
+
log - Field in AbstractWritableScript +
A logger that can be used within views
+
long(java.lang.String, java.lang.Long) - Method in DelegatingParameters +
+
long(java.lang.String, java.lang.Long) - Method in EmptyParameters +
+
long(java.lang.String, java.lang.Long) - Method in Parameters +
Obtains the value of a parameter as a Long
+
+ + + +

M

+
+ +
main(java.lang.String) - Method in JsonViewCompiler +
+
main(java.lang.String) - Method in MarkupViewCompiler +
+
make(java.util.Map) - Method in JsonViewTemplate +
+
make(java.util.Map) - Method in MarkupViewWritableScriptTemplate +
+
make(java.util.Map) - Method in ResolvableGroovyTemplateEngine.1 +
+
make(java.util.Map) - Method in WritableScriptTemplate +
+
mappingContext - Property in GrailsViewTemplate +
The GORM mapping context
+
mappingContext - Property in JsonViewTest +
+
mappingContext - Field in ResolvableGroovyTemplateEngine +
+
mappingContext - Property in TestLinkGenerator +
+
MARKUP_VIEW_SUFFIX - Field in MarkupViewResolver +
+
MarkupView - Trait in grails.plugin.markup.view.api +
Extra methods added to markup views
+
MarkupViewCompiler - Class in grails.plugin.markup.view +
A compiler for markup templates
+
MarkupViewCompiler() - Constructor in MarkupViewCompiler +
+
MarkupViewCompilerTask - Class in grails.views.gradle.markup +
MarkupView compiler task for Gradle
+
MarkupViewCompilerTask() - Constructor in MarkupViewCompilerTask +
+
MarkupViewConfiguration - Class in grails.plugin.markup.view +
Authors:
Graeme Rocher
+
MarkupViewConfiguration() - Constructor in MarkupViewConfiguration +
+
MarkupViewGrailsPlugin - Class in grails.plugin.markup.view +
Plugin class for markup views
+
MarkupViewGrailsPlugin() - Constructor in MarkupViewGrailsPlugin +
+
MarkupViewResolver - Class in grails.plugin.markup.view.mvc +
Authors:
Graeme Rocher
+
MarkupViewResolver(grails.plugin.markup.view.MarkupViewTemplateEngine, java.lang.String, java.lang.String) - Constructor in MarkupViewResolver +
+
MarkupViewsTransform - Class in grails.plugin.markup.view.internal +
Authors:
Graeme Rocher
+
MarkupViewsTransform() - Constructor in MarkupViewsTransform +
+
MarkupViewTemplate - Class in grails.plugin.markup.view +
Base class for markup engine templates
+
MarkupViewTemplate(groovy.text.markup.MarkupTemplateEngine, java.util.Map, Map<String, String>, groovy.text.markup.TemplateConfiguration) - Constructor in MarkupViewTemplate +
+
MarkupViewTemplateEngine - Class in grails.plugin.markup.view +
A ResolvableGroovyTemplateEngine that uses Groovy's groovy.text.markup.MarkupTemplateEngine internally
+
MarkupViewTemplateEngine.1 - Class in grails.plugin.markup.view +
+
MarkupViewTemplateEngine.1() - Constructor in MarkupViewTemplateEngine.1 +
+
MarkupViewTemplateEngine(grails.plugin.markup.view.MarkupViewConfiguration, java.lang.ClassLoader) - Constructor in MarkupViewTemplateEngine +
+
MarkupViewWritableScriptTemplate - Class in grails.plugin.markup.view +
Authors:
Graeme Rocher
+
MarkupViewWritableScriptTemplate(Class<? extends GrailsView>, java.io.File, groovy.text.markup.MarkupTemplateEngine, grails.plugin.markup.view.MarkupViewConfiguration) - Constructor in MarkupViewWritableScriptTemplate +
+
MarkupViewXmlRenderer - Class in grails.plugin.markup.view.renderer +
Integration with the Grails renderer framework
+
MarkupViewXmlRenderer(Class<T>, grails.web.mime.MimeType, grails.views.mvc.SmartViewResolver, grails.core.support.proxy.ProxyHandler, grails.rest.render.RendererRegistry, grails.rest.render.Renderer) - Constructor in MarkupViewXmlRenderer +
+
message(java.util.Map) - Method in DefaultGrailsViewHelper +
+
message(java.util.Map) - Method in GrailsViewHelper +
Obtains a i18n message
+
message - Property in JsonRenderResult +
The HTTP response message
+
messageSource - Property in GrailsViewTemplate +
The message source object
+
messageSource - Property in JsonViewTest +
+
messageSource - Field in ResolvableGroovyTemplateEngine +
+
META - Property in DefaultJsonApiViewHelper +
The meta parameter
+
method - Property in TestRequestConfigurer +
+
method - Property in WritableScriptTemplate.MethodSetter +
+
MethodSetter(java.lang.Class, java.lang.reflect.Method) - Constructor in WritableScriptTemplate.MethodSetter +
+
mimeTypes - Property in JsonViewConfiguration +
+
mimeTypes - Property in MarkupViewConfiguration +
+
mimeUtility - Property in GrailsViewTemplate +
The mime utility
+
mimeUtility - Property in JsonViewTest +
+
mimeUtility - Field in ResolvableGroovyTemplateEngine +
+
model(java.lang.String, Class<T>) - Method in DefaultGrailsJsonViewHelper +
Obtains a model value for the given name and type
+
model(groovy.lang.Closure) - Method in GrailsView +
Defines the model
+
MODEL_OBJECT - Field in DefaultViewRenderer +
+
MODEL_TYPES_FIELD - Field in Views +
Field used to hold the model types
+
MODEL_TYPES - Field in Views +
The identifier used for model types
+
MODEL - Field in Views +
The identifier used for model types
+
modelSetters - Field in WritableScriptTemplate +
+
modelTypes - Property in AbstractWritableScript +
+
modelTypes - Property in ViewsTransform.ModelTypesVisitor +
+
ModelTypesVisitor(org.codehaus.groovy.control.SourceUnit) - Constructor in ViewsTransform.ModelTypesVisitor +
+
MODULE_NAME - Field in JsonViewConfiguration +
+
MODULE_NAME - Field in MarkupViewConfiguration +
+
+ + + +

N

+
+ +
NAME - Enum Constant in StreamingJsonBuilder.StreamingJsonDelegate.State +
+
NEW_LINE - Field in JsonOutput +
+
newStatements - Property in HalCodeVisitorSupport +
+
newViewsTransform() - Method in AbstractGroovyTemplateCompiler +
+
newViewsTransform() - Method in JsonViewCompiler +
+
newViewsTransform() - Method in JsonViewTemplateEngine +
+
newViewsTransform() - Method in MarkupViewCompiler +
+
newViewsTransform() - Method in MarkupViewTemplateEngine +
+
newViewsTransform() - Method in ResolvableGroovyTemplateEngine +
+
NOOP_OUTPUT - Field in DefaultJsonApiViewHelper +
+
notCircular(grails.plugin.json.view.template.JsonViewTemplate) - Method in DefaultGrailsJsonViewHelper +
+
NULL_ENTRY - Field in ResolvableGroovyTemplateEngine +
+
NULL_OUTPUT - Field in DefaultJsonViewHelper +
+
NULL_VALUE - Field in JsonOutput +
+
+ + + +

O

+
+ +
OBJECT_TEMPLATE_NAME - Field in SmartViewResolver +
+
objectHasErrors(java.lang.Object) - Method in DefaultJsonApiViewHelper +
+
objectView - Property in SmartViewResolver +
+
OffsetDateTimeJsonConverter - Class in grails.plugin.json.converters +
A class to render a java.time.OffsetDateTime as json
+
OffsetDateTimeJsonConverter() - Constructor in OffsetDateTimeJsonConverter +
+
OffsetTimeJsonConverter - Class in grails.plugin.json.converters +
A class to render a java.time.OffsetTime as json
+
OffsetTimeJsonConverter() - Constructor in OffsetTimeJsonConverter +
+
OPEN_BRACE - Field in JsonOutput +
+
OPEN_BRACKET - Field in JsonOutput +
+
Options() - Constructor in JsonGenerator.Options +
+
organization - Property in JsonViewGrailsPlugin +
+
organization - Property in MarkupViewGrailsPlugin +
+
out - Property in AbstractWritableScript +
+
out - Property in View +
The output stream
+
+ + + +

P

+
+ +
packageImports - Property in GenericViewConfiguration +
The default package imports
+
packageName - Property in AbstractGroovyTemplateCompiler +
+
packageName - Property in AbstractGroovyTemplateCompileTask +
+
packageName - Property in GenericGroovyTemplateResolver +
The base package to load templates as classes in production mode
+
packageName - Property in GenericViewConfiguration +
The package name to use
+
paginate(java.lang.Object, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.String, java.lang.String) - Method in DefaultHalViewHelper +
+
paginate(java.lang.Object, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.String, java.lang.String) - Method in HalViewHelper +
Pagination support which outputs hal links to the resulting pages
+
PAGINATION - Property in DefaultJsonApiViewHelper +
The pagination parameter
+
PAGINATION_MAX - Field in DefaultJsonViewHelper +
+
PAGINATION_OFFSET - Field in DefaultJsonViewHelper +
+
PAGINATION_ORDER - Field in DefaultJsonViewHelper +
+
PAGINATION_RESROUCE - Field in DefaultJsonViewHelper +
+
PAGINATION_SORT - Field in DefaultJsonViewHelper +
+
PAGINATION_TOTAL - Field in DefaultJsonViewHelper +
+
paramCount - Field in DefaultJsonGenerator.ClosureConverter +
+
parameterMap - Property in DelegatingParameters +
+
Parameters - Interface in grails.views.api.http +
Represents HTTP parameters
+
PARAMETERS - Field in JsonTemplateTypeCheckingExtension +
+
params - Property in HttpView +
The parameters
+
params(java.util.Map) - Method in TestRequestConfigurer +
+
paramsWithOffset(Map<String, Object>, java.lang.Integer) - Method in DefaultJsonViewHelper +
Creates a new Parameter map with the new offset + Note: necessary to avoid clone until Groovy 2.5.x https://issues.apache.org/jira/browse/GROOVY-7325
+
parentData - Property in JsonView +
+
ParentInfo - Class in grails.plugin.json.view.api.internal +
+
ParentInfo() - Constructor in ParentInfo +
+
parentModel - Property in ParentInfo +
The parent model, if any
+
parentTemplate - Property in ParentInfo +
The parent template if any
+
pathToSource - Property in AbstractGroovyTemplatePlugin +
+
PeriodJsonConverter - Class in grails.plugin.json.converters +
A class to render a java.time.Period as json
+
PeriodJsonConverter() - Constructor in PeriodJsonConverter +
+
PluginAwareTemplateResolver - Class in grails.views.resolve +
A template resolver capable of looking through the installed Grails plugins and finding a template within the scope of the plugin
+
PluginAwareTemplateResolver(grails.views.ViewConfiguration) - Constructor in PluginAwareTemplateResolver +
+
pluginManager - Property in PluginAwareTemplateResolver +
+
populateModelWithViewState(java.util.Map) - Method in DefaultGrailsJsonViewHelper +
+
populatePackages(java.io.File, Collection<String>, java.lang.String) - Method in AbstractGroovyTemplateCompileTask +
+
prepareArguments(List<String>) - Method in AbstractGroovyTemplateCompileTask +
+
prepareCustomizers(org.codehaus.groovy.control.CompilerConfiguration) - Method in JsonViewTemplateEngine +
+
prepareCustomizers(org.codehaus.groovy.control.CompilerConfiguration) - Method in MarkupViewTemplateEngine +
+
prepareCustomizers(org.codehaus.groovy.control.CompilerConfiguration) - Method in ResolvableGroovyTemplateEngine +
+
prepareParentWritable(grails.views.GrailsViewTemplate, java.util.Map) - Method in JsonViewWritableScript +
+
prepareWritable(groovy.text.Template, java.util.Map) - Method in DefaultGrailsJsonViewHelper +
+
prepareWritable(groovy.lang.Writable, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.util.Locale) - Method in GenericGroovyTemplateView +
+
preProcessedOutput(java.lang.Object, JsonWritable>) - Method in DefaultGrailsJsonViewHelper +
+
prettyPrint - Property in GenericViewConfiguration +
Whether to pretty print
+
prettyPrint - Property in GrailsView +
Whether to pretty print
+
prettyPrint(java.lang.String) - Method in JsonOutput +
Pretty print a JSON payload.
+
prettyPrint - Property in WritableScriptTemplate +
Whether to pretty print the template
+
process(grails.plugin.json.builder.StreamingJsonBuilder.StreamingJsonDelegate, org.grails.datastore.mapping.model.PersistentEntity, java.lang.Object, JsonWritable>, List<String>, List<String>, java.lang.String, boolean, boolean, List<String>, boolean, groovy.lang.Closure) - Method in DefaultGrailsJsonViewHelper +
+
PROCESSED_OBJECT_VARIABLE - Field in DefaultGrailsJsonViewHelper +
+
processSimple(grails.plugin.json.builder.StreamingJsonBuilder.StreamingJsonDelegate, java.lang.Object, JsonWritable>, List<String>, List<String>, java.lang.String, java.lang.Boolean, groovy.lang.Closure) - Method in DefaultGrailsJsonViewHelper +
+
processSimpleProperty(grails.plugin.json.builder.StreamingJsonBuilder.StreamingJsonDelegate, org.grails.datastore.mapping.model.PersistentProperty, java.lang.String, java.lang.Object) - Method in DefaultGrailsJsonViewHelper +
+
produceResult(groovy.text.Template, java.util.Map, groovy.lang.Closure) - Method in JsonViewTest +
+
produceResult(groovy.text.Template, java.util.Map, groovy.lang.Closure) - Method in JsonViewUnitTest +
+
profiles - Property in JsonViewGrailsPlugin +
+
profiles - Property in MarkupViewGrailsPlugin +
+
proxyHandler - Property in DefaultViewRenderer +
+
proxyHandler - Property in GrailsViewTemplate +
Handlers for proxies
+
proxyHandler - Property in JsonViewResolver +
+
proxyHandler - Property in MarkupViewResolver +
+
proxyHandler - Field in ResolvableGroovyTemplateEngine +
+
+ + + +

Q

+
+ +
QUOTE - Field in JsonOutput +
+
+ + + +

R

+
+ +
readConfiguration(grails.config.ConfigMap) - Method in GenericViewConfiguration +
+
render(T, grails.rest.render.RenderContext) - Method in AbstractJsonViewContainerRenderer +
+
render(java.util.Map) - Method in DefaultGrailsJsonViewHelper +
+
render(java.lang.Object) - Method in DefaultHalViewHelper +
+
render(java.lang.Object, org.grails.datastore.mapping.model.PersistentProperty) - Method in DefaultJsonApiIdRenderer +
+
render(java.lang.Object, java.util.Map) - Method in DefaultJsonApiViewHelper +
+
render(T, grails.rest.render.RenderContext) - Method in DefaultViewRenderer +
+
render(java.lang.Object, groovy.lang.Closure) - Method in GrailsJsonViewHelper +
Renders the given object to JSON, typically a domain class, ignoring lazy and internal properties
+
render(java.lang.Object) - Method in HalViewHelper +
Same as GrailsJsonViewHelper.render but renders HAL links too
+
render(java.lang.Object, org.grails.datastore.mapping.model.PersistentProperty) - Method in JsonApiIdRenderStrategy +
Parameters:
object - The instance of the domain class
+
render(java.lang.Object, java.util.Map) - Method in JsonApiViewHelper +
+
render(java.util.Map, groovy.lang.Closure) - Method in JsonViewTest +
Render one of the GSON views in the grails-app/views directory for the given arguments
+
render(java.util.Map, groovy.lang.Closure) - Method in JsonViewUnitTest +
Render one of the GSON views in the grails-app/views directory for the given arguments
+
renderChildTemplate(groovy.text.Template, java.lang.Class, java.lang.Object) - Method in DefaultGrailsJsonViewHelper +
+
renderData(java.lang.Object, java.util.Map) - Method in DefaultJsonApiViewHelper +
+
renderDefault(java.lang.Object, java.util.Map, groovy.lang.Closure, JsonWritable>, java.lang.String) - Method in DefaultGrailsJsonViewHelper +
+
renderEmbeddedEntity(java.lang.Object, org.grails.datastore.mapping.model.types.Association, java.io.Writer, java.lang.String, List<String>, List<String>) - Method in DefaultJsonApiViewHelper +
+
renderEntityId(grails.plugin.json.builder.StreamingJsonBuilder.StreamingJsonDelegate, JsonWritable>, List<String>, List<String>, java.lang.String, boolean, boolean, List<String>, Map<PersistentProperty, Object>) - Method in DefaultGrailsJsonViewHelper +
+
renderEntityProperties(org.grails.datastore.mapping.model.PersistentEntity, java.lang.Object, org.grails.datastore.mapping.reflect.EntityReflector, grails.plugin.json.builder.StreamingJsonBuilder.StreamingJsonDelegate) - Method in DefaultHalViewHelper +
+
rendererRegistry - Property in DefaultViewRenderer +
+
rendererRegistry - Property in JsonViewResolver +
+
rendererRegistry - Property in MarkupViewResolver +
+
renderErrors(java.lang.Object) - Method in DefaultJsonApiViewHelper +
+
renderException(java.io.Writer, java.lang.Throwable) - Method in DefaultJsonApiViewHelper +
+
renderIncluded(java.lang.Object, java.util.Map) - Method in DefaultJsonApiViewHelper +
+
renderJsonApiMember(java.io.Writer, java.lang.Object) - Method in DefaultJsonApiViewHelper +
+
renderLinks(java.lang.Object, java.util.Map) - Method in DefaultJsonApiViewHelper +
+
renderMergedOutputModel(Map<String, Object>, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) - Method in GenericGroovyTemplateView +
+
renderMetaObject(java.io.Writer, java.lang.Object) - Method in DefaultJsonApiViewHelper +
+
renderProperty(java.lang.Object, org.grails.datastore.mapping.model.PersistentProperty, org.grails.datastore.mapping.reflect.EntityReflector, grails.plugin.json.builder.StreamingJsonBuilder.StreamingJsonDelegate) - Method in DefaultHalViewHelper +
+
renderRelationshipLinks(java.lang.Object) - Method in DefaultJsonApiViewHelper +
+
renderResource(java.lang.Object, java.io.Writer, java.util.Map, java.lang.String) - Method in DefaultJsonApiViewHelper +
+
renderTemplate(java.lang.Object, java.lang.String) - Method in DefaultGrailsJsonViewHelper +
+
renderTemplateOrDefault(java.lang.Object, java.util.Map, groovy.lang.Closure, JsonWritable>, java.lang.String) - Method in DefaultGrailsJsonViewHelper +
+
Request - Interface in grails.views.api.http +
Allows access to request properties
+
request - Property in GenericGroovyTemplateView.HttpViewRequest +
+
request - Property in HttpView +
Returns:
The request object
+
resetProcessedObjects() - Method in JsonViewWritableScript +
+
ResolvableGroovyTemplateEngine - Class in grails.views +
A TemplateEngine that can resolve templates using the configured TemplateResolver
+
ResolvableGroovyTemplateEngine.1 - Class in grails.views +
+
ResolvableGroovyTemplateEngine.1() - Constructor in ResolvableGroovyTemplateEngine.1 +
+
ResolvableGroovyTemplateEngine(grails.views.ViewConfiguration, java.lang.ClassLoader) - Constructor in ResolvableGroovyTemplateEngine +
Creates a ResolvableGroovyTemplateEngine for the given base class name and file extension
+
resolveCache - Field in ResolvableGroovyTemplateEngine +
+
resolveClassesDirs(org.gradle.api.tasks.SourceSetOutput, org.gradle.api.Project) - Method in AbstractGroovyTemplatePlugin +
+
resolveModelName() - Method in AbstractJsonViewContainerRenderer +
+
resolveTemplate(java.lang.String) - Method in GenericGroovyTemplateResolver +
+
resolveTemplate(java.lang.String) - Method in MarkupViewTemplateEngine.1 +
+
resolveTemplate(java.lang.String) - Method in PluginAwareTemplateResolver +
+
resolveTemplate(java.lang.String, java.util.Locale, java.lang.String) - Method in ResolvableGroovyTemplateEngine +
Resolves a template for the given path
+
resolveTemplate(java.lang.String, java.util.Locale, java.lang.String) - Method in SmartViewResolver +
+
resolveTemplate(java.lang.String) - Method in TemplateResolver +
Resolves the URL to a template using the given path
+
resolveTemplateClass(java.lang.String, java.lang.String) - Method in GenericGroovyTemplateResolver +
+
resolveTemplateClass(java.lang.String) - Method in PluginAwareTemplateResolver +
+
resolveTemplateClass(java.lang.String, java.lang.String) - Method in TemplateResolver +
Resolves a template class for the path
+
resolveTemplateName(java.lang.String, java.lang.String) - Method in GenericGroovyTemplateResolver +
+
resolveTemplateUri(java.lang.String, java.lang.String, java.lang.String, boolean) - Method in GenericViewUriResolver +
+
resolveTemplateUri(java.lang.String, java.lang.String, java.lang.String) - Method in ViewUriResolver +
Resolves a template URI for the given path
+
resolveView(java.lang.Class, java.util.Locale) - Method in SmartViewResolver +
+
resolveViewName(java.lang.String, java.util.Locale) - Method in GenericGroovyTemplateViewResolver +
+
resolveViewWithController(java.lang.String, java.lang.String, org.grails.web.servlet.mvc.GrailsWebRequest) - Method in GenericGroovyTemplateViewResolver +
+
resource(java.util.Map) - Method in DefaultGrailsViewHelper +
+
resource(java.util.Map) - Method in TestLinkGenerator +
+
Response - Interface in grails.views.api.http +
Allows control over the page response (headers, content type, status)
+
response - Property in HttpView +
Returns:
The page object
+
result - Property in JsonViewTest.TestHttpResponse +
+
result - Property in JsonViewUnitTest.TestHttpResponse +
+
root - Property in JsonViewWritableScript +
+
run(java.lang.String, Class<? extends GenericViewConfiguration>, Class<? extends AbstractGroovyTemplateCompiler>) - Method in AbstractGroovyTemplateCompiler +
+
run() - Method in BuilderTypeCheckingExtension +
+
run() - Method in WritableScript +
Runs the script and returns the result
+
+ + + +

S

+
+ +
scm - Property in JsonViewGrailsPlugin +
+
scm - Property in MarkupViewGrailsPlugin +
+
SELF_ATTRIBUTE - Field in DefaultHalViewHelper +
+
serialVersionUID - Field in ViewCompileOptions +
+
setActionName(java.lang.String) - Method in TestRequestConfigurer +
+
setBinding(groovy.lang.Binding) - Method in MarkupViewTemplate +
+
setBinding(groovy.lang.Binding) - Method in WritableScript +
Sets the binding
+
setCache(boolean) - Method in MarkupViewConfiguration +
+
setConfig(grails.config.Config) - Method in TestRequestConfigurer +
+
setControllerName(java.lang.String) - Method in TestRequestConfigurer +
+
setControllerNamespace(java.lang.String) - Method in TestRequestConfigurer +
+
setDelegate(grails.plugin.json.builder.StreamingJsonBuilder.StreamingJsonDelegate) - Method in DefaultHalViewHelper +
+
setDelegate(grails.plugin.json.builder.StreamingJsonBuilder.StreamingJsonDelegate) - Method in HalViewHelper +
+
setEncoding(java.lang.String) - Method in MarkupViewConfiguration +
+
setFirst(boolean) - Method in JsonOutput.JsonWritable +
+
setFirst(boolean) - Method in StreamingJsonBuilder.StreamingJsonDelegate +
+
setGrailsApplication(grails.core.GrailsApplication) - Method in GenericViewConfiguration +
+
setGrailsApplication(grails.core.GrailsApplication) - Method in JsonViewTest +
+
setInline(boolean) - Method in JsonOutput.JsonWritable +
+
setLinkGenerator(grails.web.mapping.LinkGenerator) - Method in ResolvableGroovyTemplateEngine +
+
setLinkGenerator(grails.web.mapping.LinkGenerator) - Method in SmartViewResolver +
+
setLocaleResolver(org.springframework.web.servlet.LocaleResolver) - Method in GenericGroovyTemplateView +
+
setMappingContext(org.grails.datastore.mapping.model.MappingContext) - Method in ResolvableGroovyTemplateEngine +
+
setMessageSource(org.springframework.context.MessageSource) - Method in ResolvableGroovyTemplateEngine +
+
setMimeUtility(grails.web.mime.MimeUtility) - Method in ResolvableGroovyTemplateEngine +
+
setModelTypes(Map<String, Class>) - Method in AbstractWritableScript +
+
setPluginManager(grails.plugins.GrailsPluginManager) - Method in PluginAwareTemplateResolver +
+
setPrettyPrint(boolean) - Method in MarkupViewConfiguration +
+
setProxyHandler(grails.core.support.proxy.ProxyHandler) - Method in ResolvableGroovyTemplateEngine +
+
setSource(java.lang.Object) - Method in AbstractGroovyTemplateCompileTask +
+
setSourceFile(java.io.File) - Method in WritableScript +
Parameters:
file - Sets the source file
+
setTemplateEngine(grails.views.ResolvableGroovyTemplateEngine) - Method in GenericGroovyTemplateView +
+
setTemplateResolver(grails.views.TemplateResolver) - Method in SmartViewResolver +
+
setup(grails.views.json.test.JsonViewUnitTest) - Method in JsonViewSetupSpecInterceptor +
+
short(java.lang.String, java.lang.Integer) - Method in DelegatingParameters +
+
short(java.lang.String, java.lang.Integer) - Method in EmptyParameters +
+
short(java.lang.String, java.lang.Integer) - Method in Parameters +
Obtains the value of a parameter as a character
+
shortTemplateNameForClass(Class<?>) - Method in TemplateResolverUtils +
+
shouldCache - Property in ResolvableGroovyTemplateEngine +
+
shouldExcludeType(Class<?>) - Method in DefaultJsonGenerator +
Indicates whether the given type should be excluded from the generated output.
+
shouldInclude(List<String>, java.util.List, java.lang.String) - Method in DefaultJsonViewIncludeExcludeSupport +
+
simpleIncludeExcludeSupport - Property in DefaultJsonViewHelper +
+
SLASH_CHAR - Field in GenericGroovyTemplateResolver +
The base directory to load templates in development mode
+
SLASH - Field in GenericViewUriResolver +
+
SLASH_STR - Field in GenericViewUriResolver +
+
SLASH_UNDR - Field in GenericViewUriResolver +
+
SmartViewResolver - Class in grails.views.mvc +
Spring's default view resolving mechanism only accepts the view name and locale, this forces you to code around its limitations when you want to add intelligent features such as + version and mime type awareness.
+
smartViewResolver - Property in GenericGroovyTemplateViewResolver +
+
SmartViewResolver(grails.views.ResolvableGroovyTemplateEngine, java.lang.String, java.lang.String) - Constructor in SmartViewResolver +
+
sourceDir - Property in AbstractGroovyTemplateCompiler +
+
sourceFile - Property in AbstractWritableScript +
The source file
+
sourceFile - Property in MarkupViewTemplate +
+
sourceFile - Property in ViewRenderException +
+
sourceFile - Property in WritableScript +
+
sourceFile - Property in WritableScriptTemplate +
The source file of the template.
+
sourceUnit - Property in ViewsTransform.ModelTypesVisitor +
+
SPACE - Field in JsonOutput +
+
srcDir - Property in AbstractGroovyTemplateCompileTask +
+
state - Field in StreamingJsonBuilder.StreamingJsonDelegate +
+
staticImports - Property in GenericViewConfiguration +
The default static imports
+
status(org.springframework.http.HttpStatus, java.lang.String) - Method in GenericGroovyTemplateView.HttpViewResponse +
+
status - Property in JsonRenderResult +
The status
+
status(org.springframework.http.HttpStatus, java.lang.String) - Method in JsonViewTest.TestHttpResponse +
+
status(org.springframework.http.HttpStatus, java.lang.String) - Method in JsonViewUnitTest.TestHttpResponse +
+
status(org.springframework.http.HttpStatus, java.lang.String) - Method in Response +
Sets the response status
+
StreamingJsonBuilder - Class in grails.plugin.json.builder +
Temporary fork of groovy.json.StreamingJsonBuilder until Groovy 2.4.5 is out.
+
StreamingJsonBuilder.StreamingJsonDelegate - Class in grails.plugin.json.builder +
The delegate used when invoking closures
+
StreamingJsonBuilder.StreamingJsonDelegate.State - Enum in grails.plugin.json.builder +
+
StreamingJsonBuilder(java.io.Writer, java.lang.Object, grails.plugin.json.builder.JsonGenerator) - Constructor in StreamingJsonBuilder +
Instantiates a JSON builder, possibly with some existing data structure and + the given generator.
+
StreamingJsonDelegate(java.io.Writer, boolean, grails.plugin.json.builder.JsonGenerator) - Constructor in StreamingJsonBuilder.StreamingJsonDelegate +
+
subSequence(int, int) - Method in JsonOutput.JsonWritable +
+
suffix - Property in SmartViewResolver +
+
+ + + +

T

+
+ +
taskClass - Property in AbstractGroovyTemplatePlugin +
+
TEMPLATE_NAMESPACE_INVOKE_METHOD - Field in JsonTemplateTypeCheckingExtension +
+
TEMPLATE_NAMESPACE - Field in JsonTemplateTypeCheckingExtension +
+
templateByPath(java.lang.String) - Method in ResolvableGroovyTemplateEngine +
+
templateClass - Property in WritableScriptTemplate +
The class of the template
+
templateCounter - Field in ResolvableGroovyTemplateEngine +
+
templateEngine - Property in GenericGroovyTemplateView +
+
templateEngine - Property in GrailsViewTemplate +
The template engine
+
templateEngine - Property in JsonViewTest +
+
templateEngine - Property in MarkupViewWritableScriptTemplate +
+
templateEngine - Property in SmartViewResolver +
+
templateNameForClass(Class<?>) - Method in DefaultViewRenderer +
+
templatePath - Property in GenericViewConfiguration +
The path to the templates
+
templatePath - Property in WritableScriptTemplate +
The resolved template path
+
TemplateRenderer - Class in grails.plugin.json.view.api.internal +
Handles the template namespace
+
TemplateRenderer(grails.plugin.json.view.api.GrailsJsonViewHelper) - Constructor in TemplateRenderer +
+
TemplateResolver - Interface in grails.views +
Interface for resolving templates
+
templateResolver - Property in ResolvableGroovyTemplateEngine +
The TemplateResolver to use
+
TemplateResolverUtils - Class in grails.views.resolve +
Utility methods for resolving template names
+
TemplateResolverUtils() - Constructor in TemplateResolverUtils +
+
TestHttpResponse(grails.plugin.json.view.test.JsonRenderResult) - Constructor in JsonViewTest.TestHttpResponse +
+
TestHttpResponse(grails.plugin.json.view.test.JsonRenderResult) - Constructor in JsonViewUnitTest.TestHttpResponse +
+
TestLinkGenerator - Class in grails.plugin.json.view.test +
A test link generator
+
TestLinkGenerator(org.grails.datastore.mapping.model.MappingContext) - Constructor in TestLinkGenerator +
+
TestRequestConfigurer - Class in grails.plugin.json.view.test +
Allows configuring the JSON view rendering for request state
+
TestRequestConfigurer(grails.plugin.json.view.api.JsonView) - Constructor in TestRequestConfigurer +
+
text - Field in JsonOutput.JsonUnescaped +
+
timezone - Field in DefaultJsonGenerator +
+
timezone - Field in JsonGenerator.Options +
+
timeZone - Property in JsonViewGeneratorConfiguration +
+
title - Property in JsonViewGrailsPlugin +
+
title - Property in MarkupViewGrailsPlugin +
+
tmpl - Property in JsonView +
The template namespace
+
TO_STRING_TYPES - Field in DefaultJsonViewHelper +
+
toJson(java.lang.Object) - Method in DefaultJsonGenerator +
{@inheritDoc}
+
toJson(java.lang.Object) - Method in JsonGenerator +
Converts an object to its JSON representation.
+
toJson(java.util.Map) - Method in JsonOutput +
Parameters:
m - a java.util.Map to format to JSON string
+
toString() - Method in DefaultJsonGenerator.ClosureConverter +
+
toString() - Method in JsonOutput.JsonUnescaped +
+
toString() - Method in JsonOutput.JsonWritable +
+
transform(org.codehaus.groovy.ast.expr.Expression) - Method in BuilderTypeCheckingExtension.BuilderMethodReplacer +
+
transformDynamicMethods(org.codehaus.groovy.control.SourceUnit, org.codehaus.groovy.ast.MethodNode, java.util.Set) - Method in BuilderTypeCheckingExtension +
+
transformDynamicMethods(org.codehaus.groovy.control.SourceUnit, org.codehaus.groovy.ast.MethodNode, java.util.Set) - Method in JsonTemplateTypeCheckingExtension +
+
TYPE_ATTRIBUTE - Field in DefaultHalViewHelper +
+
type(java.lang.String) - Method in DefaultHalViewHelper +
Parameters:
name - Sets the HAL response type
+
type - Field in DefaultJsonGenerator.ClosureConverter +
+
type(java.lang.String) - Method in HalViewHelper +
Parameters:
name - Sets the HAL response type
+
TYPE - Field in JsonViewWritableScript +
+
TYPE - Field in MarkupViewTemplate +
+
TYPE - Field in Views +
The artefact type identifier for Grails
+
type - Property in WritableScriptTemplate.FieldSetter +
+
type - Property in WritableScriptTemplate.MethodSetter +
+
+ + + +

U

+
+ +
UNDERSCORE_CHAR - Field in GenericGroovyTemplateResolver +
+
UNDERSCORE - Field in GenericViewUriResolver +
+
unescaped(java.lang.CharSequence) - Method in JsonOutput +
Obtains JSON unescaped text for the given text
+
unit - Field in BuilderTypeCheckingExtension.BuilderMethodReplacer +
+
unit - Property in HalCodeVisitorSupport +
+
uri - Property in TestRequestConfigurer +
+
useAbsoluteLinks - Property in GenericViewConfiguration +
Whether to use absolute links
+
useAbsoluteLinks - Property in GrailsViewTemplate +
Whether to use absolute links
+
+ + + +

V

+
+ +
validateableIncludeExcludeSupport - Property in DefaultJsonViewHelper +
+
VALUE - Enum Constant in StreamingJsonBuilder.StreamingJsonDelegate.State +
+
verifyValue() - Method in StreamingJsonBuilder.StreamingJsonDelegate +
+
View - Trait in grails.views.api +
Authors:
Graeme Rocher
+
VIEW_BASE_CLASS - Field in MarkupViewTemplateEngine +
+
view - Property in DefaultGrailsViewHelper +
+
view - Property in ViewRenderException +
+
viewCache - Field in SmartViewResolver +
+
viewCacheWithPath(java.lang.String) - Method in SmartViewResolver +
+
viewClass - Property in SmartViewResolver +
+
ViewCompilationException - Class in grails.views +
Exception when views fail to compile
+
ViewCompilationException(org.codehaus.groovy.control.CompilationFailedException, java.lang.String) - Constructor in ViewCompilationException +
+
ViewCompileOptions - Class in grails.views.gradle +
Authors:
Graeme Rocher
+
ViewCompileOptions() - Constructor in ViewCompileOptions +
+
ViewConfiguration - Interface in grails.views +
Interface for view configurations
+
viewConfiguration - Property in AbstractGroovyTemplateCompiler +
+
viewConfiguration - Property in JsonViewResolver +
+
viewConfiguration - Property in JsonViewTest +
+
viewConfiguration - Property in MarkupViewResolver +
+
viewConfiguration - Property in ResolvableGroovyTemplateEngine +
The view config
+
ViewException - Class in grails.views +
Thrown when an exception occurs rendering a view
+
ViewException() - Constructor in ViewException +
+
viewHelper - Property in DefaultHalViewHelper +
+
viewHelper - Property in DefaultHalViewHelper.HalStreamingJsonDelegate +
+
viewHelper - Property in DefaultJsonApiViewHelper +
+
viewHelper - Field in GrailsView +
+
viewHelper - Field in JsonView +
Overrides the default helper with new methods specific to JSON building
+
ViewRenderException - Class in grails.views +
Thrown when a view rendering exception occurs
+
ViewRenderException(java.lang.String, java.lang.Throwable, grails.views.WritableScript) - Constructor in ViewRenderException +
+
viewResolver - Property in DefaultViewRenderer +
+
Views - Interface in grails.views +
Settings and constants for the Groovy view infrastructure
+
ViewsEnvironment - Class in grails.views +
Environment helper methods
+
ViewsEnvironment() - Constructor in ViewsEnvironment +
+
ViewsTransform - Class in grails.views.compiler +
Enhances view scripts with Trait behavior
+
ViewsTransform.ModelTypesVisitor - Class in grails.views.compiler +
+
ViewsTransform(java.lang.String, java.lang.String) - Constructor in ViewsTransform +
+
viewTemplate - Property in GrailsView +
The view template
+
ViewUriResolver - Interface in grails.views +
A ViewUriResolver is response for response template and view URIs using Grails' conventions.
+
viewUriResolver - Property in ResolvableGroovyTemplateEngine +
The configuration to use for compilation
+
ViewUtils - Class in grails.views.utils +
Utility methods for the views project
+
ViewUtils() - Constructor in ViewUtils +
+
visit(org.codehaus.groovy.ast.ASTNode, org.codehaus.groovy.control.SourceUnit) - Method in ViewsTransform +
+
visitBlockStatement(org.codehaus.groovy.ast.stmt.BlockStatement) - Method in HalCodeVisitorSupport +
+
visitClass(org.codehaus.groovy.ast.ClassNode) - Method in ViewsTransform.ModelTypesVisitor +
+
visitClosureExpression(org.codehaus.groovy.ast.expr.ClosureExpression) - Method in BuilderTypeCheckingExtension.BuilderMethodReplacer +
+
visitField(org.codehaus.groovy.ast.FieldNode) - Method in ViewsTransform.ModelTypesVisitor +
+
visitMethodCallExpression(org.codehaus.groovy.ast.expr.MethodCallExpression) - Method in ViewsTransform.ModelTypesVisitor +
+
visitSpec(org.spockframework.runtime.model.SpecInfo) - Method in JsonViewSpockExtension +
+
visitVariableExpression(org.codehaus.groovy.ast.expr.VariableExpression) - Method in HalCodeVisitorSupport +
+
+ + + +

W

+
+ +
wasModified() - Method in WritableScriptTemplate +
Returns:
Whether the template has been modified
+
WritableScript - Interface in grails.views +
Interface for scripts that are writable
+
WritableScriptTemplate - Class in grails.views +
A base template class that all Grails view templates should extend from
+
WritableScriptTemplate.FieldSetter - Class in grails.views +
+
WritableScriptTemplate.MethodSetter - Class in grails.views +
+
WritableScriptTemplate.VariableSetter - Interface in grails.views +
+
WritableScriptTemplate(Class<? extends GrailsView>, java.io.File) - Constructor in WritableScriptTemplate +
+
writeArray(Class<?>, java.lang.Object, org.apache.groovy.json.internal.CharBuf) - Method in DefaultJsonGenerator +
Serializes array and writes it into specified buffer.
+
writeArray(List<Object>) - Method in StreamingJsonBuilder.StreamingJsonDelegate +
+
writeCharSequence(java.lang.CharSequence, org.apache.groovy.json.internal.CharBuf) - Method in DefaultJsonGenerator +
Serializes any char sequence and writes it into specified buffer.
+
writeCollectionWithClosure(java.io.Writer, java.lang.Iterable, groovy.lang.Closure, grails.plugin.json.builder.JsonGenerator) - Method in StreamingJsonBuilder.StreamingJsonDelegate +
+
writeDate(java.util.Date, org.apache.groovy.json.internal.CharBuf) - Method in DefaultJsonGenerator +
Serializes date and writes it into specified buffer.
+
writeError(java.io.Writer, org.springframework.validation.ObjectError) - Method in DefaultJsonApiViewHelper.4 +
+
writeIterator(Iterator<?>, org.apache.groovy.json.internal.CharBuf) - Method in DefaultJsonGenerator +
Serializes iterator and writes it into specified buffer.
+
writeKey(java.io.Writer, java.lang.Object) - Method in DefaultJsonApiViewHelper +
+
writeKeyValue(java.io.Writer, java.lang.Object, java.lang.Object) - Method in DefaultJsonApiViewHelper +
+
writeLinks(grails.plugin.json.builder.StreamingJsonBuilder.StreamingJsonDelegate, java.lang.Object, java.lang.String) - Method in DefaultHalViewHelper +
+
writeMap(Map<?,?>, org.apache.groovy.json.internal.CharBuf) - Method in DefaultJsonGenerator +
Serializes map and writes it into specified buffer.
+
writeMapEntry(java.lang.String, java.lang.Object, org.apache.groovy.json.internal.CharBuf) - Method in DefaultJsonGenerator +
Serializes a map entry and writes it into specified buffer.
+
writeName(java.lang.String) - Method in StreamingJsonBuilder.StreamingJsonDelegate +
+
writeNumber(Class<?>, java.lang.Number, org.apache.groovy.json.internal.CharBuf) - Method in DefaultJsonGenerator +
Serializes Number value and writes it into specified buffer.
+
writeObject(java.lang.Object, groovy.lang.Closure) - Method in DefaultHalViewHelper.HalStreamingJsonDelegate +
+
writeObject(java.lang.String, java.lang.Object, org.apache.groovy.json.internal.CharBuf) - Method in DefaultJsonGenerator +
Serializes object and writes it into specified buffer.
+
writeObject(java.io.Writer, java.lang.Object, groovy.lang.Closure, grails.plugin.json.builder.JsonGenerator) - Method in StreamingJsonBuilder.StreamingJsonDelegate +
+
writeObjects(java.lang.Iterable, groovy.lang.Closure) - Method in StreamingJsonBuilder.StreamingJsonDelegate +
+
writer - Field in StreamingJsonBuilder +
+
writer - Field in StreamingJsonBuilder.StreamingJsonDelegate +
+
writeRaw(java.lang.CharSequence, org.apache.groovy.json.internal.CharBuf) - Method in DefaultJsonGenerator +
Serializes any char sequence and writes it into specified buffer + without performing any manipulation of the given text.
+
WriterProvider - Interface in grails.views +
Interface for views that provider a writer
+
writeTo(java.io.Writer) - Method in AbstractWritableScript +
+
writeTo(java.io.Writer) - Method in DefaultGrailsJsonViewHelper.1 +
+
writeTo(java.io.Writer) - Method in DefaultGrailsJsonViewHelper.2 +
+
writeTo(java.io.Writer) - Method in DefaultGrailsJsonViewHelper.3 +
+
writeTo(java.io.Writer) - Method in DefaultGrailsJsonViewHelper.4 +
+
writeTo(java.io.Writer) - Method in DefaultGrailsJsonViewHelper.5 +
+
writeTo(java.io.Writer) - Method in DefaultGrailsJsonViewHelper.6 +
+
writeTo(java.io.Writer) - Method in DefaultHalViewHelper.1 +
+
writeTo(java.io.Writer) - Method in DefaultJsonApiViewHelper.1 +
+
writeTo(java.io.Writer) - Method in DefaultJsonApiViewHelper.2 +
+
writeTo(java.io.Writer) - Method in DefaultJsonApiViewHelper.3 +
+
writeTo(java.io.Writer) - Method in DefaultJsonApiViewHelper.4 +
+
writeTo(java.io.Writer) - Method in DefaultJsonApiViewHelper.5 +
+
writeTo(java.io.Writer) - Method in DefaultJsonApiViewHelper.6 +
+
writeTo(java.io.Writer) - Method in DefaultJsonApiViewHelper.7 +
+
writeTo(java.io.Writer) - Method in DefaultJsonViewHelper.1 +
+
writeValue(java.lang.Object) - Method in StreamingJsonBuilder.StreamingJsonDelegate +
+
+ + + +

X

+
+ +
+ + + +

Y

+
+ +
+ + + +

Z

+
+ +
ZonedDateTimeJsonConverter - Class in grails.plugin.json.converters +
A class to render a java.time.ZonedDateTime as json
+
ZonedDateTimeJsonConverter() - Constructor in ZonedDateTimeJsonConverter +
+
+ + + +

_

+
+ +
_mappingContext - Field in JsonViewUnitTest +
+
_templateEngine - Field in JsonViewUnitTest +
+
+ + +
+ + +A + +B + +C + +D + +E + +F + +G + +H + +I + +J + +K + +L + +M + +N + +O + +P + +Q + +R + +S + +T + +U + +V + +W + +X + +Y + +Z + +_ + + + +
+ + + + + +
+ + + + diff --git a/3.2.3/api/index.html b/3.2.3/api/index.html new file mode 100644 index 000000000..5fdec3aa7 --- /dev/null +++ b/3.2.3/api/index.html @@ -0,0 +1,90 @@ + + + + +Index (Groovy Documentation) + + + + + + + + + + + + + + <noscript> + <div>JavaScript is disabled on your browser.</div> + </noscript> + <h2>Frame Alert</h2> + <p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="overview-summary.html">Non-frame version</a>.</p> + + diff --git a/3.2.3/api/inherit.gif b/3.2.3/api/inherit.gif new file mode 100644 index 000000000..c814867a1 Binary files /dev/null and b/3.2.3/api/inherit.gif differ diff --git a/3.2.3/api/overview-frame.html b/3.2.3/api/overview-frame.html new file mode 100644 index 000000000..ea2ed5c68 --- /dev/null +++ b/3.2.3/api/overview-frame.html @@ -0,0 +1,135 @@ + + + + +Overview (Grails Views 3.2.3) + + + + + + + + +
All Classes
+
+

Packages

+ +
+ + + diff --git a/3.2.3/api/overview-summary.html b/3.2.3/api/overview-summary.html new file mode 100644 index 000000000..141df0bde --- /dev/null +++ b/3.2.3/api/overview-summary.html @@ -0,0 +1,310 @@ + + + + + +Overview (Groovy Documentation) + + + + + + + + + + + +
+ + + + + +
+ + +
+

Grails Views 3.2.3

+
+ +
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Packages 
PackageDescription
grails.plugin.json.builder 
grails.plugin.json.converters 
grails.plugin.json.renderer 
grails.plugin.json.view 
grails.plugin.json.view.api 
grails.plugin.json.view.api.internal 
grails.plugin.json.view.api.jsonapi 
grails.plugin.json.view.internal 
grails.plugin.json.view.mvc 
grails.plugin.json.view.template 
grails.plugin.json.view.test 
grails.plugin.markup.view 
grails.plugin.markup.view.api 
grails.plugin.markup.view.internal 
grails.plugin.markup.view.mvc 
grails.plugin.markup.view.renderer 
grails.views 
grails.views.api 
grails.views.api.http 
grails.views.api.internal 
grails.views.compiler 
grails.views.gradle 
grails.views.gradle.json 
grails.views.gradle.markup 
grails.views.json.test 
grails.views.json.test.spock 
grails.views.mvc 
grails.views.mvc.http 
grails.views.mvc.renderer 
grails.views.resolve 
grails.views.utils 
+
+ + + + diff --git a/3.2.3/api/package-list b/3.2.3/api/package-list new file mode 100644 index 000000000..a42b9af7a --- /dev/null +++ b/3.2.3/api/package-list @@ -0,0 +1,31 @@ +grails.plugin.json.builder +grails.plugin.json.converters +grails.plugin.json.renderer +grails.plugin.json.view +grails.plugin.json.view.api +grails.plugin.json.view.api.internal +grails.plugin.json.view.api.jsonapi +grails.plugin.json.view.internal +grails.plugin.json.view.mvc +grails.plugin.json.view.template +grails.plugin.json.view.test +grails.plugin.markup.view +grails.plugin.markup.view.api +grails.plugin.markup.view.internal +grails.plugin.markup.view.mvc +grails.plugin.markup.view.renderer +grails.views +grails.views.api +grails.views.api.http +grails.views.api.internal +grails.views.compiler +grails.views.gradle +grails.views.gradle.json +grails.views.gradle.markup +grails.views.json.test +grails.views.json.test.spock +grails.views.mvc +grails.views.mvc.http +grails.views.mvc.renderer +grails.views.resolve +grails.views.utils diff --git a/3.2.3/api/stylesheet.css b/3.2.3/api/stylesheet.css new file mode 100644 index 000000000..06eb31a18 --- /dev/null +++ b/3.2.3/api/stylesheet.css @@ -0,0 +1,2306 @@ +@charset "UTF-8"; + +/*! normalize.css v2.1.0 | MIT License | git.io/normalize */ +article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary { + display: block +} + +audio, canvas, video { + display: inline-block +} + +audio:not([controls]) { + display: none; + height: 0 +} + +[hidden] { + display: none +} + +html { + font-family: sans-serif; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100% +} + +body { + margin: 0 +} + +a:focus { + outline: thin dotted +} + +a:active, a:hover { + outline: 0 +} + +h1 { + font-size: 2em; + margin: .67em 0 +} + +abbr[title] { + border-bottom: 1px dotted +} + +b, strong { + font-weight: bold +} + +dfn { + font-style: italic +} + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0 +} + +mark { + background: #ff0; + color: #000 +} + +code, kbd, pre, samp { + font-family: monospace, serif; + font-size: 1em +} + +pre { + white-space: pre-wrap +} + +q { + quotes: "C" "D" "8" "9" +} + +small { + font-size: 80% +} + +sub, sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline +} + +sup { + top: -0.5em +} + +sub { + bottom: -0.25em +} + +img { + border: 0 +} + +svg:not(:root) { + overflow: hidden +} + +figure { + margin: 0 +} + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: .35em .625em .75em +} + +legend { + border: 0; + padding: 0 +} + +button, input, select, textarea { + font-family: inherit; + font-size: 100%; + margin: 0 +} + +button, input { + line-height: normal +} + +button, select { + text-transform: none +} + +button, html input[type="button"], input[type="reset"], input[type="submit"] { + -webkit-appearance: button; + cursor: pointer +} + +button[disabled], html input[disabled] { + cursor: default +} + +input[type="checkbox"], input[type="radio"] { + box-sizing: border-box; + padding: 0 +} + +input[type="search"] { + -webkit-appearance: textfield; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box +} + +input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none +} + +button::-moz-focus-inner, input::-moz-focus-inner { + border: 0; + padding: 0 +} + +textarea { + overflow: auto; + vertical-align: top +} + +table { + border-collapse: collapse; + border-spacing: 0 +} + +@-ms-viewport { + width: device-width +} + +@media screen and (max-width: 400px) { + @-ms-viewport { + width: 320px + } +} + +.hidden { + display: none !important; + visibility: hidden !important +} + +.visible-xs { + display: none !important +} + +tr.visible-xs { + display: none !important +} + +th.visible-xs, td.visible-xs { + display: none !important +} + +@media (max-width: 767px) { + .visible-xs { + display: block !important + } + + tr.visible-xs { + display: table-row !important + } + + th.visible-xs, td.visible-xs { + display: table-cell !important + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-xs.visible-sm { + display: block !important + } + + tr.visible-xs.visible-sm { + display: table-row !important + } + + th.visible-xs.visible-sm, td.visible-xs.visible-sm { + display: table-cell !important + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-xs.visible-md { + display: block !important + } + + tr.visible-xs.visible-md { + display: table-row !important + } + + th.visible-xs.visible-md, td.visible-xs.visible-md { + display: table-cell !important + } +} + +@media (min-width: 1200px) { + .visible-xs.visible-lg { + display: block !important + } + + tr.visible-xs.visible-lg { + display: table-row !important + } + + th.visible-xs.visible-lg, td.visible-xs.visible-lg { + display: table-cell !important + } +} + +.visible-sm { + display: none !important +} + +tr.visible-sm { + display: none !important +} + +th.visible-sm, td.visible-sm { + display: none !important +} + +@media (max-width: 767px) { + .visible-sm.visible-xs { + display: block !important + } + + tr.visible-sm.visible-xs { + display: table-row !important + } + + th.visible-sm.visible-xs, td.visible-sm.visible-xs { + display: table-cell !important + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm { + display: block !important + } + + tr.visible-sm { + display: table-row !important + } + + th.visible-sm, td.visible-sm { + display: table-cell !important + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-sm.visible-md { + display: block !important + } + + tr.visible-sm.visible-md { + display: table-row !important + } + + th.visible-sm.visible-md, td.visible-sm.visible-md { + display: table-cell !important + } +} + +@media (min-width: 1200px) { + .visible-sm.visible-lg { + display: block !important + } + + tr.visible-sm.visible-lg { + display: table-row !important + } + + th.visible-sm.visible-lg, td.visible-sm.visible-lg { + display: table-cell !important + } +} + +.visible-md { + display: none !important +} + +tr.visible-md { + display: none !important +} + +th.visible-md, td.visible-md { + display: none !important +} + +@media (max-width: 767px) { + .visible-md.visible-xs { + display: block !important + } + + tr.visible-md.visible-xs { + display: table-row !important + } + + th.visible-md.visible-xs, td.visible-md.visible-xs { + display: table-cell !important + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-md.visible-sm { + display: block !important + } + + tr.visible-md.visible-sm { + display: table-row !important + } + + th.visible-md.visible-sm, td.visible-md.visible-sm { + display: table-cell !important + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md { + display: block !important + } + + tr.visible-md { + display: table-row !important + } + + th.visible-md, td.visible-md { + display: table-cell !important + } +} + +@media (min-width: 1200px) { + .visible-md.visible-lg { + display: block !important + } + + tr.visible-md.visible-lg { + display: table-row !important + } + + th.visible-md.visible-lg, td.visible-md.visible-lg { + display: table-cell !important + } +} + +.visible-lg { + display: none !important +} + +tr.visible-lg { + display: none !important +} + +th.visible-lg, td.visible-lg { + display: none !important +} + +@media (max-width: 767px) { + .visible-lg.visible-xs { + display: block !important + } + + tr.visible-lg.visible-xs { + display: table-row !important + } + + th.visible-lg.visible-xs, td.visible-lg.visible-xs { + display: table-cell !important + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-lg.visible-sm { + display: block !important + } + + tr.visible-lg.visible-sm { + display: table-row !important + } + + th.visible-lg.visible-sm, td.visible-lg.visible-sm { + display: table-cell !important + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-lg.visible-md { + display: block !important + } + + tr.visible-lg.visible-md { + display: table-row !important + } + + th.visible-lg.visible-md, td.visible-lg.visible-md { + display: table-cell !important + } +} + +@media (min-width: 1200px) { + .visible-lg { + display: block !important + } + + tr.visible-lg { + display: table-row !important + } + + th.visible-lg, td.visible-lg { + display: table-cell !important + } +} + +.hidden-xs { + display: block !important +} + +tr.hidden-xs { + display: table-row !important +} + +th.hidden-xs, td.hidden-xs { + display: table-cell !important +} + +@media (max-width: 767px) { + .hidden-xs { + display: none !important + } + + tr.hidden-xs { + display: none !important + } + + th.hidden-xs, td.hidden-xs { + display: none !important + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-xs.hidden-sm { + display: none !important + } + + tr.hidden-xs.hidden-sm { + display: none !important + } + + th.hidden-xs.hidden-sm, td.hidden-xs.hidden-sm { + display: none !important + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-xs.hidden-md { + display: none !important + } + + tr.hidden-xs.hidden-md { + display: none !important + } + + th.hidden-xs.hidden-md, td.hidden-xs.hidden-md { + display: none !important + } +} + +@media (min-width: 1200px) { + .hidden-xs.hidden-lg { + display: none !important + } + + tr.hidden-xs.hidden-lg { + display: none !important + } + + th.hidden-xs.hidden-lg, td.hidden-xs.hidden-lg { + display: none !important + } +} + +.hidden-sm { + display: block !important +} + +tr.hidden-sm { + display: table-row !important +} + +th.hidden-sm, td.hidden-sm { + display: table-cell !important +} + +@media (max-width: 767px) { + .hidden-sm.hidden-xs { + display: none !important + } + + tr.hidden-sm.hidden-xs { + display: none !important + } + + th.hidden-sm.hidden-xs, td.hidden-sm.hidden-xs { + display: none !important + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-sm { + display: none !important + } + + tr.hidden-sm { + display: none !important + } + + th.hidden-sm, td.hidden-sm { + display: none !important + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-sm.hidden-md { + display: none !important + } + + tr.hidden-sm.hidden-md { + display: none !important + } + + th.hidden-sm.hidden-md, td.hidden-sm.hidden-md { + display: none !important + } +} + +@media (min-width: 1200px) { + .hidden-sm.hidden-lg { + display: none !important + } + + tr.hidden-sm.hidden-lg { + display: none !important + } + + th.hidden-sm.hidden-lg, td.hidden-sm.hidden-lg { + display: none !important + } +} + +.hidden-md { + display: block !important +} + +tr.hidden-md { + display: table-row !important +} + +th.hidden-md, td.hidden-md { + display: table-cell !important +} + +@media (max-width: 767px) { + .hidden-md.hidden-xs { + display: none !important + } + + tr.hidden-md.hidden-xs { + display: none !important + } + + th.hidden-md.hidden-xs, td.hidden-md.hidden-xs { + display: none !important + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-md.hidden-sm { + display: none !important + } + + tr.hidden-md.hidden-sm { + display: none !important + } + + th.hidden-md.hidden-sm, td.hidden-md.hidden-sm { + display: none !important + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-md { + display: none !important + } + + tr.hidden-md { + display: none !important + } + + th.hidden-md, td.hidden-md { + display: none !important + } +} + +@media (min-width: 1200px) { + .hidden-md.hidden-lg { + display: none !important + } + + tr.hidden-md.hidden-lg { + display: none !important + } + + th.hidden-md.hidden-lg, td.hidden-md.hidden-lg { + display: none !important + } +} + +.hidden-lg { + display: block !important +} + +tr.hidden-lg { + display: table-row !important +} + +th.hidden-lg, td.hidden-lg { + display: table-cell !important +} + +@media (max-width: 767px) { + .hidden-lg.hidden-xs { + display: none !important + } + + tr.hidden-lg.hidden-xs { + display: none !important + } + + th.hidden-lg.hidden-xs, td.hidden-lg.hidden-xs { + display: none !important + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-lg.hidden-sm { + display: none !important + } + + tr.hidden-lg.hidden-sm { + display: none !important + } + + th.hidden-lg.hidden-sm, td.hidden-lg.hidden-sm { + display: none !important + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-lg.hidden-md { + display: none !important + } + + tr.hidden-lg.hidden-md { + display: none !important + } + + th.hidden-lg.hidden-md, td.hidden-lg.hidden-md { + display: none !important + } +} + +@media (min-width: 1200px) { + .hidden-lg { + display: none !important + } + + tr.hidden-lg { + display: none !important + } + + th.hidden-lg, td.hidden-lg { + display: none !important + } +} + +.visible-print { + display: none !important +} + +tr.visible-print { + display: none !important +} + +th.visible-print, td.visible-print { + display: none !important +} + +@media print { + .visible-print { + display: block !important + } + + tr.visible-print { + display: table-row !important + } + + th.visible-print, td.visible-print { + display: table-cell !important + } + + .hidden-print { + display: none !important + } + + tr.hidden-print { + display: none !important + } + + th.hidden-print, td.hidden-print { + display: none !important + } +} + +.container { + margin-right: auto; + margin-left: auto; + padding-left: 15px; + padding-right: 15px +} + +.container:before, .container:after { + content: " "; + display: table +} + +.container:after { + clear: both +} + +.row-fluid { + margin-left: -15px; + margin-right: -15px +} + +.row-fluid:before, .row-fluid:after { + content: " "; + display: table +} + +.row-fluid:after { + clear: both +} + +.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { + position: relative; + min-height: 1px; + padding-left: 15px; + padding-right: 15px +} + +.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11 { + float: left +} + +.col-xs-1 { + width: 8.333333333333332% +} + +.col-xs-2 { + width: 16.666666666666664% +} + +.col-xs-3 { + width: 25% +} + +.col-xs-4 { + width: 33.33333333333333% +} + +.col-xs-5 { + width: 41.66666666666667% +} + +.col-xs-6 { + width: 50% +} + +.col-xs-7 { + width: 58.333333333333336% +} + +.col-xs-8 { + width: 66.66666666666666% +} + +.col-xs-9 { + width: 75% +} + +.col-xs-10 { + width: 83.33333333333334% +} + +.col-xs-11 { + width: 91.66666666666666% +} + +.col-xs-12 { + width: 100% +} + +@media (min-width: 768px) { + .container { + max-width: 750px + } + + .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11 { + float: left + } + + .col-sm-1 { + width: 8.333333333333332% + } + + .col-sm-2 { + width: 16.666666666666664% + } + + .col-sm-3 { + width: 25% + } + + .col-sm-4 { + width: 33.33333333333333% + } + + .col-sm-5 { + width: 41.66666666666667% + } + + .col-sm-6 { + width: 50% + } + + .col-sm-7 { + width: 58.333333333333336% + } + + .col-sm-8 { + width: 66.66666666666666% + } + + .col-sm-9 { + width: 75% + } + + .col-sm-10 { + width: 83.33333333333334% + } + + .col-sm-11 { + width: 91.66666666666666% + } + + .col-sm-12 { + width: 100% + } + + .col-sm-push-1 { + left: 8.333333333333332% + } + + .col-sm-push-2 { + left: 16.666666666666664% + } + + .col-sm-push-3 { + left: 25% + } + + .col-sm-push-4 { + left: 33.33333333333333% + } + + .col-sm-push-5 { + left: 41.66666666666667% + } + + .col-sm-push-6 { + left: 50% + } + + .col-sm-push-7 { + left: 58.333333333333336% + } + + .col-sm-push-8 { + left: 66.66666666666666% + } + + .col-sm-push-9 { + left: 75% + } + + .col-sm-push-10 { + left: 83.33333333333334% + } + + .col-sm-push-11 { + left: 91.66666666666666% + } + + .col-sm-pull-1 { + right: 8.333333333333332% + } + + .col-sm-pull-2 { + right: 16.666666666666664% + } + + .col-sm-pull-3 { + right: 25% + } + + .col-sm-pull-4 { + right: 33.33333333333333% + } + + .col-sm-pull-5 { + right: 41.66666666666667% + } + + .col-sm-pull-6 { + right: 50% + } + + .col-sm-pull-7 { + right: 58.333333333333336% + } + + .col-sm-pull-8 { + right: 66.66666666666666% + } + + .col-sm-pull-9 { + right: 75% + } + + .col-sm-pull-10 { + right: 83.33333333333334% + } + + .col-sm-pull-11 { + right: 91.66666666666666% + } + + .col-sm-offset-1 { + margin-left: 8.333333333333332% + } + + .col-sm-offset-2 { + margin-left: 16.666666666666664% + } + + .col-sm-offset-3 { + margin-left: 25% + } + + .col-sm-offset-4 { + margin-left: 33.33333333333333% + } + + .col-sm-offset-5 { + margin-left: 41.66666666666667% + } + + .col-sm-offset-6 { + margin-left: 50% + } + + .col-sm-offset-7 { + margin-left: 58.333333333333336% + } + + .col-sm-offset-8 { + margin-left: 66.66666666666666% + } + + .col-sm-offset-9 { + margin-left: 75% + } + + .col-sm-offset-10 { + margin-left: 83.33333333333334% + } + + .col-sm-offset-11 { + margin-left: 91.66666666666666% + } +} + +@media (min-width: 992px) { + .container { + max-width: 970px + } + + .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11 { + float: left + } + + .col-md-1 { + width: 8.333333333333332% + } + + .col-md-2 { + width: 16.666666666666664% + } + + .col-md-3 { + width: 25% + } + + .col-md-4 { + width: 33.33333333333333% + } + + .col-md-5 { + width: 41.66666666666667% + } + + .col-md-6 { + width: 50% + } + + .col-md-7 { + width: 58.333333333333336% + } + + .col-md-8 { + width: 66.66666666666666% + } + + .col-md-9 { + width: 75% + } + + .col-md-10 { + width: 83.33333333333334% + } + + .col-md-11 { + width: 91.66666666666666% + } + + .col-md-12 { + width: 100% + } + + .col-md-push-0 { + left: auto + } + + .col-md-push-1 { + left: 8.333333333333332% + } + + .col-md-push-2 { + left: 16.666666666666664% + } + + .col-md-push-3 { + left: 25% + } + + .col-md-push-4 { + left: 33.33333333333333% + } + + .col-md-push-5 { + left: 41.66666666666667% + } + + .col-md-push-6 { + left: 50% + } + + .col-md-push-7 { + left: 58.333333333333336% + } + + .col-md-push-8 { + left: 66.66666666666666% + } + + .col-md-push-9 { + left: 75% + } + + .col-md-push-10 { + left: 83.33333333333334% + } + + .col-md-push-11 { + left: 91.66666666666666% + } + + .col-md-pull-0 { + right: auto + } + + .col-md-pull-1 { + right: 8.333333333333332% + } + + .col-md-pull-2 { + right: 16.666666666666664% + } + + .col-md-pull-3 { + right: 25% + } + + .col-md-pull-4 { + right: 33.33333333333333% + } + + .col-md-pull-5 { + right: 41.66666666666667% + } + + .col-md-pull-6 { + right: 50% + } + + .col-md-pull-7 { + right: 58.333333333333336% + } + + .col-md-pull-8 { + right: 66.66666666666666% + } + + .col-md-pull-9 { + right: 75% + } + + .col-md-pull-10 { + right: 83.33333333333334% + } + + .col-md-pull-11 { + right: 91.66666666666666% + } + + .col-md-offset-0 { + margin-left: 0 + } + + .col-md-offset-1 { + margin-left: 8.333333333333332% + } + + .col-md-offset-2 { + margin-left: 16.666666666666664% + } + + .col-md-offset-3 { + margin-left: 25% + } + + .col-md-offset-4 { + margin-left: 33.33333333333333% + } + + .col-md-offset-5 { + margin-left: 41.66666666666667% + } + + .col-md-offset-6 { + margin-left: 50% + } + + .col-md-offset-7 { + margin-left: 58.333333333333336% + } + + .col-md-offset-8 { + margin-left: 66.66666666666666% + } + + .col-md-offset-9 { + margin-left: 75% + } + + .col-md-offset-10 { + margin-left: 83.33333333333334% + } + + .col-md-offset-11 { + margin-left: 91.66666666666666% + } +} + +@media (min-width: 1200px) { + .container { + max-width: 1170px + } + + .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11 { + float: left + } + + .col-lg-1 { + width: 8.333333333333332% + } + + .col-lg-2 { + width: 16.666666666666664% + } + + .col-lg-3 { + width: 25% + } + + .col-lg-4 { + width: 33.33333333333333% + } + + .col-lg-5 { + width: 41.66666666666667% + } + + .col-lg-6 { + width: 50% + } + + .col-lg-7 { + width: 58.333333333333336% + } + + .col-lg-8 { + width: 66.66666666666666% + } + + .col-lg-9 { + width: 75% + } + + .col-lg-10 { + width: 83.33333333333334% + } + + .col-lg-11 { + width: 91.66666666666666% + } + + .col-lg-12 { + width: 100% + } + + .col-lg-push-0 { + left: auto + } + + .col-lg-push-1 { + left: 8.333333333333332% + } + + .col-lg-push-2 { + left: 16.666666666666664% + } + + .col-lg-push-3 { + left: 25% + } + + .col-lg-push-4 { + left: 33.33333333333333% + } + + .col-lg-push-5 { + left: 41.66666666666667% + } + + .col-lg-push-6 { + left: 50% + } + + .col-lg-push-7 { + left: 58.333333333333336% + } + + .col-lg-push-8 { + left: 66.66666666666666% + } + + .col-lg-push-9 { + left: 75% + } + + .col-lg-push-10 { + left: 83.33333333333334% + } + + .col-lg-push-11 { + left: 91.66666666666666% + } + + .col-lg-pull-0 { + right: auto + } + + .col-lg-pull-1 { + right: 8.333333333333332% + } + + .col-lg-pull-2 { + right: 16.666666666666664% + } + + .col-lg-pull-3 { + right: 25% + } + + .col-lg-pull-4 { + right: 33.33333333333333% + } + + .col-lg-pull-5 { + right: 41.66666666666667% + } + + .col-lg-pull-6 { + right: 50% + } + + .col-lg-pull-7 { + right: 58.333333333333336% + } + + .col-lg-pull-8 { + right: 66.66666666666666% + } + + .col-lg-pull-9 { + right: 75% + } + + .col-lg-pull-10 { + right: 83.33333333333334% + } + + .col-lg-pull-11 { + right: 91.66666666666666% + } + + .col-lg-offset-0 { + margin-left: 0 + } + + .col-lg-offset-1 { + margin-left: 8.333333333333332% + } + + .col-lg-offset-2 { + margin-left: 16.666666666666664% + } + + .col-lg-offset-3 { + margin-left: 25% + } + + .col-lg-offset-4 { + margin-left: 33.33333333333333% + } + + .col-lg-offset-5 { + margin-left: 41.66666666666667% + } + + .col-lg-offset-6 { + margin-left: 50% + } + + .col-lg-offset-7 { + margin-left: 58.333333333333336% + } + + .col-lg-offset-8 { + margin-left: 66.66666666666666% + } + + .col-lg-offset-9 { + margin-left: 75% + } + + .col-lg-offset-10 { + margin-left: 83.33333333333334% + } + + .col-lg-offset-11 { + margin-left: 91.66666666666666% + } +} + +.btn { + display: inline-block; + padding: 6px 12px; + margin-bottom: 0; + font-size: 14px; + font-weight: normal; + line-height: 1.428571429; + text-align: center; + vertical-align: middle; + cursor: pointer; + border: 1px solid transparent; + border-radius: 0; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none +} + +.btn:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px +} + +.btn:hover, .btn:focus { + color: #333; + text-decoration: none +} + +.btn:active, .btn.active { + outline: 0; + background-image: none +} + +.btn.disabled, .btn[disabled], fieldset[disabled] .btn { + cursor: not-allowed; + pointer-events: none; + opacity: .65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none +} + +.btn-default { + color: #333; + background-color: #fff; + border-color: #ccc +} + +.btn-default:hover, .btn-default:focus, .btn-default:active, .btn-default.active, .open .dropdown-toggle.btn-default { + color: #333; + background-color: #ebebeb; + border-color: #adadad +} + +.btn-default:active, .btn-default.active, .open .dropdown-toggle.btn-default { + background-image: none +} + +.btn-default.disabled, .btn-default[disabled], fieldset[disabled] .btn-default, .btn-default.disabled:hover, .btn-default[disabled]:hover, fieldset[disabled] .btn-default:hover, .btn-default.disabled:focus, .btn-default[disabled]:focus, fieldset[disabled] .btn-default:focus, .btn-default.disabled:active, .btn-default[disabled]:active, fieldset[disabled] .btn-default:active, .btn-default.disabled.active, .btn-default[disabled].active, fieldset[disabled] .btn-default.active { + background-color: #fff; + border-color: #ccc +} + +.btn-primary { + color: #fff; + background-color: #428bca; + border-color: #357ebd +} + +.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active, .open .dropdown-toggle.btn-primary { + color: #fff; + background-color: #3276b1; + border-color: #285e8e +} + +.btn-primary:active, .btn-primary.active, .open .dropdown-toggle.btn-primary { + background-image: none +} + +.btn-primary.disabled, .btn-primary[disabled], fieldset[disabled] .btn-primary, .btn-primary.disabled:hover, .btn-primary[disabled]:hover, fieldset[disabled] .btn-primary:hover, .btn-primary.disabled:focus, .btn-primary[disabled]:focus, fieldset[disabled] .btn-primary:focus, .btn-primary.disabled:active, .btn-primary[disabled]:active, fieldset[disabled] .btn-primary:active, .btn-primary.disabled.active, .btn-primary[disabled].active, fieldset[disabled] .btn-primary.active { + background-color: #428bca; + border-color: #357ebd +} + +.btn-warning { + color: #fff; + background-color: #f0ad4e; + border-color: #eea236 +} + +.btn-warning:hover, .btn-warning:focus, .btn-warning:active, .btn-warning.active, .open .dropdown-toggle.btn-warning { + color: #fff; + background-color: #ed9c28; + border-color: #d58512 +} + +.btn-warning:active, .btn-warning.active, .open .dropdown-toggle.btn-warning { + background-image: none +} + +.btn-warning.disabled, .btn-warning[disabled], fieldset[disabled] .btn-warning, .btn-warning.disabled:hover, .btn-warning[disabled]:hover, fieldset[disabled] .btn-warning:hover, .btn-warning.disabled:focus, .btn-warning[disabled]:focus, fieldset[disabled] .btn-warning:focus, .btn-warning.disabled:active, .btn-warning[disabled]:active, fieldset[disabled] .btn-warning:active, .btn-warning.disabled.active, .btn-warning[disabled].active, fieldset[disabled] .btn-warning.active { + background-color: #f0ad4e; + border-color: #eea236 +} + +.btn-danger { + color: #fff; + background-color: #d9534f; + border-color: #d43f3a +} + +.btn-danger:hover, .btn-danger:focus, .btn-danger:active, .btn-danger.active, .open .dropdown-toggle.btn-danger { + color: #fff; + background-color: #d2322d; + border-color: #ac2925 +} + +.btn-danger:active, .btn-danger.active, .open .dropdown-toggle.btn-danger { + background-image: none +} + +.btn-danger.disabled, .btn-danger[disabled], fieldset[disabled] .btn-danger, .btn-danger.disabled:hover, .btn-danger[disabled]:hover, fieldset[disabled] .btn-danger:hover, .btn-danger.disabled:focus, .btn-danger[disabled]:focus, fieldset[disabled] .btn-danger:focus, .btn-danger.disabled:active, .btn-danger[disabled]:active, fieldset[disabled] .btn-danger:active, .btn-danger.disabled.active, .btn-danger[disabled].active, fieldset[disabled] .btn-danger.active { + background-color: #d9534f; + border-color: #d43f3a +} + +.btn-success { + color: #fff; + background-color: #5cb85c; + border-color: #4cae4c +} + +.btn-success:hover, .btn-success:focus, .btn-success:active, .btn-success.active, .open .dropdown-toggle.btn-success { + color: #fff; + background-color: #47a447; + border-color: #398439 +} + +.btn-success:active, .btn-success.active, .open .dropdown-toggle.btn-success { + background-image: none +} + +.btn-success.disabled, .btn-success[disabled], fieldset[disabled] .btn-success, .btn-success.disabled:hover, .btn-success[disabled]:hover, fieldset[disabled] .btn-success:hover, .btn-success.disabled:focus, .btn-success[disabled]:focus, fieldset[disabled] .btn-success:focus, .btn-success.disabled:active, .btn-success[disabled]:active, fieldset[disabled] .btn-success:active, .btn-success.disabled.active, .btn-success[disabled].active, fieldset[disabled] .btn-success.active { + background-color: #5cb85c; + border-color: #4cae4c +} + +.btn-info { + color: #fff; + background-color: #5bc0de; + border-color: #46b8da +} + +.btn-info:hover, .btn-info:focus, .btn-info:active, .btn-info.active, .open .dropdown-toggle.btn-info { + color: #fff; + background-color: #39b3d7; + border-color: #269abc +} + +.btn-info:active, .btn-info.active, .open .dropdown-toggle.btn-info { + background-image: none +} + +.btn-info.disabled, .btn-info[disabled], fieldset[disabled] .btn-info, .btn-info.disabled:hover, .btn-info[disabled]:hover, fieldset[disabled] .btn-info:hover, .btn-info.disabled:focus, .btn-info[disabled]:focus, fieldset[disabled] .btn-info:focus, .btn-info.disabled:active, .btn-info[disabled]:active, fieldset[disabled] .btn-info:active, .btn-info.disabled.active, .btn-info[disabled].active, fieldset[disabled] .btn-info.active { + background-color: #5bc0de; + border-color: #46b8da +} + +.btn-link { + color: #428bca; + font-weight: normal; + cursor: pointer; + border-radius: 0 +} + +.btn-link, .btn-link:active, .btn-link[disabled], fieldset[disabled] .btn-link { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none +} + +.btn-link, .btn-link:hover, .btn-link:focus, .btn-link:active { + border-color: transparent +} + +.btn-link:hover, .btn-link:focus { + color: #2a6496; + text-decoration: underline; + background-color: transparent +} + +.btn-link[disabled]:hover, fieldset[disabled] .btn-link:hover, .btn-link[disabled]:focus, fieldset[disabled] .btn-link:focus { + color: #999; + text-decoration: none +} + +.btn-lg { + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px +} + +.btn-sm, .btn-xs { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px +} + +.btn-xs { + padding: 1px 5px +} + +.btn-block { + display: block; + width: 100%; + padding-left: 0; + padding-right: 0 +} + +.btn-block + .btn-block { + margin-top: 5px +} + +input[type="submit"].btn-block, input[type="reset"].btn-block, input[type="button"].btn-block { + width: 100% +} + +.btn-default .caret { + border-top-color: #333 +} + +.btn-primary .caret, .btn-success .caret, .btn-warning .caret, .btn-danger .caret, .btn-info .caret { + border-top-color: #fff +} + +.dropup .btn-default .caret { + border-bottom-color: #333 +} + +.dropup .btn-primary .caret, .dropup .btn-success .caret, .dropup .btn-warning .caret, .dropup .btn-danger .caret, .dropup .btn-info .caret { + border-bottom-color: #fff +} + +.btn-group, .btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle +} + +.btn-group > .btn, .btn-group-vertical > .btn { + position: relative; + float: left +} + +.btn-group > .btn:hover, .btn-group-vertical > .btn:hover, .btn-group > .btn:focus, .btn-group-vertical > .btn:focus, .btn-group > .btn:active, .btn-group-vertical > .btn:active, .btn-group > .btn.active, .btn-group-vertical > .btn.active { + z-index: 2 +} + +.btn-group > .btn:focus, .btn-group-vertical > .btn:focus { + outline: 0 +} + +.btn-group .btn + .btn, .btn-group .btn + .btn-group, .btn-group .btn-group + .btn, .btn-group .btn-group + .btn-group { + margin-left: -1px +} + +.btn-toolbar:before, .btn-toolbar:after { + content: " "; + display: table +} + +.btn-toolbar:after { + clear: both +} + +.btn-toolbar .btn-group { + float: left +} + +.btn-toolbar > .btn + .btn, .btn-toolbar > .btn-group + .btn, .btn-toolbar > .btn + .btn-group, .btn-toolbar > .btn-group + .btn-group { + margin-left: 5px +} + +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0 +} + +.btn-group > .btn:first-child { + margin-left: 0 +} + +.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-bottom-right-radius: 0; + border-top-right-radius: 0 +} + +.btn-group > .btn:last-child:not(:first-child), .btn-group > .dropdown-toggle:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0 +} + +.btn-group > .btn-group { + float: left +} + +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0 +} + +.btn-group > .btn-group:first-child > .btn:last-child, .btn-group > .btn-group:first-child > .dropdown-toggle { + border-bottom-right-radius: 0; + border-top-right-radius: 0 +} + +.btn-group > .btn-group:last-child > .btn:first-child { + border-bottom-left-radius: 0; + border-top-left-radius: 0 +} + +.btn-group .dropdown-toggle:active, .btn-group.open .dropdown-toggle { + outline: 0 +} + +.btn-group-xs > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; + padding: 1px 5px +} + +.btn-group-sm > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px +} + +.btn-group-lg > .btn { + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px +} + +.btn-group > .btn + .dropdown-toggle { + padding-left: 8px; + padding-right: 8px +} + +.btn-group > .btn-lg + .dropdown-toggle { + padding-left: 12px; + padding-right: 12px +} + +.btn-group.open .dropdown-toggle { + background: #f2f2f2 +} + +.btn .caret { + margin-left: 0 +} + +.btn-lg .caret { + border-width: 5px 5px 0; + border-bottom-width: 0 +} + +.dropup .btn-lg .caret { + border-width: 0 5px 5px +} + +.btn-group-vertical > .btn, .btn-group-vertical > .btn-group { + display: block; + float: none; + width: 100%; + max-width: 100% +} + +.btn-group-vertical > .btn-group:before, .btn-group-vertical > .btn-group:after { + content: " "; + display: table +} + +.btn-group-vertical > .btn-group:after { + clear: both +} + +.btn-group-vertical > .btn-group > .btn { + float: none +} + +.btn-group-vertical > .btn + .btn, .btn-group-vertical > .btn + .btn-group, .btn-group-vertical > .btn-group + .btn, .btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0 +} + +.btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0 +} + +.btn-group-vertical > .btn:first-child:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0 +} + +.btn-group-vertical > .btn:last-child:not(:first-child) { + border-bottom-left-radius: 0; + border-top-right-radius: 0; + border-top-left-radius: 0 +} + +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0 +} + +.btn-group-vertical > .btn-group:first-child > .btn:last-child, .btn-group-vertical > .btn-group:first-child > .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0 +} + +.btn-group-vertical > .btn-group:last-child > .btn:first-child { + border-top-right-radius: 0; + border-top-left-radius: 0 +} + +.btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate +} + +.btn-group-justified .btn { + float: none; + display: table-cell; + width: 1% +} + +[data-toggle="buttons"] > .btn > input[type="radio"], [data-toggle="buttons"] > .btn > input[type="checkbox"] { + display: none +} + +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px solid #000; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + border-bottom: 0 dotted; + content: "" +} + +.dropdown { + position: relative +} + +.dropdown-toggle:focus { + outline: 0 +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + list-style: none; + font-size: 14px; + background-color: #fff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0; + background-clip: padding-box +} + +.dropdown-menu.pull-right { + right: 0; + left: auto +} + +.dropdown-menu .divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5 +} + +.dropdown-menu > li > a { + font-size: 14px; + text-decoration: none; + display: block; + padding: 5px 20px; + clear: both; + font-weight: normal; + line-height: 1.428571429; + color: #333; + white-space: nowrap +} + +.dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus { + text-decoration: none; + color: #fff; + background-color: #428bca +} + +.dropdown-menu > .active > a, .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus { + color: #fff; + text-decoration: none; + outline: 0; + background-color: #428bca +} + +.dropdown-menu > .disabled > a, .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { + color: #999 +} + +.dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { + text-decoration: none; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + cursor: not-allowed +} + +.open > .dropdown-menu { + display: block +} + +.open > a { + outline: 0 +} + +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: 12px; + line-height: 1.428571429; + color: #999 +} + +.dropdown-backdrop { + position: fixed; + left: 0; + right: 0; + bottom: 0; + top: 0; + z-index: 990 +} + +.pull-right > .dropdown-menu { + right: 0; + left: auto +} + +.dropup .caret, .navbar-fixed-bottom .dropdown .caret { + border-top: 0 dotted; + border-bottom: 4px solid #000; + content: "" +} + +.dropup .dropdown-menu, .navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px +} + +@media (min-width: 768px) { + .navbar-right .dropdown-menu { + right: 0; + left: auto + } +} + +body, html { + font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; + margin: 0; + background: #ededed; + color: #343437; + line-height: 2em; + font-weight: 300; + font-size: .95em +} + +h1 { + font-size: 2.5em; + margin: .8em 0 +} + +body.center { + padding: 0 30px; + background: #FFF; + font-size: 1em +} + +ul li { + list-style-type: disc +} + +a { + color: #4290ad; + text-decoration: none; + font-weight: normal +} + +a:hover { + text-decoration: underline +} + +h1, h2, h3 { + font-weight: 300; + line-height: 1.2em +} + +.topNav, .bottomNav { + background: #f2f2f2; + margin: 0 -30px; + margin-bottom: 20px +} + +.topNav:before, .bottomNav:before, .topNav:after, .bottomNav:after { + content: " "; + display: table +} + +.topNav:after, .bottomNav:after { + clear: both +} + +.topNav ul.navList, .bottomNav ul.navList { + padding: 10px 20px; + margin: 0; + list-style-type: none +} + +.topNav ul.navList li, .bottomNav ul.navList li { + display: inline; + padding: 0 10px +} + +.topNav ul.navList li.navBarCell1Rev, .bottomNav ul.navList li.navBarCell1Rev { + font-weight: bold +} + +.bottomNav { + margin-top: 30px; + margin-bottom: 0 +} + +.aboutLanguage { + color: #BBB; + background: white; + text-align: center; + padding: 20px 0 +} + +.subNav { + padding-bottom: 10px; + margin-bottom: 10px; + border-bottom: 1px solid #EEE +} + +.subNav:before, .subNav:after { + content: " "; + display: table +} + +.subNav:after { + clear: both +} + +.subNav div:before, .subNav div:after { + content: " "; + display: table +} + +.subNav div:after { + clear: both +} + +.subNav ul.navList, .subNav ul { + font-size: .9em; + margin: 0; + padding: 00; + float: left; + list-style-type: none +} + +.subNav ul.navList li, .subNav ul li { + padding: 0 5px; + display: inline +} + +table.overviewSummary, .contentContainer ul li table { + width: 100%; + margin: 20px 0 +} + +table.overviewSummary caption, .contentContainer ul li table caption { + text-align: left; + font-weight: 100; + font-size: 1em; + float: left; + padding: 0 10px; + margin-top: 10px; + background: #db4800; + color: white +} + +table.overviewSummary tr th, .contentContainer ul li table tr th { + padding: 10px; + font-weight: bold; + font-size: 1em; + text-align: left +} + +table.overviewSummary tr td, .contentContainer ul li table tr td { + vertical-align: top; + font-size: .9em; + padding: 5px 10px; + border-top: 1px solid #EEE +} + +table.overviewSummary tbody > tr:nth-child(odd) > td, .contentContainer ul li table tbody > tr:nth-child(odd) > td { + background-color: #f9f9f9 +} + +body.left { + padding-top: 10px +} + +body.left h1, body.left h2 { + display: inline; + text-align: left; + font-weight: 100; + font-size: 1em; + margin: 0 10px; + padding: 3px 10px; + margin-top: 10px; + background: #db4800; + color: white; + line-height: 40px +} + +body.left .indexHeader { + margin: 0; + padding: 0 15px; + font-size: .9em +} + +body.left ul { + list-style-type: none; + margin: 0; + padding: 0 +} + +body.left ul li { + margin: 0; + padding: 0 +} + +body.left ul li a { + display: block; + padding: 0 15px; + text-decoration: none +} + +body.left ul li a:hover { + text-decoration: underline +} + +.contentContainer .header ul, .contentContainer ul.blockList { + padding: 0 +} + +.contentContainer .header ul > li, .contentContainer ul.blockList > li { + list-style-type: none +} + +.contentContainer ul.inheritance { + margin-left: 0; + padding-left: 0 +} + +.contentContainer ul.inheritance li { + list-style-type: none +} + +.contentContainer ul.inheritance ul.inheritance { + padding-left: 20px +} + +.contentContainer hr { + border: 0 none; + border-top: 1px solid #EEE; + margin-top: 30px; + margin-botom: 0 +} + +ul.blockList ul.blockList, ul.blockList ul.blockListLast { + border: 1px solid #EEE; + margin: 20px 0; + padding: 0 20px +} + +ul.blockList ul.blockList h4, ul.blockList ul.blockListLast h4, ul.blockList ul.blockList h3, ul.blockList ul.blockListLast h3 { + font-size: 1em; + font-weight: bold; + line-height: 2em; + text-indent: 10px; + border-bottom: 1px solid #EEE; + margin: 0 -20px; + padding: 5px 0; + background: #f2f2f2 +} + +ul.blockList ul.blockList li, ul.blockList ul.blockListLast li { + list-style-type: none +} + +ul.horizontal { + list-style-type: none; + padding: 0; + margin: 0; + font-size: .9em +} + +ul.horizontal li { + display: inline +} + +span.strong { + font-weight: bold +} + +a span.strong { + font-weight: normal +} \ No newline at end of file diff --git a/3.2.3/index.html b/3.2.3/index.html new file mode 100644 index 000000000..af46d0d9d --- /dev/null +++ b/3.2.3/index.html @@ -0,0 +1,3192 @@ + + + + + + + +Grails Views + + + + + + +
+
+

1. Introduction

+
+
+

The Grails Views project provides additional view technologies to the Grails framework, including JSON and Markup views.

+
+
+

JSON views allow rendering of JSON responses using Groovy’s StreamingJsonBuilder.

+
+
+

Markup views allow rendering of XML responses using Groovy’s MarkupTemplateEngine.

+
+
+

However, the core of the project is extensible for potentially any kind of view implementation that is based on a Groovy DSL. The following sections cover usage of Groovy JSON views.

+
+
+
+
+

2. JSON Views

+
+
+

2.1. Introduction

+
+

JSON views are written in Groovy, end with the file extension gson and reside in the grails-app/views directory. They provide a DSL for producing output in the JSON format. A hello world example can be seen below:

+
+
+
grails-app/views/hello.gson
+
+
json.message {
+    hello "world"
+}
+
+
+
+

The above JSON view results in the output:

+
+
+
+
{"message":{ "hello":"world"}}
+
+
+
+

The json variable is an instance of StreamingJsonBuilder. See the documentation in the Groovy user guide for more information on StreamingJsonBuilder.

+
+
+

More example usages:

+
+
+
+
json(1,2,3) == "[1,2,3]"
+json { name "Bob" } == '{"name":"Bob"}'
+json([1,2,3]) { n it } == '[{"n":1},{"n":2},{"n":3}]'
+
+
+
+

You can specify a model to view in one of two ways. Either with a model block:

+
+
+
grails-app/views/hello.gson
+
+
model {
+    String message
+}
+json.message {
+    hello message
+}
+
+
+
+

Or with the @Field transformation provided by Groovy:

+
+
+
grails-app/views/hello.gson
+
+
import groovy.transform.Field
+@Field String message
+json.message {
+    hello message
+}
+
+
+
+
+

2.2. Version History

+
+

The current release is 3.2.3. Below is a version history.

+
+
+

For later releases check the release notes at: https://github.com/grails/grails-views/releases

+
+
+

2.0.2

+
+
+
    +
  • +

    Fix bug where incorrect JSON was generated when all values are null in the nested object.

    +
  • +
+
+
+

2.0.1

+
+
+
    +
  • +

    Optimized compileGsonViews performance and reduced IOPS as well by compiling in parallel threads.

    +
  • +
  • +

    Remove duplicate GSON classes from WAR.

    +
  • +
+
+
+

2.0.0

+
+
+
    +
  • +

    Grails 4, Gradle 5.

    +
  • +
  • +

    Support for render embedded types with "includes".

    +
  • +
  • +

    Fixed StackOverflow when rendering bidirectional associations.

    +
  • +
  • +

    Allow augmenting model in JSON view.

    +
  • +
  • +

    Fixed bugs related to exclude version and error properties from a Map model.

    +
  • +
+
+
+

1.3.0

+
+
+
    +
  • +

    The includes support has changed in a way that may break existing use cases. Having includes: ['captain', 'captain.name']] previously excluded all other fields except for captain.name. The captain in the list was necessary for captain.name to function as expected. Now the captain entry will cause all fields in captain to be rendered. To restore the previous behavior, simply remove the captain entry. includes: ['captain', 'captain.name']includes: ['captain.name].

    +
  • +
+
+
+

1.2.0

+
+
+
    +
  • +

    JSON API support

    +
  • +
  • +

    Ability to register custom converters

    +
  • +
  • +

    New configuration options for date formatting and unicode escaping

    +
  • +
  • +

    New testing trait that integrates with the testing-support framework (1.2.5)

    +
  • +
+
+
+

1.1.0

+
+
+
    +
  • +

    Global template support

    +
  • +
  • +

    Template inheritance

    +
  • +
  • +

    Global templates for GORM for MongoDB / GeoJSON

    +
  • +
  • +

    Support for easily testing JSON views with JsonViewTest

    +
  • +
  • +

    Pagination support in HAL

    +
  • +
  • +

    Better Embedded support in HAL

    +
  • +
  • +

    Ability to access HTTP parameters and headers

    +
  • +
  • +

    Resource expansion with the expand parameter

    +
  • +
  • +

    Controller namespace support

    +
  • +
  • +

    Support for a default /object/_object.gson template

    +
  • +
+
+
+

1.0.0

+
+
+
    +
  • +

    Initial 1.0.0 GA Release

    +
  • +
+
+
+
+

2.3. Installation

+
+

To activate JSON views, add the following dependency to the dependencies block of your build.gradle:

+
+
+
+
compile "org.grails.plugins:views-json:3.2.3"
+
+
+
+

If you are also using MongoDB you may want to add the views-json-templates dependency too which includes support for GeoJSON:

+
+
+
+
compile "org.grails.plugins:views-json-templates:3.2.3"
+
+
+
+

To enable Gradle compilation of JSON views for production environment add the following to the buildscript dependencies block:

+
+
+
+
buildscript {
+    ...
+    dependencies {
+        ...
+        classpath "org.grails.plugins:views-gradle:3.2.3"
+    }
+}
+
+
+
+

Then apply the org.grails.plugins.views-json Gradle plugin after any Grails core gradle plugins:

+
+
+
+
...
+apply plugin: "org.grails.grails-web"
+apply plugin: "org.grails.plugins.views-json"
+
+
+
+

This will add a compileGsonViews task to Gradle that is executed when producing a JAR or WAR file.

+
+
+
+

2.4. Templates

+
+

2.4.1. Template Basics

+
+

You can define templates starting with underscore _. For example given the following template called _person.gson:

+
+
+
grails-app/views/person/_person.gson
+
+
model {
+    Person person
+}
+json {
+    name person.name
+    age person.age
+}
+
+
+
+

You can render the template with the g.render method:

+
+
+
grails-app/views/person/show.gson
+
+
model {
+    Person person
+}
+json g.render(template:"person", model:[person:person])
+
+
+
+

The above assumes the view is in the same directory as the template. If this is not the case you may need to use a relative URI to the template:

+
+
+
grails-app/views/family/show.gson
+
+
model {
+    Person person
+}
+json g.render(template:"/person/person", model:[person:person])
+
+
+
+
+

2.4.2. Template Namespace

+
+

The previous example can be simplified using the template namespace:

+
+
+
grails-app/views/person/show.gson
+
+
model {
+    Person person
+}
+json tmpl.person(person)
+
+
+
+

In this example, the name of the method call (person in this case) is used to dictate which template to render.

+
+
+

The argument to the template becomes the model. The name of the model variable is the same as the template name. If you wish to alter this you can pass a map instead:

+
+
+
grails-app/views/person/show.gson
+
+
model {
+    Person person
+}
+json tmpl.person(individual:person)
+
+
+
+

In the above example the model variable passed to the _person.gson template is called individual.

+
+
+

This technique may also be used when you want to render a template using a relative path:

+
+
+
grails-app/views/person/show.gson
+
+
model {
+    Person person
+}
+json tmpl.'/person/person'(person:person)
+
+
+
+

The template namespace even accepts a collection (or any Iterable object):

+
+
+
grails-app/views/person/show.gson
+
+
model {
+    List<Person> people = []
+}
+json tmpl.person(people)
+
+
+
+

In this case the output is a JSON array. For example:

+
+
+
+
    [{"name":"Fred",age:10},{"name":"Bob",age:12}]
+
+
+
+

When rendering an Iterable, you can also specify the model name:

+
+
+
grails-app/views/person/show.gson
+
+
model {
+    List<Person> people = []
+}
+json tmpl.person("owner", people)
+
+
+
+

The person template would have a field defined: Person owner

+
+
+

If you need additional data that will be static over each iteration of the template, you can also pass in a model:

+
+
+
grails-app/views/person/show.gson
+
+
model {
+    List<Person> people = []
+}
+json tmpl.person(people, [relationship: "Father"])
+
+
+
+

The person template could have a field defined: String relationship

+
+
+

By passing in a collection the plugin will iterate over each element on the collection and render the template as a JSON array. If you do not want this to happen then use the variation of the method that takes a map instead:

+
+
+
grails-app/views/person/show.gson
+
+
model {
+    List<Person> people = []
+}
+json tmpl.person(people:people)
+
+
+
+
+

2.4.3. More Ways to Render Templates

+
+

The g.render method is flexible, you can render templates in many forms:

+
+
+
+
model {
+    Family family
+}
+json {
+    name family.father.name
+    age family.father.age
+    oldestChild g.render(template:"person", model:[person: family.children.max { Person p -> p.age } ])
+    children g.render(template:"person", collection: family.children, var:'person')
+}
+
+
+
+

However, most of these use cases are more concise with the template namespace:

+
+
+
+
model {
+    Family family
+}
+json {
+    name family.father.name
+    age family.father.age
+    oldestChild tmpl.person( family.children.max { Person p -> p.age } ] )
+    children tmpl.person( family.children )
+}
+
+
+
+
+

2.4.4. Template Inheritance

+
+

JSON templates can inherit from a parent template. For example consider the following parent template:

+
+
+
grails-app/views/_parent.gson
+
+
model {
+    Object object
+}
+json {
+    hal.links(object)
+    version "1.0"
+}
+
+
+
+

A child template can inherit from the above template by using the inherits method:

+
+
+
grails-app/views/_person.gson
+
+
inherits template:"parent"
+model {
+    Person person
+}
+json {
+    name person.name
+}
+
+
+
+

The JSON from the parent and the child template will be combined so that the output is:

+
+
+
+
 {
+   "_links": {
+     "self": {
+       "href": "http://localhost:8080/person/1",
+       "hreflang": "en",
+       "type": "application/hal+json"
+     }
+   },
+   "version": "1.0",
+   "name": "Fred"
+ }
+
+
+
+

The parent template’s model will be formulated from the child templates model and the super class name. For example if the model is Person person where Person extends from Object then the final model passed to the parent template will look like:

+
+
+
+
[person:person, object:person]
+
+
+
+

If the Person class extended from a class called Mammal then the model passed to the parent would be:

+
+
+
+
[person:person, mammal:person]
+
+
+
+

This allows you to design your templates around object inheritance.

+
+
+

You can customize the model passed to the parent template using the model argument:

+
+
+
+
inherits template:"parent", model:[person:person]
+
+
+
+
+
+

2.5. Rendering Domain Classes

+
+

2.5.1. Basics of Domain Class Rendering

+
+

Typically your model may involve one or many domain instances. JSON views provide a render method for rendering these.

+
+
+

For example given the following domain class:

+
+
+
+
class Book {
+    String title
+}
+
+
+
+

And the following template:

+
+
+
+
model {
+    Book book
+}
+json g.render(book)
+
+
+
+

The resulting output is:

+
+
+
+
{"id":1,"title":"The Stand"}
+
+
+
+

You can customize the rendering by including or excluding properties:

+
+
+
+
json g.render(book, [includes:['title']])
+
+
+
+

Or by providing a closure to provide additional JSON output:

+
+
+
+
json g.render(book) {
+    pages 1000
+}
+
+
+
+

Or combine the two approaches:

+
+
+
+
json g.render(book, [includes:['title']]) {
+    pages 1000
+}
+
+
+
+
+

2.5.2. Deep Rendering of Domain Classes

+
+

Typically the g.render(..) method will only render objects one level deep. In other words if you have a domain class such as:

+
+
+
+
class Book {
+    String title
+    Author author
+}
+
+
+
+

The resulting output will be something like:

+
+
+
+
{"id":1,"title":"The Stand","author":{id:1}}
+
+
+
+

If you wish for the author to be included as part of the rendering, there are two requirements, first you must make sure the association is initialized.

+
+
+

If the render method encounters a proxy, it will not traverse into the relationship to avoid N+1 query performance problems.

+
+
+ + + + + +
+ + +The same applies to one-to-many collection associations. If the association has not been initialized the render method will not traverse through the collection! +
+
+
+

So you must make sure your query uses a join:

+
+
+
+
Book.findByTitle("The Stand", [fetch:[author:"join"]])
+
+
+
+

Secondly when calling the render method you should pass the deep argument:

+
+
+
+
json g.render(book, [deep:true])
+
+
+
+

Alternatively, to only expand a single association you can use the expand argument:

+
+
+
+
json g.render(book, [expand:['author']])
+
+
+
+ + + + + +
+ + +request parameters can also be used to expand associations (eg. ?expand=author), if you do not want to allow this, then use includes or excludes to include only the properties you want. +
+
+
+

Finally, if you prefer to handle the rendering yourself you can do by excluding the property:

+
+
+
+
json g.render(book, [excludes:['author']]) {
+    author {
+        name book.author.name
+    }
+}
+
+
+
+
+

2.5.3. Domain Class Rendering and Templates

+
+

An alternative to the default behaviour of the render method is to rely on templates.

+
+
+

In other words if you create a /author/_author.gson template and then use the g.render method on an instance of book:

+
+
+
+
json g.render(book)
+
+
+
+

Whenever the author association is encountered the g.render method will automatically render the /author/_author.gson template instead.

+
+
+
+
+

2.6. JSON View API

+
+

All JSON views subclass the JsonViewTemplate class by default.

+
+
+

The JsonViewTemplate superclass implements the JsonView trait which in turn extends the the GrailsView trait.

+
+
+

Thanks to these traits several methods and properties are available to JSON views that can be used to accomplish different tasks.

+
+
+ +
+

Links can be generated using the g.link(..) method:

+
+
+
+
json.person {
+    name "bob"
+    homepage g.link(controller:"person", id:"bob")
+}
+
+
+
+

The g.link method is similar to the equivalent tag in GSP and allows you to easily create links to other controllers.

+
+
+
+

2.6.2. Altering the Response Headers

+
+

To customize content types and headers use the response object defined by the HttpView trait:

+
+
+
+
response.contentType "application/hal+json"
+response.header "Token", "foo"
+json.person {
+    name "bob"
+}
+
+
+
+

The HttpView trait defines a variety of methods for inspecting the request and altering the response.

+
+
+ + + + + +
+ + +The methods available are only a subset of the methods available via the HttpServletRequest and HttpServletResponse objects, this is by design as view logic should be limited and logic performed in the controller instead. +
+
+
+
+

2.6.3. Accessing the Request

+
+

Various aspects of the request can be accessed by the request object defined by the HttpView trait:

+
+
+
+
json.person {
+ name "bob"
+ userAgent request.getHeader('User-Agent')
+}
+
+
+
+

Parameters can be accessed via the params object which is an instance of Parameters:

+
+
+
+
json.person {
+ name "bob"
+ first params.int('offset', 0)
+ sort params.get('sort', 'name')
+}
+
+
+
+
+

2.6.4. Default Static Imports

+
+

The following classes' static properties are imported by default:

+
+
+
    +
  • +

    org.springframework.http.HttpStatus

    +
  • +
  • +

    org.springframework.http.HttpMethod

    +
  • +
  • +

    grails.web.http.HttpHeaders

    +
  • +
+
+
+

This means that you can use the response object to set the status using these constants, instead of hard coded numbers:

+
+
+
+
response.status NOT_FOUND
+
+
+
+

Or generate links using the appropriate HTTP method:

+
+
+
+
g.link(resource:"books", method:POST)
+
+
+
+
+

2.6.5. I18n & Locale Integration

+
+

You can lookup i18n messages use the g.message method:

+
+
+
+
json.error {
+    description g.message(code:'default.error.message')
+}
+
+
+
+

You can also create locale specific views by appending the locale to view name. For example person_de.gson for German or person.gson for the default.

+
+
+ + + + + +
+ + +For more complex message lookups the messageSource property is an instance of the Spring MessageSource class. +
+
+
+
+

2.6.6. Accessing Configuration

+
+

The application configuration is injected automatically into your json views. To access it, simply reference config.

+
+
+
+
json {
+    foo config.getProperty("bar", String, null)
+}
+
+
+
+
+

2.6.7. Miscellaneous Properties

+
+

Other properties are also available:

+
+ ++++ + + + + + + + + + + + + + + +

controllerName

The name of the current controller

actionName

The name of the current controller action

controllerNamespace

The namespace of the current controller

+
+
+
+

2.7. Model Naming

+
+

Grails Framework supports a convention for the model names in your JSON views. If the convention does not meet your needs, model variables can be explicitly defined.

+
+
+ + + + + +
+ + +Some model names are reserved since there are properties of the same name injected into the view: +locale, response, request, page, controllerNamespace, controllerName, actionName, config, generator, json +
+
+
+

2.7.1. Explicit Model Naming

+
+

Given a view:

+
+
+
grails-app/views/hello/index.gson
+
+
model {
+    String message
+}
+json.message {
+    hello message
+}
+
+
+
+

Then the controller has to specify the name to be used in the view:

+
+
+
grails-app/controllers/HelloController.groovy
+
+
def index() {
+    respond(message: "Hello World")
+    //or [message: "Hello World"]
+}
+
+
+
+

When using a template:

+
+
+
grails-app/views/hello/_msg.gson
+
+
model {
+    String message
+}
+json.message {
+    hello message
+}
+
+
+
+

In the view you can use the tmpl namespace:

+
+
+
+
json {
+    message tmpl.msg([message: message])
+    // or g.render(template:'msg', model:[message: message])
+    // or g.render(template:'msg', model: message, var:'message')
+}
+
+
+
+

Using collections:

+
+
+
+
model {
+    List<String> messages
+}
+json {
+    messages tmpl.msg('message', messages)
+    // or g.render(template:'msg', collection: messages, var: 'message')
+}
+
+
+
+
+

2.7.2. Model By Convention

+
+
Property Type
+
+

When rendering a non iterable object, the property name of the type is used when a name is not specified.

+
+
+
grails-app/views/hello/index.gson
+
+
model {
+    String string
+}
+json.message {
+    hello string
+}
+
+
+
+

The variable can be passed in directly to respond.

+
+
+
grails-app/controllers/HelloController.groovy
+
+
def index() {
+    respond("Hello World")
+}
+
+
+
+

This also applies when rendering templates with tmpl.

+
+
+
grails-app/views/hello/_msg.gson
+
+
model {
+    String string
+}
+json.message {
+    hello string
+}
+
+
+
+
grails-app/views/hello/index.gson
+
+
model {
+    String someString
+}
+json tmpl.msg(someString)
+
+
+
+

If a collection is rendered, the property name of the component type is appended with the property name of the collection type. The component type is based on the first item in the list.

+
+
+

List<String>stringList

+
+
+

Set<String>stringSet

+
+
+

Bag<String>stringCollection

+
+
+

If the collection is empty, emptyCollection will be used as the default model name. This is due to not being able to inspect the first object’s type.

+
+
+
grails-app/views/hello/index.gson
+
+
model {
+    String stringList
+}
+json {
+    strings stringList
+}
+
+
+
+

The variable can be passed in directly to respond.

+
+
+
grails-app/controllers/HelloController.groovy
+
+
def index() {
+    respond(["Hello", "World"])
+}
+
+
+
+ + + + + +
+ + +The component+collection convention does not apply when rendering collections with tmpl inside a view. +
+
+
+
+
Template Name
+
+

When using a template, unless specified, the model name is based on the template name.

+
+
+

Given the following template:

+
+
+
grails-app/views/hello/_msg.gson
+
+
model {
+    String msg // or String string
+}
+json.message {
+    hello msg
+}
+
+
+
+

To render a single message from another view using the template:

+
+
+
grails-app/views/hello/index.gson
+
+
json.message tmpl.msg(message)
+
+
+
+

To render a collection of messages from another view using the template:

+
+
+
grails-app/views/hello/index.gson
+
+
model {
+    List<String> stringList
+}
+json {
+    messages tmpl.msg(stringList)
+}
+
+
+
+

In both cases the convention of the variable name matching the template name is used.

+
+
+
+
+
+

2.8. Content Negotiation

+
+

GSON views integrate with Grails' content negotiation infrastructure. For example if you create two views called grails-app/views/book/show/show.gsp (for HTML) and grails-app/views/book/show/show.gson (for JSON), you can then define the following action:

+
+
+
grails-app/controllers/myapp/BookController.groovy
+
+
def show() {
+    respond Book.get(params.id)
+}
+
+
+
+

The result is that if you send a request to /book/show it will render show.gsp but if you send a request to /book/show.json it will render show.gson.

+
+
+

In addition, if the client sends a request with the Accept header containing application/json the show.gson view will be rendered.

+
+
+

2.8.1. Content Negotiation and Domain Classes

+
+

Content negotiation also works nicely with domain classes, for example if you want to define a template to render any instance of the Book domain class you can create a gson file that matches the class name.

+
+
+

For example given a class called demo.Book you can create grails-app/views/book/_book.gson and whenever respond is called with an instance of Book Grails will render _book.gson.

+
+
+
+
def show() {
+    respond Book.get(params.id)
+}
+
+
+
+

If you define an index action that responds with a list of books:

+
+
+
+
def index() {
+    respond Book.list()
+}
+
+
+
+

Then you can create a corresponding grails-app/views/book/index.gson file that renders each book:

+
+
+
grails-app/views/book/index.gson
+
+
@Field List<Book> bookList
+
+json tmpl.book(bookList)
+
+
+
+ + + + + +
+ + +When responding with a list of objects Grails automatically appends the suffix "List" to the model name, so in this case the model name is bookList +
+
+
+

By calling the tmpl.book(..) method with the list of books the grails-app/views/book/_book.gson template will be rendered for each one and a JSON array returned.

+
+
+
+

2.8.2. Global Default Template

+
+

You can also define a /object/_object template that is rendered by default if no other template is found during content negotiation. To do this create a file called /grails-app/views/object/_object.gson where the name of the model is object, for example:

+
+
+
+
model {
+    Object object
+}
+json g.render(object)
+
+
+
+
+

2.8.3. Content Negotiation and Versioned APIs

+
+

A typical use case when building REST APIs is the requirement to support different versions of the API. GSON views can be versioned by including the version in the name of the view.

+
+
+

Grails will then use the ACCEPT-VERSION header when resolving the view.

+
+
+

For example given a view called /book/show.gson if you wish to deprecate your previous API and create a version 2.0 API, you can rename the previous view /book/show_v1.0.gson and create a new /book/show.gson representing the new version of the API.

+
+
+

Then when the client sends a request with the ACCEPT-VERSION header containing v1.0 the /book/show_v1.0.gson view will be rendered instead of /book/show.gson.

+
+
+
+

2.8.4. Content Negotiation and View Resolving Strategy

+
+

Grails Framework takes into account a number of factors when attempting to resolve the view including the content type, version and locale.

+
+
+

The paths searched are following:

+
+
+
    +
  • +

    view_name[_LOCALE][_ACCEPT_CONTENT_TYPE][_ACCEPT-VERSION].gson (Example: show_de_hal_v1.0.gson)

    +
  • +
  • +

    view_name[_LOCALE][_ACCEPT_CONTENT_TYPE].gson (Example: show_de_hal.gson)

    +
  • +
  • +

    view_name[_LOCALE][_ACCEPT-VERSION].gson (Example: show_de_v1.0.gson)

    +
  • +
  • +

    view_name[_LOCALE].gson (Example: show_de.gson)

    +
  • +
  • +

    view_name[_ACCEPT_CONTENT_TYPE][_ACCEPT-VERSION].gson (Example: show_hal_v1.0.gson)

    +
  • +
  • +

    view_name[_ACCEPT-VERSION][_ACCEPT_CONTENT_TYPE].gson (Example: show_v1.0_hal.gson)

    +
  • +
  • +

    view_name[_ACCEPT_CONTENT_TYPE].gson (Example: show_hal.gson)

    +
  • +
  • +

    view_name[_ACCEPT-VERSION].gson (Example: show_v1.0.gson)

    +
  • +
  • +

    view_name.gson (Example: show.gson)

    +
  • +
+
+
+

The content type (defined by either the ACCEPT header or file extension in the URI) is taken into account to allow different formats for the same view.

+
+
+
+

2.8.5. Content Negotiation and Custom Mime Types

+
+

Some REST APIs use the notion of custom mime types to represent resources. Within Grails you can for example define custom mime types in grails-app/conf/application.yml:

+
+
+
+
grails:
+    mime:
+        types:
+            all:      "*/*"
+            book:     "application/vnd.books.org.book+json"
+            bookList: "application/vnd.books.org.booklist+json"
+
+
+
+

Once these custom mime types have been defined you can then define a view such as show.book.gson for that particular mime type.

+
+
+
+
+

2.9. HAL Support

+
+

HAL is a standard format for representing JSON that has gained traction for its ability to represent links between resources and provide navigable APIs.

+
+
+

The JSON views plugin for Grails provides HAL support out-of-the-box. All JSON views have access to the hal instance which implements HalViewHelper.

+
+
+

For example:

+
+
+
+
model {
+    Book book
+}
+json {
+    hal.links(book)
+    hal.embedded {
+        author( book.authors.first() ) { Author author ->
+            name author.name
+        }
+    }
+    title book.title
+}
+
+
+
+ + + + + +
+ + +The call to hal.links() has to be the first element within the json{} closure. +
+
+
+

This produces the HAL output:

+
+
+
+
{
+    "_links": {
+        "self": {
+            "href": "http://localhost:8080/book/show/1",
+            "hreflang": "en",
+            "type": "application/hal+json"
+        }
+    },
+    "_embedded": {
+        "author": {
+            "_links": {
+                "self": {
+                    "href": "http://localhost:8080/author/show/1",
+                    "hreflang": "en",
+                    "type": "application/hal+json"
+                }
+            },
+            "name": "Stephen King"
+        }
+    },
+    "title": "The Stand"
+}
+
+
+
+ +
+

The above example uses the hal.links(..) method to render links for a domain resource and the hal.embedded(..) method to define any embedded objects that form part of the HAL response.

+
+
+

The hal.links(..) method will by default create a link to the resource, but you can define additional links by annotating the domain class with either grails.rest.Linkable or grails.rest.Resource and using the link method on the object:

+
+
+
+
book.link(rel:"publisher", href:"http://foo.com/books")
+
+
+
+

The link will then be included in the HAL output.

+
+
+

If you wish to be specific about which links to include you can do so by passing a map of objects to link to:

+
+
+
+
model {
+    Book book
+}
+json {
+    hal.links(self:book, author: book.author)
+    ...
+}
+
+
+
+

Alternatively, if you prefer to define the HAL links yourself then you can do so by passing a closure to the hal.links method:

+
+
+
+
model {
+    Book book
+}
+json {
+    hal.links {
+        self {
+            href '...'
+            hreflang 'en'
+            type "application/hal+json"
+        }
+    }
+    ...
+}
+
+
+
+
+

2.9.2. Rendering Domain Classes as HAL

+
+

If you prefer to let the plugin handle the rendering of your object you can use the hal.render(..) method:

+
+
+
+
model {
+    Book book
+}
+json hal.render(book)
+
+
+
+

The hal.render method works the same as the g.render method, accepting the same arguments, the difference being it will output HAL links for the object via hal.links and also output associations fetched via a join query for hal.embedded.

+
+
+

For example you can also customize the content of the generated HAL with a closure:

+
+
+
+
model {
+    Book book
+}
+json hal.render(book) {
+    pages 1000
+}
+
+
+
+
+

2.9.3. Embedded Association and HAL

+
+

Generally, when using the hal.render(..) method, _embedded associations are only rendered for associations that have been initialized and eagerly fetched. This means that the following query will not render the book.authors association:

+
+
+
+
Book.get(params.id)
+
+
+
+

However, this query will render the book.authors association:

+
+
+
+
Book.get(params.id, [fetch:[authors:'eager']])
+
+
+
+

This is by design and to prevent unexpected performance degradation due to N+1 query loading. If you wish to force the render method to render _embedded associations for HAL you can do see using the deep argument:

+
+
+
+
json hal.render(book, [deep:true])
+
+
+
+

You can prevent HAL _embedded associations from being rendering using the embedded:false parameter:

+
+
+
+
model {
+    Book book
+}
+json hal.render(book, [embedded:false])
+
+
+
+

You can also render embedded associations without using the hal.render(..) method, by using the hal.embedded(..) method:

+
+
+
+
model {
+    Book book
+}
+json {
+    hal.embedded(book)
+    title book.title
+}
+
+
+
+ + + + + +
+ + +Like the hal.links(..) method, the hal.embedded(..) method should come first, before any other attributes, in your JSON output +
+
+
+

You can also control which associations should be embedded by using a map argument instead:

+
+
+
+
model {
+    Book book
+}
+json {
+    hal.embedded(authors: book.authors)
+    title book.title
+}
+
+
+
+

And you can inline the contents of the book without any associations using the hal.inline(..) method:

+
+
+
+
model {
+    Book book
+}
+json {
+    hal.embedded(authors: book.authors)
+    hal.inline(book)
+}
+
+
+
+

To customize the contents of the inlined JSON output use a closure:

+
+
+
+
model {
+    Book book
+}
+json {
+    hal.embedded(authors: book.authors)
+    hal.inline(book) {
+        pages 300
+    }
+}
+
+
+
+ + + + + +
+ + +You cannot include additional content after the call to hal.inline(..) as this will produce invalid JSON +
+
+
+

You can combine hal.embeddded(..) and hal.links(..) to obtain exactly the links and the embedded content you want:

+
+
+
+
model {
+    Book book
+}
+json {
+    hal.links(self: book )
+    hal.embedded(authors: book.authors)
+    hal.inline(book) {
+        pages 300
+    }
+}
+
+
+
+
+

2.9.4. Specifying the HAL Content Type

+
+

The default HAL response content type is application/hal+json, however as discussed in the section on Custom Mime Type you can define your own response content types to represent your resources.

+
+
+

For example given the following configuration in grails-app/conf/application.yml:

+
+
+
+
grails:
+    mime:
+        types:
+            all:      "*/*"
+            book:     "application/vnd.books.org.book+json"
+
+
+
+

You can set the HAL content type to an explicit content type or one of the named content types defined in grails.mime.types in application.yml:

+
+
+
+
model {
+    Book book
+}
+hal.type("book")
+json {
+    ...
+}
+
+
+
+
+

2.9.5. HAL Pagination

+
+

The JSON views plugin for Grails provides navigable pagination support. +Like the GSP <g:paginate> tag, the parameters include: total, max, offset, sort and order.

+
+
+

For example:

+
+
+
+
model {
+    Iterable<Book> bookList
+    Integer bookCount
+    Integer max // optional, defaults to 10
+    Integer offset // optional, defaults to 0
+    String sort // optional
+    String order // optional
+}
+json {
+    hal.paginate(Book, bookCount, max, offset, sort, order)
+    ...
+}
+
+
+
+ + + + + +
+ + +Similar to hal.links() the hal.paginate() has to be the first element within the json{} closure. +
+
+
+

When accessing http://localhost:8080/book?offset=10 this produces the navigable output like:

+
+
+
+
{
+  "_links": {
+    "self": {
+      "href": "http://localhost:8080/book/index?offset=10&max=10",
+      "hreflang": "en_US",
+      "type": "application/hal+json"
+    },
+    "first": {
+      "href": "http://localhost:8080/book/index?offset=0&max=10",
+      "hreflang": "en_US"
+    },
+    "prev": {
+      "href": "http://localhost:8080/book/index?offset=0&max=10",
+      "hreflang": "en_US"
+    },
+    "next": {
+      "href": "http://localhost:8080/book/index?offset=20&max=10",
+      "hreflang": "en_US"
+    },
+    "last": {
+      "href": "http://localhost:8080/book/index?offset=40&max=10",
+      "hreflang": "en_US"
+    }
+  },
+  ...
+}
+
+
+
+ + + + + +
+ + +If there aren’t enough results to paginate the navigation links will not appear, Likewise, the prev and next links are only present when there is a previous or next page. +
+
+
+

If you have other links that you want to include along with the pagination links then you can use the hal.links(..) method with pagination arguments:

+
+
+
+
model {
+    Author author
+    Iterable<Book> bookList
+    Integer bookCount
+}
+json {
+    // the model, type to paginate, and the total count
+    hal.links([author:author], Book, bookCount)
+    ...
+}
+
+
+
+
+
+

2.10. JSON API Support

+
+

JSON API is a standard format for representing JSON.

+
+
+

The JSON views plugin for Grails provides JSON API support out-of-the-box. All JSON views have access to the jsonapi instance which implements JsonApiViewHelper.

+
+
+

Grails views makes a best effort to conform to the JSON API standard, however that only applies to the format of the data. The specification makes many assertions about response codes, url conventions, and other server related concepts that are overreaching.

+
+
+

The JSON API support in Grails also only applies to domain classes. Because the specification relies on concepts of relationships and identifiers, there is no clear way to determine how those concepts would apply to conventional Groovy classes. As a result, normal Groovy classes are not supported.

+
+
+

The simplest example of using JSON API simply passes a domain class to the render method of the jsonapi object.

+
+
+

For example:

+
+
+
+
model {
+    Book book
+}
+json jsonapi.render(book)
+
+
+
+

In the example where Book looks like the following:

+
+
+
+
class Book {
+    String title
+    Author author
+}
+
+
+
+

This is what an example Book instance rendered with JSON API might look like.

+
+
+
+
{
+  "data": {
+    "type": "book",
+    "id": "3",
+    "attributes": {
+      "title": "The Return of the King"
+    },
+    "relationships": {
+      "author": {
+        "links": {
+          "self": "/author/9"
+        },
+        "data": {
+          "type": "author",
+          "id": "9"
+        }
+      }
+    }
+  },
+  "links": {
+    "self": "http://localhost:8080/book/3"
+  }
+}
+
+
+
+

2.10.1. JSON API Object

+
+

To include the JSON API Object in the response, include a jsonApiObject argument to the render method.

+
+
+
+
model {
+    Book book
+}
+json jsonapi.render(book, [jsonApiObject: true])
+
+
+
+

The response will contain "jsonapi":{"version":"1.0"} as the first key in the resulting object.

+
+
+
+

2.10.2. Meta Object

+
+

To add metadata to your response, the meta argument can be passed to render with the value being the object that should be rendered. If this functionality is used in addition to jsonApiObject: true, the metadata will be rendered as the "meta" property of the "jsonapi" object.

+
+
+
+
model {
+    Book book
+}
+json jsonapi.render(book, [meta: [name: "Metadata Information"]])
+
+
+
+

The response will contain "meta":{"name":"Metadata Information"} as the first key in the resulting object.

+
+
+
+

2.10.3. Rendering Errors

+
+

The JSON API specification has instructions on how to render errors. In the case of the Grails implementation, this applies to both exceptions and validation errors.

+
+
+
Exceptions
+
+

If an exception is passed to the render method, it will be rendered within the specification.

+
+
+

In the example of an exception new RuntimeException("oops!"), the following will be rendered:

+
+
+
+
{
+  "errors": [
+    {
+      "status": 500,
+      "title": "java.lang.RuntimeException",
+      "detail": "oops!",
+      "source": {
+        "stacktrace": [
+          //An array of information relating to the stacktrace
+        ]
+      }
+    }
+  ]
+}
+
+
+
+
+
Validation Errors
+
+

In the case of validation errors, the response will look like the following when a name property fails the blank constraint:

+
+
+
+
{
+  "errors": [
+    {
+      "code": "blank",
+      "detail": "Property [name] of class [class com.foo.Bar] cannot be blank",
+      "source": {
+        "object": "com.foo.Bar",
+        "field": "name",
+        "rejectedValue": "",
+        "bindingError": false
+      }
+    }
+  ]
+}
+
+
+
+
+
+ +
+

In general, links for relationships will be provided when the relationship has a value.

+
+
+

Example output for a has one relationship where the value is null:

+
+
+
+
"captain": {
+  "data": null
+}
+
+
+
+

And when the value is not null:

+
+
+
+
"author": {
+  "links": {
+    "self": "/author/9"
+  },
+  "data": {
+    "type": "author",
+    "id": "9"
+  }
+}
+
+
+
+

Currently links are not supported in the case of to many relationships.

+
+
+
+

2.10.5. Pagination

+
+

The JSON API specification has a section which explains pagination. The Grails implementation follows that specification as it is written.

+
+
+

To enable pagination links in your output you must be rendering a collection and also include some arguments in addition to the collection being rendered. There are two required arguments: total and resource. The default offset is 0 and max is 10.

+
+
+
+
model {
+    List<Book> books
+    Integer bookTotal
+}
+json jsonapi.render(books, [pagination: [total: bookTotal, resource: Book]])
+
+
+
+

Example links output if bookTotal == 20:

+
+
+
+
"links": {
+  "self": "/books",
+  "first": "http://localhost:8080/books?offset=0&max=10",
+  "next": "http://localhost:8080/books?offset=10&max=10",
+  "last": "http://localhost:8080/books?offset=10&max=10"
+}
+
+
+
+

By default the values for offset, sort, max, and order will come from the parameters with the same names. You can override their values by passing the corresponding argument in the pagination Map.

+
+
+
+
model {
+    List<Book> books
+    Integer bookTotal
+}
+json jsonapi.render(books, [pagination: [total: bookTotal, resource: Book, max: 20, sort: params.myCustomSortArgument]])
+
+
+
+
+

2.10.6. Associations

+
+

The JSON API specification details how relationships should be rendered. The first way is through a relationships object described here. By default that is now relationships will be rendered in json views.

+
+
+

If you do not wish to render the relationships at all, the associations argument can be passed to render with the value of false.

+
+
+
+
model {
+    Book book
+}
+json jsonapi.render(book, [associations: false])
+
+
+
+

The specification also has a section that describes compound documents. If you want one or more of your relationships to be rendered in that manner, you can include the expand argument.

+
+
+
+
model {
+    Book book
+}
+json jsonapi.render(book, [expand: "author"]) //can also be a list of strings
+
+
+
+
+

2.10.7. Includes / Excludes

+
+

The JSON API implementation in Grails supports the same includes and excludes support as normal json views. Please see the section on rendering for details.

+
+
+
+

2.10.8. Identifier Rendering

+
+

Grails provides a way to customize the rendering of your domain class identifiers. To override the default behavior, register a bean that implements JsonApiIdRenderStrategy.

+
+
+
grails-app/conf/spring/resources.groovy
+
+
beans = {
+    jsonApiIdRenderStrategy(MyCustomImplementation)
+}
+
+
+
+
+
+

2.11. The JsonTemplateEngine

+
+

The JSON Views plugin registers a bean called jsonTemplateEngine of type JsonViewTemplateEngine.

+
+
+

This class is a regular Groovy TemplateEngine, and you can use the engine to render JSON views outside the scope of an HTTP request.

+
+
+

For example:

+
+
+
+
@Autowired
+JsonViewTemplateEngine templateEngine
+void myMethod() {
+	Template t = templateEngine.resolveTemplate('/book/show')
+	def writable = t.make(book: new Book(title:"The Stand"))
+	def sw = new StringWriter()
+	writable.writeTo( sw )
+	...
+}
+
+
+
+
+

2.12. Static Compilation

+
+

JSON views are statically compiled. You can disable static compilation if you prefer by setting grails.views.json.compileStatic:

+
+
+
+
grails:
+    views:
+        json:
+            compileStatic: false
+
+
+
+ + + + + +
+ + +If you disable static compilation rendering performance will suffer. +
+
+
+

For model variables you need to declare the types otherwise you will get a compilation error:

+
+
+
+
model {
+    Person person
+}
+json {
+    name person.name
+    age person.age
+}
+
+
+
+
+

2.13. Testing

+
+

Although generally testing can be done using functional tests via an HTTP client, the JSON views plugin also provides a trait which helps in writing either unit or integration tests.

+
+
+

To use the trait import the grails.plugin.json.view.test.JsonViewTest class and apply it to any Spock or JUnit test:

+
+
+
+
import grails.plugin.json.view.test.*
+import spock.lang.Specification
+class MySpec extends Specification implements JsonViewTest {
+    ...
+}
+
+
+
+

The trait provides a number of different render method implementations that can either render a JSON view found in grails-app/views or render an inline String. For example to render an inline template:

+
+
+
+
void "Test render a raw GSON view"() {
+    when:"A gson view is rendered"
+    JsonRenderResult result = render '''
+        model {
+            String person
+        }
+        json.person {
+            name person
+        }
+''', [person:"bob"] (1)
+
+    then:"The json is correct"
+    result.json.person.name == 'bob' (2)
+}
+
+
+
+ + + + + + + + + +
1Use the render method to return a JsonRenderResult passing in a String that is the inline template and a map that is the model
2Assert the parsed JSON, represented by the json property, is correct
+
+
+

To render an existing view or template use named arguments to specify an absolute path to either a template or a view:

+
+
+
+
when:"A gson view is rendered"
+def result = render(template: "/path/to/template", model:[age:10])
+
+then:"The json is correct"
+result.json.name == 'Fred'
+result.json.age == 10
+
+
+
+

If you are writing a unit test, and the model involves a domain class, you may need to add the domain class to the mappingContext object in order for it to be rendered correctly:

+
+
+
+
when:"A gson view is rendered for a domain class"
+mappingContext.addPersistentEntity(MyDomain)
+def result = render(template: "/path/to/template", model:[myDomain:MyDomain])
+
+then:"The json is correct"
+result.json.name == 'Fred'
+result.json.age == 10
+
+
+
+ + + + + +
+ + +Links generated by json views in a unit test may not match what they would normally generate in the standard environment. To fully test links, use a functional test. +
+
+
+

2.13.1. New Testing Framework

+
+

Since the release of json views, a new testing framework was released for Grails. A new trait has been developed that works with the new testing framework that is designed to replace the existing trait. The existing trait will be left as is for backwards compatibility.

+
+
+

The new trait works exactly the same way as the old one, however since the new trait is designed to work with the new framework, there are several benefits you can take advantage of. The first is configuration. In the old trait the application configuration was not included in the template engine, which had the potential to produce incorrect results. Other benefits include extensibility and features like @OnceBefore.

+
+
+

To get started, add the org.grails:views-json-testing-support:{version} dependency to your project and implement the JsonViewUnitTest trait in your test instead of JsonViewTest.

+
+
+ + + + + +
+ + +The new testing trait, like the testing framework, requires Spock. +
+
+
+
+
+

2.14. Plugin Support

+
+

Grails plugins as well as standard Gradle Java/Groovy projects can provide json views to your application.

+
+
+

2.14.1. Grails Plugins

+
+

Since JSON views are compiled all of a plugin’s views and templates are available for use in your applications.

+
+
+

The view resolution will look through all of the application’s configured plugins for views that match a particular name. By default, the views a plugin supplies should be stored in grails-app/views, just like applications.

+
+
+
+

2.14.2. Basic Libraries

+
+

The most common use case to provide views in a standard library is to provide global templates. Global templates are templates designed to render a given class as JSON. In order to provide views in a standard Gradle project, you should configure your own view compilation task.

+
+
+

Below is an example Gradle build that adds a compileViews task for templates located into src/main/gson:

+
+
+
+
buildscript {
+    repositories {
+        maven { url "https://repo.grails.org/grails/core" }
+    }
+    dependencies {
+        classpath "org.grails.plugins:views-gradle:3.2.3"
+    }
+}
+
+import grails.views.gradle.json.*
+
+apply plugin:"java"
+
+repositories {
+    maven { url "https://repo.grails.org/grails/core" }
+}
+
+dependencies {
+    compile "org.grails.plugins:views-json:3.2.3"
+    compileOnly "org.grails:grails-plugin-rest:3.1.7"
+    compileOnly "javax.servlet:javax.servlet-api:4.0.1"
+}
+
+task( compileViews, type:JsonViewCompilerTask ) {
+    source = project.file('src/main/gson')
+    destinationDir = project.file('build/classes/main')
+    packageName = ""
+    classpath = configurations.compileClasspath + configurations.runtimeClasspath
+}
+classes.dependsOn compileViews
+
+
+
+

Once this is in place any applications that includes this library will have access to the templates provided.

+
+
+

For example if you want to render all instances of type foo.bar.Birthday create a template called src/main/gson/foo/bar/_birthday.gson then compile the template and place the JAR on the classpath of your application.

+
+
+ + + + + +
+ + +See the GeoJSON templates for MongoDB for example of how it provides global templates for Mongo specific classes. +
+
+
+
+

2.14.3. Customizing the Compile Task

+
+

Unless otherwise configured, the project name of the plugin (the gradle project.name) is used as the packageName when compiling JSON views.

+
+
+

In Gradle project.name is generally calculated from the current directory. That means that if there is mismatch between the current directory and your plugin name view resolution from a plugin could fail.

+
+
+

For example consider a plugin named FooBarGrailsPlugin, in this case Grails will search for views that match the plugin name foo-bar. However, if the directory where the plugin is located is called fooBar instead of foo-bar then view resolution will fail and the view will not be found when the plugin is installed into an application.

+
+
+

To resolve this issue you can customize the compileGsonViews task in the plugin’s build.gradle

+
+
+
+
compileGsonViews {
+    packageName = "foo-bar"
+}
+
+
+
+

By setting the packageName property to correctly match the convention of the plugin named (FooBarGrailsPlugin maps to foo-bar) view resolution will succeed.

+
+
+
+
+

2.15. Configuration

+
+

JSON views configuration can be altered within grails-app/conf/application.yml. Any of the properties within the JsonViewConfiguration interface can be set. The json view configuration extends GenericViewConfiguration, therefore any properties in that interface can be set as well.

+
+
+
+
For example:
+
+
+
+
+
grails:
+    views:
+        json:
+            compileStatic: true
+            cache: true
+            ...
+
+
+
+

Alternatively you can register a new JsonViewConfiguration bean using the bean name jsonViewConfiguration in grails-app/conf/resources.groovy.

+
+
+

The same settings in grails-app/conf/application.yml will also be used by the Gradle plugin for production compilation.

+
+
+

The Gradle plugin compiles views using a forked compiler. You can configure the forked compilation task in Gradle as follows:

+
+
+
+
compileGsonViews {
+    compileOptions.forkOptions.memoryMaximumSize = '512mb'
+}
+
+
+
+

See the API for GroovyForkOptions for more information.

+
+
+

2.15.1. Changing the view base class

+
+

All JSON views subclass the JsonViewTemplate class by default.

+
+
+

You can however change the subclass (which should be a subclass of JsonViewTemplate) using configuration:

+
+
+
+
grails:
+    views:
+        json:
+            compileStatic: true
+            baseTemplateClass: com.example.MyCustomJsonViewTemplate
+
+
+
+
+

2.15.2. Adding New Helper Methods via Traits

+
+

Alternatively, rather than modifying the base class, you can instead just add new methods via traits.

+
+
+

For example the HttpView uses the Enhances annotation to add the page object to all views:

+
+
+
+
import grails.artefact.Enhances
+import grails.views.Views
+
+@Enhances(Views.TYPE)
+trait HttpView {
+
+    /**
+     * @return The response object
+     */
+    Response response
+    ...
+}
+
+
+
+

The result is all JSON views have a response object that can be used to control the HTTP response:

+
+
+
+
response.header "Token", "foo"
+
+
+
+ + + + + +
+ + +The trait cannot be defined in the same project as you are compilation as it needs to be on the classpath of the project you are compiling. You will need to create a Grails plugin and use a multi-project build in this scenario. +
+
+
+
+

2.15.3. Default Mime Types

+
+

The mime types that will be accepted by default for JSON view rendering is configurable.

+
+
+
+
grails:
+    views:
+        json:
+            mimeTypes:
+              - application/json
+              - application/hal+json
+
+
+
+
+

2.15.4. Unicode Escaping

+
+

By default, unicode characters will not be escaped. If you would like unicode characters to be escaped in your output, set the following configuration.

+
+
+
+
grails:
+    views:
+        json:
+            generator:
+                escapeUnicode: true
+
+
+
+
+

2.15.5. Default Date Format

+
+

The default format for java.util.Date can be configured.

+
+
+
+
grails:
+    views:
+        json:
+            generator:
+                dateFormat: "yyyy-MM-dd'T'HH:mm:ss'Z'"
+
+
+
+

In addition, the default locale can also be specified.

+
+
+
+
grails:
+    views:
+        json:
+            generator:
+                locale: "en/US"
+
+
+
+
+

2.15.6. Default Time Zone

+
+

The default time zone can be configured. The value here will be passed to TimeZone.getTimeZone(...)

+
+
+
+
grails:
+    views:
+        json:
+            generator:
+                timeZone: "GMT"
+
+
+
+
+
+

2.16. Custom Converters

+
+

It is possible to register custom converters to change how a given class is rendered with json views. To do so, create a class that implements Converter. Then you must register the class in src/main/resources/META-INF/services/grails.plugin.json.builder.JsonGenerator$Converter.

+
+
+
+
package foo
+
+class MyConverter implements JsonGenerator.Converter {
+
+    @Override
+    boolean handles(Class<?> type) {
+        CustomClass.isAssignableFrom(type)
+    }
+
+    @Override
+    Object convert(Object value, String key) {
+        ((CustomClass)value).name
+    }
+}
+
+
+class CustomClass {
+    String name
+}
+
+
+
+

Because plugins could potentially provide converters, you can also determine the order by implementing the Ordered interface in your converter.

+
+
+
src/main/resources/META-INF/services/grails.plugin.json.builder.JsonGenerator$Converter
+
+
foo.MyCustomConverter
+
+
+
+ + + + + +
+ + +If you have multiple classes to register, put each one on it’s own line +
+
+
+
+

2.17. IntelliJ Support

+
+

When opening .gson files in Intellij they should be opened with the regular Groovy editor.

+
+
+

The plugin includes an IntelliJ GDSL file that provides code completion when using IntelliJ IDEA.

+
+
+

Intellij GDSL is a way to describe the available methods and properties so that code completion is available to the developer when opening .gson files.

+
+
+

The GDSL file is generally kept up-to-date with the codebase, however if any variation is spotted please raise an issue.

+
+
+
+

2.18. Debugging Views

+
+

Generally views should be kept simple and if you arrive to the point where you need to debug a view you probably have too much logic in the view that would be better off handled by the controller prior to supplying the model.

+
+
+

Nevertheless here are a few view debugging tips to help identify problems in the view.

+
+
+

2.18.1. Introspecting the Model

+
+

Every JSON view is a Groovy script and like any Groovy script the model is defined in a binding variable. Therefore you can easily find out the model at any time by either logging or printing the binding variables:

+
+
+
+
model {
+    Book book
+}
+// use the log variable
+log.debug "Model is $binding.variables"
+// use system out
+System.out.println "Model is $binding.variables"
+json g.render(book)
+
+
+
+ + + + + +
+ + +If you using the log variable then you will need to enabling logging for the grails.views package in grails-app/conf/logback.groovy +
+
+
+
+

2.18.2. Connecting a Debugger

+
+

Some IDEs like Intellij IDE allow you to set break points and step debug within the view itself. As mentioned previously you shouldn’t arrive to this point and if you do you have too much logic in your view, but if you do need it the feature is there.

+
+
+
+
+
+
+

3. Markup Views

+
+
+

3.1. Introduction

+
+

Markup Views are written in Groovy, end with the file extension gml and reside in the grails-app/views directory.

+
+
+

The Markup Views plugin uses Groovy’s MarkupTemplateEngine and you can mostly use the Groovy user guide as a reference for the syntax.

+
+
+

Example Markup View:

+
+
+
+
model {
+    Iterable<Map> cars
+}
+xmlDeclaration()
+cars {
+    cars.each {
+        car(make: it.make, model: it.model)
+    }
+}
+
+
+
+

This produces the following output given a model such as [cars:[[make:"Audi", model:"A5"]]]:

+
+
+
+
<?xml version='1.0'?>
+<cars><car make='Audi' model='A5'/></cars>
+
+
+
+

For further examples see Groovy’s MarkupTemplateEngine documentation.

+
+
+

All Markup views subclass the MarkupViewTemplate class by default.

+
+
+

The MarkupViewTemplate superclass implements the MarkupView trait which in turn extends the the GrailsView trait.

+
+
+
+

3.2. Installation

+
+

To activate Markup views, add the following dependency to the dependencies block of your build.gradle:

+
+
+
+
compile "org.grails.plugins:views-markup:3.2.3"
+
+
+
+

To enable Gradle compilation of Markup views for production environment add the following to the buildscript dependencies block:

+
+
+
+
buildscript {
+    ...
+    dependencies {
+        ...
+        classpath "org.grails.plugins:views-gradle:3.2.3"
+    }
+}
+
+
+
+

Then apply the org.grails.plugins.views-markup Gradle plugin after any Grails core gradle plugins:

+
+
+
+
...
+apply plugin: "org.grails.grails-web"
+apply plugin: "org.grails.plugins.views-markup"
+
+
+
+

This will add a compileMarkupViews task to Gradle that is executed when producing a JAR or WAR file.

+
+
+
+

3.3. Markup View API

+
+

All Markup views subclass the MarkupViewTemplate class by default.

+
+
+

The MarkupViewTemplate superclass implements the MarkupView trait which in turn extends the the GrailsView trait.

+
+
+

Much of the API is shared between JSON and Markup views. However, one difference compared to JSON views is that you must use this as a prefix when refering to properties from the parent class. For example to generate links this will produce a compilation error:

+
+
+
+
cars {
+   cars.each {
+       car(make: it.make, href: g.link(controller:'car'))
+   }
+}
+
+
+
+

However, the following works fine:

+
+
+
+
cars {
+   cars.each {
+       car(make: it.make, href: this.g.link(controller:'car'))
+   }
+}
+
+
+
+

Notice the this prefix when refering to this.g.link(..).

+
+
+
+

3.4. Configuration

+
+

Markup views configuration can be altered with grails-app/conf/application.yml. Any of the properties within the MarkupViewConfiguration class and Groovy’s TemplateConfiguration class can be set.

+
+
+

For example:

+
+
+
+
grails:
+    views:
+        markup:
+            compileStatic: true
+            cacheTemplates: true
+            autoIndent: true
+            ...
+
+
+
+

Alternatively you can register a new MarkupViewConfiguration bean using the bean name markupViewConfiguration in grails-app/conf/spring/resources.groovy.

+
+
+
+
+
+ + + \ No newline at end of file diff --git a/3.2.3/introduction.html b/3.2.3/introduction.html new file mode 100644 index 000000000..46dda78e7 --- /dev/null +++ b/3.2.3/introduction.html @@ -0,0 +1,468 @@ + + + + + + + +Introduction + + + + + + +
+
+

The Grails Views project provides additional view technologies to the Grails framework, including JSON and Markup views.

+
+
+

JSON views allow rendering of JSON responses using Groovy’s StreamingJsonBuilder.

+
+
+

Markup views allow rendering of XML responses using Groovy’s MarkupTemplateEngine.

+
+
+

However, the core of the project is extensible for potentially any kind of view implementation that is based on a Groovy DSL. The following sections cover usage of Groovy JSON views.

+
+
+ + + \ No newline at end of file diff --git a/3.2.3/json/configuration.html b/3.2.3/json/configuration.html new file mode 100644 index 000000000..cedf7ec9c --- /dev/null +++ b/3.2.3/json/configuration.html @@ -0,0 +1,656 @@ + + + + + + + +Configuration + + + + + + +
+
+
+
+

JSON views configuration can be altered within grails-app/conf/application.yml. Any of the properties within the JsonViewConfiguration interface can be set. The json view configuration extends GenericViewConfiguration, therefore any properties in that interface can be set as well.

+
+
+
+
For example:
+
+
+
+
+
grails:
+    views:
+        json:
+            compileStatic: true
+            cache: true
+            ...
+
+
+
+

Alternatively you can register a new JsonViewConfiguration bean using the bean name jsonViewConfiguration in grails-app/conf/resources.groovy.

+
+
+

The same settings in grails-app/conf/application.yml will also be used by the Gradle plugin for production compilation.

+
+
+

The Gradle plugin compiles views using a forked compiler. You can configure the forked compilation task in Gradle as follows:

+
+
+
+
compileGsonViews {
+    compileOptions.forkOptions.memoryMaximumSize = '512mb'
+}
+
+
+
+

See the API for GroovyForkOptions for more information.

+
+
+
+
+

Changing the view base class

+
+
+

All JSON views subclass the JsonViewTemplate class by default.

+
+
+

You can however change the subclass (which should be a subclass of JsonViewTemplate) using configuration:

+
+
+
+
grails:
+    views:
+        json:
+            compileStatic: true
+            baseTemplateClass: com.example.MyCustomJsonViewTemplate
+
+
+
+
+
+

Adding New Helper Methods via Traits

+
+
+

Alternatively, rather than modifying the base class, you can instead just add new methods via traits.

+
+
+

For example the HttpView uses the Enhances annotation to add the page object to all views:

+
+
+
+
import grails.artefact.Enhances
+import grails.views.Views
+
+@Enhances(Views.TYPE)
+trait HttpView {
+
+    /**
+     * @return The response object
+     */
+    Response response
+    ...
+}
+
+
+
+

The result is all JSON views have a response object that can be used to control the HTTP response:

+
+
+
+
response.header "Token", "foo"
+
+
+
+ + + + + +
+ + +The trait cannot be defined in the same project as you are compilation as it needs to be on the classpath of the project you are compiling. You will need to create a Grails plugin and use a multi-project build in this scenario. +
+
+
+
+
+

Default Mime Types

+
+
+

The mime types that will be accepted by default for JSON view rendering is configurable.

+
+
+
+
grails:
+    views:
+        json:
+            mimeTypes:
+              - application/json
+              - application/hal+json
+
+
+
+
+
+

Unicode Escaping

+
+
+

By default, unicode characters will not be escaped. If you would like unicode characters to be escaped in your output, set the following configuration.

+
+
+
+
grails:
+    views:
+        json:
+            generator:
+                escapeUnicode: true
+
+
+
+
+
+

Default Date Format

+
+
+

The default format for java.util.Date can be configured.

+
+
+
+
grails:
+    views:
+        json:
+            generator:
+                dateFormat: "yyyy-MM-dd'T'HH:mm:ss'Z'"
+
+
+
+

In addition, the default locale can also be specified.

+
+
+
+
grails:
+    views:
+        json:
+            generator:
+                locale: "en/US"
+
+
+
+
+
+

Default Time Zone

+
+
+

The default time zone can be configured. The value here will be passed to TimeZone.getTimeZone(...)

+
+
+
+
grails:
+    views:
+        json:
+            generator:
+                timeZone: "GMT"
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/3.2.3/json/contentNegotiation.html b/3.2.3/json/contentNegotiation.html new file mode 100644 index 000000000..708106302 --- /dev/null +++ b/3.2.3/json/contentNegotiation.html @@ -0,0 +1,640 @@ + + + + + + + +Content Negotiation + + + + + + +
+
+
+
+

GSON views integrate with Grails' content negotiation infrastructure. For example if you create two views called grails-app/views/book/show/show.gsp (for HTML) and grails-app/views/book/show/show.gson (for JSON), you can then define the following action:

+
+
+
grails-app/controllers/myapp/BookController.groovy
+
+
def show() {
+    respond Book.get(params.id)
+}
+
+
+
+

The result is that if you send a request to /book/show it will render show.gsp but if you send a request to /book/show.json it will render show.gson.

+
+
+

In addition, if the client sends a request with the Accept header containing application/json the show.gson view will be rendered.

+
+
+
+
+

Content Negotiation and Domain Classes

+
+
+

Content negotiation also works nicely with domain classes, for example if you want to define a template to render any instance of the Book domain class you can create a gson file that matches the class name.

+
+
+

For example given a class called demo.Book you can create grails-app/views/book/_book.gson and whenever respond is called with an instance of Book Grails will render _book.gson.

+
+
+
+
def show() {
+    respond Book.get(params.id)
+}
+
+
+
+

If you define an index action that responds with a list of books:

+
+
+
+
def index() {
+    respond Book.list()
+}
+
+
+
+

Then you can create a corresponding grails-app/views/book/index.gson file that renders each book:

+
+
+
grails-app/views/book/index.gson
+
+
@Field List<Book> bookList
+
+json tmpl.book(bookList)
+
+
+
+ + + + + +
+ + +When responding with a list of objects Grails automatically appends the suffix "List" to the model name, so in this case the model name is bookList +
+
+
+

By calling the tmpl.book(..) method with the list of books the grails-app/views/book/_book.gson template will be rendered for each one and a JSON array returned.

+
+
+
+
+

Global Default Template

+
+
+

You can also define a /object/_object template that is rendered by default if no other template is found during content negotiation. To do this create a file called /grails-app/views/object/_object.gson where the name of the model is object, for example:

+
+
+
+
model {
+    Object object
+}
+json g.render(object)
+
+
+
+
+
+

Content Negotiation and Versioned APIs

+
+
+

A typical use case when building REST APIs is the requirement to support different versions of the API. GSON views can be versioned by including the version in the name of the view.

+
+
+

Grails will then use the ACCEPT-VERSION header when resolving the view.

+
+
+

For example given a view called /book/show.gson if you wish to deprecate your previous API and create a version 2.0 API, you can rename the previous view /book/show_v1.0.gson and create a new /book/show.gson representing the new version of the API.

+
+
+

Then when the client sends a request with the ACCEPT-VERSION header containing v1.0 the /book/show_v1.0.gson view will be rendered instead of /book/show.gson.

+
+
+
+
+

Content Negotiation and View Resolving Strategy

+
+
+

Grails Framework takes into account a number of factors when attempting to resolve the view including the content type, version and locale.

+
+
+

The paths searched are following:

+
+
+
    +
  • +

    view_name[_LOCALE][_ACCEPT_CONTENT_TYPE][_ACCEPT-VERSION].gson (Example: show_de_hal_v1.0.gson)

    +
  • +
  • +

    view_name[_LOCALE][_ACCEPT_CONTENT_TYPE].gson (Example: show_de_hal.gson)

    +
  • +
  • +

    view_name[_LOCALE][_ACCEPT-VERSION].gson (Example: show_de_v1.0.gson)

    +
  • +
  • +

    view_name[_LOCALE].gson (Example: show_de.gson)

    +
  • +
  • +

    view_name[_ACCEPT_CONTENT_TYPE][_ACCEPT-VERSION].gson (Example: show_hal_v1.0.gson)

    +
  • +
  • +

    view_name[_ACCEPT-VERSION][_ACCEPT_CONTENT_TYPE].gson (Example: show_v1.0_hal.gson)

    +
  • +
  • +

    view_name[_ACCEPT_CONTENT_TYPE].gson (Example: show_hal.gson)

    +
  • +
  • +

    view_name[_ACCEPT-VERSION].gson (Example: show_v1.0.gson)

    +
  • +
  • +

    view_name.gson (Example: show.gson)

    +
  • +
+
+
+

The content type (defined by either the ACCEPT header or file extension in the URI) is taken into account to allow different formats for the same view.

+
+
+
+
+

Content Negotiation and Custom Mime Types

+
+
+

Some REST APIs use the notion of custom mime types to represent resources. Within Grails you can for example define custom mime types in grails-app/conf/application.yml:

+
+
+
+
grails:
+    mime:
+        types:
+            all:      "*/*"
+            book:     "application/vnd.books.org.book+json"
+            bookList: "application/vnd.books.org.booklist+json"
+
+
+
+

Once these custom mime types have been defined you can then define a view such as show.book.gson for that particular mime type.

+
+
+
+
+ + + \ No newline at end of file diff --git a/3.2.3/json/converters.html b/3.2.3/json/converters.html new file mode 100644 index 000000000..a360b230f --- /dev/null +++ b/3.2.3/json/converters.html @@ -0,0 +1,503 @@ + + + + + + + +Custom Converters + + + + + + +
+
+

It is possible to register custom converters to change how a given class is rendered with json views. To do so, create a class that implements Converter. Then you must register the class in src/main/resources/META-INF/services/grails.plugin.json.builder.JsonGenerator$Converter.

+
+
+
+
package foo
+
+class MyConverter implements JsonGenerator.Converter {
+
+    @Override
+    boolean handles(Class<?> type) {
+        CustomClass.isAssignableFrom(type)
+    }
+
+    @Override
+    Object convert(Object value, String key) {
+        ((CustomClass)value).name
+    }
+}
+
+
+class CustomClass {
+    String name
+}
+
+
+
+

Because plugins could potentially provide converters, you can also determine the order by implementing the Ordered interface in your converter.

+
+
+
src/main/resources/META-INF/services/grails.plugin.json.builder.JsonGenerator$Converter
+
+
foo.MyCustomConverter
+
+
+
+ + + + + +
+ + +If you have multiple classes to register, put each one on it’s own line +
+
+
+ + + \ No newline at end of file diff --git a/3.2.3/json/debugging.html b/3.2.3/json/debugging.html new file mode 100644 index 000000000..16416dfb3 --- /dev/null +++ b/3.2.3/json/debugging.html @@ -0,0 +1,513 @@ + + + + + + + +Debugging Views + + + + + + +
+
+
+
+

Generally views should be kept simple and if you arrive to the point where you need to debug a view you probably have too much logic in the view that would be better off handled by the controller prior to supplying the model.

+
+
+

Nevertheless here are a few view debugging tips to help identify problems in the view.

+
+
+
+
+

Introspecting the Model

+
+
+

Every JSON view is a Groovy script and like any Groovy script the model is defined in a binding variable. Therefore you can easily find out the model at any time by either logging or printing the binding variables:

+
+
+
+
model {
+    Book book
+}
+// use the log variable
+log.debug "Model is $binding.variables"
+// use system out
+System.out.println "Model is $binding.variables"
+json g.render(book)
+
+
+
+ + + + + +
+ + +If you using the log variable then you will need to enabling logging for the grails.views package in grails-app/conf/logback.groovy +
+
+
+
+
+

Connecting a Debugger

+
+
+

Some IDEs like Intellij IDE allow you to set break points and step debug within the view itself. As mentioned previously you shouldn’t arrive to this point and if you do you have too much logic in your view, but if you do need it the feature is there.

+
+
+
+
+ + + \ No newline at end of file diff --git a/3.2.3/json/hal.html b/3.2.3/json/hal.html new file mode 100644 index 000000000..e2f581c5d --- /dev/null +++ b/3.2.3/json/hal.html @@ -0,0 +1,896 @@ + + + + + + + +HAL Support + + + + + + +
+
+
+
+

HAL is a standard format for representing JSON that has gained traction for its ability to represent links between resources and provide navigable APIs.

+
+
+

The JSON views plugin for Grails provides HAL support out-of-the-box. All JSON views have access to the hal instance which implements HalViewHelper.

+
+
+

For example:

+
+
+
+
model {
+    Book book
+}
+json {
+    hal.links(book)
+    hal.embedded {
+        author( book.authors.first() ) { Author author ->
+            name author.name
+        }
+    }
+    title book.title
+}
+
+
+
+ + + + + +
+ + +The call to hal.links() has to be the first element within the json{} closure. +
+
+
+

This produces the HAL output:

+
+
+
+
{
+    "_links": {
+        "self": {
+            "href": "http://localhost:8080/book/show/1",
+            "hreflang": "en",
+            "type": "application/hal+json"
+        }
+    },
+    "_embedded": {
+        "author": {
+            "_links": {
+                "self": {
+                    "href": "http://localhost:8080/author/show/1",
+                    "hreflang": "en",
+                    "type": "application/hal+json"
+                }
+            },
+            "name": "Stephen King"
+        }
+    },
+    "title": "The Stand"
+}
+
+
+
+
+
+ +
+
+

The above example uses the hal.links(..) method to render links for a domain resource and the hal.embedded(..) method to define any embedded objects that form part of the HAL response.

+
+
+

The hal.links(..) method will by default create a link to the resource, but you can define additional links by annotating the domain class with either grails.rest.Linkable or grails.rest.Resource and using the link method on the object:

+
+
+
+
book.link(rel:"publisher", href:"http://foo.com/books")
+
+
+
+

The link will then be included in the HAL output.

+
+
+

If you wish to be specific about which links to include you can do so by passing a map of objects to link to:

+
+
+
+
model {
+    Book book
+}
+json {
+    hal.links(self:book, author: book.author)
+    ...
+}
+
+
+
+

Alternatively, if you prefer to define the HAL links yourself then you can do so by passing a closure to the hal.links method:

+
+
+
+
model {
+    Book book
+}
+json {
+    hal.links {
+        self {
+            href '...'
+            hreflang 'en'
+            type "application/hal+json"
+        }
+    }
+    ...
+}
+
+
+
+
+
+

Rendering Domain Classes as HAL

+
+
+

If you prefer to let the plugin handle the rendering of your object you can use the hal.render(..) method:

+
+
+
+
model {
+    Book book
+}
+json hal.render(book)
+
+
+
+

The hal.render method works the same as the g.render method, accepting the same arguments, the difference being it will output HAL links for the object via hal.links and also output associations fetched via a join query for hal.embedded.

+
+
+

For example you can also customize the content of the generated HAL with a closure:

+
+
+
+
model {
+    Book book
+}
+json hal.render(book) {
+    pages 1000
+}
+
+
+
+
+
+

Embedded Association and HAL

+
+
+

Generally, when using the hal.render(..) method, _embedded associations are only rendered for associations that have been initialized and eagerly fetched. This means that the following query will not render the book.authors association:

+
+
+
+
Book.get(params.id)
+
+
+
+

However, this query will render the book.authors association:

+
+
+
+
Book.get(params.id, [fetch:[authors:'eager']])
+
+
+
+

This is by design and to prevent unexpected performance degradation due to N+1 query loading. If you wish to force the render method to render _embedded associations for HAL you can do see using the deep argument:

+
+
+
+
json hal.render(book, [deep:true])
+
+
+
+

You can prevent HAL _embedded associations from being rendering using the embedded:false parameter:

+
+
+
+
model {
+    Book book
+}
+json hal.render(book, [embedded:false])
+
+
+
+

You can also render embedded associations without using the hal.render(..) method, by using the hal.embedded(..) method:

+
+
+
+
model {
+    Book book
+}
+json {
+    hal.embedded(book)
+    title book.title
+}
+
+
+
+ + + + + +
+ + +Like the hal.links(..) method, the hal.embedded(..) method should come first, before any other attributes, in your JSON output +
+
+
+

You can also control which associations should be embedded by using a map argument instead:

+
+
+
+
model {
+    Book book
+}
+json {
+    hal.embedded(authors: book.authors)
+    title book.title
+}
+
+
+
+

And you can inline the contents of the book without any associations using the hal.inline(..) method:

+
+
+
+
model {
+    Book book
+}
+json {
+    hal.embedded(authors: book.authors)
+    hal.inline(book)
+}
+
+
+
+

To customize the contents of the inlined JSON output use a closure:

+
+
+
+
model {
+    Book book
+}
+json {
+    hal.embedded(authors: book.authors)
+    hal.inline(book) {
+        pages 300
+    }
+}
+
+
+
+ + + + + +
+ + +You cannot include additional content after the call to hal.inline(..) as this will produce invalid JSON +
+
+
+

You can combine hal.embeddded(..) and hal.links(..) to obtain exactly the links and the embedded content you want:

+
+
+
+
model {
+    Book book
+}
+json {
+    hal.links(self: book )
+    hal.embedded(authors: book.authors)
+    hal.inline(book) {
+        pages 300
+    }
+}
+
+
+
+
+
+

Specifying the HAL Content Type

+
+
+

The default HAL response content type is application/hal+json, however as discussed in the section on Custom Mime Type you can define your own response content types to represent your resources.

+
+
+

For example given the following configuration in grails-app/conf/application.yml:

+
+
+
+
grails:
+    mime:
+        types:
+            all:      "*/*"
+            book:     "application/vnd.books.org.book+json"
+
+
+
+

You can set the HAL content type to an explicit content type or one of the named content types defined in grails.mime.types in application.yml:

+
+
+
+
model {
+    Book book
+}
+hal.type("book")
+json {
+    ...
+}
+
+
+
+
+
+

HAL Pagination

+
+
+

The JSON views plugin for Grails provides navigable pagination support. +Like the GSP <g:paginate> tag, the parameters include: total, max, offset, sort and order.

+
+
+

For example:

+
+
+
+
model {
+    Iterable<Book> bookList
+    Integer bookCount
+    Integer max // optional, defaults to 10
+    Integer offset // optional, defaults to 0
+    String sort // optional
+    String order // optional
+}
+json {
+    hal.paginate(Book, bookCount, max, offset, sort, order)
+    ...
+}
+
+
+
+ + + + + +
+ + +Similar to hal.links() the hal.paginate() has to be the first element within the json{} closure. +
+
+
+

When accessing http://localhost:8080/book?offset=10 this produces the navigable output like:

+
+
+
+
{
+  "_links": {
+    "self": {
+      "href": "http://localhost:8080/book/index?offset=10&max=10",
+      "hreflang": "en_US",
+      "type": "application/hal+json"
+    },
+    "first": {
+      "href": "http://localhost:8080/book/index?offset=0&max=10",
+      "hreflang": "en_US"
+    },
+    "prev": {
+      "href": "http://localhost:8080/book/index?offset=0&max=10",
+      "hreflang": "en_US"
+    },
+    "next": {
+      "href": "http://localhost:8080/book/index?offset=20&max=10",
+      "hreflang": "en_US"
+    },
+    "last": {
+      "href": "http://localhost:8080/book/index?offset=40&max=10",
+      "hreflang": "en_US"
+    }
+  },
+  ...
+}
+
+
+
+ + + + + +
+ + +If there aren’t enough results to paginate the navigation links will not appear, Likewise, the prev and next links are only present when there is a previous or next page. +
+
+
+

If you have other links that you want to include along with the pagination links then you can use the hal.links(..) method with pagination arguments:

+
+
+
+
model {
+    Author author
+    Iterable<Book> bookList
+    Integer bookCount
+}
+json {
+    // the model, type to paginate, and the total count
+    hal.links([author:author], Book, bookCount)
+    ...
+}
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/3.2.3/json/history.html b/3.2.3/json/history.html new file mode 100644 index 000000000..18ff6b581 --- /dev/null +++ b/3.2.3/json/history.html @@ -0,0 +1,583 @@ + + + + + + + +Version History + + + + + + +
+
+

The current release is 3.2.3. Below is a version history.

+
+
+

For later releases check the release notes at: https://github.com/grails/grails-views/releases

+
+
+

2.0.2

+
+
+ +
+
+

2.0.1

+
+
+ +
+
+

2.0.0

+
+
+ +
+
+

1.3.0

+
+
+ +
+
+

1.2.0

+
+
+ +
+
+

1.1.0

+
+
+ +
+
+

1.0.0

+
+
+ +
+
+ + + \ No newline at end of file diff --git a/3.2.3/json/index.html b/3.2.3/json/index.html new file mode 100644 index 000000000..400302e7f --- /dev/null +++ b/3.2.3/json/index.html @@ -0,0 +1,3127 @@ + + + + + + + +JSON Views + + + + + + +
+
+

Introduction

+
+
+

JSON views are written in Groovy, end with the file extension gson and reside in the grails-app/views directory. They provide a DSL for producing output in the JSON format. A hello world example can be seen below:

+
+
+
grails-app/views/hello.gson
+
+
json.message {
+    hello "world"
+}
+
+
+
+

The above JSON view results in the output:

+
+
+
+
{"message":{ "hello":"world"}}
+
+
+
+

The json variable is an instance of StreamingJsonBuilder. See the documentation in the Groovy user guide for more information on StreamingJsonBuilder.

+
+
+

More example usages:

+
+
+
+
json(1,2,3) == "[1,2,3]"
+json { name "Bob" } == '{"name":"Bob"}'
+json([1,2,3]) { n it } == '[{"n":1},{"n":2},{"n":3}]'
+
+
+
+

You can specify a model to view in one of two ways. Either with a model block:

+
+
+
grails-app/views/hello.gson
+
+
model {
+    String message
+}
+json.message {
+    hello message
+}
+
+
+
+

Or with the @Field transformation provided by Groovy:

+
+
+
grails-app/views/hello.gson
+
+
import groovy.transform.Field
+@Field String message
+json.message {
+    hello message
+}
+
+
+
+
+
+

Version History

+
+
+

The current release is 3.2.3. Below is a version history.

+
+
+

For later releases check the release notes at: https://github.com/grails/grails-views/releases

+
+
+

2.0.2

+
+
+
    +
  • +

    Fix bug where incorrect JSON was generated when all values are null in the nested object.

    +
  • +
+
+
+

2.0.1

+
+
+
    +
  • +

    Optimized compileGsonViews performance and reduced IOPS as well by compiling in parallel threads.

    +
  • +
  • +

    Remove duplicate GSON classes from WAR.

    +
  • +
+
+
+

2.0.0

+
+
+
    +
  • +

    Grails 4, Gradle 5.

    +
  • +
  • +

    Support for render embedded types with "includes".

    +
  • +
  • +

    Fixed StackOverflow when rendering bidirectional associations.

    +
  • +
  • +

    Allow augmenting model in JSON view.

    +
  • +
  • +

    Fixed bugs related to exclude version and error properties from a Map model.

    +
  • +
+
+
+

1.3.0

+
+
+
    +
  • +

    The includes support has changed in a way that may break existing use cases. Having includes: ['captain', 'captain.name']] previously excluded all other fields except for captain.name. The captain in the list was necessary for captain.name to function as expected. Now the captain entry will cause all fields in captain to be rendered. To restore the previous behavior, simply remove the captain entry. includes: ['captain', 'captain.name']includes: ['captain.name].

    +
  • +
+
+
+

1.2.0

+
+
+
    +
  • +

    JSON API support

    +
  • +
  • +

    Ability to register custom converters

    +
  • +
  • +

    New configuration options for date formatting and unicode escaping

    +
  • +
  • +

    New testing trait that integrates with the testing-support framework (1.2.5)

    +
  • +
+
+
+

1.1.0

+
+
+
    +
  • +

    Global template support

    +
  • +
  • +

    Template inheritance

    +
  • +
  • +

    Global templates for GORM for MongoDB / GeoJSON

    +
  • +
  • +

    Support for easily testing JSON views with JsonViewTest

    +
  • +
  • +

    Pagination support in HAL

    +
  • +
  • +

    Better Embedded support in HAL

    +
  • +
  • +

    Ability to access HTTP parameters and headers

    +
  • +
  • +

    Resource expansion with the expand parameter

    +
  • +
  • +

    Controller namespace support

    +
  • +
  • +

    Support for a default /object/_object.gson template

    +
  • +
+
+
+

1.0.0

+
+
+
    +
  • +

    Initial 1.0.0 GA Release

    +
  • +
+
+
+
+
+

Installation

+
+
+

To activate JSON views, add the following dependency to the dependencies block of your build.gradle:

+
+
+
+
compile "org.grails.plugins:views-json:3.2.3"
+
+
+
+

If you are also using MongoDB you may want to add the views-json-templates dependency too which includes support for GeoJSON:

+
+
+
+
compile "org.grails.plugins:views-json-templates:3.2.3"
+
+
+
+

To enable Gradle compilation of JSON views for production environment add the following to the buildscript dependencies block:

+
+
+
+
buildscript {
+    ...
+    dependencies {
+        ...
+        classpath "org.grails.plugins:views-gradle:3.2.3"
+    }
+}
+
+
+
+

Then apply the org.grails.plugins.views-json Gradle plugin after any Grails core gradle plugins:

+
+
+
+
...
+apply plugin: "org.grails.grails-web"
+apply plugin: "org.grails.plugins.views-json"
+
+
+
+

This will add a compileGsonViews task to Gradle that is executed when producing a JAR or WAR file.

+
+
+
+
+

Templates

+
+
+

Template Basics

+
+

You can define templates starting with underscore _. For example given the following template called _person.gson:

+
+
+
grails-app/views/person/_person.gson
+
+
model {
+    Person person
+}
+json {
+    name person.name
+    age person.age
+}
+
+
+
+

You can render the template with the g.render method:

+
+
+
grails-app/views/person/show.gson
+
+
model {
+    Person person
+}
+json g.render(template:"person", model:[person:person])
+
+
+
+

The above assumes the view is in the same directory as the template. If this is not the case you may need to use a relative URI to the template:

+
+
+
grails-app/views/family/show.gson
+
+
model {
+    Person person
+}
+json g.render(template:"/person/person", model:[person:person])
+
+
+
+
+

Template Namespace

+
+

The previous example can be simplified using the template namespace:

+
+
+
grails-app/views/person/show.gson
+
+
model {
+    Person person
+}
+json tmpl.person(person)
+
+
+
+

In this example, the name of the method call (person in this case) is used to dictate which template to render.

+
+
+

The argument to the template becomes the model. The name of the model variable is the same as the template name. If you wish to alter this you can pass a map instead:

+
+
+
grails-app/views/person/show.gson
+
+
model {
+    Person person
+}
+json tmpl.person(individual:person)
+
+
+
+

In the above example the model variable passed to the _person.gson template is called individual.

+
+
+

This technique may also be used when you want to render a template using a relative path:

+
+
+
grails-app/views/person/show.gson
+
+
model {
+    Person person
+}
+json tmpl.'/person/person'(person:person)
+
+
+
+

The template namespace even accepts a collection (or any Iterable object):

+
+
+
grails-app/views/person/show.gson
+
+
model {
+    List<Person> people = []
+}
+json tmpl.person(people)
+
+
+
+

In this case the output is a JSON array. For example:

+
+
+
+
    [{"name":"Fred",age:10},{"name":"Bob",age:12}]
+
+
+
+

When rendering an Iterable, you can also specify the model name:

+
+
+
grails-app/views/person/show.gson
+
+
model {
+    List<Person> people = []
+}
+json tmpl.person("owner", people)
+
+
+
+

The person template would have a field defined: Person owner

+
+
+

If you need additional data that will be static over each iteration of the template, you can also pass in a model:

+
+
+
grails-app/views/person/show.gson
+
+
model {
+    List<Person> people = []
+}
+json tmpl.person(people, [relationship: "Father"])
+
+
+
+

The person template could have a field defined: String relationship

+
+
+

By passing in a collection the plugin will iterate over each element on the collection and render the template as a JSON array. If you do not want this to happen then use the variation of the method that takes a map instead:

+
+
+
grails-app/views/person/show.gson
+
+
model {
+    List<Person> people = []
+}
+json tmpl.person(people:people)
+
+
+
+
+

More Ways to Render Templates

+
+

The g.render method is flexible, you can render templates in many forms:

+
+
+
+
model {
+    Family family
+}
+json {
+    name family.father.name
+    age family.father.age
+    oldestChild g.render(template:"person", model:[person: family.children.max { Person p -> p.age } ])
+    children g.render(template:"person", collection: family.children, var:'person')
+}
+
+
+
+

However, most of these use cases are more concise with the template namespace:

+
+
+
+
model {
+    Family family
+}
+json {
+    name family.father.name
+    age family.father.age
+    oldestChild tmpl.person( family.children.max { Person p -> p.age } ] )
+    children tmpl.person( family.children )
+}
+
+
+
+
+

Template Inheritance

+
+

JSON templates can inherit from a parent template. For example consider the following parent template:

+
+
+
grails-app/views/_parent.gson
+
+
model {
+    Object object
+}
+json {
+    hal.links(object)
+    version "1.0"
+}
+
+
+
+

A child template can inherit from the above template by using the inherits method:

+
+
+
grails-app/views/_person.gson
+
+
inherits template:"parent"
+model {
+    Person person
+}
+json {
+    name person.name
+}
+
+
+
+

The JSON from the parent and the child template will be combined so that the output is:

+
+
+
+
 {
+   "_links": {
+     "self": {
+       "href": "http://localhost:8080/person/1",
+       "hreflang": "en",
+       "type": "application/hal+json"
+     }
+   },
+   "version": "1.0",
+   "name": "Fred"
+ }
+
+
+
+

The parent template’s model will be formulated from the child templates model and the super class name. For example if the model is Person person where Person extends from Object then the final model passed to the parent template will look like:

+
+
+
+
[person:person, object:person]
+
+
+
+

If the Person class extended from a class called Mammal then the model passed to the parent would be:

+
+
+
+
[person:person, mammal:person]
+
+
+
+

This allows you to design your templates around object inheritance.

+
+
+

You can customize the model passed to the parent template using the model argument:

+
+
+
+
inherits template:"parent", model:[person:person]
+
+
+
+
+
+
+

Rendering Domain Classes

+
+
+

Basics of Domain Class Rendering

+
+

Typically your model may involve one or many domain instances. JSON views provide a render method for rendering these.

+
+
+

For example given the following domain class:

+
+
+
+
class Book {
+    String title
+}
+
+
+
+

And the following template:

+
+
+
+
model {
+    Book book
+}
+json g.render(book)
+
+
+
+

The resulting output is:

+
+
+
+
{"id":1,"title":"The Stand"}
+
+
+
+

You can customize the rendering by including or excluding properties:

+
+
+
+
json g.render(book, [includes:['title']])
+
+
+
+

Or by providing a closure to provide additional JSON output:

+
+
+
+
json g.render(book) {
+    pages 1000
+}
+
+
+
+

Or combine the two approaches:

+
+
+
+
json g.render(book, [includes:['title']]) {
+    pages 1000
+}
+
+
+
+
+

Deep Rendering of Domain Classes

+
+

Typically the g.render(..) method will only render objects one level deep. In other words if you have a domain class such as:

+
+
+
+
class Book {
+    String title
+    Author author
+}
+
+
+
+

The resulting output will be something like:

+
+
+
+
{"id":1,"title":"The Stand","author":{id:1}}
+
+
+
+

If you wish for the author to be included as part of the rendering, there are two requirements, first you must make sure the association is initialized.

+
+
+

If the render method encounters a proxy, it will not traverse into the relationship to avoid N+1 query performance problems.

+
+
+ + + + + +
+ + +The same applies to one-to-many collection associations. If the association has not been initialized the render method will not traverse through the collection! +
+
+
+

So you must make sure your query uses a join:

+
+
+
+
Book.findByTitle("The Stand", [fetch:[author:"join"]])
+
+
+
+

Secondly when calling the render method you should pass the deep argument:

+
+
+
+
json g.render(book, [deep:true])
+
+
+
+

Alternatively, to only expand a single association you can use the expand argument:

+
+
+
+
json g.render(book, [expand:['author']])
+
+
+
+ + + + + +
+ + +request parameters can also be used to expand associations (eg. ?expand=author), if you do not want to allow this, then use includes or excludes to include only the properties you want. +
+
+
+

Finally, if you prefer to handle the rendering yourself you can do by excluding the property:

+
+
+
+
json g.render(book, [excludes:['author']]) {
+    author {
+        name book.author.name
+    }
+}
+
+
+
+
+

Domain Class Rendering and Templates

+
+

An alternative to the default behaviour of the render method is to rely on templates.

+
+
+

In other words if you create a /author/_author.gson template and then use the g.render method on an instance of book:

+
+
+
+
json g.render(book)
+
+
+
+

Whenever the author association is encountered the g.render method will automatically render the /author/_author.gson template instead.

+
+
+
+
+
+

JSON View API

+
+
+

All JSON views subclass the JsonViewTemplate class by default.

+
+
+

The JsonViewTemplate superclass implements the JsonView trait which in turn extends the the GrailsView trait.

+
+
+

Thanks to these traits several methods and properties are available to JSON views that can be used to accomplish different tasks.

+
+
+ +
+

Links can be generated using the g.link(..) method:

+
+
+
+
json.person {
+    name "bob"
+    homepage g.link(controller:"person", id:"bob")
+}
+
+
+
+

The g.link method is similar to the equivalent tag in GSP and allows you to easily create links to other controllers.

+
+
+
+

Altering the Response Headers

+
+

To customize content types and headers use the response object defined by the HttpView trait:

+
+
+
+
response.contentType "application/hal+json"
+response.header "Token", "foo"
+json.person {
+    name "bob"
+}
+
+
+
+

The HttpView trait defines a variety of methods for inspecting the request and altering the response.

+
+
+ + + + + +
+ + +The methods available are only a subset of the methods available via the HttpServletRequest and HttpServletResponse objects, this is by design as view logic should be limited and logic performed in the controller instead. +
+
+
+
+

Accessing the Request

+
+

Various aspects of the request can be accessed by the request object defined by the HttpView trait:

+
+
+
+
json.person {
+ name "bob"
+ userAgent request.getHeader('User-Agent')
+}
+
+
+
+

Parameters can be accessed via the params object which is an instance of Parameters:

+
+
+
+
json.person {
+ name "bob"
+ first params.int('offset', 0)
+ sort params.get('sort', 'name')
+}
+
+
+
+
+

Default Static Imports

+
+

The following classes' static properties are imported by default:

+
+
+
    +
  • +

    org.springframework.http.HttpStatus

    +
  • +
  • +

    org.springframework.http.HttpMethod

    +
  • +
  • +

    grails.web.http.HttpHeaders

    +
  • +
+
+
+

This means that you can use the response object to set the status using these constants, instead of hard coded numbers:

+
+
+
+
response.status NOT_FOUND
+
+
+
+

Or generate links using the appropriate HTTP method:

+
+
+
+
g.link(resource:"books", method:POST)
+
+
+
+
+

I18n & Locale Integration

+
+

You can lookup i18n messages use the g.message method:

+
+
+
+
json.error {
+    description g.message(code:'default.error.message')
+}
+
+
+
+

You can also create locale specific views by appending the locale to view name. For example person_de.gson for German or person.gson for the default.

+
+
+ + + + + +
+ + +For more complex message lookups the messageSource property is an instance of the Spring MessageSource class. +
+
+
+
+

Accessing Configuration

+
+

The application configuration is injected automatically into your json views. To access it, simply reference config.

+
+
+
+
json {
+    foo config.getProperty("bar", String, null)
+}
+
+
+
+
+

Miscellaneous Properties

+
+

Other properties are also available:

+
+ ++++ + + + + + + + + + + + + + + +

controllerName

The name of the current controller

actionName

The name of the current controller action

controllerNamespace

The namespace of the current controller

+
+
+
+
+

Model Naming

+
+
+

Grails Framework supports a convention for the model names in your JSON views. If the convention does not meet your needs, model variables can be explicitly defined.

+
+
+ + + + + +
+ + +Some model names are reserved since there are properties of the same name injected into the view: +locale, response, request, page, controllerNamespace, controllerName, actionName, config, generator, json +
+
+
+

Explicit Model Naming

+
+

Given a view:

+
+
+
grails-app/views/hello/index.gson
+
+
model {
+    String message
+}
+json.message {
+    hello message
+}
+
+
+
+

Then the controller has to specify the name to be used in the view:

+
+
+
grails-app/controllers/HelloController.groovy
+
+
def index() {
+    respond(message: "Hello World")
+    //or [message: "Hello World"]
+}
+
+
+
+

When using a template:

+
+
+
grails-app/views/hello/_msg.gson
+
+
model {
+    String message
+}
+json.message {
+    hello message
+}
+
+
+
+

In the view you can use the tmpl namespace:

+
+
+
+
json {
+    message tmpl.msg([message: message])
+    // or g.render(template:'msg', model:[message: message])
+    // or g.render(template:'msg', model: message, var:'message')
+}
+
+
+
+

Using collections:

+
+
+
+
model {
+    List<String> messages
+}
+json {
+    messages tmpl.msg('message', messages)
+    // or g.render(template:'msg', collection: messages, var: 'message')
+}
+
+
+
+
+

Model By Convention

+
+

Property Type

+
+

When rendering a non iterable object, the property name of the type is used when a name is not specified.

+
+
+
grails-app/views/hello/index.gson
+
+
model {
+    String string
+}
+json.message {
+    hello string
+}
+
+
+
+

The variable can be passed in directly to respond.

+
+
+
grails-app/controllers/HelloController.groovy
+
+
def index() {
+    respond("Hello World")
+}
+
+
+
+

This also applies when rendering templates with tmpl.

+
+
+
grails-app/views/hello/_msg.gson
+
+
model {
+    String string
+}
+json.message {
+    hello string
+}
+
+
+
+
grails-app/views/hello/index.gson
+
+
model {
+    String someString
+}
+json tmpl.msg(someString)
+
+
+
+

If a collection is rendered, the property name of the component type is appended with the property name of the collection type. The component type is based on the first item in the list.

+
+
+

List<String>stringList

+
+
+

Set<String>stringSet

+
+
+

Bag<String>stringCollection

+
+
+

If the collection is empty, emptyCollection will be used as the default model name. This is due to not being able to inspect the first object’s type.

+
+
+
grails-app/views/hello/index.gson
+
+
model {
+    String stringList
+}
+json {
+    strings stringList
+}
+
+
+
+

The variable can be passed in directly to respond.

+
+
+
grails-app/controllers/HelloController.groovy
+
+
def index() {
+    respond(["Hello", "World"])
+}
+
+
+
+ + + + + +
+ + +The component+collection convention does not apply when rendering collections with tmpl inside a view. +
+
+
+
+

Template Name

+
+

When using a template, unless specified, the model name is based on the template name.

+
+
+

Given the following template:

+
+
+
grails-app/views/hello/_msg.gson
+
+
model {
+    String msg // or String string
+}
+json.message {
+    hello msg
+}
+
+
+
+

To render a single message from another view using the template:

+
+
+
grails-app/views/hello/index.gson
+
+
json.message tmpl.msg(message)
+
+
+
+

To render a collection of messages from another view using the template:

+
+
+
grails-app/views/hello/index.gson
+
+
model {
+    List<String> stringList
+}
+json {
+    messages tmpl.msg(stringList)
+}
+
+
+
+

In both cases the convention of the variable name matching the template name is used.

+
+
+
+
+
+
+

Content Negotiation

+
+
+

GSON views integrate with Grails' content negotiation infrastructure. For example if you create two views called grails-app/views/book/show/show.gsp (for HTML) and grails-app/views/book/show/show.gson (for JSON), you can then define the following action:

+
+
+
grails-app/controllers/myapp/BookController.groovy
+
+
def show() {
+    respond Book.get(params.id)
+}
+
+
+
+

The result is that if you send a request to /book/show it will render show.gsp but if you send a request to /book/show.json it will render show.gson.

+
+
+

In addition, if the client sends a request with the Accept header containing application/json the show.gson view will be rendered.

+
+
+

Content Negotiation and Domain Classes

+
+

Content negotiation also works nicely with domain classes, for example if you want to define a template to render any instance of the Book domain class you can create a gson file that matches the class name.

+
+
+

For example given a class called demo.Book you can create grails-app/views/book/_book.gson and whenever respond is called with an instance of Book Grails will render _book.gson.

+
+
+
+
def show() {
+    respond Book.get(params.id)
+}
+
+
+
+

If you define an index action that responds with a list of books:

+
+
+
+
def index() {
+    respond Book.list()
+}
+
+
+
+

Then you can create a corresponding grails-app/views/book/index.gson file that renders each book:

+
+
+
grails-app/views/book/index.gson
+
+
@Field List<Book> bookList
+
+json tmpl.book(bookList)
+
+
+
+ + + + + +
+ + +When responding with a list of objects Grails automatically appends the suffix "List" to the model name, so in this case the model name is bookList +
+
+
+

By calling the tmpl.book(..) method with the list of books the grails-app/views/book/_book.gson template will be rendered for each one and a JSON array returned.

+
+
+
+

Global Default Template

+
+

You can also define a /object/_object template that is rendered by default if no other template is found during content negotiation. To do this create a file called /grails-app/views/object/_object.gson where the name of the model is object, for example:

+
+
+
+
model {
+    Object object
+}
+json g.render(object)
+
+
+
+
+

Content Negotiation and Versioned APIs

+
+

A typical use case when building REST APIs is the requirement to support different versions of the API. GSON views can be versioned by including the version in the name of the view.

+
+
+

Grails will then use the ACCEPT-VERSION header when resolving the view.

+
+
+

For example given a view called /book/show.gson if you wish to deprecate your previous API and create a version 2.0 API, you can rename the previous view /book/show_v1.0.gson and create a new /book/show.gson representing the new version of the API.

+
+
+

Then when the client sends a request with the ACCEPT-VERSION header containing v1.0 the /book/show_v1.0.gson view will be rendered instead of /book/show.gson.

+
+
+
+

Content Negotiation and View Resolving Strategy

+
+

Grails Framework takes into account a number of factors when attempting to resolve the view including the content type, version and locale.

+
+
+

The paths searched are following:

+
+
+
    +
  • +

    view_name[_LOCALE][_ACCEPT_CONTENT_TYPE][_ACCEPT-VERSION].gson (Example: show_de_hal_v1.0.gson)

    +
  • +
  • +

    view_name[_LOCALE][_ACCEPT_CONTENT_TYPE].gson (Example: show_de_hal.gson)

    +
  • +
  • +

    view_name[_LOCALE][_ACCEPT-VERSION].gson (Example: show_de_v1.0.gson)

    +
  • +
  • +

    view_name[_LOCALE].gson (Example: show_de.gson)

    +
  • +
  • +

    view_name[_ACCEPT_CONTENT_TYPE][_ACCEPT-VERSION].gson (Example: show_hal_v1.0.gson)

    +
  • +
  • +

    view_name[_ACCEPT-VERSION][_ACCEPT_CONTENT_TYPE].gson (Example: show_v1.0_hal.gson)

    +
  • +
  • +

    view_name[_ACCEPT_CONTENT_TYPE].gson (Example: show_hal.gson)

    +
  • +
  • +

    view_name[_ACCEPT-VERSION].gson (Example: show_v1.0.gson)

    +
  • +
  • +

    view_name.gson (Example: show.gson)

    +
  • +
+
+
+

The content type (defined by either the ACCEPT header or file extension in the URI) is taken into account to allow different formats for the same view.

+
+
+
+

Content Negotiation and Custom Mime Types

+
+

Some REST APIs use the notion of custom mime types to represent resources. Within Grails you can for example define custom mime types in grails-app/conf/application.yml:

+
+
+
+
grails:
+    mime:
+        types:
+            all:      "*/*"
+            book:     "application/vnd.books.org.book+json"
+            bookList: "application/vnd.books.org.booklist+json"
+
+
+
+

Once these custom mime types have been defined you can then define a view such as show.book.gson for that particular mime type.

+
+
+
+
+
+

HAL Support

+
+
+

HAL is a standard format for representing JSON that has gained traction for its ability to represent links between resources and provide navigable APIs.

+
+
+

The JSON views plugin for Grails provides HAL support out-of-the-box. All JSON views have access to the hal instance which implements HalViewHelper.

+
+
+

For example:

+
+
+
+
model {
+    Book book
+}
+json {
+    hal.links(book)
+    hal.embedded {
+        author( book.authors.first() ) { Author author ->
+            name author.name
+        }
+    }
+    title book.title
+}
+
+
+
+ + + + + +
+ + +The call to hal.links() has to be the first element within the json{} closure. +
+
+
+

This produces the HAL output:

+
+
+
+
{
+    "_links": {
+        "self": {
+            "href": "http://localhost:8080/book/show/1",
+            "hreflang": "en",
+            "type": "application/hal+json"
+        }
+    },
+    "_embedded": {
+        "author": {
+            "_links": {
+                "self": {
+                    "href": "http://localhost:8080/author/show/1",
+                    "hreflang": "en",
+                    "type": "application/hal+json"
+                }
+            },
+            "name": "Stephen King"
+        }
+    },
+    "title": "The Stand"
+}
+
+
+
+ +
+

The above example uses the hal.links(..) method to render links for a domain resource and the hal.embedded(..) method to define any embedded objects that form part of the HAL response.

+
+
+

The hal.links(..) method will by default create a link to the resource, but you can define additional links by annotating the domain class with either grails.rest.Linkable or grails.rest.Resource and using the link method on the object:

+
+
+
+
book.link(rel:"publisher", href:"http://foo.com/books")
+
+
+
+

The link will then be included in the HAL output.

+
+
+

If you wish to be specific about which links to include you can do so by passing a map of objects to link to:

+
+
+
+
model {
+    Book book
+}
+json {
+    hal.links(self:book, author: book.author)
+    ...
+}
+
+
+
+

Alternatively, if you prefer to define the HAL links yourself then you can do so by passing a closure to the hal.links method:

+
+
+
+
model {
+    Book book
+}
+json {
+    hal.links {
+        self {
+            href '...'
+            hreflang 'en'
+            type "application/hal+json"
+        }
+    }
+    ...
+}
+
+
+
+
+

Rendering Domain Classes as HAL

+
+

If you prefer to let the plugin handle the rendering of your object you can use the hal.render(..) method:

+
+
+
+
model {
+    Book book
+}
+json hal.render(book)
+
+
+
+

The hal.render method works the same as the g.render method, accepting the same arguments, the difference being it will output HAL links for the object via hal.links and also output associations fetched via a join query for hal.embedded.

+
+
+

For example you can also customize the content of the generated HAL with a closure:

+
+
+
+
model {
+    Book book
+}
+json hal.render(book) {
+    pages 1000
+}
+
+
+
+
+

Embedded Association and HAL

+
+

Generally, when using the hal.render(..) method, _embedded associations are only rendered for associations that have been initialized and eagerly fetched. This means that the following query will not render the book.authors association:

+
+
+
+
Book.get(params.id)
+
+
+
+

However, this query will render the book.authors association:

+
+
+
+
Book.get(params.id, [fetch:[authors:'eager']])
+
+
+
+

This is by design and to prevent unexpected performance degradation due to N+1 query loading. If you wish to force the render method to render _embedded associations for HAL you can do see using the deep argument:

+
+
+
+
json hal.render(book, [deep:true])
+
+
+
+

You can prevent HAL _embedded associations from being rendering using the embedded:false parameter:

+
+
+
+
model {
+    Book book
+}
+json hal.render(book, [embedded:false])
+
+
+
+

You can also render embedded associations without using the hal.render(..) method, by using the hal.embedded(..) method:

+
+
+
+
model {
+    Book book
+}
+json {
+    hal.embedded(book)
+    title book.title
+}
+
+
+
+ + + + + +
+ + +Like the hal.links(..) method, the hal.embedded(..) method should come first, before any other attributes, in your JSON output +
+
+
+

You can also control which associations should be embedded by using a map argument instead:

+
+
+
+
model {
+    Book book
+}
+json {
+    hal.embedded(authors: book.authors)
+    title book.title
+}
+
+
+
+

And you can inline the contents of the book without any associations using the hal.inline(..) method:

+
+
+
+
model {
+    Book book
+}
+json {
+    hal.embedded(authors: book.authors)
+    hal.inline(book)
+}
+
+
+
+

To customize the contents of the inlined JSON output use a closure:

+
+
+
+
model {
+    Book book
+}
+json {
+    hal.embedded(authors: book.authors)
+    hal.inline(book) {
+        pages 300
+    }
+}
+
+
+
+ + + + + +
+ + +You cannot include additional content after the call to hal.inline(..) as this will produce invalid JSON +
+
+
+

You can combine hal.embeddded(..) and hal.links(..) to obtain exactly the links and the embedded content you want:

+
+
+
+
model {
+    Book book
+}
+json {
+    hal.links(self: book )
+    hal.embedded(authors: book.authors)
+    hal.inline(book) {
+        pages 300
+    }
+}
+
+
+
+
+

Specifying the HAL Content Type

+
+

The default HAL response content type is application/hal+json, however as discussed in the section on Custom Mime Type you can define your own response content types to represent your resources.

+
+
+

For example given the following configuration in grails-app/conf/application.yml:

+
+
+
+
grails:
+    mime:
+        types:
+            all:      "*/*"
+            book:     "application/vnd.books.org.book+json"
+
+
+
+

You can set the HAL content type to an explicit content type or one of the named content types defined in grails.mime.types in application.yml:

+
+
+
+
model {
+    Book book
+}
+hal.type("book")
+json {
+    ...
+}
+
+
+
+
+

HAL Pagination

+
+

The JSON views plugin for Grails provides navigable pagination support. +Like the GSP <g:paginate> tag, the parameters include: total, max, offset, sort and order.

+
+
+

For example:

+
+
+
+
model {
+    Iterable<Book> bookList
+    Integer bookCount
+    Integer max // optional, defaults to 10
+    Integer offset // optional, defaults to 0
+    String sort // optional
+    String order // optional
+}
+json {
+    hal.paginate(Book, bookCount, max, offset, sort, order)
+    ...
+}
+
+
+
+ + + + + +
+ + +Similar to hal.links() the hal.paginate() has to be the first element within the json{} closure. +
+
+
+

When accessing http://localhost:8080/book?offset=10 this produces the navigable output like:

+
+
+
+
{
+  "_links": {
+    "self": {
+      "href": "http://localhost:8080/book/index?offset=10&max=10",
+      "hreflang": "en_US",
+      "type": "application/hal+json"
+    },
+    "first": {
+      "href": "http://localhost:8080/book/index?offset=0&max=10",
+      "hreflang": "en_US"
+    },
+    "prev": {
+      "href": "http://localhost:8080/book/index?offset=0&max=10",
+      "hreflang": "en_US"
+    },
+    "next": {
+      "href": "http://localhost:8080/book/index?offset=20&max=10",
+      "hreflang": "en_US"
+    },
+    "last": {
+      "href": "http://localhost:8080/book/index?offset=40&max=10",
+      "hreflang": "en_US"
+    }
+  },
+  ...
+}
+
+
+
+ + + + + +
+ + +If there aren’t enough results to paginate the navigation links will not appear, Likewise, the prev and next links are only present when there is a previous or next page. +
+
+
+

If you have other links that you want to include along with the pagination links then you can use the hal.links(..) method with pagination arguments:

+
+
+
+
model {
+    Author author
+    Iterable<Book> bookList
+    Integer bookCount
+}
+json {
+    // the model, type to paginate, and the total count
+    hal.links([author:author], Book, bookCount)
+    ...
+}
+
+
+
+
+
+
+

JSON API Support

+
+
+

JSON API is a standard format for representing JSON.

+
+
+

The JSON views plugin for Grails provides JSON API support out-of-the-box. All JSON views have access to the jsonapi instance which implements JsonApiViewHelper.

+
+
+

Grails views makes a best effort to conform to the JSON API standard, however that only applies to the format of the data. The specification makes many assertions about response codes, url conventions, and other server related concepts that are overreaching.

+
+
+

The JSON API support in Grails also only applies to domain classes. Because the specification relies on concepts of relationships and identifiers, there is no clear way to determine how those concepts would apply to conventional Groovy classes. As a result, normal Groovy classes are not supported.

+
+
+

The simplest example of using JSON API simply passes a domain class to the render method of the jsonapi object.

+
+
+

For example:

+
+
+
+
model {
+    Book book
+}
+json jsonapi.render(book)
+
+
+
+

In the example where Book looks like the following:

+
+
+
+
class Book {
+    String title
+    Author author
+}
+
+
+
+

This is what an example Book instance rendered with JSON API might look like.

+
+
+
+
{
+  "data": {
+    "type": "book",
+    "id": "3",
+    "attributes": {
+      "title": "The Return of the King"
+    },
+    "relationships": {
+      "author": {
+        "links": {
+          "self": "/author/9"
+        },
+        "data": {
+          "type": "author",
+          "id": "9"
+        }
+      }
+    }
+  },
+  "links": {
+    "self": "http://localhost:8080/book/3"
+  }
+}
+
+
+
+

JSON API Object

+
+

To include the JSON API Object in the response, include a jsonApiObject argument to the render method.

+
+
+
+
model {
+    Book book
+}
+json jsonapi.render(book, [jsonApiObject: true])
+
+
+
+

The response will contain "jsonapi":{"version":"1.0"} as the first key in the resulting object.

+
+
+
+

Meta Object

+
+

To add metadata to your response, the meta argument can be passed to render with the value being the object that should be rendered. If this functionality is used in addition to jsonApiObject: true, the metadata will be rendered as the "meta" property of the "jsonapi" object.

+
+
+
+
model {
+    Book book
+}
+json jsonapi.render(book, [meta: [name: "Metadata Information"]])
+
+
+
+

The response will contain "meta":{"name":"Metadata Information"} as the first key in the resulting object.

+
+
+
+

Rendering Errors

+
+

The JSON API specification has instructions on how to render errors. In the case of the Grails implementation, this applies to both exceptions and validation errors.

+
+
+

Exceptions

+
+

If an exception is passed to the render method, it will be rendered within the specification.

+
+
+

In the example of an exception new RuntimeException("oops!"), the following will be rendered:

+
+
+
+
{
+  "errors": [
+    {
+      "status": 500,
+      "title": "java.lang.RuntimeException",
+      "detail": "oops!",
+      "source": {
+        "stacktrace": [
+          //An array of information relating to the stacktrace
+        ]
+      }
+    }
+  ]
+}
+
+
+
+
+

Validation Errors

+
+

In the case of validation errors, the response will look like the following when a name property fails the blank constraint:

+
+
+
+
{
+  "errors": [
+    {
+      "code": "blank",
+      "detail": "Property [name] of class [class com.foo.Bar] cannot be blank",
+      "source": {
+        "object": "com.foo.Bar",
+        "field": "name",
+        "rejectedValue": "",
+        "bindingError": false
+      }
+    }
+  ]
+}
+
+
+
+
+
+ +
+

In general, links for relationships will be provided when the relationship has a value.

+
+
+

Example output for a has one relationship where the value is null:

+
+
+
+
"captain": {
+  "data": null
+}
+
+
+
+

And when the value is not null:

+
+
+
+
"author": {
+  "links": {
+    "self": "/author/9"
+  },
+  "data": {
+    "type": "author",
+    "id": "9"
+  }
+}
+
+
+
+

Currently links are not supported in the case of to many relationships.

+
+
+
+

Pagination

+
+

The JSON API specification has a section which explains pagination. The Grails implementation follows that specification as it is written.

+
+
+

To enable pagination links in your output you must be rendering a collection and also include some arguments in addition to the collection being rendered. There are two required arguments: total and resource. The default offset is 0 and max is 10.

+
+
+
+
model {
+    List<Book> books
+    Integer bookTotal
+}
+json jsonapi.render(books, [pagination: [total: bookTotal, resource: Book]])
+
+
+
+

Example links output if bookTotal == 20:

+
+
+
+
"links": {
+  "self": "/books",
+  "first": "http://localhost:8080/books?offset=0&max=10",
+  "next": "http://localhost:8080/books?offset=10&max=10",
+  "last": "http://localhost:8080/books?offset=10&max=10"
+}
+
+
+
+

By default the values for offset, sort, max, and order will come from the parameters with the same names. You can override their values by passing the corresponding argument in the pagination Map.

+
+
+
+
model {
+    List<Book> books
+    Integer bookTotal
+}
+json jsonapi.render(books, [pagination: [total: bookTotal, resource: Book, max: 20, sort: params.myCustomSortArgument]])
+
+
+
+
+

Associations

+
+

The JSON API specification details how relationships should be rendered. The first way is through a relationships object described here. By default that is now relationships will be rendered in json views.

+
+
+

If you do not wish to render the relationships at all, the associations argument can be passed to render with the value of false.

+
+
+
+
model {
+    Book book
+}
+json jsonapi.render(book, [associations: false])
+
+
+
+

The specification also has a section that describes compound documents. If you want one or more of your relationships to be rendered in that manner, you can include the expand argument.

+
+
+
+
model {
+    Book book
+}
+json jsonapi.render(book, [expand: "author"]) //can also be a list of strings
+
+
+
+
+

Includes / Excludes

+
+

The JSON API implementation in Grails supports the same includes and excludes support as normal json views. Please see the section on rendering for details.

+
+
+
+

Identifier Rendering

+
+

Grails provides a way to customize the rendering of your domain class identifiers. To override the default behavior, register a bean that implements JsonApiIdRenderStrategy.

+
+
+
grails-app/conf/spring/resources.groovy
+
+
beans = {
+    jsonApiIdRenderStrategy(MyCustomImplementation)
+}
+
+
+
+
+
+
+

The JsonTemplateEngine

+
+
+

The JSON Views plugin registers a bean called jsonTemplateEngine of type JsonViewTemplateEngine.

+
+
+

This class is a regular Groovy TemplateEngine, and you can use the engine to render JSON views outside the scope of an HTTP request.

+
+
+

For example:

+
+
+
+
@Autowired
+JsonViewTemplateEngine templateEngine
+void myMethod() {
+	Template t = templateEngine.resolveTemplate('/book/show')
+	def writable = t.make(book: new Book(title:"The Stand"))
+	def sw = new StringWriter()
+	writable.writeTo( sw )
+	...
+}
+
+
+
+
+
+

Static Compilation

+
+
+

JSON views are statically compiled. You can disable static compilation if you prefer by setting grails.views.json.compileStatic:

+
+
+
+
grails:
+    views:
+        json:
+            compileStatic: false
+
+
+
+ + + + + +
+ + +If you disable static compilation rendering performance will suffer. +
+
+
+

For model variables you need to declare the types otherwise you will get a compilation error:

+
+
+
+
model {
+    Person person
+}
+json {
+    name person.name
+    age person.age
+}
+
+
+
+
+
+

Testing

+
+
+

Although generally testing can be done using functional tests via an HTTP client, the JSON views plugin also provides a trait which helps in writing either unit or integration tests.

+
+
+

To use the trait import the grails.plugin.json.view.test.JsonViewTest class and apply it to any Spock or JUnit test:

+
+
+
+
import grails.plugin.json.view.test.*
+import spock.lang.Specification
+class MySpec extends Specification implements JsonViewTest {
+    ...
+}
+
+
+
+

The trait provides a number of different render method implementations that can either render a JSON view found in grails-app/views or render an inline String. For example to render an inline template:

+
+
+
+
void "Test render a raw GSON view"() {
+    when:"A gson view is rendered"
+    JsonRenderResult result = render '''
+        model {
+            String person
+        }
+        json.person {
+            name person
+        }
+''', [person:"bob"] (1)
+
+    then:"The json is correct"
+    result.json.person.name == 'bob' (2)
+}
+
+
+
+ + + + + + + + + +
1Use the render method to return a JsonRenderResult passing in a String that is the inline template and a map that is the model
2Assert the parsed JSON, represented by the json property, is correct
+
+
+

To render an existing view or template use named arguments to specify an absolute path to either a template or a view:

+
+
+
+
when:"A gson view is rendered"
+def result = render(template: "/path/to/template", model:[age:10])
+
+then:"The json is correct"
+result.json.name == 'Fred'
+result.json.age == 10
+
+
+
+

If you are writing a unit test, and the model involves a domain class, you may need to add the domain class to the mappingContext object in order for it to be rendered correctly:

+
+
+
+
when:"A gson view is rendered for a domain class"
+mappingContext.addPersistentEntity(MyDomain)
+def result = render(template: "/path/to/template", model:[myDomain:MyDomain])
+
+then:"The json is correct"
+result.json.name == 'Fred'
+result.json.age == 10
+
+
+
+ + + + + +
+ + +Links generated by json views in a unit test may not match what they would normally generate in the standard environment. To fully test links, use a functional test. +
+
+
+

New Testing Framework

+
+

Since the release of json views, a new testing framework was released for Grails. A new trait has been developed that works with the new testing framework that is designed to replace the existing trait. The existing trait will be left as is for backwards compatibility.

+
+
+

The new trait works exactly the same way as the old one, however since the new trait is designed to work with the new framework, there are several benefits you can take advantage of. The first is configuration. In the old trait the application configuration was not included in the template engine, which had the potential to produce incorrect results. Other benefits include extensibility and features like @OnceBefore.

+
+
+

To get started, add the org.grails:views-json-testing-support:{version} dependency to your project and implement the JsonViewUnitTest trait in your test instead of JsonViewTest.

+
+
+ + + + + +
+ + +The new testing trait, like the testing framework, requires Spock. +
+
+
+
+
+
+

Plugin Support

+
+
+

Grails plugins as well as standard Gradle Java/Groovy projects can provide json views to your application.

+
+
+

Grails Plugins

+
+

Since JSON views are compiled all of a plugin’s views and templates are available for use in your applications.

+
+
+

The view resolution will look through all of the application’s configured plugins for views that match a particular name. By default, the views a plugin supplies should be stored in grails-app/views, just like applications.

+
+
+
+

Basic Libraries

+
+

The most common use case to provide views in a standard library is to provide global templates. Global templates are templates designed to render a given class as JSON. In order to provide views in a standard Gradle project, you should configure your own view compilation task.

+
+
+

Below is an example Gradle build that adds a compileViews task for templates located into src/main/gson:

+
+
+
+
buildscript {
+    repositories {
+        maven { url "https://repo.grails.org/grails/core" }
+    }
+    dependencies {
+        classpath "org.grails.plugins:views-gradle:3.2.3"
+    }
+}
+
+import grails.views.gradle.json.*
+
+apply plugin:"java"
+
+repositories {
+    maven { url "https://repo.grails.org/grails/core" }
+}
+
+dependencies {
+    compile "org.grails.plugins:views-json:3.2.3"
+    compileOnly "org.grails:grails-plugin-rest:3.1.7"
+    compileOnly "javax.servlet:javax.servlet-api:4.0.1"
+}
+
+task( compileViews, type:JsonViewCompilerTask ) {
+    source = project.file('src/main/gson')
+    destinationDir = project.file('build/classes/main')
+    packageName = ""
+    classpath = configurations.compileClasspath + configurations.runtimeClasspath
+}
+classes.dependsOn compileViews
+
+
+
+

Once this is in place any applications that includes this library will have access to the templates provided.

+
+
+

For example if you want to render all instances of type foo.bar.Birthday create a template called src/main/gson/foo/bar/_birthday.gson then compile the template and place the JAR on the classpath of your application.

+
+
+ + + + + +
+ + +See the GeoJSON templates for MongoDB for example of how it provides global templates for Mongo specific classes. +
+
+
+
+

Customizing the Compile Task

+
+

Unless otherwise configured, the project name of the plugin (the gradle project.name) is used as the packageName when compiling JSON views.

+
+
+

In Gradle project.name is generally calculated from the current directory. That means that if there is mismatch between the current directory and your plugin name view resolution from a plugin could fail.

+
+
+

For example consider a plugin named FooBarGrailsPlugin, in this case Grails will search for views that match the plugin name foo-bar. However, if the directory where the plugin is located is called fooBar instead of foo-bar then view resolution will fail and the view will not be found when the plugin is installed into an application.

+
+
+

To resolve this issue you can customize the compileGsonViews task in the plugin’s build.gradle

+
+
+
+
compileGsonViews {
+    packageName = "foo-bar"
+}
+
+
+
+

By setting the packageName property to correctly match the convention of the plugin named (FooBarGrailsPlugin maps to foo-bar) view resolution will succeed.

+
+
+
+
+
+

Configuration

+
+
+

JSON views configuration can be altered within grails-app/conf/application.yml. Any of the properties within the JsonViewConfiguration interface can be set. The json view configuration extends GenericViewConfiguration, therefore any properties in that interface can be set as well.

+
+
+
+
For example:
+
+
+
+
+
grails:
+    views:
+        json:
+            compileStatic: true
+            cache: true
+            ...
+
+
+
+

Alternatively you can register a new JsonViewConfiguration bean using the bean name jsonViewConfiguration in grails-app/conf/resources.groovy.

+
+
+

The same settings in grails-app/conf/application.yml will also be used by the Gradle plugin for production compilation.

+
+
+

The Gradle plugin compiles views using a forked compiler. You can configure the forked compilation task in Gradle as follows:

+
+
+
+
compileGsonViews {
+    compileOptions.forkOptions.memoryMaximumSize = '512mb'
+}
+
+
+
+

See the API for GroovyForkOptions for more information.

+
+
+

Changing the view base class

+
+

All JSON views subclass the JsonViewTemplate class by default.

+
+
+

You can however change the subclass (which should be a subclass of JsonViewTemplate) using configuration:

+
+
+
+
grails:
+    views:
+        json:
+            compileStatic: true
+            baseTemplateClass: com.example.MyCustomJsonViewTemplate
+
+
+
+
+

Adding New Helper Methods via Traits

+
+

Alternatively, rather than modifying the base class, you can instead just add new methods via traits.

+
+
+

For example the HttpView uses the Enhances annotation to add the page object to all views:

+
+
+
+
import grails.artefact.Enhances
+import grails.views.Views
+
+@Enhances(Views.TYPE)
+trait HttpView {
+
+    /**
+     * @return The response object
+     */
+    Response response
+    ...
+}
+
+
+
+

The result is all JSON views have a response object that can be used to control the HTTP response:

+
+
+
+
response.header "Token", "foo"
+
+
+
+ + + + + +
+ + +The trait cannot be defined in the same project as you are compilation as it needs to be on the classpath of the project you are compiling. You will need to create a Grails plugin and use a multi-project build in this scenario. +
+
+
+
+

Default Mime Types

+
+

The mime types that will be accepted by default for JSON view rendering is configurable.

+
+
+
+
grails:
+    views:
+        json:
+            mimeTypes:
+              - application/json
+              - application/hal+json
+
+
+
+
+

Unicode Escaping

+
+

By default, unicode characters will not be escaped. If you would like unicode characters to be escaped in your output, set the following configuration.

+
+
+
+
grails:
+    views:
+        json:
+            generator:
+                escapeUnicode: true
+
+
+
+
+

Default Date Format

+
+

The default format for java.util.Date can be configured.

+
+
+
+
grails:
+    views:
+        json:
+            generator:
+                dateFormat: "yyyy-MM-dd'T'HH:mm:ss'Z'"
+
+
+
+

In addition, the default locale can also be specified.

+
+
+
+
grails:
+    views:
+        json:
+            generator:
+                locale: "en/US"
+
+
+
+
+

Default Time Zone

+
+

The default time zone can be configured. The value here will be passed to TimeZone.getTimeZone(...)

+
+
+
+
grails:
+    views:
+        json:
+            generator:
+                timeZone: "GMT"
+
+
+
+
+
+
+

Custom Converters

+
+
+

It is possible to register custom converters to change how a given class is rendered with json views. To do so, create a class that implements Converter. Then you must register the class in src/main/resources/META-INF/services/grails.plugin.json.builder.JsonGenerator$Converter.

+
+
+
+
package foo
+
+class MyConverter implements JsonGenerator.Converter {
+
+    @Override
+    boolean handles(Class<?> type) {
+        CustomClass.isAssignableFrom(type)
+    }
+
+    @Override
+    Object convert(Object value, String key) {
+        ((CustomClass)value).name
+    }
+}
+
+
+class CustomClass {
+    String name
+}
+
+
+
+

Because plugins could potentially provide converters, you can also determine the order by implementing the Ordered interface in your converter.

+
+
+
src/main/resources/META-INF/services/grails.plugin.json.builder.JsonGenerator$Converter
+
+
foo.MyCustomConverter
+
+
+
+ + + + + +
+ + +If you have multiple classes to register, put each one on it’s own line +
+
+
+
+
+

IntelliJ Support

+
+
+

When opening .gson files in Intellij they should be opened with the regular Groovy editor.

+
+
+

The plugin includes an IntelliJ GDSL file that provides code completion when using IntelliJ IDEA.

+
+
+

Intellij GDSL is a way to describe the available methods and properties so that code completion is available to the developer when opening .gson files.

+
+
+

The GDSL file is generally kept up-to-date with the codebase, however if any variation is spotted please raise an issue.

+
+
+
+
+

Debugging Views

+
+
+

Generally views should be kept simple and if you arrive to the point where you need to debug a view you probably have too much logic in the view that would be better off handled by the controller prior to supplying the model.

+
+
+

Nevertheless here are a few view debugging tips to help identify problems in the view.

+
+
+

Introspecting the Model

+
+

Every JSON view is a Groovy script and like any Groovy script the model is defined in a binding variable. Therefore you can easily find out the model at any time by either logging or printing the binding variables:

+
+
+
+
model {
+    Book book
+}
+// use the log variable
+log.debug "Model is $binding.variables"
+// use system out
+System.out.println "Model is $binding.variables"
+json g.render(book)
+
+
+
+ + + + + +
+ + +If you using the log variable then you will need to enabling logging for the grails.views package in grails-app/conf/logback.groovy +
+
+
+
+

Connecting a Debugger

+
+

Some IDEs like Intellij IDE allow you to set break points and step debug within the view itself. As mentioned previously you shouldn’t arrive to this point and if you do you have too much logic in your view, but if you do need it the feature is there.

+
+
+
+
+
+ + + \ No newline at end of file diff --git a/3.2.3/json/installation.html b/3.2.3/json/installation.html new file mode 100644 index 000000000..e4adceafc --- /dev/null +++ b/3.2.3/json/installation.html @@ -0,0 +1,499 @@ + + + + + + + +Installation + + + + + + +
+
+

To activate JSON views, add the following dependency to the dependencies block of your build.gradle:

+
+
+
+
compile "org.grails.plugins:views-json:3.2.3"
+
+
+
+

If you are also using MongoDB you may want to add the views-json-templates dependency too which includes support for GeoJSON:

+
+
+
+
compile "org.grails.plugins:views-json-templates:3.2.3"
+
+
+
+

To enable Gradle compilation of JSON views for production environment add the following to the buildscript dependencies block:

+
+
+
+
buildscript {
+    ...
+    dependencies {
+        ...
+        classpath "org.grails.plugins:views-gradle:3.2.3"
+    }
+}
+
+
+
+

Then apply the org.grails.plugins.views-json Gradle plugin after any Grails core gradle plugins:

+
+
+
+
...
+apply plugin: "org.grails.grails-web"
+apply plugin: "org.grails.plugins.views-json"
+
+
+
+

This will add a compileGsonViews task to Gradle that is executed when producing a JAR or WAR file.

+
+
+ + + \ No newline at end of file diff --git a/3.2.3/json/intellij.html b/3.2.3/json/intellij.html new file mode 100644 index 000000000..d468daa67 --- /dev/null +++ b/3.2.3/json/intellij.html @@ -0,0 +1,468 @@ + + + + + + + +IntelliJ Support + + + + + + +
+
+

When opening .gson files in Intellij they should be opened with the regular Groovy editor.

+
+
+

The plugin includes an IntelliJ GDSL file that provides code completion when using IntelliJ IDEA.

+
+
+

Intellij GDSL is a way to describe the available methods and properties so that code completion is available to the developer when opening .gson files.

+
+
+

The GDSL file is generally kept up-to-date with the codebase, however if any variation is spotted please raise an issue.

+
+
+ + + \ No newline at end of file diff --git a/3.2.3/json/introduction.html b/3.2.3/json/introduction.html new file mode 100644 index 000000000..087b93bf7 --- /dev/null +++ b/3.2.3/json/introduction.html @@ -0,0 +1,515 @@ + + + + + + + +Introduction + + + + + + +
+
+

JSON views are written in Groovy, end with the file extension gson and reside in the grails-app/views directory. They provide a DSL for producing output in the JSON format. A hello world example can be seen below:

+
+
+
grails-app/views/hello.gson
+
+
json.message {
+    hello "world"
+}
+
+
+
+

The above JSON view results in the output:

+
+
+
+
{"message":{ "hello":"world"}}
+
+
+
+

The json variable is an instance of StreamingJsonBuilder. See the documentation in the Groovy user guide for more information on StreamingJsonBuilder.

+
+
+

More example usages:

+
+
+
+
json(1,2,3) == "[1,2,3]"
+json { name "Bob" } == '{"name":"Bob"}'
+json([1,2,3]) { n it } == '[{"n":1},{"n":2},{"n":3}]'
+
+
+
+

You can specify a model to view in one of two ways. Either with a model block:

+
+
+
grails-app/views/hello.gson
+
+
model {
+    String message
+}
+json.message {
+    hello message
+}
+
+
+
+

Or with the @Field transformation provided by Groovy:

+
+
+
grails-app/views/hello.gson
+
+
import groovy.transform.Field
+@Field String message
+json.message {
+    hello message
+}
+
+
+
+ + + \ No newline at end of file diff --git a/3.2.3/json/jsonapi.html b/3.2.3/json/jsonapi.html new file mode 100644 index 000000000..1d0f07194 --- /dev/null +++ b/3.2.3/json/jsonapi.html @@ -0,0 +1,778 @@ + + + + + + + +JSON API Support + + + + + + +
+
+
+
+

JSON API is a standard format for representing JSON.

+
+
+

The JSON views plugin for Grails provides JSON API support out-of-the-box. All JSON views have access to the jsonapi instance which implements JsonApiViewHelper.

+
+
+

Grails views makes a best effort to conform to the JSON API standard, however that only applies to the format of the data. The specification makes many assertions about response codes, url conventions, and other server related concepts that are overreaching.

+
+
+

The JSON API support in Grails also only applies to domain classes. Because the specification relies on concepts of relationships and identifiers, there is no clear way to determine how those concepts would apply to conventional Groovy classes. As a result, normal Groovy classes are not supported.

+
+
+

The simplest example of using JSON API simply passes a domain class to the render method of the jsonapi object.

+
+
+

For example:

+
+
+
+
model {
+    Book book
+}
+json jsonapi.render(book)
+
+
+
+

In the example where Book looks like the following:

+
+
+
+
class Book {
+    String title
+    Author author
+}
+
+
+
+

This is what an example Book instance rendered with JSON API might look like.

+
+
+
+
{
+  "data": {
+    "type": "book",
+    "id": "3",
+    "attributes": {
+      "title": "The Return of the King"
+    },
+    "relationships": {
+      "author": {
+        "links": {
+          "self": "/author/9"
+        },
+        "data": {
+          "type": "author",
+          "id": "9"
+        }
+      }
+    }
+  },
+  "links": {
+    "self": "http://localhost:8080/book/3"
+  }
+}
+
+
+
+
+
+

JSON API Object

+
+
+

To include the JSON API Object in the response, include a jsonApiObject argument to the render method.

+
+
+
+
model {
+    Book book
+}
+json jsonapi.render(book, [jsonApiObject: true])
+
+
+
+

The response will contain "jsonapi":{"version":"1.0"} as the first key in the resulting object.

+
+
+
+
+

Meta Object

+
+
+

To add metadata to your response, the meta argument can be passed to render with the value being the object that should be rendered. If this functionality is used in addition to jsonApiObject: true, the metadata will be rendered as the "meta" property of the "jsonapi" object.

+
+
+
+
model {
+    Book book
+}
+json jsonapi.render(book, [meta: [name: "Metadata Information"]])
+
+
+
+

The response will contain "meta":{"name":"Metadata Information"} as the first key in the resulting object.

+
+
+
+
+

Rendering Errors

+
+
+

The JSON API specification has instructions on how to render errors. In the case of the Grails implementation, this applies to both exceptions and validation errors.

+
+
+

Exceptions

+
+

If an exception is passed to the render method, it will be rendered within the specification.

+
+
+

In the example of an exception new RuntimeException("oops!"), the following will be rendered:

+
+
+
+
{
+  "errors": [
+    {
+      "status": 500,
+      "title": "java.lang.RuntimeException",
+      "detail": "oops!",
+      "source": {
+        "stacktrace": [
+          //An array of information relating to the stacktrace
+        ]
+      }
+    }
+  ]
+}
+
+
+
+
+

Validation Errors

+
+

In the case of validation errors, the response will look like the following when a name property fails the blank constraint:

+
+
+
+
{
+  "errors": [
+    {
+      "code": "blank",
+      "detail": "Property [name] of class [class com.foo.Bar] cannot be blank",
+      "source": {
+        "object": "com.foo.Bar",
+        "field": "name",
+        "rejectedValue": "",
+        "bindingError": false
+      }
+    }
+  ]
+}
+
+
+
+
+
+
+ +
+
+

In general, links for relationships will be provided when the relationship has a value.

+
+
+

Example output for a has one relationship where the value is null:

+
+
+
+
"captain": {
+  "data": null
+}
+
+
+
+

And when the value is not null:

+
+
+
+
"author": {
+  "links": {
+    "self": "/author/9"
+  },
+  "data": {
+    "type": "author",
+    "id": "9"
+  }
+}
+
+
+
+

Currently links are not supported in the case of to many relationships.

+
+
+
+
+

Pagination

+
+
+

The JSON API specification has a section which explains pagination. The Grails implementation follows that specification as it is written.

+
+
+

To enable pagination links in your output you must be rendering a collection and also include some arguments in addition to the collection being rendered. There are two required arguments: total and resource. The default offset is 0 and max is 10.

+
+
+
+
model {
+    List<Book> books
+    Integer bookTotal
+}
+json jsonapi.render(books, [pagination: [total: bookTotal, resource: Book]])
+
+
+
+

Example links output if bookTotal == 20:

+
+
+
+
"links": {
+  "self": "/books",
+  "first": "http://localhost:8080/books?offset=0&max=10",
+  "next": "http://localhost:8080/books?offset=10&max=10",
+  "last": "http://localhost:8080/books?offset=10&max=10"
+}
+
+
+
+

By default the values for offset, sort, max, and order will come from the parameters with the same names. You can override their values by passing the corresponding argument in the pagination Map.

+
+
+
+
model {
+    List<Book> books
+    Integer bookTotal
+}
+json jsonapi.render(books, [pagination: [total: bookTotal, resource: Book, max: 20, sort: params.myCustomSortArgument]])
+
+
+
+
+
+

Associations

+
+
+

The JSON API specification details how relationships should be rendered. The first way is through a relationships object described here. By default that is now relationships will be rendered in json views.

+
+
+

If you do not wish to render the relationships at all, the associations argument can be passed to render with the value of false.

+
+
+
+
model {
+    Book book
+}
+json jsonapi.render(book, [associations: false])
+
+
+
+

The specification also has a section that describes compound documents. If you want one or more of your relationships to be rendered in that manner, you can include the expand argument.

+
+
+
+
model {
+    Book book
+}
+json jsonapi.render(book, [expand: "author"]) //can also be a list of strings
+
+
+
+
+
+

Includes / Excludes

+
+
+

The JSON API implementation in Grails supports the same includes and excludes support as normal json views. Please see the section on rendering for details.

+
+
+
+
+

Identifier Rendering

+
+
+

Grails provides a way to customize the rendering of your domain class identifiers. To override the default behavior, register a bean that implements JsonApiIdRenderStrategy.

+
+
+
grails-app/conf/spring/resources.groovy
+
+
beans = {
+    jsonApiIdRenderStrategy(MyCustomImplementation)
+}
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/3.2.3/json/modelNaming.html b/3.2.3/json/modelNaming.html new file mode 100644 index 000000000..4457ee5ef --- /dev/null +++ b/3.2.3/json/modelNaming.html @@ -0,0 +1,710 @@ + + + + + + + +Model Naming + + + + + + +
+
+
+
+

Grails Framework supports a convention for the model names in your JSON views. If the convention does not meet your needs, model variables can be explicitly defined.

+
+
+ + + + + +
+ + +Some model names are reserved since there are properties of the same name injected into the view: +locale, response, request, page, controllerNamespace, controllerName, actionName, config, generator, json +
+
+
+
+
+

Explicit Model Naming

+
+
+

Given a view:

+
+
+
grails-app/views/hello/index.gson
+
+
model {
+    String message
+}
+json.message {
+    hello message
+}
+
+
+
+

Then the controller has to specify the name to be used in the view:

+
+
+
grails-app/controllers/HelloController.groovy
+
+
def index() {
+    respond(message: "Hello World")
+    //or [message: "Hello World"]
+}
+
+
+
+

When using a template:

+
+
+
grails-app/views/hello/_msg.gson
+
+
model {
+    String message
+}
+json.message {
+    hello message
+}
+
+
+
+

In the view you can use the tmpl namespace:

+
+
+
+
json {
+    message tmpl.msg([message: message])
+    // or g.render(template:'msg', model:[message: message])
+    // or g.render(template:'msg', model: message, var:'message')
+}
+
+
+
+

Using collections:

+
+
+
+
model {
+    List<String> messages
+}
+json {
+    messages tmpl.msg('message', messages)
+    // or g.render(template:'msg', collection: messages, var: 'message')
+}
+
+
+
+
+
+

Model By Convention

+
+
+

Property Type

+
+

When rendering a non iterable object, the property name of the type is used when a name is not specified.

+
+
+
grails-app/views/hello/index.gson
+
+
model {
+    String string
+}
+json.message {
+    hello string
+}
+
+
+
+

The variable can be passed in directly to respond.

+
+
+
grails-app/controllers/HelloController.groovy
+
+
def index() {
+    respond("Hello World")
+}
+
+
+
+

This also applies when rendering templates with tmpl.

+
+
+
grails-app/views/hello/_msg.gson
+
+
model {
+    String string
+}
+json.message {
+    hello string
+}
+
+
+
+
grails-app/views/hello/index.gson
+
+
model {
+    String someString
+}
+json tmpl.msg(someString)
+
+
+
+

If a collection is rendered, the property name of the component type is appended with the property name of the collection type. The component type is based on the first item in the list.

+
+
+

List<String>stringList

+
+
+

Set<String>stringSet

+
+
+

Bag<String>stringCollection

+
+
+

If the collection is empty, emptyCollection will be used as the default model name. This is due to not being able to inspect the first object’s type.

+
+
+
grails-app/views/hello/index.gson
+
+
model {
+    String stringList
+}
+json {
+    strings stringList
+}
+
+
+
+

The variable can be passed in directly to respond.

+
+
+
grails-app/controllers/HelloController.groovy
+
+
def index() {
+    respond(["Hello", "World"])
+}
+
+
+
+ + + + + +
+ + +The component+collection convention does not apply when rendering collections with tmpl inside a view. +
+
+
+
+

Template Name

+
+

When using a template, unless specified, the model name is based on the template name.

+
+
+

Given the following template:

+
+
+
grails-app/views/hello/_msg.gson
+
+
model {
+    String msg // or String string
+}
+json.message {
+    hello msg
+}
+
+
+
+

To render a single message from another view using the template:

+
+
+
grails-app/views/hello/index.gson
+
+
json.message tmpl.msg(message)
+
+
+
+

To render a collection of messages from another view using the template:

+
+
+
grails-app/views/hello/index.gson
+
+
model {
+    List<String> stringList
+}
+json {
+    messages tmpl.msg(stringList)
+}
+
+
+
+

In both cases the convention of the variable name matching the template name is used.

+
+
+
+
+
+ + + \ No newline at end of file diff --git a/3.2.3/json/pluginSupport.html b/3.2.3/json/pluginSupport.html new file mode 100644 index 000000000..f2fde0ee9 --- /dev/null +++ b/3.2.3/json/pluginSupport.html @@ -0,0 +1,572 @@ + + + + + + + +Plugin Support + + + + + + +
+
+
+
+

Grails plugins as well as standard Gradle Java/Groovy projects can provide json views to your application.

+
+
+
+
+

Grails Plugins

+
+
+

Since JSON views are compiled all of a plugin’s views and templates are available for use in your applications.

+
+
+

The view resolution will look through all of the application’s configured plugins for views that match a particular name. By default, the views a plugin supplies should be stored in grails-app/views, just like applications.

+
+
+
+
+

Basic Libraries

+
+
+

The most common use case to provide views in a standard library is to provide global templates. Global templates are templates designed to render a given class as JSON. In order to provide views in a standard Gradle project, you should configure your own view compilation task.

+
+
+

Below is an example Gradle build that adds a compileViews task for templates located into src/main/gson:

+
+
+
+
buildscript {
+    repositories {
+        maven { url "https://repo.grails.org/grails/core" }
+    }
+    dependencies {
+        classpath "org.grails.plugins:views-gradle:3.2.3"
+    }
+}
+
+import grails.views.gradle.json.*
+
+apply plugin:"java"
+
+repositories {
+    maven { url "https://repo.grails.org/grails/core" }
+}
+
+dependencies {
+    compile "org.grails.plugins:views-json:3.2.3"
+    compileOnly "org.grails:grails-plugin-rest:3.1.7"
+    compileOnly "javax.servlet:javax.servlet-api:4.0.1"
+}
+
+task( compileViews, type:JsonViewCompilerTask ) {
+    source = project.file('src/main/gson')
+    destinationDir = project.file('build/classes/main')
+    packageName = ""
+    classpath = configurations.compileClasspath + configurations.runtimeClasspath
+}
+classes.dependsOn compileViews
+
+
+
+

Once this is in place any applications that includes this library will have access to the templates provided.

+
+
+

For example if you want to render all instances of type foo.bar.Birthday create a template called src/main/gson/foo/bar/_birthday.gson then compile the template and place the JAR on the classpath of your application.

+
+
+ + + + + +
+ + +See the GeoJSON templates for MongoDB for example of how it provides global templates for Mongo specific classes. +
+
+
+
+
+

Customizing the Compile Task

+
+
+

Unless otherwise configured, the project name of the plugin (the gradle project.name) is used as the packageName when compiling JSON views.

+
+
+

In Gradle project.name is generally calculated from the current directory. That means that if there is mismatch between the current directory and your plugin name view resolution from a plugin could fail.

+
+
+

For example consider a plugin named FooBarGrailsPlugin, in this case Grails will search for views that match the plugin name foo-bar. However, if the directory where the plugin is located is called fooBar instead of foo-bar then view resolution will fail and the view will not be found when the plugin is installed into an application.

+
+
+

To resolve this issue you can customize the compileGsonViews task in the plugin’s build.gradle

+
+
+
+
compileGsonViews {
+    packageName = "foo-bar"
+}
+
+
+
+

By setting the packageName property to correctly match the convention of the plugin named (FooBarGrailsPlugin maps to foo-bar) view resolution will succeed.

+
+
+
+
+ + + \ No newline at end of file diff --git a/3.2.3/json/rendering.html b/3.2.3/json/rendering.html new file mode 100644 index 000000000..3703770c4 --- /dev/null +++ b/3.2.3/json/rendering.html @@ -0,0 +1,638 @@ + + + + + + + +Rendering Domain Classes + + + + + + +
+
+

Basics of Domain Class Rendering

+
+
+

Typically your model may involve one or many domain instances. JSON views provide a render method for rendering these.

+
+
+

For example given the following domain class:

+
+
+
+
class Book {
+    String title
+}
+
+
+
+

And the following template:

+
+
+
+
model {
+    Book book
+}
+json g.render(book)
+
+
+
+

The resulting output is:

+
+
+
+
{"id":1,"title":"The Stand"}
+
+
+
+

You can customize the rendering by including or excluding properties:

+
+
+
+
json g.render(book, [includes:['title']])
+
+
+
+

Or by providing a closure to provide additional JSON output:

+
+
+
+
json g.render(book) {
+    pages 1000
+}
+
+
+
+

Or combine the two approaches:

+
+
+
+
json g.render(book, [includes:['title']]) {
+    pages 1000
+}
+
+
+
+
+
+

Deep Rendering of Domain Classes

+
+
+

Typically the g.render(..) method will only render objects one level deep. In other words if you have a domain class such as:

+
+
+
+
class Book {
+    String title
+    Author author
+}
+
+
+
+

The resulting output will be something like:

+
+
+
+
{"id":1,"title":"The Stand","author":{id:1}}
+
+
+
+

If you wish for the author to be included as part of the rendering, there are two requirements, first you must make sure the association is initialized.

+
+
+

If the render method encounters a proxy, it will not traverse into the relationship to avoid N+1 query performance problems.

+
+
+ + + + + +
+ + +The same applies to one-to-many collection associations. If the association has not been initialized the render method will not traverse through the collection! +
+
+
+

So you must make sure your query uses a join:

+
+
+
+
Book.findByTitle("The Stand", [fetch:[author:"join"]])
+
+
+
+

Secondly when calling the render method you should pass the deep argument:

+
+
+
+
json g.render(book, [deep:true])
+
+
+
+

Alternatively, to only expand a single association you can use the expand argument:

+
+
+
+
json g.render(book, [expand:['author']])
+
+
+
+ + + + + +
+ + +request parameters can also be used to expand associations (eg. ?expand=author), if you do not want to allow this, then use includes or excludes to include only the properties you want. +
+
+
+

Finally, if you prefer to handle the rendering yourself you can do by excluding the property:

+
+
+
+
json g.render(book, [excludes:['author']]) {
+    author {
+        name book.author.name
+    }
+}
+
+
+
+
+
+

Domain Class Rendering and Templates

+
+
+

An alternative to the default behaviour of the render method is to rely on templates.

+
+
+

In other words if you create a /author/_author.gson template and then use the g.render method on an instance of book:

+
+
+
+
json g.render(book)
+
+
+
+

Whenever the author association is encountered the g.render method will automatically render the /author/_author.gson template instead.

+
+
+
+
+ + + \ No newline at end of file diff --git a/3.2.3/json/staticCompilation.html b/3.2.3/json/staticCompilation.html new file mode 100644 index 000000000..282a5df3b --- /dev/null +++ b/3.2.3/json/staticCompilation.html @@ -0,0 +1,493 @@ + + + + + + + +Static Compilation + + + + + + +
+
+

JSON views are statically compiled. You can disable static compilation if you prefer by setting grails.views.json.compileStatic:

+
+
+
+
grails:
+    views:
+        json:
+            compileStatic: false
+
+
+
+ + + + + +
+ + +If you disable static compilation rendering performance will suffer. +
+
+
+

For model variables you need to declare the types otherwise you will get a compilation error:

+
+
+
+
model {
+    Person person
+}
+json {
+    name person.name
+    age person.age
+}
+
+
+
+ + + \ No newline at end of file diff --git a/3.2.3/json/templateEngine.html b/3.2.3/json/templateEngine.html new file mode 100644 index 000000000..f54b6e472 --- /dev/null +++ b/3.2.3/json/templateEngine.html @@ -0,0 +1,478 @@ + + + + + + + +The JsonTemplateEngine + + + + + + +
+
+

The JSON Views plugin registers a bean called jsonTemplateEngine of type JsonViewTemplateEngine.

+
+
+

This class is a regular Groovy TemplateEngine, and you can use the engine to render JSON views outside the scope of an HTTP request.

+
+
+

For example:

+
+
+
+
@Autowired
+JsonViewTemplateEngine templateEngine
+void myMethod() {
+	Template t = templateEngine.resolveTemplate('/book/show')
+	def writable = t.make(book: new Book(title:"The Stand"))
+	def sw = new StringWriter()
+	writable.writeTo( sw )
+	...
+}
+
+
+
+ + + \ No newline at end of file diff --git a/3.2.3/json/templates.html b/3.2.3/json/templates.html new file mode 100644 index 000000000..3d1ae7e1d --- /dev/null +++ b/3.2.3/json/templates.html @@ -0,0 +1,735 @@ + + + + + + + +Templates + + + + + + +
+
+

Template Basics

+
+
+

You can define templates starting with underscore _. For example given the following template called _person.gson:

+
+
+
grails-app/views/person/_person.gson
+
+
model {
+    Person person
+}
+json {
+    name person.name
+    age person.age
+}
+
+
+
+

You can render the template with the g.render method:

+
+
+
grails-app/views/person/show.gson
+
+
model {
+    Person person
+}
+json g.render(template:"person", model:[person:person])
+
+
+
+

The above assumes the view is in the same directory as the template. If this is not the case you may need to use a relative URI to the template:

+
+
+
grails-app/views/family/show.gson
+
+
model {
+    Person person
+}
+json g.render(template:"/person/person", model:[person:person])
+
+
+
+
+
+

Template Namespace

+
+
+

The previous example can be simplified using the template namespace:

+
+
+
grails-app/views/person/show.gson
+
+
model {
+    Person person
+}
+json tmpl.person(person)
+
+
+
+

In this example, the name of the method call (person in this case) is used to dictate which template to render.

+
+
+

The argument to the template becomes the model. The name of the model variable is the same as the template name. If you wish to alter this you can pass a map instead:

+
+
+
grails-app/views/person/show.gson
+
+
model {
+    Person person
+}
+json tmpl.person(individual:person)
+
+
+
+

In the above example the model variable passed to the _person.gson template is called individual.

+
+
+

This technique may also be used when you want to render a template using a relative path:

+
+
+
grails-app/views/person/show.gson
+
+
model {
+    Person person
+}
+json tmpl.'/person/person'(person:person)
+
+
+
+

The template namespace even accepts a collection (or any Iterable object):

+
+
+
grails-app/views/person/show.gson
+
+
model {
+    List<Person> people = []
+}
+json tmpl.person(people)
+
+
+
+

In this case the output is a JSON array. For example:

+
+
+
+
    [{"name":"Fred",age:10},{"name":"Bob",age:12}]
+
+
+
+

When rendering an Iterable, you can also specify the model name:

+
+
+
grails-app/views/person/show.gson
+
+
model {
+    List<Person> people = []
+}
+json tmpl.person("owner", people)
+
+
+
+

The person template would have a field defined: Person owner

+
+
+

If you need additional data that will be static over each iteration of the template, you can also pass in a model:

+
+
+
grails-app/views/person/show.gson
+
+
model {
+    List<Person> people = []
+}
+json tmpl.person(people, [relationship: "Father"])
+
+
+
+

The person template could have a field defined: String relationship

+
+
+

By passing in a collection the plugin will iterate over each element on the collection and render the template as a JSON array. If you do not want this to happen then use the variation of the method that takes a map instead:

+
+
+
grails-app/views/person/show.gson
+
+
model {
+    List<Person> people = []
+}
+json tmpl.person(people:people)
+
+
+
+
+
+

More Ways to Render Templates

+
+
+

The g.render method is flexible, you can render templates in many forms:

+
+
+
+
model {
+    Family family
+}
+json {
+    name family.father.name
+    age family.father.age
+    oldestChild g.render(template:"person", model:[person: family.children.max { Person p -> p.age } ])
+    children g.render(template:"person", collection: family.children, var:'person')
+}
+
+
+
+

However, most of these use cases are more concise with the template namespace:

+
+
+
+
model {
+    Family family
+}
+json {
+    name family.father.name
+    age family.father.age
+    oldestChild tmpl.person( family.children.max { Person p -> p.age } ] )
+    children tmpl.person( family.children )
+}
+
+
+
+
+
+

Template Inheritance

+
+
+

JSON templates can inherit from a parent template. For example consider the following parent template:

+
+
+
grails-app/views/_parent.gson
+
+
model {
+    Object object
+}
+json {
+    hal.links(object)
+    version "1.0"
+}
+
+
+
+

A child template can inherit from the above template by using the inherits method:

+
+
+
grails-app/views/_person.gson
+
+
inherits template:"parent"
+model {
+    Person person
+}
+json {
+    name person.name
+}
+
+
+
+

The JSON from the parent and the child template will be combined so that the output is:

+
+
+
+
 {
+   "_links": {
+     "self": {
+       "href": "http://localhost:8080/person/1",
+       "hreflang": "en",
+       "type": "application/hal+json"
+     }
+   },
+   "version": "1.0",
+   "name": "Fred"
+ }
+
+
+
+

The parent template’s model will be formulated from the child templates model and the super class name. For example if the model is Person person where Person extends from Object then the final model passed to the parent template will look like:

+
+
+
+
[person:person, object:person]
+
+
+
+

If the Person class extended from a class called Mammal then the model passed to the parent would be:

+
+
+
+
[person:person, mammal:person]
+
+
+
+

This allows you to design your templates around object inheritance.

+
+
+

You can customize the model passed to the parent template using the model argument:

+
+
+
+
inherits template:"parent", model:[person:person]
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/3.2.3/json/testing.html b/3.2.3/json/testing.html new file mode 100644 index 000000000..47adf0f76 --- /dev/null +++ b/3.2.3/json/testing.html @@ -0,0 +1,579 @@ + + + + + + + +Testing + + + + + + +
+
+
+
+

Although generally testing can be done using functional tests via an HTTP client, the JSON views plugin also provides a trait which helps in writing either unit or integration tests.

+
+
+

To use the trait import the grails.plugin.json.view.test.JsonViewTest class and apply it to any Spock or JUnit test:

+
+
+
+
import grails.plugin.json.view.test.*
+import spock.lang.Specification
+class MySpec extends Specification implements JsonViewTest {
+    ...
+}
+
+
+
+

The trait provides a number of different render method implementations that can either render a JSON view found in grails-app/views or render an inline String. For example to render an inline template:

+
+
+
+
void "Test render a raw GSON view"() {
+    when:"A gson view is rendered"
+    JsonRenderResult result = render '''
+        model {
+            String person
+        }
+        json.person {
+            name person
+        }
+''', [person:"bob"] (1)
+
+    then:"The json is correct"
+    result.json.person.name == 'bob' (2)
+}
+
+
+
+ + + + + + + + + +
1Use the render method to return a JsonRenderResult passing in a String that is the inline template and a map that is the model
2Assert the parsed JSON, represented by the json property, is correct
+
+
+

To render an existing view or template use named arguments to specify an absolute path to either a template or a view:

+
+
+
+
when:"A gson view is rendered"
+def result = render(template: "/path/to/template", model:[age:10])
+
+then:"The json is correct"
+result.json.name == 'Fred'
+result.json.age == 10
+
+
+
+

If you are writing a unit test, and the model involves a domain class, you may need to add the domain class to the mappingContext object in order for it to be rendered correctly:

+
+
+
+
when:"A gson view is rendered for a domain class"
+mappingContext.addPersistentEntity(MyDomain)
+def result = render(template: "/path/to/template", model:[myDomain:MyDomain])
+
+then:"The json is correct"
+result.json.name == 'Fred'
+result.json.age == 10
+
+
+
+ + + + + +
+ + +Links generated by json views in a unit test may not match what they would normally generate in the standard environment. To fully test links, use a functional test. +
+
+
+
+
+

New Testing Framework

+
+
+

Since the release of json views, a new testing framework was released for Grails. A new trait has been developed that works with the new testing framework that is designed to replace the existing trait. The existing trait will be left as is for backwards compatibility.

+
+
+

The new trait works exactly the same way as the old one, however since the new trait is designed to work with the new framework, there are several benefits you can take advantage of. The first is configuration. In the old trait the application configuration was not included in the template engine, which had the potential to produce incorrect results. Other benefits include extensibility and features like @OnceBefore.

+
+
+

To get started, add the org.grails:views-json-testing-support:{version} dependency to your project and implement the JsonViewUnitTest trait in your test instead of JsonViewTest.

+
+
+ + + + + +
+ + +The new testing trait, like the testing framework, requires Spock. +
+
+
+
+
+ + + \ No newline at end of file diff --git a/3.2.3/json/viewApi.html b/3.2.3/json/viewApi.html new file mode 100644 index 000000000..2d412f5be --- /dev/null +++ b/3.2.3/json/viewApi.html @@ -0,0 +1,670 @@ + + + + + + + +JSON View API + + + + + + +
+
+
+
+

All JSON views subclass the JsonViewTemplate class by default.

+
+
+

The JsonViewTemplate superclass implements the JsonView trait which in turn extends the the GrailsView trait.

+
+
+

Thanks to these traits several methods and properties are available to JSON views that can be used to accomplish different tasks.

+
+
+
+
+ +
+
+

Links can be generated using the g.link(..) method:

+
+
+
+
json.person {
+    name "bob"
+    homepage g.link(controller:"person", id:"bob")
+}
+
+
+
+

The g.link method is similar to the equivalent tag in GSP and allows you to easily create links to other controllers.

+
+
+
+
+

Altering the Response Headers

+
+
+

To customize content types and headers use the response object defined by the HttpView trait:

+
+
+
+
response.contentType "application/hal+json"
+response.header "Token", "foo"
+json.person {
+    name "bob"
+}
+
+
+
+

The HttpView trait defines a variety of methods for inspecting the request and altering the response.

+
+
+ + + + + +
+ + +The methods available are only a subset of the methods available via the HttpServletRequest and HttpServletResponse objects, this is by design as view logic should be limited and logic performed in the controller instead. +
+
+
+
+
+

Accessing the Request

+
+
+

Various aspects of the request can be accessed by the request object defined by the HttpView trait:

+
+
+
+
json.person {
+ name "bob"
+ userAgent request.getHeader('User-Agent')
+}
+
+
+
+

Parameters can be accessed via the params object which is an instance of Parameters:

+
+
+
+
json.person {
+ name "bob"
+ first params.int('offset', 0)
+ sort params.get('sort', 'name')
+}
+
+
+
+
+
+

Default Static Imports

+
+
+

The following classes' static properties are imported by default:

+
+
+
    +
  • +

    org.springframework.http.HttpStatus

    +
  • +
  • +

    org.springframework.http.HttpMethod

    +
  • +
  • +

    grails.web.http.HttpHeaders

    +
  • +
+
+
+

This means that you can use the response object to set the status using these constants, instead of hard coded numbers:

+
+
+
+
response.status NOT_FOUND
+
+
+
+

Or generate links using the appropriate HTTP method:

+
+
+
+
g.link(resource:"books", method:POST)
+
+
+
+
+
+

I18n & Locale Integration

+
+
+

You can lookup i18n messages use the g.message method:

+
+
+
+
json.error {
+    description g.message(code:'default.error.message')
+}
+
+
+
+

You can also create locale specific views by appending the locale to view name. For example person_de.gson for German or person.gson for the default.

+
+
+ + + + + +
+ + +For more complex message lookups the messageSource property is an instance of the Spring MessageSource class. +
+
+
+
+
+

Accessing Configuration

+
+
+

The application configuration is injected automatically into your json views. To access it, simply reference config.

+
+
+
+
json {
+    foo config.getProperty("bar", String, null)
+}
+
+
+
+
+
+

Miscellaneous Properties

+
+
+

Other properties are also available:

+
+ ++++ + + + + + + + + + + + + + + +

controllerName

The name of the current controller

actionName

The name of the current controller action

controllerNamespace

The namespace of the current controller

+
+
+
+ + + \ No newline at end of file diff --git a/3.2.3/markup/configuration.html b/3.2.3/markup/configuration.html new file mode 100644 index 000000000..8b3c439a8 --- /dev/null +++ b/3.2.3/markup/configuration.html @@ -0,0 +1,476 @@ + + + + + + + +Configuration + + + + + + +
+
+

Markup views configuration can be altered with grails-app/conf/application.yml. Any of the properties within the MarkupViewConfiguration class and Groovy’s TemplateConfiguration class can be set.

+
+
+

For example:

+
+
+
+
grails:
+    views:
+        markup:
+            compileStatic: true
+            cacheTemplates: true
+            autoIndent: true
+            ...
+
+
+
+

Alternatively you can register a new MarkupViewConfiguration bean using the bean name markupViewConfiguration in grails-app/conf/spring/resources.groovy.

+
+
+ + + \ No newline at end of file diff --git a/3.2.3/markup/index.html b/3.2.3/markup/index.html new file mode 100644 index 000000000..c42df883e --- /dev/null +++ b/3.2.3/markup/index.html @@ -0,0 +1,613 @@ + + + + + + + +Markup Views + + + + + + +
+
+

Introduction

+
+
+

Markup Views are written in Groovy, end with the file extension gml and reside in the grails-app/views directory.

+
+
+

The Markup Views plugin uses Groovy’s MarkupTemplateEngine and you can mostly use the Groovy user guide as a reference for the syntax.

+
+
+

Example Markup View:

+
+
+
+
model {
+    Iterable<Map> cars
+}
+xmlDeclaration()
+cars {
+    cars.each {
+        car(make: it.make, model: it.model)
+    }
+}
+
+
+
+

This produces the following output given a model such as [cars:[[make:"Audi", model:"A5"]]]:

+
+
+
+
<?xml version='1.0'?>
+<cars><car make='Audi' model='A5'/></cars>
+
+
+
+

For further examples see Groovy’s MarkupTemplateEngine documentation.

+
+
+

All Markup views subclass the MarkupViewTemplate class by default.

+
+
+

The MarkupViewTemplate superclass implements the MarkupView trait which in turn extends the the GrailsView trait.

+
+
+
+
+

Installation

+
+
+

To activate Markup views, add the following dependency to the dependencies block of your build.gradle:

+
+
+
+
compile "org.grails.plugins:views-markup:3.2.3"
+
+
+
+

To enable Gradle compilation of Markup views for production environment add the following to the buildscript dependencies block:

+
+
+
+
buildscript {
+    ...
+    dependencies {
+        ...
+        classpath "org.grails.plugins:views-gradle:3.2.3"
+    }
+}
+
+
+
+

Then apply the org.grails.plugins.views-markup Gradle plugin after any Grails core gradle plugins:

+
+
+
+
...
+apply plugin: "org.grails.grails-web"
+apply plugin: "org.grails.plugins.views-markup"
+
+
+
+

This will add a compileMarkupViews task to Gradle that is executed when producing a JAR or WAR file.

+
+
+
+
+

Markup View API

+
+
+

All Markup views subclass the MarkupViewTemplate class by default.

+
+
+

The MarkupViewTemplate superclass implements the MarkupView trait which in turn extends the the GrailsView trait.

+
+
+

Much of the API is shared between JSON and Markup views. However, one difference compared to JSON views is that you must use this as a prefix when refering to properties from the parent class. For example to generate links this will produce a compilation error:

+
+
+
+
cars {
+   cars.each {
+       car(make: it.make, href: g.link(controller:'car'))
+   }
+}
+
+
+
+

However, the following works fine:

+
+
+
+
cars {
+   cars.each {
+       car(make: it.make, href: this.g.link(controller:'car'))
+   }
+}
+
+
+
+

Notice the this prefix when refering to this.g.link(..).

+
+
+
+
+

Configuration

+
+
+

Markup views configuration can be altered with grails-app/conf/application.yml. Any of the properties within the MarkupViewConfiguration class and Groovy’s TemplateConfiguration class can be set.

+
+
+

For example:

+
+
+
+
grails:
+    views:
+        markup:
+            compileStatic: true
+            cacheTemplates: true
+            autoIndent: true
+            ...
+
+
+
+

Alternatively you can register a new MarkupViewConfiguration bean using the bean name markupViewConfiguration in grails-app/conf/spring/resources.groovy.

+
+
+
+
+ + + \ No newline at end of file diff --git a/3.2.3/markup/installation.html b/3.2.3/markup/installation.html new file mode 100644 index 000000000..5d9201751 --- /dev/null +++ b/3.2.3/markup/installation.html @@ -0,0 +1,491 @@ + + + + + + + +Installation + + + + + + +
+
+

To activate Markup views, add the following dependency to the dependencies block of your build.gradle:

+
+
+
+
compile "org.grails.plugins:views-markup:3.2.3"
+
+
+
+

To enable Gradle compilation of Markup views for production environment add the following to the buildscript dependencies block:

+
+
+
+
buildscript {
+    ...
+    dependencies {
+        ...
+        classpath "org.grails.plugins:views-gradle:3.2.3"
+    }
+}
+
+
+
+

Then apply the org.grails.plugins.views-markup Gradle plugin after any Grails core gradle plugins:

+
+
+
+
...
+apply plugin: "org.grails.grails-web"
+apply plugin: "org.grails.plugins.views-markup"
+
+
+
+

This will add a compileMarkupViews task to Gradle that is executed when producing a JAR or WAR file.

+
+
+ + + \ No newline at end of file diff --git a/3.2.3/markup/introduction.html b/3.2.3/markup/introduction.html new file mode 100644 index 000000000..815f11c08 --- /dev/null +++ b/3.2.3/markup/introduction.html @@ -0,0 +1,496 @@ + + + + + + + +Introduction + + + + + + +
+
+

Markup Views are written in Groovy, end with the file extension gml and reside in the grails-app/views directory.

+
+
+

The Markup Views plugin uses Groovy’s MarkupTemplateEngine and you can mostly use the Groovy user guide as a reference for the syntax.

+
+
+

Example Markup View:

+
+
+
+
model {
+    Iterable<Map> cars
+}
+xmlDeclaration()
+cars {
+    cars.each {
+        car(make: it.make, model: it.model)
+    }
+}
+
+
+
+

This produces the following output given a model such as [cars:[[make:"Audi", model:"A5"]]]:

+
+
+
+
<?xml version='1.0'?>
+<cars><car make='Audi' model='A5'/></cars>
+
+
+
+

For further examples see Groovy’s MarkupTemplateEngine documentation.

+
+
+

All Markup views subclass the MarkupViewTemplate class by default.

+
+
+

The MarkupViewTemplate superclass implements the MarkupView trait which in turn extends the the GrailsView trait.

+
+
+ + + \ No newline at end of file diff --git a/3.2.3/markup/viewApi.html b/3.2.3/markup/viewApi.html new file mode 100644 index 000000000..020070b18 --- /dev/null +++ b/3.2.3/markup/viewApi.html @@ -0,0 +1,489 @@ + + + + + + + +Markup View API + + + + + + +
+
+

All Markup views subclass the MarkupViewTemplate class by default.

+
+
+

The MarkupViewTemplate superclass implements the MarkupView trait which in turn extends the the GrailsView trait.

+
+
+

Much of the API is shared between JSON and Markup views. However, one difference compared to JSON views is that you must use this as a prefix when refering to properties from the parent class. For example to generate links this will produce a compilation error:

+
+
+
+
cars {
+   cars.each {
+       car(make: it.make, href: g.link(controller:'car'))
+   }
+}
+
+
+
+

However, the following works fine:

+
+
+
+
cars {
+   cars.each {
+       car(make: it.make, href: this.g.link(controller:'car'))
+   }
+}
+
+
+
+

Notice the this prefix when refering to this.g.link(..).

+
+
+ + + \ No newline at end of file diff --git a/3.2.x/api/grails/plugin/json/builder/DefaultJsonGenerator.ClosureConverter.html b/3.2.x/api/grails/plugin/json/builder/DefaultJsonGenerator.ClosureConverter.html index 07f468f61..b14026704 100644 --- a/3.2.x/api/grails/plugin/json/builder/DefaultJsonGenerator.ClosureConverter.html +++ b/3.2.x/api/grails/plugin/json/builder/DefaultJsonGenerator.ClosureConverter.html @@ -27,7 +27,7 @@ - DefaultJsonGenerator.ClosureConverter (Grails Views 3.2.2) + DefaultJsonGenerator.ClosureConverter (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/builder/DefaultJsonGenerator.html b/3.2.x/api/grails/plugin/json/builder/DefaultJsonGenerator.html index 7477e55b7..aa9336b75 100644 --- a/3.2.x/api/grails/plugin/json/builder/DefaultJsonGenerator.html +++ b/3.2.x/api/grails/plugin/json/builder/DefaultJsonGenerator.html @@ -27,7 +27,7 @@ - DefaultJsonGenerator (Grails Views 3.2.2) + DefaultJsonGenerator (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/builder/JsonGenerator.Converter.html b/3.2.x/api/grails/plugin/json/builder/JsonGenerator.Converter.html index 8e9a9feff..7aa02c754 100644 --- a/3.2.x/api/grails/plugin/json/builder/JsonGenerator.Converter.html +++ b/3.2.x/api/grails/plugin/json/builder/JsonGenerator.Converter.html @@ -27,7 +27,7 @@ - JsonGenerator.Converter (Grails Views 3.2.2) + JsonGenerator.Converter (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/builder/JsonGenerator.Options.html b/3.2.x/api/grails/plugin/json/builder/JsonGenerator.Options.html index 180273715..d3117919b 100644 --- a/3.2.x/api/grails/plugin/json/builder/JsonGenerator.Options.html +++ b/3.2.x/api/grails/plugin/json/builder/JsonGenerator.Options.html @@ -27,7 +27,7 @@ - JsonGenerator.Options (Grails Views 3.2.2) + JsonGenerator.Options (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/builder/JsonGenerator.html b/3.2.x/api/grails/plugin/json/builder/JsonGenerator.html index 0f5bee450..75825e023 100644 --- a/3.2.x/api/grails/plugin/json/builder/JsonGenerator.html +++ b/3.2.x/api/grails/plugin/json/builder/JsonGenerator.html @@ -27,7 +27,7 @@ - JsonGenerator (Grails Views 3.2.2) + JsonGenerator (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/builder/JsonOutput.JsonUnescaped.html b/3.2.x/api/grails/plugin/json/builder/JsonOutput.JsonUnescaped.html index eba20079a..ff621459e 100644 --- a/3.2.x/api/grails/plugin/json/builder/JsonOutput.JsonUnescaped.html +++ b/3.2.x/api/grails/plugin/json/builder/JsonOutput.JsonUnescaped.html @@ -27,7 +27,7 @@ - JsonOutput.JsonUnescaped (Grails Views 3.2.2) + JsonOutput.JsonUnescaped (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/builder/JsonOutput.JsonWritable.html b/3.2.x/api/grails/plugin/json/builder/JsonOutput.JsonWritable.html index 0b96e82a0..7f49ca533 100644 --- a/3.2.x/api/grails/plugin/json/builder/JsonOutput.JsonWritable.html +++ b/3.2.x/api/grails/plugin/json/builder/JsonOutput.JsonWritable.html @@ -27,7 +27,7 @@ - JsonOutput.JsonWritable (Grails Views 3.2.2) + JsonOutput.JsonWritable (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/builder/JsonOutput.html b/3.2.x/api/grails/plugin/json/builder/JsonOutput.html index 445872efd..d1e9c805e 100644 --- a/3.2.x/api/grails/plugin/json/builder/JsonOutput.html +++ b/3.2.x/api/grails/plugin/json/builder/JsonOutput.html @@ -27,7 +27,7 @@ - JsonOutput (Grails Views 3.2.2) + JsonOutput (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/builder/StreamingJsonBuilder.StreamingJsonDelegate.html b/3.2.x/api/grails/plugin/json/builder/StreamingJsonBuilder.StreamingJsonDelegate.html index 50068fcac..e8c96a51c 100644 --- a/3.2.x/api/grails/plugin/json/builder/StreamingJsonBuilder.StreamingJsonDelegate.html +++ b/3.2.x/api/grails/plugin/json/builder/StreamingJsonBuilder.StreamingJsonDelegate.html @@ -27,7 +27,7 @@ - StreamingJsonBuilder.StreamingJsonDelegate (Grails Views 3.2.2) + StreamingJsonBuilder.StreamingJsonDelegate (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/builder/StreamingJsonBuilder.html b/3.2.x/api/grails/plugin/json/builder/StreamingJsonBuilder.html index 19797ef18..0995ea7f9 100644 --- a/3.2.x/api/grails/plugin/json/builder/StreamingJsonBuilder.html +++ b/3.2.x/api/grails/plugin/json/builder/StreamingJsonBuilder.html @@ -27,7 +27,7 @@ - StreamingJsonBuilder (Grails Views 3.2.2) + StreamingJsonBuilder (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/builder/StreamingJsonBuilder/StreamingJsonDelegate.State.html b/3.2.x/api/grails/plugin/json/builder/StreamingJsonBuilder/StreamingJsonDelegate.State.html index 3808d2d48..49e75ccf1 100644 --- a/3.2.x/api/grails/plugin/json/builder/StreamingJsonBuilder/StreamingJsonDelegate.State.html +++ b/3.2.x/api/grails/plugin/json/builder/StreamingJsonBuilder/StreamingJsonDelegate.State.html @@ -27,7 +27,7 @@ - StreamingJsonBuilder.StreamingJsonDelegate.State (Grails Views 3.2.2) + StreamingJsonBuilder.StreamingJsonDelegate.State (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/converters/InstantJsonConverter.html b/3.2.x/api/grails/plugin/json/converters/InstantJsonConverter.html index ff89f77b9..5b567a4ac 100644 --- a/3.2.x/api/grails/plugin/json/converters/InstantJsonConverter.html +++ b/3.2.x/api/grails/plugin/json/converters/InstantJsonConverter.html @@ -27,7 +27,7 @@ - InstantJsonConverter (Grails Views 3.2.2) + InstantJsonConverter (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/converters/LocalDateJsonConverter.html b/3.2.x/api/grails/plugin/json/converters/LocalDateJsonConverter.html index 2e7079a8e..5c1048a58 100644 --- a/3.2.x/api/grails/plugin/json/converters/LocalDateJsonConverter.html +++ b/3.2.x/api/grails/plugin/json/converters/LocalDateJsonConverter.html @@ -27,7 +27,7 @@ - LocalDateJsonConverter (Grails Views 3.2.2) + LocalDateJsonConverter (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/converters/LocalDateTimeJsonConverter.html b/3.2.x/api/grails/plugin/json/converters/LocalDateTimeJsonConverter.html index efed81220..c198f304f 100644 --- a/3.2.x/api/grails/plugin/json/converters/LocalDateTimeJsonConverter.html +++ b/3.2.x/api/grails/plugin/json/converters/LocalDateTimeJsonConverter.html @@ -27,7 +27,7 @@ - LocalDateTimeJsonConverter (Grails Views 3.2.2) + LocalDateTimeJsonConverter (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/converters/LocalTimeJsonConverter.html b/3.2.x/api/grails/plugin/json/converters/LocalTimeJsonConverter.html index eee297a43..6be42b3e9 100644 --- a/3.2.x/api/grails/plugin/json/converters/LocalTimeJsonConverter.html +++ b/3.2.x/api/grails/plugin/json/converters/LocalTimeJsonConverter.html @@ -27,7 +27,7 @@ - LocalTimeJsonConverter (Grails Views 3.2.2) + LocalTimeJsonConverter (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/converters/OffsetDateTimeJsonConverter.html b/3.2.x/api/grails/plugin/json/converters/OffsetDateTimeJsonConverter.html index 86071d6ef..fa9728cc4 100644 --- a/3.2.x/api/grails/plugin/json/converters/OffsetDateTimeJsonConverter.html +++ b/3.2.x/api/grails/plugin/json/converters/OffsetDateTimeJsonConverter.html @@ -27,7 +27,7 @@ - OffsetDateTimeJsonConverter (Grails Views 3.2.2) + OffsetDateTimeJsonConverter (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/converters/OffsetTimeJsonConverter.html b/3.2.x/api/grails/plugin/json/converters/OffsetTimeJsonConverter.html index 9c90de5f3..75b68ef64 100644 --- a/3.2.x/api/grails/plugin/json/converters/OffsetTimeJsonConverter.html +++ b/3.2.x/api/grails/plugin/json/converters/OffsetTimeJsonConverter.html @@ -27,7 +27,7 @@ - OffsetTimeJsonConverter (Grails Views 3.2.2) + OffsetTimeJsonConverter (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/converters/PeriodJsonConverter.html b/3.2.x/api/grails/plugin/json/converters/PeriodJsonConverter.html index 77021de75..8c5e9a090 100644 --- a/3.2.x/api/grails/plugin/json/converters/PeriodJsonConverter.html +++ b/3.2.x/api/grails/plugin/json/converters/PeriodJsonConverter.html @@ -27,7 +27,7 @@ - PeriodJsonConverter (Grails Views 3.2.2) + PeriodJsonConverter (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/converters/ZonedDateTimeJsonConverter.html b/3.2.x/api/grails/plugin/json/converters/ZonedDateTimeJsonConverter.html index 482f87ed8..199c461ec 100644 --- a/3.2.x/api/grails/plugin/json/converters/ZonedDateTimeJsonConverter.html +++ b/3.2.x/api/grails/plugin/json/converters/ZonedDateTimeJsonConverter.html @@ -27,7 +27,7 @@ - ZonedDateTimeJsonConverter (Grails Views 3.2.2) + ZonedDateTimeJsonConverter (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/renderer/AbstractJsonViewContainerRenderer.html b/3.2.x/api/grails/plugin/json/renderer/AbstractJsonViewContainerRenderer.html index ed3d4123e..07f13fcf5 100644 --- a/3.2.x/api/grails/plugin/json/renderer/AbstractJsonViewContainerRenderer.html +++ b/3.2.x/api/grails/plugin/json/renderer/AbstractJsonViewContainerRenderer.html @@ -27,7 +27,7 @@ - AbstractJsonViewContainerRenderer (Grails Views 3.2.2) + AbstractJsonViewContainerRenderer (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/renderer/ErrorsJsonViewRenderer.html b/3.2.x/api/grails/plugin/json/renderer/ErrorsJsonViewRenderer.html index 7ff28fe34..7b8bc7b8a 100644 --- a/3.2.x/api/grails/plugin/json/renderer/ErrorsJsonViewRenderer.html +++ b/3.2.x/api/grails/plugin/json/renderer/ErrorsJsonViewRenderer.html @@ -27,7 +27,7 @@ - ErrorsJsonViewRenderer (Grails Views 3.2.2) + ErrorsJsonViewRenderer (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/renderer/JsonViewJsonRenderer.html b/3.2.x/api/grails/plugin/json/renderer/JsonViewJsonRenderer.html index 97a81fd50..c114b4f84 100644 --- a/3.2.x/api/grails/plugin/json/renderer/JsonViewJsonRenderer.html +++ b/3.2.x/api/grails/plugin/json/renderer/JsonViewJsonRenderer.html @@ -27,7 +27,7 @@ - JsonViewJsonRenderer (Grails Views 3.2.2) + JsonViewJsonRenderer (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/JsonViewCompiler.html b/3.2.x/api/grails/plugin/json/view/JsonViewCompiler.html index 2f61a356e..c0a41f13c 100644 --- a/3.2.x/api/grails/plugin/json/view/JsonViewCompiler.html +++ b/3.2.x/api/grails/plugin/json/view/JsonViewCompiler.html @@ -27,7 +27,7 @@ - JsonViewCompiler (Grails Views 3.2.2) + JsonViewCompiler (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/JsonViewConfiguration.html b/3.2.x/api/grails/plugin/json/view/JsonViewConfiguration.html index baf633b8a..72ca6fca3 100644 --- a/3.2.x/api/grails/plugin/json/view/JsonViewConfiguration.html +++ b/3.2.x/api/grails/plugin/json/view/JsonViewConfiguration.html @@ -27,7 +27,7 @@ - JsonViewConfiguration (Grails Views 3.2.2) + JsonViewConfiguration (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/JsonViewGeneratorConfiguration.html b/3.2.x/api/grails/plugin/json/view/JsonViewGeneratorConfiguration.html index 6640b9fc6..0a6cc46d2 100644 --- a/3.2.x/api/grails/plugin/json/view/JsonViewGeneratorConfiguration.html +++ b/3.2.x/api/grails/plugin/json/view/JsonViewGeneratorConfiguration.html @@ -27,7 +27,7 @@ - JsonViewGeneratorConfiguration (Grails Views 3.2.2) + JsonViewGeneratorConfiguration (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/JsonViewGrailsPlugin.html b/3.2.x/api/grails/plugin/json/view/JsonViewGrailsPlugin.html index b65d15513..bbbb972af 100644 --- a/3.2.x/api/grails/plugin/json/view/JsonViewGrailsPlugin.html +++ b/3.2.x/api/grails/plugin/json/view/JsonViewGrailsPlugin.html @@ -27,7 +27,7 @@ - JsonViewGrailsPlugin (Grails Views 3.2.2) + JsonViewGrailsPlugin (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/JsonViewTemplateEngine.html b/3.2.x/api/grails/plugin/json/view/JsonViewTemplateEngine.html index 9588c9d73..44324be46 100644 --- a/3.2.x/api/grails/plugin/json/view/JsonViewTemplateEngine.html +++ b/3.2.x/api/grails/plugin/json/view/JsonViewTemplateEngine.html @@ -27,7 +27,7 @@ - JsonViewTemplateEngine (Grails Views 3.2.2) + JsonViewTemplateEngine (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/JsonViewWritableScript.html b/3.2.x/api/grails/plugin/json/view/JsonViewWritableScript.html index 166b17597..587abe0f1 100644 --- a/3.2.x/api/grails/plugin/json/view/JsonViewWritableScript.html +++ b/3.2.x/api/grails/plugin/json/view/JsonViewWritableScript.html @@ -27,7 +27,7 @@ - JsonViewWritableScript (Grails Views 3.2.2) + JsonViewWritableScript (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/api/GrailsJsonViewHelper.html b/3.2.x/api/grails/plugin/json/view/api/GrailsJsonViewHelper.html index ece115bb2..9188b8be8 100644 --- a/3.2.x/api/grails/plugin/json/view/api/GrailsJsonViewHelper.html +++ b/3.2.x/api/grails/plugin/json/view/api/GrailsJsonViewHelper.html @@ -27,7 +27,7 @@ - GrailsJsonViewHelper (Grails Views 3.2.2) + GrailsJsonViewHelper (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/api/HalViewHelper.html b/3.2.x/api/grails/plugin/json/view/api/HalViewHelper.html index 0fbda5f68..2c03662a6 100644 --- a/3.2.x/api/grails/plugin/json/view/api/HalViewHelper.html +++ b/3.2.x/api/grails/plugin/json/view/api/HalViewHelper.html @@ -27,7 +27,7 @@ - HalViewHelper (Grails Views 3.2.2) + HalViewHelper (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/api/JsonApiViewHelper.html b/3.2.x/api/grails/plugin/json/view/api/JsonApiViewHelper.html index c6a52242f..9a958e9c5 100644 --- a/3.2.x/api/grails/plugin/json/view/api/JsonApiViewHelper.html +++ b/3.2.x/api/grails/plugin/json/view/api/JsonApiViewHelper.html @@ -27,7 +27,7 @@ - JsonApiViewHelper (Grails Views 3.2.2) + JsonApiViewHelper (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/api/JsonView.html b/3.2.x/api/grails/plugin/json/view/api/JsonView.html index 2bdf286a8..18c7870da 100644 --- a/3.2.x/api/grails/plugin/json/view/api/JsonView.html +++ b/3.2.x/api/grails/plugin/json/view/api/JsonView.html @@ -27,7 +27,7 @@ - JsonView (Grails Views 3.2.2) + JsonView (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.1.html b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.1.html index 31354742b..89cb27f74 100644 --- a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.1.html +++ b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.1.html @@ -27,7 +27,7 @@ - DefaultGrailsJsonViewHelper.1 (Grails Views 3.2.2) + DefaultGrailsJsonViewHelper.1 (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.2.html b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.2.html index 6fdacfe77..cae176f78 100644 --- a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.2.html +++ b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.2.html @@ -27,7 +27,7 @@ - DefaultGrailsJsonViewHelper.2 (Grails Views 3.2.2) + DefaultGrailsJsonViewHelper.2 (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.3.html b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.3.html index 92dd95e8d..7d3fcc650 100644 --- a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.3.html +++ b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.3.html @@ -27,7 +27,7 @@ - DefaultGrailsJsonViewHelper.3 (Grails Views 3.2.2) + DefaultGrailsJsonViewHelper.3 (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.4.html b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.4.html index 5909fc6ce..3ee6a0a59 100644 --- a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.4.html +++ b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.4.html @@ -27,7 +27,7 @@ - DefaultGrailsJsonViewHelper.4 (Grails Views 3.2.2) + DefaultGrailsJsonViewHelper.4 (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.5.html b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.5.html index 7b01b0239..3ffe55bf9 100644 --- a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.5.html +++ b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.5.html @@ -27,7 +27,7 @@ - DefaultGrailsJsonViewHelper.5 (Grails Views 3.2.2) + DefaultGrailsJsonViewHelper.5 (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.6.html b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.6.html index fb07e8537..f779c8350 100644 --- a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.6.html +++ b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.6.html @@ -27,7 +27,7 @@ - DefaultGrailsJsonViewHelper.6 (Grails Views 3.2.2) + DefaultGrailsJsonViewHelper.6 (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.html b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.html index 292fe0a96..51b4230db 100644 --- a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.html +++ b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultGrailsJsonViewHelper.html @@ -27,7 +27,7 @@ - DefaultGrailsJsonViewHelper (Grails Views 3.2.2) + DefaultGrailsJsonViewHelper (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultHalViewHelper.1.html b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultHalViewHelper.1.html index b757d4ebd..746c4b4d7 100644 --- a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultHalViewHelper.1.html +++ b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultHalViewHelper.1.html @@ -27,7 +27,7 @@ - DefaultHalViewHelper.1 (Grails Views 3.2.2) + DefaultHalViewHelper.1 (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultHalViewHelper.HalStreamingJsonDelegate.html b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultHalViewHelper.HalStreamingJsonDelegate.html index 3704e2a8f..3ff08d67f 100644 --- a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultHalViewHelper.HalStreamingJsonDelegate.html +++ b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultHalViewHelper.HalStreamingJsonDelegate.html @@ -27,7 +27,7 @@ - DefaultHalViewHelper.HalStreamingJsonDelegate (Grails Views 3.2.2) + DefaultHalViewHelper.HalStreamingJsonDelegate (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultHalViewHelper.html b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultHalViewHelper.html index d97c4c499..5c92f3297 100644 --- a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultHalViewHelper.html +++ b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultHalViewHelper.html @@ -27,7 +27,7 @@ - DefaultHalViewHelper (Grails Views 3.2.2) + DefaultHalViewHelper (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.1.html b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.1.html index dc699cc2b..8ea6606c6 100644 --- a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.1.html +++ b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.1.html @@ -27,7 +27,7 @@ - DefaultJsonApiViewHelper.1 (Grails Views 3.2.2) + DefaultJsonApiViewHelper.1 (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.2.html b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.2.html index ab063f67b..e7ea7afa7 100644 --- a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.2.html +++ b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.2.html @@ -27,7 +27,7 @@ - DefaultJsonApiViewHelper.2 (Grails Views 3.2.2) + DefaultJsonApiViewHelper.2 (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.3.html b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.3.html index 5dc4486d8..4c5737df2 100644 --- a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.3.html +++ b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.3.html @@ -27,7 +27,7 @@ - DefaultJsonApiViewHelper.3 (Grails Views 3.2.2) + DefaultJsonApiViewHelper.3 (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.4.html b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.4.html index 22a5ed47c..b35de42e3 100644 --- a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.4.html +++ b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.4.html @@ -27,7 +27,7 @@ - DefaultJsonApiViewHelper.4 (Grails Views 3.2.2) + DefaultJsonApiViewHelper.4 (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.5.html b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.5.html index d617419fb..38fa7ac24 100644 --- a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.5.html +++ b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.5.html @@ -27,7 +27,7 @@ - DefaultJsonApiViewHelper.5 (Grails Views 3.2.2) + DefaultJsonApiViewHelper.5 (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.6.html b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.6.html index 567094f56..13dcff63d 100644 --- a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.6.html +++ b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.6.html @@ -27,7 +27,7 @@ - DefaultJsonApiViewHelper.6 (Grails Views 3.2.2) + DefaultJsonApiViewHelper.6 (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.7.html b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.7.html index 470966509..45b822e62 100644 --- a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.7.html +++ b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.7.html @@ -27,7 +27,7 @@ - DefaultJsonApiViewHelper.7 (Grails Views 3.2.2) + DefaultJsonApiViewHelper.7 (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.html b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.html index 0e28b7bf6..edee6a4d9 100644 --- a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.html +++ b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonApiViewHelper.html @@ -27,7 +27,7 @@ - DefaultJsonApiViewHelper (Grails Views 3.2.2) + DefaultJsonApiViewHelper (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonViewHelper.1.html b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonViewHelper.1.html index 7857b73e0..e61a06685 100644 --- a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonViewHelper.1.html +++ b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonViewHelper.1.html @@ -27,7 +27,7 @@ - DefaultJsonViewHelper.1 (Grails Views 3.2.2) + DefaultJsonViewHelper.1 (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonViewHelper.html b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonViewHelper.html index 3023a44fa..f2e602f3d 100644 --- a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonViewHelper.html +++ b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonViewHelper.html @@ -27,7 +27,7 @@ - DefaultJsonViewHelper (Grails Views 3.2.2) + DefaultJsonViewHelper (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonViewIncludeExcludeSupport.html b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonViewIncludeExcludeSupport.html index fcf9e8ac8..e93b51440 100644 --- a/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonViewIncludeExcludeSupport.html +++ b/3.2.x/api/grails/plugin/json/view/api/internal/DefaultJsonViewIncludeExcludeSupport.html @@ -27,7 +27,7 @@ - DefaultJsonViewIncludeExcludeSupport (Grails Views 3.2.2) + DefaultJsonViewIncludeExcludeSupport (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/api/internal/ParentInfo.html b/3.2.x/api/grails/plugin/json/view/api/internal/ParentInfo.html index 87672d872..aadb535df 100644 --- a/3.2.x/api/grails/plugin/json/view/api/internal/ParentInfo.html +++ b/3.2.x/api/grails/plugin/json/view/api/internal/ParentInfo.html @@ -27,7 +27,7 @@ - ParentInfo (Grails Views 3.2.2) + ParentInfo (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/api/internal/TemplateRenderer.html b/3.2.x/api/grails/plugin/json/view/api/internal/TemplateRenderer.html index 5a48d82c9..bac3d6e60 100644 --- a/3.2.x/api/grails/plugin/json/view/api/internal/TemplateRenderer.html +++ b/3.2.x/api/grails/plugin/json/view/api/internal/TemplateRenderer.html @@ -27,7 +27,7 @@ - TemplateRenderer (Grails Views 3.2.2) + TemplateRenderer (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/api/jsonapi/DefaultJsonApiIdRenderer.html b/3.2.x/api/grails/plugin/json/view/api/jsonapi/DefaultJsonApiIdRenderer.html index 52e23c1d1..a45342530 100644 --- a/3.2.x/api/grails/plugin/json/view/api/jsonapi/DefaultJsonApiIdRenderer.html +++ b/3.2.x/api/grails/plugin/json/view/api/jsonapi/DefaultJsonApiIdRenderer.html @@ -27,7 +27,7 @@ - DefaultJsonApiIdRenderer (Grails Views 3.2.2) + DefaultJsonApiIdRenderer (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/api/jsonapi/JsonApiIdRenderStrategy.html b/3.2.x/api/grails/plugin/json/view/api/jsonapi/JsonApiIdRenderStrategy.html index 2c228c3fb..dbc3b9304 100644 --- a/3.2.x/api/grails/plugin/json/view/api/jsonapi/JsonApiIdRenderStrategy.html +++ b/3.2.x/api/grails/plugin/json/view/api/jsonapi/JsonApiIdRenderStrategy.html @@ -27,7 +27,7 @@ - JsonApiIdRenderStrategy (Grails Views 3.2.2) + JsonApiIdRenderStrategy (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/internal/JsonTemplateTypeCheckingExtension.html b/3.2.x/api/grails/plugin/json/view/internal/JsonTemplateTypeCheckingExtension.html index 3543d453e..a572ab3c7 100644 --- a/3.2.x/api/grails/plugin/json/view/internal/JsonTemplateTypeCheckingExtension.html +++ b/3.2.x/api/grails/plugin/json/view/internal/JsonTemplateTypeCheckingExtension.html @@ -27,7 +27,7 @@ - JsonTemplateTypeCheckingExtension (Grails Views 3.2.2) + JsonTemplateTypeCheckingExtension (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/internal/JsonViewsTransform.html b/3.2.x/api/grails/plugin/json/view/internal/JsonViewsTransform.html index ec2daabbf..544663945 100644 --- a/3.2.x/api/grails/plugin/json/view/internal/JsonViewsTransform.html +++ b/3.2.x/api/grails/plugin/json/view/internal/JsonViewsTransform.html @@ -27,7 +27,7 @@ - JsonViewsTransform (Grails Views 3.2.2) + JsonViewsTransform (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/mvc/JsonViewResolver.html b/3.2.x/api/grails/plugin/json/view/mvc/JsonViewResolver.html index 47cf838fb..d17eac2a0 100644 --- a/3.2.x/api/grails/plugin/json/view/mvc/JsonViewResolver.html +++ b/3.2.x/api/grails/plugin/json/view/mvc/JsonViewResolver.html @@ -27,7 +27,7 @@ - JsonViewResolver (Grails Views 3.2.2) + JsonViewResolver (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/template/JsonViewTemplate.html b/3.2.x/api/grails/plugin/json/view/template/JsonViewTemplate.html index 88ca9b4f7..0b08542af 100644 --- a/3.2.x/api/grails/plugin/json/view/template/JsonViewTemplate.html +++ b/3.2.x/api/grails/plugin/json/view/template/JsonViewTemplate.html @@ -27,7 +27,7 @@ - JsonViewTemplate (Grails Views 3.2.2) + JsonViewTemplate (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/test/JsonRenderResult.html b/3.2.x/api/grails/plugin/json/view/test/JsonRenderResult.html index a5258e92c..b423649af 100644 --- a/3.2.x/api/grails/plugin/json/view/test/JsonRenderResult.html +++ b/3.2.x/api/grails/plugin/json/view/test/JsonRenderResult.html @@ -27,7 +27,7 @@ - JsonRenderResult (Grails Views 3.2.2) + JsonRenderResult (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/test/JsonViewTest.TestHttpResponse.html b/3.2.x/api/grails/plugin/json/view/test/JsonViewTest.TestHttpResponse.html index 603dfaa4a..78ee7881a 100644 --- a/3.2.x/api/grails/plugin/json/view/test/JsonViewTest.TestHttpResponse.html +++ b/3.2.x/api/grails/plugin/json/view/test/JsonViewTest.TestHttpResponse.html @@ -27,7 +27,7 @@ - JsonViewTest.TestHttpResponse (Grails Views 3.2.2) + JsonViewTest.TestHttpResponse (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/test/JsonViewTest.html b/3.2.x/api/grails/plugin/json/view/test/JsonViewTest.html index 4d375d7a7..7eb32c0d3 100644 --- a/3.2.x/api/grails/plugin/json/view/test/JsonViewTest.html +++ b/3.2.x/api/grails/plugin/json/view/test/JsonViewTest.html @@ -27,7 +27,7 @@ - JsonViewTest (Grails Views 3.2.2) + JsonViewTest (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/test/TestLinkGenerator.html b/3.2.x/api/grails/plugin/json/view/test/TestLinkGenerator.html index 982f0cc68..65fc3d7be 100644 --- a/3.2.x/api/grails/plugin/json/view/test/TestLinkGenerator.html +++ b/3.2.x/api/grails/plugin/json/view/test/TestLinkGenerator.html @@ -27,7 +27,7 @@ - TestLinkGenerator (Grails Views 3.2.2) + TestLinkGenerator (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/json/view/test/TestRequestConfigurer.html b/3.2.x/api/grails/plugin/json/view/test/TestRequestConfigurer.html index d899a0f55..22362f34d 100644 --- a/3.2.x/api/grails/plugin/json/view/test/TestRequestConfigurer.html +++ b/3.2.x/api/grails/plugin/json/view/test/TestRequestConfigurer.html @@ -27,7 +27,7 @@ - TestRequestConfigurer (Grails Views 3.2.2) + TestRequestConfigurer (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/markup/view/MarkupViewCompiler.html b/3.2.x/api/grails/plugin/markup/view/MarkupViewCompiler.html index 95fb0ea89..6256ff3d8 100644 --- a/3.2.x/api/grails/plugin/markup/view/MarkupViewCompiler.html +++ b/3.2.x/api/grails/plugin/markup/view/MarkupViewCompiler.html @@ -27,7 +27,7 @@ - MarkupViewCompiler (Grails Views 3.2.2) + MarkupViewCompiler (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/markup/view/MarkupViewConfiguration.html b/3.2.x/api/grails/plugin/markup/view/MarkupViewConfiguration.html index 7ca998794..d08c95333 100644 --- a/3.2.x/api/grails/plugin/markup/view/MarkupViewConfiguration.html +++ b/3.2.x/api/grails/plugin/markup/view/MarkupViewConfiguration.html @@ -27,7 +27,7 @@ - MarkupViewConfiguration (Grails Views 3.2.2) + MarkupViewConfiguration (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/markup/view/MarkupViewGrailsPlugin.html b/3.2.x/api/grails/plugin/markup/view/MarkupViewGrailsPlugin.html index 7bdcdff52..511124512 100644 --- a/3.2.x/api/grails/plugin/markup/view/MarkupViewGrailsPlugin.html +++ b/3.2.x/api/grails/plugin/markup/view/MarkupViewGrailsPlugin.html @@ -27,7 +27,7 @@ - MarkupViewGrailsPlugin (Grails Views 3.2.2) + MarkupViewGrailsPlugin (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/markup/view/MarkupViewTemplate.html b/3.2.x/api/grails/plugin/markup/view/MarkupViewTemplate.html index 7d0969267..4d0655e08 100644 --- a/3.2.x/api/grails/plugin/markup/view/MarkupViewTemplate.html +++ b/3.2.x/api/grails/plugin/markup/view/MarkupViewTemplate.html @@ -27,7 +27,7 @@ - MarkupViewTemplate (Grails Views 3.2.2) + MarkupViewTemplate (Grails Views 3.2.3) @@ -37,7 +37,7 @@ @@ -263,7 +263,7 @@

Inherited Methods Summary

class groovy.text.markup.BaseTemplate - groovy.text.markup.BaseTemplate#getModel(), groovy.text.markup.BaseTemplate#methodMissing(java.lang.String, java.lang.Object), groovy.text.markup.BaseTemplate#getOut(), groovy.text.markup.BaseTemplate#contents(groovy.lang.Closure), groovy.text.markup.BaseTemplate#pi(java.util.Map), groovy.text.markup.BaseTemplate#writeTo(java.io.Writer), groovy.text.markup.BaseTemplate#yieldUnescaped(java.lang.Object), groovy.text.markup.BaseTemplate#stringOf(groovy.lang.Closure), groovy.text.markup.BaseTemplate#xmlDeclaration(), groovy.text.markup.BaseTemplate#includeGroovy(java.lang.String), groovy.text.markup.BaseTemplate#includeEscaped(java.lang.String), groovy.text.markup.BaseTemplate#includeUnescaped(java.lang.String), groovy.text.markup.BaseTemplate#tryEscape(java.lang.Object), groovy.text.markup.BaseTemplate#fragment(java.util.Map, java.lang.String), groovy.text.markup.BaseTemplate#layout(java.util.Map, java.lang.String, boolean), groovy.text.markup.BaseTemplate#layout(java.util.Map, java.lang.String), groovy.text.markup.BaseTemplate#run(), groovy.text.markup.BaseTemplate#toString(), groovy.text.markup.BaseTemplate#yield(java.lang.Object), groovy.text.markup.BaseTemplate#comment(java.lang.Object), groovy.text.markup.BaseTemplate#newLine(), groovy.text.markup.BaseTemplate#wait(long), groovy.text.markup.BaseTemplate#wait(long, int), groovy.text.markup.BaseTemplate#wait(), groovy.text.markup.BaseTemplate#equals(java.lang.Object), groovy.text.markup.BaseTemplate#hashCode(), groovy.text.markup.BaseTemplate#getClass(), groovy.text.markup.BaseTemplate#notify(), groovy.text.markup.BaseTemplate#notifyAll() + groovy.text.markup.BaseTemplate#getModel(), groovy.text.markup.BaseTemplate#methodMissing(java.lang.String, java.lang.Object), groovy.text.markup.BaseTemplate#getOut(), groovy.text.markup.BaseTemplate#contents(groovy.lang.Closure), groovy.text.markup.BaseTemplate#fragment(java.util.Map, java.lang.String), groovy.text.markup.BaseTemplate#writeTo(java.io.Writer), groovy.text.markup.BaseTemplate#pi(java.util.Map), groovy.text.markup.BaseTemplate#yieldUnescaped(java.lang.Object), groovy.text.markup.BaseTemplate#stringOf(groovy.lang.Closure), groovy.text.markup.BaseTemplate#xmlDeclaration(), groovy.text.markup.BaseTemplate#includeGroovy(java.lang.String), groovy.text.markup.BaseTemplate#includeEscaped(java.lang.String), groovy.text.markup.BaseTemplate#includeUnescaped(java.lang.String), groovy.text.markup.BaseTemplate#tryEscape(java.lang.Object), groovy.text.markup.BaseTemplate#layout(java.util.Map, java.lang.String, boolean), groovy.text.markup.BaseTemplate#layout(java.util.Map, java.lang.String), groovy.text.markup.BaseTemplate#run(), groovy.text.markup.BaseTemplate#toString(), groovy.text.markup.BaseTemplate#yield(java.lang.Object), groovy.text.markup.BaseTemplate#comment(java.lang.Object), groovy.text.markup.BaseTemplate#newLine(), groovy.text.markup.BaseTemplate#wait(long), groovy.text.markup.BaseTemplate#wait(long, int), groovy.text.markup.BaseTemplate#wait(), groovy.text.markup.BaseTemplate#equals(java.lang.Object), groovy.text.markup.BaseTemplate#hashCode(), groovy.text.markup.BaseTemplate#getClass(), groovy.text.markup.BaseTemplate#notify(), groovy.text.markup.BaseTemplate#notifyAll() diff --git a/3.2.x/api/grails/plugin/markup/view/MarkupViewTemplateEngine.1.html b/3.2.x/api/grails/plugin/markup/view/MarkupViewTemplateEngine.1.html index 072c8aede..9afc6bd20 100644 --- a/3.2.x/api/grails/plugin/markup/view/MarkupViewTemplateEngine.1.html +++ b/3.2.x/api/grails/plugin/markup/view/MarkupViewTemplateEngine.1.html @@ -27,7 +27,7 @@ - MarkupViewTemplateEngine.1 (Grails Views 3.2.2) + MarkupViewTemplateEngine.1 (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/markup/view/MarkupViewTemplateEngine.html b/3.2.x/api/grails/plugin/markup/view/MarkupViewTemplateEngine.html index 1b173991c..b142714b8 100644 --- a/3.2.x/api/grails/plugin/markup/view/MarkupViewTemplateEngine.html +++ b/3.2.x/api/grails/plugin/markup/view/MarkupViewTemplateEngine.html @@ -27,7 +27,7 @@ - MarkupViewTemplateEngine (Grails Views 3.2.2) + MarkupViewTemplateEngine (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/markup/view/MarkupViewWritableScriptTemplate.html b/3.2.x/api/grails/plugin/markup/view/MarkupViewWritableScriptTemplate.html index 8f36271d4..a994981f8 100644 --- a/3.2.x/api/grails/plugin/markup/view/MarkupViewWritableScriptTemplate.html +++ b/3.2.x/api/grails/plugin/markup/view/MarkupViewWritableScriptTemplate.html @@ -27,7 +27,7 @@ - MarkupViewWritableScriptTemplate (Grails Views 3.2.2) + MarkupViewWritableScriptTemplate (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/markup/view/api/MarkupView.html b/3.2.x/api/grails/plugin/markup/view/api/MarkupView.html index b4b9def09..fde341470 100644 --- a/3.2.x/api/grails/plugin/markup/view/api/MarkupView.html +++ b/3.2.x/api/grails/plugin/markup/view/api/MarkupView.html @@ -27,7 +27,7 @@ - MarkupView (Grails Views 3.2.2) + MarkupView (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/markup/view/internal/MarkupViewsTransform.html b/3.2.x/api/grails/plugin/markup/view/internal/MarkupViewsTransform.html index 22139936c..fed148da1 100644 --- a/3.2.x/api/grails/plugin/markup/view/internal/MarkupViewsTransform.html +++ b/3.2.x/api/grails/plugin/markup/view/internal/MarkupViewsTransform.html @@ -27,7 +27,7 @@ - MarkupViewsTransform (Grails Views 3.2.2) + MarkupViewsTransform (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/markup/view/mvc/MarkupViewResolver.html b/3.2.x/api/grails/plugin/markup/view/mvc/MarkupViewResolver.html index 331b992e0..45cc6f6ea 100644 --- a/3.2.x/api/grails/plugin/markup/view/mvc/MarkupViewResolver.html +++ b/3.2.x/api/grails/plugin/markup/view/mvc/MarkupViewResolver.html @@ -27,7 +27,7 @@ - MarkupViewResolver (Grails Views 3.2.2) + MarkupViewResolver (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/plugin/markup/view/renderer/MarkupViewXmlRenderer.html b/3.2.x/api/grails/plugin/markup/view/renderer/MarkupViewXmlRenderer.html index b7d3aa5a0..7a4a918aa 100644 --- a/3.2.x/api/grails/plugin/markup/view/renderer/MarkupViewXmlRenderer.html +++ b/3.2.x/api/grails/plugin/markup/view/renderer/MarkupViewXmlRenderer.html @@ -27,7 +27,7 @@ - MarkupViewXmlRenderer (Grails Views 3.2.2) + MarkupViewXmlRenderer (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/AbstractGroovyTemplateCompiler.html b/3.2.x/api/grails/views/AbstractGroovyTemplateCompiler.html index 77f1099ce..ea7c594a4 100644 --- a/3.2.x/api/grails/views/AbstractGroovyTemplateCompiler.html +++ b/3.2.x/api/grails/views/AbstractGroovyTemplateCompiler.html @@ -27,7 +27,7 @@ - AbstractGroovyTemplateCompiler (Grails Views 3.2.2) + AbstractGroovyTemplateCompiler (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/AbstractWritableScript.html b/3.2.x/api/grails/views/AbstractWritableScript.html index c328c3364..f8fca395a 100644 --- a/3.2.x/api/grails/views/AbstractWritableScript.html +++ b/3.2.x/api/grails/views/AbstractWritableScript.html @@ -27,7 +27,7 @@ - AbstractWritableScript (Grails Views 3.2.2) + AbstractWritableScript (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/GenericViewConfiguration.html b/3.2.x/api/grails/views/GenericViewConfiguration.html index 33e2c0b2e..b3f197383 100644 --- a/3.2.x/api/grails/views/GenericViewConfiguration.html +++ b/3.2.x/api/grails/views/GenericViewConfiguration.html @@ -27,7 +27,7 @@ - GenericViewConfiguration (Grails Views 3.2.2) + GenericViewConfiguration (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/GrailsViewTemplate.html b/3.2.x/api/grails/views/GrailsViewTemplate.html index 39f95f7f7..e86a2c68f 100644 --- a/3.2.x/api/grails/views/GrailsViewTemplate.html +++ b/3.2.x/api/grails/views/GrailsViewTemplate.html @@ -27,7 +27,7 @@ - GrailsViewTemplate (Grails Views 3.2.2) + GrailsViewTemplate (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/ResolvableGroovyTemplateEngine.1.html b/3.2.x/api/grails/views/ResolvableGroovyTemplateEngine.1.html index eb15ff8ca..3f3b4bb0e 100644 --- a/3.2.x/api/grails/views/ResolvableGroovyTemplateEngine.1.html +++ b/3.2.x/api/grails/views/ResolvableGroovyTemplateEngine.1.html @@ -27,7 +27,7 @@ - ResolvableGroovyTemplateEngine.1 (Grails Views 3.2.2) + ResolvableGroovyTemplateEngine.1 (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/ResolvableGroovyTemplateEngine.html b/3.2.x/api/grails/views/ResolvableGroovyTemplateEngine.html index 41f414891..68d1d9082 100644 --- a/3.2.x/api/grails/views/ResolvableGroovyTemplateEngine.html +++ b/3.2.x/api/grails/views/ResolvableGroovyTemplateEngine.html @@ -27,7 +27,7 @@ - ResolvableGroovyTemplateEngine (Grails Views 3.2.2) + ResolvableGroovyTemplateEngine (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/TemplateResolver.html b/3.2.x/api/grails/views/TemplateResolver.html index 0c6056415..c4f54c1ba 100644 --- a/3.2.x/api/grails/views/TemplateResolver.html +++ b/3.2.x/api/grails/views/TemplateResolver.html @@ -27,7 +27,7 @@ - TemplateResolver (Grails Views 3.2.2) + TemplateResolver (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/ViewCompilationException.html b/3.2.x/api/grails/views/ViewCompilationException.html index 092ff9662..41f69a46f 100644 --- a/3.2.x/api/grails/views/ViewCompilationException.html +++ b/3.2.x/api/grails/views/ViewCompilationException.html @@ -27,7 +27,7 @@ - ViewCompilationException (Grails Views 3.2.2) + ViewCompilationException (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/ViewConfiguration.html b/3.2.x/api/grails/views/ViewConfiguration.html index 14069faad..9c247546b 100644 --- a/3.2.x/api/grails/views/ViewConfiguration.html +++ b/3.2.x/api/grails/views/ViewConfiguration.html @@ -27,7 +27,7 @@ - ViewConfiguration (Grails Views 3.2.2) + ViewConfiguration (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/ViewException.html b/3.2.x/api/grails/views/ViewException.html index d7d9e8119..bc19dd802 100644 --- a/3.2.x/api/grails/views/ViewException.html +++ b/3.2.x/api/grails/views/ViewException.html @@ -27,7 +27,7 @@ - ViewException (Grails Views 3.2.2) + ViewException (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/ViewRenderException.html b/3.2.x/api/grails/views/ViewRenderException.html index e9b083bf2..4ce5c3b99 100644 --- a/3.2.x/api/grails/views/ViewRenderException.html +++ b/3.2.x/api/grails/views/ViewRenderException.html @@ -27,7 +27,7 @@ - ViewRenderException (Grails Views 3.2.2) + ViewRenderException (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/ViewUriResolver.html b/3.2.x/api/grails/views/ViewUriResolver.html index a97389c03..192c3322e 100644 --- a/3.2.x/api/grails/views/ViewUriResolver.html +++ b/3.2.x/api/grails/views/ViewUriResolver.html @@ -27,7 +27,7 @@ - ViewUriResolver (Grails Views 3.2.2) + ViewUriResolver (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/Views.html b/3.2.x/api/grails/views/Views.html index 20f6ce6a0..c6f312d9c 100644 --- a/3.2.x/api/grails/views/Views.html +++ b/3.2.x/api/grails/views/Views.html @@ -27,7 +27,7 @@ - Views (Grails Views 3.2.2) + Views (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/ViewsEnvironment.html b/3.2.x/api/grails/views/ViewsEnvironment.html index 2c5122b43..9681bdcb3 100644 --- a/3.2.x/api/grails/views/ViewsEnvironment.html +++ b/3.2.x/api/grails/views/ViewsEnvironment.html @@ -27,7 +27,7 @@ - ViewsEnvironment (Grails Views 3.2.2) + ViewsEnvironment (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/WritableScript.html b/3.2.x/api/grails/views/WritableScript.html index 7b9eca2b4..71e341735 100644 --- a/3.2.x/api/grails/views/WritableScript.html +++ b/3.2.x/api/grails/views/WritableScript.html @@ -27,7 +27,7 @@ - WritableScript (Grails Views 3.2.2) + WritableScript (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/WritableScriptTemplate.FieldSetter.html b/3.2.x/api/grails/views/WritableScriptTemplate.FieldSetter.html index fe5fcc0e2..6639d3ce0 100644 --- a/3.2.x/api/grails/views/WritableScriptTemplate.FieldSetter.html +++ b/3.2.x/api/grails/views/WritableScriptTemplate.FieldSetter.html @@ -27,7 +27,7 @@ - WritableScriptTemplate.FieldSetter (Grails Views 3.2.2) + WritableScriptTemplate.FieldSetter (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/WritableScriptTemplate.MethodSetter.html b/3.2.x/api/grails/views/WritableScriptTemplate.MethodSetter.html index 179a0c1bb..818c2ccac 100644 --- a/3.2.x/api/grails/views/WritableScriptTemplate.MethodSetter.html +++ b/3.2.x/api/grails/views/WritableScriptTemplate.MethodSetter.html @@ -27,7 +27,7 @@ - WritableScriptTemplate.MethodSetter (Grails Views 3.2.2) + WritableScriptTemplate.MethodSetter (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/WritableScriptTemplate.VariableSetter.html b/3.2.x/api/grails/views/WritableScriptTemplate.VariableSetter.html index 5d15e7ec1..66d5ffdc1 100644 --- a/3.2.x/api/grails/views/WritableScriptTemplate.VariableSetter.html +++ b/3.2.x/api/grails/views/WritableScriptTemplate.VariableSetter.html @@ -27,7 +27,7 @@ - WritableScriptTemplate.VariableSetter (Grails Views 3.2.2) + WritableScriptTemplate.VariableSetter (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/WritableScriptTemplate.html b/3.2.x/api/grails/views/WritableScriptTemplate.html index b2c63a76b..63a56ed76 100644 --- a/3.2.x/api/grails/views/WritableScriptTemplate.html +++ b/3.2.x/api/grails/views/WritableScriptTemplate.html @@ -27,7 +27,7 @@ - WritableScriptTemplate (Grails Views 3.2.2) + WritableScriptTemplate (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/WriterProvider.html b/3.2.x/api/grails/views/WriterProvider.html index 179ec5bed..aa8372b7b 100644 --- a/3.2.x/api/grails/views/WriterProvider.html +++ b/3.2.x/api/grails/views/WriterProvider.html @@ -27,7 +27,7 @@ - WriterProvider (Grails Views 3.2.2) + WriterProvider (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/api/GrailsView.html b/3.2.x/api/grails/views/api/GrailsView.html index 7286aa3a9..df71ec7ea 100644 --- a/3.2.x/api/grails/views/api/GrailsView.html +++ b/3.2.x/api/grails/views/api/GrailsView.html @@ -27,7 +27,7 @@ - GrailsView (Grails Views 3.2.2) + GrailsView (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/api/GrailsViewHelper.html b/3.2.x/api/grails/views/api/GrailsViewHelper.html index ea8ba3fe4..8776b24d2 100644 --- a/3.2.x/api/grails/views/api/GrailsViewHelper.html +++ b/3.2.x/api/grails/views/api/GrailsViewHelper.html @@ -27,7 +27,7 @@ - GrailsViewHelper (Grails Views 3.2.2) + GrailsViewHelper (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/api/HttpView.html b/3.2.x/api/grails/views/api/HttpView.html index 47eb17e1c..8e1c95fe7 100644 --- a/3.2.x/api/grails/views/api/HttpView.html +++ b/3.2.x/api/grails/views/api/HttpView.html @@ -27,7 +27,7 @@ - HttpView (Grails Views 3.2.2) + HttpView (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/api/View.html b/3.2.x/api/grails/views/api/View.html index c71b37cd0..d3be8ecbe 100644 --- a/3.2.x/api/grails/views/api/View.html +++ b/3.2.x/api/grails/views/api/View.html @@ -27,7 +27,7 @@ - View (Grails Views 3.2.2) + View (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/api/http/Parameters.html b/3.2.x/api/grails/views/api/http/Parameters.html index 5f700dbba..2f816d5b0 100644 --- a/3.2.x/api/grails/views/api/http/Parameters.html +++ b/3.2.x/api/grails/views/api/http/Parameters.html @@ -27,7 +27,7 @@ - Parameters (Grails Views 3.2.2) + Parameters (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/api/http/Request.html b/3.2.x/api/grails/views/api/http/Request.html index 9b0adec09..68064edb5 100644 --- a/3.2.x/api/grails/views/api/http/Request.html +++ b/3.2.x/api/grails/views/api/http/Request.html @@ -27,7 +27,7 @@ - Request (Grails Views 3.2.2) + Request (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/api/http/Response.html b/3.2.x/api/grails/views/api/http/Response.html index 9bd9e9d57..ff80a202a 100644 --- a/3.2.x/api/grails/views/api/http/Response.html +++ b/3.2.x/api/grails/views/api/http/Response.html @@ -27,7 +27,7 @@ - Response (Grails Views 3.2.2) + Response (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/api/internal/DefaultGrailsViewHelper.html b/3.2.x/api/grails/views/api/internal/DefaultGrailsViewHelper.html index 832c86e39..5792dad44 100644 --- a/3.2.x/api/grails/views/api/internal/DefaultGrailsViewHelper.html +++ b/3.2.x/api/grails/views/api/internal/DefaultGrailsViewHelper.html @@ -27,7 +27,7 @@ - DefaultGrailsViewHelper (Grails Views 3.2.2) + DefaultGrailsViewHelper (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/api/internal/EmptyParameters.html b/3.2.x/api/grails/views/api/internal/EmptyParameters.html index fd70f633d..9f5d78d96 100644 --- a/3.2.x/api/grails/views/api/internal/EmptyParameters.html +++ b/3.2.x/api/grails/views/api/internal/EmptyParameters.html @@ -27,7 +27,7 @@ - EmptyParameters (Grails Views 3.2.2) + EmptyParameters (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/compiler/BuilderTypeCheckingExtension.BuilderMethodReplacer.html b/3.2.x/api/grails/views/compiler/BuilderTypeCheckingExtension.BuilderMethodReplacer.html index 54f5b0e64..9a5642808 100644 --- a/3.2.x/api/grails/views/compiler/BuilderTypeCheckingExtension.BuilderMethodReplacer.html +++ b/3.2.x/api/grails/views/compiler/BuilderTypeCheckingExtension.BuilderMethodReplacer.html @@ -27,7 +27,7 @@ - BuilderTypeCheckingExtension.BuilderMethodReplacer (Grails Views 3.2.2) + BuilderTypeCheckingExtension.BuilderMethodReplacer (Grails Views 3.2.3) @@ -37,7 +37,7 @@ @@ -253,7 +253,7 @@

Inherited Methods Summary

class org.codehaus.groovy.ast.ClassCodeExpressionTransformer - org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitProperty(org.codehaus.groovy.ast.PropertyNode), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitForLoop(org.codehaus.groovy.ast.stmt.ForStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitWhileLoop(org.codehaus.groovy.ast.stmt.WhileStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitDoWhileLoop(org.codehaus.groovy.ast.stmt.DoWhileStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitIfElse(org.codehaus.groovy.ast.stmt.IfStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitExpressionStatement(org.codehaus.groovy.ast.stmt.ExpressionStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitReturnStatement(org.codehaus.groovy.ast.stmt.ReturnStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitAssertStatement(org.codehaus.groovy.ast.stmt.AssertStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitSwitch(org.codehaus.groovy.ast.stmt.SwitchStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitCaseStatement(org.codehaus.groovy.ast.stmt.CaseStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitThrowStatement(org.codehaus.groovy.ast.stmt.ThrowStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitSynchronizedStatement(org.codehaus.groovy.ast.stmt.SynchronizedStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#transform(org.codehaus.groovy.ast.expr.Expression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitField(org.codehaus.groovy.ast.FieldNode), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitClass(org.codehaus.groovy.ast.ClassNode), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitPackage(org.codehaus.groovy.ast.PackageNode), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitDeclarationExpression(org.codehaus.groovy.ast.expr.DeclarationExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#addError(java.lang.String, org.codehaus.groovy.ast.ASTNode), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitBlockStatement(org.codehaus.groovy.ast.stmt.BlockStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitTryCatchFinally(org.codehaus.groovy.ast.stmt.TryCatchStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitBreakStatement(org.codehaus.groovy.ast.stmt.BreakStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitContinueStatement(org.codehaus.groovy.ast.stmt.ContinueStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitCatchStatement(org.codehaus.groovy.ast.stmt.CatchStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitConstructor(org.codehaus.groovy.ast.ConstructorNode), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitAnnotations(org.codehaus.groovy.ast.AnnotatedNode), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitImports(org.codehaus.groovy.ast.ModuleNode), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitMethod(org.codehaus.groovy.ast.MethodNode), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitShortTernaryExpression(org.codehaus.groovy.ast.expr.ElvisOperatorExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitBinaryExpression(org.codehaus.groovy.ast.expr.BinaryExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitPrefixExpression(org.codehaus.groovy.ast.expr.PrefixExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitPostfixExpression(org.codehaus.groovy.ast.expr.PostfixExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitBooleanExpression(org.codehaus.groovy.ast.expr.BooleanExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitLambdaExpression(org.codehaus.groovy.ast.expr.LambdaExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitMapEntryExpression(org.codehaus.groovy.ast.expr.MapEntryExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitListExpression(org.codehaus.groovy.ast.expr.ListExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitRangeExpression(org.codehaus.groovy.ast.expr.RangeExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitPropertyExpression(org.codehaus.groovy.ast.expr.PropertyExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitAttributeExpression(org.codehaus.groovy.ast.expr.AttributeExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitFieldExpression(org.codehaus.groovy.ast.expr.FieldExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitMethodPointerExpression(org.codehaus.groovy.ast.expr.MethodPointerExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitMethodReferenceExpression(org.codehaus.groovy.ast.expr.MethodReferenceExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitClassExpression(org.codehaus.groovy.ast.expr.ClassExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitVariableExpression(org.codehaus.groovy.ast.expr.VariableExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitGStringExpression(org.codehaus.groovy.ast.expr.GStringExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitArrayExpression(org.codehaus.groovy.ast.expr.ArrayExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitSpreadExpression(org.codehaus.groovy.ast.expr.SpreadExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitSpreadMapExpression(org.codehaus.groovy.ast.expr.SpreadMapExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitNotExpression(org.codehaus.groovy.ast.expr.NotExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitUnaryMinusExpression(org.codehaus.groovy.ast.expr.UnaryMinusExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitUnaryPlusExpression(org.codehaus.groovy.ast.expr.UnaryPlusExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitBitwiseNegationExpression(org.codehaus.groovy.ast.expr.BitwiseNegationExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitCastExpression(org.codehaus.groovy.ast.expr.CastExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitClosureListExpression(org.codehaus.groovy.ast.expr.ClosureListExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitEmptyStatement(org.codehaus.groovy.ast.stmt.EmptyStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitMethodCallExpression(org.codehaus.groovy.ast.expr.MethodCallExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitStaticMethodCallExpression(org.codehaus.groovy.ast.expr.StaticMethodCallExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitConstructorCallExpression(org.codehaus.groovy.ast.expr.ConstructorCallExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitTernaryExpression(org.codehaus.groovy.ast.expr.TernaryExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitMapExpression(org.codehaus.groovy.ast.expr.MapExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitClosureExpression(org.codehaus.groovy.ast.expr.ClosureExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitConstantExpression(org.codehaus.groovy.ast.expr.ConstantExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitArgumentlistExpression(org.codehaus.groovy.ast.expr.ArgumentListExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitTupleExpression(org.codehaus.groovy.ast.expr.TupleExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitBytecodeExpression(org.codehaus.groovy.classgen.BytecodeExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#wait(long), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#wait(long, int), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#wait(), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#equals(java.lang.Object), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#toString(), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#hashCode(), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#getClass(), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#notify(), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#notifyAll(), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitEmptyExpression(org.codehaus.groovy.ast.expr.EmptyExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitListOfExpressions(java.util.List) + org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitProperty(org.codehaus.groovy.ast.PropertyNode), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitForLoop(org.codehaus.groovy.ast.stmt.ForStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitWhileLoop(org.codehaus.groovy.ast.stmt.WhileStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitDoWhileLoop(org.codehaus.groovy.ast.stmt.DoWhileStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitIfElse(org.codehaus.groovy.ast.stmt.IfStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitSwitch(org.codehaus.groovy.ast.stmt.SwitchStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitExpressionStatement(org.codehaus.groovy.ast.stmt.ExpressionStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitReturnStatement(org.codehaus.groovy.ast.stmt.ReturnStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitAssertStatement(org.codehaus.groovy.ast.stmt.AssertStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitCaseStatement(org.codehaus.groovy.ast.stmt.CaseStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitThrowStatement(org.codehaus.groovy.ast.stmt.ThrowStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitSynchronizedStatement(org.codehaus.groovy.ast.stmt.SynchronizedStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitField(org.codehaus.groovy.ast.FieldNode), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#transform(org.codehaus.groovy.ast.expr.Expression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitClass(org.codehaus.groovy.ast.ClassNode), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitPackage(org.codehaus.groovy.ast.PackageNode), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitBlockStatement(org.codehaus.groovy.ast.stmt.BlockStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#addError(java.lang.String, org.codehaus.groovy.ast.ASTNode), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitTryCatchFinally(org.codehaus.groovy.ast.stmt.TryCatchStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitBreakStatement(org.codehaus.groovy.ast.stmt.BreakStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitContinueStatement(org.codehaus.groovy.ast.stmt.ContinueStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitCatchStatement(org.codehaus.groovy.ast.stmt.CatchStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitDeclarationExpression(org.codehaus.groovy.ast.expr.DeclarationExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitConstructor(org.codehaus.groovy.ast.ConstructorNode), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitAnnotations(org.codehaus.groovy.ast.AnnotatedNode), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitImports(org.codehaus.groovy.ast.ModuleNode), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitMethod(org.codehaus.groovy.ast.MethodNode), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitConstantExpression(org.codehaus.groovy.ast.expr.ConstantExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitArgumentlistExpression(org.codehaus.groovy.ast.expr.ArgumentListExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitTupleExpression(org.codehaus.groovy.ast.expr.TupleExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitClosureExpression(org.codehaus.groovy.ast.expr.ClosureExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitEmptyStatement(org.codehaus.groovy.ast.stmt.EmptyStatement), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitMethodCallExpression(org.codehaus.groovy.ast.expr.MethodCallExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitStaticMethodCallExpression(org.codehaus.groovy.ast.expr.StaticMethodCallExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitConstructorCallExpression(org.codehaus.groovy.ast.expr.ConstructorCallExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitTernaryExpression(org.codehaus.groovy.ast.expr.TernaryExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitShortTernaryExpression(org.codehaus.groovy.ast.expr.ElvisOperatorExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitBinaryExpression(org.codehaus.groovy.ast.expr.BinaryExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitPrefixExpression(org.codehaus.groovy.ast.expr.PrefixExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitPostfixExpression(org.codehaus.groovy.ast.expr.PostfixExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitBooleanExpression(org.codehaus.groovy.ast.expr.BooleanExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitLambdaExpression(org.codehaus.groovy.ast.expr.LambdaExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitMapExpression(org.codehaus.groovy.ast.expr.MapExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitMapEntryExpression(org.codehaus.groovy.ast.expr.MapEntryExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitListExpression(org.codehaus.groovy.ast.expr.ListExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitRangeExpression(org.codehaus.groovy.ast.expr.RangeExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitPropertyExpression(org.codehaus.groovy.ast.expr.PropertyExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitAttributeExpression(org.codehaus.groovy.ast.expr.AttributeExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitFieldExpression(org.codehaus.groovy.ast.expr.FieldExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitMethodPointerExpression(org.codehaus.groovy.ast.expr.MethodPointerExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitMethodReferenceExpression(org.codehaus.groovy.ast.expr.MethodReferenceExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitClassExpression(org.codehaus.groovy.ast.expr.ClassExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitVariableExpression(org.codehaus.groovy.ast.expr.VariableExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitGStringExpression(org.codehaus.groovy.ast.expr.GStringExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitArrayExpression(org.codehaus.groovy.ast.expr.ArrayExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitSpreadExpression(org.codehaus.groovy.ast.expr.SpreadExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitSpreadMapExpression(org.codehaus.groovy.ast.expr.SpreadMapExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitNotExpression(org.codehaus.groovy.ast.expr.NotExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitUnaryMinusExpression(org.codehaus.groovy.ast.expr.UnaryMinusExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitUnaryPlusExpression(org.codehaus.groovy.ast.expr.UnaryPlusExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitBitwiseNegationExpression(org.codehaus.groovy.ast.expr.BitwiseNegationExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitCastExpression(org.codehaus.groovy.ast.expr.CastExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitClosureListExpression(org.codehaus.groovy.ast.expr.ClosureListExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitBytecodeExpression(org.codehaus.groovy.classgen.BytecodeExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#wait(long), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#wait(long, int), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#wait(), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#equals(java.lang.Object), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#toString(), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#hashCode(), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#getClass(), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#notify(), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#notifyAll(), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitEmptyExpression(org.codehaus.groovy.ast.expr.EmptyExpression), org.codehaus.groovy.ast.ClassCodeExpressionTransformer#visitListOfExpressions(java.util.List) diff --git a/3.2.x/api/grails/views/compiler/BuilderTypeCheckingExtension.html b/3.2.x/api/grails/views/compiler/BuilderTypeCheckingExtension.html index e30c2e19f..0a0059435 100644 --- a/3.2.x/api/grails/views/compiler/BuilderTypeCheckingExtension.html +++ b/3.2.x/api/grails/views/compiler/BuilderTypeCheckingExtension.html @@ -27,7 +27,7 @@ - BuilderTypeCheckingExtension (Grails Views 3.2.2) + BuilderTypeCheckingExtension (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/compiler/HalCodeVisitorSupport.html b/3.2.x/api/grails/views/compiler/HalCodeVisitorSupport.html index 091cf893e..0f56341e6 100644 --- a/3.2.x/api/grails/views/compiler/HalCodeVisitorSupport.html +++ b/3.2.x/api/grails/views/compiler/HalCodeVisitorSupport.html @@ -27,7 +27,7 @@ - HalCodeVisitorSupport (Grails Views 3.2.2) + HalCodeVisitorSupport (Grails Views 3.2.3) @@ -37,7 +37,7 @@ @@ -261,7 +261,7 @@

Inherited Methods Summary

class org.codehaus.groovy.ast.CodeVisitorSupport - org.codehaus.groovy.ast.CodeVisitorSupport#visitShortTernaryExpression(org.codehaus.groovy.ast.expr.ElvisOperatorExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitBinaryExpression(org.codehaus.groovy.ast.expr.BinaryExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitPrefixExpression(org.codehaus.groovy.ast.expr.PrefixExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitPostfixExpression(org.codehaus.groovy.ast.expr.PostfixExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitBooleanExpression(org.codehaus.groovy.ast.expr.BooleanExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitLambdaExpression(org.codehaus.groovy.ast.expr.LambdaExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitMapEntryExpression(org.codehaus.groovy.ast.expr.MapEntryExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitListExpression(org.codehaus.groovy.ast.expr.ListExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitRangeExpression(org.codehaus.groovy.ast.expr.RangeExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitPropertyExpression(org.codehaus.groovy.ast.expr.PropertyExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitAttributeExpression(org.codehaus.groovy.ast.expr.AttributeExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitFieldExpression(org.codehaus.groovy.ast.expr.FieldExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitMethodPointerExpression(org.codehaus.groovy.ast.expr.MethodPointerExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitMethodReferenceExpression(org.codehaus.groovy.ast.expr.MethodReferenceExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitClassExpression(org.codehaus.groovy.ast.expr.ClassExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitVariableExpression(org.codehaus.groovy.ast.expr.VariableExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitDeclarationExpression(org.codehaus.groovy.ast.expr.DeclarationExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitGStringExpression(org.codehaus.groovy.ast.expr.GStringExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitArrayExpression(org.codehaus.groovy.ast.expr.ArrayExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitSpreadExpression(org.codehaus.groovy.ast.expr.SpreadExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitSpreadMapExpression(org.codehaus.groovy.ast.expr.SpreadMapExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitNotExpression(org.codehaus.groovy.ast.expr.NotExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitUnaryMinusExpression(org.codehaus.groovy.ast.expr.UnaryMinusExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitUnaryPlusExpression(org.codehaus.groovy.ast.expr.UnaryPlusExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitBitwiseNegationExpression(org.codehaus.groovy.ast.expr.BitwiseNegationExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitCastExpression(org.codehaus.groovy.ast.expr.CastExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitClosureListExpression(org.codehaus.groovy.ast.expr.ClosureListExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitForLoop(org.codehaus.groovy.ast.stmt.ForStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitBlockStatement(org.codehaus.groovy.ast.stmt.BlockStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitWhileLoop(org.codehaus.groovy.ast.stmt.WhileStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitDoWhileLoop(org.codehaus.groovy.ast.stmt.DoWhileStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitIfElse(org.codehaus.groovy.ast.stmt.IfStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitExpressionStatement(org.codehaus.groovy.ast.stmt.ExpressionStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitReturnStatement(org.codehaus.groovy.ast.stmt.ReturnStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitAssertStatement(org.codehaus.groovy.ast.stmt.AssertStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitTryCatchFinally(org.codehaus.groovy.ast.stmt.TryCatchStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitSwitch(org.codehaus.groovy.ast.stmt.SwitchStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitCaseStatement(org.codehaus.groovy.ast.stmt.CaseStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitBreakStatement(org.codehaus.groovy.ast.stmt.BreakStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitContinueStatement(org.codehaus.groovy.ast.stmt.ContinueStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitThrowStatement(org.codehaus.groovy.ast.stmt.ThrowStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitSynchronizedStatement(org.codehaus.groovy.ast.stmt.SynchronizedStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitCatchStatement(org.codehaus.groovy.ast.stmt.CatchStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitEmptyStatement(org.codehaus.groovy.ast.stmt.EmptyStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitMethodCallExpression(org.codehaus.groovy.ast.expr.MethodCallExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitStaticMethodCallExpression(org.codehaus.groovy.ast.expr.StaticMethodCallExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitConstructorCallExpression(org.codehaus.groovy.ast.expr.ConstructorCallExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitTernaryExpression(org.codehaus.groovy.ast.expr.TernaryExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitMapExpression(org.codehaus.groovy.ast.expr.MapExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitClosureExpression(org.codehaus.groovy.ast.expr.ClosureExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitConstantExpression(org.codehaus.groovy.ast.expr.ConstantExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitArgumentlistExpression(org.codehaus.groovy.ast.expr.ArgumentListExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitTupleExpression(org.codehaus.groovy.ast.expr.TupleExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitBytecodeExpression(org.codehaus.groovy.classgen.BytecodeExpression), org.codehaus.groovy.ast.CodeVisitorSupport#wait(long), org.codehaus.groovy.ast.CodeVisitorSupport#wait(long, int), org.codehaus.groovy.ast.CodeVisitorSupport#wait(), org.codehaus.groovy.ast.CodeVisitorSupport#equals(java.lang.Object), org.codehaus.groovy.ast.CodeVisitorSupport#toString(), org.codehaus.groovy.ast.CodeVisitorSupport#hashCode(), org.codehaus.groovy.ast.CodeVisitorSupport#getClass(), org.codehaus.groovy.ast.CodeVisitorSupport#notify(), org.codehaus.groovy.ast.CodeVisitorSupport#notifyAll(), org.codehaus.groovy.ast.CodeVisitorSupport#visitEmptyExpression(org.codehaus.groovy.ast.expr.EmptyExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitListOfExpressions(java.util.List) + org.codehaus.groovy.ast.CodeVisitorSupport#visitForLoop(org.codehaus.groovy.ast.stmt.ForStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitBlockStatement(org.codehaus.groovy.ast.stmt.BlockStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitWhileLoop(org.codehaus.groovy.ast.stmt.WhileStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitDoWhileLoop(org.codehaus.groovy.ast.stmt.DoWhileStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitIfElse(org.codehaus.groovy.ast.stmt.IfStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitSwitch(org.codehaus.groovy.ast.stmt.SwitchStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitConstantExpression(org.codehaus.groovy.ast.expr.ConstantExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitArgumentlistExpression(org.codehaus.groovy.ast.expr.ArgumentListExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitTupleExpression(org.codehaus.groovy.ast.expr.TupleExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitClosureExpression(org.codehaus.groovy.ast.expr.ClosureExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitExpressionStatement(org.codehaus.groovy.ast.stmt.ExpressionStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitReturnStatement(org.codehaus.groovy.ast.stmt.ReturnStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitAssertStatement(org.codehaus.groovy.ast.stmt.AssertStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitTryCatchFinally(org.codehaus.groovy.ast.stmt.TryCatchStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitCaseStatement(org.codehaus.groovy.ast.stmt.CaseStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitBreakStatement(org.codehaus.groovy.ast.stmt.BreakStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitContinueStatement(org.codehaus.groovy.ast.stmt.ContinueStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitThrowStatement(org.codehaus.groovy.ast.stmt.ThrowStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitSynchronizedStatement(org.codehaus.groovy.ast.stmt.SynchronizedStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitCatchStatement(org.codehaus.groovy.ast.stmt.CatchStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitEmptyStatement(org.codehaus.groovy.ast.stmt.EmptyStatement), org.codehaus.groovy.ast.CodeVisitorSupport#visitMethodCallExpression(org.codehaus.groovy.ast.expr.MethodCallExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitStaticMethodCallExpression(org.codehaus.groovy.ast.expr.StaticMethodCallExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitConstructorCallExpression(org.codehaus.groovy.ast.expr.ConstructorCallExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitTernaryExpression(org.codehaus.groovy.ast.expr.TernaryExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitShortTernaryExpression(org.codehaus.groovy.ast.expr.ElvisOperatorExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitBinaryExpression(org.codehaus.groovy.ast.expr.BinaryExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitPrefixExpression(org.codehaus.groovy.ast.expr.PrefixExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitPostfixExpression(org.codehaus.groovy.ast.expr.PostfixExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitBooleanExpression(org.codehaus.groovy.ast.expr.BooleanExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitLambdaExpression(org.codehaus.groovy.ast.expr.LambdaExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitMapExpression(org.codehaus.groovy.ast.expr.MapExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitMapEntryExpression(org.codehaus.groovy.ast.expr.MapEntryExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitListExpression(org.codehaus.groovy.ast.expr.ListExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitRangeExpression(org.codehaus.groovy.ast.expr.RangeExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitPropertyExpression(org.codehaus.groovy.ast.expr.PropertyExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitAttributeExpression(org.codehaus.groovy.ast.expr.AttributeExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitFieldExpression(org.codehaus.groovy.ast.expr.FieldExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitMethodPointerExpression(org.codehaus.groovy.ast.expr.MethodPointerExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitMethodReferenceExpression(org.codehaus.groovy.ast.expr.MethodReferenceExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitClassExpression(org.codehaus.groovy.ast.expr.ClassExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitVariableExpression(org.codehaus.groovy.ast.expr.VariableExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitDeclarationExpression(org.codehaus.groovy.ast.expr.DeclarationExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitGStringExpression(org.codehaus.groovy.ast.expr.GStringExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitArrayExpression(org.codehaus.groovy.ast.expr.ArrayExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitSpreadExpression(org.codehaus.groovy.ast.expr.SpreadExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitSpreadMapExpression(org.codehaus.groovy.ast.expr.SpreadMapExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitNotExpression(org.codehaus.groovy.ast.expr.NotExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitUnaryMinusExpression(org.codehaus.groovy.ast.expr.UnaryMinusExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitUnaryPlusExpression(org.codehaus.groovy.ast.expr.UnaryPlusExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitBitwiseNegationExpression(org.codehaus.groovy.ast.expr.BitwiseNegationExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitCastExpression(org.codehaus.groovy.ast.expr.CastExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitClosureListExpression(org.codehaus.groovy.ast.expr.ClosureListExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitBytecodeExpression(org.codehaus.groovy.classgen.BytecodeExpression), org.codehaus.groovy.ast.CodeVisitorSupport#wait(long), org.codehaus.groovy.ast.CodeVisitorSupport#wait(long, int), org.codehaus.groovy.ast.CodeVisitorSupport#wait(), org.codehaus.groovy.ast.CodeVisitorSupport#equals(java.lang.Object), org.codehaus.groovy.ast.CodeVisitorSupport#toString(), org.codehaus.groovy.ast.CodeVisitorSupport#hashCode(), org.codehaus.groovy.ast.CodeVisitorSupport#getClass(), org.codehaus.groovy.ast.CodeVisitorSupport#notify(), org.codehaus.groovy.ast.CodeVisitorSupport#notifyAll(), org.codehaus.groovy.ast.CodeVisitorSupport#visitEmptyExpression(org.codehaus.groovy.ast.expr.EmptyExpression), org.codehaus.groovy.ast.CodeVisitorSupport#visitListOfExpressions(java.util.List) diff --git a/3.2.x/api/grails/views/compiler/ViewsTransform.ModelTypesVisitor.html b/3.2.x/api/grails/views/compiler/ViewsTransform.ModelTypesVisitor.html index bd69d2d2c..136d10420 100644 --- a/3.2.x/api/grails/views/compiler/ViewsTransform.ModelTypesVisitor.html +++ b/3.2.x/api/grails/views/compiler/ViewsTransform.ModelTypesVisitor.html @@ -27,7 +27,7 @@ - ViewsTransform.ModelTypesVisitor (Grails Views 3.2.2) + ViewsTransform.ModelTypesVisitor (Grails Views 3.2.3) @@ -37,7 +37,7 @@ @@ -266,7 +266,7 @@

Inherited Methods Summary

class org.codehaus.groovy.ast.ClassCodeVisitorSupport - org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitProperty(org.codehaus.groovy.ast.PropertyNode), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitClass(org.codehaus.groovy.ast.ClassNode), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitPackage(org.codehaus.groovy.ast.PackageNode), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitDeclarationExpression(org.codehaus.groovy.ast.expr.DeclarationExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#addError(java.lang.String, org.codehaus.groovy.ast.ASTNode), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitForLoop(org.codehaus.groovy.ast.stmt.ForStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitBlockStatement(org.codehaus.groovy.ast.stmt.BlockStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitWhileLoop(org.codehaus.groovy.ast.stmt.WhileStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitDoWhileLoop(org.codehaus.groovy.ast.stmt.DoWhileStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitIfElse(org.codehaus.groovy.ast.stmt.IfStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitExpressionStatement(org.codehaus.groovy.ast.stmt.ExpressionStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitReturnStatement(org.codehaus.groovy.ast.stmt.ReturnStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitAssertStatement(org.codehaus.groovy.ast.stmt.AssertStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitTryCatchFinally(org.codehaus.groovy.ast.stmt.TryCatchStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitSwitch(org.codehaus.groovy.ast.stmt.SwitchStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitCaseStatement(org.codehaus.groovy.ast.stmt.CaseStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitBreakStatement(org.codehaus.groovy.ast.stmt.BreakStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitContinueStatement(org.codehaus.groovy.ast.stmt.ContinueStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitThrowStatement(org.codehaus.groovy.ast.stmt.ThrowStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitSynchronizedStatement(org.codehaus.groovy.ast.stmt.SynchronizedStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitCatchStatement(org.codehaus.groovy.ast.stmt.CatchStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitConstructor(org.codehaus.groovy.ast.ConstructorNode), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitAnnotations(org.codehaus.groovy.ast.AnnotatedNode), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitImports(org.codehaus.groovy.ast.ModuleNode), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitMethod(org.codehaus.groovy.ast.MethodNode), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitField(org.codehaus.groovy.ast.FieldNode), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitShortTernaryExpression(org.codehaus.groovy.ast.expr.ElvisOperatorExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitBinaryExpression(org.codehaus.groovy.ast.expr.BinaryExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitPrefixExpression(org.codehaus.groovy.ast.expr.PrefixExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitPostfixExpression(org.codehaus.groovy.ast.expr.PostfixExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitBooleanExpression(org.codehaus.groovy.ast.expr.BooleanExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitLambdaExpression(org.codehaus.groovy.ast.expr.LambdaExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitMapEntryExpression(org.codehaus.groovy.ast.expr.MapEntryExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitListExpression(org.codehaus.groovy.ast.expr.ListExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitRangeExpression(org.codehaus.groovy.ast.expr.RangeExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitPropertyExpression(org.codehaus.groovy.ast.expr.PropertyExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitAttributeExpression(org.codehaus.groovy.ast.expr.AttributeExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitFieldExpression(org.codehaus.groovy.ast.expr.FieldExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitMethodPointerExpression(org.codehaus.groovy.ast.expr.MethodPointerExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitMethodReferenceExpression(org.codehaus.groovy.ast.expr.MethodReferenceExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitClassExpression(org.codehaus.groovy.ast.expr.ClassExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitVariableExpression(org.codehaus.groovy.ast.expr.VariableExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitGStringExpression(org.codehaus.groovy.ast.expr.GStringExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitArrayExpression(org.codehaus.groovy.ast.expr.ArrayExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitSpreadExpression(org.codehaus.groovy.ast.expr.SpreadExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitSpreadMapExpression(org.codehaus.groovy.ast.expr.SpreadMapExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitNotExpression(org.codehaus.groovy.ast.expr.NotExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitUnaryMinusExpression(org.codehaus.groovy.ast.expr.UnaryMinusExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitUnaryPlusExpression(org.codehaus.groovy.ast.expr.UnaryPlusExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitBitwiseNegationExpression(org.codehaus.groovy.ast.expr.BitwiseNegationExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitCastExpression(org.codehaus.groovy.ast.expr.CastExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitClosureListExpression(org.codehaus.groovy.ast.expr.ClosureListExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitEmptyStatement(org.codehaus.groovy.ast.stmt.EmptyStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitMethodCallExpression(org.codehaus.groovy.ast.expr.MethodCallExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitStaticMethodCallExpression(org.codehaus.groovy.ast.expr.StaticMethodCallExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitConstructorCallExpression(org.codehaus.groovy.ast.expr.ConstructorCallExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitTernaryExpression(org.codehaus.groovy.ast.expr.TernaryExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitMapExpression(org.codehaus.groovy.ast.expr.MapExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitClosureExpression(org.codehaus.groovy.ast.expr.ClosureExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitConstantExpression(org.codehaus.groovy.ast.expr.ConstantExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitArgumentlistExpression(org.codehaus.groovy.ast.expr.ArgumentListExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitTupleExpression(org.codehaus.groovy.ast.expr.TupleExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitBytecodeExpression(org.codehaus.groovy.classgen.BytecodeExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#wait(long), org.codehaus.groovy.ast.ClassCodeVisitorSupport#wait(long, int), org.codehaus.groovy.ast.ClassCodeVisitorSupport#wait(), org.codehaus.groovy.ast.ClassCodeVisitorSupport#equals(java.lang.Object), org.codehaus.groovy.ast.ClassCodeVisitorSupport#toString(), org.codehaus.groovy.ast.ClassCodeVisitorSupport#hashCode(), org.codehaus.groovy.ast.ClassCodeVisitorSupport#getClass(), org.codehaus.groovy.ast.ClassCodeVisitorSupport#notify(), org.codehaus.groovy.ast.ClassCodeVisitorSupport#notifyAll(), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitEmptyExpression(org.codehaus.groovy.ast.expr.EmptyExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitListOfExpressions(java.util.List) + org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitProperty(org.codehaus.groovy.ast.PropertyNode), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitClass(org.codehaus.groovy.ast.ClassNode), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitPackage(org.codehaus.groovy.ast.PackageNode), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitForLoop(org.codehaus.groovy.ast.stmt.ForStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitBlockStatement(org.codehaus.groovy.ast.stmt.BlockStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitWhileLoop(org.codehaus.groovy.ast.stmt.WhileStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitDoWhileLoop(org.codehaus.groovy.ast.stmt.DoWhileStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitIfElse(org.codehaus.groovy.ast.stmt.IfStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitSwitch(org.codehaus.groovy.ast.stmt.SwitchStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#addError(java.lang.String, org.codehaus.groovy.ast.ASTNode), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitExpressionStatement(org.codehaus.groovy.ast.stmt.ExpressionStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitReturnStatement(org.codehaus.groovy.ast.stmt.ReturnStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitAssertStatement(org.codehaus.groovy.ast.stmt.AssertStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitTryCatchFinally(org.codehaus.groovy.ast.stmt.TryCatchStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitCaseStatement(org.codehaus.groovy.ast.stmt.CaseStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitBreakStatement(org.codehaus.groovy.ast.stmt.BreakStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitContinueStatement(org.codehaus.groovy.ast.stmt.ContinueStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitThrowStatement(org.codehaus.groovy.ast.stmt.ThrowStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitSynchronizedStatement(org.codehaus.groovy.ast.stmt.SynchronizedStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitCatchStatement(org.codehaus.groovy.ast.stmt.CatchStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitDeclarationExpression(org.codehaus.groovy.ast.expr.DeclarationExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitConstructor(org.codehaus.groovy.ast.ConstructorNode), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitAnnotations(org.codehaus.groovy.ast.AnnotatedNode), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitImports(org.codehaus.groovy.ast.ModuleNode), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitMethod(org.codehaus.groovy.ast.MethodNode), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitField(org.codehaus.groovy.ast.FieldNode), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitConstantExpression(org.codehaus.groovy.ast.expr.ConstantExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitArgumentlistExpression(org.codehaus.groovy.ast.expr.ArgumentListExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitTupleExpression(org.codehaus.groovy.ast.expr.TupleExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitClosureExpression(org.codehaus.groovy.ast.expr.ClosureExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitEmptyStatement(org.codehaus.groovy.ast.stmt.EmptyStatement), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitMethodCallExpression(org.codehaus.groovy.ast.expr.MethodCallExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitStaticMethodCallExpression(org.codehaus.groovy.ast.expr.StaticMethodCallExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitConstructorCallExpression(org.codehaus.groovy.ast.expr.ConstructorCallExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitTernaryExpression(org.codehaus.groovy.ast.expr.TernaryExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitShortTernaryExpression(org.codehaus.groovy.ast.expr.ElvisOperatorExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitBinaryExpression(org.codehaus.groovy.ast.expr.BinaryExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitPrefixExpression(org.codehaus.groovy.ast.expr.PrefixExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitPostfixExpression(org.codehaus.groovy.ast.expr.PostfixExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitBooleanExpression(org.codehaus.groovy.ast.expr.BooleanExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitLambdaExpression(org.codehaus.groovy.ast.expr.LambdaExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitMapExpression(org.codehaus.groovy.ast.expr.MapExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitMapEntryExpression(org.codehaus.groovy.ast.expr.MapEntryExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitListExpression(org.codehaus.groovy.ast.expr.ListExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitRangeExpression(org.codehaus.groovy.ast.expr.RangeExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitPropertyExpression(org.codehaus.groovy.ast.expr.PropertyExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitAttributeExpression(org.codehaus.groovy.ast.expr.AttributeExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitFieldExpression(org.codehaus.groovy.ast.expr.FieldExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitMethodPointerExpression(org.codehaus.groovy.ast.expr.MethodPointerExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitMethodReferenceExpression(org.codehaus.groovy.ast.expr.MethodReferenceExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitClassExpression(org.codehaus.groovy.ast.expr.ClassExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitVariableExpression(org.codehaus.groovy.ast.expr.VariableExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitGStringExpression(org.codehaus.groovy.ast.expr.GStringExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitArrayExpression(org.codehaus.groovy.ast.expr.ArrayExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitSpreadExpression(org.codehaus.groovy.ast.expr.SpreadExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitSpreadMapExpression(org.codehaus.groovy.ast.expr.SpreadMapExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitNotExpression(org.codehaus.groovy.ast.expr.NotExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitUnaryMinusExpression(org.codehaus.groovy.ast.expr.UnaryMinusExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitUnaryPlusExpression(org.codehaus.groovy.ast.expr.UnaryPlusExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitBitwiseNegationExpression(org.codehaus.groovy.ast.expr.BitwiseNegationExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitCastExpression(org.codehaus.groovy.ast.expr.CastExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitClosureListExpression(org.codehaus.groovy.ast.expr.ClosureListExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitBytecodeExpression(org.codehaus.groovy.classgen.BytecodeExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#wait(long), org.codehaus.groovy.ast.ClassCodeVisitorSupport#wait(long, int), org.codehaus.groovy.ast.ClassCodeVisitorSupport#wait(), org.codehaus.groovy.ast.ClassCodeVisitorSupport#equals(java.lang.Object), org.codehaus.groovy.ast.ClassCodeVisitorSupport#toString(), org.codehaus.groovy.ast.ClassCodeVisitorSupport#hashCode(), org.codehaus.groovy.ast.ClassCodeVisitorSupport#getClass(), org.codehaus.groovy.ast.ClassCodeVisitorSupport#notify(), org.codehaus.groovy.ast.ClassCodeVisitorSupport#notifyAll(), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitEmptyExpression(org.codehaus.groovy.ast.expr.EmptyExpression), org.codehaus.groovy.ast.ClassCodeVisitorSupport#visitListOfExpressions(java.util.List) diff --git a/3.2.x/api/grails/views/compiler/ViewsTransform.html b/3.2.x/api/grails/views/compiler/ViewsTransform.html index 0d2907846..560ea70af 100644 --- a/3.2.x/api/grails/views/compiler/ViewsTransform.html +++ b/3.2.x/api/grails/views/compiler/ViewsTransform.html @@ -27,7 +27,7 @@ - ViewsTransform (Grails Views 3.2.2) + ViewsTransform (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/gradle/AbstractGroovyTemplateCompileTask.1.html b/3.2.x/api/grails/views/gradle/AbstractGroovyTemplateCompileTask.1.html index 18563a117..9f3935a3a 100644 --- a/3.2.x/api/grails/views/gradle/AbstractGroovyTemplateCompileTask.1.html +++ b/3.2.x/api/grails/views/gradle/AbstractGroovyTemplateCompileTask.1.html @@ -27,7 +27,7 @@ - AbstractGroovyTemplateCompileTask.1 (Grails Views 3.2.2) + AbstractGroovyTemplateCompileTask.1 (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/gradle/AbstractGroovyTemplateCompileTask.html b/3.2.x/api/grails/views/gradle/AbstractGroovyTemplateCompileTask.html index 5ea435f13..d4364dbda 100644 --- a/3.2.x/api/grails/views/gradle/AbstractGroovyTemplateCompileTask.html +++ b/3.2.x/api/grails/views/gradle/AbstractGroovyTemplateCompileTask.html @@ -27,7 +27,7 @@ - AbstractGroovyTemplateCompileTask (Grails Views 3.2.2) + AbstractGroovyTemplateCompileTask (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/gradle/AbstractGroovyTemplatePlugin.html b/3.2.x/api/grails/views/gradle/AbstractGroovyTemplatePlugin.html index 15675e698..cd8df73c2 100644 --- a/3.2.x/api/grails/views/gradle/AbstractGroovyTemplatePlugin.html +++ b/3.2.x/api/grails/views/gradle/AbstractGroovyTemplatePlugin.html @@ -27,7 +27,7 @@ - AbstractGroovyTemplatePlugin (Grails Views 3.2.2) + AbstractGroovyTemplatePlugin (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/gradle/ViewCompileOptions.html b/3.2.x/api/grails/views/gradle/ViewCompileOptions.html index 61ace0e81..dcf45f44b 100644 --- a/3.2.x/api/grails/views/gradle/ViewCompileOptions.html +++ b/3.2.x/api/grails/views/gradle/ViewCompileOptions.html @@ -27,7 +27,7 @@ - ViewCompileOptions (Grails Views 3.2.2) + ViewCompileOptions (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/gradle/json/GrailsJsonViewsPlugin.html b/3.2.x/api/grails/views/gradle/json/GrailsJsonViewsPlugin.html index db4f55448..62dd340b4 100644 --- a/3.2.x/api/grails/views/gradle/json/GrailsJsonViewsPlugin.html +++ b/3.2.x/api/grails/views/gradle/json/GrailsJsonViewsPlugin.html @@ -27,7 +27,7 @@ - GrailsJsonViewsPlugin (Grails Views 3.2.2) + GrailsJsonViewsPlugin (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/gradle/json/JsonViewCompilerTask.html b/3.2.x/api/grails/views/gradle/json/JsonViewCompilerTask.html index ff05097a5..4d9519aab 100644 --- a/3.2.x/api/grails/views/gradle/json/JsonViewCompilerTask.html +++ b/3.2.x/api/grails/views/gradle/json/JsonViewCompilerTask.html @@ -27,7 +27,7 @@ - JsonViewCompilerTask (Grails Views 3.2.2) + JsonViewCompilerTask (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/gradle/markup/GrailsMarkupViewsPlugin.html b/3.2.x/api/grails/views/gradle/markup/GrailsMarkupViewsPlugin.html index f13aeb1ae..af495c533 100644 --- a/3.2.x/api/grails/views/gradle/markup/GrailsMarkupViewsPlugin.html +++ b/3.2.x/api/grails/views/gradle/markup/GrailsMarkupViewsPlugin.html @@ -27,7 +27,7 @@ - GrailsMarkupViewsPlugin (Grails Views 3.2.2) + GrailsMarkupViewsPlugin (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/gradle/markup/MarkupViewCompilerTask.html b/3.2.x/api/grails/views/gradle/markup/MarkupViewCompilerTask.html index e0dacd9bf..3c288d6ed 100644 --- a/3.2.x/api/grails/views/gradle/markup/MarkupViewCompilerTask.html +++ b/3.2.x/api/grails/views/gradle/markup/MarkupViewCompilerTask.html @@ -27,7 +27,7 @@ - MarkupViewCompilerTask (Grails Views 3.2.2) + MarkupViewCompilerTask (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/json/test/JsonViewUnitTest.TestHttpResponse.html b/3.2.x/api/grails/views/json/test/JsonViewUnitTest.TestHttpResponse.html index 58f8e55a1..1402d0101 100644 --- a/3.2.x/api/grails/views/json/test/JsonViewUnitTest.TestHttpResponse.html +++ b/3.2.x/api/grails/views/json/test/JsonViewUnitTest.TestHttpResponse.html @@ -27,7 +27,7 @@ - JsonViewUnitTest.TestHttpResponse (Grails Views 3.2.2) + JsonViewUnitTest.TestHttpResponse (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/json/test/JsonViewUnitTest.html b/3.2.x/api/grails/views/json/test/JsonViewUnitTest.html index a3fad04c8..6ae6a184b 100644 --- a/3.2.x/api/grails/views/json/test/JsonViewUnitTest.html +++ b/3.2.x/api/grails/views/json/test/JsonViewUnitTest.html @@ -27,7 +27,7 @@ - JsonViewUnitTest (Grails Views 3.2.2) + JsonViewUnitTest (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/json/test/spock/JsonViewSetupSpecInterceptor.html b/3.2.x/api/grails/views/json/test/spock/JsonViewSetupSpecInterceptor.html index 3f6b95943..7eb6cc46a 100644 --- a/3.2.x/api/grails/views/json/test/spock/JsonViewSetupSpecInterceptor.html +++ b/3.2.x/api/grails/views/json/test/spock/JsonViewSetupSpecInterceptor.html @@ -27,7 +27,7 @@ - JsonViewSetupSpecInterceptor (Grails Views 3.2.2) + JsonViewSetupSpecInterceptor (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/json/test/spock/JsonViewSpockExtension.html b/3.2.x/api/grails/views/json/test/spock/JsonViewSpockExtension.html index 8119921b8..809a26de0 100644 --- a/3.2.x/api/grails/views/json/test/spock/JsonViewSpockExtension.html +++ b/3.2.x/api/grails/views/json/test/spock/JsonViewSpockExtension.html @@ -27,7 +27,7 @@ - JsonViewSpockExtension (Grails Views 3.2.2) + JsonViewSpockExtension (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/mvc/GenericGroovyTemplateView.HttpViewRequest.html b/3.2.x/api/grails/views/mvc/GenericGroovyTemplateView.HttpViewRequest.html index 0637c04e0..84948d475 100644 --- a/3.2.x/api/grails/views/mvc/GenericGroovyTemplateView.HttpViewRequest.html +++ b/3.2.x/api/grails/views/mvc/GenericGroovyTemplateView.HttpViewRequest.html @@ -27,7 +27,7 @@ - GenericGroovyTemplateView.HttpViewRequest (Grails Views 3.2.2) + GenericGroovyTemplateView.HttpViewRequest (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/mvc/GenericGroovyTemplateView.HttpViewResponse.html b/3.2.x/api/grails/views/mvc/GenericGroovyTemplateView.HttpViewResponse.html index 7c30587d2..25383552c 100644 --- a/3.2.x/api/grails/views/mvc/GenericGroovyTemplateView.HttpViewResponse.html +++ b/3.2.x/api/grails/views/mvc/GenericGroovyTemplateView.HttpViewResponse.html @@ -27,7 +27,7 @@ - GenericGroovyTemplateView.HttpViewResponse (Grails Views 3.2.2) + GenericGroovyTemplateView.HttpViewResponse (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/mvc/GenericGroovyTemplateView.html b/3.2.x/api/grails/views/mvc/GenericGroovyTemplateView.html index a6d7d9f25..2dcf8c21f 100644 --- a/3.2.x/api/grails/views/mvc/GenericGroovyTemplateView.html +++ b/3.2.x/api/grails/views/mvc/GenericGroovyTemplateView.html @@ -27,7 +27,7 @@ - GenericGroovyTemplateView (Grails Views 3.2.2) + GenericGroovyTemplateView (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/mvc/GenericGroovyTemplateViewResolver.html b/3.2.x/api/grails/views/mvc/GenericGroovyTemplateViewResolver.html index 57a40a875..14a4463ce 100644 --- a/3.2.x/api/grails/views/mvc/GenericGroovyTemplateViewResolver.html +++ b/3.2.x/api/grails/views/mvc/GenericGroovyTemplateViewResolver.html @@ -27,7 +27,7 @@ - GenericGroovyTemplateViewResolver (Grails Views 3.2.2) + GenericGroovyTemplateViewResolver (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/mvc/SmartViewResolver.html b/3.2.x/api/grails/views/mvc/SmartViewResolver.html index 0c94054d7..8f4c5bef3 100644 --- a/3.2.x/api/grails/views/mvc/SmartViewResolver.html +++ b/3.2.x/api/grails/views/mvc/SmartViewResolver.html @@ -27,7 +27,7 @@ - SmartViewResolver (Grails Views 3.2.2) + SmartViewResolver (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/mvc/http/DelegatingParameters.html b/3.2.x/api/grails/views/mvc/http/DelegatingParameters.html index d9697655a..b066fb7ec 100644 --- a/3.2.x/api/grails/views/mvc/http/DelegatingParameters.html +++ b/3.2.x/api/grails/views/mvc/http/DelegatingParameters.html @@ -27,7 +27,7 @@ - DelegatingParameters (Grails Views 3.2.2) + DelegatingParameters (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/mvc/renderer/DefaultViewRenderer.html b/3.2.x/api/grails/views/mvc/renderer/DefaultViewRenderer.html index 23226986d..31f36aaf8 100644 --- a/3.2.x/api/grails/views/mvc/renderer/DefaultViewRenderer.html +++ b/3.2.x/api/grails/views/mvc/renderer/DefaultViewRenderer.html @@ -27,7 +27,7 @@ - DefaultViewRenderer (Grails Views 3.2.2) + DefaultViewRenderer (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/resolve/GenericGroovyTemplateResolver.html b/3.2.x/api/grails/views/resolve/GenericGroovyTemplateResolver.html index ac276f3fb..16b51d18a 100644 --- a/3.2.x/api/grails/views/resolve/GenericGroovyTemplateResolver.html +++ b/3.2.x/api/grails/views/resolve/GenericGroovyTemplateResolver.html @@ -27,7 +27,7 @@ - GenericGroovyTemplateResolver (Grails Views 3.2.2) + GenericGroovyTemplateResolver (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/resolve/GenericViewUriResolver.html b/3.2.x/api/grails/views/resolve/GenericViewUriResolver.html index a2ef92115..a5c7e8748 100644 --- a/3.2.x/api/grails/views/resolve/GenericViewUriResolver.html +++ b/3.2.x/api/grails/views/resolve/GenericViewUriResolver.html @@ -27,7 +27,7 @@ - GenericViewUriResolver (Grails Views 3.2.2) + GenericViewUriResolver (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/resolve/PluginAwareTemplateResolver.html b/3.2.x/api/grails/views/resolve/PluginAwareTemplateResolver.html index 6cc9ffed1..724556295 100644 --- a/3.2.x/api/grails/views/resolve/PluginAwareTemplateResolver.html +++ b/3.2.x/api/grails/views/resolve/PluginAwareTemplateResolver.html @@ -27,7 +27,7 @@ - PluginAwareTemplateResolver (Grails Views 3.2.2) + PluginAwareTemplateResolver (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/resolve/TemplateResolverUtils.html b/3.2.x/api/grails/views/resolve/TemplateResolverUtils.html index 0b943e260..8091eb075 100644 --- a/3.2.x/api/grails/views/resolve/TemplateResolverUtils.html +++ b/3.2.x/api/grails/views/resolve/TemplateResolverUtils.html @@ -27,7 +27,7 @@ - TemplateResolverUtils (Grails Views 3.2.2) + TemplateResolverUtils (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/grails/views/utils/ViewUtils.html b/3.2.x/api/grails/views/utils/ViewUtils.html index 99bb7ad4b..7b5c92d54 100644 --- a/3.2.x/api/grails/views/utils/ViewUtils.html +++ b/3.2.x/api/grails/views/utils/ViewUtils.html @@ -27,7 +27,7 @@ - ViewUtils (Grails Views 3.2.2) + ViewUtils (Grails Views 3.2.3) @@ -37,7 +37,7 @@ diff --git a/3.2.x/api/overview-frame.html b/3.2.x/api/overview-frame.html index 26ab6f70e..ea2ed5c68 100644 --- a/3.2.x/api/overview-frame.html +++ b/3.2.x/api/overview-frame.html @@ -21,7 +21,7 @@ -Overview (Grails Views 3.2.2) +Overview (Grails Views 3.2.3) diff --git a/3.2.x/api/overview-summary.html b/3.2.x/api/overview-summary.html index 9cc626396..141df0bde 100644 --- a/3.2.x/api/overview-summary.html +++ b/3.2.x/api/overview-summary.html @@ -66,7 +66,7 @@
-

Grails Views 3.2.2

+

Grails Views 3.2.3

diff --git a/3.2.x/index.html b/3.2.x/index.html index 5c5a8e230..af46d0d9d 100644 --- a/3.2.x/index.html +++ b/3.2.x/index.html @@ -441,7 +441,7 @@