1 package com
.google
.apphosting
.utils
.config
;
3 import com
.google
.common
.collect
.ImmutableList
;
8 * Holder for application.xml properties. Only properties needed to upload
9 * an application or run it in the Java Development Server are included.
12 public class ApplicationXml
{
13 private final Modules modules
;
15 private ApplicationXml(Modules modules
) {
16 this.modules
= modules
;
19 public Modules
getModules() {
24 public int hashCode() {
27 result
= prime
* result
+ ((modules
== null) ?
0 : modules
.hashCode());
32 public boolean equals(Object obj
) {
39 if (getClass() != obj
.getClass()) {
42 ApplicationXml other
= (ApplicationXml
) obj
;
43 if (modules
== null) {
44 if (other
.modules
!= null) {
47 } else if (!modules
.equals(other
.modules
)) {
54 public String
toString() {
55 return "ApplicationXml: modules=" + modules
;
59 * Returns a {@link Builder}.
61 static Builder
builder() {
66 * Builder for an {@link ApplicationXml}.
68 public static class Builder
{
69 Modules
.Builder modulesBuilder
= Modules
.Builder
.builder();
75 * Returns a {@link Modules.Builder} for adding modules.
77 public Modules
.Builder
getModulesBuilder() {
78 return modulesBuilder
;
82 * Builds and returns a new {@link ApplicationXml}.
84 public ApplicationXml
build() {
85 return new ApplicationXml(modulesBuilder
.build());
90 * Holder for an application's modules properties.
92 public static class Modules
{
93 private final ImmutableList
<Web
> web
;
95 private Modules(ImmutableList
<Web
> web
) {
99 public List
<Web
> getWeb() {
104 public int hashCode() {
105 final int prime
= 31;
107 result
= prime
* result
+ ((web
== null) ?
0 : web
.hashCode());
112 public boolean equals(Object obj
) {
119 if (getClass() != obj
.getClass()) {
122 Modules other
= (Modules
) obj
;
124 if (other
.web
!= null) {
127 } else if (!web
.equals(other
.web
)) {
134 public String
toString() {
135 return "Modules: web=" + web
;
139 * Builder for {@link Modules}.
141 static class Builder
{
142 ImmutableList
.Builder
<Web
> webBuilder
= ImmutableList
.builder();
148 * Returns a new {@link Builder}.
150 private static Builder
builder() {
151 return new Builder();
155 * Adds a {@link Web}.
157 Builder
addWeb(Web web
) {
163 * Builds and returns the newly constructed {@link Modules}.
166 return new Modules(webBuilder
.build());
171 * Holder for properties for a web module.
173 public static class Web
{
176 public int hashCode() {
177 final int prime
= 31;
179 result
= prime
* result
+ ((contextRoot
== null) ?
0 : contextRoot
.hashCode());
180 result
= prime
* result
+ ((webUri
== null) ?
0 : webUri
.hashCode());
185 public boolean equals(Object obj
) {
192 if (getClass() != obj
.getClass()) {
195 Web other
= (Web
) obj
;
196 if (contextRoot
== null) {
197 if (other
.contextRoot
!= null) {
200 } else if (!contextRoot
.equals(other
.contextRoot
)) {
203 if (webUri
== null) {
204 if (other
.webUri
!= null) {
207 } else if (!webUri
.equals(other
.webUri
)) {
213 private final String webUri
;
214 private final String contextRoot
;
216 Web(String webUri
, String contextRoot
) {
217 this.webUri
= webUri
;
218 this.contextRoot
= contextRoot
;
221 public String
getWebUri() {
225 public String
getContextRoot() {
230 public String
toString() {
231 return "Web: webUri=" + webUri
+ " contextRoot=" + contextRoot
;