diff --git a/site/0.0.7/apidocs/allclasses-frame.html b/site/0.0.7/apidocs/allclasses-frame.html new file mode 100644 index 000000000000..4707e68a628d --- /dev/null +++ b/site/0.0.7/apidocs/allclasses-frame.html @@ -0,0 +1,185 @@ + + + + + + +All Classes (GCloud Java 0.0.7-SNAPSHOT API) + + + + + +

All Classes

+
+ +
+ + diff --git a/site/0.0.7/apidocs/allclasses-noframe.html b/site/0.0.7/apidocs/allclasses-noframe.html new file mode 100644 index 000000000000..e77bdb1cb46b --- /dev/null +++ b/site/0.0.7/apidocs/allclasses-noframe.html @@ -0,0 +1,185 @@ + + + + + + +All Classes (GCloud Java 0.0.7-SNAPSHOT API) + + + + + +

All Classes

+
+ +
+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/AuthCredentials.ServiceAccountAuthCredentials.html b/site/0.0.7/apidocs/com/google/gcloud/AuthCredentials.ServiceAccountAuthCredentials.html new file mode 100644 index 000000000000..0bcc34eac1f2 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/AuthCredentials.ServiceAccountAuthCredentials.html @@ -0,0 +1,342 @@ + + + + + + +AuthCredentials.ServiceAccountAuthCredentials (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud
+

Class AuthCredentials.ServiceAccountAuthCredentials

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/AuthCredentials.html b/site/0.0.7/apidocs/com/google/gcloud/AuthCredentials.html new file mode 100644 index 000000000000..25137c69ad94 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/AuthCredentials.html @@ -0,0 +1,396 @@ + + + + + + +AuthCredentials (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud
+

Class AuthCredentials

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/BaseService.html b/site/0.0.7/apidocs/com/google/gcloud/BaseService.html new file mode 100644 index 000000000000..df414300d061 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/BaseService.html @@ -0,0 +1,284 @@ + + + + + + +BaseService (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud
+

Class BaseService<OptionsT extends ServiceOptions<?,OptionsT>>

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/ExceptionHandler.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/ExceptionHandler.Builder.html new file mode 100644 index 000000000000..0061f20b4138 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/ExceptionHandler.Builder.html @@ -0,0 +1,313 @@ + + + + + + +ExceptionHandler.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud
+

Class ExceptionHandler.Builder

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/ExceptionHandler.Interceptor.RetryResult.html b/site/0.0.7/apidocs/com/google/gcloud/ExceptionHandler.Interceptor.RetryResult.html new file mode 100644 index 000000000000..6f984889d35f --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/ExceptionHandler.Interceptor.RetryResult.html @@ -0,0 +1,345 @@ + + + + + + +ExceptionHandler.Interceptor.RetryResult (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud
+

Enum ExceptionHandler.Interceptor.RetryResult

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/ExceptionHandler.Interceptor.html b/site/0.0.7/apidocs/com/google/gcloud/ExceptionHandler.Interceptor.html new file mode 100644 index 000000000000..70d6c9626677 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/ExceptionHandler.Interceptor.html @@ -0,0 +1,287 @@ + + + + + + +ExceptionHandler.Interceptor (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud
+

Interface ExceptionHandler.Interceptor

+
+
+
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/ExceptionHandler.html b/site/0.0.7/apidocs/com/google/gcloud/ExceptionHandler.html new file mode 100644 index 000000000000..d807ff64467d --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/ExceptionHandler.html @@ -0,0 +1,314 @@ + + + + + + +ExceptionHandler (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud
+

Class ExceptionHandler

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/RetryHelper.NonRetriableException.html b/site/0.0.7/apidocs/com/google/gcloud/RetryHelper.NonRetriableException.html new file mode 100644 index 000000000000..da77f5e7bdaa --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/RetryHelper.NonRetriableException.html @@ -0,0 +1,237 @@ + + + + + + +RetryHelper.NonRetriableException (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud
+

Class RetryHelper.NonRetriableException

+
+
+ +
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/RetryHelper.RetriesExhaustedException.html b/site/0.0.7/apidocs/com/google/gcloud/RetryHelper.RetriesExhaustedException.html new file mode 100644 index 000000000000..0854a54e90d9 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/RetryHelper.RetriesExhaustedException.html @@ -0,0 +1,238 @@ + + + + + + +RetryHelper.RetriesExhaustedException (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud
+

Class RetryHelper.RetriesExhaustedException

+
+
+ +
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/RetryHelper.RetryHelperException.html b/site/0.0.7/apidocs/com/google/gcloud/RetryHelper.RetryHelperException.html new file mode 100644 index 000000000000..040b69ad1773 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/RetryHelper.RetryHelperException.html @@ -0,0 +1,235 @@ + + + + + + +RetryHelper.RetryHelperException (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud
+

Class RetryHelper.RetryHelperException

+
+
+ +
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/RetryHelper.RetryInterruptedException.html b/site/0.0.7/apidocs/com/google/gcloud/RetryHelper.RetryInterruptedException.html new file mode 100644 index 000000000000..98b51b739681 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/RetryHelper.RetryInterruptedException.html @@ -0,0 +1,286 @@ + + + + + + +RetryHelper.RetryInterruptedException (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud
+

Class RetryHelper.RetryInterruptedException

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/RetryHelper.html b/site/0.0.7/apidocs/com/google/gcloud/RetryHelper.html new file mode 100644 index 000000000000..eaf83a4fdaf3 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/RetryHelper.html @@ -0,0 +1,326 @@ + + + + + + +RetryHelper (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud
+

Class RetryHelper<V>

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/RetryParams.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/RetryParams.Builder.html new file mode 100644 index 000000000000..49f7c4ce0d7c --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/RetryParams.Builder.html @@ -0,0 +1,381 @@ + + + + + + +RetryParams.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud
+

Class RetryParams.Builder

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/RetryParams.html b/site/0.0.7/apidocs/com/google/gcloud/RetryParams.html new file mode 100644 index 000000000000..155d23b11628 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/RetryParams.html @@ -0,0 +1,585 @@ + + + + + + +RetryParams (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud
+

Class RetryParams

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/Service.html b/site/0.0.7/apidocs/com/google/gcloud/Service.html new file mode 100644 index 000000000000..d5ec6dcdf4a6 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/Service.html @@ -0,0 +1,229 @@ + + + + + + +Service (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud
+

Interface Service<OptionsT extends ServiceOptions<?,OptionsT>>

+
+
+
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/ServiceOptions.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/ServiceOptions.Builder.html new file mode 100644 index 000000000000..654b39d05291 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/ServiceOptions.Builder.html @@ -0,0 +1,385 @@ + + + + + + +ServiceOptions.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud
+

Class ServiceOptions.Builder<ServiceRpcT,OptionsT extends ServiceOptions<ServiceRpcT,OptionsT>,B extends ServiceOptions.Builder<ServiceRpcT,OptionsT,B>>

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/ServiceOptions.HttpTransportFactory.html b/site/0.0.7/apidocs/com/google/gcloud/ServiceOptions.HttpTransportFactory.html new file mode 100644 index 000000000000..c090f61ff753 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/ServiceOptions.HttpTransportFactory.html @@ -0,0 +1,230 @@ + + + + + + +ServiceOptions.HttpTransportFactory (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud
+

Interface ServiceOptions.HttpTransportFactory

+
+
+
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/ServiceOptions.html b/site/0.0.7/apidocs/com/google/gcloud/ServiceOptions.html new file mode 100644 index 000000000000..277f2e9df5b8 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/ServiceOptions.html @@ -0,0 +1,511 @@ + + + + + + +ServiceOptions (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud
+

Class ServiceOptions<ServiceRpcT,OptionsT extends ServiceOptions<ServiceRpcT,OptionsT>>

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/class-use/AuthCredentials.ServiceAccountAuthCredentials.html b/site/0.0.7/apidocs/com/google/gcloud/class-use/AuthCredentials.ServiceAccountAuthCredentials.html new file mode 100644 index 000000000000..f1539bdec1a6 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/class-use/AuthCredentials.ServiceAccountAuthCredentials.html @@ -0,0 +1,191 @@ + + + + + + +Uses of Class com.google.gcloud.AuthCredentials.ServiceAccountAuthCredentials (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.AuthCredentials.ServiceAccountAuthCredentials

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/class-use/AuthCredentials.html b/site/0.0.7/apidocs/com/google/gcloud/class-use/AuthCredentials.html new file mode 100644 index 000000000000..2011e86b0736 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/class-use/AuthCredentials.html @@ -0,0 +1,208 @@ + + + + + + +Uses of Class com.google.gcloud.AuthCredentials (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.AuthCredentials

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/class-use/BaseService.html b/site/0.0.7/apidocs/com/google/gcloud/class-use/BaseService.html new file mode 100644 index 000000000000..f1c2fa4cc6c9 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/class-use/BaseService.html @@ -0,0 +1,124 @@ + + + + + + +Uses of Class com.google.gcloud.BaseService (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.BaseService

+
+
No usage of com.google.gcloud.BaseService
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/class-use/ExceptionHandler.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/class-use/ExceptionHandler.Builder.html new file mode 100644 index 000000000000..d4c3ec60be8d --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/class-use/ExceptionHandler.Builder.html @@ -0,0 +1,182 @@ + + + + + + +Uses of Class com.google.gcloud.ExceptionHandler.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.ExceptionHandler.Builder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/class-use/ExceptionHandler.Interceptor.RetryResult.html b/site/0.0.7/apidocs/com/google/gcloud/class-use/ExceptionHandler.Interceptor.RetryResult.html new file mode 100644 index 000000000000..fc1dd3c4eb80 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/class-use/ExceptionHandler.Interceptor.RetryResult.html @@ -0,0 +1,202 @@ + + + + + + +Uses of Class com.google.gcloud.ExceptionHandler.Interceptor.RetryResult (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.ExceptionHandler.Interceptor.RetryResult

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/class-use/ExceptionHandler.Interceptor.html b/site/0.0.7/apidocs/com/google/gcloud/class-use/ExceptionHandler.Interceptor.html new file mode 100644 index 000000000000..a906e89fe560 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/class-use/ExceptionHandler.Interceptor.html @@ -0,0 +1,166 @@ + + + + + + +Uses of Interface com.google.gcloud.ExceptionHandler.Interceptor (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Interface
com.google.gcloud.ExceptionHandler.Interceptor

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/class-use/ExceptionHandler.html b/site/0.0.7/apidocs/com/google/gcloud/class-use/ExceptionHandler.html new file mode 100644 index 000000000000..45790a5d7cb9 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/class-use/ExceptionHandler.html @@ -0,0 +1,187 @@ + + + + + + +Uses of Class com.google.gcloud.ExceptionHandler (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.ExceptionHandler

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/class-use/RetryHelper.NonRetriableException.html b/site/0.0.7/apidocs/com/google/gcloud/class-use/RetryHelper.NonRetriableException.html new file mode 100644 index 000000000000..5d3353470239 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/class-use/RetryHelper.NonRetriableException.html @@ -0,0 +1,124 @@ + + + + + + +Uses of Class com.google.gcloud.RetryHelper.NonRetriableException (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.RetryHelper.NonRetriableException

+
+
No usage of com.google.gcloud.RetryHelper.NonRetriableException
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/class-use/RetryHelper.RetriesExhaustedException.html b/site/0.0.7/apidocs/com/google/gcloud/class-use/RetryHelper.RetriesExhaustedException.html new file mode 100644 index 000000000000..4a8ba66003f4 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/class-use/RetryHelper.RetriesExhaustedException.html @@ -0,0 +1,124 @@ + + + + + + +Uses of Class com.google.gcloud.RetryHelper.RetriesExhaustedException (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.RetryHelper.RetriesExhaustedException

+
+
No usage of com.google.gcloud.RetryHelper.RetriesExhaustedException
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/class-use/RetryHelper.RetryHelperException.html b/site/0.0.7/apidocs/com/google/gcloud/class-use/RetryHelper.RetryHelperException.html new file mode 100644 index 000000000000..33e2cd85af80 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/class-use/RetryHelper.RetryHelperException.html @@ -0,0 +1,198 @@ + + + + + + +Uses of Class com.google.gcloud.RetryHelper.RetryHelperException (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.RetryHelper.RetryHelperException

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/class-use/RetryHelper.RetryInterruptedException.html b/site/0.0.7/apidocs/com/google/gcloud/class-use/RetryHelper.RetryInterruptedException.html new file mode 100644 index 000000000000..51a9ef3b6be8 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/class-use/RetryHelper.RetryInterruptedException.html @@ -0,0 +1,166 @@ + + + + + + +Uses of Class com.google.gcloud.RetryHelper.RetryInterruptedException (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.RetryHelper.RetryInterruptedException

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/class-use/RetryHelper.html b/site/0.0.7/apidocs/com/google/gcloud/class-use/RetryHelper.html new file mode 100644 index 000000000000..3a13084d45c9 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/class-use/RetryHelper.html @@ -0,0 +1,124 @@ + + + + + + +Uses of Class com.google.gcloud.RetryHelper (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.RetryHelper

+
+
No usage of com.google.gcloud.RetryHelper
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/class-use/RetryParams.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/class-use/RetryParams.Builder.html new file mode 100644 index 000000000000..092be0f9cfc1 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/class-use/RetryParams.Builder.html @@ -0,0 +1,200 @@ + + + + + + +Uses of Class com.google.gcloud.RetryParams.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.RetryParams.Builder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/class-use/RetryParams.html b/site/0.0.7/apidocs/com/google/gcloud/class-use/RetryParams.html new file mode 100644 index 000000000000..07b1795ea988 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/class-use/RetryParams.html @@ -0,0 +1,199 @@ + + + + + + +Uses of Class com.google.gcloud.RetryParams (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.RetryParams

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/class-use/Service.html b/site/0.0.7/apidocs/com/google/gcloud/class-use/Service.html new file mode 100644 index 000000000000..37f80e9ed6d7 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/class-use/Service.html @@ -0,0 +1,216 @@ + + + + + + +Uses of Interface com.google.gcloud.Service (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Interface
com.google.gcloud.Service

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/class-use/ServiceOptions.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/class-use/ServiceOptions.Builder.html new file mode 100644 index 000000000000..3fcdb07e304a --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/class-use/ServiceOptions.Builder.html @@ -0,0 +1,236 @@ + + + + + + +Uses of Class com.google.gcloud.ServiceOptions.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.ServiceOptions.Builder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/class-use/ServiceOptions.HttpTransportFactory.html b/site/0.0.7/apidocs/com/google/gcloud/class-use/ServiceOptions.HttpTransportFactory.html new file mode 100644 index 000000000000..9c7f6fa83644 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/class-use/ServiceOptions.HttpTransportFactory.html @@ -0,0 +1,177 @@ + + + + + + +Uses of Interface com.google.gcloud.ServiceOptions.HttpTransportFactory (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Interface
com.google.gcloud.ServiceOptions.HttpTransportFactory

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/class-use/ServiceOptions.html b/site/0.0.7/apidocs/com/google/gcloud/class-use/ServiceOptions.html new file mode 100644 index 000000000000..f24c949f8fc7 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/class-use/ServiceOptions.html @@ -0,0 +1,301 @@ + + + + + + +Uses of Class com.google.gcloud.ServiceOptions (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.ServiceOptions

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/BaseDatastoreBatchWriter.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/BaseDatastoreBatchWriter.html new file mode 100644 index 000000000000..2e107f5c3c9e --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/BaseDatastoreBatchWriter.html @@ -0,0 +1,550 @@ + + + + + + +BaseDatastoreBatchWriter (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class BaseDatastoreBatchWriter

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/BaseEntity.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/BaseEntity.Builder.html new file mode 100644 index 000000000000..5ebea1795ac4 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/BaseEntity.Builder.html @@ -0,0 +1,524 @@ + + + + + + +BaseEntity.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class BaseEntity.Builder<K extends IncompleteKey,B extends BaseEntity.Builder<K,B>>

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/BaseEntity.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/BaseEntity.html new file mode 100644 index 000000000000..2cb6ffbb63ff --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/BaseEntity.html @@ -0,0 +1,668 @@ + + + + + + +BaseEntity (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class BaseEntity<K extends IncompleteKey>

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/Batch.Response.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/Batch.Response.html new file mode 100644 index 000000000000..d7e4fb820308 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/Batch.Response.html @@ -0,0 +1,225 @@ + + + + + + +Batch.Response (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Interface Batch.Response

+
+
+
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/Batch.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/Batch.html new file mode 100644 index 000000000000..356cd44d7f1b --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/Batch.html @@ -0,0 +1,432 @@ + + + + + + +Batch (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Interface Batch

+
+
+
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/BatchOption.ForceWrites.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/BatchOption.ForceWrites.html new file mode 100644 index 000000000000..f90a14d2f96b --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/BatchOption.ForceWrites.html @@ -0,0 +1,310 @@ + + + + + + +BatchOption.ForceWrites (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class BatchOption.ForceWrites

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/BatchOption.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/BatchOption.html new file mode 100644 index 000000000000..183c427e788e --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/BatchOption.html @@ -0,0 +1,269 @@ + + + + + + +BatchOption (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class BatchOption

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/Blob.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/Blob.html new file mode 100644 index 000000000000..37439c942d49 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/Blob.html @@ -0,0 +1,481 @@ + + + + + + +Blob (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class Blob

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/BlobValue.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/BlobValue.Builder.html new file mode 100644 index 000000000000..d696c41aaf5a --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/BlobValue.Builder.html @@ -0,0 +1,389 @@ + + + + + + +BlobValue.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class BlobValue.Builder

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/BlobValue.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/BlobValue.html new file mode 100644 index 000000000000..0dc960d3df90 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/BlobValue.html @@ -0,0 +1,375 @@ + + + + + + +BlobValue (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class BlobValue

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/BooleanValue.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/BooleanValue.Builder.html new file mode 100644 index 000000000000..6d1beea5f27e --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/BooleanValue.Builder.html @@ -0,0 +1,389 @@ + + + + + + +BooleanValue.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class BooleanValue.Builder

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/BooleanValue.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/BooleanValue.html new file mode 100644 index 000000000000..c7cca0034fbc --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/BooleanValue.html @@ -0,0 +1,375 @@ + + + + + + +BooleanValue (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class BooleanValue

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/Cursor.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/Cursor.html new file mode 100644 index 000000000000..ee0bbd224936 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/Cursor.html @@ -0,0 +1,375 @@ + + + + + + +Cursor (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class Cursor

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/Datastore.TransactionCallable.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/Datastore.TransactionCallable.html new file mode 100644 index 000000000000..15d67d5fefa7 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/Datastore.TransactionCallable.html @@ -0,0 +1,238 @@ + + + + + + +Datastore.TransactionCallable (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Interface Datastore.TransactionCallable<T>

+
+
+
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/Datastore.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/Datastore.html new file mode 100644 index 000000000000..274685ca09a5 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/Datastore.html @@ -0,0 +1,452 @@ + + + + + + +Datastore (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Interface Datastore

+
+
+
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/DatastoreException.Code.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/DatastoreException.Code.html new file mode 100644 index 000000000000..a82f83c6a0f5 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/DatastoreException.Code.html @@ -0,0 +1,490 @@ + + + + + + +DatastoreException.Code (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Enum DatastoreException.Code

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/DatastoreException.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/DatastoreException.html new file mode 100644 index 000000000000..19ce1dfaf3cd --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/DatastoreException.html @@ -0,0 +1,343 @@ + + + + + + +DatastoreException (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class DatastoreException

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/DatastoreFactory.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/DatastoreFactory.html new file mode 100644 index 000000000000..c2a470a0f6a4 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/DatastoreFactory.html @@ -0,0 +1,291 @@ + + + + + + +DatastoreFactory (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class DatastoreFactory

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/DatastoreOptions.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/DatastoreOptions.Builder.html new file mode 100644 index 000000000000..6f81f2afadd0 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/DatastoreOptions.Builder.html @@ -0,0 +1,283 @@ + + + + + + +DatastoreOptions.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class DatastoreOptions.Builder

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/DatastoreOptions.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/DatastoreOptions.html new file mode 100644 index 000000000000..aee802d3bef5 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/DatastoreOptions.html @@ -0,0 +1,407 @@ + + + + + + +DatastoreOptions (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class DatastoreOptions

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/DatastoreReader.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/DatastoreReader.html new file mode 100644 index 000000000000..b42531840507 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/DatastoreReader.html @@ -0,0 +1,297 @@ + + + + + + +DatastoreReader (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Interface DatastoreReader

+
+
+
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/DatastoreReaderWriter.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/DatastoreReaderWriter.html new file mode 100644 index 000000000000..89498d13f50b --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/DatastoreReaderWriter.html @@ -0,0 +1,205 @@ + + + + + + +DatastoreReaderWriter (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Interface DatastoreReaderWriter

+
+
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/DatastoreWriter.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/DatastoreWriter.html new file mode 100644 index 000000000000..da33df515f1a --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/DatastoreWriter.html @@ -0,0 +1,318 @@ + + + + + + +DatastoreWriter (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Interface DatastoreWriter

+
+
+
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/DateTime.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/DateTime.html new file mode 100644 index 000000000000..09ab3d556ab1 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/DateTime.html @@ -0,0 +1,441 @@ + + + + + + +DateTime (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class DateTime

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/DateTimeValue.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/DateTimeValue.Builder.html new file mode 100644 index 000000000000..5d21134b0a6f --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/DateTimeValue.Builder.html @@ -0,0 +1,389 @@ + + + + + + +DateTimeValue.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class DateTimeValue.Builder

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/DateTimeValue.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/DateTimeValue.html new file mode 100644 index 000000000000..e5b663045264 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/DateTimeValue.html @@ -0,0 +1,375 @@ + + + + + + +DateTimeValue (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class DateTimeValue

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/DoubleValue.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/DoubleValue.Builder.html new file mode 100644 index 000000000000..ef5ad05156b3 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/DoubleValue.Builder.html @@ -0,0 +1,423 @@ + + + + + + +DoubleValue.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class DoubleValue.Builder

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/DoubleValue.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/DoubleValue.html new file mode 100644 index 000000000000..be7468f358d9 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/DoubleValue.html @@ -0,0 +1,375 @@ + + + + + + +DoubleValue (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class DoubleValue

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/Entity.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/Entity.Builder.html new file mode 100644 index 000000000000..4a02a320f6e9 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/Entity.Builder.html @@ -0,0 +1,274 @@ + + + + + + +Entity.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class Entity.Builder

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/Entity.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/Entity.html new file mode 100644 index 000000000000..be81943e0066 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/Entity.html @@ -0,0 +1,370 @@ + + + + + + +Entity (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class Entity

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/EntityValue.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/EntityValue.Builder.html new file mode 100644 index 000000000000..e3579cdf338a --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/EntityValue.Builder.html @@ -0,0 +1,389 @@ + + + + + + +EntityValue.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class EntityValue.Builder

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/EntityValue.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/EntityValue.html new file mode 100644 index 000000000000..6f7f4fc3bfc4 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/EntityValue.html @@ -0,0 +1,375 @@ + + + + + + +EntityValue (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class EntityValue

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/FullEntity.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/FullEntity.Builder.html new file mode 100644 index 000000000000..e506fadcef6b --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/FullEntity.Builder.html @@ -0,0 +1,257 @@ + + + + + + +FullEntity.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class FullEntity.Builder<K extends IncompleteKey>

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/FullEntity.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/FullEntity.html new file mode 100644 index 000000000000..b9b9f687db6f --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/FullEntity.html @@ -0,0 +1,361 @@ + + + + + + +FullEntity (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class FullEntity<K extends IncompleteKey>

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/GqlQuery.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/GqlQuery.Builder.html new file mode 100644 index 000000000000..7c9e59f2c2cd --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/GqlQuery.Builder.html @@ -0,0 +1,546 @@ + + + + + + +GqlQuery.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class GqlQuery.Builder<V>

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/GqlQuery.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/GqlQuery.html new file mode 100644 index 000000000000..770f186a13f4 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/GqlQuery.html @@ -0,0 +1,485 @@ + + + + + + +GqlQuery (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class GqlQuery<V>

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/IncompleteKey.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/IncompleteKey.Builder.html new file mode 100644 index 000000000000..8ebc6c2265ed --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/IncompleteKey.Builder.html @@ -0,0 +1,321 @@ + + + + + + +IncompleteKey.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class IncompleteKey.Builder

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/IncompleteKey.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/IncompleteKey.html new file mode 100644 index 000000000000..c873e1a4f1a8 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/IncompleteKey.html @@ -0,0 +1,464 @@ + + + + + + +IncompleteKey (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class IncompleteKey

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/Key.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/Key.Builder.html new file mode 100644 index 000000000000..c54972f249d5 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/Key.Builder.html @@ -0,0 +1,347 @@ + + + + + + +Key.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class Key.Builder

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/Key.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/Key.html new file mode 100644 index 000000000000..edb8db65074a --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/Key.html @@ -0,0 +1,656 @@ + + + + + + +Key (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class Key

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/KeyFactory.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/KeyFactory.html new file mode 100644 index 000000000000..3fb914acf0de --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/KeyFactory.html @@ -0,0 +1,426 @@ + + + + + + +KeyFactory (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class KeyFactory

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/KeyValue.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/KeyValue.Builder.html new file mode 100644 index 000000000000..2c5b9c5d6853 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/KeyValue.Builder.html @@ -0,0 +1,423 @@ + + + + + + +KeyValue.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class KeyValue.Builder

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/KeyValue.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/KeyValue.html new file mode 100644 index 000000000000..b5d1d512848f --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/KeyValue.html @@ -0,0 +1,375 @@ + + + + + + +KeyValue (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class KeyValue

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/ListValue.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/ListValue.Builder.html new file mode 100644 index 000000000000..fead755ed0f9 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/ListValue.Builder.html @@ -0,0 +1,420 @@ + + + + + + +ListValue.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class ListValue.Builder

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/ListValue.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/ListValue.html new file mode 100644 index 000000000000..483e35a38c69 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/ListValue.html @@ -0,0 +1,404 @@ + + + + + + +ListValue (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class ListValue

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/LongValue.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/LongValue.Builder.html new file mode 100644 index 000000000000..4745e94723d0 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/LongValue.Builder.html @@ -0,0 +1,389 @@ + + + + + + +LongValue.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class LongValue.Builder

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/LongValue.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/LongValue.html new file mode 100644 index 000000000000..3f5b95763f5a --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/LongValue.html @@ -0,0 +1,375 @@ + + + + + + +LongValue (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class LongValue

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/NullValue.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/NullValue.Builder.html new file mode 100644 index 000000000000..8e0fcb9de4cb --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/NullValue.Builder.html @@ -0,0 +1,387 @@ + + + + + + +NullValue.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class NullValue.Builder

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/NullValue.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/NullValue.html new file mode 100644 index 000000000000..daac718bb45d --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/NullValue.html @@ -0,0 +1,375 @@ + + + + + + +NullValue (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class NullValue

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/PathElement.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/PathElement.html new file mode 100644 index 000000000000..860a6dbd3e79 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/PathElement.html @@ -0,0 +1,441 @@ + + + + + + +PathElement (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class PathElement

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/ProjectionEntity.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/ProjectionEntity.Builder.html new file mode 100644 index 000000000000..b7fbd6b3270b --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/ProjectionEntity.Builder.html @@ -0,0 +1,257 @@ + + + + + + +ProjectionEntity.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class ProjectionEntity.Builder

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/ProjectionEntity.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/ProjectionEntity.html new file mode 100644 index 000000000000..850643c0cbce --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/ProjectionEntity.html @@ -0,0 +1,377 @@ + + + + + + +ProjectionEntity (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class ProjectionEntity

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/Query.ResultType.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/Query.ResultType.html new file mode 100644 index 000000000000..884946f7544a --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/Query.ResultType.html @@ -0,0 +1,380 @@ + + + + + + +Query.ResultType (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class Query.ResultType<V>

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/Query.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/Query.html new file mode 100644 index 000000000000..ba62b3d115c4 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/Query.html @@ -0,0 +1,477 @@ + + + + + + +Query (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class Query<V>

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/QueryResults.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/QueryResults.html new file mode 100644 index 000000000000..64eb1c167d04 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/QueryResults.html @@ -0,0 +1,262 @@ + + + + + + +QueryResults (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Interface QueryResults<V>

+
+
+
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/RawValue.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/RawValue.Builder.html new file mode 100644 index 000000000000..785ea7230b2b --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/RawValue.Builder.html @@ -0,0 +1,389 @@ + + + + + + +RawValue.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class RawValue.Builder

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/RawValue.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/RawValue.html new file mode 100644 index 000000000000..3979b2f13b1d --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/RawValue.html @@ -0,0 +1,315 @@ + + + + + + +RawValue (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class RawValue

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/StringValue.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/StringValue.Builder.html new file mode 100644 index 000000000000..e52abe1d2172 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/StringValue.Builder.html @@ -0,0 +1,389 @@ + + + + + + +StringValue.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class StringValue.Builder

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/StringValue.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/StringValue.html new file mode 100644 index 000000000000..1b518bc03ea7 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/StringValue.html @@ -0,0 +1,375 @@ + + + + + + +StringValue (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class StringValue

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.CompositeFilter.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.CompositeFilter.html new file mode 100644 index 000000000000..60a60eb2ad38 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.CompositeFilter.html @@ -0,0 +1,324 @@ + + + + + + +StructuredQuery.CompositeFilter (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class StructuredQuery.CompositeFilter

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.EntityQueryBuilder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.EntityQueryBuilder.html new file mode 100644 index 000000000000..6bbb540b702d --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.EntityQueryBuilder.html @@ -0,0 +1,375 @@ + + + + + + +StructuredQuery.EntityQueryBuilder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class StructuredQuery.EntityQueryBuilder

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.Filter.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.Filter.html new file mode 100644 index 000000000000..7d92d9884aab --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.Filter.html @@ -0,0 +1,254 @@ + + + + + + +StructuredQuery.Filter (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class StructuredQuery.Filter

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.KeyQueryBuilder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.KeyQueryBuilder.html new file mode 100644 index 000000000000..1cff78408cf5 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.KeyQueryBuilder.html @@ -0,0 +1,388 @@ + + + + + + +StructuredQuery.KeyQueryBuilder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class StructuredQuery.KeyQueryBuilder

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.OrderBy.Direction.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.OrderBy.Direction.html new file mode 100644 index 000000000000..0e47d06ca800 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.OrderBy.Direction.html @@ -0,0 +1,345 @@ + + + + + + +StructuredQuery.OrderBy.Direction (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Enum StructuredQuery.OrderBy.Direction

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.OrderBy.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.OrderBy.html new file mode 100644 index 000000000000..e49b3e4b2ec2 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.OrderBy.html @@ -0,0 +1,378 @@ + + + + + + +StructuredQuery.OrderBy (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class StructuredQuery.OrderBy

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.Projection.Aggregate.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.Projection.Aggregate.html new file mode 100644 index 000000000000..8bb7cf018e58 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.Projection.Aggregate.html @@ -0,0 +1,333 @@ + + + + + + +StructuredQuery.Projection.Aggregate (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Enum StructuredQuery.Projection.Aggregate

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.Projection.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.Projection.html new file mode 100644 index 000000000000..cb6f5bcb8745 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.Projection.html @@ -0,0 +1,361 @@ + + + + + + +StructuredQuery.Projection (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class StructuredQuery.Projection

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.ProjectionEntityQueryBuilder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.ProjectionEntityQueryBuilder.html new file mode 100644 index 000000000000..1ddb1279d437 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.ProjectionEntityQueryBuilder.html @@ -0,0 +1,461 @@ + + + + + + +StructuredQuery.ProjectionEntityQueryBuilder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class StructuredQuery.ProjectionEntityQueryBuilder

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.PropertyFilter.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.PropertyFilter.html new file mode 100644 index 000000000000..d212721df4c2 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.PropertyFilter.html @@ -0,0 +1,948 @@ + + + + + + +StructuredQuery.PropertyFilter (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class StructuredQuery.PropertyFilter

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.html new file mode 100644 index 000000000000..adef41c22cbf --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/StructuredQuery.html @@ -0,0 +1,580 @@ + + + + + + +StructuredQuery (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class StructuredQuery<V>

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/Transaction.Response.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/Transaction.Response.html new file mode 100644 index 000000000000..41ea54af3310 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/Transaction.Response.html @@ -0,0 +1,225 @@ + + + + + + +Transaction.Response (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Interface Transaction.Response

+
+
+
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/Transaction.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/Transaction.html new file mode 100644 index 000000000000..14e32855affd --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/Transaction.html @@ -0,0 +1,582 @@ + + + + + + +Transaction (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Interface Transaction

+
+
+
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/TransactionOption.ForceWrites.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/TransactionOption.ForceWrites.html new file mode 100644 index 000000000000..41e85362c2a2 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/TransactionOption.ForceWrites.html @@ -0,0 +1,310 @@ + + + + + + +TransactionOption.ForceWrites (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class TransactionOption.ForceWrites

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/TransactionOption.IsolationLevel.Level.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/TransactionOption.IsolationLevel.Level.html new file mode 100644 index 000000000000..b9c890ca540a --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/TransactionOption.IsolationLevel.Level.html @@ -0,0 +1,345 @@ + + + + + + +TransactionOption.IsolationLevel.Level (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Enum TransactionOption.IsolationLevel.Level

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/TransactionOption.IsolationLevel.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/TransactionOption.IsolationLevel.html new file mode 100644 index 000000000000..fec9d77c9037 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/TransactionOption.IsolationLevel.html @@ -0,0 +1,321 @@ + + + + + + +TransactionOption.IsolationLevel (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class TransactionOption.IsolationLevel

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/TransactionOption.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/TransactionOption.html new file mode 100644 index 000000000000..69160c1786ae --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/TransactionOption.html @@ -0,0 +1,299 @@ + + + + + + +TransactionOption (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class TransactionOption

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/Value.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/Value.html new file mode 100644 index 000000000000..4144371453a9 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/Value.html @@ -0,0 +1,443 @@ + + + + + + +Value (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Class Value<V>

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/ValueBuilder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/ValueBuilder.html new file mode 100644 index 000000000000..5bdafcc1e161 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/ValueBuilder.html @@ -0,0 +1,338 @@ + + + + + + +ValueBuilder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Interface ValueBuilder<V,P extends Value<V>,B extends ValueBuilder<V,P,B>>

+
+
+
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/ValueType.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/ValueType.html new file mode 100644 index 000000000000..da645e9e97b6 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/ValueType.html @@ -0,0 +1,487 @@ + + + + + + +ValueType (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.datastore
+

Enum ValueType

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/BaseDatastoreBatchWriter.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/BaseDatastoreBatchWriter.html new file mode 100644 index 000000000000..cb0f4545ff4e --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/BaseDatastoreBatchWriter.html @@ -0,0 +1,124 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.BaseDatastoreBatchWriter (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.BaseDatastoreBatchWriter

+
+
No usage of com.google.gcloud.datastore.BaseDatastoreBatchWriter
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/BaseEntity.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/BaseEntity.Builder.html new file mode 100644 index 000000000000..c8f5092fb867 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/BaseEntity.Builder.html @@ -0,0 +1,208 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.BaseEntity.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.BaseEntity.Builder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/BaseEntity.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/BaseEntity.html new file mode 100644 index 000000000000..41574f1733f4 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/BaseEntity.html @@ -0,0 +1,193 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.BaseEntity (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.BaseEntity

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Batch.Response.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Batch.Response.html new file mode 100644 index 000000000000..24923c4d7489 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Batch.Response.html @@ -0,0 +1,168 @@ + + + + + + +Uses of Interface com.google.gcloud.datastore.Batch.Response (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Interface
com.google.gcloud.datastore.Batch.Response

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Batch.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Batch.html new file mode 100644 index 000000000000..5183b57d4df2 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Batch.html @@ -0,0 +1,168 @@ + + + + + + +Uses of Interface com.google.gcloud.datastore.Batch (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Interface
com.google.gcloud.datastore.Batch

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/BatchOption.ForceWrites.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/BatchOption.ForceWrites.html new file mode 100644 index 000000000000..ff3d3cfd062f --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/BatchOption.ForceWrites.html @@ -0,0 +1,166 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.BatchOption.ForceWrites (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.BatchOption.ForceWrites

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/BatchOption.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/BatchOption.html new file mode 100644 index 000000000000..5e41a31343f6 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/BatchOption.html @@ -0,0 +1,181 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.BatchOption (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.BatchOption

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Blob.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Blob.html new file mode 100644 index 000000000000..279b3bcffe85 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Blob.html @@ -0,0 +1,251 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.Blob (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.Blob

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/BlobValue.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/BlobValue.Builder.html new file mode 100644 index 000000000000..4c9b5d50dbbd --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/BlobValue.Builder.html @@ -0,0 +1,170 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.BlobValue.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.BlobValue.Builder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/BlobValue.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/BlobValue.html new file mode 100644 index 000000000000..c92f35066695 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/BlobValue.html @@ -0,0 +1,170 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.BlobValue (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.BlobValue

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/BooleanValue.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/BooleanValue.Builder.html new file mode 100644 index 000000000000..bbc68dc2f0e2 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/BooleanValue.Builder.html @@ -0,0 +1,170 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.BooleanValue.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.BooleanValue.Builder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/BooleanValue.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/BooleanValue.html new file mode 100644 index 000000000000..1a8c90e4f030 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/BooleanValue.html @@ -0,0 +1,170 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.BooleanValue (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.BooleanValue

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Cursor.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Cursor.html new file mode 100644 index 000000000000..71182a40899b --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Cursor.html @@ -0,0 +1,204 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.Cursor (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.Cursor

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Datastore.TransactionCallable.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Datastore.TransactionCallable.html new file mode 100644 index 000000000000..34f49d8e95c8 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Datastore.TransactionCallable.html @@ -0,0 +1,170 @@ + + + + + + +Uses of Interface com.google.gcloud.datastore.Datastore.TransactionCallable (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Interface
com.google.gcloud.datastore.Datastore.TransactionCallable

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Datastore.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Datastore.html new file mode 100644 index 000000000000..79bd65b2f4d0 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Datastore.html @@ -0,0 +1,184 @@ + + + + + + +Uses of Interface com.google.gcloud.datastore.Datastore (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Interface
com.google.gcloud.datastore.Datastore

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DatastoreException.Code.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DatastoreException.Code.html new file mode 100644 index 000000000000..cce617a296f4 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DatastoreException.Code.html @@ -0,0 +1,198 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.DatastoreException.Code (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.DatastoreException.Code

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DatastoreException.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DatastoreException.html new file mode 100644 index 000000000000..2d04c692ddbe --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DatastoreException.html @@ -0,0 +1,167 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.DatastoreException (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.DatastoreException

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DatastoreFactory.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DatastoreFactory.html new file mode 100644 index 000000000000..01422042e8ae --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DatastoreFactory.html @@ -0,0 +1,168 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.DatastoreFactory (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.DatastoreFactory

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DatastoreOptions.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DatastoreOptions.Builder.html new file mode 100644 index 000000000000..4811e196662a --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DatastoreOptions.Builder.html @@ -0,0 +1,178 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.DatastoreOptions.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.DatastoreOptions.Builder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DatastoreOptions.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DatastoreOptions.html new file mode 100644 index 000000000000..f36da4c4af91 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DatastoreOptions.html @@ -0,0 +1,205 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.DatastoreOptions (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.DatastoreOptions

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DatastoreReader.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DatastoreReader.html new file mode 100644 index 000000000000..bc7ca73d6589 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DatastoreReader.html @@ -0,0 +1,180 @@ + + + + + + +Uses of Interface com.google.gcloud.datastore.DatastoreReader (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Interface
com.google.gcloud.datastore.DatastoreReader

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DatastoreReaderWriter.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DatastoreReaderWriter.html new file mode 100644 index 000000000000..abb7d4e24cbf --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DatastoreReaderWriter.html @@ -0,0 +1,187 @@ + + + + + + +Uses of Interface com.google.gcloud.datastore.DatastoreReaderWriter (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Interface
com.google.gcloud.datastore.DatastoreReaderWriter

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DatastoreWriter.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DatastoreWriter.html new file mode 100644 index 000000000000..f2696b88e2dd --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DatastoreWriter.html @@ -0,0 +1,192 @@ + + + + + + +Uses of Interface com.google.gcloud.datastore.DatastoreWriter (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Interface
com.google.gcloud.datastore.DatastoreWriter

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DateTime.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DateTime.html new file mode 100644 index 000000000000..17401ed47b45 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DateTime.html @@ -0,0 +1,255 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.DateTime (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.DateTime

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DateTimeValue.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DateTimeValue.Builder.html new file mode 100644 index 000000000000..19eae4ffe00c --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DateTimeValue.Builder.html @@ -0,0 +1,170 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.DateTimeValue.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.DateTimeValue.Builder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DateTimeValue.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DateTimeValue.html new file mode 100644 index 000000000000..7aba84d7986d --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DateTimeValue.html @@ -0,0 +1,170 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.DateTimeValue (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.DateTimeValue

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DoubleValue.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DoubleValue.Builder.html new file mode 100644 index 000000000000..bbb0d56b2989 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DoubleValue.Builder.html @@ -0,0 +1,170 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.DoubleValue.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.DoubleValue.Builder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DoubleValue.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DoubleValue.html new file mode 100644 index 000000000000..7ac96844f309 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/DoubleValue.html @@ -0,0 +1,170 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.DoubleValue (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.DoubleValue

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Entity.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Entity.Builder.html new file mode 100644 index 000000000000..f1c061c59ed8 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Entity.Builder.html @@ -0,0 +1,192 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.Entity.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.Entity.Builder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Entity.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Entity.html new file mode 100644 index 000000000000..0ac6e1d75d09 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Entity.html @@ -0,0 +1,293 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.Entity (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.Entity

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/EntityValue.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/EntityValue.Builder.html new file mode 100644 index 000000000000..b146d1c35757 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/EntityValue.Builder.html @@ -0,0 +1,174 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.EntityValue.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.EntityValue.Builder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/EntityValue.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/EntityValue.html new file mode 100644 index 000000000000..ad66f286cae7 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/EntityValue.html @@ -0,0 +1,170 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.EntityValue (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.EntityValue

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/FullEntity.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/FullEntity.Builder.html new file mode 100644 index 000000000000..bdb6fb334cad --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/FullEntity.Builder.html @@ -0,0 +1,174 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.FullEntity.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.FullEntity.Builder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/FullEntity.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/FullEntity.html new file mode 100644 index 000000000000..c23dbe17d0ec --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/FullEntity.html @@ -0,0 +1,287 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.FullEntity (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.FullEntity

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/GqlQuery.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/GqlQuery.Builder.html new file mode 100644 index 000000000000..b60494d97829 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/GqlQuery.Builder.html @@ -0,0 +1,272 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.GqlQuery.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.GqlQuery.Builder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/GqlQuery.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/GqlQuery.html new file mode 100644 index 000000000000..29a322c2dbfb --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/GqlQuery.html @@ -0,0 +1,170 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.GqlQuery (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.GqlQuery

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/IncompleteKey.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/IncompleteKey.Builder.html new file mode 100644 index 000000000000..b6812e071f45 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/IncompleteKey.Builder.html @@ -0,0 +1,176 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.IncompleteKey.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.IncompleteKey.Builder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/IncompleteKey.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/IncompleteKey.html new file mode 100644 index 000000000000..757e6cc4f851 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/IncompleteKey.html @@ -0,0 +1,294 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.IncompleteKey (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.IncompleteKey

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Key.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Key.Builder.html new file mode 100644 index 000000000000..9d217092aa54 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Key.Builder.html @@ -0,0 +1,208 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.Key.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.Key.Builder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Key.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Key.html new file mode 100644 index 000000000000..ead44c43c713 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Key.html @@ -0,0 +1,421 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.Key (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.Key

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/KeyFactory.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/KeyFactory.html new file mode 100644 index 000000000000..4701023f0874 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/KeyFactory.html @@ -0,0 +1,174 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.KeyFactory (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.KeyFactory

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/KeyValue.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/KeyValue.Builder.html new file mode 100644 index 000000000000..9b2652e91a78 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/KeyValue.Builder.html @@ -0,0 +1,170 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.KeyValue.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.KeyValue.Builder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/KeyValue.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/KeyValue.html new file mode 100644 index 000000000000..e00749461857 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/KeyValue.html @@ -0,0 +1,170 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.KeyValue (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.KeyValue

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/ListValue.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/ListValue.Builder.html new file mode 100644 index 000000000000..c40f37b741a7 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/ListValue.Builder.html @@ -0,0 +1,189 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.ListValue.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.ListValue.Builder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/ListValue.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/ListValue.html new file mode 100644 index 000000000000..d989e4dcb0f5 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/ListValue.html @@ -0,0 +1,175 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.ListValue (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.ListValue

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/LongValue.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/LongValue.Builder.html new file mode 100644 index 000000000000..ef9b4fe76714 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/LongValue.Builder.html @@ -0,0 +1,170 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.LongValue.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.LongValue.Builder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/LongValue.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/LongValue.html new file mode 100644 index 000000000000..14513a12a069 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/LongValue.html @@ -0,0 +1,170 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.LongValue (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.LongValue

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/NullValue.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/NullValue.Builder.html new file mode 100644 index 000000000000..5e5469db8aca --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/NullValue.Builder.html @@ -0,0 +1,174 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.NullValue.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.NullValue.Builder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/NullValue.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/NullValue.html new file mode 100644 index 000000000000..de194f056437 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/NullValue.html @@ -0,0 +1,170 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.NullValue (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.NullValue

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/PathElement.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/PathElement.html new file mode 100644 index 000000000000..69a969ca8d83 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/PathElement.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.PathElement (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.PathElement

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/ProjectionEntity.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/ProjectionEntity.Builder.html new file mode 100644 index 000000000000..d16a7b0acbbc --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/ProjectionEntity.Builder.html @@ -0,0 +1,170 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.ProjectionEntity.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.ProjectionEntity.Builder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/ProjectionEntity.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/ProjectionEntity.html new file mode 100644 index 000000000000..bbf62e646bd8 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/ProjectionEntity.html @@ -0,0 +1,205 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.ProjectionEntity (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.ProjectionEntity

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Query.ResultType.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Query.ResultType.html new file mode 100644 index 000000000000..d41779daf5e4 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Query.ResultType.html @@ -0,0 +1,208 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.Query.ResultType (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.Query.ResultType

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Query.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Query.html new file mode 100644 index 000000000000..94b49a63ef03 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Query.html @@ -0,0 +1,209 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.Query (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.Query

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/QueryResults.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/QueryResults.html new file mode 100644 index 000000000000..4cce91a9e97b --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/QueryResults.html @@ -0,0 +1,174 @@ + + + + + + +Uses of Interface com.google.gcloud.datastore.QueryResults (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Interface
com.google.gcloud.datastore.QueryResults

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/RawValue.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/RawValue.Builder.html new file mode 100644 index 000000000000..63ec6ed6528a --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/RawValue.Builder.html @@ -0,0 +1,166 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.RawValue.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.RawValue.Builder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/RawValue.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/RawValue.html new file mode 100644 index 000000000000..97dffd3c0221 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/RawValue.html @@ -0,0 +1,166 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.RawValue (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.RawValue

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StringValue.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StringValue.Builder.html new file mode 100644 index 000000000000..0dc190b7439d --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StringValue.Builder.html @@ -0,0 +1,170 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.StringValue.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.StringValue.Builder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StringValue.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StringValue.html new file mode 100644 index 000000000000..78de059ff90c --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StringValue.html @@ -0,0 +1,170 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.StringValue (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.StringValue

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.CompositeFilter.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.CompositeFilter.html new file mode 100644 index 000000000000..c7abe0a66aac --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.CompositeFilter.html @@ -0,0 +1,167 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.StructuredQuery.CompositeFilter (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.StructuredQuery.CompositeFilter

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.EntityQueryBuilder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.EntityQueryBuilder.html new file mode 100644 index 000000000000..f7963ac66e8b --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.EntityQueryBuilder.html @@ -0,0 +1,168 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.StructuredQuery.EntityQueryBuilder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.StructuredQuery.EntityQueryBuilder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.Filter.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.Filter.html new file mode 100644 index 000000000000..efc5fd6a7411 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.Filter.html @@ -0,0 +1,202 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.StructuredQuery.Filter (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.StructuredQuery.Filter

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.KeyQueryBuilder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.KeyQueryBuilder.html new file mode 100644 index 000000000000..58e9c1fe475a --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.KeyQueryBuilder.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.StructuredQuery.KeyQueryBuilder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.StructuredQuery.KeyQueryBuilder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.OrderBy.Direction.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.OrderBy.Direction.html new file mode 100644 index 000000000000..86a1b868d35a --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.OrderBy.Direction.html @@ -0,0 +1,191 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.StructuredQuery.OrderBy.Direction (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.StructuredQuery.OrderBy.Direction

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.OrderBy.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.OrderBy.html new file mode 100644 index 000000000000..fba5d99f4aa8 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.OrderBy.html @@ -0,0 +1,183 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.StructuredQuery.OrderBy (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.StructuredQuery.OrderBy

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.Projection.Aggregate.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.Projection.Aggregate.html new file mode 100644 index 000000000000..8614430c2863 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.Projection.Aggregate.html @@ -0,0 +1,189 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.StructuredQuery.Projection.Aggregate (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.StructuredQuery.Projection.Aggregate

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.Projection.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.Projection.html new file mode 100644 index 000000000000..fcd3c814a2d2 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.Projection.html @@ -0,0 +1,221 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.StructuredQuery.Projection (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.StructuredQuery.Projection

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.ProjectionEntityQueryBuilder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.ProjectionEntityQueryBuilder.html new file mode 100644 index 000000000000..35e06c37471d --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.ProjectionEntityQueryBuilder.html @@ -0,0 +1,196 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.StructuredQuery.ProjectionEntityQueryBuilder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.StructuredQuery.ProjectionEntityQueryBuilder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.PropertyFilter.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.PropertyFilter.html new file mode 100644 index 000000000000..32d0d363e360 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.PropertyFilter.html @@ -0,0 +1,374 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.StructuredQuery.PropertyFilter (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.StructuredQuery.PropertyFilter

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.html new file mode 100644 index 000000000000..62d92871c554 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/StructuredQuery.html @@ -0,0 +1,178 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.StructuredQuery (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.StructuredQuery

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Transaction.Response.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Transaction.Response.html new file mode 100644 index 000000000000..5ff2563139b0 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Transaction.Response.html @@ -0,0 +1,168 @@ + + + + + + +Uses of Interface com.google.gcloud.datastore.Transaction.Response (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Interface
com.google.gcloud.datastore.Transaction.Response

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Transaction.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Transaction.html new file mode 100644 index 000000000000..2a84e88230dc --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Transaction.html @@ -0,0 +1,168 @@ + + + + + + +Uses of Interface com.google.gcloud.datastore.Transaction (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Interface
com.google.gcloud.datastore.Transaction

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/TransactionOption.ForceWrites.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/TransactionOption.ForceWrites.html new file mode 100644 index 000000000000..9942a0c3591b --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/TransactionOption.ForceWrites.html @@ -0,0 +1,166 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.TransactionOption.ForceWrites (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.TransactionOption.ForceWrites

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/TransactionOption.IsolationLevel.Level.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/TransactionOption.IsolationLevel.Level.html new file mode 100644 index 000000000000..9b29ef4cc2f9 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/TransactionOption.IsolationLevel.Level.html @@ -0,0 +1,190 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.TransactionOption.IsolationLevel.Level (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.TransactionOption.IsolationLevel.Level

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/TransactionOption.IsolationLevel.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/TransactionOption.IsolationLevel.html new file mode 100644 index 000000000000..2fe3bacc4b13 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/TransactionOption.IsolationLevel.html @@ -0,0 +1,170 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.TransactionOption.IsolationLevel (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.TransactionOption.IsolationLevel

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/TransactionOption.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/TransactionOption.html new file mode 100644 index 000000000000..bead61f91e17 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/TransactionOption.html @@ -0,0 +1,193 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.TransactionOption (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.TransactionOption

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Value.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Value.html new file mode 100644 index 000000000000..dbe4283b7421 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/Value.html @@ -0,0 +1,389 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.Value (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.Value

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/ValueBuilder.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/ValueBuilder.html new file mode 100644 index 000000000000..fec54a726a5d --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/ValueBuilder.html @@ -0,0 +1,234 @@ + + + + + + +Uses of Interface com.google.gcloud.datastore.ValueBuilder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Interface
com.google.gcloud.datastore.ValueBuilder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/ValueType.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/ValueType.html new file mode 100644 index 000000000000..529323c388ed --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/class-use/ValueType.html @@ -0,0 +1,183 @@ + + + + + + +Uses of Class com.google.gcloud.datastore.ValueType (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.datastore.ValueType

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/package-frame.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/package-frame.html new file mode 100644 index 000000000000..38cf05741a87 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/package-frame.html @@ -0,0 +1,108 @@ + + + + + + +com.google.gcloud.datastore (GCloud Java 0.0.7-SNAPSHOT API) + + + + + +

com.google.gcloud.datastore

+
+

Interfaces

+ +

Classes

+ +

Enums

+ +

Exceptions

+ +
+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/package-summary.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/package-summary.html new file mode 100644 index 000000000000..1c6c20d4444e --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/package-summary.html @@ -0,0 +1,594 @@ + + + + + + +com.google.gcloud.datastore (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Package com.google.gcloud.datastore

+
+
A client to the Google Cloud Datastore.
+
+

See: Description

+
+
+ + + + +

Package com.google.gcloud.datastore Description

+
A client to the Google Cloud Datastore. + +

A simple usage example: +

 
+ DatastoreOptions options = DatastoreOptions.builder().projectId(PROJECT_ID).build();
+ Datastore datastore = DatastoreFactory.instance().get(options);
+ KeyFactory keyFactory = datastore.newKeyFactory().kind(kind);
+ Key key = keyFactory.newKey(keyName);
+ Entity entity = datastore.get(key);
+ if (entity == null) {
+   entity = Entity.builder(key)
+       .set("name", "John Do")
+       .set("age", LongValue.builder(100).indexed(false).build())
+       .set("updated", false)
+       .build();
+   datastore.put(entity);
+ } else {
+   boolean updated = entity.getBoolean("updated");
+   if (!updated) {
+     String[] name = entity.getString("name").split(" ");
+     entity = Entity.builder(entity)
+         .set("name", name[0])
+         .set("last_name", StringValue.builder(name[1]).indexed(false).build())
+         .set("updated", true)
+         .remove("old_property")
+         .set("new_property", 1.1)
+         .build();
+     datastore.update(entity);
+   }
+ }
+  
+
+
See Also:
+
Google Cloud Datastore
+
+
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/package-tree.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/package-tree.html new file mode 100644 index 000000000000..e4a6af6c89f1 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/package-tree.html @@ -0,0 +1,305 @@ + + + + + + +com.google.gcloud.datastore Class Hierarchy (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Hierarchy For Package com.google.gcloud.datastore

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +

Interface Hierarchy

+ +

Enum Hierarchy

+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/datastore/package-use.html b/site/0.0.7/apidocs/com/google/gcloud/datastore/package-use.html new file mode 100644 index 000000000000..3623eb1da604 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/datastore/package-use.html @@ -0,0 +1,471 @@ + + + + + + +Uses of Package com.google.gcloud.datastore (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Package
com.google.gcloud.datastore

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/examples/DatastoreExample.html b/site/0.0.7/apidocs/com/google/gcloud/examples/DatastoreExample.html new file mode 100644 index 000000000000..734620dff706 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/examples/DatastoreExample.html @@ -0,0 +1,282 @@ + + + + + + +DatastoreExample (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.examples
+

Class DatastoreExample

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/examples/StorageExample.html b/site/0.0.7/apidocs/com/google/gcloud/examples/StorageExample.html new file mode 100644 index 000000000000..c7f2eb86e20f --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/examples/StorageExample.html @@ -0,0 +1,311 @@ + + + + + + +StorageExample (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.examples
+

Class StorageExample

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/examples/class-use/DatastoreExample.html b/site/0.0.7/apidocs/com/google/gcloud/examples/class-use/DatastoreExample.html new file mode 100644 index 000000000000..9e93726500a1 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/examples/class-use/DatastoreExample.html @@ -0,0 +1,124 @@ + + + + + + +Uses of Class com.google.gcloud.examples.DatastoreExample (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.examples.DatastoreExample

+
+
No usage of com.google.gcloud.examples.DatastoreExample
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/examples/class-use/StorageExample.html b/site/0.0.7/apidocs/com/google/gcloud/examples/class-use/StorageExample.html new file mode 100644 index 000000000000..5e2407a822a2 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/examples/class-use/StorageExample.html @@ -0,0 +1,124 @@ + + + + + + +Uses of Class com.google.gcloud.examples.StorageExample (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.examples.StorageExample

+
+
No usage of com.google.gcloud.examples.StorageExample
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/examples/package-frame.html b/site/0.0.7/apidocs/com/google/gcloud/examples/package-frame.html new file mode 100644 index 000000000000..9a552c96036b --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/examples/package-frame.html @@ -0,0 +1,22 @@ + + + + + + +com.google.gcloud.examples (GCloud Java 0.0.7-SNAPSHOT API) + + + + + +

com.google.gcloud.examples

+
+

Classes

+ +
+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/examples/package-summary.html b/site/0.0.7/apidocs/com/google/gcloud/examples/package-summary.html new file mode 100644 index 000000000000..412304a333ec --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/examples/package-summary.html @@ -0,0 +1,150 @@ + + + + + + +com.google.gcloud.examples (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Package com.google.gcloud.examples

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/examples/package-tree.html b/site/0.0.7/apidocs/com/google/gcloud/examples/package-tree.html new file mode 100644 index 000000000000..a4c65dced4e6 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/examples/package-tree.html @@ -0,0 +1,138 @@ + + + + + + +com.google.gcloud.examples Class Hierarchy (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Hierarchy For Package com.google.gcloud.examples

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/examples/package-use.html b/site/0.0.7/apidocs/com/google/gcloud/examples/package-use.html new file mode 100644 index 000000000000..50461481a9ff --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/examples/package-use.html @@ -0,0 +1,124 @@ + + + + + + +Uses of Package com.google.gcloud.examples (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Package
com.google.gcloud.examples

+
+
No usage of com.google.gcloud.examples
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/package-frame.html b/site/0.0.7/apidocs/com/google/gcloud/package-frame.html new file mode 100644 index 000000000000..9b9b2eb871a1 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/package-frame.html @@ -0,0 +1,47 @@ + + + + + + +com.google.gcloud (GCloud Java 0.0.7-SNAPSHOT API) + + + + + +

com.google.gcloud

+
+

Interfaces

+ +

Classes

+ +

Enums

+ +

Exceptions

+ +
+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/package-summary.html b/site/0.0.7/apidocs/com/google/gcloud/package-summary.html new file mode 100644 index 000000000000..29652c2bd6d9 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/package-summary.html @@ -0,0 +1,262 @@ + + + + + + +com.google.gcloud (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Package com.google.gcloud

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/package-tree.html b/site/0.0.7/apidocs/com/google/gcloud/package-tree.html new file mode 100644 index 000000000000..55d6c4d7c103 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/package-tree.html @@ -0,0 +1,190 @@ + + + + + + +com.google.gcloud Class Hierarchy (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Hierarchy For Package com.google.gcloud

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +

Interface Hierarchy

+ +

Enum Hierarchy

+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/package-use.html b/site/0.0.7/apidocs/com/google/gcloud/package-use.html new file mode 100644 index 000000000000..fd0385119a4b --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/package-use.html @@ -0,0 +1,284 @@ + + + + + + +Uses of Package com.google.gcloud (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Package
com.google.gcloud

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/spi/DatastoreRpc.DatastoreRpcException.Reason.html b/site/0.0.7/apidocs/com/google/gcloud/spi/DatastoreRpc.DatastoreRpcException.Reason.html new file mode 100644 index 000000000000..d3380337551b --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/spi/DatastoreRpc.DatastoreRpcException.Reason.html @@ -0,0 +1,462 @@ + + + + + + +DatastoreRpc.DatastoreRpcException.Reason (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.spi
+

Enum DatastoreRpc.DatastoreRpcException.Reason

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/spi/DatastoreRpc.DatastoreRpcException.html b/site/0.0.7/apidocs/com/google/gcloud/spi/DatastoreRpc.DatastoreRpcException.html new file mode 100644 index 000000000000..60af72c2a567 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/spi/DatastoreRpc.DatastoreRpcException.html @@ -0,0 +1,365 @@ + + + + + + +DatastoreRpc.DatastoreRpcException (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.spi
+

Class DatastoreRpc.DatastoreRpcException

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/spi/DatastoreRpc.html b/site/0.0.7/apidocs/com/google/gcloud/spi/DatastoreRpc.html new file mode 100644 index 000000000000..4a1c034f9928 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/spi/DatastoreRpc.html @@ -0,0 +1,340 @@ + + + + + + +DatastoreRpc (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.spi
+

Interface DatastoreRpc

+
+
+
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/spi/DatastoreRpcFactory.html b/site/0.0.7/apidocs/com/google/gcloud/spi/DatastoreRpcFactory.html new file mode 100644 index 000000000000..b96384bfe519 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/spi/DatastoreRpcFactory.html @@ -0,0 +1,195 @@ + + + + + + +DatastoreRpcFactory (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.spi
+

Interface DatastoreRpcFactory

+
+
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/spi/DefaultDatastoreRpc.html b/site/0.0.7/apidocs/com/google/gcloud/spi/DefaultDatastoreRpc.html new file mode 100644 index 000000000000..b61d263cb223 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/spi/DefaultDatastoreRpc.html @@ -0,0 +1,398 @@ + + + + + + +DefaultDatastoreRpc (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.spi
+

Class DefaultDatastoreRpc

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/spi/DefaultStorageRpc.html b/site/0.0.7/apidocs/com/google/gcloud/spi/DefaultStorageRpc.html new file mode 100644 index 000000000000..c0a903524846 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/spi/DefaultStorageRpc.html @@ -0,0 +1,686 @@ + + + + + + +DefaultStorageRpc (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.spi
+

Class DefaultStorageRpc

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/spi/ServiceRpcFactory.html b/site/0.0.7/apidocs/com/google/gcloud/spi/ServiceRpcFactory.html new file mode 100644 index 000000000000..07aacebdda99 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/spi/ServiceRpcFactory.html @@ -0,0 +1,234 @@ + + + + + + +ServiceRpcFactory (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.spi
+

Interface ServiceRpcFactory<ServiceRpcT,OptionsT extends ServiceOptions<ServiceRpcT,OptionsT>>

+
+
+
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/spi/StorageRpc.BatchRequest.html b/site/0.0.7/apidocs/com/google/gcloud/spi/StorageRpc.BatchRequest.html new file mode 100644 index 000000000000..e503a7b2294e --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/spi/StorageRpc.BatchRequest.html @@ -0,0 +1,307 @@ + + + + + + +StorageRpc.BatchRequest (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.spi
+

Class StorageRpc.BatchRequest

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/spi/StorageRpc.BatchResponse.html b/site/0.0.7/apidocs/com/google/gcloud/spi/StorageRpc.BatchResponse.html new file mode 100644 index 000000000000..94cfeaf39f65 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/spi/StorageRpc.BatchResponse.html @@ -0,0 +1,307 @@ + + + + + + +StorageRpc.BatchResponse (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.spi
+

Class StorageRpc.BatchResponse

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/spi/StorageRpc.Option.html b/site/0.0.7/apidocs/com/google/gcloud/spi/StorageRpc.Option.html new file mode 100644 index 000000000000..0e1d4dcd0a6d --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/spi/StorageRpc.Option.html @@ -0,0 +1,514 @@ + + + + + + +StorageRpc.Option (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.spi
+

Enum StorageRpc.Option

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/spi/StorageRpc.Tuple.html b/site/0.0.7/apidocs/com/google/gcloud/spi/StorageRpc.Tuple.html new file mode 100644 index 000000000000..c56e3f9a7447 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/spi/StorageRpc.Tuple.html @@ -0,0 +1,271 @@ + + + + + + +StorageRpc.Tuple (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.spi
+

Class StorageRpc.Tuple<X,Y>

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/spi/StorageRpc.html b/site/0.0.7/apidocs/com/google/gcloud/spi/StorageRpc.html new file mode 100644 index 000000000000..7f7830bf6e83 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/spi/StorageRpc.html @@ -0,0 +1,601 @@ + + + + + + +StorageRpc (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.spi
+

Interface StorageRpc

+
+
+
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/spi/StorageRpcFactory.html b/site/0.0.7/apidocs/com/google/gcloud/spi/StorageRpcFactory.html new file mode 100644 index 000000000000..363d69ec507d --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/spi/StorageRpcFactory.html @@ -0,0 +1,195 @@ + + + + + + +StorageRpcFactory (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.spi
+

Interface StorageRpcFactory

+
+
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/DatastoreRpc.DatastoreRpcException.Reason.html b/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/DatastoreRpc.DatastoreRpcException.Reason.html new file mode 100644 index 000000000000..cc8627b1f6e3 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/DatastoreRpc.DatastoreRpcException.Reason.html @@ -0,0 +1,184 @@ + + + + + + +Uses of Class com.google.gcloud.spi.DatastoreRpc.DatastoreRpcException.Reason (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.spi.DatastoreRpc.DatastoreRpcException.Reason

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/DatastoreRpc.DatastoreRpcException.html b/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/DatastoreRpc.DatastoreRpcException.html new file mode 100644 index 000000000000..c4ea866cc0fc --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/DatastoreRpc.DatastoreRpcException.html @@ -0,0 +1,208 @@ + + + + + + +Uses of Class com.google.gcloud.spi.DatastoreRpc.DatastoreRpcException (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.spi.DatastoreRpc.DatastoreRpcException

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/DatastoreRpc.html b/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/DatastoreRpc.html new file mode 100644 index 000000000000..f76afe99134c --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/DatastoreRpc.html @@ -0,0 +1,164 @@ + + + + + + +Uses of Interface com.google.gcloud.spi.DatastoreRpc (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Interface
com.google.gcloud.spi.DatastoreRpc

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/DatastoreRpcFactory.html b/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/DatastoreRpcFactory.html new file mode 100644 index 000000000000..c5fa2ed00b2a --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/DatastoreRpcFactory.html @@ -0,0 +1,124 @@ + + + + + + +Uses of Interface com.google.gcloud.spi.DatastoreRpcFactory (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Interface
com.google.gcloud.spi.DatastoreRpcFactory

+
+
No usage of com.google.gcloud.spi.DatastoreRpcFactory
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/DefaultDatastoreRpc.html b/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/DefaultDatastoreRpc.html new file mode 100644 index 000000000000..c4116c1deedd --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/DefaultDatastoreRpc.html @@ -0,0 +1,124 @@ + + + + + + +Uses of Class com.google.gcloud.spi.DefaultDatastoreRpc (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.spi.DefaultDatastoreRpc

+
+
No usage of com.google.gcloud.spi.DefaultDatastoreRpc
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/DefaultStorageRpc.html b/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/DefaultStorageRpc.html new file mode 100644 index 000000000000..84c67f772e99 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/DefaultStorageRpc.html @@ -0,0 +1,124 @@ + + + + + + +Uses of Class com.google.gcloud.spi.DefaultStorageRpc (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.spi.DefaultStorageRpc

+
+
No usage of com.google.gcloud.spi.DefaultStorageRpc
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/ServiceRpcFactory.html b/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/ServiceRpcFactory.html new file mode 100644 index 000000000000..db3bd1530044 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/ServiceRpcFactory.html @@ -0,0 +1,223 @@ + + + + + + +Uses of Interface com.google.gcloud.spi.ServiceRpcFactory (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Interface
com.google.gcloud.spi.ServiceRpcFactory

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/StorageRpc.BatchRequest.html b/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/StorageRpc.BatchRequest.html new file mode 100644 index 000000000000..a76221217a98 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/StorageRpc.BatchRequest.html @@ -0,0 +1,168 @@ + + + + + + +Uses of Class com.google.gcloud.spi.StorageRpc.BatchRequest (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.spi.StorageRpc.BatchRequest

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/StorageRpc.BatchResponse.html b/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/StorageRpc.BatchResponse.html new file mode 100644 index 000000000000..61c42ab01794 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/StorageRpc.BatchResponse.html @@ -0,0 +1,168 @@ + + + + + + +Uses of Class com.google.gcloud.spi.StorageRpc.BatchResponse (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.spi.StorageRpc.BatchResponse

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/StorageRpc.Option.html b/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/StorageRpc.Option.html new file mode 100644 index 000000000000..e1d9c174b1df --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/StorageRpc.Option.html @@ -0,0 +1,400 @@ + + + + + + +Uses of Class com.google.gcloud.spi.StorageRpc.Option (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.spi.StorageRpc.Option

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/StorageRpc.Tuple.html b/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/StorageRpc.Tuple.html new file mode 100644 index 000000000000..8ea6098f1185 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/StorageRpc.Tuple.html @@ -0,0 +1,254 @@ + + + + + + +Uses of Class com.google.gcloud.spi.StorageRpc.Tuple (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.spi.StorageRpc.Tuple

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/StorageRpc.html b/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/StorageRpc.html new file mode 100644 index 000000000000..d6010e761470 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/StorageRpc.html @@ -0,0 +1,164 @@ + + + + + + +Uses of Interface com.google.gcloud.spi.StorageRpc (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Interface
com.google.gcloud.spi.StorageRpc

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/StorageRpcFactory.html b/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/StorageRpcFactory.html new file mode 100644 index 000000000000..d4887dfeb969 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/spi/class-use/StorageRpcFactory.html @@ -0,0 +1,124 @@ + + + + + + +Uses of Interface com.google.gcloud.spi.StorageRpcFactory (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Interface
com.google.gcloud.spi.StorageRpcFactory

+
+
No usage of com.google.gcloud.spi.StorageRpcFactory
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/spi/package-frame.html b/site/0.0.7/apidocs/com/google/gcloud/spi/package-frame.html new file mode 100644 index 000000000000..8d7a9181fdb1 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/spi/package-frame.html @@ -0,0 +1,42 @@ + + + + + + +com.google.gcloud.spi (GCloud Java 0.0.7-SNAPSHOT API) + + + + + +

com.google.gcloud.spi

+
+

Interfaces

+ +

Classes

+ +

Enums

+ +

Exceptions

+ +
+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/spi/package-summary.html b/site/0.0.7/apidocs/com/google/gcloud/spi/package-summary.html new file mode 100644 index 000000000000..eba251568446 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/spi/package-summary.html @@ -0,0 +1,233 @@ + + + + + + +com.google.gcloud.spi (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Package com.google.gcloud.spi

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/spi/package-tree.html b/site/0.0.7/apidocs/com/google/gcloud/spi/package-tree.html new file mode 100644 index 000000000000..4d9dcccd8589 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/spi/package-tree.html @@ -0,0 +1,178 @@ + + + + + + +com.google.gcloud.spi Class Hierarchy (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Hierarchy For Package com.google.gcloud.spi

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +

Interface Hierarchy

+ +

Enum Hierarchy

+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/spi/package-use.html b/site/0.0.7/apidocs/com/google/gcloud/spi/package-use.html new file mode 100644 index 000000000000..c811205adadc --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/spi/package-use.html @@ -0,0 +1,208 @@ + + + + + + +Uses of Package com.google.gcloud.spi (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Package
com.google.gcloud.spi

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/Acl.Domain.html b/site/0.0.7/apidocs/com/google/gcloud/storage/Acl.Domain.html new file mode 100644 index 000000000000..55ba0d20d3ce --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/Acl.Domain.html @@ -0,0 +1,310 @@ + + + + + + +Acl.Domain (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class Acl.Domain

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/Acl.Entity.Type.html b/site/0.0.7/apidocs/com/google/gcloud/storage/Acl.Entity.Type.html new file mode 100644 index 000000000000..396868d86899 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/Acl.Entity.Type.html @@ -0,0 +1,381 @@ + + + + + + +Acl.Entity.Type (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Enum Acl.Entity.Type

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/Acl.Entity.html b/site/0.0.7/apidocs/com/google/gcloud/storage/Acl.Entity.html new file mode 100644 index 000000000000..24a9b14b8031 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/Acl.Entity.html @@ -0,0 +1,337 @@ + + + + + + +Acl.Entity (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class Acl.Entity

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/Acl.Group.html b/site/0.0.7/apidocs/com/google/gcloud/storage/Acl.Group.html new file mode 100644 index 000000000000..6796162a3d79 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/Acl.Group.html @@ -0,0 +1,310 @@ + + + + + + +Acl.Group (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class Acl.Group

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/Acl.Project.ProjectRole.html b/site/0.0.7/apidocs/com/google/gcloud/storage/Acl.Project.ProjectRole.html new file mode 100644 index 000000000000..cc3e52c25517 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/Acl.Project.ProjectRole.html @@ -0,0 +1,357 @@ + + + + + + +Acl.Project.ProjectRole (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Enum Acl.Project.ProjectRole

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/Acl.Project.html b/site/0.0.7/apidocs/com/google/gcloud/storage/Acl.Project.html new file mode 100644 index 000000000000..9e6c19568daa --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/Acl.Project.html @@ -0,0 +1,336 @@ + + + + + + +Acl.Project (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class Acl.Project

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/Acl.RawEntity.html b/site/0.0.7/apidocs/com/google/gcloud/storage/Acl.RawEntity.html new file mode 100644 index 000000000000..e3d341512186 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/Acl.RawEntity.html @@ -0,0 +1,236 @@ + + + + + + +Acl.RawEntity (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class Acl.RawEntity

+
+
+ +
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/Acl.Role.html b/site/0.0.7/apidocs/com/google/gcloud/storage/Acl.Role.html new file mode 100644 index 000000000000..67c16f2ac61d --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/Acl.Role.html @@ -0,0 +1,357 @@ + + + + + + +Acl.Role (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Enum Acl.Role

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/Acl.User.html b/site/0.0.7/apidocs/com/google/gcloud/storage/Acl.User.html new file mode 100644 index 000000000000..0b75a2d4a7e3 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/Acl.User.html @@ -0,0 +1,336 @@ + + + + + + +Acl.User (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class Acl.User

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/Acl.html b/site/0.0.7/apidocs/com/google/gcloud/storage/Acl.html new file mode 100644 index 000000000000..fc3f18d1e533 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/Acl.html @@ -0,0 +1,373 @@ + + + + + + +Acl (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class Acl

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/BatchRequest.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/storage/BatchRequest.Builder.html new file mode 100644 index 000000000000..d4521d155737 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/BatchRequest.Builder.html @@ -0,0 +1,299 @@ + + + + + + +BatchRequest.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class BatchRequest.Builder

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/BatchRequest.html b/site/0.0.7/apidocs/com/google/gcloud/storage/BatchRequest.html new file mode 100644 index 000000000000..45b1460272ec --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/BatchRequest.html @@ -0,0 +1,339 @@ + + + + + + +BatchRequest (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class BatchRequest

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/BatchResponse.Result.html b/site/0.0.7/apidocs/com/google/gcloud/storage/BatchResponse.Result.html new file mode 100644 index 000000000000..894eeaae953e --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/BatchResponse.Result.html @@ -0,0 +1,389 @@ + + + + + + +BatchResponse.Result (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class BatchResponse.Result<T extends Serializable>

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/BatchResponse.html b/site/0.0.7/apidocs/com/google/gcloud/storage/BatchResponse.html new file mode 100644 index 000000000000..d2f77bc323d6 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/BatchResponse.html @@ -0,0 +1,373 @@ + + + + + + +BatchResponse (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class BatchResponse

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/BlobInfo.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/storage/BlobInfo.Builder.html new file mode 100644 index 000000000000..3f67acd7c447 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/BlobInfo.Builder.html @@ -0,0 +1,384 @@ + + + + + + +BlobInfo.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class BlobInfo.Builder

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/BlobInfo.html b/site/0.0.7/apidocs/com/google/gcloud/storage/BlobInfo.html new file mode 100644 index 000000000000..a5d98e38707a --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/BlobInfo.html @@ -0,0 +1,649 @@ + + + + + + +BlobInfo (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class BlobInfo

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/BlobReadChannel.html b/site/0.0.7/apidocs/com/google/gcloud/storage/BlobReadChannel.html new file mode 100644 index 000000000000..f1b21cae3042 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/BlobReadChannel.html @@ -0,0 +1,293 @@ + + + + + + +BlobReadChannel (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Interface BlobReadChannel

+
+
+
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/BlobWriteChannel.html b/site/0.0.7/apidocs/com/google/gcloud/storage/BlobWriteChannel.html new file mode 100644 index 000000000000..5ddcd509fd36 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/BlobWriteChannel.html @@ -0,0 +1,249 @@ + + + + + + +BlobWriteChannel (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Interface BlobWriteChannel

+
+
+
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.AgeDeleteRule.html b/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.AgeDeleteRule.html new file mode 100644 index 000000000000..a4c3a6bcb6a8 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.AgeDeleteRule.html @@ -0,0 +1,310 @@ + + + + + + +BucketInfo.AgeDeleteRule (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class BucketInfo.AgeDeleteRule

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.Builder.html new file mode 100644 index 000000000000..0251f61d42dc --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.Builder.html @@ -0,0 +1,371 @@ + + + + + + +BucketInfo.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class BucketInfo.Builder

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.CreatedBeforeDeleteRule.html b/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.CreatedBeforeDeleteRule.html new file mode 100644 index 000000000000..8d2f3b459625 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.CreatedBeforeDeleteRule.html @@ -0,0 +1,310 @@ + + + + + + +BucketInfo.CreatedBeforeDeleteRule (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class BucketInfo.CreatedBeforeDeleteRule

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.DeleteRule.Type.html b/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.DeleteRule.Type.html new file mode 100644 index 000000000000..bbd305cd2f6b --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.DeleteRule.Type.html @@ -0,0 +1,381 @@ + + + + + + +BucketInfo.DeleteRule.Type (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Enum BucketInfo.DeleteRule.Type

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.DeleteRule.html b/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.DeleteRule.html new file mode 100644 index 000000000000..654351fa2eac --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.DeleteRule.html @@ -0,0 +1,307 @@ + + + + + + +BucketInfo.DeleteRule (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class BucketInfo.DeleteRule

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.IsLiveDeleteRule.html b/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.IsLiveDeleteRule.html new file mode 100644 index 000000000000..835889719c9e --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.IsLiveDeleteRule.html @@ -0,0 +1,310 @@ + + + + + + +BucketInfo.IsLiveDeleteRule (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class BucketInfo.IsLiveDeleteRule

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.Location.Option.html b/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.Location.Option.html new file mode 100644 index 000000000000..70715f9a0015 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.Location.Option.html @@ -0,0 +1,357 @@ + + + + + + +BucketInfo.Location.Option (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Enum BucketInfo.Location.Option

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.Location.html b/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.Location.html new file mode 100644 index 000000000000..ba658c942e40 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.Location.html @@ -0,0 +1,372 @@ + + + + + + +BucketInfo.Location (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class BucketInfo.Location

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.NumNewerVersionsDeleteRule.html b/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.NumNewerVersionsDeleteRule.html new file mode 100644 index 000000000000..e8ef4a357250 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.NumNewerVersionsDeleteRule.html @@ -0,0 +1,310 @@ + + + + + + +BucketInfo.NumNewerVersionsDeleteRule (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class BucketInfo.NumNewerVersionsDeleteRule

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.StorageClass.Option.html b/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.StorageClass.Option.html new file mode 100644 index 000000000000..72327bbc48cd --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.StorageClass.Option.html @@ -0,0 +1,345 @@ + + + + + + +BucketInfo.StorageClass.Option (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Enum BucketInfo.StorageClass.Option

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.StorageClass.html b/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.StorageClass.html new file mode 100644 index 000000000000..f27f51fc5147 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.StorageClass.html @@ -0,0 +1,325 @@ + + + + + + +BucketInfo.StorageClass (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class BucketInfo.StorageClass

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.html b/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.html new file mode 100644 index 000000000000..0769e26a7b8e --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/BucketInfo.html @@ -0,0 +1,581 @@ + + + + + + +BucketInfo (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class BucketInfo

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/Cors.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/storage/Cors.Builder.html new file mode 100644 index 000000000000..f0d52c2bd889 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/Cors.Builder.html @@ -0,0 +1,293 @@ + + + + + + +Cors.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class Cors.Builder

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/Cors.Origin.html b/site/0.0.7/apidocs/com/google/gcloud/storage/Cors.Origin.html new file mode 100644 index 000000000000..8e2f22bc58ad --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/Cors.Origin.html @@ -0,0 +1,344 @@ + + + + + + +Cors.Origin (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class Cors.Origin

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/Cors.html b/site/0.0.7/apidocs/com/google/gcloud/storage/Cors.html new file mode 100644 index 000000000000..b09c39215c2c --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/Cors.html @@ -0,0 +1,369 @@ + + + + + + +Cors (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class Cors

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/HttpMethod.html b/site/0.0.7/apidocs/com/google/gcloud/storage/HttpMethod.html new file mode 100644 index 000000000000..b09c68a5b0e2 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/HttpMethod.html @@ -0,0 +1,378 @@ + + + + + + +HttpMethod (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Enum HttpMethod

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/ListResult.NextPageFetcher.html b/site/0.0.7/apidocs/com/google/gcloud/storage/ListResult.NextPageFetcher.html new file mode 100644 index 000000000000..c0daf491763a --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/ListResult.NextPageFetcher.html @@ -0,0 +1,230 @@ + + + + + + +ListResult.NextPageFetcher (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Interface ListResult.NextPageFetcher<T extends Serializable>

+
+
+
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/ListResult.html b/site/0.0.7/apidocs/com/google/gcloud/storage/ListResult.html new file mode 100644 index 000000000000..00b1517af513 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/ListResult.html @@ -0,0 +1,381 @@ + + + + + + +ListResult (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class ListResult<T extends Serializable>

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.BlobListOption.html b/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.BlobListOption.html new file mode 100644 index 000000000000..9cb893c81d9b --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.BlobListOption.html @@ -0,0 +1,339 @@ + + + + + + +Storage.BlobListOption (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class Storage.BlobListOption

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.BlobSourceOption.html b/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.BlobSourceOption.html new file mode 100644 index 000000000000..b2b9b3fa030a --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.BlobSourceOption.html @@ -0,0 +1,339 @@ + + + + + + +Storage.BlobSourceOption (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class Storage.BlobSourceOption

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.BlobTargetOption.html b/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.BlobTargetOption.html new file mode 100644 index 000000000000..2ad38672fd7f --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.BlobTargetOption.html @@ -0,0 +1,365 @@ + + + + + + +Storage.BlobTargetOption (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class Storage.BlobTargetOption

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.BucketListOption.html b/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.BucketListOption.html new file mode 100644 index 000000000000..15425eba9cec --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.BucketListOption.html @@ -0,0 +1,326 @@ + + + + + + +Storage.BucketListOption (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class Storage.BucketListOption

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.BucketSourceOption.html b/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.BucketSourceOption.html new file mode 100644 index 000000000000..0f0f8e60b4e3 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.BucketSourceOption.html @@ -0,0 +1,313 @@ + + + + + + +Storage.BucketSourceOption (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class Storage.BucketSourceOption

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.BucketTargetOption.html b/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.BucketTargetOption.html new file mode 100644 index 000000000000..8c22bb546404 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.BucketTargetOption.html @@ -0,0 +1,339 @@ + + + + + + +Storage.BucketTargetOption (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class Storage.BucketTargetOption

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.ComposeRequest.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.ComposeRequest.Builder.html new file mode 100644 index 000000000000..80547ac2cea7 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.ComposeRequest.Builder.html @@ -0,0 +1,345 @@ + + + + + + +Storage.ComposeRequest.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class Storage.ComposeRequest.Builder

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.ComposeRequest.SourceBlob.html b/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.ComposeRequest.SourceBlob.html new file mode 100644 index 000000000000..45c4c888113d --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.ComposeRequest.SourceBlob.html @@ -0,0 +1,263 @@ + + + + + + +Storage.ComposeRequest.SourceBlob (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class Storage.ComposeRequest.SourceBlob

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.ComposeRequest.html b/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.ComposeRequest.html new file mode 100644 index 000000000000..55f4cbe0b72a --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.ComposeRequest.html @@ -0,0 +1,344 @@ + + + + + + +Storage.ComposeRequest (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class Storage.ComposeRequest

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.CopyRequest.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.CopyRequest.Builder.html new file mode 100644 index 000000000000..6f9d179cd40c --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.CopyRequest.Builder.html @@ -0,0 +1,329 @@ + + + + + + +Storage.CopyRequest.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class Storage.CopyRequest.Builder

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.CopyRequest.html b/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.CopyRequest.html new file mode 100644 index 000000000000..90e71e4685c6 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.CopyRequest.html @@ -0,0 +1,368 @@ + + + + + + +Storage.CopyRequest (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class Storage.CopyRequest

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.PredefinedAcl.html b/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.PredefinedAcl.html new file mode 100644 index 000000000000..010f4be4e086 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.PredefinedAcl.html @@ -0,0 +1,417 @@ + + + + + + +Storage.PredefinedAcl (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Enum Storage.PredefinedAcl

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.SignUrlOption.html b/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.SignUrlOption.html new file mode 100644 index 000000000000..dc7cc345a2a7 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.SignUrlOption.html @@ -0,0 +1,309 @@ + + + + + + +Storage.SignUrlOption (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class Storage.SignUrlOption

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.html b/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.html new file mode 100644 index 000000000000..d8d3f40f2dbd --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/Storage.html @@ -0,0 +1,686 @@ + + + + + + +Storage (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Interface Storage

+
+
+
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/StorageException.html b/site/0.0.7/apidocs/com/google/gcloud/storage/StorageException.html new file mode 100644 index 000000000000..7d64271e1575 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/StorageException.html @@ -0,0 +1,324 @@ + + + + + + +StorageException (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class StorageException

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/StorageFactory.html b/site/0.0.7/apidocs/com/google/gcloud/storage/StorageFactory.html new file mode 100644 index 000000000000..054a97e15b04 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/StorageFactory.html @@ -0,0 +1,291 @@ + + + + + + +StorageFactory (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class StorageFactory

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/StorageOptions.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/storage/StorageOptions.Builder.html new file mode 100644 index 000000000000..2bb149136f46 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/StorageOptions.Builder.html @@ -0,0 +1,270 @@ + + + + + + +StorageOptions.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class StorageOptions.Builder

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/StorageOptions.html b/site/0.0.7/apidocs/com/google/gcloud/storage/StorageOptions.html new file mode 100644 index 000000000000..69954b5b4d63 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/StorageOptions.html @@ -0,0 +1,377 @@ + + + + + + +StorageOptions (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + + +
+
com.google.gcloud.storage
+

Class StorageOptions

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Acl.Domain.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Acl.Domain.html new file mode 100644 index 000000000000..3483919f26ad --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Acl.Domain.html @@ -0,0 +1,124 @@ + + + + + + +Uses of Class com.google.gcloud.storage.Acl.Domain (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.Acl.Domain

+
+
No usage of com.google.gcloud.storage.Acl.Domain
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Acl.Entity.Type.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Acl.Entity.Type.html new file mode 100644 index 000000000000..529d97d4cb94 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Acl.Entity.Type.html @@ -0,0 +1,179 @@ + + + + + + +Uses of Class com.google.gcloud.storage.Acl.Entity.Type (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.Acl.Entity.Type

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Acl.Entity.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Acl.Entity.html new file mode 100644 index 000000000000..97c655d69e70 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Acl.Entity.html @@ -0,0 +1,215 @@ + + + + + + +Uses of Class com.google.gcloud.storage.Acl.Entity (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.Acl.Entity

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Acl.Group.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Acl.Group.html new file mode 100644 index 000000000000..03403dcd1afd --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Acl.Group.html @@ -0,0 +1,124 @@ + + + + + + +Uses of Class com.google.gcloud.storage.Acl.Group (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.Acl.Group

+
+
No usage of com.google.gcloud.storage.Acl.Group
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Acl.Project.ProjectRole.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Acl.Project.ProjectRole.html new file mode 100644 index 000000000000..acb85410c9f1 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Acl.Project.ProjectRole.html @@ -0,0 +1,191 @@ + + + + + + +Uses of Class com.google.gcloud.storage.Acl.Project.ProjectRole (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.Acl.Project.ProjectRole

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Acl.Project.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Acl.Project.html new file mode 100644 index 000000000000..ae170c23e313 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Acl.Project.html @@ -0,0 +1,124 @@ + + + + + + +Uses of Class com.google.gcloud.storage.Acl.Project (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.Acl.Project

+
+
No usage of com.google.gcloud.storage.Acl.Project
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Acl.RawEntity.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Acl.RawEntity.html new file mode 100644 index 000000000000..0599aaf7fff0 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Acl.RawEntity.html @@ -0,0 +1,124 @@ + + + + + + +Uses of Class com.google.gcloud.storage.Acl.RawEntity (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.Acl.RawEntity

+
+
No usage of com.google.gcloud.storage.Acl.RawEntity
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Acl.Role.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Acl.Role.html new file mode 100644 index 000000000000..850e2eebe084 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Acl.Role.html @@ -0,0 +1,191 @@ + + + + + + +Uses of Class com.google.gcloud.storage.Acl.Role (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.Acl.Role

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Acl.User.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Acl.User.html new file mode 100644 index 000000000000..6c7564ec838a --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Acl.User.html @@ -0,0 +1,170 @@ + + + + + + +Uses of Class com.google.gcloud.storage.Acl.User (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.Acl.User

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Acl.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Acl.html new file mode 100644 index 000000000000..c148a73adc3a --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Acl.html @@ -0,0 +1,195 @@ + + + + + + +Uses of Class com.google.gcloud.storage.Acl (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.Acl

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BatchRequest.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BatchRequest.Builder.html new file mode 100644 index 000000000000..144026e5c7e8 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BatchRequest.Builder.html @@ -0,0 +1,189 @@ + + + + + + +Uses of Class com.google.gcloud.storage.BatchRequest.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.BatchRequest.Builder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BatchRequest.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BatchRequest.html new file mode 100644 index 000000000000..151ab363fc45 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BatchRequest.html @@ -0,0 +1,181 @@ + + + + + + +Uses of Class com.google.gcloud.storage.BatchRequest (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.BatchRequest

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BatchResponse.Result.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BatchResponse.Result.html new file mode 100644 index 000000000000..62de7a5404bf --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BatchResponse.Result.html @@ -0,0 +1,203 @@ + + + + + + +Uses of Class com.google.gcloud.storage.BatchResponse.Result (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.BatchResponse.Result

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BatchResponse.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BatchResponse.html new file mode 100644 index 000000000000..1c6ff5131dc5 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BatchResponse.html @@ -0,0 +1,168 @@ + + + + + + +Uses of Class com.google.gcloud.storage.BatchResponse (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.BatchResponse

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BlobInfo.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BlobInfo.Builder.html new file mode 100644 index 000000000000..82c08ce7ef85 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BlobInfo.Builder.html @@ -0,0 +1,220 @@ + + + + + + +Uses of Class com.google.gcloud.storage.BlobInfo.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.BlobInfo.Builder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BlobInfo.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BlobInfo.html new file mode 100644 index 000000000000..87d7f209f47f --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BlobInfo.html @@ -0,0 +1,337 @@ + + + + + + +Uses of Class com.google.gcloud.storage.BlobInfo (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.BlobInfo

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BlobReadChannel.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BlobReadChannel.html new file mode 100644 index 000000000000..249661af1697 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BlobReadChannel.html @@ -0,0 +1,170 @@ + + + + + + +Uses of Interface com.google.gcloud.storage.BlobReadChannel (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Interface
com.google.gcloud.storage.BlobReadChannel

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BlobWriteChannel.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BlobWriteChannel.html new file mode 100644 index 000000000000..ebed35155a65 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BlobWriteChannel.html @@ -0,0 +1,169 @@ + + + + + + +Uses of Interface com.google.gcloud.storage.BlobWriteChannel (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Interface
com.google.gcloud.storage.BlobWriteChannel

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.AgeDeleteRule.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.AgeDeleteRule.html new file mode 100644 index 000000000000..2c151717c77f --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.AgeDeleteRule.html @@ -0,0 +1,124 @@ + + + + + + +Uses of Class com.google.gcloud.storage.BucketInfo.AgeDeleteRule (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.BucketInfo.AgeDeleteRule

+
+
No usage of com.google.gcloud.storage.BucketInfo.AgeDeleteRule
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.Builder.html new file mode 100644 index 000000000000..667a8111b52d --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.Builder.html @@ -0,0 +1,210 @@ + + + + + + +Uses of Class com.google.gcloud.storage.BucketInfo.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.BucketInfo.Builder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.CreatedBeforeDeleteRule.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.CreatedBeforeDeleteRule.html new file mode 100644 index 000000000000..62436ce0ed2e --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.CreatedBeforeDeleteRule.html @@ -0,0 +1,124 @@ + + + + + + +Uses of Class com.google.gcloud.storage.BucketInfo.CreatedBeforeDeleteRule (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.BucketInfo.CreatedBeforeDeleteRule

+
+
No usage of com.google.gcloud.storage.BucketInfo.CreatedBeforeDeleteRule
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.DeleteRule.Type.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.DeleteRule.Type.html new file mode 100644 index 000000000000..8f3b25a4ca1d --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.DeleteRule.Type.html @@ -0,0 +1,179 @@ + + + + + + +Uses of Class com.google.gcloud.storage.BucketInfo.DeleteRule.Type (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.BucketInfo.DeleteRule.Type

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.DeleteRule.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.DeleteRule.html new file mode 100644 index 000000000000..d3bb59732079 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.DeleteRule.html @@ -0,0 +1,204 @@ + + + + + + +Uses of Class com.google.gcloud.storage.BucketInfo.DeleteRule (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.BucketInfo.DeleteRule

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.IsLiveDeleteRule.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.IsLiveDeleteRule.html new file mode 100644 index 000000000000..e4c7250cfbd9 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.IsLiveDeleteRule.html @@ -0,0 +1,124 @@ + + + + + + +Uses of Class com.google.gcloud.storage.BucketInfo.IsLiveDeleteRule (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.BucketInfo.IsLiveDeleteRule

+
+
No usage of com.google.gcloud.storage.BucketInfo.IsLiveDeleteRule
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.Location.Option.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.Location.Option.html new file mode 100644 index 000000000000..8048fbad3c41 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.Location.Option.html @@ -0,0 +1,175 @@ + + + + + + +Uses of Class com.google.gcloud.storage.BucketInfo.Location.Option (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.BucketInfo.Location.Option

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.Location.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.Location.html new file mode 100644 index 000000000000..4d9fc9062f4f --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.Location.html @@ -0,0 +1,195 @@ + + + + + + +Uses of Class com.google.gcloud.storage.BucketInfo.Location (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.BucketInfo.Location

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.NumNewerVersionsDeleteRule.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.NumNewerVersionsDeleteRule.html new file mode 100644 index 000000000000..c66a6cfa6c8a --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.NumNewerVersionsDeleteRule.html @@ -0,0 +1,124 @@ + + + + + + +Uses of Class com.google.gcloud.storage.BucketInfo.NumNewerVersionsDeleteRule (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.BucketInfo.NumNewerVersionsDeleteRule

+
+
No usage of com.google.gcloud.storage.BucketInfo.NumNewerVersionsDeleteRule
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.StorageClass.Option.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.StorageClass.Option.html new file mode 100644 index 000000000000..b879f9185ac1 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.StorageClass.Option.html @@ -0,0 +1,175 @@ + + + + + + +Uses of Class com.google.gcloud.storage.BucketInfo.StorageClass.Option (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.BucketInfo.StorageClass.Option

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.StorageClass.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.StorageClass.html new file mode 100644 index 000000000000..d2145b1d5bc8 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.StorageClass.html @@ -0,0 +1,191 @@ + + + + + + +Uses of Class com.google.gcloud.storage.BucketInfo.StorageClass (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.BucketInfo.StorageClass

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.html new file mode 100644 index 000000000000..ac4b008530cf --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/BucketInfo.html @@ -0,0 +1,234 @@ + + + + + + +Uses of Class com.google.gcloud.storage.BucketInfo (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.BucketInfo

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Cors.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Cors.Builder.html new file mode 100644 index 000000000000..6c9d7d3a3865 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Cors.Builder.html @@ -0,0 +1,186 @@ + + + + + + +Uses of Class com.google.gcloud.storage.Cors.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.Cors.Builder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Cors.Origin.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Cors.Origin.html new file mode 100644 index 000000000000..40bf1812da5a --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Cors.Origin.html @@ -0,0 +1,202 @@ + + + + + + +Uses of Class com.google.gcloud.storage.Cors.Origin (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.Cors.Origin

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Cors.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Cors.html new file mode 100644 index 000000000000..99f7f213e2a0 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Cors.html @@ -0,0 +1,192 @@ + + + + + + +Uses of Class com.google.gcloud.storage.Cors (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.Cors

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/HttpMethod.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/HttpMethod.html new file mode 100644 index 000000000000..cbaec86f1d94 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/HttpMethod.html @@ -0,0 +1,216 @@ + + + + + + +Uses of Class com.google.gcloud.storage.HttpMethod (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.HttpMethod

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/ListResult.NextPageFetcher.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/ListResult.NextPageFetcher.html new file mode 100644 index 000000000000..71031325a0d3 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/ListResult.NextPageFetcher.html @@ -0,0 +1,166 @@ + + + + + + +Uses of Interface com.google.gcloud.storage.ListResult.NextPageFetcher (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Interface
com.google.gcloud.storage.ListResult.NextPageFetcher

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/ListResult.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/ListResult.html new file mode 100644 index 000000000000..d1875a56e828 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/ListResult.html @@ -0,0 +1,185 @@ + + + + + + +Uses of Class com.google.gcloud.storage.ListResult (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.ListResult

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.BlobListOption.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.BlobListOption.html new file mode 100644 index 000000000000..f0374a19ee86 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.BlobListOption.html @@ -0,0 +1,194 @@ + + + + + + +Uses of Class com.google.gcloud.storage.Storage.BlobListOption (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.Storage.BlobListOption

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.BlobSourceOption.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.BlobSourceOption.html new file mode 100644 index 000000000000..20557171c2e3 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.BlobSourceOption.html @@ -0,0 +1,260 @@ + + + + + + +Uses of Class com.google.gcloud.storage.Storage.BlobSourceOption (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.Storage.BlobSourceOption

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.BlobTargetOption.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.BlobTargetOption.html new file mode 100644 index 000000000000..57e274c98cfa --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.BlobTargetOption.html @@ -0,0 +1,253 @@ + + + + + + +Uses of Class com.google.gcloud.storage.Storage.BlobTargetOption (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.Storage.BlobTargetOption

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.BucketListOption.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.BucketListOption.html new file mode 100644 index 000000000000..81863aa48e8f --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.BucketListOption.html @@ -0,0 +1,189 @@ + + + + + + +Uses of Class com.google.gcloud.storage.Storage.BucketListOption (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.Storage.BucketListOption

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.BucketSourceOption.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.BucketSourceOption.html new file mode 100644 index 000000000000..e047554b8b11 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.BucketSourceOption.html @@ -0,0 +1,193 @@ + + + + + + +Uses of Class com.google.gcloud.storage.Storage.BucketSourceOption (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.Storage.BucketSourceOption

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.BucketTargetOption.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.BucketTargetOption.html new file mode 100644 index 000000000000..9dd213b0482f --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.BucketTargetOption.html @@ -0,0 +1,201 @@ + + + + + + +Uses of Class com.google.gcloud.storage.Storage.BucketTargetOption (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.Storage.BucketTargetOption

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.ComposeRequest.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.ComposeRequest.Builder.html new file mode 100644 index 000000000000..4bcbebef2fa1 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.ComposeRequest.Builder.html @@ -0,0 +1,189 @@ + + + + + + +Uses of Class com.google.gcloud.storage.Storage.ComposeRequest.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.Storage.ComposeRequest.Builder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.ComposeRequest.SourceBlob.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.ComposeRequest.SourceBlob.html new file mode 100644 index 000000000000..370d0282610e --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.ComposeRequest.SourceBlob.html @@ -0,0 +1,166 @@ + + + + + + +Uses of Class com.google.gcloud.storage.Storage.ComposeRequest.SourceBlob (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.Storage.ComposeRequest.SourceBlob

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.ComposeRequest.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.ComposeRequest.html new file mode 100644 index 000000000000..4e93be33e051 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.ComposeRequest.html @@ -0,0 +1,192 @@ + + + + + + +Uses of Class com.google.gcloud.storage.Storage.ComposeRequest (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.Storage.ComposeRequest

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.CopyRequest.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.CopyRequest.Builder.html new file mode 100644 index 000000000000..9bd13c5d4116 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.CopyRequest.Builder.html @@ -0,0 +1,183 @@ + + + + + + +Uses of Class com.google.gcloud.storage.Storage.CopyRequest.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.Storage.CopyRequest.Builder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.CopyRequest.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.CopyRequest.html new file mode 100644 index 000000000000..43f9d698788a --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.CopyRequest.html @@ -0,0 +1,193 @@ + + + + + + +Uses of Class com.google.gcloud.storage.Storage.CopyRequest (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.Storage.CopyRequest

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.PredefinedAcl.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.PredefinedAcl.html new file mode 100644 index 000000000000..a463d60809bb --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.PredefinedAcl.html @@ -0,0 +1,196 @@ + + + + + + +Uses of Class com.google.gcloud.storage.Storage.PredefinedAcl (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.Storage.PredefinedAcl

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.SignUrlOption.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.SignUrlOption.html new file mode 100644 index 000000000000..e738e7dc67d7 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.SignUrlOption.html @@ -0,0 +1,203 @@ + + + + + + +Uses of Class com.google.gcloud.storage.Storage.SignUrlOption (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.Storage.SignUrlOption

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.html new file mode 100644 index 000000000000..81c8ac841616 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/Storage.html @@ -0,0 +1,168 @@ + + + + + + +Uses of Interface com.google.gcloud.storage.Storage (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Interface
com.google.gcloud.storage.Storage

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/StorageException.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/StorageException.html new file mode 100644 index 000000000000..136954409ad9 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/StorageException.html @@ -0,0 +1,405 @@ + + + + + + +Uses of Class com.google.gcloud.storage.StorageException (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.StorageException

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/StorageFactory.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/StorageFactory.html new file mode 100644 index 000000000000..1a214d878364 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/StorageFactory.html @@ -0,0 +1,168 @@ + + + + + + +Uses of Class com.google.gcloud.storage.StorageFactory (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.StorageFactory

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/StorageOptions.Builder.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/StorageOptions.Builder.html new file mode 100644 index 000000000000..92a0a2b9129c --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/StorageOptions.Builder.html @@ -0,0 +1,174 @@ + + + + + + +Uses of Class com.google.gcloud.storage.StorageOptions.Builder (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.StorageOptions.Builder

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/StorageOptions.html b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/StorageOptions.html new file mode 100644 index 000000000000..eeb599954960 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/class-use/StorageOptions.html @@ -0,0 +1,205 @@ + + + + + + +Uses of Class com.google.gcloud.storage.StorageOptions (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Class
com.google.gcloud.storage.StorageOptions

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/package-frame.html b/site/0.0.7/apidocs/com/google/gcloud/storage/package-frame.html new file mode 100644 index 000000000000..8e38511883b5 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/package-frame.html @@ -0,0 +1,83 @@ + + + + + + +com.google.gcloud.storage (GCloud Java 0.0.7-SNAPSHOT API) + + + + + +

com.google.gcloud.storage

+
+

Interfaces

+ +

Classes

+ +

Enums

+ +

Exceptions

+ +
+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/package-summary.html b/site/0.0.7/apidocs/com/google/gcloud/storage/package-summary.html new file mode 100644 index 000000000000..33f9d2d67cf7 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/package-summary.html @@ -0,0 +1,442 @@ + + + + + + +com.google.gcloud.storage (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Package com.google.gcloud.storage

+
+
A client to Google Cloud Storage.
+
+

See: Description

+
+
+ + + + +

Package com.google.gcloud.storage Description

+
A client to Google Cloud Storage. + +

A simple usage example: +


+ StorageOptions options = StorageOptions.builder().projectId("project").build();
+ Storage storage = StorageFactory.instance().get(options);
+ byte[] content = readContent();
+ BlobInfo blobInfo = storage.get("bucket", "blob_name");
+ if (blobInfo == null) {
+   storage.create(BlobInfo.of("bucket", "blob_name"), content);
+ } else {
+   byte[] prevContent = storage.readAllBytes("bucket", "blob_name");
+   content = mergeContent(prevContent, content);
+   WritableByteChannel channel = storage.writer(blob);
+   channel.write(ByteBuffer.wrap(content));
+   channel.close();
+ }
+
+
See Also:
+
Google Cloud Storage
+
+
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/package-tree.html b/site/0.0.7/apidocs/com/google/gcloud/storage/package-tree.html new file mode 100644 index 000000000000..93ddde0b1214 --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/package-tree.html @@ -0,0 +1,262 @@ + + + + + + +com.google.gcloud.storage Class Hierarchy (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Hierarchy For Package com.google.gcloud.storage

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +

Interface Hierarchy

+ +

Enum Hierarchy

+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/com/google/gcloud/storage/package-use.html b/site/0.0.7/apidocs/com/google/gcloud/storage/package-use.html new file mode 100644 index 000000000000..87095d2efd7f --- /dev/null +++ b/site/0.0.7/apidocs/com/google/gcloud/storage/package-use.html @@ -0,0 +1,344 @@ + + + + + + +Uses of Package com.google.gcloud.storage (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Uses of Package
com.google.gcloud.storage

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/constant-values.html b/site/0.0.7/apidocs/constant-values.html new file mode 100644 index 000000000000..a32507119c57 --- /dev/null +++ b/site/0.0.7/apidocs/constant-values.html @@ -0,0 +1,209 @@ + + + + + + +Constant Field Values (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Constant Field Values

+

Contents

+ +
+
+ + +

com.google.*

+ + +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/deprecated-list.html b/site/0.0.7/apidocs/deprecated-list.html new file mode 100644 index 000000000000..e85428df5b2c --- /dev/null +++ b/site/0.0.7/apidocs/deprecated-list.html @@ -0,0 +1,152 @@ + + + + + + +Deprecated List (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Deprecated API

+

Contents

+ +
+
+ + + +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/index-all.html b/site/0.0.7/apidocs/index-all.html new file mode 100644 index 000000000000..2a82c5b887a1 --- /dev/null +++ b/site/0.0.7/apidocs/index-all.html @@ -0,0 +1,2881 @@ + + + + + + +Index (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
A B C D E F G H I K L M N O P Q R S T U V W X Y  + + +

A

+
+
abortOn(Class<? extends Exception>...) - Method in class com.google.gcloud.ExceptionHandler.Builder
+
+
Adds the exceptions to abort on.
+
+
account() - Method in class com.google.gcloud.AuthCredentials.ServiceAccountAuthCredentials
+
 
+
Acl - Class in com.google.gcloud.storage
+
+
Access Control List on for buckets or blobs.
+
+
Acl(Acl.Entity, Acl.Role) - Constructor for class com.google.gcloud.storage.Acl
+
 
+
acl() - Method in class com.google.gcloud.storage.BlobInfo
+
 
+
acl(List<Acl>) - Method in class com.google.gcloud.storage.BlobInfo.Builder
+
 
+
acl() - Method in class com.google.gcloud.storage.BucketInfo
+
 
+
acl(Iterable<Acl>) - Method in class com.google.gcloud.storage.BucketInfo.Builder
+
 
+
Acl.Domain - Class in com.google.gcloud.storage
+
 
+
Acl.Entity - Class in com.google.gcloud.storage
+
 
+
Acl.Entity.Type - Enum in com.google.gcloud.storage
+
 
+
Acl.Group - Class in com.google.gcloud.storage
+
 
+
Acl.Project - Class in com.google.gcloud.storage
+
 
+
Acl.Project.ProjectRole - Enum in com.google.gcloud.storage
+
 
+
Acl.RawEntity - Class in com.google.gcloud.storage
+
 
+
Acl.Role - Enum in com.google.gcloud.storage
+
 
+
Acl.User - Class in com.google.gcloud.storage
+
 
+
active() - Method in class com.google.gcloud.datastore.BaseDatastoreBatchWriter
+
 
+
active() - Method in interface com.google.gcloud.datastore.Transaction
+
+
Returns true if the transaction is still active (was not committed or rolledback).
+
+
add(FullEntity<?>) - Method in class com.google.gcloud.datastore.BaseDatastoreBatchWriter
+
 
+
add(FullEntity<?>...) - Method in class com.google.gcloud.datastore.BaseDatastoreBatchWriter
+
 
+
add(FullEntity<?>) - Method in interface com.google.gcloud.datastore.DatastoreWriter
+
+
Datastore add operation.
+
+
add(FullEntity<?>...) - Method in interface com.google.gcloud.datastore.DatastoreWriter
+
+
Datastore add operation.
+
+
addBinding(Cursor) - Method in class com.google.gcloud.datastore.GqlQuery.Builder
+
 
+
addBinding(String...) - Method in class com.google.gcloud.datastore.GqlQuery.Builder
+
 
+
addBinding(long...) - Method in class com.google.gcloud.datastore.GqlQuery.Builder
+
 
+
addBinding(double...) - Method in class com.google.gcloud.datastore.GqlQuery.Builder
+
 
+
addBinding(boolean...) - Method in class com.google.gcloud.datastore.GqlQuery.Builder
+
 
+
addBinding(DateTime...) - Method in class com.google.gcloud.datastore.GqlQuery.Builder
+
 
+
addBinding(Key...) - Method in class com.google.gcloud.datastore.GqlQuery.Builder
+
 
+
addBinding(FullEntity<?>...) - Method in class com.google.gcloud.datastore.GqlQuery.Builder
+
 
+
addBinding(Blob...) - Method in class com.google.gcloud.datastore.GqlQuery.Builder
+
 
+
addGroupBy(String, String...) - Method in class com.google.gcloud.datastore.StructuredQuery.ProjectionEntityQueryBuilder
+
 
+
addProjection(StructuredQuery.Projection, StructuredQuery.Projection...) - Method in class com.google.gcloud.datastore.StructuredQuery.ProjectionEntityQueryBuilder
+
 
+
addSource(Iterable<String>) - Method in class com.google.gcloud.storage.Storage.ComposeRequest.Builder
+
 
+
addSource(String...) - Method in class com.google.gcloud.storage.Storage.ComposeRequest.Builder
+
 
+
addSource(String, long) - Method in class com.google.gcloud.storage.Storage.ComposeRequest.Builder
+
+
Add a source with a specific generation to match.
+
+
addValue(Value<?>) - Method in class com.google.gcloud.datastore.ListValue.Builder
+
 
+
addValue(Value<?>, Value<?>...) - Method in class com.google.gcloud.datastore.ListValue.Builder
+
 
+
addWithDeferredIdAllocation(FullEntity<?>...) - Method in class com.google.gcloud.datastore.BaseDatastoreBatchWriter
+
 
+
afterEval(Exception, ExceptionHandler.Interceptor.RetryResult) - Method in interface com.google.gcloud.ExceptionHandler.Interceptor
+
+
This method is called after the evaluation and could alter its result.
+
+
AgeDeleteRule(int) - Constructor for class com.google.gcloud.storage.BucketInfo.AgeDeleteRule
+
 
+
aggregate(StructuredQuery.Projection.Aggregate, String) - Static method in class com.google.gcloud.datastore.StructuredQuery.Projection
+
 
+
allocateId(IncompleteKey) - Method in interface com.google.gcloud.datastore.Datastore
+
+
Allocate a unique id for the given key.
+
+
allocateId(IncompleteKey...) - Method in interface com.google.gcloud.datastore.Datastore
+
+
Returns a list of keys using the allocated ids ordered by the input.
+
+
allocateIds(DatastoreV1.AllocateIdsRequest) - Method in interface com.google.gcloud.spi.DatastoreRpc
+
 
+
allocateIds(DatastoreV1.AllocateIdsRequest) - Method in class com.google.gcloud.spi.DefaultDatastoreRpc
+
 
+
allowLiteral() - Method in class com.google.gcloud.datastore.GqlQuery
+
 
+
allowLiteral(boolean) - Method in class com.google.gcloud.datastore.GqlQuery.Builder
+
 
+
and(StructuredQuery.Filter, StructuredQuery.Filter...) - Static method in class com.google.gcloud.datastore.StructuredQuery.CompositeFilter
+
 
+
any() - Static method in class com.google.gcloud.storage.Cors.Origin
+
 
+
appEngineAppId() - Static method in class com.google.gcloud.ServiceOptions
+
 
+
apply(BatchRequest) - Method in interface com.google.gcloud.storage.Storage
+
+
Send a batch request.
+
+
asc(String) - Static method in class com.google.gcloud.datastore.StructuredQuery.OrderBy
+
 
+
asia() - Static method in class com.google.gcloud.storage.BucketInfo.Location
+
 
+
asInputStream() - Method in class com.google.gcloud.datastore.Blob
+
+
Returns an InputStream for this blob content.
+
+
asReadOnlyByteBuffer() - Method in class com.google.gcloud.datastore.Blob
+
+
Returns a read-only ByteBuffer for this blob content.
+
+
AuthCredentials - Class in com.google.gcloud
+
+
Credentials for accessing Google Cloud services.
+
+
AuthCredentials() - Constructor for class com.google.gcloud.AuthCredentials
+
 
+
authCredentials() - Method in class com.google.gcloud.ServiceOptions
+
 
+
authCredentials(AuthCredentials) - Method in class com.google.gcloud.ServiceOptions.Builder
+
 
+
AuthCredentials.ServiceAccountAuthCredentials - Class in com.google.gcloud
+
 
+
+ + + +

B

+
+
BaseDatastoreBatchWriter - Class in com.google.gcloud.datastore
+
+
Base class for DatastoreBatchWriter.
+
+
BaseDatastoreBatchWriter(String) - Constructor for class com.google.gcloud.datastore.BaseDatastoreBatchWriter
+
 
+
BaseEntity<K extends IncompleteKey> - Class in com.google.gcloud.datastore
+
+
A base class for entities (key and properties).
+
+
BaseEntity.Builder<K extends IncompleteKey,B extends BaseEntity.Builder<K,B>> - Class in com.google.gcloud.datastore
+
 
+
baseEquals(ServiceOptions<?, ?>) - Method in class com.google.gcloud.ServiceOptions
+
 
+
baseHashCode() - Method in class com.google.gcloud.ServiceOptions
+
 
+
BaseService<OptionsT extends ServiceOptions<?,OptionsT>> - Class in com.google.gcloud
+
 
+
BaseService(OptionsT) - Constructor for class com.google.gcloud.BaseService
+
 
+
Batch - Interface in com.google.gcloud.datastore
+
+
An interface to represent a batch of write operations.
+
+
batch(StorageRpc.BatchRequest) - Method in class com.google.gcloud.spi.DefaultStorageRpc
+
 
+
batch(StorageRpc.BatchRequest) - Method in interface com.google.gcloud.spi.StorageRpc
+
 
+
Batch.Response - Interface in com.google.gcloud.datastore
+
 
+
BatchOption - Class in com.google.gcloud.datastore
+
 
+
BatchOption.ForceWrites - Class in com.google.gcloud.datastore
+
 
+
BatchRequest(Iterable<StorageRpc.Tuple<StorageObject, Map<StorageRpc.Option, ?>>>, Iterable<StorageRpc.Tuple<StorageObject, Map<StorageRpc.Option, ?>>>, Iterable<StorageRpc.Tuple<StorageObject, Map<StorageRpc.Option, ?>>>) - Constructor for class com.google.gcloud.spi.StorageRpc.BatchRequest
+
 
+
BatchRequest - Class in com.google.gcloud.storage
+
+
Google storage batch request.
+
+
BatchRequest.Builder - Class in com.google.gcloud.storage
+
 
+
BatchResponse(Map<StorageObject, StorageRpc.Tuple<Boolean, StorageException>>, Map<StorageObject, StorageRpc.Tuple<StorageObject, StorageException>>, Map<StorageObject, StorageRpc.Tuple<StorageObject, StorageException>>) - Constructor for class com.google.gcloud.spi.StorageRpc.BatchResponse
+
 
+
BatchResponse - Class in com.google.gcloud.storage
+
+
Google Storage batch response.
+
+
BatchResponse(List<BatchResponse.Result<Boolean>>, List<BatchResponse.Result<BlobInfo>>, List<BatchResponse.Result<BlobInfo>>) - Constructor for class com.google.gcloud.storage.BatchResponse
+
 
+
BatchResponse.Result<T extends Serializable> - Class in com.google.gcloud.storage
+
 
+
beforeEval(Exception) - Method in interface com.google.gcloud.ExceptionHandler.Interceptor
+
+
This method is called before exception evaluation and could short-circuit the process.
+
+
beginTransaction(DatastoreV1.BeginTransactionRequest) - Method in interface com.google.gcloud.spi.DatastoreRpc
+
 
+
beginTransaction(DatastoreV1.BeginTransactionRequest) - Method in class com.google.gcloud.spi.DefaultDatastoreRpc
+
 
+
Blob - Class in com.google.gcloud.datastore
+
+
A Google Cloud Datastore Blob.
+
+
BlobInfo - Class in com.google.gcloud.storage
+
+
A Google Storage object.
+
+
BlobInfo.Builder - Class in com.google.gcloud.storage
+
 
+
BlobReadChannel - Interface in com.google.gcloud.storage
+
+
A channel for reading data from a Google Cloud Storage object.
+
+
BlobValue - Class in com.google.gcloud.datastore
+
 
+
BlobValue(Blob) - Constructor for class com.google.gcloud.datastore.BlobValue
+
 
+
BlobValue.Builder - Class in com.google.gcloud.datastore
+
 
+
BlobWriteChannel - Interface in com.google.gcloud.storage
+
+
A channel for writing data to a Google Cloud Storage object.
+
+
BooleanValue - Class in com.google.gcloud.datastore
+
 
+
BooleanValue(boolean) - Constructor for class com.google.gcloud.datastore.BooleanValue
+
 
+
BooleanValue.Builder - Class in com.google.gcloud.datastore
+
 
+
bucket() - Method in class com.google.gcloud.storage.BlobInfo
+
 
+
bucket(String) - Method in class com.google.gcloud.storage.BlobInfo.Builder
+
 
+
BucketInfo - Class in com.google.gcloud.storage
+
+
A Google Storage bucket.
+
+
BucketInfo.AgeDeleteRule - Class in com.google.gcloud.storage
+
 
+
BucketInfo.Builder - Class in com.google.gcloud.storage
+
 
+
BucketInfo.CreatedBeforeDeleteRule - Class in com.google.gcloud.storage
+
 
+
BucketInfo.DeleteRule - Class in com.google.gcloud.storage
+
 
+
BucketInfo.DeleteRule.Type - Enum in com.google.gcloud.storage
+
 
+
BucketInfo.IsLiveDeleteRule - Class in com.google.gcloud.storage
+
 
+
BucketInfo.Location - Class in com.google.gcloud.storage
+
 
+
BucketInfo.Location.Option - Enum in com.google.gcloud.storage
+
 
+
BucketInfo.NumNewerVersionsDeleteRule - Class in com.google.gcloud.storage
+
 
+
BucketInfo.StorageClass - Class in com.google.gcloud.storage
+
 
+
BucketInfo.StorageClass.Option - Enum in com.google.gcloud.storage
+
 
+
build() - Method in class com.google.gcloud.datastore.BaseEntity.Builder
+
 
+
build() - Method in class com.google.gcloud.datastore.BlobValue.Builder
+
 
+
build() - Method in class com.google.gcloud.datastore.BooleanValue.Builder
+
 
+
build() - Method in class com.google.gcloud.datastore.DatastoreOptions.Builder
+
 
+
build() - Method in class com.google.gcloud.datastore.DateTimeValue.Builder
+
 
+
build() - Method in class com.google.gcloud.datastore.DoubleValue.Builder
+
 
+
build() - Method in class com.google.gcloud.datastore.Entity.Builder
+
 
+
build() - Method in class com.google.gcloud.datastore.EntityValue.Builder
+
 
+
build() - Method in class com.google.gcloud.datastore.FullEntity.Builder
+
 
+
build() - Method in class com.google.gcloud.datastore.GqlQuery.Builder
+
 
+
build() - Method in class com.google.gcloud.datastore.IncompleteKey.Builder
+
 
+
build() - Method in class com.google.gcloud.datastore.Key.Builder
+
 
+
build() - Method in class com.google.gcloud.datastore.KeyFactory
+
 
+
build() - Method in class com.google.gcloud.datastore.KeyValue.Builder
+
 
+
build() - Method in class com.google.gcloud.datastore.ListValue.Builder
+
 
+
build() - Method in class com.google.gcloud.datastore.LongValue.Builder
+
 
+
build() - Method in class com.google.gcloud.datastore.NullValue.Builder
+
 
+
build() - Method in class com.google.gcloud.datastore.ProjectionEntity.Builder
+
 
+
build() - Method in class com.google.gcloud.datastore.RawValue.Builder
+
 
+
build() - Method in class com.google.gcloud.datastore.StringValue.Builder
+
 
+
build() - Method in class com.google.gcloud.datastore.StructuredQuery.EntityQueryBuilder
+
 
+
build() - Method in class com.google.gcloud.datastore.StructuredQuery.KeyQueryBuilder
+
 
+
build() - Method in class com.google.gcloud.datastore.StructuredQuery.ProjectionEntityQueryBuilder
+
 
+
build() - Method in interface com.google.gcloud.datastore.ValueBuilder
+
 
+
build() - Method in class com.google.gcloud.ExceptionHandler.Builder
+
+
Returns a new ExceptionHandler instance.
+
+
build() - Method in class com.google.gcloud.RetryParams.Builder
+
+
Create an instance of RetryParams with the parameters set in this builder.
+
+
build() - Method in class com.google.gcloud.ServiceOptions.Builder
+
 
+
build() - Method in class com.google.gcloud.storage.BatchRequest.Builder
+
 
+
build() - Method in class com.google.gcloud.storage.BlobInfo.Builder
+
 
+
build() - Method in class com.google.gcloud.storage.BucketInfo.Builder
+
 
+
build() - Method in class com.google.gcloud.storage.Cors.Builder
+
 
+
build() - Method in class com.google.gcloud.storage.Storage.ComposeRequest.Builder
+
 
+
build() - Method in class com.google.gcloud.storage.Storage.CopyRequest.Builder
+
 
+
build() - Method in class com.google.gcloud.storage.StorageOptions.Builder
+
 
+
builder(Blob) - Static method in class com.google.gcloud.datastore.BlobValue
+
 
+
builder(boolean) - Static method in class com.google.gcloud.datastore.BooleanValue
+
 
+
builder() - Static method in class com.google.gcloud.datastore.DatastoreOptions
+
 
+
builder(DateTime) - Static method in class com.google.gcloud.datastore.DateTimeValue
+
 
+
builder(double) - Static method in class com.google.gcloud.datastore.DoubleValue
+
 
+
Builder() - Constructor for class com.google.gcloud.datastore.DoubleValue.Builder
+
 
+
builder(Key) - Static method in class com.google.gcloud.datastore.Entity
+
 
+
builder(Entity) - Static method in class com.google.gcloud.datastore.Entity
+
 
+
builder(Key, FullEntity<?>) - Static method in class com.google.gcloud.datastore.Entity
+
 
+
builder(FullEntity<?>) - Static method in class com.google.gcloud.datastore.EntityValue
+
 
+
builder() - Static method in class com.google.gcloud.datastore.FullEntity
+
 
+
builder(K) - Static method in class com.google.gcloud.datastore.FullEntity
+
 
+
builder(FullEntity<K>) - Static method in class com.google.gcloud.datastore.FullEntity
+
 
+
builder(String, String) - Static method in class com.google.gcloud.datastore.IncompleteKey
+
 
+
builder(IncompleteKey) - Static method in class com.google.gcloud.datastore.IncompleteKey
+
 
+
builder(Key, String) - Static method in class com.google.gcloud.datastore.IncompleteKey
+
 
+
builder(String, String, String) - Static method in class com.google.gcloud.datastore.Key
+
 
+
builder(String, String, long) - Static method in class com.google.gcloud.datastore.Key
+
 
+
builder(Key) - Static method in class com.google.gcloud.datastore.Key
+
 
+
builder(IncompleteKey, String) - Static method in class com.google.gcloud.datastore.Key
+
 
+
builder(IncompleteKey, long) - Static method in class com.google.gcloud.datastore.Key
+
 
+
builder(Key, String, String) - Static method in class com.google.gcloud.datastore.Key
+
 
+
builder(Key, String, long) - Static method in class com.google.gcloud.datastore.Key
+
 
+
builder(Key) - Static method in class com.google.gcloud.datastore.KeyValue
+
 
+
Builder() - Constructor for class com.google.gcloud.datastore.KeyValue.Builder
+
 
+
builder() - Static method in class com.google.gcloud.datastore.ListValue
+
 
+
builder(long) - Static method in class com.google.gcloud.datastore.LongValue
+
 
+
builder() - Static method in class com.google.gcloud.datastore.NullValue
+
 
+
builder(ProjectionEntity) - Static method in class com.google.gcloud.datastore.ProjectionEntity
+
 
+
builder(String) - Static method in class com.google.gcloud.datastore.StringValue
+
 
+
builder() - Static method in class com.google.gcloud.ExceptionHandler
+
 
+
builder() - Static method in class com.google.gcloud.RetryParams
+
 
+
Builder() - Constructor for class com.google.gcloud.ServiceOptions.Builder
+
 
+
Builder(ServiceOptions<ServiceRpcT, OptionsT>) - Constructor for class com.google.gcloud.ServiceOptions.Builder
+
 
+
builder() - Static method in class com.google.gcloud.storage.BatchRequest
+
 
+
builder(BucketInfo, String) - Static method in class com.google.gcloud.storage.BlobInfo
+
 
+
builder(String, String) - Static method in class com.google.gcloud.storage.BlobInfo
+
 
+
builder(String) - Static method in class com.google.gcloud.storage.BucketInfo
+
 
+
builder() - Static method in class com.google.gcloud.storage.Cors
+
 
+
builder() - Static method in class com.google.gcloud.storage.Storage.ComposeRequest
+
 
+
Builder() - Constructor for class com.google.gcloud.storage.Storage.ComposeRequest.Builder
+
 
+
builder() - Static method in class com.google.gcloud.storage.Storage.CopyRequest
+
 
+
Builder() - Constructor for class com.google.gcloud.storage.Storage.CopyRequest.Builder
+
 
+
builder() - Static method in class com.google.gcloud.storage.StorageOptions
+
 
+
+ + + +

C

+
+
cacheControl(String) - Method in class com.google.gcloud.storage.BlobInfo.Builder
+
 
+
cacheControl() - Method in class com.google.gcloud.storage.BlobInfo
+
 
+
chunkSize(int) - Method in interface com.google.gcloud.storage.BlobReadChannel
+
+
Sets the minimum size that will be read by a single RPC.
+
+
chunkSize(int) - Method in interface com.google.gcloud.storage.BlobWriteChannel
+
+
Sets the minimum size that will be written by a single RPC.
+
+
clear() - Method in class com.google.gcloud.datastore.BaseEntity.Builder
+
+
Clears all the properties.
+
+
clearBindings() - Method in class com.google.gcloud.datastore.GqlQuery.Builder
+
 
+
clearGroupBy() - Method in class com.google.gcloud.datastore.StructuredQuery.ProjectionEntityQueryBuilder
+
 
+
clearProjection() - Method in class com.google.gcloud.datastore.StructuredQuery.ProjectionEntityQueryBuilder
+
 
+
close() - Method in interface com.google.gcloud.storage.BlobReadChannel
+
+
Overridden to remove IOException.
+
+
code() - Method in exception com.google.gcloud.datastore.DatastoreException
+
+
Returns the code associated with this exception.
+
+
code() - Method in exception com.google.gcloud.storage.StorageException
+
+
Returns the code associated with this exception.
+
+
com.google.gcloud - package com.google.gcloud
+
 
+
com.google.gcloud.datastore - package com.google.gcloud.datastore
+
+
A client to the Google Cloud Datastore.
+
+
com.google.gcloud.examples - package com.google.gcloud.examples
+
 
+
com.google.gcloud.spi - package com.google.gcloud.spi
+
 
+
com.google.gcloud.storage - package com.google.gcloud.storage
+
+
A client to Google Cloud Storage.
+
+
commit() - Method in interface com.google.gcloud.datastore.Transaction
+
+
Commit the transaction.
+
+
commit(DatastoreV1.CommitRequest) - Method in interface com.google.gcloud.spi.DatastoreRpc
+
 
+
commit(DatastoreV1.CommitRequest) - Method in class com.google.gcloud.spi.DefaultDatastoreRpc
+
 
+
compareTo(DateTime) - Method in class com.google.gcloud.datastore.DateTime
+
 
+
componentCount() - Method in class com.google.gcloud.storage.BlobInfo
+
 
+
compose(Iterable<StorageObject>, StorageObject, Map<StorageRpc.Option, ?>) - Method in class com.google.gcloud.spi.DefaultStorageRpc
+
 
+
compose(Iterable<StorageObject>, StorageObject, Map<StorageRpc.Option, ?>) - Method in interface com.google.gcloud.spi.StorageRpc
+
 
+
compose(Storage.ComposeRequest) - Method in interface com.google.gcloud.storage.Storage
+
+
Send a compose request.
+
+
contains(String) - Method in class com.google.gcloud.datastore.BaseEntity
+
+
Returns true if the entity contains a property with the given name.
+
+
contentDisposition(String) - Method in class com.google.gcloud.storage.BlobInfo.Builder
+
 
+
contentDisposition() - Method in class com.google.gcloud.storage.BlobInfo
+
 
+
contentEncoding(String) - Method in class com.google.gcloud.storage.BlobInfo.Builder
+
 
+
contentEncoding() - Method in class com.google.gcloud.storage.BlobInfo
+
 
+
contentLanguage(String) - Method in class com.google.gcloud.storage.BlobInfo.Builder
+
 
+
contentLanguage() - Method in class com.google.gcloud.storage.BlobInfo
+
 
+
contentType(String) - Method in class com.google.gcloud.storage.BlobInfo.Builder
+
 
+
contentType() - Method in class com.google.gcloud.storage.BlobInfo
+
 
+
convert(DatastoreV1.Entity) - Method in class com.google.gcloud.datastore.Query.ResultType
+
 
+
copy(StorageObject, Map<StorageRpc.Option, ?>, StorageObject, Map<StorageRpc.Option, ?>) - Method in class com.google.gcloud.spi.DefaultStorageRpc
+
 
+
copy(StorageObject, Map<StorageRpc.Option, ?>, StorageObject, Map<StorageRpc.Option, ?>) - Method in interface com.google.gcloud.spi.StorageRpc
+
 
+
copy(Storage.CopyRequest) - Method in interface com.google.gcloud.storage.Storage
+
+
Send a copy request.
+
+
copyFrom(byte[]) - Static method in class com.google.gcloud.datastore.Blob
+
 
+
copyFrom(ByteBuffer) - Static method in class com.google.gcloud.datastore.Blob
+
 
+
copyFrom(InputStream) - Static method in class com.google.gcloud.datastore.Blob
+
 
+
copyFrom(byte[]) - Static method in class com.google.gcloud.datastore.Cursor
+
 
+
copyFrom(Date) - Static method in class com.google.gcloud.datastore.DateTime
+
 
+
copyFrom(Calendar) - Static method in class com.google.gcloud.datastore.DateTime
+
 
+
copyTo(ByteBuffer) - Method in class com.google.gcloud.datastore.Blob
+
+
Copies bytes into a ByteBuffer.
+
+
copyTo(byte[]) - Method in class com.google.gcloud.datastore.Blob
+
+
Copies bytes into a buffer.
+
+
cors(Iterable<Cors>) - Method in class com.google.gcloud.storage.BucketInfo.Builder
+
 
+
cors() - Method in class com.google.gcloud.storage.BucketInfo
+
 
+
Cors - Class in com.google.gcloud.storage
+
+
Cross-Origin Resource Sharing (CORS) configuration for a bucket.
+
+
Cors.Builder - Class in com.google.gcloud.storage
+
 
+
Cors.Origin - Class in com.google.gcloud.storage
+
 
+
crc32c(String) - Method in class com.google.gcloud.storage.BlobInfo.Builder
+
 
+
crc32c() - Method in class com.google.gcloud.storage.BlobInfo
+
 
+
create() - Method in interface com.google.gcloud.ServiceOptions.HttpTransportFactory
+
 
+
create(Bucket, Map<StorageRpc.Option, ?>) - Method in class com.google.gcloud.spi.DefaultStorageRpc
+
 
+
create(StorageObject, byte[], Map<StorageRpc.Option, ?>) - Method in class com.google.gcloud.spi.DefaultStorageRpc
+
 
+
create(OptionsT) - Method in interface com.google.gcloud.spi.ServiceRpcFactory
+
 
+
create(Bucket, Map<StorageRpc.Option, ?>) - Method in interface com.google.gcloud.spi.StorageRpc
+
 
+
create(StorageObject, byte[], Map<StorageRpc.Option, ?>) - Method in interface com.google.gcloud.spi.StorageRpc
+
 
+
create(BucketInfo, Storage.BucketTargetOption...) - Method in interface com.google.gcloud.storage.Storage
+
+
Create a new bucket.
+
+
create(BlobInfo, byte[], Storage.BlobTargetOption...) - Method in interface com.google.gcloud.storage.Storage
+
+
Create a new blob.
+
+
createApplicationDefaults() - Static method in class com.google.gcloud.AuthCredentials
+
+
Returns the Application Default Credentials.
+
+
CreatedBeforeDeleteRule(long) - Constructor for class com.google.gcloud.storage.BucketInfo.CreatedBeforeDeleteRule
+
 
+
createFor(String, PrivateKey) - Static method in class com.google.gcloud.AuthCredentials
+
 
+
createForAppEngine() - Static method in class com.google.gcloud.AuthCredentials
+
 
+
createForComputeEngine() - Static method in class com.google.gcloud.AuthCredentials
+
 
+
createRpc(OptionsT, Class<? extends ServiceRpcFactory<ServiceRpcT, OptionsT>>) - Static method in class com.google.gcloud.ServiceOptions
+
+
Creates a service RPC using a factory loaded by ServiceLoader.
+
+
createTime() - Method in class com.google.gcloud.storage.BucketInfo
+
 
+
Cursor - Class in com.google.gcloud.datastore
+
+
A Google Cloud Datastore cursor.
+
+
cursorAfter() - Method in interface com.google.gcloud.datastore.QueryResults
+
+
Returns the Cursor for point after the value returned in the last Iterator.next() call.
+
+
+ + + +

D

+
+
datastore() - Method in class com.google.gcloud.datastore.BaseDatastoreBatchWriter
+
 
+
datastore() - Method in interface com.google.gcloud.datastore.Batch
+
+
Returns the batch associated Datastore.
+
+
Datastore - Interface in com.google.gcloud.datastore
+
+
An interface for Google Cloud Datastore.
+
+
datastore() - Method in interface com.google.gcloud.datastore.Transaction
+
+
Returns the transaction associated Datastore.
+
+
Datastore.TransactionCallable<T> - Interface in com.google.gcloud.datastore
+
+
A callback for running with a transactional + DatastoreReaderWriter.
+
+
DatastoreExample - Class in com.google.gcloud.examples
+
+
An example of using the Google Cloud Datastore.
+
+
DatastoreExample() - Constructor for class com.google.gcloud.examples.DatastoreExample
+
 
+
DatastoreException - Exception in com.google.gcloud.datastore
+
 
+
DatastoreException(DatastoreException.Code, String, Exception) - Constructor for exception com.google.gcloud.datastore.DatastoreException
+
 
+
DatastoreException(DatastoreException.Code, String) - Constructor for exception com.google.gcloud.datastore.DatastoreException
+
 
+
DatastoreException.Code - Enum in com.google.gcloud.datastore
+
+
An error code to represent the failure.
+
+
DatastoreFactory - Class in com.google.gcloud.datastore
+
+
A base class for Datastore factories.
+
+
DatastoreFactory() - Constructor for class com.google.gcloud.datastore.DatastoreFactory
+
 
+
DatastoreOptions - Class in com.google.gcloud.datastore
+
 
+
DatastoreOptions.Builder - Class in com.google.gcloud.datastore
+
 
+
DatastoreReader - Interface in com.google.gcloud.datastore
+
+
An interface to represent Google Cloud Datastore read operations.
+
+
DatastoreReaderWriter - Interface in com.google.gcloud.datastore
+
+
An interface that combines both Google Cloud Datastore read and write operations.
+
+
DatastoreRpc - Interface in com.google.gcloud.spi
+
+
Provides access to the remote Datastore service.
+
+
DatastoreRpc.DatastoreRpcException - Exception in com.google.gcloud.spi
+
 
+
DatastoreRpc.DatastoreRpcException.Reason - Enum in com.google.gcloud.spi
+
+
The reason for the exception.
+
+
DatastoreRpcException(DatastoreRpc.DatastoreRpcException.Reason) - Constructor for exception com.google.gcloud.spi.DatastoreRpc.DatastoreRpcException
+
 
+
DatastoreRpcException(String, int, boolean, String) - Constructor for exception com.google.gcloud.spi.DatastoreRpc.DatastoreRpcException
+
 
+
DatastoreRpcFactory - Interface in com.google.gcloud.spi
+
+
An interface for Datastore RPC factory.
+
+
DatastoreWriter - Interface in com.google.gcloud.datastore
+
+
An interface to represent Google Cloud Datastore write operations.
+
+
DateTime - Class in com.google.gcloud.datastore
+
+
A Google Cloud Datastore timestamp (represented in micro-seconds).
+
+
DateTimeValue - Class in com.google.gcloud.datastore
+
 
+
DateTimeValue(DateTime) - Constructor for class com.google.gcloud.datastore.DateTimeValue
+
 
+
DateTimeValue.Builder - Class in com.google.gcloud.datastore
+
 
+
daysToLive() - Method in class com.google.gcloud.storage.BucketInfo.AgeDeleteRule
+
 
+
deactivate() - Method in class com.google.gcloud.datastore.BaseDatastoreBatchWriter
+
 
+
DEFAULT_INITIAL_RETRY_DELAY_MILLIS - Static variable in class com.google.gcloud.RetryParams
+
 
+
DEFAULT_MAX_RETRY_DELAY_MILLIS - Static variable in class com.google.gcloud.RetryParams
+
 
+
DEFAULT_PROJECTION - Static variable in class com.google.gcloud.spi.DefaultStorageRpc
+
 
+
DEFAULT_RETRY_DELAY_BACKOFF_FACTOR - Static variable in class com.google.gcloud.RetryParams
+
 
+
DEFAULT_RETRY_MAX_ATTEMPTS - Static variable in class com.google.gcloud.RetryParams
+
 
+
DEFAULT_RETRY_MIN_ATTEMPTS - Static variable in class com.google.gcloud.RetryParams
+
 
+
DEFAULT_TOTAL_RETRY_PERIOD_MILLIS - Static variable in class com.google.gcloud.RetryParams
+
 
+
defaultAcl(Iterable<Acl>) - Method in class com.google.gcloud.storage.BucketInfo.Builder
+
 
+
defaultAcl() - Method in class com.google.gcloud.storage.BucketInfo
+
 
+
DefaultDatastoreRpc - Class in com.google.gcloud.spi
+
 
+
DefaultDatastoreRpc(DatastoreOptions) - Constructor for class com.google.gcloud.spi.DefaultDatastoreRpc
+
 
+
defaultInstance() - Static method in class com.google.gcloud.datastore.DatastoreOptions
+
 
+
defaultInstance() - Static method in class com.google.gcloud.storage.StorageOptions
+
 
+
defaultProject() - Method in class com.google.gcloud.datastore.DatastoreOptions
+
 
+
defaultProject() - Method in class com.google.gcloud.ServiceOptions
+
 
+
DefaultStorageRpc - Class in com.google.gcloud.spi
+
 
+
DefaultStorageRpc(StorageOptions) - Constructor for class com.google.gcloud.spi.DefaultStorageRpc
+
 
+
delete(Key...) - Method in class com.google.gcloud.datastore.BaseDatastoreBatchWriter
+
 
+
delete(Key...) - Method in interface com.google.gcloud.datastore.Datastore
+
+
A datastore delete operation.
+
+
delete(Key...) - Method in interface com.google.gcloud.datastore.DatastoreWriter
+
+
A datastore delete operation.
+
+
delete(Bucket, Map<StorageRpc.Option, ?>) - Method in class com.google.gcloud.spi.DefaultStorageRpc
+
 
+
delete(StorageObject, Map<StorageRpc.Option, ?>) - Method in class com.google.gcloud.spi.DefaultStorageRpc
+
 
+
delete(Bucket, Map<StorageRpc.Option, ?>) - Method in interface com.google.gcloud.spi.StorageRpc
+
 
+
delete(StorageObject, Map<StorageRpc.Option, ?>) - Method in interface com.google.gcloud.spi.StorageRpc
+
 
+
delete(String, String, Storage.BlobSourceOption...) - Method in class com.google.gcloud.storage.BatchRequest.Builder
+
+
Delete the given blob.
+
+
delete(String, Storage.BucketSourceOption...) - Method in interface com.google.gcloud.storage.Storage
+
+
Delete the requested bucket.
+
+
delete(String, String, Storage.BlobSourceOption...) - Method in interface com.google.gcloud.storage.Storage
+
+
Delete the requested blob.
+
+
deleteRules(Iterable<? extends BucketInfo.DeleteRule>) - Method in class com.google.gcloud.storage.BucketInfo.Builder
+
 
+
deleteRules() - Method in class com.google.gcloud.storage.BucketInfo
+
 
+
deletes - Variable in class com.google.gcloud.spi.StorageRpc.BatchResponse
+
 
+
deletes() - Method in class com.google.gcloud.storage.BatchResponse
+
+
Returns the results for the delete operations using the request order.
+
+
deleteTime() - Method in class com.google.gcloud.storage.BlobInfo
+
 
+
desc(String) - Static method in class com.google.gcloud.datastore.StructuredQuery.OrderBy
+
 
+
description() - Method in enum com.google.gcloud.datastore.DatastoreException.Code
+
 
+
description() - Method in enum com.google.gcloud.spi.DatastoreRpc.DatastoreRpcException.Reason
+
 
+
direction() - Method in class com.google.gcloud.datastore.StructuredQuery.OrderBy
+
 
+
doesNotExist() - Static method in class com.google.gcloud.storage.Storage.BlobTargetOption
+
 
+
Domain(String) - Constructor for class com.google.gcloud.storage.Acl.Domain
+
 
+
domain() - Method in class com.google.gcloud.storage.Acl.Domain
+
 
+
DoubleValue - Class in com.google.gcloud.datastore
+
 
+
DoubleValue(double) - Constructor for class com.google.gcloud.datastore.DoubleValue
+
 
+
DoubleValue.Builder - Class in com.google.gcloud.datastore
+
 
+
durableReducedAvailability() - Static method in class com.google.gcloud.storage.BucketInfo.StorageClass
+
 
+
+ + + +

E

+
+
email() - Method in class com.google.gcloud.storage.Acl.Group
+
 
+
email() - Method in class com.google.gcloud.storage.Acl.User
+
 
+
emptyBuilder() - Method in class com.google.gcloud.datastore.BaseEntity
+
 
+
emptyBuilder() - Method in class com.google.gcloud.datastore.Entity
+
 
+
emptyBuilder() - Method in class com.google.gcloud.datastore.FullEntity
+
 
+
emptyBuilder() - Method in class com.google.gcloud.datastore.ProjectionEntity
+
 
+
endCursor() - Method in class com.google.gcloud.datastore.StructuredQuery
+
 
+
Entity - Class in com.google.gcloud.datastore
+
+
An entity is the Google Cloud Datastore persistent data object for a specific key.
+
+
ENTITY - Static variable in class com.google.gcloud.datastore.Query.ResultType
+
 
+
entity() - Method in class com.google.gcloud.storage.Acl
+
 
+
Entity.Builder - Class in com.google.gcloud.datastore
+
 
+
entityQueryBuilder() - Static method in class com.google.gcloud.datastore.Query
+
+
Returns a new StructuredQuery builder for full (complete entities) queries.
+
+
EntityValue - Class in com.google.gcloud.datastore
+
 
+
EntityValue(FullEntity<?>) - Constructor for class com.google.gcloud.datastore.EntityValue
+
 
+
EntityValue.Builder - Class in com.google.gcloud.datastore
+
 
+
eq(String, Value<?>) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
eq(String, String) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
eq(String, long) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
eq(String, double) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
eq(String, boolean) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
eq(String, DateTime) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
eq(String, Key) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
eq(String, Blob) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
equals(Object) - Method in class com.google.gcloud.AuthCredentials.ServiceAccountAuthCredentials
+
 
+
equals(Object) - Method in class com.google.gcloud.datastore.BaseEntity
+
 
+
equals(Object) - Method in class com.google.gcloud.datastore.Blob
+
 
+
equals(Object) - Method in class com.google.gcloud.datastore.Cursor
+
 
+
equals(Object) - Method in class com.google.gcloud.datastore.DatastoreOptions
+
 
+
equals(Object) - Method in class com.google.gcloud.datastore.DateTime
+
 
+
equals(Object) - Method in class com.google.gcloud.datastore.GqlQuery
+
 
+
equals(Object) - Method in class com.google.gcloud.datastore.PathElement
+
 
+
equals(Object) - Method in class com.google.gcloud.datastore.Query.ResultType
+
 
+
equals(Object) - Method in class com.google.gcloud.datastore.StructuredQuery.CompositeFilter
+
 
+
equals(Object) - Method in class com.google.gcloud.datastore.StructuredQuery
+
 
+
equals(Object) - Method in class com.google.gcloud.datastore.StructuredQuery.OrderBy
+
 
+
equals(Object) - Method in class com.google.gcloud.datastore.StructuredQuery.Projection
+
 
+
equals(Object) - Method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
equals(Object) - Method in class com.google.gcloud.datastore.Value
+
 
+
equals(Object) - Method in class com.google.gcloud.RetryParams
+
 
+
equals(Object) - Method in class com.google.gcloud.storage.Acl.Entity
+
 
+
equals(Object) - Method in class com.google.gcloud.storage.Acl
+
 
+
equals(Object) - Method in class com.google.gcloud.storage.BatchRequest
+
 
+
equals(Object) - Method in class com.google.gcloud.storage.BatchResponse
+
 
+
equals(Object) - Method in class com.google.gcloud.storage.BatchResponse.Result
+
 
+
equals(Object) - Method in class com.google.gcloud.storage.BlobInfo
+
 
+
equals(Object) - Method in class com.google.gcloud.storage.BucketInfo.DeleteRule
+
 
+
equals(Object) - Method in class com.google.gcloud.storage.BucketInfo
+
 
+
equals(Object) - Method in class com.google.gcloud.storage.BucketInfo.Location
+
 
+
equals(Object) - Method in class com.google.gcloud.storage.Cors
+
 
+
equals(Object) - Method in class com.google.gcloud.storage.Cors.Origin
+
 
+
equals(Object) - Method in class com.google.gcloud.storage.ListResult
+
 
+
equals(Object) - Method in class com.google.gcloud.storage.StorageOptions
+
 
+
etag() - Method in class com.google.gcloud.storage.BlobInfo
+
 
+
etag() - Method in class com.google.gcloud.storage.BucketInfo
+
 
+
eu() - Static method in class com.google.gcloud.storage.BucketInfo.Location
+
 
+
ExceptionHandler - Class in com.google.gcloud
+
+
Exception handling used by RetryHelper.
+
+
ExceptionHandler.Builder - Class in com.google.gcloud
+
+
ExceptionHandler builder.
+
+
ExceptionHandler.Interceptor - Interface in com.google.gcloud
+
 
+
ExceptionHandler.Interceptor.RetryResult - Enum in com.google.gcloud
+
 
+
+ + + +

F

+
+
failed() - Method in class com.google.gcloud.storage.BatchResponse.Result
+
+
Returns true if failed, false otherwise.
+
+
failure() - Method in class com.google.gcloud.storage.BatchResponse.Result
+
+
Returns the failure or null if was successful.
+
+
fetch(Key...) - Method in interface com.google.gcloud.datastore.DatastoreReader
+
+
Returns a list with a value for each given key (ordered by input).
+
+
fetch(Key...) - Method in interface com.google.gcloud.datastore.Transaction
+
+
Returns a list with a value for each given key (ordered by input).
+
+
fill(DatastoreV1.Entity) - Method in class com.google.gcloud.datastore.BaseEntity.Builder
+
 
+
filter() - Method in class com.google.gcloud.datastore.StructuredQuery
+
 
+
first(String) - Static method in class com.google.gcloud.datastore.StructuredQuery.Projection
+
 
+
force() - Method in class com.google.gcloud.datastore.BatchOption.ForceWrites
+
 
+
force(boolean) - Method in class com.google.gcloud.datastore.DatastoreOptions.Builder
+
 
+
force() - Method in class com.google.gcloud.datastore.DatastoreOptions
+
 
+
force() - Method in class com.google.gcloud.datastore.TransactionOption.ForceWrites
+
 
+
forceWrites() - Static method in class com.google.gcloud.datastore.BatchOption
+
 
+
ForceWrites(boolean) - Constructor for class com.google.gcloud.datastore.BatchOption.ForceWrites
+
 
+
forceWrites() - Static method in class com.google.gcloud.datastore.TransactionOption
+
 
+
ForceWrites(boolean) - Constructor for class com.google.gcloud.datastore.TransactionOption.ForceWrites
+
 
+
fromPb(byte[]) - Method in class com.google.gcloud.datastore.BaseEntity
+
 
+
fromPb(byte[]) - Method in class com.google.gcloud.datastore.Blob
+
 
+
fromPb(byte[]) - Method in class com.google.gcloud.datastore.Cursor
+
 
+
fromPb(byte[]) - Method in class com.google.gcloud.datastore.DateTime
+
 
+
fromPb(Query.ResultType<V>, String, byte[]) - Method in class com.google.gcloud.datastore.GqlQuery
+
 
+
fromPb(byte[]) - Method in class com.google.gcloud.datastore.IncompleteKey
+
 
+
fromPb(byte[]) - Method in class com.google.gcloud.datastore.Key
+
 
+
fromPb(byte[]) - Method in class com.google.gcloud.datastore.PathElement
+
 
+
fromPb(byte[]) - Method in class com.google.gcloud.datastore.Query
+
 
+
fromPb(Query.ResultType<V>, String, byte[]) - Method in class com.google.gcloud.datastore.Query
+
 
+
fromPb(Query.ResultType<V>, String, byte[]) - Method in class com.google.gcloud.datastore.StructuredQuery
+
 
+
fromPb(DatastoreV1.PropertyExpression) - Static method in class com.google.gcloud.datastore.StructuredQuery.Projection
+
 
+
fromPb(DatastoreV1.PropertyFilter) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
fromPb(byte[]) - Method in class com.google.gcloud.datastore.Value
+
 
+
fromUrlSafe(String) - Static method in class com.google.gcloud.datastore.Cursor
+
+
Create a Cursor given its URL safe encoded form.
+
+
fromUrlSafe(String) - Static method in class com.google.gcloud.datastore.Key
+
+
Create a Key given its URL safe encoded form.
+
+
FullEntity<K extends IncompleteKey> - Class in com.google.gcloud.datastore
+
+
A full entity is a BaseEntity that with a complete set of properties.
+
+
FullEntity.Builder<K extends IncompleteKey> - Class in com.google.gcloud.datastore
+
 
+
+ + + +

G

+
+
generatedKeys() - Method in interface com.google.gcloud.datastore.Batch.Response
+
 
+
generatedKeys() - Method in interface com.google.gcloud.datastore.Transaction.Response
+
 
+
generation() - Method in class com.google.gcloud.storage.BlobInfo
+
 
+
generation() - Method in class com.google.gcloud.storage.Storage.ComposeRequest.SourceBlob
+
 
+
generationMatch(long) - Static method in class com.google.gcloud.storage.Storage.BlobSourceOption
+
 
+
generationMatch() - Static method in class com.google.gcloud.storage.Storage.BlobTargetOption
+
 
+
generationNotMatch(long) - Static method in class com.google.gcloud.storage.Storage.BlobSourceOption
+
 
+
generationNotMatch() - Static method in class com.google.gcloud.storage.Storage.BlobTargetOption
+
 
+
get(DatastoreOptions) - Method in class com.google.gcloud.datastore.DatastoreFactory
+
+
Returns a Datastore service for the given options.
+
+
get(Key) - Method in interface com.google.gcloud.datastore.DatastoreReader
+
+
Returns an Entity for the given Key or null if does not exists.
+
+
get(Key...) - Method in interface com.google.gcloud.datastore.DatastoreReader
+
+
Returns an Entity for each given Key that exists in the Datastore.
+
+
get() - Method in class com.google.gcloud.datastore.ListValue.Builder
+
 
+
get(Key) - Method in interface com.google.gcloud.datastore.Transaction
+
+
Returns an Entity for the given Key or null if does not exists.
+
+
get(Key...) - Method in interface com.google.gcloud.datastore.Transaction
+
+
Returns an Entity for each given Key that exists in the Datastore.
+
+
get() - Method in class com.google.gcloud.datastore.Value
+
 
+
get() - Method in interface com.google.gcloud.datastore.ValueBuilder
+
 
+
get(Bucket, Map<StorageRpc.Option, ?>) - Method in class com.google.gcloud.spi.DefaultStorageRpc
+
 
+
get(StorageObject, Map<StorageRpc.Option, ?>) - Method in class com.google.gcloud.spi.DefaultStorageRpc
+
 
+
get(Bucket, Map<StorageRpc.Option, ?>) - Method in interface com.google.gcloud.spi.StorageRpc
+
 
+
get(StorageObject, Map<StorageRpc.Option, ?>) - Method in interface com.google.gcloud.spi.StorageRpc
+
 
+
get(String, String, Storage.BlobSourceOption...) - Method in class com.google.gcloud.storage.BatchRequest.Builder
+
+
Retrieve metadata for the given blob.
+
+
get() - Method in class com.google.gcloud.storage.BatchResponse.Result
+
+
Returns the result.
+
+
get(String, Storage.BucketSourceOption...) - Method in interface com.google.gcloud.storage.Storage
+
+
Return the requested bucket or null if not found.
+
+
get(String, String, Storage.BlobSourceOption...) - Method in interface com.google.gcloud.storage.Storage
+
+
Return the requested blob or null if not found.
+
+
get(StorageOptions) - Method in class com.google.gcloud.storage.StorageFactory
+
+
Returns a Storage service for the given options.
+
+
getAppEngineProjectId() - Static method in class com.google.gcloud.ServiceOptions
+
 
+
getBlob(String) - Method in class com.google.gcloud.datastore.BaseEntity
+
+
Returns the property value as a blob.
+
+
getBlob(String) - Method in class com.google.gcloud.datastore.ProjectionEntity
+
 
+
getBoolean(String) - Method in class com.google.gcloud.datastore.BaseEntity
+
+
Returns the property value as a boolean.
+
+
getDateTime(String) - Method in class com.google.gcloud.datastore.BaseEntity
+
+
Returns the property value as a DateTime.
+
+
getDateTime(String) - Method in class com.google.gcloud.datastore.ProjectionEntity
+
 
+
getDefaultInstance() - Static method in class com.google.gcloud.ExceptionHandler
+
+
Returns an instance which retry any checked exception and abort on any runtime exception.
+
+
getDefaultInstance() - Static method in class com.google.gcloud.RetryParams
+
+
Returns an instance with the default parameters.
+
+
getDouble(String) - Method in class com.google.gcloud.datastore.BaseEntity
+
+
Returns the property value as a double.
+
+
getEntity(String) - Method in class com.google.gcloud.datastore.BaseEntity
+
+
Returns the property value as an entity.
+
+
getIndexed() - Method in interface com.google.gcloud.datastore.ValueBuilder
+
 
+
getInitialRetryDelayMillis() - Method in class com.google.gcloud.RetryParams
+
+
Returns the initialRetryDelayMillis.
+
+
getKey(String) - Method in class com.google.gcloud.datastore.BaseEntity
+
+
Returns the property value as a Key.
+
+
getList(String) - Method in class com.google.gcloud.datastore.BaseEntity
+
+
Returns the property value as a list of values.
+
+
getLong(String) - Method in class com.google.gcloud.datastore.BaseEntity
+
+
Returns the property value as long.
+
+
getMaxRetryDelayMillis() - Method in class com.google.gcloud.RetryParams
+
+
Returns the maxRetryDelayMillis.
+
+
getMeaning() - Method in interface com.google.gcloud.datastore.ValueBuilder
+
 
+
getNonRetriableExceptions() - Method in class com.google.gcloud.ExceptionHandler
+
 
+
getRetriableExceptions() - Method in class com.google.gcloud.ExceptionHandler
+
 
+
getRetryDelayBackoffFactor() - Method in class com.google.gcloud.RetryParams
+
+
Returns the maxRetryDelayBackoffFactor.
+
+
getRetryMaxAttempts() - Method in class com.google.gcloud.RetryParams
+
+
Returns the retryMaxAttempts.
+
+
getRetryMinAttempts() - Method in class com.google.gcloud.RetryParams
+
+
Returns the retryMinAttempts.
+
+
gets - Variable in class com.google.gcloud.spi.StorageRpc.BatchResponse
+
 
+
gets() - Method in class com.google.gcloud.storage.BatchResponse
+
+
Returns the results for the get operations using the request order.
+
+
getString(String) - Method in class com.google.gcloud.datastore.BaseEntity
+
+
Returns the property value as a string.
+
+
getTotalRetryPeriodMillis() - Method in class com.google.gcloud.RetryParams
+
+
Returns the totalRetryPeriodMillis.
+
+
getValue(String) - Method in class com.google.gcloud.datastore.BaseEntity
+
+
Returns the Value for the given property name.
+
+
getValueType() - Method in interface com.google.gcloud.datastore.ValueBuilder
+
 
+
googleCloudProjectId() - Static method in class com.google.gcloud.ServiceOptions
+
 
+
GqlQuery<V> - Class in com.google.gcloud.datastore
+
+
A Google Cloud Datastore GQL query.
+
+
GqlQuery.Builder<V> - Class in com.google.gcloud.datastore
+
+
A GQL query builder.
+
+
gqlQueryBuilder(String) - Static method in class com.google.gcloud.datastore.Query
+
+
Returns a new GqlQuery builder.
+
+
gqlQueryBuilder(Query.ResultType<V>, String) - Static method in class com.google.gcloud.datastore.Query
+
+
Returns a new GqlQuery builder.
+
+
Group(String) - Constructor for class com.google.gcloud.storage.Acl.Group
+
 
+
groupBy() - Method in class com.google.gcloud.datastore.StructuredQuery
+
 
+
groupBy(String, String...) - Method in class com.google.gcloud.datastore.StructuredQuery.ProjectionEntityQueryBuilder
+
 
+
gt(String, Value<?>) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
gt(String, String) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
gt(String, long) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
gt(String, double) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
gt(String, boolean) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
gt(String, DateTime) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
gt(String, Key) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
gt(String, Blob) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
gte(String, Value<?>) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
gte(String, String) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
gte(String, long) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
gte(String, double) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
gte(String, boolean) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
gte(String, DateTime) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
gte(String, Key) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
gte(String, Blob) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
+ + + +

H

+
+
hasAncestor(Key) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
hashCode() - Method in class com.google.gcloud.AuthCredentials.ServiceAccountAuthCredentials
+
 
+
hashCode() - Method in class com.google.gcloud.datastore.BaseEntity
+
 
+
hashCode() - Method in class com.google.gcloud.datastore.Blob
+
 
+
hashCode() - Method in class com.google.gcloud.datastore.Cursor
+
 
+
hashCode() - Method in class com.google.gcloud.datastore.DatastoreOptions
+
 
+
hashCode() - Method in class com.google.gcloud.datastore.DateTime
+
 
+
hashCode() - Method in class com.google.gcloud.datastore.GqlQuery
+
 
+
hashCode() - Method in class com.google.gcloud.datastore.PathElement
+
 
+
hashCode() - Method in class com.google.gcloud.datastore.Query.ResultType
+
 
+
hashCode() - Method in class com.google.gcloud.datastore.StructuredQuery.CompositeFilter
+
 
+
hashCode() - Method in class com.google.gcloud.datastore.StructuredQuery
+
 
+
hashCode() - Method in class com.google.gcloud.datastore.StructuredQuery.OrderBy
+
 
+
hashCode() - Method in class com.google.gcloud.datastore.StructuredQuery.Projection
+
 
+
hashCode() - Method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
hashCode() - Method in class com.google.gcloud.datastore.Value
+
 
+
hashCode() - Method in class com.google.gcloud.RetryParams
+
 
+
hashCode() - Method in class com.google.gcloud.storage.Acl.Entity
+
 
+
hashCode() - Method in class com.google.gcloud.storage.Acl
+
 
+
hashCode() - Method in class com.google.gcloud.storage.BatchRequest
+
 
+
hashCode() - Method in class com.google.gcloud.storage.BatchResponse
+
 
+
hashCode() - Method in class com.google.gcloud.storage.BatchResponse.Result
+
 
+
hashCode() - Method in class com.google.gcloud.storage.BlobInfo
+
 
+
hashCode() - Method in class com.google.gcloud.storage.BucketInfo.DeleteRule
+
 
+
hashCode() - Method in class com.google.gcloud.storage.BucketInfo
+
 
+
hashCode() - Method in class com.google.gcloud.storage.BucketInfo.Location
+
 
+
hashCode() - Method in class com.google.gcloud.storage.Cors
+
 
+
hashCode() - Method in class com.google.gcloud.storage.Cors.Origin
+
 
+
hashCode() - Method in class com.google.gcloud.storage.ListResult
+
 
+
hashCode() - Method in class com.google.gcloud.storage.StorageOptions
+
 
+
hasId() - Method in class com.google.gcloud.datastore.Key
+
 
+
hasId() - Method in class com.google.gcloud.datastore.PathElement
+
 
+
hasIndexed() - Method in class com.google.gcloud.datastore.Value
+
 
+
hasKey() - Method in class com.google.gcloud.datastore.BaseEntity
+
+
Returns true if entity has a non-null key.
+
+
hasMeaning() - Method in class com.google.gcloud.datastore.Value
+
+
Deprecated.
+
+
hasName() - Method in class com.google.gcloud.datastore.Key
+
 
+
hasName() - Method in class com.google.gcloud.datastore.PathElement
+
 
+
host(String) - Method in class com.google.gcloud.ServiceOptions.Builder
+
 
+
host() - Method in class com.google.gcloud.ServiceOptions
+
 
+
HttpMethod - Enum in com.google.gcloud.storage
+
+
Http method supported by Storage service.
+
+
httpMethod(HttpMethod) - Static method in class com.google.gcloud.storage.Storage.SignUrlOption
+
+
The HTTP method to be used with the signed URL.
+
+
httpRequestInitializer(HttpTransport, Set<String>) - Method in class com.google.gcloud.AuthCredentials
+
 
+
httpRequestInitializer(HttpTransport, Set<String>) - Method in class com.google.gcloud.AuthCredentials.ServiceAccountAuthCredentials
+
 
+
httpRequestInitializer() - Method in class com.google.gcloud.ServiceOptions
+
 
+
httpStatus() - Method in enum com.google.gcloud.datastore.DatastoreException.Code
+
 
+
httpStatus() - Method in exception com.google.gcloud.spi.DatastoreRpc.DatastoreRpcException
+
 
+
httpStatus() - Method in enum com.google.gcloud.spi.DatastoreRpc.DatastoreRpcException.Reason
+
 
+
httpTransportFactory(ServiceOptions.HttpTransportFactory) - Method in class com.google.gcloud.ServiceOptions.Builder
+
 
+
httpTransportFactory() - Method in class com.google.gcloud.ServiceOptions
+
 
+
+ + + +

I

+
+
id(long) - Method in class com.google.gcloud.datastore.Key.Builder
+
 
+
id() - Method in class com.google.gcloud.datastore.Key
+
+
Returns the key's id or null if it has a name instead.
+
+
id() - Method in class com.google.gcloud.datastore.PathElement
+
 
+
id() - Method in class com.google.gcloud.storage.BlobInfo
+
 
+
id() - Method in class com.google.gcloud.storage.BucketInfo
+
 
+
IncompleteKey - Class in com.google.gcloud.datastore
+
+
An incomplete key (without a name or id).
+
+
IncompleteKey.Builder - Class in com.google.gcloud.datastore
+
 
+
indexed(boolean) - Method in class com.google.gcloud.datastore.EntityValue.Builder
+
 
+
indexed(boolean) - Method in class com.google.gcloud.datastore.ListValue.Builder
+
 
+
indexed() - Method in class com.google.gcloud.datastore.Value
+
 
+
indexed(boolean) - Method in interface com.google.gcloud.datastore.ValueBuilder
+
 
+
indexPage(String) - Method in class com.google.gcloud.storage.BucketInfo.Builder
+
 
+
indexPage() - Method in class com.google.gcloud.storage.BucketInfo
+
 
+
initialRetryDelayMillis(long) - Method in class com.google.gcloud.RetryParams.Builder
+
+
Sets initialRetryDelayMillis.
+
+
instance() - Static method in class com.google.gcloud.datastore.DatastoreFactory
+
+
Returns the default factory instance.
+
+
instance() - Static method in class com.google.gcloud.storage.StorageFactory
+
+
Returns the default factory instance.
+
+
interceptor(ExceptionHandler.Interceptor...) - Method in class com.google.gcloud.ExceptionHandler.Builder
+
+
Adds the exception handler interceptors.
+
+
isLive() - Method in class com.google.gcloud.storage.BucketInfo.IsLiveDeleteRule
+
 
+
IsLiveDeleteRule(boolean) - Constructor for class com.google.gcloud.storage.BucketInfo.IsLiveDeleteRule
+
 
+
isNull(String) - Method in class com.google.gcloud.datastore.BaseEntity
+
+
Returns true if property is an instance of NullValue.
+
+
isNull(String) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
IsolationLevel(TransactionOption.IsolationLevel.Level) - Constructor for class com.google.gcloud.datastore.TransactionOption.IsolationLevel
+
 
+
iterator() - Method in class com.google.gcloud.storage.ListResult
+
 
+
+ + + +

K

+
+
key() - Method in class com.google.gcloud.datastore.BaseEntity.Builder
+
 
+
key(K) - Method in class com.google.gcloud.datastore.BaseEntity.Builder
+
 
+
key() - Method in class com.google.gcloud.datastore.BaseEntity
+
+
Returns the associated key or null if it does not have one.
+
+
key(Key) - Method in class com.google.gcloud.datastore.Entity.Builder
+
 
+
Key - Class in com.google.gcloud.datastore
+
+
A key that is guaranteed to be complete and could be used to reference a + Google Cloud Datastore Entity.
+
+
KEY - Static variable in class com.google.gcloud.datastore.Query.ResultType
+
 
+
Key.Builder - Class in com.google.gcloud.datastore
+
 
+
KeyFactory - Class in com.google.gcloud.datastore
+
+
A helper for creating keys for a specific Datastore, + using its associated projectId and namespace.
+
+
KeyFactory(String) - Constructor for class com.google.gcloud.datastore.KeyFactory
+
 
+
KeyFactory(String, String) - Constructor for class com.google.gcloud.datastore.KeyFactory
+
 
+
keyQueryBuilder() - Static method in class com.google.gcloud.datastore.Query
+
+
Returns a new StructuredQuery builder for key only queries.
+
+
KeyValue - Class in com.google.gcloud.datastore
+
 
+
KeyValue(Key) - Constructor for class com.google.gcloud.datastore.KeyValue
+
 
+
KeyValue.Builder - Class in com.google.gcloud.datastore
+
 
+
kind() - Method in class com.google.gcloud.datastore.PathElement
+
 
+
kind() - Method in class com.google.gcloud.datastore.StructuredQuery
+
 
+
+ + + +

L

+
+
le(String, Value<?>) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
le(String, String) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
le(String, long) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
le(String, double) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
le(String, boolean) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
le(String, DateTime) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
le(String, Key) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
le(String, Blob) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
length() - Method in class com.google.gcloud.datastore.Blob
+
+
Returns the size of this blob.
+
+
level() - Method in class com.google.gcloud.datastore.TransactionOption.IsolationLevel
+
 
+
limit() - Method in class com.google.gcloud.datastore.StructuredQuery
+
 
+
list(Map<StorageRpc.Option, ?>) - Method in class com.google.gcloud.spi.DefaultStorageRpc
+
 
+
list(String, Map<StorageRpc.Option, ?>) - Method in class com.google.gcloud.spi.DefaultStorageRpc
+
 
+
list(Map<StorageRpc.Option, ?>) - Method in interface com.google.gcloud.spi.StorageRpc
+
 
+
list(String, Map<StorageRpc.Option, ?>) - Method in interface com.google.gcloud.spi.StorageRpc
+
 
+
list(Storage.BucketListOption...) - Method in interface com.google.gcloud.storage.Storage
+
+
List the project's buckets.
+
+
list(String, Storage.BlobListOption...) - Method in interface com.google.gcloud.storage.Storage
+
+
List the bucket's blobs.
+
+
ListResult<T extends Serializable> - Class in com.google.gcloud.storage
+
+
Google Cloud storage list result.
+
+
ListResult(ListResult.NextPageFetcher<T>, String, Iterable<T>) - Constructor for class com.google.gcloud.storage.ListResult
+
 
+
ListResult.NextPageFetcher<T extends Serializable> - Interface in com.google.gcloud.storage
+
 
+
ListValue - Class in com.google.gcloud.datastore
+
 
+
ListValue(List<? extends Value<?>>) - Constructor for class com.google.gcloud.datastore.ListValue
+
 
+
ListValue(Value<?>, Value<?>...) - Constructor for class com.google.gcloud.datastore.ListValue
+
 
+
ListValue.Builder - Class in com.google.gcloud.datastore
+
 
+
load(StorageObject, Map<StorageRpc.Option, ?>) - Method in class com.google.gcloud.spi.DefaultStorageRpc
+
 
+
load(StorageObject, Map<StorageRpc.Option, ?>) - Method in interface com.google.gcloud.spi.StorageRpc
+
 
+
location(BucketInfo.Location) - Method in class com.google.gcloud.storage.BucketInfo.Builder
+
 
+
location() - Method in class com.google.gcloud.storage.BucketInfo
+
 
+
LongValue - Class in com.google.gcloud.datastore
+
 
+
LongValue(long) - Constructor for class com.google.gcloud.datastore.LongValue
+
 
+
LongValue.Builder - Class in com.google.gcloud.datastore
+
 
+
lookup(DatastoreV1.LookupRequest) - Method in interface com.google.gcloud.spi.DatastoreRpc
+
 
+
lookup(DatastoreV1.LookupRequest) - Method in class com.google.gcloud.spi.DefaultDatastoreRpc
+
 
+
lte(String, Value<?>) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
lte(String, String) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
lte(String, long) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
lte(String, double) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
lte(String, boolean) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
lte(String, DateTime) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
lte(String, Key) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
lte(String, Blob) - Static method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
+ + + +

M

+
+
main(String...) - Static method in class com.google.gcloud.examples.DatastoreExample
+
 
+
main(String...) - Static method in class com.google.gcloud.examples.StorageExample
+
 
+
maxAgeSeconds(Integer) - Method in class com.google.gcloud.storage.Cors.Builder
+
 
+
maxAgeSeconds() - Method in class com.google.gcloud.storage.Cors
+
 
+
maxResults(long) - Static method in class com.google.gcloud.storage.Storage.BlobListOption
+
 
+
maxResults(long) - Static method in class com.google.gcloud.storage.Storage.BucketListOption
+
 
+
maxRetryDelayMillis(long) - Method in class com.google.gcloud.RetryParams.Builder
+
+
Sets maxRetryDelayMillis.
+
+
md5(String) - Method in class com.google.gcloud.storage.BlobInfo.Builder
+
 
+
md5() - Method in class com.google.gcloud.storage.BlobInfo
+
 
+
meaning() - Method in class com.google.gcloud.datastore.Value
+
+
Deprecated.
+
+
meaning(Integer) - Method in interface com.google.gcloud.datastore.ValueBuilder
+
+
Deprecated.
+
+
mediaLink() - Method in class com.google.gcloud.storage.BlobInfo
+
 
+
mergeFrom(DatastoreV1.Query) - Method in class com.google.gcloud.datastore.StructuredQuery.KeyQueryBuilder
+
 
+
mergeFrom(P) - Method in interface com.google.gcloud.datastore.ValueBuilder
+
 
+
metadata(Map<String, String>) - Method in class com.google.gcloud.storage.BlobInfo.Builder
+
 
+
metadata() - Method in class com.google.gcloud.storage.BlobInfo
+
 
+
metageneration() - Method in class com.google.gcloud.storage.BlobInfo
+
 
+
metageneration() - Method in class com.google.gcloud.storage.BucketInfo
+
 
+
metagenerationMatch(long) - Static method in class com.google.gcloud.storage.Storage.BlobSourceOption
+
 
+
metagenerationMatch() - Static method in class com.google.gcloud.storage.Storage.BlobTargetOption
+
 
+
metagenerationMatch(long) - Static method in class com.google.gcloud.storage.Storage.BucketSourceOption
+
 
+
metagenerationMatch() - Static method in class com.google.gcloud.storage.Storage.BucketTargetOption
+
 
+
metagenerationNotMatch(long) - Static method in class com.google.gcloud.storage.Storage.BlobSourceOption
+
 
+
metagenerationNotMatch() - Static method in class com.google.gcloud.storage.Storage.BlobTargetOption
+
 
+
metagenerationNotMatch(long) - Static method in class com.google.gcloud.storage.Storage.BucketSourceOption
+
 
+
metagenerationNotMatch() - Static method in class com.google.gcloud.storage.Storage.BucketTargetOption
+
 
+
methods(Iterable<HttpMethod>) - Method in class com.google.gcloud.storage.Cors.Builder
+
 
+
methods() - Method in class com.google.gcloud.storage.Cors
+
 
+
+ + + +

N

+
+
name() - Method in class com.google.gcloud.datastore.BaseDatastoreBatchWriter
+
 
+
name(String) - Method in class com.google.gcloud.datastore.Key.Builder
+
 
+
name() - Method in class com.google.gcloud.datastore.Key
+
+
Returns the key's name or null if it has an id instead.
+
+
name() - Method in class com.google.gcloud.datastore.PathElement
+
 
+
name(String) - Method in class com.google.gcloud.storage.BlobInfo.Builder
+
 
+
name() - Method in class com.google.gcloud.storage.BlobInfo
+
 
+
name(String) - Method in class com.google.gcloud.storage.BucketInfo.Builder
+
 
+
name() - Method in class com.google.gcloud.storage.BucketInfo
+
 
+
name() - Method in class com.google.gcloud.storage.Storage.ComposeRequest.SourceBlob
+
 
+
namedBindings() - Method in class com.google.gcloud.datastore.GqlQuery
+
+
Returns an immutable map of named bindings.
+
+
nameOrId() - Method in class com.google.gcloud.datastore.Key
+
+
Returns the key's id (as Long) or name (as String).
+
+
nameOrId() - Method in class com.google.gcloud.datastore.PathElement
+
 
+
names() - Method in class com.google.gcloud.datastore.BaseEntity
+
+
Returns the properties name.
+
+
namespace(String) - Method in class com.google.gcloud.datastore.DatastoreOptions.Builder
+
 
+
namespace() - Method in class com.google.gcloud.datastore.DatastoreOptions
+
 
+
namespace(String) - Method in class com.google.gcloud.datastore.GqlQuery.Builder
+
 
+
namespace() - Method in class com.google.gcloud.datastore.Query
+
 
+
newBatch(BatchOption...) - Method in interface com.google.gcloud.datastore.Datastore
+
+
Returns a new Batch for processing multiple write operations in one request.
+
+
newInvalidRequest(String, Object...) - Method in class com.google.gcloud.datastore.BaseDatastoreBatchWriter
+
 
+
newKey() - Method in class com.google.gcloud.datastore.KeyFactory
+
 
+
newKey(String) - Method in class com.google.gcloud.datastore.KeyFactory
+
 
+
newKey(long) - Method in class com.google.gcloud.datastore.KeyFactory
+
 
+
newKeyFactory() - Method in interface com.google.gcloud.datastore.Datastore
+
+
Returns a new KeyFactory for this service
+
+
newTransaction(TransactionOption...) - Method in interface com.google.gcloud.datastore.Datastore
+
+
Returns a new Datastore transaction.
+
+
nextPage() - Method in class com.google.gcloud.storage.ListResult
+
+
Returns the results of the nextPage or null if no more result.
+
+
nextPage() - Method in interface com.google.gcloud.storage.ListResult.NextPageFetcher
+
 
+
nextPageCursor() - Method in class com.google.gcloud.storage.ListResult
+
+
Returns the cursor for the nextPage or null if no more results.
+
+
nextQuery(DatastoreV1.QueryResultBatch) - Method in class com.google.gcloud.datastore.GqlQuery
+
 
+
nextQuery(DatastoreV1.QueryResultBatch) - Method in class com.google.gcloud.datastore.Query
+
 
+
nextQuery(DatastoreV1.QueryResultBatch) - Method in class com.google.gcloud.datastore.StructuredQuery
+
 
+
noCredentials() - Static method in class com.google.gcloud.AuthCredentials
+
 
+
noRetries() - Static method in class com.google.gcloud.RetryParams
+
 
+
notFoundPage(String) - Method in class com.google.gcloud.storage.BucketInfo.Builder
+
 
+
notFoundPage() - Method in class com.google.gcloud.storage.BucketInfo
+
 
+
now() - Static method in class com.google.gcloud.datastore.DateTime
+
 
+
NullValue - Class in com.google.gcloud.datastore
+
 
+
NullValue() - Constructor for class com.google.gcloud.datastore.NullValue
+
 
+
NullValue.Builder - Class in com.google.gcloud.datastore
+
 
+
numberArgs() - Method in class com.google.gcloud.datastore.GqlQuery
+
+
Returns an immutable list of positional bindings (using original order).
+
+
numNewerVersions() - Method in class com.google.gcloud.storage.BucketInfo.NumNewerVersionsDeleteRule
+
 
+
NumNewerVersionsDeleteRule(int) - Constructor for class com.google.gcloud.storage.BucketInfo.NumNewerVersionsDeleteRule
+
 
+
+ + + +

O

+
+
of(Blob) - Static method in class com.google.gcloud.datastore.BlobValue
+
 
+
of(boolean) - Static method in class com.google.gcloud.datastore.BooleanValue
+
 
+
of(DateTime) - Static method in class com.google.gcloud.datastore.DateTimeValue
+
 
+
of(double) - Static method in class com.google.gcloud.datastore.DoubleValue
+
 
+
of(FullEntity<?>) - Static method in class com.google.gcloud.datastore.EntityValue
+
 
+
of(Key) - Static method in class com.google.gcloud.datastore.KeyValue
+
 
+
of(List<? extends Value<?>>) - Static method in class com.google.gcloud.datastore.ListValue
+
 
+
of(Value<?>, Value<?>...) - Static method in class com.google.gcloud.datastore.ListValue
+
 
+
of(long) - Static method in class com.google.gcloud.datastore.LongValue
+
 
+
of() - Static method in class com.google.gcloud.datastore.NullValue
+
 
+
of(String, String) - Static method in class com.google.gcloud.datastore.PathElement
+
 
+
of(String, long) - Static method in class com.google.gcloud.datastore.PathElement
+
 
+
of(String) - Static method in class com.google.gcloud.datastore.StringValue
+
 
+
of(X, Y) - Static method in class com.google.gcloud.spi.StorageRpc.Tuple
+
 
+
of(String, String) - Static method in class com.google.gcloud.storage.BlobInfo
+
 
+
of(String) - Static method in class com.google.gcloud.storage.BucketInfo.Location
+
 
+
of(String) - Static method in class com.google.gcloud.storage.BucketInfo
+
 
+
of(String) - Static method in class com.google.gcloud.storage.BucketInfo.StorageClass
+
 
+
of(String, String, int) - Static method in class com.google.gcloud.storage.Cors.Origin
+
 
+
of(String) - Static method in class com.google.gcloud.storage.Cors.Origin
+
 
+
of(Iterable<String>, BlobInfo) - Static method in class com.google.gcloud.storage.Storage.ComposeRequest
+
 
+
of(String, Iterable<String>, String) - Static method in class com.google.gcloud.storage.Storage.ComposeRequest
+
 
+
of(String, String, BlobInfo) - Static method in class com.google.gcloud.storage.Storage.CopyRequest
+
 
+
of(String, String, String) - Static method in class com.google.gcloud.storage.Storage.CopyRequest
+
 
+
ofAllAuthenticatedUsers() - Static method in class com.google.gcloud.storage.Acl.User
+
 
+
ofAllUsers() - Static method in class com.google.gcloud.storage.Acl.User
+
 
+
offset() - Method in class com.google.gcloud.datastore.StructuredQuery
+
 
+
open(StorageObject, Map<StorageRpc.Option, ?>) - Method in class com.google.gcloud.spi.DefaultStorageRpc
+
 
+
open(StorageObject, Map<StorageRpc.Option, ?>) - Method in interface com.google.gcloud.spi.StorageRpc
+
 
+
options() - Method in class com.google.gcloud.BaseService
+
 
+
options() - Method in interface com.google.gcloud.Service
+
 
+
orderBy() - Method in class com.google.gcloud.datastore.StructuredQuery
+
 
+
OrderBy(String, StructuredQuery.OrderBy.Direction) - Constructor for class com.google.gcloud.datastore.StructuredQuery.OrderBy
+
 
+
origins(Iterable<Cors.Origin>) - Method in class com.google.gcloud.storage.Cors.Builder
+
 
+
origins() - Method in class com.google.gcloud.storage.Cors
+
 
+
owner() - Method in class com.google.gcloud.storage.BlobInfo
+
 
+
owner() - Method in class com.google.gcloud.storage.BucketInfo
+
 
+
+ + + +

P

+
+
patch(Bucket, Map<StorageRpc.Option, ?>) - Method in class com.google.gcloud.spi.DefaultStorageRpc
+
 
+
patch(StorageObject, Map<StorageRpc.Option, ?>) - Method in class com.google.gcloud.spi.DefaultStorageRpc
+
 
+
patch(Bucket, Map<StorageRpc.Option, ?>) - Method in interface com.google.gcloud.spi.StorageRpc
+
 
+
patch(StorageObject, Map<StorageRpc.Option, ?>) - Method in interface com.google.gcloud.spi.StorageRpc
+
 
+
pathDelimiter(String) - Method in class com.google.gcloud.storage.StorageOptions.Builder
+
 
+
pathDelimiter() - Method in class com.google.gcloud.storage.StorageOptions
+
 
+
PathElement - Class in com.google.gcloud.datastore
+
+
Represents a single element in a key's path.
+
+
populatePb(DatastoreV1.RunQueryRequest.Builder) - Method in class com.google.gcloud.datastore.GqlQuery
+
 
+
populatePb(DatastoreV1.RunQueryRequest.Builder) - Method in class com.google.gcloud.datastore.Query
+
 
+
populatePb(DatastoreV1.RunQueryRequest.Builder) - Method in class com.google.gcloud.datastore.StructuredQuery
+
 
+
predefinedAcl(Storage.PredefinedAcl) - Static method in class com.google.gcloud.storage.Storage.BlobTargetOption
+
 
+
predefinedAcl(Storage.PredefinedAcl) - Static method in class com.google.gcloud.storage.Storage.BucketTargetOption
+
 
+
predefinedDefaultObjectAcl(Storage.PredefinedAcl) - Static method in class com.google.gcloud.storage.Storage.BucketTargetOption
+
 
+
prefix(String) - Static method in class com.google.gcloud.storage.Storage.BlobListOption
+
 
+
prefix(String) - Static method in class com.google.gcloud.storage.Storage.BucketListOption
+
 
+
printUsage() - Static method in class com.google.gcloud.examples.StorageExample
+
 
+
privateKey() - Method in class com.google.gcloud.AuthCredentials.ServiceAccountAuthCredentials
+
 
+
Project(Acl.Project.ProjectRole, String) - Constructor for class com.google.gcloud.storage.Acl.Project
+
 
+
projectId(String) - Method in class com.google.gcloud.ServiceOptions.Builder
+
 
+
projectId() - Method in class com.google.gcloud.ServiceOptions
+
 
+
projectId() - Method in class com.google.gcloud.storage.Acl.Project
+
 
+
projection() - Method in class com.google.gcloud.datastore.StructuredQuery
+
 
+
projection(StructuredQuery.Projection, StructuredQuery.Projection...) - Method in class com.google.gcloud.datastore.StructuredQuery.ProjectionEntityQueryBuilder
+
 
+
PROJECTION_ENTITY - Static variable in class com.google.gcloud.datastore.Query.ResultType
+
 
+
ProjectionEntity - Class in com.google.gcloud.datastore
+
+
A projection entity is a result of a Google Cloud Datastore projection query.
+
+
ProjectionEntity.Builder - Class in com.google.gcloud.datastore
+
 
+
projectionEntityQueryBuilder() - Static method in class com.google.gcloud.datastore.Query
+
+
Returns a new StructuredQuery builder for projection queries.
+
+
projectRole() - Method in class com.google.gcloud.storage.Acl.Project
+
 
+
propagate() - Static method in exception com.google.gcloud.RetryHelper.RetryInterruptedException
+
+
Sets the caller thread interrupt flag and throws RetryInterruptedException.
+
+
properties() - Method in class com.google.gcloud.datastore.BaseEntity.Builder
+
 
+
properties(Map<String, Value<?>>) - Method in class com.google.gcloud.datastore.BaseEntity.Builder
+
 
+
property() - Method in class com.google.gcloud.datastore.StructuredQuery.OrderBy
+
 
+
property(String) - Static method in class com.google.gcloud.datastore.StructuredQuery.Projection
+
 
+
put(Entity...) - Method in class com.google.gcloud.datastore.BaseDatastoreBatchWriter
+
 
+
put(Entity...) - Method in interface com.google.gcloud.datastore.Datastore
+
+
A Datastore put (a.k.a upsert) operation.
+
+
put(Entity...) - Method in interface com.google.gcloud.datastore.DatastoreWriter
+
+
A Datastore put (a.k.a upsert) operation.
+
+
+ + + +

Q

+
+
query(String) - Method in class com.google.gcloud.datastore.GqlQuery.Builder
+
 
+
Query<V> - Class in com.google.gcloud.datastore
+
+
A Google Cloud Datastore query.
+
+
Query.ResultType<V> - Class in com.google.gcloud.datastore
+
+
This class represents the expected type of the result.
+
+
QueryResults<V> - Interface in com.google.gcloud.datastore
+
+
The result of a Google Cloud Datastore query submission.
+
+
queryString() - Method in class com.google.gcloud.datastore.GqlQuery
+
 
+
+ + + +

R

+
+
RawValue - Class in com.google.gcloud.datastore
+
 
+
RawValue.Builder - Class in com.google.gcloud.datastore
+
 
+
read(StorageObject, Map<StorageRpc.Option, ?>, long, int) - Method in class com.google.gcloud.spi.DefaultStorageRpc
+
 
+
read(StorageObject, Map<StorageRpc.Option, ?>, long, int) - Method in interface com.google.gcloud.spi.StorageRpc
+
 
+
readAllBytes(String, String, Storage.BlobSourceOption...) - Method in interface com.google.gcloud.storage.Storage
+
+
Reads all the bytes from a blob.
+
+
reader(String, String, Storage.BlobSourceOption...) - Method in interface com.google.gcloud.storage.Storage
+
+
Return a channel for reading the blob's content.
+
+
reason() - Method in exception com.google.gcloud.spi.DatastoreRpc.DatastoreRpcException
+
 
+
recursive(boolean) - Static method in class com.google.gcloud.storage.Storage.BlobListOption
+
 
+
remove(String) - Method in class com.google.gcloud.datastore.BaseEntity.Builder
+
+
Removes a property with the given name.
+
+
reset() - Method in class com.google.gcloud.datastore.KeyFactory
+
+
Resets the KeyFactory to its initial state.
+
+
responseHeaders(Iterable<String>) - Method in class com.google.gcloud.storage.Cors.Builder
+
 
+
responseHeaders() - Method in class com.google.gcloud.storage.Cors
+
 
+
Result(T) - Constructor for class com.google.gcloud.storage.BatchResponse.Result
+
 
+
Result(StorageException) - Constructor for class com.google.gcloud.storage.BatchResponse.Result
+
 
+
resultClass() - Method in class com.google.gcloud.datastore.Query.ResultType
+
 
+
resultClass() - Method in interface com.google.gcloud.datastore.QueryResults
+
+
Returns the actual class of the result's values.
+
+
retryable() - Method in enum com.google.gcloud.datastore.DatastoreException.Code
+
+
Returns true if this exception is transient and the same request could be retried.
+
+
retryable() - Method in enum com.google.gcloud.spi.DatastoreRpc.DatastoreRpcException.Reason
+
 
+
retryable() - Method in exception com.google.gcloud.spi.DatastoreRpc.DatastoreRpcException
+
 
+
retryable() - Method in exception com.google.gcloud.storage.StorageException
+
 
+
retryDelayBackoffFactor(double) - Method in class com.google.gcloud.RetryParams.Builder
+
+
Sets retryDelayBackoffFactor.
+
+
RetryHelper<V> - Class in com.google.gcloud
+
+
Utility class for retrying operations.
+
+
RetryHelper.NonRetriableException - Exception in com.google.gcloud
+
+
Thrown when RetryHelper callable has indicate it should not be retried.
+
+
RetryHelper.RetriesExhaustedException - Exception in com.google.gcloud
+
+
Thrown when a RetryHelper has attempted the maximum number of attempts allowed by RetryParams + and was not successful.
+
+
RetryHelper.RetryHelperException - Exception in com.google.gcloud
+
 
+
RetryHelper.RetryInterruptedException - Exception in com.google.gcloud
+
+
Thrown when a RetryHelper failed to complete its work due to interruption.
+
+
retryMaxAttempts(int) - Method in class com.google.gcloud.RetryParams.Builder
+
+
Sets retryMaxAttempts.
+
+
retryMinAttempts(int) - Method in class com.google.gcloud.RetryParams.Builder
+
+
Sets retryMinAttempts.
+
+
retryOn(Class<? extends Exception>...) - Method in class com.google.gcloud.ExceptionHandler.Builder
+
+
Add the exceptions to ignore/retry-on.
+
+
RetryParams - Class in com.google.gcloud
+
+
Parameters for configuring retries with an exponential backoff.
+
+
retryParams(RetryParams) - Method in class com.google.gcloud.ServiceOptions.Builder
+
 
+
retryParams() - Method in class com.google.gcloud.ServiceOptions
+
 
+
RetryParams.Builder - Class in com.google.gcloud
+
+
RetryParams builder.
+
+
role() - Method in class com.google.gcloud.storage.Acl
+
 
+
rollback() - Method in interface com.google.gcloud.datastore.Transaction
+
+
Rollback the transaction.
+
+
rollback(DatastoreV1.RollbackRequest) - Method in interface com.google.gcloud.spi.DatastoreRpc
+
 
+
rollback(DatastoreV1.RollbackRequest) - Method in class com.google.gcloud.spi.DefaultDatastoreRpc
+
 
+
run(DatastoreReaderWriter) - Method in interface com.google.gcloud.datastore.Datastore.TransactionCallable
+
 
+
run(Query<T>) - Method in interface com.google.gcloud.datastore.DatastoreReader
+
+
Submit a Query and returns its result.
+
+
run(Query<T>) - Method in interface com.google.gcloud.datastore.Transaction
+
+
Submit a Query and returns its result.
+
+
runInTransaction(Datastore.TransactionCallable<T>, TransactionOption...) - Method in interface com.google.gcloud.datastore.Datastore
+
+
Invokes the callback's Datastore.TransactionCallable.run(com.google.gcloud.datastore.DatastoreReaderWriter) method with a + DatastoreReaderWriter that is associated with a new transaction.
+
+
runQuery(DatastoreV1.RunQueryRequest) - Method in interface com.google.gcloud.spi.DatastoreRpc
+
 
+
runQuery(DatastoreV1.RunQueryRequest) - Method in class com.google.gcloud.spi.DefaultDatastoreRpc
+
 
+
runWithRetries(Callable<V>) - Static method in class com.google.gcloud.RetryHelper
+
 
+
runWithRetries(Callable<V>, RetryParams, ExceptionHandler) - Static method in class com.google.gcloud.RetryHelper
+
 
+
+ + + +

S

+
+
scopes() - Method in class com.google.gcloud.datastore.DatastoreOptions
+
 
+
scopes() - Method in class com.google.gcloud.ServiceOptions
+
 
+
scopes() - Method in class com.google.gcloud.storage.StorageOptions
+
 
+
seek(int) - Method in interface com.google.gcloud.storage.BlobReadChannel
+
 
+
self() - Method in class com.google.gcloud.ServiceOptions.Builder
+
 
+
selfLink() - Method in class com.google.gcloud.storage.BlobInfo
+
 
+
selfLink() - Method in class com.google.gcloud.storage.BucketInfo
+
 
+
serializable() - Static method in class com.google.gcloud.datastore.TransactionOption
+
 
+
Service<OptionsT extends ServiceOptions<?,OptionsT>> - Interface in com.google.gcloud
+
 
+
serviceAccount(AuthCredentials.ServiceAccountAuthCredentials) - Static method in class com.google.gcloud.storage.Storage.SignUrlOption
+
+
Service account credentials which are used for signing the URL.
+
+
ServiceOptions<ServiceRpcT,OptionsT extends ServiceOptions<ServiceRpcT,OptionsT>> - Class in com.google.gcloud
+
 
+
ServiceOptions(ServiceOptions.Builder<ServiceRpcT, OptionsT, ?>) - Constructor for class com.google.gcloud.ServiceOptions
+
 
+
ServiceOptions.Builder<ServiceRpcT,OptionsT extends ServiceOptions<ServiceRpcT,OptionsT>,B extends ServiceOptions.Builder<ServiceRpcT,OptionsT,B>> - Class in com.google.gcloud
+
 
+
ServiceOptions.HttpTransportFactory - Interface in com.google.gcloud
+
 
+
serviceRpcFactory(ServiceRpcFactory<ServiceRpcT, OptionsT>) - Method in class com.google.gcloud.ServiceOptions.Builder
+
 
+
serviceRpcFactory() - Method in class com.google.gcloud.ServiceOptions
+
 
+
ServiceRpcFactory<ServiceRpcT,OptionsT extends ServiceOptions<ServiceRpcT,OptionsT>> - Interface in com.google.gcloud.spi
+
+
A base interface for all service RPC factories.
+
+
set(String, Value<?>) - Method in class com.google.gcloud.datastore.BaseEntity.Builder
+
 
+
set(String, String) - Method in class com.google.gcloud.datastore.BaseEntity.Builder
+
 
+
set(String, long) - Method in class com.google.gcloud.datastore.BaseEntity.Builder
+
 
+
set(String, double) - Method in class com.google.gcloud.datastore.BaseEntity.Builder
+
 
+
set(String, boolean) - Method in class com.google.gcloud.datastore.BaseEntity.Builder
+
 
+
set(String, DateTime) - Method in class com.google.gcloud.datastore.BaseEntity.Builder
+
 
+
set(String, Key) - Method in class com.google.gcloud.datastore.BaseEntity.Builder
+
 
+
set(String, FullEntity<?>) - Method in class com.google.gcloud.datastore.BaseEntity.Builder
+
 
+
set(String, List<? extends Value<?>>) - Method in class com.google.gcloud.datastore.BaseEntity.Builder
+
 
+
set(String, Value<?>, Value<?>...) - Method in class com.google.gcloud.datastore.BaseEntity.Builder
+
 
+
set(String, Blob) - Method in class com.google.gcloud.datastore.BaseEntity.Builder
+
 
+
set(List<? extends Value<?>>) - Method in class com.google.gcloud.datastore.ListValue.Builder
+
+
Copy the list of values.
+
+
set(Void) - Method in class com.google.gcloud.datastore.NullValue.Builder
+
 
+
set(V) - Method in interface com.google.gcloud.datastore.ValueBuilder
+
 
+
setBinding(String, Cursor) - Method in class com.google.gcloud.datastore.GqlQuery.Builder
+
 
+
setBinding(String, String...) - Method in class com.google.gcloud.datastore.GqlQuery.Builder
+
 
+
setBinding(String, long...) - Method in class com.google.gcloud.datastore.GqlQuery.Builder
+
 
+
setBinding(String, double...) - Method in class com.google.gcloud.datastore.GqlQuery.Builder
+
 
+
setBinding(String, boolean...) - Method in class com.google.gcloud.datastore.GqlQuery.Builder
+
 
+
setBinding(String, DateTime...) - Method in class com.google.gcloud.datastore.GqlQuery.Builder
+
 
+
setBinding(String, Key...) - Method in class com.google.gcloud.datastore.GqlQuery.Builder
+
 
+
setBinding(String, FullEntity<?>...) - Method in class com.google.gcloud.datastore.GqlQuery.Builder
+
 
+
setBinding(String, Blob...) - Method in class com.google.gcloud.datastore.GqlQuery.Builder
+
 
+
setNull(String) - Method in class com.google.gcloud.datastore.BaseEntity.Builder
+
 
+
signUrl(BlobInfo, long, Storage.SignUrlOption...) - Method in interface com.google.gcloud.storage.Storage
+
+
Generates a signed URL for a blob.
+
+
size() - Method in class com.google.gcloud.storage.BlobInfo
+
 
+
snapshot() - Static method in class com.google.gcloud.datastore.TransactionOption
+
 
+
source(String, String) - Method in class com.google.gcloud.storage.Storage.CopyRequest.Builder
+
 
+
sourceBlob() - Method in class com.google.gcloud.storage.Storage.CopyRequest
+
 
+
sourceBlobs() - Method in class com.google.gcloud.storage.Storage.ComposeRequest
+
 
+
sourceBucket() - Method in class com.google.gcloud.storage.Storage.CopyRequest
+
 
+
sourceOptions(Storage.BlobSourceOption...) - Method in class com.google.gcloud.storage.Storage.CopyRequest.Builder
+
 
+
sourceOptions() - Method in class com.google.gcloud.storage.Storage.CopyRequest
+
 
+
standard() - Static method in class com.google.gcloud.storage.BucketInfo.StorageClass
+
 
+
startCursor() - Method in class com.google.gcloud.datastore.StructuredQuery
+
 
+
startPageToken(String) - Static method in class com.google.gcloud.storage.Storage.BlobListOption
+
 
+
startPageToken(String) - Static method in class com.google.gcloud.storage.Storage.BucketListOption
+
 
+
Storage - Interface in com.google.gcloud.storage
+
+
An interface for Google Cloud Storage.
+
+
Storage.BlobListOption - Class in com.google.gcloud.storage
+
 
+
Storage.BlobSourceOption - Class in com.google.gcloud.storage
+
 
+
Storage.BlobTargetOption - Class in com.google.gcloud.storage
+
 
+
Storage.BucketListOption - Class in com.google.gcloud.storage
+
 
+
Storage.BucketSourceOption - Class in com.google.gcloud.storage
+
 
+
Storage.BucketTargetOption - Class in com.google.gcloud.storage
+
 
+
Storage.ComposeRequest - Class in com.google.gcloud.storage
+
 
+
Storage.ComposeRequest.Builder - Class in com.google.gcloud.storage
+
 
+
Storage.ComposeRequest.SourceBlob - Class in com.google.gcloud.storage
+
 
+
Storage.CopyRequest - Class in com.google.gcloud.storage
+
 
+
Storage.CopyRequest.Builder - Class in com.google.gcloud.storage
+
 
+
Storage.PredefinedAcl - Enum in com.google.gcloud.storage
+
 
+
Storage.SignUrlOption - Class in com.google.gcloud.storage
+
 
+
storageClass(BucketInfo.StorageClass) - Method in class com.google.gcloud.storage.BucketInfo.Builder
+
 
+
storageClass() - Method in class com.google.gcloud.storage.BucketInfo
+
 
+
StorageExample - Class in com.google.gcloud.examples
+
+
An example of using the Google Cloud Storage.
+
+
StorageExample() - Constructor for class com.google.gcloud.examples.StorageExample
+
 
+
StorageException - Exception in com.google.gcloud.storage
+
+
Storage service exception.
+
+
StorageException(int, String, boolean) - Constructor for exception com.google.gcloud.storage.StorageException
+
 
+
StorageFactory - Class in com.google.gcloud.storage
+
+
A base class for Storage factories.
+
+
StorageFactory() - Constructor for class com.google.gcloud.storage.StorageFactory
+
 
+
StorageOptions - Class in com.google.gcloud.storage
+
 
+
StorageOptions.Builder - Class in com.google.gcloud.storage
+
 
+
StorageRpc - Interface in com.google.gcloud.spi
+
 
+
StorageRpc.BatchRequest - Class in com.google.gcloud.spi
+
 
+
StorageRpc.BatchResponse - Class in com.google.gcloud.spi
+
 
+
StorageRpc.Option - Enum in com.google.gcloud.spi
+
 
+
StorageRpc.Tuple<X,Y> - Class in com.google.gcloud.spi
+
 
+
StorageRpcFactory - Interface in com.google.gcloud.spi
+
+
An interface for Storage RPC factory.
+
+
StringValue - Class in com.google.gcloud.datastore
+
 
+
StringValue(String) - Constructor for class com.google.gcloud.datastore.StringValue
+
 
+
StringValue.Builder - Class in com.google.gcloud.datastore
+
 
+
StructuredQuery<V> - Class in com.google.gcloud.datastore
+
+
An implementation of a Google Cloud Datastore Query that can be constructed by providing + all the specific query elements.
+
+
StructuredQuery.CompositeFilter - Class in com.google.gcloud.datastore
+
 
+
StructuredQuery.EntityQueryBuilder - Class in com.google.gcloud.datastore
+
 
+
StructuredQuery.Filter - Class in com.google.gcloud.datastore
+
 
+
StructuredQuery.KeyQueryBuilder - Class in com.google.gcloud.datastore
+
 
+
StructuredQuery.OrderBy - Class in com.google.gcloud.datastore
+
 
+
StructuredQuery.OrderBy.Direction - Enum in com.google.gcloud.datastore
+
 
+
StructuredQuery.Projection - Class in com.google.gcloud.datastore
+
 
+
StructuredQuery.Projection.Aggregate - Enum in com.google.gcloud.datastore
+
 
+
StructuredQuery.ProjectionEntityQueryBuilder - Class in com.google.gcloud.datastore
+
 
+
StructuredQuery.PropertyFilter - Class in com.google.gcloud.datastore
+
 
+
submit() - Method in interface com.google.gcloud.datastore.Batch
+
+
Submit the batch to the Datastore.
+
+
+ + + +

T

+
+
target(BlobInfo) - Method in class com.google.gcloud.storage.Storage.ComposeRequest.Builder
+
 
+
target() - Method in class com.google.gcloud.storage.Storage.ComposeRequest
+
 
+
target(BlobInfo) - Method in class com.google.gcloud.storage.Storage.CopyRequest.Builder
+
 
+
target() - Method in class com.google.gcloud.storage.Storage.CopyRequest
+
 
+
targetOptions(Storage.BlobTargetOption...) - Method in class com.google.gcloud.storage.Storage.ComposeRequest.Builder
+
 
+
targetOptions() - Method in class com.google.gcloud.storage.Storage.ComposeRequest
+
 
+
targetOptions(Storage.BlobTargetOption...) - Method in class com.google.gcloud.storage.Storage.CopyRequest.Builder
+
 
+
targetOptions() - Method in class com.google.gcloud.storage.Storage.CopyRequest
+
 
+
timeMillis() - Method in class com.google.gcloud.storage.BucketInfo.CreatedBeforeDeleteRule
+
 
+
timestampMicroseconds() - Method in class com.google.gcloud.datastore.DateTime
+
 
+
timestampMillis() - Method in class com.google.gcloud.datastore.DateTime
+
 
+
toAdd() - Method in class com.google.gcloud.datastore.BaseDatastoreBatchWriter
+
 
+
toAddAutoId() - Method in class com.google.gcloud.datastore.BaseDatastoreBatchWriter
+
 
+
toBuilder() - Method in class com.google.gcloud.datastore.BlobValue
+
 
+
toBuilder() - Method in class com.google.gcloud.datastore.BooleanValue
+
 
+
toBuilder() - Method in class com.google.gcloud.datastore.DatastoreOptions
+
 
+
toBuilder() - Method in class com.google.gcloud.datastore.DateTimeValue
+
 
+
toBuilder() - Method in class com.google.gcloud.datastore.DoubleValue
+
 
+
toBuilder() - Method in class com.google.gcloud.datastore.EntityValue
+
 
+
toBuilder() - Method in class com.google.gcloud.datastore.KeyValue
+
 
+
toBuilder() - Method in class com.google.gcloud.datastore.ListValue
+
 
+
toBuilder() - Method in class com.google.gcloud.datastore.LongValue
+
 
+
toBuilder() - Method in class com.google.gcloud.datastore.NullValue
+
 
+
toBuilder() - Method in class com.google.gcloud.datastore.RawValue
+
 
+
toBuilder() - Method in class com.google.gcloud.datastore.StringValue
+
 
+
toBuilder() - Method in class com.google.gcloud.datastore.Value
+
 
+
toBuilder() - Method in class com.google.gcloud.ServiceOptions
+
 
+
toBuilder() - Method in class com.google.gcloud.storage.BlobInfo
+
 
+
toBuilder() - Method in class com.google.gcloud.storage.BucketInfo
+
 
+
toBuilder() - Method in class com.google.gcloud.storage.Cors
+
 
+
toBuilder() - Method in class com.google.gcloud.storage.StorageOptions
+
 
+
toByteArray() - Method in class com.google.gcloud.datastore.Blob
+
+
Returns a copy as byte array.
+
+
toCalendar() - Method in class com.google.gcloud.datastore.DateTime
+
 
+
toDate() - Method in class com.google.gcloud.datastore.DateTime
+
 
+
toDelete() - Method in class com.google.gcloud.datastore.BaseDatastoreBatchWriter
+
 
+
toDelete - Variable in class com.google.gcloud.spi.StorageRpc.BatchRequest
+
 
+
toDelete() - Method in class com.google.gcloud.storage.BatchRequest
+
 
+
toGet - Variable in class com.google.gcloud.spi.StorageRpc.BatchRequest
+
 
+
toGet() - Method in class com.google.gcloud.storage.BatchRequest
+
 
+
toMutationPb() - Method in class com.google.gcloud.datastore.BaseDatastoreBatchWriter
+
 
+
toPb() - Method in class com.google.gcloud.datastore.BaseEntity
+
 
+
toPb() - Method in class com.google.gcloud.datastore.Blob
+
 
+
toPb() - Method in class com.google.gcloud.datastore.Cursor
+
 
+
toPb() - Method in class com.google.gcloud.datastore.DateTime
+
 
+
toPb() - Method in class com.google.gcloud.datastore.GqlQuery
+
 
+
toPb() - Method in class com.google.gcloud.datastore.PathElement
+
 
+
toPb() - Method in class com.google.gcloud.datastore.StructuredQuery.CompositeFilter
+
 
+
toPb() - Method in class com.google.gcloud.datastore.StructuredQuery.Filter
+
 
+
toPb() - Method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
toPb() - Method in class com.google.gcloud.datastore.StructuredQuery
+
 
+
toPb() - Method in class com.google.gcloud.datastore.Value
+
 
+
toPut() - Method in class com.google.gcloud.datastore.BaseDatastoreBatchWriter
+
 
+
toString() - Method in class com.google.gcloud.datastore.Blob
+
 
+
toString() - Method in class com.google.gcloud.datastore.Cursor
+
 
+
toString() - Method in class com.google.gcloud.datastore.DateTime
+
 
+
toString() - Method in class com.google.gcloud.datastore.Query.ResultType
+
 
+
toString() - Method in class com.google.gcloud.datastore.Query
+
 
+
toString() - Method in class com.google.gcloud.datastore.StructuredQuery.CompositeFilter
+
 
+
toString() - Method in class com.google.gcloud.datastore.StructuredQuery.Projection
+
 
+
toString() - Method in class com.google.gcloud.datastore.StructuredQuery.PropertyFilter
+
 
+
toString() - Method in class com.google.gcloud.RetryHelper
+
 
+
toString() - Method in class com.google.gcloud.RetryParams
+
 
+
toString() - Method in class com.google.gcloud.storage.Acl.Entity
+
 
+
toString() - Method in class com.google.gcloud.storage.BatchResponse.Result
+
 
+
toString() - Method in class com.google.gcloud.storage.BlobInfo
+
 
+
toString() - Method in class com.google.gcloud.storage.BucketInfo.Location
+
 
+
toString() - Method in class com.google.gcloud.storage.BucketInfo.StorageClass
+
 
+
toString() - Method in class com.google.gcloud.storage.BucketInfo
+
 
+
toString() - Method in class com.google.gcloud.storage.Cors.Origin
+
 
+
totalRetryPeriodMillis(long) - Method in class com.google.gcloud.RetryParams.Builder
+
+
Sets totalRetryPeriodMillis.
+
+
toUpdate() - Method in class com.google.gcloud.datastore.BaseDatastoreBatchWriter
+
 
+
toUpdate - Variable in class com.google.gcloud.spi.StorageRpc.BatchRequest
+
 
+
toUpdate() - Method in class com.google.gcloud.storage.BatchRequest
+
 
+
toUrlSafe() - Method in class com.google.gcloud.datastore.Cursor
+
+
Returns the cursor in an encoded form that can be used as part of a URL.
+
+
toUrlSafe() - Method in class com.google.gcloud.datastore.Key
+
+
Returns the key in an encoded form that can be used as part of a URL.
+
+
Transaction - Interface in com.google.gcloud.datastore
+
+
A Google cloud datastore transaction.
+
+
Transaction.Response - Interface in com.google.gcloud.datastore
+
 
+
TransactionOption - Class in com.google.gcloud.datastore
+
 
+
TransactionOption.ForceWrites - Class in com.google.gcloud.datastore
+
 
+
TransactionOption.IsolationLevel - Class in com.google.gcloud.datastore
+
 
+
TransactionOption.IsolationLevel.Level - Enum in com.google.gcloud.datastore
+
 
+
type() - Method in class com.google.gcloud.datastore.Value
+
 
+
type() - Method in class com.google.gcloud.storage.Acl.Entity
+
 
+
type() - Method in class com.google.gcloud.storage.BucketInfo.DeleteRule
+
 
+
+ + + +

U

+
+
update(Entity...) - Method in class com.google.gcloud.datastore.BaseDatastoreBatchWriter
+
 
+
update(Entity...) - Method in interface com.google.gcloud.datastore.Datastore
+
+
A Datastore update operation.
+
+
update(Entity...) - Method in interface com.google.gcloud.datastore.DatastoreWriter
+
+
A Datastore update operation.
+
+
update(BlobInfo, Storage.BlobTargetOption...) - Method in class com.google.gcloud.storage.BatchRequest.Builder
+
+
Update the given blob.
+
+
update(BucketInfo, Storage.BucketTargetOption...) - Method in interface com.google.gcloud.storage.Storage
+
+
Update bucket information.
+
+
update(BlobInfo, Storage.BlobTargetOption...) - Method in interface com.google.gcloud.storage.Storage
+
+
Update blob information.
+
+
updates - Variable in class com.google.gcloud.spi.StorageRpc.BatchResponse
+
 
+
updates() - Method in class com.google.gcloud.storage.BatchResponse
+
+
Returns the results for the update operations using the request order.
+
+
updateTime() - Method in class com.google.gcloud.storage.BlobInfo
+
 
+
us() - Static method in class com.google.gcloud.storage.BucketInfo.Location
+
 
+
User(String) - Constructor for class com.google.gcloud.storage.Acl.User
+
 
+
+ + + +

V

+
+
validateActive() - Method in class com.google.gcloud.datastore.BaseDatastoreBatchWriter
+
 
+
Value<V> - Class in com.google.gcloud.datastore
+
+
Base class for all Google Cloud Datastore value types.
+
+
value() - Method in enum com.google.gcloud.spi.StorageRpc.Option
+
 
+
value() - Method in class com.google.gcloud.storage.Acl.Entity
+
 
+
value() - Method in class com.google.gcloud.storage.BucketInfo.Location
+
 
+
value() - Method in class com.google.gcloud.storage.BucketInfo.StorageClass
+
 
+
value() - Method in class com.google.gcloud.storage.Cors.Origin
+
 
+
ValueBuilder<V,P extends Value<V>,B extends ValueBuilder<V,P,B>> - Interface in com.google.gcloud.datastore
+
+
A common interface for Value builders.
+
+
valueOf(String) - Static method in enum com.google.gcloud.datastore.DatastoreException.Code
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum com.google.gcloud.datastore.StructuredQuery.OrderBy.Direction
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum com.google.gcloud.datastore.StructuredQuery.Projection.Aggregate
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum com.google.gcloud.datastore.TransactionOption.IsolationLevel.Level
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum com.google.gcloud.datastore.ValueType
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum com.google.gcloud.ExceptionHandler.Interceptor.RetryResult
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum com.google.gcloud.spi.DatastoreRpc.DatastoreRpcException.Reason
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum com.google.gcloud.spi.StorageRpc.Option
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum com.google.gcloud.storage.Acl.Entity.Type
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum com.google.gcloud.storage.Acl.Project.ProjectRole
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum com.google.gcloud.storage.Acl.Role
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum com.google.gcloud.storage.BucketInfo.DeleteRule.Type
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum com.google.gcloud.storage.BucketInfo.Location.Option
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum com.google.gcloud.storage.BucketInfo.StorageClass.Option
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum com.google.gcloud.storage.HttpMethod
+
+
Returns the enum constant of this type with the specified name.
+
+
valueOf(String) - Static method in enum com.google.gcloud.storage.Storage.PredefinedAcl
+
+
Returns the enum constant of this type with the specified name.
+
+
values() - Static method in enum com.google.gcloud.datastore.DatastoreException.Code
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum com.google.gcloud.datastore.StructuredQuery.OrderBy.Direction
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum com.google.gcloud.datastore.StructuredQuery.Projection.Aggregate
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum com.google.gcloud.datastore.TransactionOption.IsolationLevel.Level
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum com.google.gcloud.datastore.ValueType
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum com.google.gcloud.ExceptionHandler.Interceptor.RetryResult
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum com.google.gcloud.spi.DatastoreRpc.DatastoreRpcException.Reason
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum com.google.gcloud.spi.StorageRpc.Option
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum com.google.gcloud.storage.Acl.Entity.Type
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum com.google.gcloud.storage.Acl.Project.ProjectRole
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum com.google.gcloud.storage.Acl.Role
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum com.google.gcloud.storage.BucketInfo.DeleteRule.Type
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum com.google.gcloud.storage.BucketInfo.Location.Option
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum com.google.gcloud.storage.BucketInfo.StorageClass.Option
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum com.google.gcloud.storage.HttpMethod
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
values() - Static method in enum com.google.gcloud.storage.Storage.PredefinedAcl
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
ValueType - Enum in com.google.gcloud.datastore
+
+
The type of a Datastore property.
+
+
versioningEnabled(Boolean) - Method in class com.google.gcloud.storage.BucketInfo.Builder
+
 
+
versioningEnabled() - Method in class com.google.gcloud.storage.BucketInfo
+
 
+
+ + + +

W

+
+
withContentType() - Static method in class com.google.gcloud.storage.Storage.SignUrlOption
+
+
Use it if signature should include the blob's content-type.
+
+
withMd5() - Static method in class com.google.gcloud.storage.Storage.SignUrlOption
+
+
Use it if signature should include the blob's md5.
+
+
write(String, byte[], int, StorageObject, long, int, boolean) - Method in class com.google.gcloud.spi.DefaultStorageRpc
+
 
+
write(String, byte[], int, StorageObject, long, int, boolean) - Method in interface com.google.gcloud.spi.StorageRpc
+
 
+
writer(BlobInfo, Storage.BlobTargetOption...) - Method in interface com.google.gcloud.storage.Storage
+
+
Create a blob and return a channel for writing its content.
+
+
+ + + +

X

+
+
x() - Method in class com.google.gcloud.spi.StorageRpc.Tuple
+
 
+
+ + + +

Y

+
+
y() - Method in class com.google.gcloud.spi.StorageRpc.Tuple
+
 
+
+A B C D E F G H I K L M N O P Q R S T U V W X Y 
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/index.html b/site/0.0.7/apidocs/index.html new file mode 100644 index 000000000000..b4cee0a52eec --- /dev/null +++ b/site/0.0.7/apidocs/index.html @@ -0,0 +1,75 @@ + + + + + + +GCloud Java 0.0.7-SNAPSHOT API + + + + + + + + + +<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/site/0.0.7/apidocs/overview-frame.html b/site/0.0.7/apidocs/overview-frame.html new file mode 100644 index 000000000000..19d60080149d --- /dev/null +++ b/site/0.0.7/apidocs/overview-frame.html @@ -0,0 +1,26 @@ + + + + + + +Overview List (GCloud Java 0.0.7-SNAPSHOT API) + + + + + +
All Classes
+
+

Packages

+ +
+

 

+ + diff --git a/site/0.0.7/apidocs/overview-summary.html b/site/0.0.7/apidocs/overview-summary.html new file mode 100644 index 000000000000..87a2f69a6b3d --- /dev/null +++ b/site/0.0.7/apidocs/overview-summary.html @@ -0,0 +1,158 @@ + + + + + + +Overview (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

GCloud Java 0.0.7-SNAPSHOT API

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Packages 
PackageDescription
com.google.gcloud 
com.google.gcloud.datastore +
A client to the Google Cloud Datastore.
+
com.google.gcloud.examples 
com.google.gcloud.spi 
com.google.gcloud.storage +
A client to Google Cloud Storage.
+
+
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/overview-tree.html b/site/0.0.7/apidocs/overview-tree.html new file mode 100644 index 000000000000..42a0f56ceff7 --- /dev/null +++ b/site/0.0.7/apidocs/overview-tree.html @@ -0,0 +1,483 @@ + + + + + + +Class Hierarchy (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Hierarchy For All Packages

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +

Interface Hierarchy

+ +

Enum Hierarchy

+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/package-list b/site/0.0.7/apidocs/package-list new file mode 100644 index 000000000000..a46b575328b1 --- /dev/null +++ b/site/0.0.7/apidocs/package-list @@ -0,0 +1,5 @@ +com.google.gcloud +com.google.gcloud.datastore +com.google.gcloud.examples +com.google.gcloud.spi +com.google.gcloud.storage diff --git a/site/0.0.7/apidocs/script.js b/site/0.0.7/apidocs/script.js new file mode 100644 index 000000000000..b34635693143 --- /dev/null +++ b/site/0.0.7/apidocs/script.js @@ -0,0 +1,30 @@ +function show(type) +{ + count = 0; + for (var key in methods) { + var row = document.getElementById(key); + if ((methods[key] & type) != 0) { + row.style.display = ''; + row.className = (count++ % 2) ? rowColor : altColor; + } + else + row.style.display = 'none'; + } + updateTabs(type); +} + +function updateTabs(type) +{ + for (var value in tabs) { + var sNode = document.getElementById(tabs[value][0]); + var spanNode = sNode.firstChild; + if (value == type) { + sNode.className = activeTableTab; + spanNode.innerHTML = tabs[value][1]; + } + else { + sNode.className = tableTab; + spanNode.innerHTML = "" + tabs[value][1] + ""; + } + } +} diff --git a/site/0.0.7/apidocs/serialized-form.html b/site/0.0.7/apidocs/serialized-form.html new file mode 100644 index 000000000000..c544cffc74c5 --- /dev/null +++ b/site/0.0.7/apidocs/serialized-form.html @@ -0,0 +1,1679 @@ + + + + + + +Serialized Form (GCloud Java 0.0.7-SNAPSHOT API) + + + + + + + + +
+ + +
Skip navigation links
+ + + + +
+ + +
+

Serialized Form

+
+
+ +
+ +
+ + +
Skip navigation links
+ + + + +
+ + +

Copyright © 2015 Google. All rights reserved.

+ + diff --git a/site/0.0.7/apidocs/stylesheet.css b/site/0.0.7/apidocs/stylesheet.css new file mode 100644 index 000000000000..cebb4fd8d562 --- /dev/null +++ b/site/0.0.7/apidocs/stylesheet.css @@ -0,0 +1,574 @@ +/* Javadoc style sheet */ +/* +Overall document style +*/ + +@import url('resources/fonts/dejavu.css'); + +body { + background-color:#ffffff; + color:#353833; + font-family:'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size:14px; + margin:0; +} +a:link, a:visited { + text-decoration:none; + color:#4A6782; +} +a:hover, a:focus { + text-decoration:none; + color:#bb7a2a; +} +a:active { + text-decoration:none; + color:#4A6782; +} +a[name] { + color:#353833; +} +a[name]:hover { + text-decoration:none; + color:#353833; +} +pre { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; +} +h1 { + font-size:20px; +} +h2 { + font-size:18px; +} +h3 { + font-size:16px; + font-style:italic; +} +h4 { + font-size:13px; +} +h5 { + font-size:12px; +} +h6 { + font-size:11px; +} +ul { + list-style-type:disc; +} +code, tt { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + padding-top:4px; + margin-top:8px; + line-height:1.4em; +} +dt code { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + padding-top:4px; +} +table tr td dt code { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + vertical-align:top; + padding-top:4px; +} +sup { + font-size:8px; +} +/* +Document title and Copyright styles +*/ +.clear { + clear:both; + height:0px; + overflow:hidden; +} +.aboutLanguage { + float:right; + padding:0px 21px; + font-size:11px; + z-index:200; + margin-top:-9px; +} +.legalCopy { + margin-left:.5em; +} +.bar a, .bar a:link, .bar a:visited, .bar a:active { + color:#FFFFFF; + text-decoration:none; +} +.bar a:hover, .bar a:focus { + color:#bb7a2a; +} +.tab { + background-color:#0066FF; + color:#ffffff; + padding:8px; + width:5em; + font-weight:bold; +} +/* +Navigation bar styles +*/ +.bar { + background-color:#4D7A97; + color:#FFFFFF; + padding:.8em .5em .4em .8em; + height:auto;/*height:1.8em;*/ + font-size:11px; + margin:0; +} +.topNav { + background-color:#4D7A97; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + height:2.8em; + padding-top:10px; + overflow:hidden; + font-size:12px; +} +.bottomNav { + margin-top:10px; + background-color:#4D7A97; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + height:2.8em; + padding-top:10px; + overflow:hidden; + font-size:12px; +} +.subNav { + background-color:#dee3e9; + float:left; + width:100%; + overflow:hidden; + font-size:12px; +} +.subNav div { + clear:left; + float:left; + padding:0 0 5px 6px; + text-transform:uppercase; +} +ul.navList, ul.subNavList { + float:left; + margin:0 25px 0 0; + padding:0; +} +ul.navList li{ + list-style:none; + float:left; + padding: 5px 6px; + text-transform:uppercase; +} +ul.subNavList li{ + list-style:none; + float:left; +} +.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited { + color:#FFFFFF; + text-decoration:none; + text-transform:uppercase; +} +.topNav a:hover, .bottomNav a:hover { + text-decoration:none; + color:#bb7a2a; + text-transform:uppercase; +} +.navBarCell1Rev { + background-color:#F8981D; + color:#253441; + margin: auto 5px; +} +.skipNav { + position:absolute; + top:auto; + left:-9999px; + overflow:hidden; +} +/* +Page header and footer styles +*/ +.header, .footer { + clear:both; + margin:0 20px; + padding:5px 0 0 0; +} +.indexHeader { + margin:10px; + position:relative; +} +.indexHeader span{ + margin-right:15px; +} +.indexHeader h1 { + font-size:13px; +} +.title { + color:#2c4557; + margin:10px 0; +} +.subTitle { + margin:5px 0 0 0; +} +.header ul { + margin:0 0 15px 0; + padding:0; +} +.footer ul { + margin:20px 0 5px 0; +} +.header ul li, .footer ul li { + list-style:none; + font-size:13px; +} +/* +Heading styles +*/ +div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 { + background-color:#dee3e9; + border:1px solid #d0d9e0; + margin:0 0 6px -8px; + padding:7px 5px; +} +ul.blockList ul.blockList ul.blockList li.blockList h3 { + background-color:#dee3e9; + border:1px solid #d0d9e0; + margin:0 0 6px -8px; + padding:7px 5px; +} +ul.blockList ul.blockList li.blockList h3 { + padding:0; + margin:15px 0; +} +ul.blockList li.blockList h2 { + padding:0px 0 20px 0; +} +/* +Page layout container styles +*/ +.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer { + clear:both; + padding:10px 20px; + position:relative; +} +.indexContainer { + margin:10px; + position:relative; + font-size:12px; +} +.indexContainer h2 { + font-size:13px; + padding:0 0 3px 0; +} +.indexContainer ul { + margin:0; + padding:0; +} +.indexContainer ul li { + list-style:none; + padding-top:2px; +} +.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt { + font-size:12px; + font-weight:bold; + margin:10px 0 0 0; + color:#4E4E4E; +} +.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd { + margin:5px 0 10px 0px; + font-size:14px; + font-family:'DejaVu Sans Mono',monospace; +} +.serializedFormContainer dl.nameValue dt { + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; +} +.serializedFormContainer dl.nameValue dd { + margin:0 0 0 1px; + font-size:1.1em; + display:inline; +} +/* +List styles +*/ +ul.horizontal li { + display:inline; + font-size:0.9em; +} +ul.inheritance { + margin:0; + padding:0; +} +ul.inheritance li { + display:inline; + list-style:none; +} +ul.inheritance li ul.inheritance { + margin-left:15px; + padding-left:15px; + padding-top:1px; +} +ul.blockList, ul.blockListLast { + margin:10px 0 10px 0; + padding:0; +} +ul.blockList li.blockList, ul.blockListLast li.blockList { + list-style:none; + margin-bottom:15px; + line-height:1.4; +} +ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList { + padding:0px 20px 5px 10px; + border:1px solid #ededed; + background-color:#f8f8f8; +} +ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList { + padding:0 0 5px 8px; + background-color:#ffffff; + border:none; +} +ul.blockList ul.blockList ul.blockList ul.blockList li.blockList { + margin-left:0; + padding-left:0; + padding-bottom:15px; + border:none; +} +ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast { + list-style:none; + border-bottom:none; + padding-bottom:0; +} +table tr td dl, table tr td dl dt, table tr td dl dd { + margin-top:0; + margin-bottom:1px; +} +/* +Table styles +*/ +.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary { + width:100%; + border-left:1px solid #EEE; + border-right:1px solid #EEE; + border-bottom:1px solid #EEE; +} +.overviewSummary, .memberSummary { + padding:0px; +} +.overviewSummary caption, .memberSummary caption, .typeSummary caption, +.useSummary caption, .constantsSummary caption, .deprecatedSummary caption { + position:relative; + text-align:left; + background-repeat:no-repeat; + color:#253441; + font-weight:bold; + clear:none; + overflow:hidden; + padding:0px; + padding-top:10px; + padding-left:1px; + margin:0px; + white-space:pre; +} +.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link, +.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link, +.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover, +.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover, +.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active, +.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active, +.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited, +.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited { + color:#FFFFFF; +} +.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span, +.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + padding-bottom:7px; + display:inline-block; + float:left; + background-color:#F8981D; + border: none; + height:16px; +} +.memberSummary caption span.activeTableTab span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + margin-right:3px; + display:inline-block; + float:left; + background-color:#F8981D; + height:16px; +} +.memberSummary caption span.tableTab span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + margin-right:3px; + display:inline-block; + float:left; + background-color:#4D7A97; + height:16px; +} +.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab { + padding-top:0px; + padding-left:0px; + padding-right:0px; + background-image:none; + float:none; + display:inline; +} +.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd, +.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd { + display:none; + width:5px; + position:relative; + float:left; + background-color:#F8981D; +} +.memberSummary .activeTableTab .tabEnd { + display:none; + width:5px; + margin-right:3px; + position:relative; + float:left; + background-color:#F8981D; +} +.memberSummary .tableTab .tabEnd { + display:none; + width:5px; + margin-right:3px; + position:relative; + background-color:#4D7A97; + float:left; + +} +.overviewSummary td, .memberSummary td, .typeSummary td, +.useSummary td, .constantsSummary td, .deprecatedSummary td { + text-align:left; + padding:0px 0px 12px 10px; + width:100%; +} +th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th, +td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{ + vertical-align:top; + padding-right:0px; + padding-top:8px; + padding-bottom:3px; +} +th.colFirst, th.colLast, th.colOne, .constantsSummary th { + background:#dee3e9; + text-align:left; + padding:8px 3px 3px 7px; +} +td.colFirst, th.colFirst { + white-space:nowrap; + font-size:13px; +} +td.colLast, th.colLast { + font-size:13px; +} +td.colOne, th.colOne { + font-size:13px; +} +.overviewSummary td.colFirst, .overviewSummary th.colFirst, +.overviewSummary td.colOne, .overviewSummary th.colOne, +.memberSummary td.colFirst, .memberSummary th.colFirst, +.memberSummary td.colOne, .memberSummary th.colOne, +.typeSummary td.colFirst{ + width:25%; + vertical-align:top; +} +td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover { + font-weight:bold; +} +.tableSubHeadingColor { + background-color:#EEEEFF; +} +.altColor { + background-color:#FFFFFF; +} +.rowColor { + background-color:#EEEEEF; +} +/* +Content styles +*/ +.description pre { + margin-top:0; +} +.deprecatedContent { + margin:0; + padding:10px 0; +} +.docSummary { + padding:0; +} + +ul.blockList ul.blockList ul.blockList li.blockList h3 { + font-style:normal; +} + +div.block { + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; +} + +td.colLast div { + padding-top:0px; +} + + +td.colLast a { + padding-bottom:3px; +} +/* +Formatting effect styles +*/ +.sourceLineNo { + color:green; + padding:0 30px 0 0; +} +h1.hidden { + visibility:hidden; + overflow:hidden; + font-size:10px; +} +.block { + display:block; + margin:3px 10px 2px 0px; + color:#474747; +} +.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink, +.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel, +.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink { + font-weight:bold; +} +.deprecationComment, .emphasizedPhrase, .interfaceName { + font-style:italic; +} + +div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase, +div.block div.block span.interfaceName { + font-style:normal; +} + +div.contentContainer ul.blockList li.blockList h2{ + padding-bottom:0px; +} diff --git a/site/0.0.7/changelog.html b/site/0.0.7/changelog.html new file mode 100644 index 000000000000..6788b1e03240 --- /dev/null +++ b/site/0.0.7/changelog.html @@ -0,0 +1,212 @@ + + + + + + + + + GCloud Java – Change Log Report + + + + + + + + + + + + + +
+ + + + + +
+
+ +
+ + +
+ +
+

Change Log Report

+

Total number of changed sets: 1

+
+

Changes between 2015-07-18 and 2015-08-18

+

Total commits: 7
Total number of files changed: 52

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TimestampAuthorDetails
2015-08-17 12:03:19Ajay Kannan <ajaykannan@google.com>src/site/resources/index.html v a5f8276a4a47addd297f8e8bf5cb5ebef97f2eed

Removing 'install' terminology
2015-08-14 10:59:01Ajay Kannan <ajaykannan@google.com>src/site/resources/img/icon-lang-java.svg v 0aadec01a4ba8eebbb832b179c80c9129a48567a

removing extra files
2015-08-14 10:58:08Ajay Kannan <ajaykannan@google.com>src/resources/css/github.min.css v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/resources/css/normalize.css v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/resources/css/site.css v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/resources/img/icon-arrow-bullet.svg v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/resources/img/icon-dropdown-faq.svg v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/resources/img/icon-dropdown.svg v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/resources/img/icon-lang-java.svg v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/resources/img/icon-lang-nodejs.svg v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/resources/img/icon-lang-python.svg v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/resources/img/icon-lang-ruby.svg v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/resources/img/icon-link-github.svg v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/resources/img/icon-link-package-manager.svg v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/resources/img/icon-link-stackoverflow.svg v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/resources/img/icon-menu.svg v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/resources/img/icon-table-check.svg v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/resources/img/lang-bg.png v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/resources/img/logo-full.svg v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/resources/img/logo.svg v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/resources/index.html v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/resources/js/main.js v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/resources/js/plugins.js v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/resources/js/vendor/jquery-1.10.2.min.js v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/resources/js/vendor/modernizr-2.6.2.min.js v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/resources/js/vendor/prettify.js v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/site/resources/css/github.min.css v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/site/resources/css/normalize.css v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/site/resources/css/site.css v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/site/resources/img/icon-arrow-bullet.svg v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/site/resources/img/icon-dropdown-faq.svg v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/site/resources/img/icon-dropdown.svg v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/site/resources/img/icon-lang-java.svg v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/site/resources/img/icon-lang-nodejs.svg v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/site/resources/img/icon-lang-python.svg v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/site/resources/img/icon-lang-ruby.svg v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/site/resources/img/icon-link-github.svg v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/site/resources/img/icon-link-package-manager.svg v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/site/resources/img/icon-link-stackoverflow.svg v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/site/resources/img/icon-menu.svg v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/site/resources/img/icon-table-check.svg v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/site/resources/img/lang-bg.png v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/site/resources/img/logo-full.svg v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/site/resources/img/logo.svg v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/site/resources/js/main.js v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/site/resources/js/plugins.js v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/site/resources/js/vendor/jquery-1.10.2.min.js v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/site/resources/js/vendor/modernizr-2.6.2.min.js v f15d4ed8d1640e7478a7886b7b38202be0762a65
src/site/resources/js/vendor/prettify.js v f15d4ed8d1640e7478a7886b7b38202be0762a65

changing location of landing page resources
2015-08-14 10:54:29Ajay Kannan <ajaykannan@google.com>src/site/resources/index.html v 4130ebad4963e5133061d9351356ba42b75a96ef

changed css source in landing page
2015-08-14 10:06:59Ajay Kannan <ajaykannan@google.com>src/resources/index.html~ v 3b4c7406fa2daf8fbf18ee50f83f531517b0e831

removing backup file
2015-08-14 10:06:20Ajay Kannan <ajaykannan@google.com>src/resources/css/github.min.css v f5d4b4ee1201b62ce798e1364f28232687c129d8
src/resources/css/normalize.css v f5d4b4ee1201b62ce798e1364f28232687c129d8
src/resources/css/site.css v f5d4b4ee1201b62ce798e1364f28232687c129d8
src/resources/img/icon-arrow-bullet.svg v f5d4b4ee1201b62ce798e1364f28232687c129d8
src/resources/img/icon-dropdown-faq.svg v f5d4b4ee1201b62ce798e1364f28232687c129d8
src/resources/img/icon-dropdown.svg v f5d4b4ee1201b62ce798e1364f28232687c129d8
src/resources/img/icon-lang-java.svg v f5d4b4ee1201b62ce798e1364f28232687c129d8
src/resources/img/icon-lang-nodejs.svg v f5d4b4ee1201b62ce798e1364f28232687c129d8
src/resources/img/icon-lang-python.svg v f5d4b4ee1201b62ce798e1364f28232687c129d8
src/resources/img/icon-lang-ruby.svg v f5d4b4ee1201b62ce798e1364f28232687c129d8
src/resources/img/icon-link-github.svg v f5d4b4ee1201b62ce798e1364f28232687c129d8
src/resources/img/icon-link-package-manager.svg v f5d4b4ee1201b62ce798e1364f28232687c129d8
src/resources/img/icon-link-stackoverflow.svg v f5d4b4ee1201b62ce798e1364f28232687c129d8
src/resources/img/icon-menu.svg v f5d4b4ee1201b62ce798e1364f28232687c129d8
src/resources/img/icon-table-check.svg v f5d4b4ee1201b62ce798e1364f28232687c129d8
src/resources/img/lang-bg.png v f5d4b4ee1201b62ce798e1364f28232687c129d8
src/resources/img/logo-full.svg v f5d4b4ee1201b62ce798e1364f28232687c129d8
src/resources/img/logo.svg v f5d4b4ee1201b62ce798e1364f28232687c129d8
src/resources/index.html v f5d4b4ee1201b62ce798e1364f28232687c129d8
src/resources/index.html~ v f5d4b4ee1201b62ce798e1364f28232687c129d8
src/resources/js/main.js v f5d4b4ee1201b62ce798e1364f28232687c129d8
src/resources/js/plugins.js v f5d4b4ee1201b62ce798e1364f28232687c129d8
src/resources/js/vendor/jquery-1.10.2.min.js v f5d4b4ee1201b62ce798e1364f28232687c129d8
src/resources/js/vendor/modernizr-2.6.2.min.js v f5d4b4ee1201b62ce798e1364f28232687c129d8
src/resources/js/vendor/prettify.js v f5d4b4ee1201b62ce798e1364f28232687c129d8

creating a landing page, as per issue 66
2015-07-30 15:18:41aozarov <aozarov@gmail.com>gcloud-java-core/src/main/java/com/google/gcloud/ServiceOptions.java v cbd1b26de2010578a833ab9c54180c5b437b211b
gcloud-java-storage/src/main/java/com/google/gcloud/storage/StorageImpl.java v cbd1b26de2010578a833ab9c54180c5b437b211b
pom.xml v cbd1b26de2010578a833ab9c54180c5b437b211b

1. Fix issue #121 and replace default_project_id environment name with GCLOUD_PROJECT
2. Fix a null pointer bug with listing
3. Update maven dependencies
+
+
+
+ +
+ + + + diff --git a/site/0.0.7/checkstyle-aggregate.html b/site/0.0.7/checkstyle-aggregate.html new file mode 100644 index 000000000000..6094f0b44b40 --- /dev/null +++ b/site/0.0.7/checkstyle-aggregate.html @@ -0,0 +1,1271 @@ + + + + + + + + + GCloud Java – Checkstyle Results + + + + + + + + + + + + + +
+ + + + + +
+
+ +
+ + +
+ +
+

Checkstyle Results

+

The following document contains the results of Checkstyle 6.8.1 with checkstyle.xml ruleset. rss feed

+
+

Summary

+ + + + + + + + + + +
Files Info Warnings Errors
870870
+
+

Files

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
File I W E
com/google/gcloud/AuthCredentials.java010
com/google/gcloud/ServiceOptions.java020
com/google/gcloud/datastore/BaseEntity.java020
com/google/gcloud/datastore/Blob.java010
com/google/gcloud/datastore/Datastore.java040
com/google/gcloud/datastore/DatastoreBatchWriter.java020
com/google/gcloud/datastore/DatastoreImpl.java010
com/google/gcloud/datastore/DateTime.java010
com/google/gcloud/datastore/GqlQuery.java020
com/google/gcloud/datastore/Key.java040
com/google/gcloud/datastore/KeyFactory.java040
com/google/gcloud/datastore/ListValue.java020
com/google/gcloud/datastore/PathElement.java010
com/google/gcloud/datastore/StructuredQuery.java020
com/google/gcloud/examples/DatastoreExample.java050
com/google/gcloud/examples/StorageExample.java0100
com/google/gcloud/spi/DatastoreRpc.java020
com/google/gcloud/spi/DefaultDatastoreRpc.java010
com/google/gcloud/spi/DefaultStorageRpc.java040
com/google/gcloud/spi/StorageRpc.java080
com/google/gcloud/storage/Acl.java060
com/google/gcloud/storage/BatchResponse.java010
com/google/gcloud/storage/BlobInfo.java020
com/google/gcloud/storage/BlobReadChannel.java020
com/google/gcloud/storage/BlobWriteChannel.java010
com/google/gcloud/storage/BucketInfo.java030
com/google/gcloud/storage/Cors.java030
com/google/gcloud/storage/ListResult.java010
com/google/gcloud/storage/Option.java010
com/google/gcloud/storage/StorageException.java010
com/google/gcloud/storage/StorageImpl.java070
+
+

Rules

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CategoryRuleViolationsSeverity
codingOverloadMethodsDeclarationOrder5 Warning
VariableDeclarationUsageDistance1 Warning
indentationIndentation +
    +
  • throwsIndent: "4"
  • +
  • arrayInitIndent: "2"
  • +
  • caseIndent: "2"
  • +
  • basicOffset: "2"
  • +
  • braceAdjustment: "0"
  • +
  • lineWrappingIndentation: "4"
4 Warning
javadocJavadocMethod +
    +
  • scope: "public"
  • +
  • allowMissingThrowsTags: "true"
  • +
  • allowThrowsTagsForSubclasses: "true"
  • +
  • allowMissingReturnTag: "true"
  • +
  • allowMissingParamTags: "true"
  • +
  • minLineCount: "2"
  • +
  • allowedAnnotations: "Override, Test"
32 Warning
JavadocParagraph8 Warning
modifierModifierOrder7 Warning
namingLocalVariableName +
    +
  • format: "^[a-z][a-z0-9][a-zA-Z0-9]*$"
  • +
  • allowOneCharVarInForLoop: "true"
  • +
  • tokens: "VARIABLE_DEF"
1 Warning
MemberName +
    +
  • format: "^[a-z][a-z0-9][a-zA-Z0-9]*$"
3 Warning
MethodName +
    +
  • format: "^[a-z][a-z0-9][a-zA-Z0-9_]*$"
2 Warning
ParameterName +
    +
  • format: "^[a-z][a-z0-9][a-zA-Z0-9]*$"
9 Warning
sizesLineLength +
    +
  • max: "100"
  • +
  • ignorePattern: "^package.*|^import.*|a href|href|http://|https://|ftp://"
3 Warning
whitespaceEmptyLineSeparator +
    +
  • allowNoEmptyLineBetweenFields: "true"
2 Warning
OperatorWrap +
    +
  • tokens: "BAND, BOR, BSR, BXOR, DIV, EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR, LT, MINUS, MOD, NOT_EQUAL, PLUS, QUESTION, SL, SR, STAR "
  • +
  • option: "NL"
2 Warning
WhitespaceAround +
    +
  • allowEmptyConstructors: "true"
  • +
  • allowEmptyMethods: "true"
  • +
  • allowEmptyLoops: "true"
  • +
  • allowEmptyTypes: "true"
1 Warning
+
+

Details

+
+

com/google/gcloud/AuthCredentials.java

+ + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningindentationIndentation'catch' child have incorrect indentation level 7, expected level should be 8.136
+
+

com/google/gcloud/ServiceOptions.java

+ + + + + + + + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningindentationIndentation'member def type' have incorrect indentation level 3, expected level should be 4.216
 WarningindentationIndentation'method def' child have incorrect indentation level 3, expected level should be 4.216
+
+

com/google/gcloud/datastore/BaseEntity.java

+ + + + + + + + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningcodingOverloadMethodsDeclarationOrderOverload methods should not be split. Previous overloaded method located at line '83'.105
 WarningcodingOverloadMethodsDeclarationOrderOverload methods should not be split. Previous overloaded method located at line '79'.110
+
+

com/google/gcloud/datastore/Blob.java

+ + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningjavadocJavadocMethodMissing a Javadoc comment.138
+
+

com/google/gcloud/datastore/Datastore.java

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningjavadocSummaryJavadocFirst sentence should be present.84
 WarningjavadocSummaryJavadocFirst sentence should be present.91
 WarningjavadocSummaryJavadocFirst sentence should be present.98
 WarningjavadocSummaryJavadocFirst sentence should be present.105
+
+

com/google/gcloud/datastore/DatastoreBatchWriter.java

+ + + + + + + + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningjavadocSummaryJavadocFirst sentence should be present.50
 WarningjavadocSummaryJavadocFirst sentence should be present.60
+
+

com/google/gcloud/datastore/DatastoreImpl.java

+ + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningcodingOverloadMethodsDeclarationOrderOverload methods should not be split. Previous overloaded method located at line '207'.217
+
+

com/google/gcloud/datastore/DateTime.java

+ + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningjavadocJavadocMethodMissing a Javadoc comment.82
+
+

com/google/gcloud/datastore/GqlQuery.java

+ + + + + + + + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningjavadocJavadocMethodMissing a Javadoc comment.189
 WarningnamingLocalVariableNameLocal variable name 'v' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'.298
+
+

com/google/gcloud/datastore/Key.java

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningjavadocJavadocMethodMissing a Javadoc comment.77
 WarningjavadocJavadocMethodMissing a Javadoc comment.83
 WarningjavadocJavadocMethodMissing a Javadoc comment.197
 WarningjavadocJavadocMethodMissing a Javadoc comment.203
+
+

com/google/gcloud/datastore/KeyFactory.java

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningjavadocJavadocMethodMissing a Javadoc comment.34
 WarningjavadocJavadocMethodMissing a Javadoc comment.41
 WarningjavadocJavadocMethodMissing a Javadoc comment.47
 WarningjavadocJavadocMethodMissing a Javadoc comment.53
+
+

com/google/gcloud/datastore/ListValue.java

+ + + + + + + + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningjavadocJavadocMethodMissing a Javadoc comment.73
 WarningjavadocJavadocMethodMissing a Javadoc comment.80
+
+

com/google/gcloud/datastore/PathElement.java

+ + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningjavadocJavadocMethodMissing a Javadoc comment.120
+
+

com/google/gcloud/datastore/StructuredQuery.java

+ + + + + + + + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningjavadocJavadocMethodMissing a Javadoc comment.228
 WarningjavadocJavadocMethodMissing a Javadoc comment.581
+
+

com/google/gcloud/examples/DatastoreExample.java

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningjavadocJavadocParagraph<p> tag should be precede with empty line.41
 WarningjavadocJavadocParagraph<p> tag should be precede with empty line.43
 WarningwhitespaceEmptyLineSeparator'METHOD_DEF' should be separated from previous statement.62
 WarningjavadocJavadocMethodMissing a Javadoc comment.173
 WarningwhitespaceWhitespaceAroundWhitespaceAround: ':' is not preceded with whitespace.206
+
+

com/google/gcloud/examples/StorageExample.java

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningjavadocJavadocParagraph<p> tag should be precede with empty line.59
 WarningjavadocJavadocParagraph<p> tag should be precede with empty line.61
 WarningjavadocJavadocParagraphEmpty line should be followed by <p> tag on the next line.75
 WarningmodifierModifierOrder'abstract' modifier out of order with the JLS suggestions.85
 WarningmodifierModifierOrder'abstract' modifier out of order with the JLS suggestions.96
 WarningmodifierModifierOrder'abstract' modifier out of order with the JLS suggestions.112
 WarningsizesLineLengthLine is longer than 100 characters (found 105).438
 WarningwhitespaceOperatorWrap'+' should be on a new line.503
 WarningjavadocJavadocMethodMissing a Javadoc comment.539
 WarningjavadocJavadocMethodMissing a Javadoc comment.553
+
+

com/google/gcloud/spi/DatastoreRpc.java

+ + + + + + + + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningwhitespaceEmptyLineSeparator'package' should be separated from previous statement.16
 WarningjavadocJavadocMethodMissing a Javadoc comment.86
+
+

com/google/gcloud/spi/DefaultDatastoreRpc.java

+ + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningjavadocJavadocMethodMissing a Javadoc comment.64
+
+

com/google/gcloud/spi/DefaultStorageRpc.java

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningjavadocJavadocMethodMissing a Javadoc comment.80
 WarningnamingParameterNameParameter name 'e' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'.383
 WarningnamingParameterNameParameter name 'e' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'.397
 WarningnamingParameterNameParameter name 'e' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'.412
+
+

com/google/gcloud/spi/StorageRpc.java

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningnamingMemberNameMember name 'x' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'.78
 WarningnamingMemberNameMember name 'y' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'.79
 WarningnamingParameterNameParameter name 'x' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'.81
 WarningnamingParameterNameParameter name 'y' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'.81
 WarningnamingParameterNameParameter name 'x' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'.86
 WarningnamingParameterNameParameter name 'y' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'.86
 WarningnamingMethodNameMethod name 'x' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9_]*$'.90
 WarningnamingMethodNameMethod name 'y' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9_]*$'.94
+
+

com/google/gcloud/storage/Acl.java

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningmodifierModifierOrder'abstract' modifier out of order with the JLS suggestions.39
 WarningnamingParameterNameParameter name 'o' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'.64
 WarningwhitespaceOperatorWrap'&&' should be on a new line.72
 WarningnamingMemberNameMember name 'pRole' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'.182
 WarningjavadocJavadocMethodMissing a Javadoc comment.189
 WarningnamingParameterNameParameter name 'pRole' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'.189
+
+

com/google/gcloud/storage/BatchResponse.java

+ + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningjavadocJavadocMethodMissing a Javadoc comment.116
+
+

com/google/gcloud/storage/BlobInfo.java

+ + + + + + + + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningjavadocJavadocMethodMissing a Javadoc comment.224
 WarningjavadocJavadocMethodMissing a Javadoc comment.344
+
+

com/google/gcloud/storage/BlobReadChannel.java

+ + + + + + + + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningjavadocJavadocParagraphEmpty line should be followed by <p> tag on the next line.26
 WarningjavadocJavadocParagraphEmpty line should be followed by <p> tag on the next line.28
+
+

com/google/gcloud/storage/BlobWriteChannel.java

+ + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningjavadocJavadocParagraphEmpty line should be followed by <p> tag on the next line.25
+
+

com/google/gcloud/storage/BucketInfo.java

+ + + + + + + + + + + + + + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningmodifierModifierOrder'abstract' modifier out of order with the JLS suggestions.89
 WarningmodifierModifierOrder'static' modifier out of order with the JLS suggestions.399
 WarningjavadocJavadocMethodMissing a Javadoc comment.589
+
+

com/google/gcloud/storage/Cors.java

+ + + + + + + + + + + + + + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningjavadocJavadocMethodMissing a Javadoc comment.76
 WarningjavadocJavadocMethodMissing a Javadoc comment.84
 WarningjavadocJavadocMethodMissing a Javadoc comment.171
+
+

com/google/gcloud/storage/ListResult.java

+ + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningjavadocJavadocMethodMissing a Javadoc comment.40
+
+

com/google/gcloud/storage/Option.java

+ + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningjavadocSummaryJavadocFirst sentence should be present.27
+
+

com/google/gcloud/storage/StorageException.java

+ + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningjavadocJavadocMethodMissing a Javadoc comment.32
+
+

com/google/gcloud/storage/StorageImpl.java

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningmodifierModifierOrder'abstract' modifier out of order with the JLS suggestions.167
 WarningcodingOverloadMethodsDeclarationOrderOverload methods should not be split. Previous overloaded method located at line '222'.247
 WarningsizesLineLengthLine is longer than 100 characters (found 102).374
 WarningsizesLineLengthLine is longer than 100 characters (found 102).383
 WarningindentationIndentation'method def modifier' have incorrect indentation level 1, expected level should be 2.437
 WarningcodingVariableDeclarationUsageDistanceDistance between variable 'signature' declaration and its first usage is 4, but allowed 3. Consider to make that variable as final if you still need to store its value in advance (before method calls that might do side effect on original value).492
 WarningcodingOverloadMethodsDeclarationOrderOverload methods should not be split. Previous overloaded method located at line '511'.554
+
+
+
+ +
+ + + + diff --git a/site/0.0.7/checkstyle.rss b/site/0.0.7/checkstyle.rss new file mode 100644 index 000000000000..158c11b6738e --- /dev/null +++ b/site/0.0.7/checkstyle.rss @@ -0,0 +1,1272 @@ + + + + + GCloud Java - Checkstyle report + https://github.com/GoogleCloudPlatform/gcloud-java + GCloud Java - Checkstyle report + en-us + ©2015 Google + + File: 87, + Errors: 0, + Warnings: 87, + Infos: 0 + + https://github.com/GoogleCloudPlatform/gcloud-java/checkstyle.html + +

Click here for the full Checkstyle report.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FilesIWE
+ com/google/gcloud/BaseService.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/DatastoreReader.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/Value.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/storage/BatchRequest.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/RetryParams.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/storage/Acl.java + + 0 + + 6 + + 0 +
+ com/google/gcloud/datastore/DateTime.java + + 0 + + 1 + + 0 +
+ com/google/gcloud/datastore/ProjectionEntity.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/TransactionImpl.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/Datastore.java + + 0 + + 4 + + 0 +
+ com/google/gcloud/datastore/EntityValue.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/ServiceOptions.java + + 0 + + 2 + + 0 +
+ com/google/gcloud/datastore/Transaction.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/LongValue.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/DatastoreReaderWriter.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/ValueMarshaller.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/DatastoreOptions.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/storage/Cors.java + + 0 + + 3 + + 0 +
+ com/google/gcloud/datastore/ValueType.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/NullValue.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/examples/StorageExample.java + + 0 + + 10 + + 0 +
+ com/google/gcloud/datastore/Serializable.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/StringValue.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/PathElement.java + + 0 + + 1 + + 0 +
+ com/google/gcloud/datastore/QueryResults.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/DatastoreHelper.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/DatastoreFactory.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/storage/BlobReadChannel.java + + 0 + + 2 + + 0 +
+ com/google/gcloud/examples/DatastoreExample.java + + 0 + + 5 + + 0 +
+ com/google/gcloud/storage/StorageOptions.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/DatastoreException.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/DateTimeValue.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/storage/BlobWriteChannel.java + + 0 + + 1 + + 0 +
+ com/google/gcloud/ExceptionHandler.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/ListValue.java + + 0 + + 2 + + 0 +
+ com/google/gcloud/datastore/FullEntity.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/Service.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/BaseEntity.java + + 0 + + 2 + + 0 +
+ com/google/gcloud/RetryHelper.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/package-info.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/storage/BlobInfo.java + + 0 + + 2 + + 0 +
+ com/google/gcloud/datastore/QueryResultsImpl.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/ValueBuilder.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/storage/BlobWriterChannelImpl.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/storage/StorageException.java + + 0 + + 1 + + 0 +
+ com/google/gcloud/storage/BlobReadChannelImpl.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/BaseDatastoreBatchWriter.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/storage/StorageImpl.java + + 0 + + 7 + + 0 +
+ com/google/gcloud/spi/DatastoreRpcFactory.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/DatastoreImpl.java + + 0 + + 1 + + 0 +
+ com/google/gcloud/spi/DefaultStorageRpc.java + + 0 + + 4 + + 0 +
+ com/google/gcloud/datastore/KeyFactory.java + + 0 + + 4 + + 0 +
+ com/google/gcloud/datastore/BaseKey.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/storage/Option.java + + 0 + + 1 + + 0 +
+ com/google/gcloud/datastore/TransactionOption.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/Key.java + + 0 + + 4 + + 0 +
+ com/google/gcloud/datastore/Entity.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/Query.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/StructuredQuery.java + + 0 + + 2 + + 0 +
+ com/google/gcloud/spi/StorageRpc.java + + 0 + + 8 + + 0 +
+ com/google/gcloud/spi/DefaultDatastoreRpc.java + + 0 + + 1 + + 0 +
+ com/google/gcloud/datastore/Cursor.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/BooleanValue.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/storage/HttpMethod.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/spi/ServiceRpcFactory.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/storage/Storage.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/storage/StorageFactory.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/IncompleteKey.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/Blob.java + + 0 + + 1 + + 0 +
+ com/google/gcloud/datastore/DoubleValue.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/GqlQuery.java + + 0 + + 2 + + 0 +
+ com/google/gcloud/storage/package-info.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/storage/ListResult.java + + 0 + + 1 + + 0 +
+ com/google/gcloud/datastore/RawValue.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/Batch.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/spi/DatastoreRpc.java + + 0 + + 2 + + 0 +
+ com/google/gcloud/datastore/BatchOption.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/BatchImpl.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/BlobValue.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/DatastoreBatchWriter.java + + 0 + + 2 + + 0 +
+ com/google/gcloud/AuthCredentials.java + + 0 + + 1 + + 0 +
+ com/google/gcloud/storage/BatchResponse.java + + 0 + + 1 + + 0 +
+ com/google/gcloud/storage/BucketInfo.java + + 0 + + 3 + + 0 +
+ com/google/gcloud/datastore/DatastoreWriter.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/KeyValue.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/datastore/Validator.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/spi/StorageRpcFactory.java + + 0 + + 0 + + 0 +
+ +
+
+
+
+ diff --git a/site/0.0.7/cobertura/com.google.gcloud.AuthCredentials.html b/site/0.0.7/cobertura/com.google.gcloud.AuthCredentials.html new file mode 100644 index 000000000000..3efd9263554d --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.AuthCredentials.html @@ -0,0 +1,402 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.AuthCredentials
+
 
+ + + + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
AuthCredentials
0%
0/9
N/A
1.273
AuthCredentials$AppEngineAuthCredentials
0%
0/4
N/A
1.273
AuthCredentials$ApplicationDefaultAuthCredentials
0%
0/7
N/A
1.273
AuthCredentials$ComputeEngineAuthCredentials
0%
0/10
N/A
1.273
AuthCredentials$ServiceAccountAuthCredentials
0%
0/22
0%
0/8
1.273
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud;
 18  
 
 19  
 import static com.google.common.base.Preconditions.checkNotNull;
 20  
 
 21  
 import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
 22  
 import com.google.api.client.googleapis.compute.ComputeCredential;
 23  
 import com.google.api.client.googleapis.extensions.appengine.auth.oauth2.AppIdentityCredential;
 24  
 import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
 25  
 import com.google.api.client.http.HttpRequestInitializer;
 26  
 import com.google.api.client.http.HttpTransport;
 27  
 import com.google.api.client.http.javanet.NetHttpTransport;
 28  
 import com.google.api.client.json.jackson.JacksonFactory;
 29  
 import com.google.auth.http.HttpCredentialsAdapter;
 30  
 import com.google.auth.oauth2.GoogleCredentials;
 31  
 
 32  
 import java.io.IOException;
 33  
 import java.io.ObjectInputStream;
 34  
 import java.io.ObjectStreamException;
 35  
 import java.io.Serializable;
 36  
 import java.security.GeneralSecurityException;
 37  
 import java.security.PrivateKey;
 38  
 import java.util.Objects;
 39  
 import java.util.Set;
 40  
 
 41  
 /**
 42  
  * Credentials for accessing Google Cloud services.
 43  
  */
 44  
 public abstract class AuthCredentials implements Serializable {
 45  
 
 46  
   private static final long serialVersionUID = 236297804453464604L;
 47  
 
 48  0
   private static class AppEngineAuthCredentials extends AuthCredentials {
 49  
 
 50  
     private static final long serialVersionUID = 7931300552744202954L;
 51  
 
 52  0
     private static final AuthCredentials INSTANCE = new AppEngineAuthCredentials();
 53  
 
 54  
     @Override
 55  
     protected HttpRequestInitializer httpRequestInitializer(HttpTransport transport,
 56  
         Set<String> scopes) {
 57  0
       return new AppIdentityCredential(scopes);
 58  
     }
 59  
 
 60  
     private Object readResolve() throws ObjectStreamException {
 61  0
       return INSTANCE;
 62  
     }
 63  
   }
 64  
 
 65  0
   public static class ServiceAccountAuthCredentials extends AuthCredentials {
 66  
 
 67  
     private static final long serialVersionUID = 8007708734318445901L;
 68  
     private final String account;
 69  
     private final PrivateKey privateKey;
 70  
 
 71  0
     private static final AuthCredentials NO_CREDENTIALS = new ServiceAccountAuthCredentials();
 72  
 
 73  0
     ServiceAccountAuthCredentials(String account, PrivateKey privateKey) {
 74  0
       this.account = checkNotNull(account);
 75  0
       this.privateKey = checkNotNull(privateKey);
 76  0
     }
 77  
 
 78  
     ServiceAccountAuthCredentials() {
 79  
       account = null;
 80  
       privateKey = null;
 81  
     }
 82  
 
 83  
     @Override
 84  
     protected HttpRequestInitializer httpRequestInitializer(
 85  
         HttpTransport transport, Set<String> scopes) {
 86  0
       GoogleCredential.Builder builder = new GoogleCredential.Builder()
 87  0
           .setTransport(transport)
 88  0
           .setJsonFactory(new JacksonFactory());
 89  0
       if (privateKey != null) {
 90  0
         builder.setServiceAccountPrivateKey(privateKey);
 91  0
         builder.setServiceAccountId(account);
 92  0
         builder.setServiceAccountScopes(scopes);
 93  
       }
 94  0
       return builder.build();
 95  
     }
 96  
 
 97  
     public String account() {
 98  0
       return account;
 99  
     }
 100  
 
 101  
     public PrivateKey privateKey() {
 102  0
       return privateKey;
 103  
     }
 104  
 
 105  
     @Override
 106  
     public int hashCode() {
 107  0
       return Objects.hash(account, privateKey);
 108  
     }
 109  
 
 110  
     @Override
 111  
     public boolean equals(Object obj) {
 112  0
       if (!(obj instanceof ServiceAccountAuthCredentials)) {
 113  0
         return false;
 114  
       }
 115  0
       ServiceAccountAuthCredentials other = (ServiceAccountAuthCredentials) obj;
 116  0
       return Objects.equals(account, other.account)
 117  0
           && Objects.equals(privateKey, other.privateKey);
 118  
     }
 119  
   }
 120  
 
 121  
   private static class ComputeEngineAuthCredentials extends AuthCredentials {
 122  
 
 123  
     private static final long serialVersionUID = -5217355402127260144L;
 124  
 
 125  
     private transient ComputeCredential computeCredential;
 126  
 
 127  0
     ComputeEngineAuthCredentials() throws IOException, GeneralSecurityException {
 128  0
       computeCredential = getComputeCredential();
 129  0
     }
 130  
 
 131  
     private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
 132  0
       in.defaultReadObject();
 133  
       try {
 134  0
         computeCredential = getComputeCredential();
 135  0
       } catch (GeneralSecurityException e) {
 136  0
        throw new IOException(e);
 137  0
       }
 138  0
     }
 139  
 
 140  
     @Override
 141  
     protected HttpRequestInitializer httpRequestInitializer(HttpTransport transport,
 142  
         Set<String> scopes) {
 143  0
       return computeCredential;
 144  
     }
 145  
   }
 146  
 
 147  
   private static class ApplicationDefaultAuthCredentials extends AuthCredentials {
 148  
 
 149  
     private static final long serialVersionUID = -8306873864136099893L;
 150  
 
 151  
     private transient GoogleCredentials googleCredentials;
 152  
 
 153  0
     ApplicationDefaultAuthCredentials() throws IOException {
 154  0
       googleCredentials = GoogleCredentials.getApplicationDefault();
 155  0
     }
 156  
 
 157  
     private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
 158  0
       in.defaultReadObject();
 159  0
       googleCredentials =  GoogleCredentials.getApplicationDefault();
 160  0
     }
 161  
 
 162  
     @Override
 163  
     protected HttpRequestInitializer httpRequestInitializer(HttpTransport transport,
 164  
         Set<String> scopes) {
 165  0
       return new HttpCredentialsAdapter(googleCredentials);
 166  
     }
 167  
   }
 168  
 
 169  
   protected abstract HttpRequestInitializer httpRequestInitializer(HttpTransport transport,
 170  
       Set<String> scopes);
 171  
 
 172  
   public static AuthCredentials createForAppEngine() {
 173  0
     return AppEngineAuthCredentials.INSTANCE;
 174  
   }
 175  
 
 176  
   public static AuthCredentials createForComputeEngine()
 177  
       throws IOException, GeneralSecurityException {
 178  0
     return new ComputeEngineAuthCredentials();
 179  
   }
 180  
 
 181  
   /**
 182  
    * Returns the Application Default Credentials.
 183  
    *
 184  
    * <p>Returns the Application Default Credentials which are credentials that identify and
 185  
    * authorize the whole application. This is the built-in service account if running on
 186  
    * Google Compute Engine or the credentials file from the path in the environment variable
 187  
    * GOOGLE_APPLICATION_CREDENTIALS.
 188  
    * </p>
 189  
    *
 190  
    * @return the credentials instance.
 191  
    * @throws IOException if the credentials cannot be created in the current environment.
 192  
    */
 193  
   public static AuthCredentials createApplicationDefaults() throws IOException {
 194  0
     return new ApplicationDefaultAuthCredentials();
 195  
   }
 196  
 
 197  
   public static ServiceAccountAuthCredentials createFor(String account, PrivateKey privateKey) {
 198  0
     return new ServiceAccountAuthCredentials(account, privateKey);
 199  
   }
 200  
 
 201  
   public static AuthCredentials noCredentials() {
 202  0
     return ServiceAccountAuthCredentials.NO_CREDENTIALS;
 203  
   }
 204  
 
 205  
   static ComputeCredential getComputeCredential() throws IOException, GeneralSecurityException {
 206  0
     NetHttpTransport transport = GoogleNetHttpTransport.newTrustedTransport();
 207  
     // Try to connect using Google Compute Engine service account credentials.
 208  0
     ComputeCredential credential = new ComputeCredential(transport, new JacksonFactory());
 209  
     // Force token refresh to detect if we are running on Google Compute Engine.
 210  0
     credential.refreshToken();
 211  0
     return credential;
 212  
   }
 213  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.BaseService.html b/site/0.0.7/cobertura/com.google.gcloud.BaseService.html new file mode 100644 index 000000000000..a3a438a0b139 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.BaseService.html @@ -0,0 +1,87 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.BaseService
+
 
+ + + + +
Classes in this File Line Coverage Branch Coverage Complexity
BaseService
0%
0/1
N/A
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud;
 18  
 
 19  
 public abstract class BaseService<OptionsT extends ServiceOptions<?, OptionsT>>
 20  
     implements Service<OptionsT> {
 21  
 
 22  
   private final OptionsT options;
 23  
 
 24  
   protected BaseService(OptionsT options) {
 25  
     this.options = options;
 26  
   }
 27  
 
 28  
   @Override
 29  
   public OptionsT options() {
 30  0
     return options;
 31  
   }
 32  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.ExceptionHandler.html b/site/0.0.7/cobertura/com.google.gcloud.ExceptionHandler.html new file mode 100644 index 000000000000..788357734d61 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.ExceptionHandler.html @@ -0,0 +1,499 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.ExceptionHandler
+
 
+ + + + + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
ExceptionHandler
0%
0/58
0%
0/28
2.273
ExceptionHandler$1
N/A
N/A
2.273
ExceptionHandler$Builder
0%
0/17
0%
0/6
2.273
ExceptionHandler$Interceptor
N/A
N/A
2.273
ExceptionHandler$Interceptor$RetryResult
0%
0/3
N/A
2.273
ExceptionHandler$RetryInfo
0%
0/12
0%
0/4
2.273
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud;
 18  
 
 19  
 import static com.google.common.base.MoreObjects.firstNonNull;
 20  
 import static com.google.common.base.Preconditions.checkNotNull;
 21  
 
 22  
 import com.google.common.annotations.VisibleForTesting;
 23  
 import com.google.common.base.Preconditions;
 24  
 import com.google.common.collect.ImmutableList;
 25  
 import com.google.common.collect.ImmutableSet;
 26  
 import com.google.common.collect.Sets;
 27  
 
 28  
 import java.io.Serializable;
 29  
 import java.lang.reflect.Method;
 30  
 import java.util.Set;
 31  
 import java.util.concurrent.Callable;
 32  
 
 33  
 /**
 34  
  * Exception handling used by {@link RetryHelper}.
 35  
  */
 36  0
 public final class ExceptionHandler implements Serializable {
 37  
 
 38  
   private static final long serialVersionUID = -2460707015779532919L;
 39  
 
 40  0
   private static final ExceptionHandler DEFAULT_INSTANCE =
 41  0
       builder().retryOn(Exception.class).abortOn(RuntimeException.class).build();
 42  
 
 43  
   private final ImmutableList<Interceptor> interceptors;
 44  
   private final ImmutableSet<Class<? extends Exception>> retriableExceptions;
 45  
   private final ImmutableSet<Class<? extends Exception>> nonRetriableExceptions;
 46  0
   private final Set<RetryInfo> retryInfo = Sets.newHashSet();
 47  
 
 48  
   public interface Interceptor extends Serializable {
 49  
 
 50  0
     enum RetryResult {
 51  
 
 52  0
       RETRY(true), ABORT(false);
 53  
 
 54  
       private final boolean booleanValue;
 55  
 
 56  
       RetryResult(boolean booleanValue) {
 57  
         this.booleanValue = booleanValue;
 58  
       }
 59  
 
 60  
       boolean booleanValue() {
 61  0
         return booleanValue;
 62  
       }
 63  
     }
 64  
 
 65  
     /**
 66  
      * This method is called before exception evaluation and could short-circuit the process.
 67  
      *
 68  
      * @param exception the exception that is being evaluated
 69  
      * @return {@link RetryResult} to indicate if the exception should be ignored (
 70  
      *         {@link RetryResult#RETRY}), propagated ({@link RetryResult#ABORT}), or evaluation
 71  
      *         should proceed ({@code null}).
 72  
      */
 73  
     RetryResult beforeEval(Exception exception);
 74  
 
 75  
     /**
 76  
      * This method is called after the evaluation and could alter its result.
 77  
      *
 78  
      * @param exception the exception that is being evaluated
 79  
      * @param retryResult the result of the evaluation so far.
 80  
      * @return {@link RetryResult} to indicate if the exception should be ignored (
 81  
      *         {@link RetryResult#RETRY}), propagated ({@link RetryResult#ABORT}), or evaluation
 82  
      *         should proceed ({@code null}).
 83  
      */
 84  
     RetryResult afterEval(Exception exception, RetryResult retryResult);
 85  
   }
 86  
 
 87  
   /**
 88  
    * ExceptionHandler builder.
 89  
    */
 90  0
   public static class Builder {
 91  
 
 92  0
     private final ImmutableList.Builder<Interceptor> interceptors = ImmutableList.builder();
 93  0
     private final ImmutableSet.Builder<Class<? extends Exception>> retriableExceptions =
 94  0
         ImmutableSet.builder();
 95  0
     private final ImmutableSet.Builder<Class<? extends Exception>> nonRetriableExceptions =
 96  0
         ImmutableSet.builder();
 97  
 
 98  0
     private Builder() {}
 99  
 
 100  
 
 101  
     /**
 102  
      * Adds the exception handler interceptors. Call order will be maintained.
 103  
      *
 104  
      * @param interceptors the interceptors for this exception handler
 105  
      * @return the Builder for chaining
 106  
      */
 107  
     public Builder interceptor(Interceptor... interceptors) {
 108  0
       for (Interceptor interceptor : interceptors) {
 109  0
         this.interceptors.add(interceptor);
 110  
       }
 111  0
       return this;
 112  
     }
 113  
 
 114  
     /**
 115  
      * Add the exceptions to ignore/retry-on.
 116  
      *
 117  
      * @param exceptions retry should continue when such exceptions are thrown
 118  
      * @return the Builder for chaining
 119  
      */
 120  
     @SafeVarargs
 121  
     public final Builder retryOn(Class<? extends Exception>... exceptions) {
 122  0
       for (Class<? extends Exception> exception : exceptions) {
 123  0
         retriableExceptions.add(checkNotNull(exception));
 124  
       }
 125  0
       return this;
 126  
     }
 127  
 
 128  
     /**
 129  
      * Adds the exceptions to abort on.
 130  
      *
 131  
      * @param exceptions retry should abort when such exceptions are thrown
 132  
      * @return the Builder for chaining
 133  
      */
 134  
     @SafeVarargs
 135  
     public final Builder abortOn(Class<? extends Exception>... exceptions) {
 136  0
       for (Class<? extends Exception> exception : exceptions) {
 137  0
         nonRetriableExceptions.add(checkNotNull(exception));
 138  
       }
 139  0
       return this;
 140  
     }
 141  
 
 142  
     /**
 143  
      * Returns a new ExceptionHandler instance.
 144  
      */
 145  
     public ExceptionHandler build() {
 146  0
       return new ExceptionHandler(this);
 147  
     }
 148  
   }
 149  
 
 150  
   @VisibleForTesting
 151  0
   static final class RetryInfo implements Serializable {
 152  
 
 153  
     private static final long serialVersionUID = -4264634837841455974L;
 154  
     private final Class<? extends Exception> exception;
 155  
     private final Interceptor.RetryResult retry;
 156  0
     private final Set<RetryInfo> children = Sets.newHashSet();
 157  
 
 158  0
     RetryInfo(Class<? extends Exception> exception, Interceptor.RetryResult retry) {
 159  0
       this.exception = checkNotNull(exception);
 160  0
       this.retry = retry;
 161  0
     }
 162  
 
 163  
     @Override
 164  
     public int hashCode() {
 165  0
       return exception.hashCode();
 166  
     }
 167  
 
 168  
     @Override
 169  
     public boolean equals(Object obj) {
 170  0
       if (obj == this) {
 171  0
         return true;
 172  
       }
 173  0
       if (!(obj instanceof RetryInfo)) {
 174  0
         return false;
 175  
       }
 176  
       // We only care about exception in equality as we allow only one instance per exception
 177  0
       return ((RetryInfo) obj).exception.equals(exception);
 178  
     }
 179  
   }
 180  
 
 181  0
   private ExceptionHandler(Builder builder) {
 182  0
     interceptors = builder.interceptors.build();
 183  0
     retriableExceptions = builder.retriableExceptions.build();
 184  0
     nonRetriableExceptions = builder.nonRetriableExceptions.build();
 185  0
     Preconditions.checkArgument(
 186  0
         Sets.intersection(retriableExceptions, nonRetriableExceptions).isEmpty(),
 187  
         "Same exception was found in both retryable and non-retryable sets");
 188  0
     for (Class<? extends Exception> exception : retriableExceptions) {
 189  0
       addRetryInfo(new RetryInfo(exception, Interceptor.RetryResult.RETRY), retryInfo);
 190  0
     }
 191  0
     for (Class<? extends Exception> exception : nonRetriableExceptions) {
 192  0
       addRetryInfo(new RetryInfo(exception, Interceptor.RetryResult.ABORT), retryInfo);
 193  0
     }
 194  0
   }
 195  
 
 196  
   private static void addRetryInfo(RetryInfo retryInfo, Set<RetryInfo> dest) {
 197  0
     for (RetryInfo current : dest) {
 198  0
       if (current.exception.isAssignableFrom(retryInfo.exception)) {
 199  0
         addRetryInfo(retryInfo, current.children);
 200  0
         return;
 201  
       }
 202  0
       if (retryInfo.exception.isAssignableFrom(current.exception)) {
 203  0
         retryInfo.children.add(current);
 204  
       }
 205  0
     }
 206  0
     dest.removeAll(retryInfo.children);
 207  0
     dest.add(retryInfo);
 208  0
   }
 209  
 
 210  
   private static RetryInfo findMostSpecificRetryInfo(Set<RetryInfo> retryInfo,
 211  
       Class<? extends Exception> exception) {
 212  0
     for (RetryInfo current : retryInfo) {
 213  0
       if (current.exception.isAssignableFrom(exception)) {
 214  0
         RetryInfo match = findMostSpecificRetryInfo(current.children, exception);
 215  0
         return match == null ? current : match;
 216  
       }
 217  0
     }
 218  0
     return null;
 219  
   }
 220  
 
 221  
   // called for Class<? extends Callable>, therefore a "call" method must be found.
 222  
   private static Method getCallableMethod(Class<?> clazz) {
 223  
     try {
 224  0
       return clazz.getDeclaredMethod("call");
 225  0
     } catch (NoSuchMethodException e) {
 226  
       // check parent
 227  0
       return getCallableMethod(clazz.getSuperclass());
 228  0
     } catch (SecurityException e) {
 229  
       // This should never happen
 230  0
       throw new IllegalStateException("Unexpected exception", e);
 231  
     }
 232  
   }
 233  
 
 234  
   void verifyCaller(Callable<?> callable) {
 235  0
     Method callMethod = getCallableMethod(callable.getClass());
 236  0
     for (Class<?> exceptionOrError : callMethod.getExceptionTypes()) {
 237  0
       Preconditions.checkArgument(Exception.class.isAssignableFrom(exceptionOrError),
 238  
           "Callable method exceptions must be derived from Exception");
 239  
       @SuppressWarnings("unchecked")
 240  0
       Class<? extends Exception> exception = (Class<? extends Exception>) exceptionOrError;
 241  0
       Preconditions.checkArgument(findMostSpecificRetryInfo(retryInfo, exception) != null,
 242  
           "Declared exception '" + exception + "' is not covered by exception handler");
 243  
     }
 244  0
   }
 245  
 
 246  
   public Set<Class<? extends Exception>> getRetriableExceptions() {
 247  
     return retriableExceptions;
 248  
   }
 249  
 
 250  
   public Set<Class<? extends Exception>> getNonRetriableExceptions() {
 251  
     return nonRetriableExceptions;
 252  
   }
 253  
 
 254  
   boolean shouldRetry(Exception ex) {
 255  0
     for (Interceptor interceptor : interceptors) {
 256  0
       Interceptor.RetryResult retryResult = interceptor.beforeEval(ex);
 257  0
       if (retryResult != null) {
 258  0
         return retryResult.booleanValue();
 259  
       }
 260  0
     }
 261  0
     RetryInfo retryInfo = findMostSpecificRetryInfo(this.retryInfo, ex.getClass());
 262  0
     Interceptor.RetryResult retryResult =
 263  0
         retryInfo == null ? Interceptor.RetryResult.ABORT : retryInfo.retry;
 264  0
     for (Interceptor interceptor : interceptors) {
 265  0
       retryResult = firstNonNull(interceptor.afterEval(ex, retryResult), retryResult);
 266  0
     }
 267  0
     return retryResult.booleanValue();
 268  
   }
 269  
 
 270  
   /**
 271  
    * Returns an instance which retry any checked exception and abort on any runtime exception.
 272  
    */
 273  
   public static ExceptionHandler getDefaultInstance() {
 274  0
     return DEFAULT_INSTANCE;
 275  
   }
 276  
 
 277  
   public static Builder builder() {
 278  0
     return new Builder();
 279  
   }
 280  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.RetryHelper.html b/site/0.0.7/cobertura/com.google.gcloud.RetryHelper.html new file mode 100644 index 000000000000..d0829e303f93 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.RetryHelper.html @@ -0,0 +1,466 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.RetryHelper
+
 
+ + + + + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
RetryHelper
0%
0/63
0%
0/18
1.818
RetryHelper$Context
0%
0/2
N/A
1.818
RetryHelper$NonRetriableException
N/A
N/A
1.818
RetryHelper$RetriesExhaustedException
N/A
N/A
1.818
RetryHelper$RetryHelperException
N/A
N/A
1.818
RetryHelper$RetryInterruptedException
0%
0/2
N/A
1.818
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud;
 18  
 
 19  
 import static com.google.common.base.Preconditions.checkNotNull;
 20  
 import static java.lang.StrictMath.max;
 21  
 import static java.lang.StrictMath.min;
 22  
 import static java.lang.StrictMath.pow;
 23  
 import static java.lang.StrictMath.random;
 24  
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
 25  
 
 26  
 import com.google.common.annotations.VisibleForTesting;
 27  
 import com.google.common.base.MoreObjects;
 28  
 import com.google.common.base.MoreObjects.ToStringHelper;
 29  
 import com.google.common.base.Stopwatch;
 30  
 
 31  
 import java.io.InterruptedIOException;
 32  
 import java.nio.channels.ClosedByInterruptException;
 33  
 import java.util.concurrent.Callable;
 34  
 import java.util.logging.Level;
 35  
 import java.util.logging.Logger;
 36  
 
 37  
 /**
 38  
  * Utility class for retrying operations. For more details about the parameters, see
 39  
  * {@link RetryParams}. If the request is never successful, a {@link RetriesExhaustedException} will
 40  
  * be thrown.
 41  
  *
 42  
  * @param <V> return value of the closure that is being run with retries
 43  
  */
 44  0
 public class RetryHelper<V> {
 45  
 
 46  0
   private static final Logger log = Logger.getLogger(RetryHelper.class.getName());
 47  
 
 48  
   private final Stopwatch stopwatch;
 49  
   private final Callable<V> callable;
 50  
   private final RetryParams params;
 51  
   private final ExceptionHandler exceptionHandler;
 52  
   private int attemptNumber;
 53  
 
 54  
 
 55  0
   private static final ThreadLocal<Context> context = new ThreadLocal<>();
 56  
 
 57  
   public static class RetryHelperException extends RuntimeException {
 58  
 
 59  
     private static final long serialVersionUID = -2907061015610448235L;
 60  
 
 61  
     RetryHelperException() {}
 62  
 
 63  
     RetryHelperException(String message) {
 64  
       super(message);
 65  
     }
 66  
 
 67  
     RetryHelperException(Throwable cause) {
 68  
       super(cause);
 69  
     }
 70  
 
 71  
     RetryHelperException(String message, Throwable cause) {
 72  
       super(message, cause);
 73  
     }
 74  
   }
 75  
 
 76  
   /**
 77  
    * Thrown when a RetryHelper failed to complete its work due to interruption. Throwing this
 78  
    * exception also sets the thread interrupt flag.
 79  
    */
 80  
   public static final class RetryInterruptedException extends RetryHelperException {
 81  
 
 82  
     private static final long serialVersionUID = 1678966737697204885L;
 83  
 
 84  
     RetryInterruptedException() {}
 85  
 
 86  
     /**
 87  
      * Sets the caller thread interrupt flag and throws {@code RetryInterruptedException}.
 88  
      */
 89  
     public static void propagate() throws RetryInterruptedException {
 90  0
       Thread.currentThread().interrupt();
 91  0
       throw new RetryInterruptedException();
 92  
     }
 93  
   }
 94  
 
 95  
   /**
 96  
    * Thrown when a RetryHelper has attempted the maximum number of attempts allowed by RetryParams
 97  
    * and was not successful.
 98  
    */
 99  
   public static final class RetriesExhaustedException extends RetryHelperException {
 100  
 
 101  
     private static final long serialVersionUID = 780199686075408083L;
 102  
 
 103  
     RetriesExhaustedException(String message) {
 104  
       super(message);
 105  
     }
 106  
 
 107  
     RetriesExhaustedException(String message, Throwable cause) {
 108  
       super(message, cause);
 109  
     }
 110  
   }
 111  
 
 112  
   /**
 113  
    * Thrown when RetryHelper callable has indicate it should not be retried.
 114  
    */
 115  
   public static final class NonRetriableException extends RetryHelperException {
 116  
 
 117  
     private static final long serialVersionUID = -2331878521983499652L;
 118  
 
 119  
     NonRetriableException(Throwable throwable) {
 120  
       super(throwable);
 121  
     }
 122  
   }
 123  
 
 124  
   static class Context {
 125  
 
 126  
     private final RetryHelper<?> helper;
 127  
 
 128  
     Context(RetryHelper<?> helper) {
 129  
       this.helper = helper;
 130  
     }
 131  
 
 132  
     public RetryParams getRetryParams() {
 133  0
       return helper.params;
 134  
     }
 135  
 
 136  
     public int getAttemptNumber() {
 137  0
       return helper.attemptNumber;
 138  
     }
 139  
   }
 140  
 
 141  
   @VisibleForTesting
 142  
   static void setContext(Context ctx) {
 143  0
     if (ctx == null) {
 144  0
       context.remove();
 145  
     } else {
 146  0
       context.set(ctx);
 147  
     }
 148  0
   }
 149  
 
 150  
   static Context getContext() {
 151  0
     return context.get();
 152  
   }
 153  
 
 154  
   @VisibleForTesting
 155  
   RetryHelper(Callable<V> callable, RetryParams params, ExceptionHandler exceptionHandler,
 156  0
       Stopwatch stopwatch) {
 157  0
     this.callable = checkNotNull(callable);
 158  0
     this.params = checkNotNull(params);
 159  0
     this.stopwatch = checkNotNull(stopwatch);
 160  0
     this.exceptionHandler = checkNotNull(exceptionHandler);
 161  0
     exceptionHandler.verifyCaller(callable);
 162  0
   }
 163  
 
 164  
   @Override
 165  
   public String toString() {
 166  0
     ToStringHelper toStringHelper = MoreObjects.toStringHelper(this);
 167  0
     toStringHelper.add("params", params);
 168  0
     toStringHelper.add("stopwatch", stopwatch);
 169  0
     toStringHelper.add("attemptNumber", attemptNumber);
 170  0
     toStringHelper.add("callable", callable);
 171  0
     toStringHelper.add("exceptionHandler", exceptionHandler);
 172  0
     return toStringHelper.toString();
 173  
   }
 174  
 
 175  
   private V doRetry() throws RetryHelperException {
 176  0
     stopwatch.start();
 177  
     while (true) {
 178  0
       attemptNumber++;
 179  
       Exception exception;
 180  
       try {
 181  0
         V value = callable.call();
 182  0
         if (attemptNumber > 1 && log.isLoggable(Level.FINE)) {
 183  0
           log.fine(this + ": attempt #" + attemptNumber + " succeeded");
 184  
         }
 185  0
         return value;
 186  0
       } catch (InterruptedException | InterruptedIOException | ClosedByInterruptException e) {
 187  0
         if (!exceptionHandler.shouldRetry(e)) {
 188  0
           RetryInterruptedException.propagate();
 189  
         }
 190  0
         exception = e;
 191  0
       } catch (Exception e) {
 192  0
         if (!exceptionHandler.shouldRetry(e)) {
 193  0
           throw new NonRetriableException(e);
 194  
         }
 195  0
         exception = e;
 196  0
       }
 197  0
       if (attemptNumber >= params.getRetryMaxAttempts()
 198  0
           || attemptNumber >= params.getRetryMinAttempts()
 199  0
           && stopwatch.elapsed(MILLISECONDS) >= params.getTotalRetryPeriodMillis()) {
 200  0
         throw new RetriesExhaustedException(this + ": Too many failures, giving up", exception);
 201  
       }
 202  0
       long sleepDurationMillis = getSleepDuration(params, attemptNumber);
 203  0
       if (log.isLoggable(Level.FINE)) {
 204  0
         log.fine(this + ": Attempt #" + attemptNumber + " failed [" + exception
 205  
             + "], sleeping for " + sleepDurationMillis + " ms");
 206  
       }
 207  
       try {
 208  0
         Thread.sleep(sleepDurationMillis);
 209  0
       } catch (InterruptedException e) {
 210  
         // propagate as RetryInterruptedException
 211  0
         RetryInterruptedException.propagate();
 212  0
       }
 213  0
     }
 214  
   }
 215  
 
 216  
   @VisibleForTesting
 217  
   static long getSleepDuration(RetryParams retryParams, int attemptsSoFar) {
 218  0
     long initialDelay = retryParams.getInitialRetryDelayMillis();
 219  0
     double backoffFactor = retryParams.getRetryDelayBackoffFactor();
 220  0
     long maxDelay = retryParams.getMaxRetryDelayMillis();
 221  0
     long retryDelay = getExponentialValue(initialDelay, backoffFactor, maxDelay, attemptsSoFar);
 222  0
     return (long) ((random() / 2.0 + .75) * retryDelay);
 223  
   }
 224  
 
 225  
   private static long getExponentialValue(long initialDelay, double backoffFactor, long maxDelay,
 226  
       int attemptsSoFar) {
 227  0
     return (long) min(maxDelay, pow(backoffFactor, max(1, attemptsSoFar) - 1) * initialDelay);
 228  
   }
 229  
 
 230  
   public static <V> V runWithRetries(Callable<V> callable) throws RetryHelperException {
 231  0
     return runWithRetries(callable, RetryParams.getDefaultInstance(),
 232  0
         ExceptionHandler.getDefaultInstance());
 233  
   }
 234  
 
 235  
   public static <V> V runWithRetries(Callable<V> callable, RetryParams params,
 236  
       ExceptionHandler exceptionHandler) throws RetryHelperException {
 237  0
     return runWithRetries(callable, params, exceptionHandler, Stopwatch.createUnstarted());
 238  
   }
 239  
 
 240  
   @VisibleForTesting
 241  
   static <V> V runWithRetries(Callable<V> callable, RetryParams params,
 242  
       ExceptionHandler exceptionHandler, Stopwatch stopwatch) throws RetryHelperException {
 243  0
     RetryHelper<V> retryHelper = new RetryHelper<>(callable, params, exceptionHandler, stopwatch);
 244  0
     Context previousContext = getContext();
 245  0
     setContext(new Context(retryHelper));
 246  
     try {
 247  0
       return retryHelper.doRetry();
 248  
     } finally {
 249  0
       setContext(previousContext);
 250  
     }
 251  
   }
 252  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.RetryParams.html b/site/0.0.7/cobertura/com.google.gcloud.RetryParams.html new file mode 100644 index 000000000000..843df9f63e0f --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.RetryParams.html @@ -0,0 +1,542 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.RetryParams
+
 
+ + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
RetryParams
0%
0/37
0%
0/28
1.455
RetryParams$1
N/A
N/A
1.455
RetryParams$Builder
0%
0/31
0%
0/2
1.455
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud;
 18  
 
 19  
 import static com.google.common.base.Preconditions.checkArgument;
 20  
 
 21  
 import com.google.common.base.MoreObjects;
 22  
 import com.google.common.base.MoreObjects.ToStringHelper;
 23  
 
 24  
 import java.io.Serializable;
 25  
 import java.util.Objects;
 26  
 
 27  
 /**
 28  
  * Parameters for configuring retries with an exponential backoff. Initial request is executed
 29  
  * immediately. If the request fails but passes the {@link ExceptionHandler} criteria the calling
 30  
  * thread sleeps for {@code initialRetryDelayMillis}. Each subsequent failure the sleep interval is
 31  
  * calculated as:
 32  
  * <p>
 33  
  * {@code retryDelayBackoffFactor ^ attempts * initialRetryDelayMillis} but would be upper-bounded
 34  
  * to {@code maxRetryDelayMillis}
 35  
  * </p>
 36  
  * This proceeds until either the request is successful, {@code retryMaxAttempts} are made, or both
 37  
  * {@code retryMinAttempts} are made and {@code totalRetryPeriodMillis} have elapsed. To construct
 38  
  * {@code RetryParams}, first create a {@link RetryParams.Builder}. The builder is mutable and each
 39  
  * of the parameters can be set (any unset parameters will fallback to the defaults). The
 40  
  * {@code Builder} can be then used to create an immutable {@code RetryParams} object. For default
 41  
  * {@code RetryParams} use {@link #getDefaultInstance}. Default settings are subject to change
 42  
  * release to release. If you require specific settings, explicitly create an instance of
 43  
  * {@code RetryParams} with all the required settings.
 44  
  *
 45  
  * @see RetryHelper
 46  
  */
 47  0
 public final class RetryParams implements Serializable {
 48  
 
 49  
   private static final long serialVersionUID = -8492751576749007700L;
 50  
 
 51  
   public static final int DEFAULT_RETRY_MIN_ATTEMPTS = 3;
 52  
   public static final int DEFAULT_RETRY_MAX_ATTEMPTS = 6;
 53  
   public static final long DEFAULT_INITIAL_RETRY_DELAY_MILLIS = 250L;
 54  
   public static final long DEFAULT_MAX_RETRY_DELAY_MILLIS = 10_000L;
 55  
   public static final double DEFAULT_RETRY_DELAY_BACKOFF_FACTOR = 2.0;
 56  
   public static final long DEFAULT_TOTAL_RETRY_PERIOD_MILLIS = 50_000L;
 57  
 
 58  
   private final int retryMinAttempts;
 59  
   private final int retryMaxAttempts;
 60  
   private final long initialRetryDelayMillis;
 61  
   private final long maxRetryDelayMillis;
 62  
   private final double retryDelayBackoffFactor;
 63  
   private final long totalRetryPeriodMillis;
 64  
 
 65  0
   private static final RetryParams DEFAULT_INSTANCE = new RetryParams(new Builder());
 66  0
   private static final RetryParams NO_RETRIES =
 67  0
       builder().retryMaxAttempts(1).retryMinAttempts(1).build();
 68  
 
 69  
 
 70  
   /**
 71  
    * RetryParams builder.
 72  
    */
 73  0
   public static final class Builder {
 74  
 
 75  
     private int retryMinAttempts;
 76  
     private int retryMaxAttempts;
 77  
     private long initialRetryDelayMillis;
 78  
     private long maxRetryDelayMillis;
 79  
     private double retryDelayBackoffFactor;
 80  
     private long totalRetryPeriodMillis;
 81  
 
 82  
     private Builder() {
 83  0
       this(null);
 84  0
     }
 85  
 
 86  0
     Builder(/* Nullable */RetryParams retryParams) {
 87  0
       if (retryParams == null) {
 88  0
         retryMinAttempts = DEFAULT_RETRY_MIN_ATTEMPTS;
 89  0
         retryMaxAttempts = DEFAULT_RETRY_MAX_ATTEMPTS;
 90  0
         initialRetryDelayMillis = DEFAULT_INITIAL_RETRY_DELAY_MILLIS;
 91  0
         maxRetryDelayMillis = DEFAULT_MAX_RETRY_DELAY_MILLIS;
 92  0
         retryDelayBackoffFactor = DEFAULT_RETRY_DELAY_BACKOFF_FACTOR;
 93  0
         totalRetryPeriodMillis = DEFAULT_TOTAL_RETRY_PERIOD_MILLIS;
 94  
       } else {
 95  0
         retryMinAttempts = retryParams.getRetryMinAttempts();
 96  0
         retryMaxAttempts = retryParams.getRetryMaxAttempts();
 97  0
         initialRetryDelayMillis = retryParams.getInitialRetryDelayMillis();
 98  0
         maxRetryDelayMillis = retryParams.getMaxRetryDelayMillis();
 99  0
         retryDelayBackoffFactor = retryParams.getRetryDelayBackoffFactor();
 100  0
         totalRetryPeriodMillis = retryParams.getTotalRetryPeriodMillis();
 101  
       }
 102  0
     }
 103  
 
 104  
     /**
 105  
      * Sets retryMinAttempts.
 106  
      *
 107  
      * @param retryMinAttempts the retryMinAttempts to set
 108  
      * @return the Builder for chaining
 109  
      */
 110  
     public Builder retryMinAttempts(int retryMinAttempts) {
 111  0
       this.retryMinAttempts = retryMinAttempts;
 112  0
       return this;
 113  
     }
 114  
 
 115  
     /**
 116  
      * Sets retryMaxAttempts.
 117  
      *
 118  
      * @param retryMaxAttempts the retryMaxAttempts to set
 119  
      * @return the Builder for chaining
 120  
      */
 121  
     public Builder retryMaxAttempts(int retryMaxAttempts) {
 122  0
       this.retryMaxAttempts = retryMaxAttempts;
 123  0
       return this;
 124  
     }
 125  
 
 126  
     /**
 127  
      * Sets initialRetryDelayMillis.
 128  
      *
 129  
      * @param initialRetryDelayMillis the initialRetryDelayMillis to set
 130  
      * @return the Builder for chaining
 131  
      */
 132  
     public Builder initialRetryDelayMillis(long initialRetryDelayMillis) {
 133  0
       this.initialRetryDelayMillis = initialRetryDelayMillis;
 134  0
       return this;
 135  
     }
 136  
 
 137  
     /**
 138  
      * Sets maxRetryDelayMillis.
 139  
      *
 140  
      * @param maxRetryDelayMillis the maxRetryDelayMillis to set
 141  
      * @return the Builder for chaining
 142  
      */
 143  
     public Builder maxRetryDelayMillis(long maxRetryDelayMillis) {
 144  0
       this.maxRetryDelayMillis = maxRetryDelayMillis;
 145  0
       return this;
 146  
     }
 147  
 
 148  
     /**
 149  
      * Sets retryDelayBackoffFactor.
 150  
      *
 151  
      * @param retryDelayBackoffFactor the retryDelayBackoffFactor to set
 152  
      * @return the Builder for chaining
 153  
      */
 154  
     public Builder retryDelayBackoffFactor(double retryDelayBackoffFactor) {
 155  0
       this.retryDelayBackoffFactor = retryDelayBackoffFactor;
 156  0
       return this;
 157  
     }
 158  
 
 159  
     /**
 160  
      * Sets totalRetryPeriodMillis.
 161  
      *
 162  
      * @param totalRetryPeriodMillis the totalRetryPeriodMillis to set
 163  
      * @return the Builder for chaining
 164  
      */
 165  
     public Builder totalRetryPeriodMillis(long totalRetryPeriodMillis) {
 166  0
       this.totalRetryPeriodMillis = totalRetryPeriodMillis;
 167  0
       return this;
 168  
     }
 169  
 
 170  
     /**
 171  
      * Create an instance of RetryParams with the parameters set in this builder.
 172  
      *
 173  
      * @return a new instance of RetryParams
 174  
      */
 175  
     public RetryParams build() {
 176  0
       return new RetryParams(this);
 177  
     }
 178  
   }
 179  
 
 180  
   /**
 181  
    * Create a new RetryParams with the parameters from a {@link RetryParams.Builder}
 182  
    *
 183  
    * @param builder the parameters to use to construct the RetryParams object
 184  
    */
 185  0
   private RetryParams(Builder builder) {
 186  0
     retryMinAttempts = builder.retryMinAttempts;
 187  0
     retryMaxAttempts = builder.retryMaxAttempts;
 188  0
     initialRetryDelayMillis = builder.initialRetryDelayMillis;
 189  0
     maxRetryDelayMillis = builder.maxRetryDelayMillis;
 190  0
     retryDelayBackoffFactor = builder.retryDelayBackoffFactor;
 191  0
     totalRetryPeriodMillis = builder.totalRetryPeriodMillis;
 192  0
     checkArgument(retryMinAttempts >= 0, "retryMinAttempts must not be negative");
 193  0
     checkArgument(retryMaxAttempts >= retryMinAttempts,
 194  
         "retryMaxAttempts must not be smaller than retryMinAttempts");
 195  0
     checkArgument(initialRetryDelayMillis >= 0, "initialRetryDelayMillis must not be negative");
 196  0
     checkArgument(maxRetryDelayMillis >= initialRetryDelayMillis,
 197  
         "maxRetryDelayMillis must not be smaller than initialRetryDelayMillis");
 198  0
     checkArgument(retryDelayBackoffFactor >= 0, "retryDelayBackoffFactor must not be negative");
 199  0
     checkArgument(totalRetryPeriodMillis >= 0, "totalRetryPeriodMillis must not be negative");
 200  0
   }
 201  
 
 202  
   /**
 203  
    * Returns an instance with the default parameters.
 204  
    */
 205  
   public static RetryParams getDefaultInstance() {
 206  0
     return DEFAULT_INSTANCE;
 207  
   }
 208  
 
 209  
   public static RetryParams noRetries() {
 210  0
     return NO_RETRIES;
 211  
   }
 212  
 
 213  
   /**
 214  
    * Returns the retryMinAttempts.
 215  
    */
 216  
   public int getRetryMinAttempts() {
 217  
     return retryMinAttempts;
 218  
   }
 219  
 
 220  
   /**
 221  
    * Returns the retryMaxAttempts.
 222  
    */
 223  
   public int getRetryMaxAttempts() {
 224  
     return retryMaxAttempts;
 225  
   }
 226  
 
 227  
   /**
 228  
    * Returns the initialRetryDelayMillis.
 229  
    */
 230  
   public long getInitialRetryDelayMillis() {
 231  
     return initialRetryDelayMillis;
 232  
   }
 233  
 
 234  
   /**
 235  
    * Returns the maxRetryDelayMillis.
 236  
    */
 237  
   public long getMaxRetryDelayMillis() {
 238  
     return maxRetryDelayMillis;
 239  
   }
 240  
 
 241  
   /**
 242  
    * Returns the maxRetryDelayBackoffFactor.
 243  
    */
 244  
   public double getRetryDelayBackoffFactor() {
 245  
     return retryDelayBackoffFactor;
 246  
   }
 247  
 
 248  
   /**
 249  
    * Returns the totalRetryPeriodMillis.
 250  
    */
 251  
   public long getTotalRetryPeriodMillis() {
 252  
     return totalRetryPeriodMillis;
 253  
   }
 254  
 
 255  
   @Override
 256  
   public int hashCode() {
 257  0
     return Objects.hash(retryMinAttempts, retryMaxAttempts, initialRetryDelayMillis,
 258  0
         maxRetryDelayMillis, retryDelayBackoffFactor, totalRetryPeriodMillis);
 259  
   }
 260  
 
 261  
   @Override
 262  
   public boolean equals(Object obj) {
 263  0
     if (obj == this) {
 264  0
       return true;
 265  
     }
 266  0
     if (!(obj instanceof RetryParams)) {
 267  0
       return false;
 268  
     }
 269  0
     RetryParams other = (RetryParams) obj;
 270  0
     return retryMinAttempts == other.retryMinAttempts && retryMaxAttempts == other.retryMaxAttempts
 271  
         && initialRetryDelayMillis == other.initialRetryDelayMillis
 272  
         && maxRetryDelayMillis == other.maxRetryDelayMillis
 273  
         && retryDelayBackoffFactor == other.retryDelayBackoffFactor
 274  
         && totalRetryPeriodMillis == other.totalRetryPeriodMillis;
 275  
   }
 276  
 
 277  
   @Override
 278  
   public String toString() {
 279  0
     ToStringHelper toStringHelper = MoreObjects.toStringHelper(this);
 280  0
     toStringHelper.add("retryMinAttempts", retryMinAttempts);
 281  0
     toStringHelper.add("retryMaxAttempts", retryMaxAttempts);
 282  0
     toStringHelper.add("initialRetryDelayMillis", initialRetryDelayMillis);
 283  0
     toStringHelper.add("maxRetryDelayMillis", maxRetryDelayMillis);
 284  0
     toStringHelper.add("retryDelayBackoffFactor", retryDelayBackoffFactor);
 285  0
     toStringHelper.add("totalRetryPeriodMillis", totalRetryPeriodMillis);
 286  0
     return toStringHelper.toString();
 287  
   }
 288  
 
 289  
   public static Builder builder() {
 290  0
     return new Builder();
 291  
   }
 292  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.Service.html b/site/0.0.7/cobertura/com.google.gcloud.Service.html new file mode 100644 index 000000000000..8534d77b9ee6 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.Service.html @@ -0,0 +1,66 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.Service
+
 
+ + + + +
Classes in this File Line Coverage Branch Coverage Complexity
Service
N/A
N/A
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud;
 18  
 
 19  
 public interface Service<OptionsT extends ServiceOptions<?, OptionsT>> {
 20  
   OptionsT options();
 21  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.ServiceOptions.html b/site/0.0.7/cobertura/com.google.gcloud.ServiceOptions.html new file mode 100644 index 000000000000..65a31e906afd --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.ServiceOptions.html @@ -0,0 +1,575 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.ServiceOptions
+
 
+ + + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
ServiceOptions
0%
0/86
0%
0/62
2.258
ServiceOptions$Builder
0%
0/22
N/A
2.258
ServiceOptions$DefaultHttpTransportFactory
0%
0/8
0%
0/2
2.258
ServiceOptions$HttpTransportFactory
N/A
N/A
2.258
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud;
 18  
 
 19  
 
 20  
 import static com.google.common.base.MoreObjects.firstNonNull;
 21  
 import static com.google.common.base.Preconditions.checkNotNull;
 22  
 import static java.nio.charset.StandardCharsets.UTF_8;
 23  
 
 24  
 import com.google.api.client.extensions.appengine.http.UrlFetchTransport;
 25  
 import com.google.api.client.http.HttpRequestInitializer;
 26  
 import com.google.api.client.http.HttpTransport;
 27  
 import com.google.api.client.http.javanet.NetHttpTransport;
 28  
 import com.google.common.collect.Iterables;
 29  
 import com.google.gcloud.spi.ServiceRpcFactory;
 30  
 
 31  
 import java.io.BufferedReader;
 32  
 import java.io.File;
 33  
 import java.io.FileReader;
 34  
 import java.io.IOException;
 35  
 import java.io.InputStream;
 36  
 import java.io.InputStreamReader;
 37  
 import java.io.Serializable;
 38  
 import java.lang.reflect.Method;
 39  
 import java.net.HttpURLConnection;
 40  
 import java.net.URL;
 41  
 import java.util.Locale;
 42  
 import java.util.Objects;
 43  
 import java.util.ServiceLoader;
 44  
 import java.util.Set;
 45  
 import java.util.regex.Matcher;
 46  
 import java.util.regex.Pattern;
 47  
 
 48  0
 public abstract class ServiceOptions<
 49  
         ServiceRpcT,
 50  
         OptionsT extends ServiceOptions<ServiceRpcT, OptionsT>>
 51  
     implements Serializable {
 52  
 
 53  
   private static final String DEFAULT_HOST = "https://www.googleapis.com";
 54  
   private static final long serialVersionUID = 1203687993961393350L;
 55  
   private static final String PROJECT_ENV_NAME = "GCLOUD_PROJECT";
 56  
 
 57  
   private final String projectId;
 58  
   private final String host;
 59  
   private final HttpTransportFactory httpTransportFactory;
 60  
   private final AuthCredentials authCredentials;
 61  
   private final RetryParams retryParams;
 62  
   private final ServiceRpcFactory<ServiceRpcT, OptionsT> serviceRpcFactory;
 63  
 
 64  
   public interface HttpTransportFactory extends Serializable {
 65  
     HttpTransport create();
 66  
   }
 67  
 
 68  0
   private enum DefaultHttpTransportFactory implements HttpTransportFactory {
 69  
 
 70  0
     INSTANCE;
 71  
 
 72  
     @Override
 73  
     public HttpTransport create() {
 74  
       // Consider App Engine
 75  0
       if (appEngineAppId() != null) {
 76  
         try {
 77  0
           return new UrlFetchTransport();
 78  0
         } catch (Exception ignore) {
 79  
           // Maybe not on App Engine
 80  
         }
 81  
       }
 82  
       // Consider Compute
 83  
       try {
 84  0
         return AuthCredentials.getComputeCredential().getTransport();
 85  0
       } catch (Exception e) {
 86  
         // Maybe not on GCE
 87  
       }
 88  0
       return new NetHttpTransport();
 89  
     }
 90  
   }
 91  
 
 92  
 
 93  
 
 94  0
   protected abstract static class Builder<
 95  
       ServiceRpcT,
 96  
       OptionsT extends ServiceOptions<ServiceRpcT, OptionsT>,
 97  
       B extends Builder<ServiceRpcT, OptionsT, B>> {
 98  
 
 99  
     private String projectId;
 100  
     private String host;
 101  
     private HttpTransportFactory httpTransportFactory;
 102  
     private AuthCredentials authCredentials;
 103  
     private RetryParams retryParams;
 104  
     private ServiceRpcFactory<ServiceRpcT, OptionsT> serviceRpcFactory;
 105  
 
 106  
     protected Builder() {}
 107  
 
 108  0
     protected Builder(ServiceOptions<ServiceRpcT, OptionsT> options) {
 109  0
       projectId = options.projectId;
 110  0
       host = options.host;
 111  0
       httpTransportFactory = options.httpTransportFactory;
 112  0
       authCredentials = options.authCredentials;
 113  0
       retryParams = options.retryParams;
 114  0
       serviceRpcFactory = options.serviceRpcFactory;
 115  0
     }
 116  
 
 117  
     protected abstract ServiceOptions<ServiceRpcT, OptionsT> build();
 118  
 
 119  
     @SuppressWarnings("unchecked")
 120  
     protected B self() {
 121  0
       return (B) this;
 122  
     }
 123  
 
 124  
     public B projectId(String projectId) {
 125  0
       this.projectId = projectId;
 126  0
       return self();
 127  
     }
 128  
 
 129  
     public B host(String host) {
 130  0
       this.host = host;
 131  0
       return self();
 132  
     }
 133  
 
 134  
     public B httpTransportFactory(HttpTransportFactory httpTransportFactory) {
 135  0
       this.httpTransportFactory = httpTransportFactory;
 136  0
       return self();
 137  
     }
 138  
 
 139  
     public B authCredentials(AuthCredentials authCredentials) {
 140  0
       this.authCredentials = authCredentials;
 141  0
       return self();
 142  
     }
 143  
 
 144  
     public B retryParams(RetryParams retryParams) {
 145  0
       this.retryParams = retryParams;
 146  0
       return self();
 147  
     }
 148  
 
 149  
     public B serviceRpcFactory(ServiceRpcFactory<ServiceRpcT, OptionsT> serviceRpcFactory) {
 150  0
       this.serviceRpcFactory = serviceRpcFactory;
 151  0
       return self();
 152  
     }
 153  
   }
 154  
 
 155  0
   protected ServiceOptions(Builder<ServiceRpcT, OptionsT, ?> builder) {
 156  0
     projectId = checkNotNull(builder.projectId != null ? builder.projectId : defaultProject());
 157  0
     host = firstNonNull(builder.host, DEFAULT_HOST);
 158  0
     httpTransportFactory =
 159  0
         firstNonNull(builder.httpTransportFactory, DefaultHttpTransportFactory.INSTANCE);
 160  0
     authCredentials = firstNonNull(builder.authCredentials, defaultAuthCredentials());
 161  0
     retryParams = builder.retryParams;
 162  0
     serviceRpcFactory = builder.serviceRpcFactory;
 163  0
   }
 164  
 
 165  
   private static AuthCredentials defaultAuthCredentials() {
 166  
     // Consider App Engine. This will not be needed once issue #21 is fixed.
 167  0
     if (appEngineAppId() != null) {
 168  
       try {
 169  0
         return AuthCredentials.createForAppEngine();
 170  0
       } catch (Exception ignore) {
 171  
         // Maybe not on App Engine
 172  
       }
 173  
     }
 174  
 
 175  
     try {
 176  0
       return AuthCredentials.createApplicationDefaults();
 177  0
     } catch (Exception ex) {
 178  
       // fallback to old-style
 179  
     }
 180  
 
 181  
     // Consider old-style Compute. This will not be needed once issue #21 is fixed.
 182  
     try {
 183  0
       return AuthCredentials.createForComputeEngine();
 184  0
     } catch (Exception ignore) {
 185  
       // Maybe not on GCE
 186  
     }
 187  0
     return AuthCredentials.noCredentials();
 188  
   }
 189  
 
 190  
   protected static String appEngineAppId() {
 191  0
     return System.getProperty("com.google.appengine.application.id");
 192  
   }
 193  
 
 194  
   protected String defaultProject() {
 195  0
     String projectId = System.getProperty(PROJECT_ENV_NAME, System.getenv(PROJECT_ENV_NAME));
 196  0
     if (projectId == null) {
 197  0
       projectId = getAppEngineProjectId();
 198  
     }
 199  0
     return projectId != null ? projectId : googleCloudProjectId();
 200  
   }
 201  
 
 202  
   protected static String googleCloudProjectId() {
 203  
     try {
 204  0
       URL url = new URL("http://metadata/computeMetadata/v1/project/project-id");
 205  0
       HttpURLConnection connection = (HttpURLConnection) url.openConnection();
 206  0
       connection.setRequestProperty("X-Google-Metadata-Request", "True");
 207  0
       InputStream input = connection.getInputStream();
 208  0
       if (connection.getResponseCode() == 200) {
 209  0
         try (BufferedReader reader = new BufferedReader(new InputStreamReader(input, UTF_8))) {
 210  0
           return reader.readLine();
 211  0
         }
 212  
       }
 213  0
     } catch (IOException ignore) {
 214  
       // ignore
 215  0
     }
 216  
    File configDir;
 217  0
     if (System.getenv().containsKey("CLOUDSDK_CONFIG")) {
 218  0
       configDir = new File(System.getenv("CLOUDSDK_CONFIG"));
 219  0
     } else if (isWindows() &&  System.getenv().containsKey("APPDATA")) {
 220  0
       configDir = new File(System.getenv("APPDATA"), "gcloud");
 221  
     } else {
 222  0
       configDir = new File(System.getProperty("user.home"), ".config/gcloud");
 223  
     }
 224  0
     try (BufferedReader reader =
 225  
         new BufferedReader(new FileReader(new File(configDir, "properties")))) {
 226  
       String line;
 227  0
       String section = null;
 228  0
       Pattern projectPattern = Pattern.compile("^project\\s*=\\s*(.*)$");
 229  0
       Pattern sectionPattern = Pattern.compile("^\\[(.*)\\]$");
 230  0
       while ((line = reader.readLine()) != null) {
 231  0
         if (line.isEmpty() || line.startsWith(";")) {
 232  0
           continue;
 233  
         }
 234  0
         line = line.trim();
 235  0
         Matcher matcher = sectionPattern.matcher(line);
 236  0
         if (matcher.matches()) {
 237  0
           section = matcher.group(1);
 238  0
         } else if (section == null || section.equals("core")) {
 239  0
           matcher = projectPattern.matcher(line);
 240  0
           if (matcher.matches()) {
 241  0
             return matcher.group(1);
 242  
           }
 243  
         }
 244  0
       }
 245  0
     } catch (IOException ex) {
 246  
       // ignore
 247  0
     }
 248  
     // return null if can't determine
 249  0
     return null;
 250  
   }
 251  
 
 252  
   private static boolean isWindows() {
 253  0
     return System.getProperty("os.name").toLowerCase(Locale.ENGLISH).contains("windows");
 254  
   }
 255  
 
 256  
   protected static String getAppEngineProjectId() {
 257  
     // TODO(ozarov): An alternative to reflection would be to depend on AE api jar:
 258  
     // http://mvnrepository.com/artifact/com.google.appengine/appengine-api-1.0-sdk/1.2.0
 259  
     try {
 260  0
       Class<?> factoryClass =
 261  0
           Class.forName("com.google.appengine.api.appidentity.AppIdentityServiceFactory");
 262  0
       Method method = factoryClass.getMethod("getAppIdentityService");
 263  0
       Object appIdentityService = method.invoke(null);
 264  0
       method = appIdentityService.getClass().getMethod("getServiceAccountName");
 265  0
       String serviceAccountName = (String) method.invoke(appIdentityService);
 266  0
       int indexOfAtSign = serviceAccountName.indexOf('@');
 267  0
       return serviceAccountName.substring(0, indexOfAtSign);
 268  0
     } catch (Exception ignore) {
 269  
       // return null if can't determine
 270  0
       return null;
 271  
     }
 272  
   }
 273  
 
 274  
   protected abstract Set<String> scopes();
 275  
 
 276  
   public String projectId() {
 277  0
     return projectId;
 278  
   }
 279  
 
 280  
   public String host() {
 281  0
     return host;
 282  
   }
 283  
 
 284  
   public HttpTransportFactory httpTransportFactory() {
 285  0
     return httpTransportFactory;
 286  
   }
 287  
 
 288  
   public AuthCredentials authCredentials() {
 289  0
     return authCredentials;
 290  
   }
 291  
 
 292  
   public RetryParams retryParams() {
 293  0
     return retryParams != null ? retryParams : RetryParams.noRetries();
 294  
   }
 295  
 
 296  
   public ServiceRpcFactory<ServiceRpcT, OptionsT> serviceRpcFactory() {
 297  0
     return serviceRpcFactory;
 298  
   }
 299  
 
 300  
   public HttpRequestInitializer httpRequestInitializer() {
 301  0
     HttpTransport httpTransport = httpTransportFactory.create();
 302  0
     return authCredentials().httpRequestInitializer(httpTransport, scopes());
 303  
   }
 304  
 
 305  
   protected int baseHashCode() {
 306  0
     return Objects.hash(projectId, host, httpTransportFactory, authCredentials, retryParams,
 307  
         serviceRpcFactory);
 308  
   }
 309  
 
 310  
   protected boolean baseEquals(ServiceOptions<?, ?> other) {
 311  0
     return Objects.equals(projectId, other.projectId)
 312  0
         && Objects.equals(host, other.host)
 313  0
         && Objects.equals(httpTransportFactory, other.httpTransportFactory)
 314  0
         && Objects.equals(authCredentials, other.authCredentials)
 315  0
         && Objects.equals(retryParams, other.retryParams)
 316  0
         && Objects.equals(serviceRpcFactory, other.serviceRpcFactory);
 317  
   }
 318  
 
 319  
   public abstract Builder<ServiceRpcT, OptionsT, ?> toBuilder();
 320  
 
 321  
   /**
 322  
    * Creates a service RPC using a factory loaded by {@link ServiceLoader}.
 323  
    */
 324  
   protected static
 325  
       <ServiceRpcT, OptionsT extends ServiceOptions<ServiceRpcT, OptionsT>>
 326  
       ServiceRpcT createRpc(OptionsT options,
 327  
           Class<? extends ServiceRpcFactory<ServiceRpcT, OptionsT>> factoryClass) {
 328  0
     ServiceRpcFactory<ServiceRpcT, OptionsT> factory =
 329  0
         Iterables.getFirst(ServiceLoader.load(factoryClass), null);
 330  0
     return factory == null ? null : factory.create(options);
 331  
   }
 332  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.BaseDatastoreBatchWriter.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.BaseDatastoreBatchWriter.html new file mode 100644 index 000000000000..5d18b34d6aef --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.BaseDatastoreBatchWriter.html @@ -0,0 +1,368 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.BaseDatastoreBatchWriter
+
 
+ + + + +
Classes in this File Line Coverage Branch Coverage Complexity
BaseDatastoreBatchWriter
0%
0/102
0%
0/50
2.3
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import com.google.api.services.datastore.DatastoreV1;
 20  
 import com.google.common.base.Preconditions;
 21  
 import com.google.common.collect.Iterables;
 22  
 import com.google.common.collect.Lists;
 23  
 
 24  
 import java.util.Collections;
 25  
 import java.util.Iterator;
 26  
 import java.util.LinkedHashMap;
 27  
 import java.util.LinkedHashSet;
 28  
 import java.util.LinkedList;
 29  
 import java.util.List;
 30  
 import java.util.Map;
 31  
 import java.util.Set;
 32  
 
 33  
 /**
 34  
  * Base class for DatastoreBatchWriter.
 35  
  */
 36  
 public abstract class BaseDatastoreBatchWriter implements DatastoreBatchWriter {
 37  
 
 38  
   private final String name;
 39  0
   private final Map<Key, FullEntity<Key>> toAdd = new LinkedHashMap<>();
 40  0
   private final List<FullEntity<IncompleteKey>> toAddAutoId = new LinkedList<>();
 41  0
   private final Map<Key, FullEntity<Key>> toUpdate = new LinkedHashMap<>();
 42  0
   private final Map<Key, FullEntity<Key>> toPut = new LinkedHashMap<>();
 43  0
   private final Set<Key> toDelete = new LinkedHashSet<>();
 44  0
   private boolean active = true;
 45  
 
 46  0
   protected BaseDatastoreBatchWriter(String name) {
 47  0
     this.name = name;
 48  0
   }
 49  
 
 50  
   @SuppressWarnings("unchecked")
 51  
   @Override
 52  
   public final void addWithDeferredIdAllocation(FullEntity<?>... entities) {
 53  0
     validateActive();
 54  0
     for (FullEntity<?> entity : entities) {
 55  0
       IncompleteKey key = entity.key();
 56  0
       Preconditions.checkArgument(key != null, "Entity must have a key");
 57  0
       if (key instanceof Key) {
 58  0
         addInternal((FullEntity<Key>) entity);
 59  
       } else {
 60  0
         toAddAutoId.add((FullEntity<IncompleteKey>) entity);
 61  
       }
 62  
     }
 63  0
   }
 64  
 
 65  
   private void addInternal(FullEntity<Key> entity) {
 66  0
     Key key = entity.key();
 67  0
     if (toAdd.containsKey(key) || toUpdate.containsKey(key) || toPut.containsKey(key)) {
 68  0
       throw newInvalidRequest("Entity with the key %s was already added or updated in this %s",
 69  0
           entity.key(), name);
 70  
     }
 71  0
     if (toDelete.remove(key)) {
 72  0
       toPut.put(key, entity);
 73  
     } else {
 74  0
       toAdd.put(key, entity);
 75  
     }
 76  0
   }
 77  
 
 78  
   @Override
 79  
   public final Entity add(FullEntity<?> entity) {
 80  0
     return DatastoreHelper.add(this, entity);
 81  
   }
 82  
 
 83  
   @SuppressWarnings("unchecked")
 84  
   @Override
 85  
   public final List<Entity> add(FullEntity<?>... entities) {
 86  0
     validateActive();
 87  0
     List<IncompleteKey> incompleteKeys = Lists.newArrayListWithExpectedSize(entities.length);
 88  0
     for (FullEntity<?> entity : entities) {
 89  0
       IncompleteKey key = entity.key();
 90  0
       Preconditions.checkArgument(key != null, "Entity must have a key");
 91  0
       if (key instanceof Key) {
 92  0
         addInternal((FullEntity<Key>) entity);
 93  
       } else {
 94  0
         incompleteKeys.add(key);
 95  
       }
 96  
     }
 97  
     Iterator<Key> allocated;
 98  0
     if (!incompleteKeys.isEmpty()) {
 99  0
       IncompleteKey[] toAllocate = Iterables.toArray(incompleteKeys, IncompleteKey.class);
 100  0
       allocated = datastore().allocateId(toAllocate).iterator();
 101  0
     } else {
 102  0
       allocated = Collections.emptyIterator();
 103  
     }
 104  0
     List<Entity> answer = Lists.newArrayListWithExpectedSize(entities.length);
 105  0
     for (FullEntity<?> entity : entities) {
 106  0
       if (entity.key() instanceof Key) {
 107  0
         answer.add(Entity.convert((FullEntity<Key>) entity));
 108  
       } else {
 109  0
         Entity entityWithAllocatedId = Entity.builder(allocated.next(), entity).build();
 110  0
         addInternal(entityWithAllocatedId);
 111  0
         answer.add(entityWithAllocatedId);
 112  
       }
 113  
     }
 114  0
     return answer;
 115  
   }
 116  
 
 117  
   @SafeVarargs
 118  
   @Override
 119  
   public final void update(Entity... entities) {
 120  0
     validateActive();
 121  0
     for (Entity entity : entities) {
 122  0
       Key key = entity.key();
 123  0
       if (toDelete.contains(key)) {
 124  0
         throw newInvalidRequest("Entity with the key %s was already deleted in this %s",
 125  0
             entity.key(), name);
 126  
       }
 127  0
       if (toAdd.remove(key) != null || toPut.containsKey(key)) {
 128  0
         toPut.put(key, entity);
 129  
       } else {
 130  0
         toUpdate.put(key, entity);
 131  
       }
 132  
     }
 133  0
   }
 134  
 
 135  
   @SafeVarargs
 136  
   @Override
 137  
   public final void put(Entity... entities) {
 138  0
     validateActive();
 139  0
     for (Entity entity : entities) {
 140  0
       Key key = entity.key();
 141  0
       toAdd.remove(key);
 142  0
       toUpdate.remove(key);
 143  0
       toDelete.remove(key);
 144  0
       toPut.put(key, entity);
 145  
     }
 146  0
   }
 147  
 
 148  
   @Override
 149  
   public final void delete(Key... keys) {
 150  0
     validateActive();
 151  0
     for (Key key : keys) {
 152  0
       toAdd.remove(key);
 153  0
       toUpdate.remove(key);
 154  0
       toPut.remove(key);
 155  0
       toDelete.add(key);
 156  
     }
 157  0
   }
 158  
 
 159  
   @Override
 160  
   public boolean active() {
 161  0
     return active;
 162  
   }
 163  
 
 164  
   protected String name() {
 165  0
     return name;
 166  
   }
 167  
 
 168  
   protected Map<Key, FullEntity<Key>> toAdd() {
 169  0
     return toAdd;
 170  
   }
 171  
 
 172  
   protected List<FullEntity<IncompleteKey>> toAddAutoId() {
 173  0
     return toAddAutoId;
 174  
   }
 175  
 
 176  
   protected Map<Key, FullEntity<Key>> toUpdate() {
 177  0
     return toUpdate;
 178  
   }
 179  
 
 180  
   protected Map<Key, FullEntity<Key>> toPut() {
 181  0
     return toPut;
 182  
   }
 183  
 
 184  
   protected Set<Key> toDelete() {
 185  0
     return toDelete;
 186  
   }
 187  
 
 188  
   protected void deactivate() {
 189  0
     active = false;
 190  0
   }
 191  
 
 192  
   protected void validateActive() {
 193  0
     if (!active) {
 194  0
       throw newInvalidRequest("%s is no longer active", name);
 195  
     }
 196  0
   }
 197  
 
 198  
   protected DatastoreException newInvalidRequest(String msg, Object... params) {
 199  0
     return DatastoreException.throwInvalidRequest(String.format(msg, params));
 200  
   }
 201  
 
 202  
   protected DatastoreV1.Mutation.Builder toMutationPb() {
 203  0
     DatastoreV1.Mutation.Builder mutationPb = DatastoreV1.Mutation.newBuilder();
 204  0
     for (FullEntity<IncompleteKey> entity : toAddAutoId()) {
 205  0
       mutationPb.addInsertAutoId(entity.toPb());
 206  0
     }
 207  0
     for (FullEntity<Key> entity : toAdd().values()) {
 208  0
       mutationPb.addInsert(entity.toPb());
 209  0
     }
 210  0
     for (FullEntity<Key> entity : toUpdate().values()) {
 211  0
       mutationPb.addUpdate(entity.toPb());
 212  0
     }
 213  0
     for (FullEntity<Key> entity : toPut().values()) {
 214  0
       mutationPb.addUpsert(entity.toPb());
 215  0
     }
 216  0
     for (Key key : toDelete()) {
 217  0
       mutationPb.addDelete(key.toPb());
 218  0
     }
 219  0
     return mutationPb;
 220  
   }
 221  
 
 222  
   protected abstract Datastore datastore();
 223  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.BaseEntity.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.BaseEntity.html new file mode 100644 index 000000000000..d4ba201cdb49 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.BaseEntity.html @@ -0,0 +1,720 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.BaseEntity
+
 
+ + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
BaseEntity
0%
0/49
0%
0/16
1.229
BaseEntity$Builder
0%
0/56
0%
0/4
1.229
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import static com.google.gcloud.datastore.BlobValue.of;
 20  
 import static com.google.gcloud.datastore.BooleanValue.of;
 21  
 import static com.google.gcloud.datastore.DateTimeValue.of;
 22  
 import static com.google.gcloud.datastore.DoubleValue.of;
 23  
 import static com.google.gcloud.datastore.EntityValue.of;
 24  
 import static com.google.gcloud.datastore.KeyValue.of;
 25  
 import static com.google.gcloud.datastore.ListValue.of;
 26  
 import static com.google.gcloud.datastore.LongValue.of;
 27  
 import static com.google.gcloud.datastore.NullValue.of;
 28  
 import static com.google.gcloud.datastore.StringValue.of;
 29  
 
 30  
 import com.google.api.services.datastore.DatastoreV1;
 31  
 import com.google.common.collect.ImmutableSortedMap;
 32  
 import com.google.common.collect.Maps;
 33  
 import com.google.protobuf.InvalidProtocolBufferException;
 34  
 
 35  
 import java.util.HashMap;
 36  
 import java.util.List;
 37  
 import java.util.Map;
 38  
 import java.util.Objects;
 39  
 import java.util.Set;
 40  
 
 41  
 /**
 42  
  * A base class for entities (key and properties).
 43  
  * An entity is a Google Cloud Datastore persistent data object.
 44  
  * An entity holds one or more properties, represented by a name (as {@link String})
 45  
  * and a value (as {@link com.google.gcloud.datastore.Value}), and may be associated with a
 46  
  * key. For a list of possible values see {@link ValueType}.
 47  
  *
 48  
  * @see <a href="https://cloud.google.com/datastore/docs/concepts/entities">Google Cloud Datastore
 49  
  *     Entities, Properties, and Keys</a>
 50  
  */
 51  0
 public abstract class BaseEntity<K extends IncompleteKey> extends Serializable<DatastoreV1.Entity> {
 52  
 
 53  
   private static final long serialVersionUID = 8175618724683792766L;
 54  
 
 55  
   private final transient ImmutableSortedMap<String, Value<?>> properties;
 56  
   private final K key;
 57  
 
 58  0
   public abstract static class Builder<K extends IncompleteKey, B extends Builder<K, B>> {
 59  
 
 60  
     private K key;
 61  0
     private final Map<String, Value<?>> properties = new HashMap<>();
 62  
 
 63  0
     Builder() {
 64  0
     }
 65  
 
 66  0
     Builder(K key) {
 67  0
       key(key);
 68  0
     }
 69  
 
 70  
     Builder(BaseEntity<K> entity) {
 71  0
       this(entity.key, entity);
 72  0
     }
 73  
 
 74  0
     Builder(K key, BaseEntity<?> entity) {
 75  0
       key(key);
 76  0
       properties(entity.properties);
 77  0
     }
 78  
 
 79  
     protected K key() {
 80  0
       return key;
 81  
     }
 82  
 
 83  
     protected Map<String, Value<?>> properties() {
 84  0
       return properties;
 85  
     }
 86  
 
 87  
     @SuppressWarnings("unchecked")
 88  
     private B self() {
 89  0
       return (B) this;
 90  
     }
 91  
 
 92  
     @SuppressWarnings("unchecked")
 93  
     protected B fill(DatastoreV1.Entity entityPb) {
 94  0
       Map<String, Value<?>> copiedProperties = Maps.newHashMap();
 95  0
       for (DatastoreV1.Property property : entityPb.getPropertyList()) {
 96  0
         copiedProperties.put(property.getName(), Value.fromPb(property.getValue()));
 97  0
       }
 98  0
       properties(copiedProperties);
 99  0
       if (entityPb.hasKey()) {
 100  0
         key((K) IncompleteKey.fromPb(entityPb.getKey()));
 101  
       }
 102  0
       return self();
 103  
     }
 104  
 
 105  
     protected B properties(Map<String, Value<?>> properties) {
 106  0
       this.properties.putAll(properties);
 107  0
       return self();
 108  
     }
 109  
 
 110  
     public B key(K key) {
 111  0
       this.key = key;
 112  0
       return self();
 113  
     }
 114  
 
 115  
     /**
 116  
      * Clears all the properties.
 117  
      */
 118  
     public B clear() {
 119  0
       properties.clear();
 120  0
       return self();
 121  
     }
 122  
 
 123  
     /**
 124  
      * Removes a property with the given {@code name}.
 125  
      */
 126  
     public B remove(String name) {
 127  0
       properties.remove(name);
 128  0
       return self();
 129  
     }
 130  
 
 131  
     public B set(String name, Value<?> value) {
 132  0
       properties.put(name, value);
 133  0
       return self();
 134  
     }
 135  
 
 136  
     public B set(String name, String value) {
 137  0
       properties.put(name, of(value));
 138  0
       return self();
 139  
     }
 140  
 
 141  
     public B set(String name, long value) {
 142  0
       properties.put(name, of(value));
 143  0
       return self();
 144  
     }
 145  
 
 146  
     public B set(String name, double value) {
 147  0
       properties.put(name, of(value));
 148  0
       return self();
 149  
     }
 150  
 
 151  
     public B set(String name, boolean value) {
 152  0
       properties.put(name, of(value));
 153  0
       return self();
 154  
     }
 155  
 
 156  
     public B set(String name, DateTime value) {
 157  0
       properties.put(name, of(value));
 158  0
       return self();
 159  
     }
 160  
 
 161  
     public B set(String name, Key value) {
 162  0
       properties.put(name, of(value));
 163  0
       return self();
 164  
     }
 165  
 
 166  
     public B set(String name, FullEntity<?> value) {
 167  0
       properties.put(name, of(value));
 168  0
       return self();
 169  
     }
 170  
 
 171  
     public B set(String name, List<? extends Value<?>> values) {
 172  0
       properties.put(name, of(values));
 173  0
       return self();
 174  
     }
 175  
 
 176  
     public B set(String name, Value<?> value, Value<?>... other) {
 177  0
       properties.put(name, of(value, other));
 178  0
       return self();
 179  
     }
 180  
 
 181  
     public B set(String name, Blob value) {
 182  0
       properties.put(name, of(value));
 183  0
       return self();
 184  
     }
 185  
 
 186  
     public B setNull(String name) {
 187  0
       properties.put(name, of());
 188  0
       return self();
 189  
     }
 190  
 
 191  
     public abstract BaseEntity<K> build();
 192  
   }
 193  
 
 194  0
   BaseEntity(Builder<K, ?> builder) {
 195  0
     this.key = builder.key;
 196  0
     this.properties = ImmutableSortedMap.copyOf(builder.properties);
 197  0
   }
 198  
 
 199  0
   BaseEntity(BaseEntity<K> from) {
 200  0
     this.key = from.key();
 201  0
     this.properties = from.properties;
 202  0
   }
 203  
 
 204  
   @Override
 205  
   public int hashCode() {
 206  0
     return Objects.hash(key, properties);
 207  
   }
 208  
 
 209  
   @Override
 210  
   public boolean equals(Object obj) {
 211  0
     if (obj == this) {
 212  0
       return true;
 213  
     }
 214  0
     if (!(obj instanceof BaseEntity)) {
 215  0
       return false;
 216  
     }
 217  0
     BaseEntity<?> other = (BaseEntity<?>) obj;
 218  0
     return Objects.equals(key, other.key)
 219  0
         && Objects.equals(properties, other.properties);
 220  
   }
 221  
 
 222  
   /**
 223  
    * Returns true if entity has a non-null key.
 224  
    */
 225  
   public boolean hasKey() {
 226  0
     return key != null;
 227  
   }
 228  
 
 229  
   /**
 230  
    * Returns the associated key or null if it does not have one.
 231  
    */
 232  
   public K key() {
 233  0
     return key;
 234  
   }
 235  
 
 236  
   /**
 237  
    * Returns {@code true} if the entity contains a property with the given {@code name}.
 238  
    */
 239  
   public boolean contains(String name) {
 240  0
     return properties.containsKey(name);
 241  
   }
 242  
 
 243  
   /**
 244  
    * Returns the {@link Value} for the given property {@code name}.
 245  
    *
 246  
    * @throws DatastoreException if not such property.
 247  
    */
 248  
   public <V extends Value<?>> V getValue(String name) {
 249  
     @SuppressWarnings("unchecked")
 250  0
     V property = (V) properties.get(name);
 251  0
     if (property == null) {
 252  0
       throw DatastoreException.throwInvalidRequest("No such property %s", name);
 253  
     }
 254  0
     return property;
 255  
   }
 256  
 
 257  
   /**
 258  
    * Returns true if property is an instance of NullValue.
 259  
    *
 260  
    * @throws DatastoreException if not such property.
 261  
    */
 262  
   public boolean isNull(String name) {
 263  0
     return getValue(name) instanceof NullValue;
 264  
   }
 265  
 
 266  
 
 267  
   /**
 268  
    * Returns the property value as a string.
 269  
    *
 270  
    * @throws DatastoreException if not such property.
 271  
    * @throws ClassCastException if value is not a string.
 272  
    */
 273  
   @SuppressWarnings("unchecked")
 274  
   public String getString(String name) {
 275  0
     return ((Value<String>) getValue(name)).get();
 276  
   }
 277  
 
 278  
   /**
 279  
    * Returns the property value as long.
 280  
    *
 281  
    * @throws DatastoreException if not such property.
 282  
    * @throws ClassCastException if value is not a long.
 283  
    */
 284  
   @SuppressWarnings("unchecked")
 285  
   public long getLong(String name) {
 286  0
     return ((Value<Long>) getValue(name)).get();
 287  
   }
 288  
 
 289  
   /**
 290  
    * Returns the property value as a double.
 291  
    *
 292  
    * @throws DatastoreException if not such property.
 293  
    * @throws ClassCastException if value is not a double.
 294  
    */
 295  
   @SuppressWarnings("unchecked")
 296  
   public double getDouble(String name) {
 297  0
     return ((Value<Double>) getValue(name)).get();
 298  
   }
 299  
 
 300  
   /**
 301  
    * Returns the property value as a boolean.
 302  
    *
 303  
    * @throws DatastoreException if not such property.
 304  
    * @throws ClassCastException if value is not a boolean.
 305  
    */
 306  
   @SuppressWarnings("unchecked")
 307  
   public boolean getBoolean(String name) {
 308  0
     return ((Value<Boolean>) getValue(name)).get();
 309  
   }
 310  
 
 311  
   /**
 312  
    * Returns the property value as a DateTime.
 313  
    *
 314  
    * @throws DatastoreException if not such property.
 315  
    * @throws ClassCastException if value is not a DateTime.
 316  
    */
 317  
   @SuppressWarnings("unchecked")
 318  
   public DateTime getDateTime(String name) {
 319  0
     return ((Value<DateTime>) getValue(name)).get();
 320  
   }
 321  
 
 322  
   /**
 323  
    * Returns the property value as a Key.
 324  
    *
 325  
    * @throws DatastoreException if not such property.
 326  
    * @throws ClassCastException if value is not a Key.
 327  
    */
 328  
   @SuppressWarnings("unchecked")
 329  
   public Key getKey(String name) {
 330  0
     return ((Value<Key>) getValue(name)).get();
 331  
   }
 332  
 
 333  
   /**
 334  
    * Returns the property value as an entity.
 335  
    *
 336  
    * @throws DatastoreException if not such property.
 337  
    * @throws ClassCastException if value is not an entity.
 338  
    */
 339  
   @SuppressWarnings("unchecked")
 340  
   public <K extends IncompleteKey> FullEntity<K> getEntity(String name) {
 341  0
     return ((Value<FullEntity<K>>) getValue(name)).get();
 342  
   }
 343  
 
 344  
   /**
 345  
    * Returns the property value as a list of values.
 346  
    *
 347  
    * @throws DatastoreException if not such property.
 348  
    * @throws ClassCastException if value is not a list of values.
 349  
    */
 350  
   @SuppressWarnings("unchecked")
 351  
   public List<? extends Value<?>> getList(String name) {
 352  0
     return ((Value<List<? extends Value<?>>>) getValue(name)).get();
 353  
   }
 354  
 
 355  
   /**
 356  
    * Returns the property value as a blob.
 357  
    *
 358  
    * @throws DatastoreException if not such property.
 359  
    * @throws ClassCastException if value is not a blob.
 360  
    */
 361  
   @SuppressWarnings("unchecked")
 362  
   public Blob getBlob(String name) {
 363  0
     return ((Value<Blob>) getValue(name)).get();
 364  
   }
 365  
 
 366  
   /**
 367  
    * Returns the properties name.
 368  
    */
 369  
   public Set<String> names() {
 370  0
     return properties.keySet();
 371  
   }
 372  
 
 373  
   ImmutableSortedMap<String, Value<?>> properties() {
 374  0
     return properties;
 375  
   }
 376  
 
 377  
   @Override
 378  
   protected Object fromPb(byte[] bytesPb) throws InvalidProtocolBufferException {
 379  0
     Builder<?, ?> builder = emptyBuilder();
 380  0
     builder.fill(DatastoreV1.Entity.parseFrom(bytesPb));
 381  0
     return builder.build();
 382  
   }
 383  
 
 384  
   protected abstract Builder<?, ?> emptyBuilder();
 385  
 
 386  
   @Override
 387  
   protected final DatastoreV1.Entity toPb() {
 388  0
     DatastoreV1.Entity.Builder entityPb = DatastoreV1.Entity.newBuilder();
 389  0
     for (Map.Entry<String, Value<?>> entry : properties.entrySet()) {
 390  0
       DatastoreV1.Property.Builder propertyPb = DatastoreV1.Property.newBuilder();
 391  0
       propertyPb.setName(entry.getKey());
 392  0
       propertyPb.setValue(entry.getValue().toPb());
 393  0
       entityPb.addProperty(propertyPb.build());
 394  0
     }
 395  0
     if (key != null) {
 396  0
       entityPb.setKey(key.toPb());
 397  
     }
 398  0
     return entityPb.build();
 399  
   }
 400  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.BaseKey.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.BaseKey.html new file mode 100644 index 000000000000..a211895b0456 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.BaseKey.html @@ -0,0 +1,347 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.BaseKey
+
 
+ + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
BaseKey
0%
0/34
0%
0/22
1.524
BaseKey$Builder
0%
0/28
0%
0/4
1.524
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import static com.google.gcloud.datastore.Validator.validateDatabase;
 20  
 import static com.google.gcloud.datastore.Validator.validateKind;
 21  
 import static com.google.gcloud.datastore.Validator.validateNamespace;
 22  
 
 23  
 import com.google.api.services.datastore.DatastoreV1;
 24  
 import com.google.common.base.Preconditions;
 25  
 import com.google.common.collect.ImmutableList;
 26  
 
 27  
 import java.util.LinkedList;
 28  
 import java.util.List;
 29  
 import java.util.Objects;
 30  
 
 31  
 /**
 32  
  * Base class for keys.
 33  
  */
 34  0
 abstract class BaseKey extends Serializable<DatastoreV1.Key> {
 35  
 
 36  
   private static final long serialVersionUID = -4671243265877410635L;
 37  
 
 38  
   private final transient String projectId;
 39  
   private final transient String namespace;
 40  
   private final transient ImmutableList<PathElement> path;
 41  
 
 42  
   abstract static class Builder<B extends Builder<B>> {
 43  
 
 44  
     String projectId;
 45  
     String namespace;
 46  
     String kind;
 47  
     final List<PathElement> ancestors;
 48  
 
 49  
     private static final int MAX_PATH = 100;
 50  
 
 51  0
     Builder(String projectId) {
 52  0
       this.projectId = validateDatabase(projectId);
 53  0
       ancestors = new LinkedList<>();
 54  0
     }
 55  
 
 56  
     Builder(String projectId, String kind) {
 57  0
       this(projectId);
 58  0
       this.kind = validateKind(kind);
 59  0
     }
 60  
 
 61  0
     Builder(BaseKey copyFrom) {
 62  0
       projectId = copyFrom.projectId();
 63  0
       namespace = copyFrom.namespace();
 64  0
       ancestors = new LinkedList<>(copyFrom.ancestors());
 65  0
       kind = copyFrom.kind();
 66  0
     }
 67  
 
 68  
     @SuppressWarnings("unchecked")
 69  
     B self() {
 70  0
       return (B) this;
 71  
     }
 72  
 
 73  
     public B ancestors(PathElement ancestor) {
 74  0
       Preconditions.checkState(ancestors.size() < MAX_PATH, "path can have at most 100 elements");
 75  0
       ancestors.add(ancestor);
 76  0
       return self();
 77  
     }
 78  
 
 79  
     public B ancestors(PathElement ancestor, PathElement... other) {
 80  0
       return ancestors(ImmutableList.<PathElement>builder().add(ancestor).add(other).build());
 81  
     }
 82  
 
 83  
     public B ancestors(Iterable<PathElement> ancestors) {
 84  0
       ImmutableList<PathElement> list = ImmutableList.copyOf(ancestors);
 85  0
       Preconditions.checkState(this.ancestors.size() + list.size() < MAX_PATH,
 86  
           "path can have at most 100 elements");
 87  0
       this.ancestors.addAll(list);
 88  0
       return self();
 89  
     }
 90  
 
 91  
     public B kind(String kind) {
 92  0
       this.kind = validateKind(kind);
 93  0
       return self();
 94  
     }
 95  
 
 96  
     public B projectId(String projectId) {
 97  0
       this.projectId = validateDatabase(projectId);
 98  0
       return self();
 99  
     }
 100  
 
 101  
     public B namespace(String namespace) {
 102  0
       this.namespace = validateNamespace(namespace);
 103  0
       return self();
 104  
     }
 105  
 
 106  
     protected abstract BaseKey build();
 107  
   }
 108  
 
 109  0
   BaseKey(String projectId, String namespace, ImmutableList<PathElement> path) {
 110  0
     Preconditions.checkArgument(!path.isEmpty(), "Path must not be empty");
 111  0
     this.projectId = projectId;
 112  0
     this.namespace = namespace;
 113  0
     this.path = path;
 114  0
   }
 115  
 
 116  
   /**
 117  
    * Returns the key's projectId.
 118  
    */
 119  
   public String projectId() {
 120  0
     return projectId;
 121  
   }
 122  
 
 123  
   /**
 124  
    * Returns the key's namespace or {@code null} if not provided.
 125  
    */
 126  
   public String namespace() {
 127  0
     return namespace;
 128  
   }
 129  
 
 130  
   /**
 131  
    * Returns an immutable list with the key's ancestors.
 132  
    */
 133  
   public List<PathElement> ancestors() {
 134  0
     return path().subList(0, path().size() - 1);
 135  
   }
 136  
 
 137  
   /**
 138  
    * Returns an immutable list of the key's path (ancestors + self).
 139  
    */
 140  
   List<PathElement> path() {
 141  0
     return path;
 142  
   }
 143  
 
 144  
   PathElement leaf() {
 145  0
     return path().get(path().size() - 1);
 146  
   }
 147  
 
 148  
   /**
 149  
    * Returns the key's kind.
 150  
    */
 151  
   public String kind() {
 152  0
     return leaf().kind();
 153  
   }
 154  
 
 155  
   @Override
 156  
   public int hashCode() {
 157  0
     return Objects.hash(projectId(), namespace(), path());
 158  
   }
 159  
 
 160  
   @Override
 161  
   public boolean equals(Object obj) {
 162  0
     if (obj == this) {
 163  0
       return true;
 164  
     }
 165  0
     if (!(obj instanceof BaseKey)) {
 166  0
       return false;
 167  
     }
 168  0
     BaseKey other = (BaseKey) obj;
 169  0
     return Objects.equals(projectId(), other.projectId())
 170  0
         && Objects.equals(namespace(), other.namespace())
 171  0
         && Objects.equals(path(), other.path());
 172  
   }
 173  
 
 174  
   @Override
 175  
   protected DatastoreV1.Key toPb() {
 176  0
     DatastoreV1.Key.Builder keyPb = DatastoreV1.Key.newBuilder();
 177  0
     DatastoreV1.PartitionId.Builder partitionIdPb = DatastoreV1.PartitionId.newBuilder();
 178  0
     if (projectId != null) {
 179  0
       partitionIdPb.setDatasetId(projectId);
 180  
     }
 181  0
     if (namespace != null) {
 182  0
       partitionIdPb.setNamespace(namespace);
 183  
     }
 184  0
     if (partitionIdPb.hasDatasetId() || partitionIdPb.hasNamespace()) {
 185  0
       keyPb.setPartitionId(partitionIdPb.build());
 186  
     }
 187  0
     for (PathElement pathEntry : path) {
 188  0
       keyPb.addPathElement(pathEntry.toPb());
 189  0
     }
 190  0
     return keyPb.build();
 191  
   }
 192  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.Batch.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.Batch.html new file mode 100644 index 000000000000..e1e2a3048a9d --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.Batch.html @@ -0,0 +1,133 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.Batch
+
 
+ + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
Batch
N/A
N/A
1
Batch$Response
N/A
N/A
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import java.util.List;
 20  
 
 21  
 /**
 22  
  * An interface to represent a batch of write operations.
 23  
  * Any write operation that is applied on a batch will only be sent
 24  
  * to the Datastore upon {@link #submit}.
 25  
  * A usage example:
 26  
  * <pre> {@code
 27  
  *   Entity entity1 = datastore.get(key1);
 28  
  *   Batch batch = datastore.newBatch();
 29  
  *   Entity entity2 = Entity.builder(key2).set("name", "John").build();
 30  
  *   entity1 = Entity.builder(entity1).clear().setNull("bla").build();
 31  
  *   Entity entity3 = Entity.builder(key3).set("title", "title").build();
 32  
  *   batch.update(entity1);
 33  
  *   batch.add(entity2, entity3);
 34  
  *   batch.submit();
 35  
  * } </pre>
 36  
  */
 37  
 public interface Batch extends DatastoreBatchWriter {
 38  
 
 39  
   interface Response {
 40  
     List<Key> generatedKeys();
 41  
   }
 42  
 
 43  
   /**
 44  
    * Submit the batch to the Datastore.
 45  
    *
 46  
    * @throws DatastoreException if there was any failure or if batch is not longer active
 47  
    */
 48  
   Response submit();
 49  
 
 50  
   /**
 51  
    * Returns the batch associated {@link Datastore}.
 52  
    */
 53  
   Datastore datastore();
 54  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.BatchImpl.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.BatchImpl.html new file mode 100644 index 000000000000..56368f24cb98 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.BatchImpl.html @@ -0,0 +1,169 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.BatchImpl
+
 
+ + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
BatchImpl
0%
0/18
0%
0/4
1.333
BatchImpl$ResponseImpl
0%
0/1
N/A
1.333
BatchImpl$ResponseImpl$1
0%
0/2
N/A
1.333
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import com.google.api.services.datastore.DatastoreV1;
 20  
 import com.google.common.base.Function;
 21  
 import com.google.common.collect.Lists;
 22  
 import com.google.gcloud.datastore.BatchOption.ForceWrites;
 23  
 
 24  
 import java.util.List;
 25  
 import java.util.Map;
 26  
 
 27  
 
 28  
 class BatchImpl extends BaseDatastoreBatchWriter implements Batch {
 29  
 
 30  
   private final DatastoreImpl datastore;
 31  
   private final boolean force;
 32  
 
 33  
   static class ResponseImpl implements Batch.Response {
 34  
 
 35  
     private final DatastoreV1.CommitResponse response;
 36  
 
 37  
     ResponseImpl(DatastoreV1.CommitResponse response) {
 38  
       this.response = response;
 39  
     }
 40  
 
 41  
     @Override
 42  
     public List<Key> generatedKeys() {
 43  0
       return Lists.transform(response.getMutationResult().getInsertAutoIdKeyList(),
 44  0
           new Function<DatastoreV1.Key, Key>() {
 45  
             @Override public Key apply(DatastoreV1.Key keyPb) {
 46  0
               return Key.fromPb(keyPb);
 47  
             }
 48  
           });
 49  
     }
 50  
   }
 51  
 
 52  
   BatchImpl(DatastoreImpl datastore, BatchOption... options) {
 53  0
     super("batch");
 54  0
     this.datastore = datastore;
 55  0
     Map<Class<? extends BatchOption>, BatchOption> optionsMap = BatchOption.asImmutableMap(options);
 56  0
     if (optionsMap.containsKey(ForceWrites.class)) {
 57  0
       force = ((ForceWrites) optionsMap.get(ForceWrites.class)).force();
 58  
     } else {
 59  0
       force = datastore.options().force();
 60  
     }
 61  0
   }
 62  
 
 63  
   @Override
 64  
   public Batch.Response submit() {
 65  0
     validateActive();
 66  0
     DatastoreV1.Mutation.Builder mutationPb = toMutationPb();
 67  0
     if (force) {
 68  0
       mutationPb.setForce(force);
 69  
     }
 70  0
     DatastoreV1.CommitRequest.Builder requestPb = DatastoreV1.CommitRequest.newBuilder();
 71  0
     requestPb.setMode(DatastoreV1.CommitRequest.Mode.NON_TRANSACTIONAL);
 72  0
     requestPb.setMutation(mutationPb);
 73  0
     DatastoreV1.CommitResponse responsePb = datastore.commit(requestPb.build());
 74  0
     deactivate();
 75  0
     return new ResponseImpl(responsePb);
 76  
   }
 77  
 
 78  
   @Override
 79  
   public Datastore datastore() {
 80  0
     return datastore;
 81  
   }
 82  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.BatchOption.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.BatchOption.html new file mode 100644 index 000000000000..7ce9f94e7b85 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.BatchOption.html @@ -0,0 +1,135 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.BatchOption
+
 
+ + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
BatchOption
0%
0/5
0%
0/2
1.2
BatchOption$ForceWrites
0%
0/1
N/A
1.2
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import com.google.common.collect.ImmutableMap;
 20  
 
 21  
 import java.util.Map;
 22  
 
 23  
 public abstract class BatchOption implements java.io.Serializable {
 24  
 
 25  
   private static final long serialVersionUID = -3932758377282659839L;
 26  
 
 27  
   public static final class ForceWrites extends BatchOption {
 28  
 
 29  
     private static final long serialVersionUID = 2555054296046232799L;
 30  
 
 31  
     private final boolean force;
 32  
 
 33  
     public ForceWrites(boolean force) {
 34  
       this.force = force;
 35  
     }
 36  
 
 37  
     public boolean force() {
 38  0
       return force;
 39  
     }
 40  
   }
 41  
 
 42  
   BatchOption() {
 43  
     // package protected
 44  
   }
 45  
 
 46  
   public static ForceWrites forceWrites() {
 47  0
     return new ForceWrites(true);
 48  
   }
 49  
 
 50  
   static Map<Class<? extends BatchOption>, BatchOption> asImmutableMap(BatchOption... options) {
 51  
     ImmutableMap.Builder<Class<? extends BatchOption>, BatchOption> builder =
 52  0
         ImmutableMap.builder();
 53  0
     for (BatchOption option : options) {
 54  0
       builder.put(option.getClass(), option);
 55  
     }
 56  0
     return builder.build();
 57  
   }
 58  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.Blob.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.Blob.html new file mode 100644 index 000000000000..b8683bc3049f --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.Blob.html @@ -0,0 +1,306 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.Blob
+
 
+ + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
Blob
0%
0/32
0%
0/12
1.353
Blob$1
0%
0/1
0%
0/2
1.353
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import static com.google.common.base.Preconditions.checkNotNull;
 20  
 
 21  
 import com.google.api.services.datastore.DatastoreV1;
 22  
 import com.google.api.services.datastore.DatastoreV1.Value;
 23  
 import com.google.common.base.MoreObjects;
 24  
 import com.google.common.base.MoreObjects.ToStringHelper;
 25  
 import com.google.protobuf.ByteString;
 26  
 import com.google.protobuf.InvalidProtocolBufferException;
 27  
 
 28  
 import java.io.BufferedInputStream;
 29  
 import java.io.ByteArrayOutputStream;
 30  
 import java.io.IOException;
 31  
 import java.io.InputStream;
 32  
 import java.nio.ByteBuffer;
 33  
 
 34  
 /**
 35  
  * A Google Cloud Datastore Blob.
 36  
  * This class is immutable.
 37  
  *
 38  
  * @see <a href="https://cloud.google.com/datastore/docs/concepts/entities">Google Cloud Datastore Entities, Properties, and Keys</a>
 39  
  */
 40  0
 public final class Blob extends Serializable<DatastoreV1.Value> {
 41  
 
 42  
   private static final long serialVersionUID = 3835421019618247721L;
 43  
 
 44  
   private final transient ByteString byteString;
 45  
 
 46  0
   Blob(ByteString byteString) {
 47  0
     this.byteString = checkNotNull(byteString);
 48  0
   }
 49  
 
 50  
   @Override
 51  
   public String toString() {
 52  0
     ToStringHelper toStringHelper = MoreObjects.toStringHelper(this);
 53  0
     StringBuilder stBuilder = new StringBuilder();
 54  0
     for (int i = 0; i < Math.min(256, byteString.size()); i++) {
 55  0
       stBuilder.append(String.format("%02x", byteString.byteAt(i)));
 56  
     }
 57  0
     if (byteString.size() > 256) {
 58  0
       stBuilder.append("...");
 59  
     }
 60  0
     return toStringHelper.add("bytes", stBuilder.toString()).toString();
 61  
   }
 62  
 
 63  
   @Override
 64  
   public int hashCode() {
 65  0
     return byteString.hashCode();
 66  
   }
 67  
 
 68  
   @Override
 69  
   public boolean equals(Object obj) {
 70  0
     return obj == this || obj instanceof Blob && byteString.equals(((Blob) obj).byteString);
 71  
   }
 72  
 
 73  
   /**
 74  
    * Returns the size of this blob.
 75  
    */
 76  
   public int length() {
 77  0
     return byteString.size();
 78  
   }
 79  
 
 80  
   /**
 81  
    * Returns a copy as byte array.
 82  
    */
 83  
   public byte[] toByteArray() {
 84  0
     return byteString.toByteArray();
 85  
   }
 86  
 
 87  
   /**
 88  
    * Returns a read-only {@link ByteBuffer} for this blob content.
 89  
    */
 90  
   public ByteBuffer asReadOnlyByteBuffer() {
 91  0
     return byteString.asReadOnlyByteBuffer();
 92  
   }
 93  
 
 94  
   /**
 95  
    * Returns an {@link InputStream} for this blob content.
 96  
    */
 97  
   public InputStream asInputStream() {
 98  0
     final ByteBuffer byteBuffer = asReadOnlyByteBuffer();
 99  0
     return new InputStream() {
 100  
       @Override public int read() {
 101  0
         return !byteBuffer.hasRemaining() ? -1 : byteBuffer.get() & 0xFF;
 102  
       }
 103  
     };
 104  
   }
 105  
 
 106  
   /**
 107  
    * Copies bytes into a ByteBuffer.
 108  
    *
 109  
    * @throws java.nio.ReadOnlyBufferException if the target is read-only
 110  
    * @throws java.nio.BufferOverflowException if the target's remaining() space is not large
 111  
    *        enough to hold the data.
 112  
    */
 113  
   public void copyTo(ByteBuffer target) {
 114  0
     byteString.copyTo(target);
 115  0
   }
 116  
 
 117  
   /**
 118  
    * Copies bytes into a buffer.
 119  
    *
 120  
    * @throws IndexOutOfBoundsException if an offset or size is negative or too large
 121  
    */
 122  
   public void copyTo(byte[] target) {
 123  0
     byteString.copyTo(target, 0, 0, length());
 124  0
   }
 125  
 
 126  
   ByteString byteString() {
 127  0
     return byteString;
 128  
   }
 129  
 
 130  
   public static Blob copyFrom(byte[] bytes) {
 131  0
     return new Blob(ByteString.copyFrom(bytes));
 132  
   }
 133  
 
 134  
   public static Blob copyFrom(ByteBuffer bytes) {
 135  0
     return new Blob(ByteString.copyFrom(bytes));
 136  
   }
 137  
 
 138  
   public static Blob copyFrom(InputStream input) throws IOException {
 139  0
     BufferedInputStream bufferedInput = new BufferedInputStream(input);
 140  0
     ByteArrayOutputStream bytes = new ByteArrayOutputStream();
 141  
     int value;
 142  0
     while ((value = bufferedInput.read()) != -1) {
 143  0
       bytes.write(value);
 144  
     }
 145  0
     return copyFrom(bytes.toByteArray());
 146  
   }
 147  
 
 148  
   @Override
 149  
   protected Value toPb() {
 150  0
     return DatastoreV1.Value.newBuilder().setBlobValue(byteString).build();
 151  
   }
 152  
 
 153  
   @Override
 154  
   protected Object fromPb(byte[] bytesPb) throws InvalidProtocolBufferException {
 155  0
     return new Blob(DatastoreV1.Value.parseFrom(bytesPb).getBlobValue());
 156  
   }
 157  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.BlobValue.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.BlobValue.html new file mode 100644 index 000000000000..67a05cfbc6f1 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.BlobValue.html @@ -0,0 +1,179 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.BlobValue
+
 
+ + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
BlobValue
0%
0/7
N/A
1
BlobValue$1
0%
0/6
N/A
1
BlobValue$Builder
0%
0/4
N/A
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import static com.google.api.services.datastore.DatastoreV1.Value.BLOB_VALUE_FIELD_NUMBER;
 20  
 
 21  
 import com.google.api.services.datastore.DatastoreV1;
 22  
 
 23  0
 public final class BlobValue extends Value<Blob> {
 24  
 
 25  
   private static final long serialVersionUID = -5096238337676649540L;
 26  
 
 27  0
   static final BaseMarshaller<Blob, BlobValue, Builder> MARSHALLER =
 28  0
       new BaseMarshaller<Blob, BlobValue, Builder>() {
 29  
 
 30  
         private static final long serialVersionUID = -823515687083612387L;
 31  
 
 32  
         @Override
 33  
         public int getProtoFieldId() {
 34  0
           return BLOB_VALUE_FIELD_NUMBER;
 35  
         }
 36  
 
 37  
         @Override
 38  
         public Builder newBuilder(Blob value) {
 39  0
           return builder(value);
 40  
         }
 41  
 
 42  
         @Override
 43  
         protected Blob getValue(DatastoreV1.Value from) {
 44  0
           return new Blob(from.getBlobValue());
 45  
         }
 46  
 
 47  
         @Override
 48  
         protected void setValue(BlobValue from, DatastoreV1.Value.Builder to) {
 49  0
           to.setBlobValue(from.get().byteString());
 50  0
         }
 51  
       };
 52  
 
 53  0
   public static final class Builder extends Value.BaseBuilder<Blob, BlobValue, Builder> {
 54  
 
 55  
     private Builder() {
 56  0
       super(ValueType.BLOB);
 57  0
     }
 58  
 
 59  
     @Override
 60  
     public BlobValue build() {
 61  0
       return new BlobValue(this);
 62  
     }
 63  
   }
 64  
 
 65  
   public BlobValue(Blob blob) {
 66  0
     this(builder(blob));
 67  0
   }
 68  
 
 69  
   private BlobValue(Builder builder) {
 70  
     super(builder);
 71  
   }
 72  
 
 73  
   @Override
 74  
   public Builder toBuilder() {
 75  0
     return new Builder().mergeFrom(this);
 76  
   }
 77  
 
 78  
   public static BlobValue of(Blob blob) {
 79  0
     return new BlobValue(blob);
 80  
   }
 81  
 
 82  
   public static Builder builder(Blob blob) {
 83  0
     return new Builder().set(blob);
 84  
   }
 85  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.BooleanValue.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.BooleanValue.html new file mode 100644 index 000000000000..0a3c008782e7 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.BooleanValue.html @@ -0,0 +1,180 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.BooleanValue
+
 
+ + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
BooleanValue
0%
0/7
N/A
1
BooleanValue$1
0%
0/5
N/A
1
BooleanValue$Builder
0%
0/4
N/A
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import static com.google.api.services.datastore.DatastoreV1.Value.BOOLEAN_VALUE_FIELD_NUMBER;
 20  
 
 21  
 import com.google.api.services.datastore.DatastoreV1;
 22  
 
 23  0
 public final class BooleanValue extends Value<Boolean> {
 24  
 
 25  
   private static final long serialVersionUID = -542649497897250340L;
 26  
 
 27  0
   static final BaseMarshaller<Boolean, BooleanValue, Builder> MARSHALLER =
 28  0
       new BaseMarshaller<Boolean, BooleanValue, Builder>() {
 29  
 
 30  
         private static final long serialVersionUID = 7080467411349092522L;
 31  
 
 32  
         @Override
 33  
         public int getProtoFieldId() {
 34  
           return BOOLEAN_VALUE_FIELD_NUMBER;
 35  
         }
 36  
 
 37  
         @Override
 38  
         public Builder newBuilder(Boolean value) {
 39  0
           return builder(value);
 40  
         }
 41  
 
 42  
         @Override
 43  
         protected Boolean getValue(DatastoreV1.Value from) {
 44  0
           return from.getBooleanValue();
 45  
         }
 46  
 
 47  
         @Override
 48  
         protected void setValue(BooleanValue from, DatastoreV1.Value.Builder to) {
 49  0
           to.setBooleanValue(from.get());
 50  0
         }
 51  
       };
 52  
 
 53  0
   public static final class Builder extends Value.BaseBuilder<Boolean, BooleanValue, Builder> {
 54  
 
 55  
     private Builder() {
 56  0
       super(ValueType.BOOLEAN);
 57  0
     }
 58  
 
 59  
     @Override
 60  
     public BooleanValue build() {
 61  0
       return new BooleanValue(this);
 62  
     }
 63  
   }
 64  
 
 65  
   public BooleanValue(boolean value) {
 66  0
     this(builder(value));
 67  0
   }
 68  
 
 69  
   private BooleanValue(Builder builder) {
 70  
     super(builder);
 71  
   }
 72  
 
 73  
   @Override
 74  
   public Builder toBuilder() {
 75  0
     return new Builder().mergeFrom(this);
 76  
   }
 77  
 
 78  
   public static BooleanValue of(boolean value) {
 79  0
     return new BooleanValue(value);
 80  
   }
 81  
 
 82  
   public static Builder builder(boolean value) {
 83  0
     return new Builder().set(value);
 84  
   }
 85  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.Cursor.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.Cursor.html new file mode 100644 index 000000000000..81908becb6aa --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.Cursor.html @@ -0,0 +1,232 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.Cursor
+
 
+ + + + +
Classes in this File Line Coverage Branch Coverage Complexity
Cursor
0%
0/26
0%
0/8
1.818
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import static com.google.common.base.Preconditions.checkNotNull;
 20  
 import static java.nio.charset.StandardCharsets.UTF_8;
 21  
 
 22  
 import com.google.api.services.datastore.DatastoreV1;
 23  
 import com.google.api.services.datastore.DatastoreV1.Value;
 24  
 import com.google.common.base.MoreObjects;
 25  
 import com.google.common.base.MoreObjects.ToStringHelper;
 26  
 import com.google.common.base.Preconditions;
 27  
 import com.google.protobuf.ByteString;
 28  
 import com.google.protobuf.InvalidProtocolBufferException;
 29  
 import com.google.protobuf.TextFormat;
 30  
 import com.google.protobuf.TextFormat.ParseException;
 31  
 
 32  
 import java.io.UnsupportedEncodingException;
 33  
 import java.net.URLDecoder;
 34  
 import java.net.URLEncoder;
 35  
 
 36  
 /**
 37  
  * A Google Cloud Datastore cursor.
 38  
  * The cursor can be used to as a starting point or an ending point for a {@link Query}
 39  
  */
 40  0
 public final class Cursor extends Serializable<DatastoreV1.Value> {
 41  
 
 42  
   private static final long serialVersionUID = -1423744878777486541L;
 43  
 
 44  
   private final transient ByteString byteString;
 45  
 
 46  0
   Cursor(ByteString byteString) {
 47  0
     Preconditions.checkArgument(byteString.isValidUtf8(), "content is not a valid UTF-8");
 48  0
     this.byteString = byteString;
 49  0
   }
 50  
 
 51  
   @Override
 52  
   public int hashCode() {
 53  0
     return byteString.hashCode();
 54  
   }
 55  
 
 56  
   @Override
 57  
   public boolean equals(Object obj) {
 58  0
     return obj == this || obj instanceof Cursor && byteString.equals(((Cursor) obj).byteString);
 59  
   }
 60  
 
 61  
   @Override
 62  
   public String toString() {
 63  0
     ToStringHelper toStringHelper = MoreObjects.toStringHelper(this);
 64  0
     StringBuilder stBuilder = new StringBuilder();
 65  0
     for (int i = 0; i < byteString.size(); i++) {
 66  0
       stBuilder.append(String.format("%02x", byteString.byteAt(i)));
 67  
     }
 68  0
     return toStringHelper.add("bytes", stBuilder.toString()).toString();
 69  
   }
 70  
 
 71  
   ByteString byteString() {
 72  0
     return byteString;
 73  
   }
 74  
 
 75  
   /**
 76  
    * Returns the cursor in an encoded form that can be used as part of a URL.
 77  
    */
 78  
   public String toUrlSafe() {
 79  
     try {
 80  0
       return URLEncoder.encode(TextFormat.printToString(toPb()), UTF_8.name());
 81  0
     } catch (UnsupportedEncodingException e) {
 82  0
       throw new IllegalStateException("Unexpected encoding exception", e);
 83  
     }
 84  
   }
 85  
 
 86  
   /**
 87  
    * Create a {@code Cursor} given its URL safe encoded form.
 88  
    */
 89  
   public static Cursor fromUrlSafe(String urlSafe) {
 90  
     try {
 91  0
       String utf8Str = URLDecoder.decode(urlSafe, UTF_8.name());
 92  0
       DatastoreV1.Value.Builder builder = DatastoreV1.Value.newBuilder();
 93  0
       TextFormat.merge(utf8Str, builder);
 94  0
       return fromPb(builder.build());
 95  0
     } catch (UnsupportedEncodingException | ParseException e) {
 96  0
       throw new IllegalStateException("Unexpected decoding exception", e);
 97  
     }
 98  
   }
 99  
 
 100  
   public static Cursor copyFrom(byte[] bytes) {
 101  0
     return new Cursor(ByteString.copyFrom(checkNotNull(bytes)));
 102  
   }
 103  
 
 104  
   @Override
 105  
   protected Value toPb() {
 106  0
     return DatastoreV1.Value.newBuilder().setBlobValue(byteString).build();
 107  
   }
 108  
 
 109  
   @Override
 110  
   protected Object fromPb(byte[] bytesPb) throws InvalidProtocolBufferException {
 111  0
     return fromPb(DatastoreV1.Value.parseFrom(bytesPb));
 112  
   }
 113  
 
 114  
   static Cursor fromPb(DatastoreV1.Value valuePb) {
 115  0
     return new Cursor(valuePb.getBlobValue());
 116  
   }
 117  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.Datastore.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.Datastore.html new file mode 100644 index 000000000000..6ab5c581b04a --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.Datastore.html @@ -0,0 +1,243 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.Datastore
+
 
+ + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
Datastore
N/A
N/A
1
Datastore$TransactionCallable
N/A
N/A
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import com.google.gcloud.Service;
 20  
 
 21  
 import java.util.List;
 22  
 
 23  
 /**
 24  
  * An interface for Google Cloud Datastore.
 25  
  */
 26  
 public interface Datastore extends Service<DatastoreOptions>, DatastoreReaderWriter {
 27  
 
 28  
   /**
 29  
    * Returns a new Datastore transaction.
 30  
    *
 31  
    * @throws DatastoreException upon failure
 32  
    */
 33  
   Transaction newTransaction(TransactionOption... options);
 34  
 
 35  
 
 36  
   /**
 37  
    * A callback for running with a transactional
 38  
    * {@link com.google.gcloud.datastore.DatastoreReaderWriter}.
 39  
    * The associated transaction will be committed after a successful return from the {@code run}
 40  
    * method. Any propagated exception will cause the transaction to be rolled-back.
 41  
    *
 42  
    * @param <T> the type of the return value
 43  
    */
 44  
   interface TransactionCallable<T> {
 45  
     T run(DatastoreReaderWriter readerWriter) throws Exception;
 46  
   }
 47  
 
 48  
 
 49  
   /**
 50  
    * Invokes the callback's {@link Datastore.TransactionCallable#run} method with a
 51  
    * {@link DatastoreReaderWriter} that is associated with a new transaction.
 52  
    * The transaction will be committed upon successful invocation.
 53  
    * Any thrown exception will cause the transaction to rollback and will be propagated
 54  
    * as a {@link DatastoreException} with the original exception as its root cause.
 55  
    *
 56  
    * @param callable the callback to call with a newly created transactional readerWriter
 57  
    * @param options the options for the created transaction
 58  
    * @throws DatastoreException upon failure
 59  
    */
 60  
   <T> T runInTransaction(TransactionCallable<T> callable, TransactionOption... options);
 61  
 
 62  
   /**
 63  
    * Returns a new Batch for processing multiple write operations in one request.
 64  
    */
 65  
   Batch newBatch(BatchOption... options);
 66  
 
 67  
   /**
 68  
    * Allocate a unique id for the given key.
 69  
    * The returned key will have the same information (projectId, kind, namespace and ancestors)
 70  
    * as the given key and will have a newly assigned id.
 71  
    *
 72  
    * @throws DatastoreException upon failure
 73  
    */
 74  
   Key allocateId(IncompleteKey key);
 75  
 
 76  
   /**
 77  
    * Returns a list of keys using the allocated ids ordered by the input.
 78  
    *
 79  
    * @throws DatastoreException upon failure
 80  
    * @see #allocateId(IncompleteKey)
 81  
    */
 82  
   List<Key> allocateId(IncompleteKey... key);
 83  
 
 84  
   /**
 85  
    * {@inheritDoc}
 86  
    * @throws DatastoreException upon failure
 87  
    */
 88  
   @Override
 89  
   void update(Entity... entity);
 90  
 
 91  
   /**
 92  
    * {@inheritDoc}
 93  
    * @throws DatastoreException upon failure
 94  
    */
 95  
   @Override
 96  
   void put(Entity... entity);
 97  
 
 98  
   /**
 99  
    * {@inheritDoc}
 100  
    * @throws DatastoreException upon failure
 101  
    */
 102  
   @Override
 103  
   void delete(Key... key);
 104  
 
 105  
   /**
 106  
    * Returns a new KeyFactory for this service
 107  
    */
 108  
   KeyFactory newKeyFactory();
 109  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.DatastoreBatchWriter.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.DatastoreBatchWriter.html new file mode 100644 index 000000000000..d146fd3c602c --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.DatastoreBatchWriter.html @@ -0,0 +1,186 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.DatastoreBatchWriter
+
 
+ + + + +
Classes in this File Line Coverage Branch Coverage Complexity
DatastoreBatchWriter
N/A
N/A
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import java.util.List;
 20  
 
 21  
 /**
 22  
  * An interface to represent a batch of write operations.
 23  
  * All write operation for a batch writer will be applied to the Datastore in one RPC call.
 24  
  */
 25  
 interface DatastoreBatchWriter extends DatastoreWriter {
 26  
 
 27  
   /**
 28  
    * Datastore add operation.
 29  
    * This method will also allocate id for any entity with an incomplete key.
 30  
    * As oppose to {@link #add(FullEntity)}, this method will defer any necessary id allocation
 31  
    * to submit time.
 32  
    *
 33  
    * @throws IllegalArgumentException if any of the given entities is missing a key
 34  
    * @throws DatastoreException if a given entity with a
 35  
    *     complete key was already added to this writer or if not active
 36  
    */
 37  
   void addWithDeferredIdAllocation(FullEntity<?>... entity);
 38  
 
 39  
   /**
 40  
    * {@inheritDoc}
 41  
    * For entities with complete keys that were marked for deletion in this writer the operation
 42  
    * will be changed to {@link #put}.
 43  
    * @throws DatastoreException if a given entity with the
 44  
    *     same complete key was already added to this writer, if writer is not active or
 45  
    *     if id allocation for an entity with an incomplete key failed.
 46  
    */
 47  
   @Override
 48  
   List<Entity> add(FullEntity<?>... entity);
 49  
 
 50  
   /**
 51  
    * {@inheritDoc}
 52  
    * This operation will be converted to {@link #put} operation for entities that were already
 53  
    *     added or put in this writer
 54  
    * @throws DatastoreException if an entity is marked for
 55  
    *     deletion in this writer or if not active
 56  
    */
 57  
   @Override
 58  
   void update(Entity... entity);
 59  
 
 60  
   /**
 61  
    * {@inheritDoc}
 62  
    * This operation will also remove from this batch any prior writes for entities with the same
 63  
    *     keys
 64  
    * @throws DatastoreException if not active
 65  
    */
 66  
   @Override
 67  
   void delete(Key... key);
 68  
 
 69  
   /**
 70  
    * {@inheritDoc}
 71  
    * This operation will also remove from this writer any prior writes for the same entities.
 72  
    * @throws DatastoreException if not active
 73  
    */
 74  
   @Override
 75  
   void put(Entity... entity);
 76  
 
 77  
   /**
 78  
    * Returns {@code true} if still active (write operations were not sent to the Datastore).
 79  
    */
 80  
   boolean active();
 81  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.DatastoreException.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.DatastoreException.html new file mode 100644 index 000000000000..9321b6f8b5fd --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.DatastoreException.html @@ -0,0 +1,294 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.DatastoreException
+
 
+ + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
DatastoreException
0%
0/26
0%
0/6
1.615
DatastoreException$Code
0%
0/17
N/A
1.615
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import com.google.common.base.MoreObjects;
 20  
 import com.google.common.collect.ImmutableMap;
 21  
 import com.google.gcloud.RetryHelper;
 22  
 import com.google.gcloud.RetryHelper.RetryHelperException;
 23  
 import com.google.gcloud.spi.DatastoreRpc.DatastoreRpcException;
 24  
 import com.google.gcloud.spi.DatastoreRpc.DatastoreRpcException.Reason;
 25  
 
 26  
 import java.util.HashMap;
 27  
 import java.util.Map;
 28  
 
 29  
 public class DatastoreException extends RuntimeException {
 30  
 
 31  
   private static final long serialVersionUID = 8170357898917041899L;
 32  
   private static final ImmutableMap<String, Code> REASON_TO_CODE;
 33  
   private static final ImmutableMap<Integer, Code> HTTP_TO_CODE;
 34  
 
 35  
   private final Code code;
 36  
 
 37  
   /**
 38  
    * An error code to represent the failure.
 39  
    *
 40  
    * @see <a href="https://cloud.google.com/datastore/docs/concepts/errors#Error_Codes">Google Cloud
 41  
    *     Datastore error codes</a>
 42  
    */
 43  0
   public enum Code {
 44  
 
 45  0
     ABORTED(Reason.ABORTED),
 46  0
     DEADLINE_EXCEEDED(Reason.DEADLINE_EXCEEDED),
 47  0
     UNAVAILABLE(Reason.UNAVAILABLE),
 48  0
     FAILED_PRECONDITION(Reason.FAILED_PRECONDITION),
 49  0
     INVALID_ARGUMENT(Reason.INVALID_ARGUMENT),
 50  0
     PERMISSION_DENIED(Reason.PERMISSION_DENIED),
 51  0
     UNAUTHORIZED(false, "Unauthorized", 401),
 52  0
     INTERNAL(Reason.INTERNAL),
 53  0
     RESOURCE_EXHAUSTED(Reason.RESOURCE_EXHAUSTED),
 54  0
     UNKNOWN(false, "Unknown failure", -1);
 55  
 
 56  
     private final boolean retryable;
 57  
     private final String description;
 58  
     private final int httpStatus;
 59  
 
 60  
     Code(Reason reason) {
 61  0
       this(reason.retryable(), reason.description(), reason.httpStatus());
 62  0
     }
 63  
 
 64  
     Code(boolean retryable, String description, int httpStatus) {
 65  
       this.retryable = retryable;
 66  
       this.description = description;
 67  
       this.httpStatus = httpStatus;
 68  
     }
 69  
 
 70  
     public String description() {
 71  0
       return description;
 72  
     }
 73  
 
 74  
     public int httpStatus() {
 75  0
       return httpStatus;
 76  
     }
 77  
 
 78  
     /**
 79  
      * Returns {@code true} if this exception is transient and the same request could be retried.
 80  
      * For any retry it is highly recommended to apply an exponential backoff.
 81  
      */
 82  
     public boolean retryable() {
 83  0
       return retryable;
 84  
     }
 85  
 
 86  
     DatastoreException translate(DatastoreRpcException exception, String message) {
 87  0
       return new DatastoreException(this, message, exception);
 88  
     }
 89  
   }
 90  
 
 91  
   static {
 92  0
     ImmutableMap.Builder<String, Code> builder = ImmutableMap.builder();
 93  0
     Map<Integer, Code> httpCodes = new HashMap<>();
 94  0
     for (Code code : Code.values()) {
 95  0
       builder.put(code.name(), code);
 96  0
       httpCodes.put(code.httpStatus(), code);
 97  
     }
 98  0
     REASON_TO_CODE = builder.build();
 99  0
     HTTP_TO_CODE = ImmutableMap.copyOf(httpCodes);
 100  0
   }
 101  
 
 102  
   public DatastoreException(Code code, String message, Exception cause) {
 103  0
     super(MoreObjects.firstNonNull(message, code.description), cause);
 104  0
     this.code = code;
 105  0
   }
 106  
 
 107  
   public DatastoreException(Code code, String message) {
 108  0
     this(code, message, null);
 109  0
   }
 110  
 
 111  
   /**
 112  
    * Returns the code associated with this exception.
 113  
    */
 114  
   public Code code() {
 115  0
     return code;
 116  
   }
 117  
 
 118  
   static DatastoreException translateAndThrow(RetryHelperException ex) {
 119  0
     if (ex.getCause() instanceof DatastoreRpcException) {
 120  0
       return translateAndThrow((DatastoreRpcException) ex.getCause());
 121  
     }
 122  0
     if (ex instanceof RetryHelper.RetryInterruptedException) {
 123  0
       RetryHelper.RetryInterruptedException.propagate();
 124  
     }
 125  0
     throw new DatastoreException(Code.UNKNOWN, ex.getMessage(), ex);
 126  
   }
 127  
 
 128  
   /**
 129  
    * Translate DatastoreException to DatastoreException based on their
 130  
    * HTTP error codes. This method will always throw a new DatastoreException.
 131  
    *
 132  
    * @throws DatastoreException every time
 133  
    */
 134  
   static DatastoreException translateAndThrow(DatastoreRpcException exception) {
 135  0
     String message = exception.getMessage();
 136  0
     Code code = REASON_TO_CODE.get(exception.reason());
 137  0
     if (code == null) {
 138  0
       code = MoreObjects.firstNonNull(HTTP_TO_CODE.get(exception.httpStatus()), Code.UNKNOWN);
 139  
     }
 140  0
     throw code.translate(exception, message);
 141  
   }
 142  
 
 143  
   /**
 144  
    * Throw a DatastoreException with {@code FAILED_PRECONDITION} code and the {@code message}
 145  
    * in a nested exception.
 146  
    *
 147  
    * @throws DatastoreException every time
 148  
    */
 149  
   static DatastoreException throwInvalidRequest(String massage, Object... params) {
 150  0
     throw new DatastoreException(Code.FAILED_PRECONDITION, String.format(massage, params));
 151  
   }
 152  
 
 153  
   static DatastoreException propagateUserException(Exception ex) {
 154  0
     throw new DatastoreException(Code.UNKNOWN, ex.getMessage(), ex);
 155  
   }
 156  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.DatastoreFactory.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.DatastoreFactory.html new file mode 100644 index 000000000000..31c31a4d7a53 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.DatastoreFactory.html @@ -0,0 +1,108 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.DatastoreFactory
+
 
+ + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
DatastoreFactory
0%
0/2
N/A
1
DatastoreFactory$1
0%
0/1
N/A
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 
 20  
 /**
 21  
  * A base class for Datastore factories.
 22  
  */
 23  
 public abstract class DatastoreFactory {
 24  
 
 25  0
   private static final DatastoreFactory INSTANCE = new DatastoreFactory() {
 26  
       @Override
 27  
       public Datastore get(DatastoreOptions options) {
 28  0
         return new DatastoreImpl(options);
 29  
       }
 30  
     };
 31  
 
 32  
   /**
 33  
    * Returns the default factory instance.
 34  
    */
 35  
   public static DatastoreFactory instance() {
 36  0
     return INSTANCE;
 37  
   }
 38  
 
 39  
   /**
 40  
    * Returns a {@code Datastore} service for the given options.
 41  
    */
 42  
   public abstract Datastore get(DatastoreOptions options);
 43  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.DatastoreHelper.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.DatastoreHelper.html new file mode 100644 index 000000000000..a30d2f44a073 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.DatastoreHelper.html @@ -0,0 +1,177 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.DatastoreHelper
+
 
+ + + + +
Classes in this File Line Coverage Branch Coverage Complexity
DatastoreHelper
0%
0/23
0%
0/8
1.857
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import com.google.common.collect.Iterators;
 20  
 import com.google.common.collect.Maps;
 21  
 
 22  
 import java.util.ArrayList;
 23  
 import java.util.Iterator;
 24  
 import java.util.List;
 25  
 import java.util.Map;
 26  
 
 27  
 /**
 28  
  * Provide functionality that should be added to the appropriate interfaces
 29  
  * via Java 8 default methods.
 30  
  */
 31  
 class DatastoreHelper {
 32  
 
 33  
   private DatastoreHelper() {
 34  
   }
 35  
 
 36  
 
 37  
   static Key allocateId(Datastore service, IncompleteKey key) {
 38  0
     return service.allocateId(new IncompleteKey[]{key}).get(0);
 39  
   }
 40  
 
 41  
   static Entity get(DatastoreReader reader, Key key) {
 42  0
     return Iterators.getNext(reader.get(new Key[]{key}), null);
 43  
   }
 44  
 
 45  
   static Entity add(DatastoreWriter writer, FullEntity<?> entity) {
 46  0
     return writer.add(new FullEntity<?>[] {entity}).get(0);
 47  
   }
 48  
 
 49  
   static KeyFactory newKeyFactory(DatastoreOptions options) {
 50  0
     return new KeyFactory(options.projectId(), options.namespace());
 51  
   }
 52  
 
 53  
   /**
 54  
    * Returns a list with a value for each given key (ordered by input).
 55  
    * A {@code null} would be returned for non-existing keys.
 56  
    */
 57  
   static List<Entity> fetch(DatastoreReader reader, Key... keys) {
 58  0
     Iterator<Entity> entities = reader.get(keys);
 59  0
     Map<Key, Entity> map = Maps.newHashMapWithExpectedSize(keys.length);
 60  0
     while (entities.hasNext()) {
 61  0
       Entity entity = entities.next();
 62  0
       map.put(entity.key(), entity);
 63  0
     }
 64  0
     List<Entity> list = new ArrayList<>(keys.length);
 65  0
     for (Key key : keys) {
 66  
       // this will include nulls for non-existing keys
 67  0
       list.add(map.get(key));
 68  
     }
 69  0
     return list;
 70  
   }
 71  
 
 72  
   static <T> T runInTransaction(Datastore datastore,
 73  
       Datastore.TransactionCallable<T> callable, TransactionOption... options) {
 74  0
     Transaction transaction = datastore.newTransaction(options);
 75  
     try {
 76  0
       T value = callable.run(transaction);
 77  0
       transaction.commit();
 78  0
       return value;
 79  0
     } catch (Exception ex) {
 80  0
       transaction.rollback();
 81  0
       throw DatastoreException.propagateUserException(ex);
 82  
     } finally {
 83  0
       if (transaction.active()) {
 84  0
         transaction.rollback();
 85  
       }
 86  
     }
 87  
   }
 88  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.DatastoreImpl.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.DatastoreImpl.html new file mode 100644 index 000000000000..e4594f02ac4f --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.DatastoreImpl.html @@ -0,0 +1,641 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.DatastoreImpl
+
 
+ + + + + + + + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
DatastoreImpl
0%
0/127
0%
0/46
2.333
DatastoreImpl$1
0%
0/5
0%
0/4
2.333
DatastoreImpl$2
0%
0/2
N/A
2.333
DatastoreImpl$3
0%
0/2
N/A
2.333
DatastoreImpl$4
0%
0/2
N/A
2.333
DatastoreImpl$5
0%
0/2
N/A
2.333
DatastoreImpl$6
0%
0/2
N/A
2.333
DatastoreImpl$7
0%
0/3
N/A
2.333
DatastoreImpl$ResultsIterator
0%
0/16
0%
0/6
2.333
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import com.google.api.services.datastore.DatastoreV1;
 20  
 import com.google.common.base.MoreObjects;
 21  
 import com.google.common.base.Preconditions;
 22  
 import com.google.common.collect.AbstractIterator;
 23  
 import com.google.common.collect.ImmutableList;
 24  
 import com.google.common.collect.Sets;
 25  
 import com.google.gcloud.BaseService;
 26  
 import com.google.gcloud.ExceptionHandler;
 27  
 import com.google.gcloud.ExceptionHandler.Interceptor;
 28  
 import com.google.gcloud.RetryHelper;
 29  
 import com.google.gcloud.RetryHelper.RetryHelperException;
 30  
 import com.google.gcloud.RetryParams;
 31  
 import com.google.gcloud.spi.DatastoreRpc;
 32  
 import com.google.gcloud.spi.DatastoreRpc.DatastoreRpcException;
 33  
 import com.google.protobuf.ByteString;
 34  
 
 35  
 import java.util.Arrays;
 36  
 import java.util.Collections;
 37  
 import java.util.Iterator;
 38  
 import java.util.LinkedHashMap;
 39  
 import java.util.LinkedHashSet;
 40  
 import java.util.List;
 41  
 import java.util.Map;
 42  
 import java.util.Set;
 43  
 import java.util.concurrent.Callable;
 44  
 
 45  
 
 46  0
 final class DatastoreImpl extends BaseService<DatastoreOptions>
 47  
     implements Datastore {
 48  
 
 49  0
   private static final Interceptor EXCEPTION_HANDLER_INTERCEPTOR =
 50  
       new Interceptor() {
 51  
 
 52  
         private static final long serialVersionUID = 6911242958397733203L;
 53  
 
 54  
         @Override
 55  
         public RetryResult afterEval(Exception exception, RetryResult retryResult) {
 56  0
           return null;
 57  
         }
 58  
 
 59  
         @Override
 60  
         public RetryResult beforeEval(Exception exception) {
 61  0
           if (exception instanceof DatastoreRpcException) {
 62  0
             boolean retryable = ((DatastoreRpcException) exception).retryable();
 63  0
             return retryable ? Interceptor.RetryResult.RETRY : Interceptor.RetryResult.ABORT;
 64  
           }
 65  0
           return null;
 66  
         }
 67  
       };
 68  0
   private static final ExceptionHandler EXCEPTION_HANDLER = ExceptionHandler.builder()
 69  0
       .abortOn(RuntimeException.class, DatastoreRpcException.class)
 70  0
       .interceptor(EXCEPTION_HANDLER_INTERCEPTOR).build();
 71  
 
 72  
   private final DatastoreRpc datastoreRpc;
 73  
   private final RetryParams retryParams;
 74  
 
 75  
   DatastoreImpl(DatastoreOptions options) {
 76  0
     super(options);
 77  0
     this.datastoreRpc = options.datastoreRpc();
 78  0
     retryParams = MoreObjects.firstNonNull(options.retryParams(), RetryParams.noRetries());
 79  0
   }
 80  
 
 81  
   @Override
 82  
   public Batch newBatch(BatchOption... options) {
 83  0
     return new BatchImpl(this, options);
 84  
   }
 85  
 
 86  
   @Override
 87  
   public Transaction newTransaction(TransactionOption... options) {
 88  0
     return new TransactionImpl(this, options);
 89  
   }
 90  
 
 91  
   @Override
 92  
   public <T> T runInTransaction(TransactionCallable<T> callable, TransactionOption... options) {
 93  0
     return DatastoreHelper.runInTransaction(this, callable, options);
 94  
   }
 95  
 
 96  
   @Override
 97  
   public <T> QueryResults<T> run(Query<T> query) {
 98  0
     return run(null, query);
 99  
   }
 100  
 
 101  
   <T> QueryResults<T> run(DatastoreV1.ReadOptions readOptionsPb, Query<T> query) {
 102  0
     return new QueryResultsImpl<>(this, readOptionsPb, query);
 103  
   }
 104  
 
 105  
   DatastoreV1.RunQueryResponse runQuery(final DatastoreV1.RunQueryRequest requestPb) {
 106  
     try {
 107  0
       return RetryHelper.runWithRetries(new Callable<DatastoreV1.RunQueryResponse>() {
 108  
         @Override public DatastoreV1.RunQueryResponse call() throws DatastoreRpcException {
 109  0
           return datastoreRpc.runQuery(requestPb);
 110  
         }
 111  
       }, retryParams, EXCEPTION_HANDLER);
 112  0
     } catch (RetryHelperException e) {
 113  0
       throw DatastoreException.translateAndThrow(e);
 114  
     }
 115  
   }
 116  
 
 117  
   @Override
 118  
   public Key allocateId(IncompleteKey key) {
 119  0
     return DatastoreHelper.allocateId(this, key);
 120  
   }
 121  
 
 122  
   @Override
 123  
   public List<Key> allocateId(IncompleteKey... keys) {
 124  0
     if (keys.length == 0) {
 125  0
       return Collections.emptyList();
 126  
     }
 127  0
     DatastoreV1.AllocateIdsRequest.Builder requestPb = DatastoreV1.AllocateIdsRequest.newBuilder();
 128  0
     for (IncompleteKey key : keys) {
 129  0
       requestPb.addKey(trimNameOrId(key).toPb());
 130  
     }
 131  0
     DatastoreV1.AllocateIdsResponse responsePb = allocateIds(requestPb.build());
 132  0
     ImmutableList.Builder<Key> keyList = ImmutableList.builder();
 133  0
     for (DatastoreV1.Key keyPb : responsePb.getKeyList()) {
 134  0
       keyList.add(Key.fromPb(keyPb));
 135  0
     }
 136  0
     return keyList.build();
 137  
   }
 138  
 
 139  
   DatastoreV1.AllocateIdsResponse allocateIds(final DatastoreV1.AllocateIdsRequest requestPb) {
 140  
     try {
 141  0
       return RetryHelper.runWithRetries(new Callable<DatastoreV1.AllocateIdsResponse>() {
 142  
         @Override public DatastoreV1.AllocateIdsResponse call() throws DatastoreRpcException {
 143  0
           return datastoreRpc.allocateIds(requestPb);
 144  
         }
 145  
       }, retryParams, EXCEPTION_HANDLER);
 146  0
     } catch (RetryHelperException e) {
 147  0
       throw DatastoreException.translateAndThrow(e);
 148  
     }
 149  
   }
 150  
 
 151  
   private IncompleteKey trimNameOrId(IncompleteKey key) {
 152  0
     if (key instanceof Key) {
 153  0
       return IncompleteKey.builder(key).build();
 154  
     }
 155  0
     return key;
 156  
   }
 157  
 
 158  
   @Override
 159  
   public Entity add(FullEntity<?> entity) {
 160  0
     return DatastoreHelper.add(this, entity);
 161  
   }
 162  
 
 163  
   @SuppressWarnings("unchecked")
 164  
   @Override
 165  
   public List<Entity> add(FullEntity<?>... entities) {
 166  0
     if (entities.length == 0) {
 167  0
       return Collections.emptyList();
 168  
     }
 169  0
     DatastoreV1.Mutation.Builder mutationPb = DatastoreV1.Mutation.newBuilder();
 170  0
     Map<Key, Entity> completeEntities = new LinkedHashMap<>();
 171  0
     for (FullEntity<?> entity : entities) {
 172  0
       Entity completeEntity = null;
 173  0
       if (entity.key() instanceof Key) {
 174  0
         completeEntity = Entity.convert((FullEntity<Key>) entity);
 175  
       }
 176  0
       if (completeEntity != null) {
 177  0
         if (completeEntities.put(completeEntity.key(), completeEntity) != null) {
 178  0
           throw DatastoreException.throwInvalidRequest(
 179  0
               "Duplicate entity with the key %s", entity.key());
 180  
         }
 181  0
         mutationPb.addInsert(completeEntity.toPb());
 182  
       } else {
 183  0
         Preconditions.checkArgument(entity.hasKey(), "entity %s is missing a key", entity);
 184  0
         mutationPb.addInsertAutoId(entity.toPb());
 185  
       }
 186  
     }
 187  0
     DatastoreV1.CommitResponse commitResponse = commitMutation(mutationPb);
 188  0
     Iterator<DatastoreV1.Key> allocatedKeys =
 189  0
         commitResponse.getMutationResult().getInsertAutoIdKeyList().iterator();
 190  0
     ImmutableList.Builder<Entity> responseBuilder = ImmutableList.builder();
 191  0
     for (FullEntity<?> entity : entities) {
 192  0
       Entity completeEntity = completeEntities.get(entity.key());
 193  0
       if (completeEntity != null) {
 194  0
         responseBuilder.add(completeEntity);
 195  
       } else {
 196  0
         responseBuilder.add(Entity.builder(Key.fromPb(allocatedKeys.next()), entity).build());
 197  
       }
 198  
     }
 199  0
     return responseBuilder.build();
 200  
   }
 201  
 
 202  
   @Override
 203  
   public Entity get(Key key) {
 204  0
     return DatastoreHelper.get(this, key);
 205  
   }
 206  
 
 207  
   @Override
 208  
   public Iterator<Entity> get(Key... keys) {
 209  0
     return get(null, keys);
 210  
   }
 211  
 
 212  
   @Override
 213  
   public List<Entity> fetch(Key... keys) {
 214  0
     return DatastoreHelper.fetch(this, keys);
 215  
   }
 216  
 
 217  
   Iterator<Entity> get(DatastoreV1.ReadOptions readOptionsPb, final Key... keys) {
 218  0
     if (keys.length == 0) {
 219  0
       return Collections.emptyIterator();
 220  
     }
 221  0
     DatastoreV1.LookupRequest.Builder requestPb = DatastoreV1.LookupRequest.newBuilder();
 222  0
     if (readOptionsPb != null) {
 223  0
       requestPb.setReadOptions(readOptionsPb);
 224  
     }
 225  0
     for (Key k : Sets.newLinkedHashSet(Arrays.asList(keys))) {
 226  0
       requestPb.addKey(k.toPb());
 227  0
     }
 228  0
     return new ResultsIterator(requestPb);
 229  
   }
 230  
 
 231  0
   final class ResultsIterator extends AbstractIterator<Entity> {
 232  
 
 233  
     private final DatastoreV1.LookupRequest.Builder requestPb;
 234  
     Iterator<DatastoreV1.EntityResult> iter;
 235  
 
 236  0
     ResultsIterator(DatastoreV1.LookupRequest.Builder requestPb) {
 237  0
       this.requestPb = requestPb;
 238  0
       loadResults();
 239  0
     }
 240  
 
 241  
     private void loadResults() {
 242  0
       DatastoreV1.LookupResponse responsePb = lookup(requestPb.build());
 243  0
       iter = responsePb.getFoundList().iterator();
 244  0
       requestPb.clearKey();
 245  0
       if (responsePb.getDeferredCount() > 0) {
 246  0
         requestPb.addAllKey(responsePb.getDeferredList());
 247  
       }
 248  0
     }
 249  
 
 250  
     @SuppressWarnings("unchecked")
 251  
     @Override
 252  
     protected Entity computeNext() {
 253  0
       while (!iter.hasNext()) {
 254  0
         if (requestPb.getKeyCount() == 0) {
 255  0
           return endOfData();
 256  
         }
 257  0
         loadResults();
 258  
       }
 259  0
       return Entity.fromPb(iter.next().getEntity());
 260  
     }
 261  
   }
 262  
 
 263  
   DatastoreV1.LookupResponse lookup(final DatastoreV1.LookupRequest requestPb) {
 264  
     try {
 265  0
       return RetryHelper.runWithRetries(new Callable<DatastoreV1.LookupResponse>() {
 266  
         @Override public DatastoreV1.LookupResponse call() throws DatastoreRpcException {
 267  0
           return datastoreRpc.lookup(requestPb);
 268  
         }
 269  
       }, retryParams, EXCEPTION_HANDLER);
 270  0
     } catch (RetryHelperException e) {
 271  0
       throw DatastoreException.translateAndThrow(e);
 272  
     }
 273  
   }
 274  
 
 275  
   @SafeVarargs
 276  
   @Override
 277  
   public final void update(Entity... entities) {
 278  0
     if (entities.length > 0) {
 279  0
       DatastoreV1.Mutation.Builder mutationPb = DatastoreV1.Mutation.newBuilder();
 280  0
       Map<Key, Entity> dedupEntities = new LinkedHashMap<>();
 281  0
       for (Entity entity : entities) {
 282  0
         dedupEntities.put(entity.key(), entity);
 283  
       }
 284  0
       for (Entity entity : dedupEntities.values()) {
 285  0
         mutationPb.addUpdate(entity.toPb());
 286  0
       }
 287  0
       commitMutation(mutationPb);
 288  
     }
 289  0
   }
 290  
 
 291  
   @SafeVarargs
 292  
   @Override
 293  
   public final void put(Entity... entities) {
 294  0
     if (entities.length > 0) {
 295  0
       DatastoreV1.Mutation.Builder mutationPb = DatastoreV1.Mutation.newBuilder();
 296  0
       Map<Key, Entity> dedupEntities = new LinkedHashMap<>();
 297  0
       for (Entity entity : entities) {
 298  0
         dedupEntities.put(entity.key(), entity);
 299  
       }
 300  0
       for (Entity e : dedupEntities.values()) {
 301  0
         mutationPb.addUpsert(e.toPb());
 302  0
       }
 303  0
       commitMutation(mutationPb);
 304  
     }
 305  0
   }
 306  
 
 307  
   @Override
 308  
   public void delete(Key... keys) {
 309  0
     if (keys.length > 0) {
 310  0
       DatastoreV1.Mutation.Builder mutationPb = DatastoreV1.Mutation.newBuilder();
 311  0
       Set<Key> dedupKeys = new LinkedHashSet<>(Arrays.asList(keys));
 312  0
       for (Key key : dedupKeys) {
 313  0
         mutationPb.addDelete(key.toPb());
 314  0
       }
 315  0
       commitMutation(mutationPb);
 316  
     }
 317  0
   }
 318  
 
 319  
   @Override
 320  
   public KeyFactory newKeyFactory() {
 321  0
     return DatastoreHelper.newKeyFactory(options());
 322  
   }
 323  
 
 324  
   private DatastoreV1.CommitResponse commitMutation(DatastoreV1.Mutation.Builder mutationPb) {
 325  0
     if (options().force()) {
 326  0
       mutationPb.setForce(true);
 327  
     }
 328  0
     DatastoreV1.CommitRequest.Builder requestPb = DatastoreV1.CommitRequest.newBuilder();
 329  0
     requestPb.setMode(DatastoreV1.CommitRequest.Mode.NON_TRANSACTIONAL);
 330  0
     requestPb.setMutation(mutationPb);
 331  0
     return commit(requestPb.build());
 332  
   }
 333  
 
 334  
   DatastoreV1.CommitResponse commit(final DatastoreV1.CommitRequest requestPb) {
 335  
     try {
 336  0
       return RetryHelper.runWithRetries(new Callable<DatastoreV1.CommitResponse>() {
 337  
         @Override public DatastoreV1.CommitResponse call() throws DatastoreRpcException {
 338  0
           return datastoreRpc.commit(requestPb);
 339  
         }
 340  
       }, retryParams, EXCEPTION_HANDLER);
 341  0
     } catch (RetryHelperException e) {
 342  0
       throw DatastoreException.translateAndThrow(e);
 343  
     }
 344  
   }
 345  
 
 346  
   ByteString requestTransactionId(DatastoreV1.BeginTransactionRequest.Builder requestPb) {
 347  0
     return beginTransaction(requestPb.build()).getTransaction();
 348  
   }
 349  
 
 350  
   DatastoreV1.BeginTransactionResponse beginTransaction(
 351  
       final DatastoreV1.BeginTransactionRequest requestPb) {
 352  
     try {
 353  0
       return RetryHelper.runWithRetries(new Callable<DatastoreV1.BeginTransactionResponse>() {
 354  
         @Override
 355  
         public DatastoreV1.BeginTransactionResponse call() throws DatastoreRpcException {
 356  0
           return datastoreRpc.beginTransaction(requestPb);
 357  
         }
 358  
       }, retryParams, EXCEPTION_HANDLER);
 359  0
     } catch (RetryHelperException e) {
 360  0
       throw DatastoreException.translateAndThrow(e);
 361  
     }
 362  
   }
 363  
 
 364  
   void rollbackTransaction(ByteString transaction) {
 365  0
     DatastoreV1.RollbackRequest.Builder requestPb = DatastoreV1.RollbackRequest.newBuilder();
 366  0
     requestPb.setTransaction(transaction);
 367  0
     rollback(requestPb.build());
 368  0
   }
 369  
 
 370  
   void rollback(final DatastoreV1.RollbackRequest requestPb) {
 371  
     try {
 372  0
       RetryHelper.runWithRetries(new Callable<Void>() {
 373  
         @Override public Void call() throws DatastoreRpcException {
 374  0
           datastoreRpc.rollback(requestPb);
 375  0
           return null;
 376  
         }
 377  
       }, retryParams, EXCEPTION_HANDLER);
 378  0
     } catch (RetryHelperException e) {
 379  0
       throw DatastoreException.translateAndThrow(e);
 380  0
     }
 381  0
   }
 382  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.DatastoreOptions.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.DatastoreOptions.html new file mode 100644 index 000000000000..ca2cfcfc49d2 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.DatastoreOptions.html @@ -0,0 +1,362 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.DatastoreOptions
+
 
+ + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
DatastoreOptions
0%
0/57
0%
0/30
2.211
DatastoreOptions$1
N/A
N/A
2.211
DatastoreOptions$Builder
0%
0/15
0%
0/2
2.211
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import static com.google.gcloud.datastore.Validator.validateNamespace;
 20  
 
 21  
 import com.google.api.services.datastore.DatastoreV1;
 22  
 import com.google.api.services.datastore.DatastoreV1.EntityResult;
 23  
 import com.google.api.services.datastore.DatastoreV1.LookupResponse;
 24  
 import com.google.common.collect.ImmutableSet;
 25  
 import com.google.common.collect.Iterables;
 26  
 import com.google.gcloud.ServiceOptions;
 27  
 import com.google.gcloud.spi.DatastoreRpc;
 28  
 import com.google.gcloud.spi.DatastoreRpc.DatastoreRpcException;
 29  
 import com.google.gcloud.spi.DatastoreRpcFactory;
 30  
 import com.google.gcloud.spi.DefaultDatastoreRpc;
 31  
 
 32  
 import java.lang.reflect.Method;
 33  
 import java.util.Iterator;
 34  
 import java.util.Objects;
 35  
 import java.util.Set;
 36  
 
 37  0
 public class DatastoreOptions extends ServiceOptions<DatastoreRpc, DatastoreOptions> {
 38  
 
 39  
   private static final long serialVersionUID = -8636602944160689193L;
 40  
   private static final String DATASET_ENV_NAME = "DATASTORE_DATASET";
 41  
   private static final String DATASTORE_SCOPE = "https://www.googleapis.com/auth/datastore";
 42  
   private static final String USERINFO_SCOPE = "https://www.googleapis.com/auth/userinfo.email";
 43  0
   private static final Set<String> SCOPES = ImmutableSet.of(DATASTORE_SCOPE, USERINFO_SCOPE);
 44  
 
 45  
   private final String namespace;
 46  
   private final boolean force;
 47  
   private final boolean normalizeDataset;
 48  
   private transient DatastoreRpc datastoreRpc;
 49  
 
 50  0
   public static class Builder extends
 51  
       ServiceOptions.Builder<DatastoreRpc, DatastoreOptions, Builder> {
 52  
 
 53  
     private String namespace;
 54  
     private boolean force;
 55  0
     private boolean normalizeDataset = true;
 56  
 
 57  
     private Builder() {
 58  
     }
 59  
 
 60  
     private Builder(DatastoreOptions options) {
 61  0
       super(options);
 62  0
       force = options.force;
 63  0
       namespace = options.namespace;
 64  0
       normalizeDataset = options.normalizeDataset;
 65  0
     }
 66  
 
 67  
     @Override
 68  
     public DatastoreOptions build() {
 69  0
       DatastoreOptions options = new DatastoreOptions(this);
 70  0
       return normalizeDataset ? options.normalize() : options;
 71  
     }
 72  
 
 73  
     public Builder namespace(String namespace) {
 74  0
       this.namespace = validateNamespace(namespace);
 75  0
       return this;
 76  
     }
 77  
 
 78  
     public Builder force(boolean force) {
 79  0
       this.force = force;
 80  0
       return this;
 81  
     }
 82  
 
 83  
     Builder normalizeDataset(boolean normalizeDataset) {
 84  0
       this.normalizeDataset = normalizeDataset;
 85  0
       return this;
 86  
     }
 87  
   }
 88  
 
 89  
   private DatastoreOptions(Builder builder) {
 90  0
     super(builder);
 91  0
     normalizeDataset = builder.normalizeDataset;
 92  0
     namespace = builder.namespace != null ? builder.namespace : defaultNamespace();
 93  0
     force = builder.force;
 94  0
   }
 95  
 
 96  
   private DatastoreOptions normalize() {
 97  0
     if (!normalizeDataset) {
 98  0
       return this;
 99  
     }
 100  
 
 101  0
     Builder builder = toBuilder();
 102  0
     builder.normalizeDataset(false);
 103  
     // Replace provided project-id with full project-id (s~xxx, e~xxx,...)
 104  0
     DatastoreV1.LookupRequest.Builder requestPb = DatastoreV1.LookupRequest.newBuilder();
 105  0
     DatastoreV1.Key key = DatastoreV1.Key.newBuilder()
 106  0
         .addPathElement(DatastoreV1.Key.PathElement.newBuilder().setKind("__foo__").setName("bar"))
 107  0
         .build();
 108  0
     requestPb.addKey(key);
 109  
     try {
 110  0
       LookupResponse responsePb = datastoreRpc().lookup(requestPb.build());
 111  0
       if (responsePb.getDeferredCount() > 0) {
 112  0
         key = responsePb.getDeferred(0);
 113  
       } else {
 114  0
         Iterator<EntityResult> combinedIter =
 115  0
             Iterables.concat(responsePb.getMissingList(), responsePb.getFoundList()).iterator();
 116  0
         key = combinedIter.next().getEntity().getKey();
 117  
       }
 118  0
       builder.projectId(key.getPartitionId().getDatasetId());
 119  0
       return new DatastoreOptions(builder);
 120  0
     } catch (DatastoreRpcException e) {
 121  0
       throw DatastoreException.translateAndThrow(e);
 122  
     }
 123  
   }
 124  
 
 125  
   @Override
 126  
   protected String defaultProject() {
 127  0
     String projectId = System.getProperty(DATASET_ENV_NAME, System.getenv(DATASET_ENV_NAME));
 128  0
     if (projectId == null) {
 129  0
       projectId = appEngineAppId();
 130  
     }
 131  0
     return projectId != null ? projectId : super.defaultProject();
 132  
   }
 133  
 
 134  
   public String namespace() {
 135  0
     return namespace;
 136  
   }
 137  
 
 138  
   private static String defaultNamespace() {
 139  
     // TODO(ozarov): An alternative to reflection would be to depend on AE api jar:
 140  
     // http://mvnrepository.com/artifact/com.google.appengine/appengine-api-1.0-sdk/1.2.0
 141  
     try {
 142  0
       Class<?> clazz = Class.forName("com.google.appengine.api.NamespaceManager");
 143  0
       Method method = clazz.getMethod("get");
 144  0
       String namespace = (String) method.invoke(null);
 145  0
       return namespace == null || namespace.isEmpty() ? null : namespace;
 146  0
     } catch (Exception ignore) {
 147  
       // return null (Datastore default namespace) if could not automatically determine
 148  0
       return null;
 149  
     }
 150  
   }
 151  
 
 152  
   public boolean force() {
 153  0
     return force;
 154  
   }
 155  
 
 156  
   @Override
 157  
   protected Set<String> scopes() {
 158  0
     return SCOPES;
 159  
   }
 160  
 
 161  
   @Override
 162  
   public Builder toBuilder() {
 163  0
     return new Builder(this);
 164  
   }
 165  
 
 166  
   @Override
 167  
   public int hashCode() {
 168  0
     return baseHashCode() ^ Objects.hash(namespace, force, normalizeDataset);
 169  
   }
 170  
 
 171  
   @Override
 172  
   public boolean equals(Object obj) {
 173  0
     if (!(obj instanceof DatastoreOptions)) {
 174  0
       return false;
 175  
     }
 176  0
     DatastoreOptions other = (DatastoreOptions) obj;
 177  0
     return baseEquals(other) && Objects.equals(namespace, other.namespace)
 178  0
         && Objects.equals(force, other.force)
 179  0
         && Objects.equals(normalizeDataset, other.normalizeDataset);
 180  
   }
 181  
 
 182  
   DatastoreRpc datastoreRpc() {
 183  0
     if (datastoreRpc != null) {
 184  0
       return datastoreRpc;
 185  
     }
 186  0
     if (serviceRpcFactory() != null) {
 187  0
       datastoreRpc = serviceRpcFactory().create(this);
 188  
     } else {
 189  0
       datastoreRpc = createRpc(this, DatastoreRpcFactory.class);
 190  0
       if (datastoreRpc == null) {
 191  0
         datastoreRpc = new DefaultDatastoreRpc(this);
 192  
       }
 193  
     }
 194  0
     return datastoreRpc;
 195  
   }
 196  
 
 197  
   public static DatastoreOptions defaultInstance() {
 198  0
     return builder().build();
 199  
   }
 200  
 
 201  
   public static Builder builder() {
 202  0
     return new Builder();
 203  
   }
 204  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.DatastoreReader.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.DatastoreReader.html new file mode 100644 index 000000000000..5b0ca0e6cd79 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.DatastoreReader.html @@ -0,0 +1,142 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.DatastoreReader
+
 
+ + + + +
Classes in this File Line Coverage Branch Coverage Complexity
DatastoreReader
N/A
N/A
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import java.util.Iterator;
 20  
 import java.util.List;
 21  
 
 22  
 /**
 23  
  * An interface to represent Google Cloud Datastore read operations.
 24  
  */
 25  
 public interface DatastoreReader {
 26  
 
 27  
   /**
 28  
    * Returns an {@link Entity} for the given {@link Key} or {@code null} if does not exists.
 29  
    *
 30  
    * @throws DatastoreException upon failure.
 31  
    */
 32  
   Entity get(Key key);
 33  
 
 34  
   /**
 35  
    * Returns an {@link Entity} for each given {@link Key} that exists in the Datastore.
 36  
    * The order of the result is unspecified.
 37  
    * Results are loaded lazily therefore it is possible to get a {@code DatastoreException}
 38  
    * from the returned {@code Iterator}'s {@link Iterator#hasNext hasNext} or
 39  
    * {@link Iterator#next next} methods.
 40  
    *
 41  
    * @throws DatastoreException upon failure.
 42  
    * @see #get(Key)
 43  
    */
 44  
   Iterator<Entity> get(Key... key);
 45  
 
 46  
   /**
 47  
    * Returns a list with a value for each given key (ordered by input).
 48  
    * A {@code null} would be returned for non-existing keys.
 49  
    * When possible prefer using {@link #get(Key...)} which does not eagerly loads the results.
 50  
    */
 51  
   List<Entity> fetch(Key... keys);
 52  
 
 53  
   /**
 54  
    * Submit a {@link Query} and returns its result.
 55  
    *
 56  
    * @throws DatastoreException upon failure.
 57  
    */
 58  
   <T> QueryResults<T> run(Query<T> query);
 59  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.DatastoreReaderWriter.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.DatastoreReaderWriter.html new file mode 100644 index 000000000000..64c0c4f9c7a3 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.DatastoreReaderWriter.html @@ -0,0 +1,72 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.DatastoreReaderWriter
+
 
+ + + + +
Classes in this File Line Coverage Branch Coverage Complexity
DatastoreReaderWriter
N/A
N/A
0
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 
 20  
 /**
 21  
  * An interface that combines both Google Cloud Datastore read and write operations.
 22  
  */
 23  
 public interface DatastoreReaderWriter extends DatastoreReader, DatastoreWriter {
 24  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.DatastoreWriter.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.DatastoreWriter.html new file mode 100644 index 000000000000..32c2cae4b767 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.DatastoreWriter.html @@ -0,0 +1,158 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.DatastoreWriter
+
 
+ + + + +
Classes in this File Line Coverage Branch Coverage Complexity
DatastoreWriter
N/A
N/A
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import java.util.List;
 20  
 
 21  
 /**
 22  
  * An interface to represent Google Cloud Datastore write operations.
 23  
  */
 24  
 public interface DatastoreWriter {
 25  
 
 26  
   /**
 27  
    * Datastore add operation.
 28  
    * This method will automatically allocate an id if necessary.
 29  
    *
 30  
    * @param entity the entity to add
 31  
    * @return an {@code Entity} with the same properties and a key that is either newly allocated
 32  
    *     or the same one if key is already complete
 33  
    * @throws DatastoreException upon failure
 34  
    * @throws IllegalArgumentException if the given entity is missing a key
 35  
    */
 36  
   Entity add(FullEntity<?> entity);
 37  
 
 38  
   /**
 39  
    * Datastore add operation.
 40  
    * This method will automatically allocate id for any entity with an incomplete key.
 41  
    *
 42  
    * @return a list of {@code Entity} ordered by input with the same properties and a key that
 43  
    *     is either newly allocated or the same one if was already complete
 44  
    * @throws DatastoreException upon failure
 45  
    * @throws IllegalArgumentException if any of the given entities is missing a key
 46  
    * @see #add(FullEntity)
 47  
    */
 48  
   List<Entity> add(FullEntity<?>... entity);
 49  
 
 50  
   /**
 51  
    * A Datastore update operation.
 52  
    * The operation will fail if an entity with the same key does not already exist.
 53  
    */
 54  
   void update(Entity... entity);
 55  
 
 56  
   /**
 57  
    * A Datastore put (a.k.a upsert) operation.
 58  
    * The operation will add or modify the entities.
 59  
    */
 60  
   void put(Entity... entity);
 61  
 
 62  
   /**
 63  
    * A datastore delete operation.
 64  
    * It is OK request a deletion of a non-existing entity.
 65  
    */
 66  
   void delete(Key... key);
 67  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.DateTime.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.DateTime.html new file mode 100644 index 000000000000..4b13b8435f07 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.DateTime.html @@ -0,0 +1,227 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.DateTime
+
 
+ + + + +
Classes in this File Line Coverage Branch Coverage Complexity
DateTime
0%
0/15
0%
0/6
1.143
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import static com.google.common.base.Preconditions.checkNotNull;
 20  
 
 21  
 import com.google.api.services.datastore.DatastoreV1;
 22  
 import com.google.api.services.datastore.DatastoreV1.Value;
 23  
 import com.google.protobuf.InvalidProtocolBufferException;
 24  
 
 25  
 import org.joda.time.format.ISODateTimeFormat;
 26  
 
 27  
 import java.util.Calendar;
 28  
 import java.util.Date;
 29  
 
 30  
 /**
 31  
  * A Google Cloud Datastore timestamp (represented in micro-seconds).
 32  
  * This class is immutable.
 33  
  *
 34  
  * @see <a href="https://cloud.google.com/datastore/docs/concepts/entities">Google Cloud Datastore
 35  
  *     Entities, Properties, and Keys</a>
 36  
  */
 37  0
 public final class DateTime extends Serializable<DatastoreV1.Value>
 38  
     implements Comparable<DateTime> {
 39  
 
 40  
   private static final long serialVersionUID = 7343324797621228378L;
 41  
 
 42  
   private final transient long timestampMicroseconds;
 43  
 
 44  
   DateTime(long timestampMicroseconds) {
 45  
     this.timestampMicroseconds = timestampMicroseconds;
 46  
   }
 47  
 
 48  
   @Override
 49  
   public String toString() {
 50  0
     return ISODateTimeFormat.dateTime().print(timestampMillis());
 51  
   }
 52  
 
 53  
   @Override
 54  
   public int hashCode() {
 55  
     return (int) timestampMicroseconds;
 56  
   }
 57  
 
 58  
   @Override
 59  
   public int compareTo(DateTime other) {
 60  0
     return toDate().compareTo(other.toDate());
 61  
   }
 62  
 
 63  
   @Override
 64  
   public boolean equals(Object obj) {
 65  0
     return obj == this
 66  
         || (obj instanceof DateTime
 67  
             && timestampMicroseconds == ((DateTime) obj).timestampMicroseconds);
 68  
   }
 69  
 
 70  
   public long timestampMicroseconds() {
 71  0
     return timestampMicroseconds;
 72  
   }
 73  
 
 74  
   public long timestampMillis() {
 75  0
     return timestampMicroseconds / 1000L;
 76  
   }
 77  
 
 78  
   public Date toDate() {
 79  0
     return new Date(timestampMillis());
 80  
   }
 81  
 
 82  
   public Calendar toCalendar() {
 83  0
     Calendar cal = Calendar.getInstance();
 84  0
     cal.setTimeInMillis(timestampMillis());
 85  0
     return cal;
 86  
   }
 87  
 
 88  
   public static DateTime now() {
 89  0
     return copyFrom(new Date());
 90  
   }
 91  
 
 92  
   public static DateTime copyFrom(Date date) {
 93  0
     return new DateTime(checkNotNull(date).getTime() * 1000L);
 94  
   }
 95  
 
 96  
   public static DateTime copyFrom(Calendar calendar) {
 97  0
     return copyFrom(calendar.getTime());
 98  
   }
 99  
 
 100  
   @Override
 101  
   protected Value toPb() {
 102  0
     return DatastoreV1.Value.newBuilder().setIntegerValue(timestampMicroseconds).build();
 103  
   }
 104  
 
 105  
   @Override
 106  
   protected Object fromPb(byte[] bytesPb) throws InvalidProtocolBufferException {
 107  0
     return new DateTime(DatastoreV1.Value.parseFrom(bytesPb).getIntegerValue());
 108  
   }
 109  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.DateTimeValue.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.DateTimeValue.html new file mode 100644 index 000000000000..914b13df3969 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.DateTimeValue.html @@ -0,0 +1,180 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.DateTimeValue
+
 
+ + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
DateTimeValue
0%
0/7
N/A
1
DateTimeValue$1
0%
0/5
N/A
1
DateTimeValue$Builder
0%
0/4
N/A
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import static com.google.api.services.datastore.DatastoreV1.Value.TIMESTAMP_MICROSECONDS_VALUE_FIELD_NUMBER;
 20  
 
 21  
 import com.google.api.services.datastore.DatastoreV1;
 22  
 
 23  0
 public final class DateTimeValue extends Value<DateTime> {
 24  
 
 25  
   private static final long serialVersionUID = -5096238337676649540L;
 26  
 
 27  0
   static final BaseMarshaller<DateTime, DateTimeValue, Builder> MARSHALLER =
 28  0
       new BaseMarshaller<DateTime, DateTimeValue, Builder>() {
 29  
 
 30  
         private static final long serialVersionUID = -5695812592049332840L;
 31  
 
 32  
         @Override
 33  
         public int getProtoFieldId() {
 34  
           return TIMESTAMP_MICROSECONDS_VALUE_FIELD_NUMBER;
 35  
         }
 36  
 
 37  
         @Override
 38  
         public Builder newBuilder(DateTime value) {
 39  0
           return builder(value);
 40  
         }
 41  
 
 42  
         @Override
 43  
         protected DateTime getValue(DatastoreV1.Value from) {
 44  0
           return new DateTime(from.getTimestampMicrosecondsValue());
 45  
         }
 46  
 
 47  
         @Override
 48  
         protected void setValue(DateTimeValue from, DatastoreV1.Value.Builder to) {
 49  0
           to.setTimestampMicrosecondsValue(from.get().timestampMicroseconds());
 50  0
         }
 51  
       };
 52  
 
 53  0
   public static final class Builder extends Value.BaseBuilder<DateTime, DateTimeValue, Builder> {
 54  
 
 55  
     private Builder() {
 56  0
       super(ValueType.DATE_TIME);
 57  0
     }
 58  
 
 59  
     @Override
 60  
     public DateTimeValue build() {
 61  0
       return new DateTimeValue(this);
 62  
     }
 63  
   }
 64  
 
 65  
   public DateTimeValue(DateTime dateTime) {
 66  0
     this(builder(dateTime));
 67  0
   }
 68  
 
 69  
   private DateTimeValue(Builder builder) {
 70  
     super(builder);
 71  
   }
 72  
 
 73  
   @Override
 74  
   public Builder toBuilder() {
 75  0
     return new Builder().mergeFrom(this);
 76  
   }
 77  
 
 78  
   public static DateTimeValue of(DateTime dateTime) {
 79  0
     return new DateTimeValue(dateTime);
 80  
   }
 81  
 
 82  
   public static Builder builder(DateTime dateTime) {
 83  0
     return new Builder().set(dateTime);
 84  
   }
 85  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.DoubleValue.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.DoubleValue.html new file mode 100644 index 000000000000..56c9eb987e19 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.DoubleValue.html @@ -0,0 +1,180 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.DoubleValue
+
 
+ + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
DoubleValue
0%
0/7
N/A
1
DoubleValue$1
0%
0/5
N/A
1
DoubleValue$Builder
0%
0/4
N/A
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import static com.google.api.services.datastore.DatastoreV1.Value.DOUBLE_VALUE_FIELD_NUMBER;
 20  
 
 21  
 import com.google.api.services.datastore.DatastoreV1;
 22  
 
 23  0
 public final class DoubleValue extends Value<Double> {
 24  
 
 25  
   private static final long serialVersionUID = -5096238337676649540L;
 26  
 
 27  0
   static final BaseMarshaller<Double, DoubleValue, Builder> MARSHALLER =
 28  0
       new BaseMarshaller<Double, DoubleValue, Builder>() {
 29  
 
 30  
         private static final long serialVersionUID = 3935522813529400538L;
 31  
 
 32  
         @Override
 33  
         public int getProtoFieldId() {
 34  
           return DOUBLE_VALUE_FIELD_NUMBER;
 35  
         }
 36  
 
 37  
         @Override
 38  
         public Builder newBuilder(Double value) {
 39  0
           return builder(value);
 40  
         }
 41  
 
 42  
         @Override
 43  
         protected Double getValue(DatastoreV1.Value from) {
 44  0
           return from.getDoubleValue();
 45  
         }
 46  
 
 47  
         @Override
 48  
         protected void setValue(DoubleValue from, DatastoreV1.Value.Builder to) {
 49  0
           to.setDoubleValue(from.get());
 50  0
         }
 51  
       };
 52  
 
 53  0
   public static final class Builder extends Value.BaseBuilder<Double, DoubleValue, Builder> {
 54  
 
 55  
     public Builder() {
 56  0
       super(ValueType.DOUBLE);
 57  0
     }
 58  
 
 59  
     @Override
 60  
     public DoubleValue build() {
 61  0
       return new DoubleValue(this);
 62  
     }
 63  
   }
 64  
 
 65  
   public DoubleValue(double value) {
 66  0
     this(builder(value));
 67  0
   }
 68  
 
 69  
   private DoubleValue(Builder builder) {
 70  
     super(builder);
 71  
   }
 72  
 
 73  
   @Override
 74  
   public Builder toBuilder() {
 75  0
     return new Builder().mergeFrom(this);
 76  
   }
 77  
 
 78  
   public static DoubleValue of(double value) {
 79  0
     return new DoubleValue(value);
 80  
   }
 81  
 
 82  
   public static Builder builder(double value) {
 83  0
     return new Builder().set(value);
 84  
   }
 85  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.Entity.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.Entity.html new file mode 100644 index 000000000000..2a4d1cc07942 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.Entity.html @@ -0,0 +1,202 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.Entity
+
 
+ + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
Entity
0%
0/11
0%
0/4
1.143
Entity$1
N/A
N/A
1.143
Entity$Builder
0%
0/11
0%
0/2
1.143
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import static com.google.common.base.Preconditions.checkNotNull;
 20  
 
 21  
 import com.google.api.services.datastore.DatastoreV1;
 22  
 import com.google.common.base.Preconditions;
 23  
 
 24  
 /**
 25  
  * An entity is the Google Cloud Datastore persistent data object for a specific key.
 26  
  * An entity will always have a complete {@link Key}.
 27  
  */
 28  
 public final class Entity extends FullEntity<Key> {
 29  
 
 30  
   private static final long serialVersionUID = 432961565733066915L;
 31  
 
 32  0
   public static final class Builder extends BaseEntity.Builder<Key, Builder> {
 33  
 
 34  
     private Builder() {
 35  
     }
 36  
 
 37  
     private Builder(Key key) {
 38  0
       super(checkNotNull(key));
 39  0
     }
 40  
 
 41  
     private Builder(Entity entity) {
 42  
       super(entity);
 43  
     }
 44  
 
 45  0
     private Builder(Key key, FullEntity<?> entity) {
 46  0
       properties(entity.properties());
 47  0
       key(key);
 48  0
     }
 49  
 
 50  
     @Override
 51  
     public Builder key(Key key) {
 52  0
       super.key(checkNotNull(key));
 53  0
       return this;
 54  
     }
 55  
 
 56  
     @Override
 57  
     public Entity build() {
 58  0
       Preconditions.checkState(key() != null);
 59  0
       return new Entity(this);
 60  
     }
 61  
   }
 62  
 
 63  
   Entity(Builder builder) {
 64  
     super(builder);
 65  
   }
 66  
 
 67  
   Entity(FullEntity<Key> from) {
 68  0
     super(from);
 69  0
     Preconditions.checkArgument(from.key() != null);
 70  0
   }
 71  
 
 72  
   @Override
 73  
   protected BaseEntity.Builder<Key, Builder> emptyBuilder() {
 74  0
     return new Builder();
 75  
   }
 76  
 
 77  
   static Entity convert(FullEntity<Key> from) {
 78  0
     if (from instanceof Entity) {
 79  0
       return (Entity) from;
 80  
     }
 81  0
     return new Entity(from);
 82  
   }
 83  
 
 84  
   public static Builder builder(Key key) {
 85  0
     return new Builder(key);
 86  
   }
 87  
 
 88  
   public static Builder builder(Entity copyFrom) {
 89  0
     return new Builder(copyFrom);
 90  
   }
 91  
 
 92  
   public static Builder builder(Key key, FullEntity<?> copyFrom) {
 93  0
     return new Builder(key, copyFrom);
 94  
   }
 95  
 
 96  
   static Entity fromPb(DatastoreV1.Entity entityPb) {
 97  0
     return new Builder().fill(entityPb).build();
 98  
   }
 99  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.EntityValue.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.EntityValue.html new file mode 100644 index 000000000000..30ce8e90e756 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.EntityValue.html @@ -0,0 +1,193 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.EntityValue
+
 
+ + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
EntityValue
0%
0/7
N/A
1
EntityValue$1
0%
0/6
N/A
1
EntityValue$Builder
0%
0/6
0%
0/2
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import static com.google.api.services.datastore.DatastoreV1.Value.ENTITY_VALUE_FIELD_NUMBER;
 20  
 
 21  
 import com.google.api.services.datastore.DatastoreV1;
 22  
 import com.google.common.base.Preconditions;
 23  
 
 24  0
 public class EntityValue extends Value<FullEntity<?>> {
 25  
 
 26  
   private static final long serialVersionUID = -5461475706792576395L;
 27  
 
 28  0
   static final BaseMarshaller<FullEntity<?>, EntityValue, Builder> MARSHALLER =
 29  0
       new BaseMarshaller<FullEntity<?>, EntityValue, Builder>() {
 30  
 
 31  
         private static final long serialVersionUID = 2355075086076070931L;
 32  
 
 33  
         @Override
 34  
         public int getProtoFieldId() {
 35  0
           return ENTITY_VALUE_FIELD_NUMBER;
 36  
         }
 37  
 
 38  
         @Override
 39  
         public Builder newBuilder(FullEntity<?> value) {
 40  0
           return builder(value);
 41  
         }
 42  
 
 43  
         @Override
 44  
         protected FullEntity<?> getValue(DatastoreV1.Value from) {
 45  0
           return FullEntity.fromPb(from.getEntityValue());
 46  
         }
 47  
 
 48  
         @Override
 49  
         protected void setValue(EntityValue from, DatastoreV1.Value.Builder to) {
 50  0
           to.setEntityValue(from.get().toPb());
 51  0
         }
 52  
       };
 53  
 
 54  0
   public static final class Builder extends Value.BaseBuilder<FullEntity<?>, EntityValue, Builder> {
 55  
 
 56  
     private Builder() {
 57  0
       super(ValueType.ENTITY);
 58  0
     }
 59  
 
 60  
     @Override
 61  
     public Builder indexed(boolean indexed) {
 62  
       // see issue #25
 63  0
       Preconditions.checkArgument(!indexed, "EntityValue can't be indexed");
 64  0
       return super.indexed(indexed);
 65  
     }
 66  
 
 67  
     @Override
 68  
     public EntityValue build() {
 69  0
       return new EntityValue(this);
 70  
     }
 71  
   }
 72  
 
 73  
   public EntityValue(FullEntity<?> entity) {
 74  0
     this(builder(entity));
 75  0
   }
 76  
 
 77  
   private EntityValue(Builder builder) {
 78  
     super(builder);
 79  
   }
 80  
 
 81  
   @Override
 82  
   public Builder toBuilder() {
 83  0
     return new Builder().mergeFrom(this);
 84  
   }
 85  
 
 86  
   public static EntityValue of(FullEntity<?> entity) {
 87  0
     return new EntityValue(entity);
 88  
   }
 89  
 
 90  
   public static Builder builder(FullEntity<?> entity) {
 91  0
     return new Builder().set(entity).indexed(false);
 92  
   }
 93  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.FullEntity.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.FullEntity.html new file mode 100644 index 000000000000..3e500194a37f --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.FullEntity.html @@ -0,0 +1,170 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.FullEntity
+
 
+ + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
FullEntity
0%
0/5
N/A
1
FullEntity$Builder
0%
0/2
N/A
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import com.google.api.services.datastore.DatastoreV1;
 20  
 
 21  
 /**
 22  
  * A full entity is a {@link BaseEntity} that with a complete set of properties.
 23  
  */
 24  
 public class FullEntity<K extends IncompleteKey> extends BaseEntity<K> {
 25  
 
 26  
   private static final long serialVersionUID = 432961565733066915L;
 27  
 
 28  0
   public static class Builder<K extends IncompleteKey> extends BaseEntity.Builder<K, Builder<K>> {
 29  
 
 30  
     Builder() {
 31  
     }
 32  
 
 33  
     Builder(K key) {
 34  
       super(key);
 35  
     }
 36  
 
 37  
     Builder(FullEntity<K> entity) {
 38  
       super(entity);
 39  
     }
 40  
 
 41  
     @Override
 42  
     public FullEntity<K> build() {
 43  0
       return new FullEntity<>(this);
 44  
     }
 45  
   }
 46  
 
 47  
   FullEntity(BaseEntity.Builder<K, ?> builder) {
 48  
     super(builder);
 49  
   }
 50  
 
 51  
   FullEntity(FullEntity<K> from) {
 52  
     super(from);
 53  
   }
 54  
 
 55  
   @Override
 56  
   protected BaseEntity.Builder<K, ?> emptyBuilder() {
 57  0
     return new Builder<K>();
 58  
   }
 59  
 
 60  
   public static Builder<IncompleteKey> builder() {
 61  0
     return new Builder<>();
 62  
   }
 63  
 
 64  
   public static <K extends IncompleteKey> Builder<K> builder(K key) {
 65  0
     return new Builder<>(key);
 66  
   }
 67  
 
 68  
   public static <K extends IncompleteKey> Builder<K> builder(FullEntity<K> copyFrom) {
 69  0
     return new Builder<>(copyFrom);
 70  
   }
 71  
 
 72  
 
 73  
   static FullEntity<?> fromPb(DatastoreV1.Entity entityPb) {
 74  0
     return new Builder<>().fill(entityPb).build();
 75  
   }
 76  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.GqlQuery.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.GqlQuery.html new file mode 100644 index 000000000000..1ac8ba560f64 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.GqlQuery.html @@ -0,0 +1,713 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.GqlQuery
+
 
+ + + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
GqlQuery
0%
0/56
0%
0/28
1.66
GqlQuery$1
N/A
N/A
1.66
GqlQuery$Binding
0%
0/35
0%
0/20
1.66
GqlQuery$Builder
0%
0/65
0%
0/6
1.66
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import static com.google.common.base.Preconditions.checkNotNull;
 20  
 import static com.google.gcloud.datastore.Validator.validateNamespace;
 21  
 
 22  
 import com.google.api.services.datastore.DatastoreV1;
 23  
 import com.google.common.base.MoreObjects;
 24  
 import com.google.common.collect.ImmutableList;
 25  
 import com.google.common.collect.ImmutableMap;
 26  
 import com.google.common.collect.ImmutableSortedMap;
 27  
 import com.google.common.primitives.Booleans;
 28  
 import com.google.common.primitives.Doubles;
 29  
 import com.google.common.primitives.Longs;
 30  
 import com.google.protobuf.InvalidProtocolBufferException;
 31  
 
 32  
 import java.util.ArrayList;
 33  
 import java.util.Arrays;
 34  
 import java.util.LinkedList;
 35  
 import java.util.List;
 36  
 import java.util.Map;
 37  
 import java.util.Objects;
 38  
 import java.util.TreeMap;
 39  
 
 40  
 /**
 41  
  * A Google Cloud Datastore GQL query.
 42  
  *
 43  
  * <h3>A usage example:</h3>
 44  
  *
 45  
  * <p>When the type of the results is known the preferred usage would be:
 46  
  * <pre>{@code
 47  
  *   Query<Entity> query =
 48  
  *       Query.gqlQueryBuilder(Query.ResultType.ENTITY, "select * from kind").build();
 49  
  *   QueryResults<Entity> results = datastore.run(query);
 50  
  *   while (results.hasNext()) {
 51  
  *     Entity entity = results.next();
 52  
  *     ...
 53  
  *   }
 54  
  * } </pre>
 55  
  *
 56  
  * <p>When the type of the results is unknown you can use this approach:
 57  
  * <pre>{@code
 58  
  *   Query<?> query = Query.gqlQueryBuilder("select __key__ from kind").build();
 59  
  *   QueryResults<?> results = datastore.run(query);
 60  
  *   if (Key.class.isAssignableFrom(results.resultClass())) {
 61  
  *     QueryResults<Key> keys = (QueryResults<Key>) results;
 62  
  *     while (keys.hasNext()) {
 63  
  *       Key key = keys.next();
 64  
  *       ...
 65  
  *     }
 66  
  *   }
 67  
  * } </pre>
 68  
  *
 69  
  * @param <V> the type of the result values this query will produce
 70  
  * @see <a href="https://cloud.google.com/datastore/docs/apis/gql/gql_reference">GQL Reference</a>
 71  
  */
 72  0
 public final class GqlQuery<V> extends Query<V> {
 73  
 
 74  
   private static final long serialVersionUID = 5988280590929540569L;
 75  
 
 76  
   private final transient String queryString;
 77  
   private final transient boolean allowLiteral;
 78  
   private final transient ImmutableList<Binding> namedBindings;
 79  
   private final transient ImmutableList<Binding> positionalBindings;
 80  
 
 81  0
   static final class Binding extends Serializable<DatastoreV1.GqlQueryArg> {
 82  
 
 83  
     private static final long serialVersionUID = 1976895435257636275L;
 84  
 
 85  
     private final transient String name;
 86  
     private final transient Cursor cursor;
 87  
     private final transient Value<?> value;
 88  
 
 89  0
     Binding(String name, Cursor cursor) {
 90  0
       this.name = name;
 91  0
       this.cursor = checkNotNull(cursor);
 92  0
       value = null;
 93  0
     }
 94  
 
 95  0
     Binding(String name, Value<?> value) {
 96  0
       this.name = name;
 97  0
       this.value = checkNotNull(value);
 98  0
       cursor = null;
 99  0
     }
 100  
 
 101  
     Object cursorOrValue() {
 102  0
       return MoreObjects.firstNonNull(cursor, value);
 103  
     }
 104  
 
 105  
     String name() {
 106  0
       return name;
 107  
     }
 108  
 
 109  
     @Override
 110  
     public int hashCode() {
 111  0
       return Objects.hash(name, cursor, value);
 112  
     }
 113  
 
 114  
     @Override
 115  
     public boolean equals(Object obj) {
 116  0
       if (obj == this) {
 117  0
         return true;
 118  
       }
 119  0
       if (!(obj instanceof Binding)) {
 120  0
         return false;
 121  
       }
 122  0
       Binding other = (Binding) obj;
 123  0
       return Objects.equals(name, other.name)
 124  0
           && Objects.equals(cursor, other.cursor)
 125  0
           && Objects.equals(value, other.value);
 126  
     }
 127  
 
 128  
     @Override
 129  
     protected DatastoreV1.GqlQueryArg toPb() {
 130  0
       DatastoreV1.GqlQueryArg.Builder argPb = DatastoreV1.GqlQueryArg.newBuilder();
 131  0
       if (name != null) {
 132  0
         argPb.setName(name);
 133  
       }
 134  0
       if (cursor != null) {
 135  0
         argPb.setCursor(cursor.byteString());
 136  
       }
 137  0
       if (value != null) {
 138  0
         argPb.setValue(value.toPb());
 139  
       }
 140  0
       return argPb.build();
 141  
     }
 142  
 
 143  
     @Override
 144  
     protected Object fromPb(byte[] bytesPb) throws InvalidProtocolBufferException {
 145  0
       return fromPb(DatastoreV1.GqlQueryArg.parseFrom(bytesPb));
 146  
     }
 147  
 
 148  
     static Binding fromPb(DatastoreV1.GqlQueryArg argPb) {
 149  0
       String name = argPb.hasName() ? argPb.getName() : null;
 150  0
       if (argPb.hasCursor()) {
 151  0
         return new Binding(name, new Cursor(argPb.getCursor()));
 152  
       }
 153  0
       return new Binding(name, Value.fromPb(argPb.getValue()));
 154  
     }
 155  
   }
 156  
 
 157  
   /**
 158  
    * A GQL query builder.
 159  
    */
 160  0
   public static final class Builder<V> {
 161  
 
 162  
     private final ResultType<V> resultType;
 163  
     private String namespace;
 164  
     private String queryString;
 165  
     private boolean allowLiteral;
 166  0
     private final Map<String, Binding> namedBindings = new TreeMap<>();
 167  0
     private final List<Binding> positionalBindings = new LinkedList<>();
 168  
 
 169  0
     Builder(ResultType<V> resultType, String query) {
 170  0
       this.resultType = checkNotNull(resultType);
 171  0
       queryString = checkNotNull(query);
 172  0
     }
 173  
 
 174  
     public Builder<V> query(String query) {
 175  0
       queryString = checkNotNull(query);
 176  0
       return this;
 177  
     }
 178  
 
 179  
     public Builder<V> namespace(String namespace) {
 180  0
       this.namespace = validateNamespace(namespace);
 181  0
       return this;
 182  
     }
 183  
 
 184  
     public Builder<V> allowLiteral(boolean allowLiteral) {
 185  0
       this.allowLiteral = allowLiteral;
 186  0
       return this;
 187  
     }
 188  
 
 189  
     public Builder<V> clearBindings() {
 190  0
       namedBindings.clear();
 191  0
       positionalBindings.clear();
 192  0
       return this;
 193  
     }
 194  
 
 195  
     public Builder<V> setBinding(String name, Cursor cursor) {
 196  0
       namedBindings.put(name, new Binding(name, cursor));
 197  0
       return this;
 198  
     }
 199  
 
 200  
     public Builder<V> setBinding(String name, String... value) {
 201  0
       namedBindings.put(name, toBinding(name, StringValue.MARSHALLER, Arrays.asList(value)));
 202  0
       return this;
 203  
     }
 204  
 
 205  
     public Builder<V> setBinding(String name, long... value) {
 206  0
       namedBindings.put(name, toBinding(name, LongValue.MARSHALLER, Longs.asList(value)));
 207  0
       return this;
 208  
     }
 209  
 
 210  
     public Builder<V> setBinding(String name, double... value) {
 211  0
       namedBindings.put(name, toBinding(name, DoubleValue.MARSHALLER, Doubles.asList(value)));
 212  0
       return this;
 213  
     }
 214  
 
 215  
     public Builder<V> setBinding(String name, boolean... value) {
 216  0
       namedBindings.put(name, toBinding(name, BooleanValue.MARSHALLER, Booleans.asList(value)));
 217  0
       return this;
 218  
     }
 219  
 
 220  
     public Builder<V> setBinding(String name, DateTime... value) {
 221  0
       namedBindings.put(name, toBinding(name, DateTimeValue.MARSHALLER, Arrays.asList(value)));
 222  0
       return this;
 223  
     }
 224  
 
 225  
     public Builder<V> setBinding(String name, Key... value) {
 226  0
       namedBindings.put(name, toBinding(name, KeyValue.MARSHALLER, Arrays.asList(value)));
 227  0
       return this;
 228  
     }
 229  
 
 230  
     public Builder<V> setBinding(String name, FullEntity<?>... value) {
 231  0
       namedBindings.put(name, toBinding(name, EntityValue.MARSHALLER, Arrays.asList(value)));
 232  0
       return this;
 233  
     }
 234  
 
 235  
     public Builder<V> setBinding(String name, Blob... value) {
 236  0
       namedBindings.put(name, toBinding(name, BlobValue.MARSHALLER, Arrays.asList(value)));
 237  0
       return this;
 238  
     }
 239  
 
 240  
     public Builder<V> addBinding(Cursor cursor) {
 241  0
       positionalBindings.add(new Binding(null, cursor));
 242  0
       return this;
 243  
     }
 244  
 
 245  
     public Builder<V> addBinding(String... value) {
 246  0
       positionalBindings.add(toBinding(StringValue.MARSHALLER, Arrays.asList(value)));
 247  0
       return this;
 248  
     }
 249  
 
 250  
     public Builder<V> addBinding(long... value) {
 251  0
       positionalBindings.add(toBinding(LongValue.MARSHALLER, Longs.asList(value)));
 252  0
       return this;
 253  
     }
 254  
 
 255  
     public Builder<V> addBinding(double... value) {
 256  0
       positionalBindings.add(toBinding(DoubleValue.MARSHALLER, Doubles.asList(value)));
 257  0
       return this;
 258  
     }
 259  
 
 260  
     public Builder<V> addBinding(boolean... value) {
 261  0
       positionalBindings.add(toBinding(BooleanValue.MARSHALLER, Booleans.asList(value)));
 262  0
       return this;
 263  
     }
 264  
 
 265  
     public Builder<V> addBinding(DateTime... value) {
 266  0
       positionalBindings.add(toBinding(DateTimeValue.MARSHALLER, Arrays.asList(value)));
 267  0
       return this;
 268  
     }
 269  
 
 270  
     public Builder<V> addBinding(Key... value) {
 271  0
       positionalBindings.add(toBinding(KeyValue.MARSHALLER, Arrays.asList(value)));
 272  0
       return this;
 273  
     }
 274  
 
 275  
     public Builder<V> addBinding(FullEntity<?>... value) {
 276  0
       positionalBindings.add(toBinding(EntityValue.MARSHALLER, Arrays.asList(value)));
 277  0
       return this;
 278  
     }
 279  
 
 280  
     public Builder<V> addBinding(Blob... value) {
 281  0
       positionalBindings.add(toBinding(BlobValue.MARSHALLER, Arrays.asList(value)));
 282  0
       return this;
 283  
     }
 284  
 
 285  
     public GqlQuery<V> build() {
 286  0
       return new GqlQuery<>(this);
 287  
     }
 288  
 
 289  
     private static Binding toBinding(Value.BuilderFactory<?, ?, ?> builderFactory, List<?> values) {
 290  0
       return toBinding(null, builderFactory, values);
 291  
     }
 292  
 
 293  
     private static <V> Binding toBinding(String name, Value.BuilderFactory<V, ?, ?> builderFactory,
 294  
         List<?> values) {
 295  0
       List<Value<V>> list = new ArrayList<>(values.size());
 296  0
       for (Object object : values) {
 297  
         @SuppressWarnings("unchecked")
 298  0
         V v = (V) object;
 299  0
         list.add(builderFactory.newBuilder(v).build());
 300  0
       }
 301  
       Value<?> value;
 302  0
       if (list.isEmpty()) {
 303  0
         value = new NullValue();
 304  0
       } else if (list.size() == 1) {
 305  0
         value = list.get(0);
 306  
       } else {
 307  0
         value = new ListValue(list);
 308  
       }
 309  0
       return new Binding(name, value);
 310  
     }
 311  
   }
 312  
 
 313  
   private GqlQuery(Builder<V> builder) {
 314  0
     super(builder.resultType, builder.namespace);
 315  0
     queryString = builder.queryString;
 316  0
     allowLiteral = builder.allowLiteral;
 317  0
     namedBindings = ImmutableList.copyOf(builder.namedBindings.values());
 318  0
     positionalBindings = ImmutableList.copyOf(builder.positionalBindings);
 319  0
   }
 320  
 
 321  
   public String queryString() {
 322  0
     return queryString;
 323  
   }
 324  
 
 325  
   public boolean allowLiteral() {
 326  0
     return allowLiteral;
 327  
   }
 328  
 
 329  
   /**
 330  
    * Returns an immutable map of named bindings.
 331  
    */
 332  
   public Map<String, Object> namedBindings() {
 333  0
     ImmutableMap.Builder<String, Object> builder = ImmutableSortedMap.naturalOrder();
 334  0
     for (Binding binding : namedBindings) {
 335  0
       builder.put(binding.name(), binding.cursorOrValue());
 336  0
     }
 337  0
     return builder.build();
 338  
   }
 339  
 
 340  
   /**
 341  
    * Returns an immutable list of positional bindings (using original order).
 342  
    */
 343  
   public List<Object> numberArgs() {
 344  0
     ImmutableList.Builder<Object> builder = ImmutableList.builder();
 345  0
     for (Binding binding : positionalBindings) {
 346  0
       builder.add(binding.cursorOrValue());
 347  0
     }
 348  0
     return builder.build();
 349  
   }
 350  
 
 351  
   @Override
 352  
   public int hashCode() {
 353  0
     return Objects.hash(namespace(), queryString, allowLiteral, namedBindings, positionalBindings);
 354  
   }
 355  
 
 356  
   @Override
 357  
   public boolean equals(Object obj) {
 358  0
     if (obj == this) {
 359  0
       return true;
 360  
     }
 361  0
     if (!(obj instanceof GqlQuery)) {
 362  0
       return false;
 363  
     }
 364  0
     GqlQuery<?> other = (GqlQuery<?>) obj;
 365  0
     return Objects.equals(namespace(), other.namespace())
 366  0
         && Objects.equals(queryString, other.queryString)
 367  
         && allowLiteral == other.allowLiteral
 368  0
         && Objects.equals(namedBindings,  other.namedBindings)
 369  0
         && Objects.equals(positionalBindings,  other.positionalBindings);
 370  
   }
 371  
 
 372  
   @Override
 373  
   protected DatastoreV1.GqlQuery toPb() {
 374  0
     DatastoreV1.GqlQuery.Builder queryPb = DatastoreV1.GqlQuery.newBuilder();
 375  0
     queryPb.setQueryString(queryString);
 376  0
     queryPb.setAllowLiteral(allowLiteral);
 377  0
     for (Binding argument : namedBindings) {
 378  0
       queryPb.addNameArg(argument.toPb());
 379  0
     }
 380  0
     for (Binding argument : positionalBindings) {
 381  0
       queryPb.addNumberArg(argument.toPb());
 382  0
     }
 383  0
     return queryPb.build();
 384  
   }
 385  
 
 386  
   @Override
 387  
   protected void populatePb(DatastoreV1.RunQueryRequest.Builder requestPb) {
 388  0
     requestPb.setGqlQuery(toPb());
 389  0
   }
 390  
 
 391  
   @Override
 392  
   protected GqlQuery<V> nextQuery(DatastoreV1.QueryResultBatch responsePb) {
 393  
     // See issue #17
 394  0
     throw new UnsupportedOperationException("paging for this query is not implemented yet");
 395  
   }
 396  
 
 397  
   @Override
 398  
   protected Object fromPb(ResultType<V> resultType, String namespace, byte[] bytesPb)
 399  
       throws InvalidProtocolBufferException {
 400  0
     return fromPb(resultType, namespace, DatastoreV1.GqlQuery.parseFrom(bytesPb));
 401  
   }
 402  
 
 403  
   private static <V> GqlQuery<V> fromPb(
 404  
       ResultType<V> resultType, String ns, DatastoreV1.GqlQuery queryPb) {
 405  0
     Builder<V> builder = new Builder<>(resultType, queryPb.getQueryString());
 406  0
     builder.namespace(ns);
 407  0
     if (queryPb.hasAllowLiteral()) {
 408  0
       builder.allowLiteral = queryPb.getAllowLiteral();
 409  
     }
 410  0
     for (DatastoreV1.GqlQueryArg nameArg : queryPb.getNameArgList()) {
 411  0
       Binding argument = Binding.fromPb(nameArg);
 412  0
       builder.namedBindings.put(argument.name(), argument);
 413  0
     }
 414  0
     for (DatastoreV1.GqlQueryArg numberArg : queryPb.getNumberArgList()) {
 415  0
       Binding argument = Binding.fromPb(numberArg);
 416  0
       builder.positionalBindings.add(argument);
 417  0
     }
 418  0
     return builder.build();
 419  
   }
 420  
 
 421  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.IncompleteKey.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.IncompleteKey.html new file mode 100644 index 000000000000..42f2defa5fe3 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.IncompleteKey.html @@ -0,0 +1,194 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.IncompleteKey
+
 
+ + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
IncompleteKey
0%
0/24
0%
0/12
1.667
IncompleteKey$1
N/A
N/A
1.667
IncompleteKey$Builder
0%
0/4
N/A
1.667
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import com.google.api.services.datastore.DatastoreV1;
 20  
 import com.google.common.base.Preconditions;
 21  
 import com.google.common.collect.ImmutableList;
 22  
 import com.google.protobuf.InvalidProtocolBufferException;
 23  
 
 24  
 import java.util.List;
 25  
 
 26  
 /**
 27  
  * An incomplete key (without a name or id).
 28  
  * This class is immutable.
 29  
  */
 30  0
 public class IncompleteKey extends BaseKey {
 31  
 
 32  
   private static final long serialVersionUID = -75301206578793347L;
 33  
 
 34  0
   public static class Builder extends BaseKey.Builder<Builder> {
 35  
 
 36  
     private Builder(String projectId, String kind) {
 37  
       super(projectId, kind);
 38  
     }
 39  
 
 40  
     private Builder(IncompleteKey copyFrom) {
 41  
       super(copyFrom);
 42  
     }
 43  
 
 44  
     @Override
 45  
     public IncompleteKey build() {
 46  0
       ImmutableList<PathElement> path = ImmutableList.<PathElement>builder()
 47  0
           .addAll(ancestors).add(PathElement.of(kind)).build();
 48  0
       return new IncompleteKey(projectId, namespace, path);
 49  
     }
 50  
   }
 51  
 
 52  
   IncompleteKey(String projectId, String namespace, ImmutableList<PathElement> path) {
 53  
     super(projectId, namespace, path);
 54  
   }
 55  
 
 56  
   @Override
 57  
   protected Object fromPb(byte[] bytesPb) throws InvalidProtocolBufferException {
 58  0
     return fromPb(DatastoreV1.Key.parseFrom(bytesPb));
 59  
   }
 60  
 
 61  
   static IncompleteKey fromPb(DatastoreV1.Key keyPb) {
 62  0
     String projectId = null;
 63  0
     String namespace = null;
 64  0
     if (keyPb.hasPartitionId()) {
 65  0
       DatastoreV1.PartitionId partitionIdPb = keyPb.getPartitionId();
 66  0
       if (partitionIdPb.hasDatasetId()) {
 67  0
         projectId = partitionIdPb.getDatasetId();
 68  
       }
 69  0
       if (partitionIdPb.hasNamespace()) {
 70  0
         namespace = partitionIdPb.getNamespace();
 71  
       }
 72  
     }
 73  0
     List<DatastoreV1.Key.PathElement> pathElementsPb = keyPb.getPathElementList();
 74  0
     Preconditions.checkArgument(!pathElementsPb.isEmpty(), "Path must not be empty");
 75  0
     ImmutableList.Builder<PathElement> pathBuilder = ImmutableList.builder();
 76  0
     for (DatastoreV1.Key.PathElement pathElementPb : pathElementsPb) {
 77  0
       pathBuilder.add(PathElement.fromPb(pathElementPb));
 78  0
     }
 79  0
     ImmutableList<PathElement> path = pathBuilder.build();
 80  0
     PathElement leaf = path.get(path.size() - 1);
 81  0
     if (leaf.nameOrId() != null) {
 82  0
       return new Key(projectId, namespace, path);
 83  
     }
 84  0
     return new IncompleteKey(projectId, namespace, path);
 85  
   }
 86  
 
 87  
   public static Builder builder(String projectId, String kind) {
 88  0
     return new Builder(projectId, kind);
 89  
   }
 90  
 
 91  
   public static Builder builder(IncompleteKey copyFrom) {
 92  0
     return new Builder(copyFrom);
 93  
   }
 94  
 
 95  
   public static Builder builder(Key parent, String kind) {
 96  0
     return builder(parent.projectId(), kind).namespace(parent.namespace()).ancestors(parent.path());
 97  
   }
 98  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.Key.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.Key.html new file mode 100644 index 000000000000..7f8962262c9f --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.Key.html @@ -0,0 +1,399 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.Key
+
 
+ + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
Key
0%
0/40
0%
0/4
1.423
Key$1
N/A
N/A
1.423
Key$Builder
0%
0/23
0%
0/4
1.423
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import static java.nio.charset.StandardCharsets.UTF_8;
 20  
 
 21  
 import com.google.api.services.datastore.DatastoreV1;
 22  
 import com.google.common.base.Preconditions;
 23  
 import com.google.common.collect.ImmutableList;
 24  
 import com.google.protobuf.InvalidProtocolBufferException;
 25  
 import com.google.protobuf.TextFormat;
 26  
 
 27  
 import java.io.UnsupportedEncodingException;
 28  
 import java.net.URLDecoder;
 29  
 import java.net.URLEncoder;
 30  
 
 31  
 /**
 32  
  * A key that is guaranteed to be complete and could be used to reference a
 33  
  * Google Cloud Datastore {@link Entity}.
 34  
  * This class is immutable.
 35  
  *
 36  
  * @see <a href="https://cloud.google.com/datastore/docs/concepts/entities">Google Cloud Datastore
 37  
  *    Entities, Properties, and Keys</a>
 38  
  */
 39  
 public final class Key extends IncompleteKey {
 40  
 
 41  
   private static final long serialVersionUID = 3160994559785491356L;
 42  
 
 43  0
   public static final class Builder extends BaseKey.Builder<Builder> {
 44  
 
 45  
     private String name;
 46  
     private Long id;
 47  
 
 48  
     private Builder(String projectId, String kind, String name) {
 49  
       super(projectId, kind);
 50  
       this.name = name;
 51  
     }
 52  
 
 53  
     private Builder(String projectId, String kind, long id) {
 54  0
       super(projectId, kind);
 55  0
       this.id = id;
 56  0
     }
 57  
 
 58  
     private Builder(IncompleteKey copyFrom, String name) {
 59  
       super(copyFrom);
 60  
       this.name = name;
 61  
     }
 62  
 
 63  
     private Builder(IncompleteKey copyFrom, long id) {
 64  0
       super(copyFrom);
 65  0
       this.id = id;
 66  0
     }
 67  
 
 68  
     private Builder(Key copyFrom) {
 69  0
       super(copyFrom);
 70  0
       if (copyFrom.hasId()) {
 71  0
         id = copyFrom.id();
 72  
       } else {
 73  0
         name = copyFrom.name();
 74  
       }
 75  0
     }
 76  
 
 77  
     public Builder name(String name) {
 78  0
       this.name = name;
 79  0
       id = null;
 80  0
       return this;
 81  
     }
 82  
 
 83  
     public Builder id(long id) {
 84  0
       this.id = id;
 85  0
       name = null;
 86  0
       return this;
 87  
     }
 88  
 
 89  
     @Override
 90  
     public Key build() {
 91  
       ImmutableList.Builder<PathElement> pathBuilder =
 92  0
           ImmutableList.<PathElement>builder().addAll(ancestors);
 93  0
       if (id == null) {
 94  0
         pathBuilder.add(PathElement.of(kind, name));
 95  
       } else {
 96  0
         pathBuilder.add(PathElement.of(kind, id));
 97  
       }
 98  0
       return new Key(projectId, namespace, pathBuilder.build());
 99  
     }
 100  
   }
 101  
 
 102  
   Key(String projectId, String namespace, ImmutableList<PathElement> path) {
 103  0
     super(projectId, namespace, path);
 104  0
     Preconditions.checkArgument(nameOrId() != null);
 105  0
   }
 106  
 
 107  
   public boolean hasId() {
 108  0
     return leaf().hasId();
 109  
   }
 110  
 
 111  
   /**
 112  
    * Returns the key's id or {@code null} if it has a name instead.
 113  
    */
 114  
   public Long id() {
 115  0
     return leaf().id();
 116  
   }
 117  
 
 118  
   public boolean hasName() {
 119  0
     return leaf().hasName();
 120  
   }
 121  
 
 122  
   /**
 123  
    * Returns the key's name or {@code null} if it has an id instead.
 124  
    */
 125  
   public String name() {
 126  0
     return leaf().name();
 127  
   }
 128  
 
 129  
   /**
 130  
    * Returns the key's id (as {@link Long}) or name (as {@link String}).
 131  
    * Never {@code null}.
 132  
    */
 133  
   public Object nameOrId() {
 134  0
     return leaf().nameOrId();
 135  
   }
 136  
 
 137  
   /**
 138  
    * Returns the key in an encoded form that can be used as part of a URL.
 139  
    */
 140  
   public String toUrlSafe() {
 141  
     try {
 142  0
       return URLEncoder.encode(TextFormat.printToString(toPb()), UTF_8.name());
 143  0
     } catch (UnsupportedEncodingException e) {
 144  0
       throw new IllegalStateException("Unexpected encoding exception", e);
 145  
     }
 146  
   }
 147  
 
 148  
   /**
 149  
    * Create a {@code Key} given its URL safe encoded form.
 150  
    *
 151  
    * @throws IllegalArgumentException when decoding fails
 152  
    */
 153  
   public static Key fromUrlSafe(String urlSafe) {
 154  
     try {
 155  0
       String utf8Str = URLDecoder.decode(urlSafe, UTF_8.name());
 156  0
       DatastoreV1.Key.Builder builder = DatastoreV1.Key.newBuilder();
 157  0
       TextFormat.merge(utf8Str, builder);
 158  0
       return fromPb(builder.build());
 159  0
     } catch (UnsupportedEncodingException e) {
 160  0
       throw new IllegalStateException("Unexpected decoding exception", e);
 161  0
     } catch (TextFormat.ParseException e) {
 162  0
       throw new IllegalArgumentException("Could not parse key", e);
 163  
     }
 164  
   }
 165  
 
 166  
   @Override
 167  
   protected Object fromPb(byte[] bytesPb) throws InvalidProtocolBufferException {
 168  0
     return fromPb(DatastoreV1.Key.parseFrom(bytesPb));
 169  
   }
 170  
 
 171  
   static Key fromPb(DatastoreV1.Key keyPb) {
 172  0
     IncompleteKey key = IncompleteKey.fromPb(keyPb);
 173  0
     Preconditions.checkState(key instanceof Key, "Key is not complete");
 174  0
     return (Key) key;
 175  
   }
 176  
 
 177  
   public static Builder builder(String projectId, String kind, String name) {
 178  0
     return new Builder(projectId, kind, name);
 179  
   }
 180  
 
 181  
   public static Builder builder(String projectId, String kind, long id) {
 182  0
     return new Builder(projectId, kind, id);
 183  
   }
 184  
 
 185  
   public static Builder builder(Key copyFrom) {
 186  0
     return new Builder(copyFrom);
 187  
   }
 188  
 
 189  
   public static Builder builder(IncompleteKey copyFrom, String name) {
 190  0
     return new Builder(copyFrom, name);
 191  
   }
 192  
 
 193  
   public static Builder builder(IncompleteKey copyFrom, long id) {
 194  0
     return new Builder(copyFrom, id);
 195  
   }
 196  
 
 197  
   public static Builder builder(Key parent, String kind, String name) {
 198  0
     Builder builder = builder(parent.projectId(), kind, name);
 199  0
     addParentToBuilder(parent, builder);
 200  0
     return builder;
 201  
   }
 202  
 
 203  
   public static Builder builder(Key parent, String kind, long id) {
 204  0
     Builder builder = builder(parent.projectId(), kind, id);
 205  0
     addParentToBuilder(parent, builder);
 206  0
     return builder;
 207  
   }
 208  
 
 209  
   private static void addParentToBuilder(Key parent, Builder builder) {
 210  0
     builder.namespace(parent.namespace());
 211  0
     builder.ancestors(parent.ancestors());
 212  0
     if (parent.hasId()) {
 213  0
       builder.ancestors(PathElement.of(parent.kind(), parent.id()));
 214  
     } else {
 215  0
       builder.ancestors(PathElement.of(parent.kind(), parent.name()));
 216  
     }
 217  0
   }
 218  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.KeyFactory.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.KeyFactory.html new file mode 100644 index 000000000000..6c584720e6be --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.KeyFactory.html @@ -0,0 +1,151 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.KeyFactory
+
 
+ + + + +
Classes in this File Line Coverage Branch Coverage Complexity
KeyFactory
0%
0/23
N/A
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import com.google.common.collect.ImmutableList;
 20  
 
 21  
 /**
 22  
  * A helper for creating keys for a specific {@link Datastore},
 23  
  * using its associated projectId and namespace.
 24  
  */
 25  0
 public final class KeyFactory extends BaseKey.Builder<KeyFactory> {
 26  
 
 27  
   private final String pi;
 28  
   private final String ns;
 29  
 
 30  
   public KeyFactory(String projectId) {
 31  0
     this(projectId, null);
 32  0
   }
 33  
 
 34  
   public KeyFactory(String projectId, String namespace) {
 35  0
     super(projectId);
 36  0
     namespace(namespace);
 37  0
     this.pi = projectId;
 38  0
     this.ns = namespace;
 39  0
   }
 40  
 
 41  
   public IncompleteKey newKey() {
 42  0
     ImmutableList<PathElement> path = ImmutableList.<PathElement>builder()
 43  0
         .addAll(ancestors).add(PathElement.of(kind)).build();
 44  0
     return new IncompleteKey(projectId, namespace, path);
 45  
   }
 46  
 
 47  
   public Key newKey(String name) {
 48  0
     ImmutableList<PathElement> path = ImmutableList.<PathElement>builder()
 49  0
         .addAll(ancestors).add(PathElement.of(kind, name)).build();
 50  0
     return new Key(projectId, namespace, path);
 51  
   }
 52  
 
 53  
   public Key newKey(long id) {
 54  0
     ImmutableList<PathElement> path = ImmutableList.<PathElement>builder()
 55  0
         .addAll(ancestors).add(PathElement.of(kind, id)).build();
 56  0
     return new Key(projectId, namespace, path);
 57  
   }
 58  
 
 59  
   /**
 60  
    * Resets the KeyFactory to its initial state.
 61  
    * @return {@code this} for chaining.
 62  
    */
 63  
   public KeyFactory reset() {
 64  0
     projectId(pi);
 65  0
     namespace(ns);
 66  0
     kind = null;
 67  0
     ancestors.clear();
 68  0
     return this;
 69  
   }
 70  
 
 71  
   @Override
 72  
   protected IncompleteKey build() {
 73  0
     return newKey();
 74  
   }
 75  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.KeyValue.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.KeyValue.html new file mode 100644 index 000000000000..396e36d4081c --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.KeyValue.html @@ -0,0 +1,180 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.KeyValue
+
 
+ + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
KeyValue
0%
0/7
N/A
1
KeyValue$1
0%
0/5
N/A
1
KeyValue$Builder
0%
0/4
N/A
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import static com.google.api.services.datastore.DatastoreV1.Value.KEY_VALUE_FIELD_NUMBER;
 20  
 
 21  
 import com.google.api.services.datastore.DatastoreV1;
 22  
 
 23  0
 public final class KeyValue extends Value<Key> {
 24  
 
 25  
   private static final long serialVersionUID = -1318353707326704821L;
 26  
 
 27  0
   static final BaseMarshaller<Key, KeyValue, Builder> MARSHALLER =
 28  0
       new BaseMarshaller<Key, KeyValue, Builder>() {
 29  
 
 30  
         private static final long serialVersionUID = 5449133205064700403L;
 31  
 
 32  
         @Override
 33  
         public int getProtoFieldId() {
 34  
           return KEY_VALUE_FIELD_NUMBER;
 35  
         }
 36  
 
 37  
         @Override
 38  
         public Builder newBuilder(Key key) {
 39  0
           return builder(key);
 40  
         }
 41  
 
 42  
         @Override
 43  
         protected Key getValue(DatastoreV1.Value from) {
 44  0
           return Key.fromPb(from.getKeyValue());
 45  
         }
 46  
 
 47  
         @Override
 48  
         protected void setValue(KeyValue from, DatastoreV1.Value.Builder to) {
 49  0
           to.setKeyValue(from.get().toPb());
 50  0
         }
 51  
       };
 52  
 
 53  0
   public static final class Builder extends Value.BaseBuilder<Key, KeyValue, Builder> {
 54  
 
 55  
     public Builder() {
 56  0
       super(ValueType.KEY);
 57  0
     }
 58  
 
 59  
     @Override
 60  
     public KeyValue build() {
 61  0
       return new KeyValue(this);
 62  
     }
 63  
   }
 64  
 
 65  
   public KeyValue(Key key) {
 66  0
     this(builder(key));
 67  0
   }
 68  
 
 69  
   private KeyValue(Builder builder) {
 70  
     super(builder);
 71  
   }
 72  
 
 73  
   @Override
 74  
   public Builder toBuilder() {
 75  0
     return new Builder().mergeFrom(this);
 76  
   }
 77  
 
 78  
   public static KeyValue of(Key key) {
 79  0
     return new KeyValue(key);
 80  
   }
 81  
 
 82  
   public static Builder builder(Key key) {
 83  0
     return new Builder().set(key);
 84  
   }
 85  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.ListValue.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.ListValue.html new file mode 100644 index 000000000000..1430d3430df6 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.ListValue.html @@ -0,0 +1,280 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.ListValue
+
 
+ + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
ListValue
0%
0/10
N/A
1.278
ListValue$1
0%
0/12
0%
0/4
1.278
ListValue$Builder
0%
0/20
0%
0/8
1.278
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import static com.google.api.services.datastore.DatastoreV1.Value.LIST_VALUE_FIELD_NUMBER;
 20  
 
 21  
 import com.google.api.services.datastore.DatastoreV1;
 22  
 import com.google.common.base.Preconditions;
 23  
 import com.google.common.collect.ImmutableList;
 24  
 
 25  
 import java.util.ArrayList;
 26  
 import java.util.List;
 27  
 
 28  0
 public final class ListValue extends Value<List<? extends Value<?>>> {
 29  
 
 30  
   private static final long serialVersionUID = -5461475706792576395L;
 31  
 
 32  0
   static final BaseMarshaller<List<? extends Value<?>>, ListValue, Builder> MARSHALLER =
 33  0
       new BaseMarshaller<List<? extends Value<?>>, ListValue, Builder>() {
 34  
 
 35  
         private static final long serialVersionUID = -3193794036327640106L;
 36  
 
 37  
         @Override
 38  
         public int getProtoFieldId() {
 39  0
           return LIST_VALUE_FIELD_NUMBER;
 40  
         }
 41  
 
 42  
         @Override
 43  
         public Builder newBuilder(List<? extends Value<?>> values) {
 44  0
           return builder().set(values);
 45  
         }
 46  
 
 47  
         @Override
 48  
         protected List<Value<?>> getValue(DatastoreV1.Value from) {
 49  0
           List<Value<?>> properties = new ArrayList<>(from.getListValueCount());
 50  0
           for (DatastoreV1.Value valuePb : from.getListValueList()) {
 51  0
             properties.add(Value.fromPb(valuePb));
 52  0
           }
 53  0
           return properties;
 54  
         }
 55  
 
 56  
         @Override
 57  
         protected void setValue(ListValue from, DatastoreV1.Value.Builder to) {
 58  0
           for (Value<?> property : from.get()) {
 59  0
             to.addListValue(property.toPb());
 60  0
           }
 61  0
         }
 62  
       };
 63  
 
 64  0
   public static final class Builder extends
 65  
       Value.BaseBuilder<List<? extends Value<?>>, ListValue, Builder> {
 66  
 
 67  0
     private ImmutableList.Builder<Value<?>> listBuilder = ImmutableList.builder();
 68  
 
 69  
     private Builder() {
 70  0
       super(ValueType.LIST);
 71  0
     }
 72  
 
 73  
     public Builder addValue(Value<?> value) {
 74  
       // see datastore_v1.proto definition for list_value
 75  0
       Preconditions.checkArgument(value.type() != ValueType.LIST, "Cannot contain another list");
 76  0
       listBuilder.add(value);
 77  0
       return this;
 78  
     }
 79  
 
 80  
     public Builder addValue(Value<?> first, Value<?>... other) {
 81  0
       addValue(first);
 82  0
       for (Value<?> value : other) {
 83  0
         addValue(value);
 84  
       }
 85  0
       return this;
 86  
     }
 87  
 
 88  
     @Override
 89  
     public Builder indexed(boolean indexed) {
 90  
       // see issue #26
 91  0
       throw DatastoreException.throwInvalidRequest("ListValue can't specify index");
 92  
     }
 93  
 
 94  
     /**
 95  
      * Copy the list of values.
 96  
      *
 97  
      * @see com.google.gcloud.datastore.Value.BaseBuilder#set(java.lang.Object)
 98  
      */
 99  
     @Override
 100  
     public Builder set(List<? extends Value<?>> values) {
 101  0
       listBuilder = ImmutableList.builder();
 102  0
       for (Value<?> value : values) {
 103  0
         addValue(value);
 104  0
       }
 105  0
       return this;
 106  
     }
 107  
 
 108  
     @Override
 109  
     public List<? extends Value<?>> get() {
 110  0
       return listBuilder.build();
 111  
     }
 112  
 
 113  
     @Override
 114  
     public ListValue build() {
 115  0
       Preconditions.checkState(!get().isEmpty(), "value list could not be empty");
 116  0
       return new ListValue(this);
 117  
     }
 118  
   }
 119  
 
 120  
   public ListValue(List<? extends Value<?>> values) {
 121  0
     this(builder().set(values));
 122  0
   }
 123  
 
 124  
   public ListValue(Value<?> first, Value<?>... other) {
 125  0
     this(new Builder().addValue(first, other));
 126  0
   }
 127  
 
 128  
   private ListValue(Builder builder) {
 129  
     super(builder);
 130  
   }
 131  
 
 132  
   @Override
 133  
   public Builder toBuilder() {
 134  0
     return new Builder().mergeFrom(this);
 135  
   }
 136  
 
 137  
   public static ListValue of(List<? extends Value<?>> values) {
 138  0
     return new ListValue(values);
 139  
   }
 140  
 
 141  
   public static ListValue of(Value<?> first, Value<?>... other) {
 142  0
     return new ListValue(first, other);
 143  
   }
 144  
 
 145  
   public static Builder builder() {
 146  0
     return new Builder();
 147  
   }
 148  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.LongValue.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.LongValue.html new file mode 100644 index 000000000000..f2b576a05c7b --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.LongValue.html @@ -0,0 +1,180 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.LongValue
+
 
+ + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
LongValue
0%
0/7
N/A
1
LongValue$1
0%
0/5
N/A
1
LongValue$Builder
0%
0/4
N/A
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import static com.google.api.services.datastore.DatastoreV1.Value.INTEGER_VALUE_FIELD_NUMBER;
 20  
 
 21  
 import com.google.api.services.datastore.DatastoreV1;
 22  
 
 23  0
 public final class LongValue extends Value<Long> {
 24  
 
 25  
   private static final long serialVersionUID = -8552854340400546861L;
 26  
 
 27  0
   static final BaseMarshaller<Long, LongValue, Builder> MARSHALLER =
 28  0
       new BaseMarshaller<Long, LongValue, Builder>() {
 29  
 
 30  
         private static final long serialVersionUID = 2137414214660959845L;
 31  
 
 32  
         @Override
 33  
         public int getProtoFieldId() {
 34  
           return INTEGER_VALUE_FIELD_NUMBER;
 35  
         }
 36  
 
 37  
         @Override
 38  
         public Builder newBuilder(Long value) {
 39  0
           return builder(value);
 40  
         }
 41  
 
 42  
         @Override
 43  
         protected Long getValue(DatastoreV1.Value from) {
 44  0
           return from.getIntegerValue();
 45  
         }
 46  
 
 47  
         @Override
 48  
         protected void setValue(LongValue from, DatastoreV1.Value.Builder to) {
 49  0
           to.setIntegerValue(from.get());
 50  0
         }
 51  
       };
 52  
 
 53  0
   public static final class Builder extends Value.BaseBuilder<Long, LongValue, Builder> {
 54  
 
 55  
     private Builder() {
 56  0
       super(ValueType.LONG);
 57  0
     }
 58  
 
 59  
     @Override
 60  
     public LongValue build() {
 61  0
       return new LongValue(this);
 62  
     }
 63  
   }
 64  
 
 65  
   public LongValue(long value) {
 66  0
     this(builder(value));
 67  0
   }
 68  
 
 69  
   private LongValue(Builder builder) {
 70  
     super(builder);
 71  
   }
 72  
 
 73  
   @Override
 74  
   public Builder toBuilder() {
 75  0
     return new Builder().mergeFrom(this);
 76  
   }
 77  
 
 78  
   public static LongValue of(long value) {
 79  0
     return new LongValue(value);
 80  
   }
 81  
 
 82  
   public static Builder builder(long value) {
 83  0
     return new Builder().set(value);
 84  
   }
 85  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.NullValue.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.NullValue.html new file mode 100644 index 000000000000..259e8b1a08e5 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.NullValue.html @@ -0,0 +1,191 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.NullValue
+
 
+ + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
NullValue
0%
0/7
N/A
1
NullValue$1
0%
0/4
N/A
1
NullValue$Builder
0%
0/6
0%
0/2
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import static com.google.common.base.Preconditions.checkArgument;
 20  
 
 21  
 import com.google.api.services.datastore.DatastoreV1;
 22  
 
 23  0
 public final class NullValue extends Value<Void> {
 24  
 
 25  
   private static final long serialVersionUID = 8497300779013002270L;
 26  
 
 27  0
   static final BaseMarshaller<Void, NullValue, Builder> MARSHALLER =
 28  0
       new BaseMarshaller<Void, NullValue, Builder>() {
 29  
 
 30  
         private static final long serialVersionUID = 2785573597627128832L;
 31  
 
 32  
         @Override
 33  
         public Builder newBuilder(Void value) {
 34  0
           return builder();
 35  
         }
 36  
 
 37  
         @Override
 38  
         public int getProtoFieldId() {
 39  
           return 0;
 40  
         }
 41  
 
 42  
         @Override
 43  
         protected Void getValue(DatastoreV1.Value from) {
 44  0
           return null;
 45  
         }
 46  
 
 47  
         @Override
 48  
         protected void setValue(NullValue from, DatastoreV1.Value.Builder to) {
 49  
           // nothing to set
 50  0
         }
 51  
       };
 52  
 
 53  0
   public static final class Builder extends Value.BaseBuilder<Void, NullValue, Builder> {
 54  
 
 55  
     private Builder() {
 56  0
       super(ValueType.NULL);
 57  0
     }
 58  
 
 59  
     @Override
 60  
     public NullValue build() {
 61  0
       return new NullValue(this);
 62  
     }
 63  
 
 64  
     @Override
 65  
     public Builder set(Void value) {
 66  0
       checkArgument(value == null, "Only null values are allowed");
 67  0
       return this;
 68  
     }
 69  
   }
 70  
 
 71  
   public NullValue() {
 72  0
     this(builder());
 73  0
   }
 74  
 
 75  
   private NullValue(Builder builder) {
 76  
     super(builder);
 77  
   }
 78  
 
 79  
   @Override
 80  
   public Builder toBuilder() {
 81  0
     return new Builder().mergeFrom(this);
 82  
   }
 83  
 
 84  
   public static NullValue of() {
 85  0
     return new NullValue();
 86  
   }
 87  
 
 88  
   public static Builder builder() {
 89  0
     return new Builder();
 90  
   }
 91  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.PathElement.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.PathElement.html new file mode 100644 index 000000000000..5e58a860fdbc --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.PathElement.html @@ -0,0 +1,243 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.PathElement
+
 
+ + + + +
Classes in this File Line Coverage Branch Coverage Complexity
PathElement
0%
0/41
0%
0/30
1.867
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import static com.google.common.base.Preconditions.checkArgument;
 20  
 import static com.google.common.base.Preconditions.checkNotNull;
 21  
 
 22  
 import com.google.api.services.datastore.DatastoreV1;
 23  
 import com.google.common.base.Strings;
 24  
 import com.google.protobuf.InvalidProtocolBufferException;
 25  
 
 26  
 import java.util.Objects;
 27  
 
 28  
 /**
 29  
  * Represents a single element in a key's path.
 30  
  */
 31  0
 public final class PathElement extends Serializable<DatastoreV1.Key.PathElement> {
 32  
 
 33  
   private static final long serialVersionUID = -7968078857690784595L;
 34  
 
 35  
   private final transient String kind;
 36  
   private final transient Long id;
 37  
   private final transient String name;
 38  
 
 39  0
   private PathElement(String kind, String name, Long id) {
 40  0
     this.kind = checkNotNull(kind, "kind must not be null");
 41  0
     this.name = name;
 42  0
     this.id = id;
 43  0
   }
 44  
 
 45  
   public String kind() {
 46  0
     return kind;
 47  
   }
 48  
 
 49  
   public boolean hasId() {
 50  0
     return id != null;
 51  
   }
 52  
 
 53  
   public Long id() {
 54  0
     return id;
 55  
   }
 56  
 
 57  
   public boolean hasName() {
 58  0
     return name != null;
 59  
   }
 60  
 
 61  
   public String name() {
 62  0
     return name;
 63  
   }
 64  
 
 65  
   public Object nameOrId() {
 66  0
     return id == null ? name : id;
 67  
   }
 68  
 
 69  
   @Override
 70  
   public int hashCode() {
 71  0
     return Objects.hash(kind, id, name);
 72  
   }
 73  
 
 74  
   @Override
 75  
   public boolean equals(Object obj) {
 76  0
     if (obj == this) {
 77  0
       return true;
 78  
     }
 79  0
     if (!(obj instanceof PathElement)) {
 80  0
       return false;
 81  
     }
 82  0
     PathElement other = (PathElement) obj;
 83  0
     return Objects.equals(kind, other.kind)
 84  0
         && Objects.equals(id, other.id)
 85  0
         && Objects.equals(name, other.name);
 86  
   }
 87  
 
 88  
   @Override
 89  
   protected DatastoreV1.Key.PathElement toPb() {
 90  0
     DatastoreV1.Key.PathElement.Builder pathElementPb = DatastoreV1.Key.PathElement.newBuilder();
 91  0
     pathElementPb.setKind(kind);
 92  0
     if (id != null) {
 93  0
       pathElementPb.setId(id);
 94  0
     } else if (name != null) {
 95  0
       pathElementPb.setName(name);
 96  
     }
 97  0
     return pathElementPb.build();
 98  
   }
 99  
 
 100  
   @Override
 101  
   protected Object fromPb(byte[] bytesPb) throws InvalidProtocolBufferException {
 102  0
     return fromPb(DatastoreV1.Key.PathElement.parseFrom(bytesPb));
 103  
   }
 104  
 
 105  
   static PathElement fromPb(DatastoreV1.Key.PathElement pathElementPb) {
 106  0
     String kind = pathElementPb.getKind();
 107  0
     if (pathElementPb.hasId()) {
 108  0
       return of(kind, pathElementPb.getId());
 109  
     }
 110  0
     if (pathElementPb.hasName()) {
 111  0
       return of(kind, pathElementPb.getName());
 112  
     }
 113  0
     return of(kind);
 114  
   }
 115  
 
 116  
   static PathElement of(String kind) {
 117  0
     return new PathElement(kind, null, null);
 118  
   }
 119  
 
 120  
   public static PathElement of(String kind, String name) {
 121  0
     checkArgument(!Strings.isNullOrEmpty(name) , "name must not be empty or null");
 122  0
     checkArgument(name.length() <= 500, "name must not exceed 500 characters");
 123  0
     return new PathElement(kind, name, null);
 124  
   }
 125  
 
 126  
   public static PathElement of(String kind, long id) {
 127  0
     checkArgument(id != 0, "id must not be equal to zero");
 128  0
     return new PathElement(kind, null, id);
 129  
   }
 130  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.ProjectionEntity.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.ProjectionEntity.html new file mode 100644 index 000000000000..3640ca38bea8 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.ProjectionEntity.html @@ -0,0 +1,186 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.ProjectionEntity
+
 
+ + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
ProjectionEntity
0%
0/12
0%
0/12
1.889
ProjectionEntity$1
N/A
N/A
1.889
ProjectionEntity$Builder
0%
0/2
N/A
1.889
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import com.google.api.services.datastore.DatastoreV1;
 20  
 import com.google.protobuf.ByteString;
 21  
 
 22  
 /**
 23  
  * A projection entity is a result of a Google Cloud Datastore projection query.
 24  
  * A projection entity holds one or more properties, represented by a name (as {@link String})
 25  
  * and a value (as {@link Value}), and may have a {@link Key}.
 26  
  *
 27  
  * @see <a href="https://cloud.google.com/datastore/docs/concepts/projectionqueries">Google Cloud
 28  
  *     Datastore projection queries</a>
 29  
  * @see <a href="https://cloud.google.com/datastore/docs/concepts/entities">Google Cloud Datastore
 30  
  *     Entities, Properties, and Keys</a>
 31  
  */
 32  0
 public final class ProjectionEntity extends BaseEntity<Key> {
 33  
 
 34  
   private static final long serialVersionUID = 432961565733066915L;
 35  
 
 36  0
   public static final class Builder extends BaseEntity.Builder<Key, Builder> {
 37  
 
 38  
     Builder() {
 39  
     }
 40  
 
 41  
     private Builder(ProjectionEntity entity) {
 42  
       super(entity);
 43  
     }
 44  
 
 45  
     @Override
 46  
     public ProjectionEntity build() {
 47  0
       return new ProjectionEntity(this);
 48  
     }
 49  
   }
 50  
 
 51  
   ProjectionEntity(Builder builder) {
 52  
     super(builder);
 53  
   }
 54  
 
 55  
   @SuppressWarnings({"unchecked", "deprecation"})
 56  
   @Override
 57  
   public DateTime getDateTime(String name) {
 58  0
     Value<?> value = getValue(name);
 59  0
     if (value.hasMeaning() && value.meaning() == 18 && value instanceof LongValue) {
 60  0
       return new DateTime(getLong(name));
 61  
     }
 62  0
     return ((Value<DateTime>) value).get();
 63  
   }
 64  
 
 65  
   @SuppressWarnings({"unchecked", "deprecation"})
 66  
   @Override
 67  
   public Blob getBlob(String name) {
 68  0
     Value<?> value = getValue(name);
 69  0
     if (value.hasMeaning() && value.meaning() == 18 && value instanceof StringValue) {
 70  0
       return new Blob(ByteString.copyFromUtf8(getString(name)));
 71  
     }
 72  0
     return ((Value<Blob>) value).get();
 73  
   }
 74  
 
 75  
   static ProjectionEntity fromPb(DatastoreV1.Entity entityPb) {
 76  0
     return new Builder().fill(entityPb).build();
 77  
   }
 78  
 
 79  
   @Override
 80  
   protected Builder emptyBuilder() {
 81  0
     return new Builder();
 82  
   }
 83  
 
 84  
   public static Builder builder(ProjectionEntity copyFrom) {
 85  0
     return new Builder(copyFrom);
 86  
   }
 87  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.Query.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.Query.html new file mode 100644 index 000000000000..d95a61ae9709 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.Query.html @@ -0,0 +1,434 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.Query
+
 
+ + + + + + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
Query
0%
0/17
N/A
1.36
Query$1
N/A
N/A
1.36
Query$ResultType
0%
0/26
0%
0/6
1.36
Query$ResultType$1
0%
0/5
0%
0/4
1.36
Query$ResultType$2
0%
0/2
N/A
1.36
Query$ResultType$3
0%
0/2
N/A
1.36
Query$ResultType$4
0%
0/2
N/A
1.36
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import static com.google.common.base.Preconditions.checkNotNull;
 20  
 
 21  
 import com.google.api.services.datastore.DatastoreV1;
 22  
 import com.google.common.base.MoreObjects;
 23  
 import com.google.common.base.MoreObjects.ToStringHelper;
 24  
 import com.google.common.collect.Maps;
 25  
 import com.google.gcloud.datastore.StructuredQuery.EntityQueryBuilder;
 26  
 import com.google.gcloud.datastore.StructuredQuery.KeyQueryBuilder;
 27  
 import com.google.gcloud.datastore.StructuredQuery.ProjectionEntityQueryBuilder;
 28  
 import com.google.protobuf.GeneratedMessage;
 29  
 import com.google.protobuf.InvalidProtocolBufferException;
 30  
 
 31  
 import java.util.Map;
 32  
 
 33  
 
 34  
 /**
 35  
  * A Google Cloud Datastore query.
 36  
  * For usage examples see {@link GqlQuery} and {@link StructuredQuery}.
 37  
  *
 38  
  * @param <V> the type of the values returned by this query.
 39  
  * @see <a href="https://cloud.google.com/datastore/docs/concepts/queries">Datastore Queries</a>
 40  
  */
 41  
 public abstract class Query<V> extends Serializable<GeneratedMessage> {
 42  
 
 43  
   private static final long serialVersionUID = -2748141759901313101L;
 44  
 
 45  
   private final ResultType<V> resultType;
 46  
   private final String namespace;
 47  
 
 48  
   /**
 49  
    * This class represents the expected type of the result.
 50  
    *   ENTITY: A full entity represented by {@link Entity}.
 51  
    *   PROJECTION_ENTITY: A projection entity, represented by {@link ProjectionEntity}.
 52  
    *   KEY: An entity's {@link Key}.
 53  
    */
 54  0
   public abstract static class ResultType<V> implements java.io.Serializable {
 55  
 
 56  
     private static final long serialVersionUID = 2104157695425806623L;
 57  
     private static final Map<DatastoreV1.EntityResult.ResultType, ResultType<?>>
 58  0
         PB_TO_INSTANCE = Maps.newEnumMap(DatastoreV1.EntityResult.ResultType.class);
 59  
 
 60  0
     static final ResultType<?> UNKNOWN = new ResultType<Object>(null, Object.class) {
 61  
 
 62  
       private static final long serialVersionUID = 1602329532153860907L;
 63  
 
 64  
       @Override protected Object convert(DatastoreV1.Entity entityPb) {
 65  0
         if (entityPb.getPropertyCount() == 0) {
 66  0
           if (!entityPb.hasKey()) {
 67  0
             return null;
 68  
           }
 69  0
           return Key.fromPb(entityPb.getKey());
 70  
         }
 71  0
         return ProjectionEntity.fromPb(entityPb);
 72  
       }
 73  
     };
 74  
 
 75  0
     public static final ResultType<Entity> ENTITY =
 76  0
         new ResultType<Entity>(DatastoreV1.EntityResult.ResultType.FULL, Entity.class) {
 77  
 
 78  
       private static final long serialVersionUID = 7712959777507168274L;
 79  
 
 80  
       @Override protected Entity convert(DatastoreV1.Entity entityPb) {
 81  0
         return Entity.fromPb(entityPb);
 82  
       }
 83  
     };
 84  
 
 85  0
     public static final ResultType<Key> KEY =
 86  0
         new ResultType<Key>(DatastoreV1.EntityResult.ResultType.KEY_ONLY, Key.class) {
 87  
 
 88  
       private static final long serialVersionUID = -8514289244104446252L;
 89  
 
 90  
       @Override protected Key convert(DatastoreV1.Entity entityPb) {
 91  0
         return Key.fromPb(entityPb.getKey());
 92  
       }
 93  
     };
 94  
 
 95  0
     public static final ResultType<ProjectionEntity> PROJECTION_ENTITY =
 96  
         new ResultType<ProjectionEntity>(DatastoreV1.EntityResult.ResultType.PROJECTION,
 97  0
             ProjectionEntity.class) {
 98  
 
 99  
           private static final long serialVersionUID = -7591409419690650246L;
 100  
 
 101  
           @Override protected ProjectionEntity convert(DatastoreV1.Entity entityPb) {
 102  0
             return ProjectionEntity.fromPb(entityPb);
 103  
           }
 104  
     };
 105  
 
 106  
     private final Class<V> resultClass;
 107  
     private final DatastoreV1.EntityResult.ResultType queryType;
 108  
 
 109  0
     private ResultType(DatastoreV1.EntityResult.ResultType queryType, Class<V> resultClass) {
 110  0
       this.queryType = queryType;
 111  0
       this.resultClass = resultClass;
 112  0
       if (queryType != null) {
 113  0
         PB_TO_INSTANCE.put(queryType, this);
 114  
       }
 115  0
     }
 116  
 
 117  
     public Class<V> resultClass() {
 118  0
       return resultClass;
 119  
     }
 120  
 
 121  
     @Override
 122  
     public int hashCode() {
 123  0
       return resultClass.hashCode();
 124  
     }
 125  
 
 126  
     @Override
 127  
     public boolean equals(Object obj) {
 128  0
       if (obj == this) {
 129  0
         return true;
 130  
       }
 131  0
       if (!(obj instanceof ResultType)) {
 132  0
         return false;
 133  
       }
 134  0
       ResultType<?> other = (ResultType<?>) obj;
 135  0
       return resultClass.equals(other.resultClass);
 136  
     }
 137  
 
 138  
     @Override
 139  
     public String toString() {
 140  0
       ToStringHelper toStringHelper = MoreObjects.toStringHelper(this);
 141  0
       toStringHelper.add("queryType", queryType);
 142  0
       toStringHelper.add("resultClass", resultClass);
 143  0
       return toStringHelper.toString();
 144  
     }
 145  
 
 146  
     boolean isAssignableFrom(ResultType<?> otherResultType) {
 147  0
       return resultClass.isAssignableFrom(otherResultType.resultClass);
 148  
     }
 149  
 
 150  
     protected abstract V convert(DatastoreV1.Entity entityPb);
 151  
 
 152  
     static ResultType<?> fromPb(DatastoreV1.EntityResult.ResultType typePb) {
 153  0
       return MoreObjects.firstNonNull(PB_TO_INSTANCE.get(typePb), UNKNOWN);
 154  
     }
 155  
   }
 156  
 
 157  0
   Query(ResultType<V> resultType, String namespace) {
 158  0
     this.resultType = checkNotNull(resultType);
 159  0
     this.namespace = namespace;
 160  0
   }
 161  
 
 162  
   ResultType<V> type() {
 163  0
     return resultType;
 164  
   }
 165  
 
 166  
   public String namespace() {
 167  0
     return namespace;
 168  
   }
 169  
 
 170  
   @Override
 171  
   public String toString() {
 172  0
     ToStringHelper toStringHelper = MoreObjects.toStringHelper(this);
 173  0
     toStringHelper.add("type", resultType);
 174  0
     toStringHelper.add("namespace", namespace);
 175  0
     toStringHelper.add("queryPb", super.toString());
 176  0
     return toStringHelper.toString();
 177  
   }
 178  
 
 179  
   @Override
 180  
   protected Object fromPb(byte[] bytesPb) throws InvalidProtocolBufferException {
 181  0
     return fromPb(resultType, namespace, bytesPb);
 182  
   }
 183  
 
 184  
   protected abstract Object fromPb(ResultType<V> resultType, String namespace, byte[] bytesPb)
 185  
       throws InvalidProtocolBufferException;
 186  
 
 187  
   protected abstract void populatePb(DatastoreV1.RunQueryRequest.Builder requestPb);
 188  
 
 189  
   protected abstract Query<V> nextQuery(DatastoreV1.QueryResultBatch responsePb);
 190  
 
 191  
   /**
 192  
    * Returns a new {@link GqlQuery} builder.
 193  
    *
 194  
    * @see <a href="https://cloud.google.com/datastore/docs/apis/gql/gql_reference">GQL Reference</a>
 195  
    */
 196  
   public static GqlQuery.Builder<?> gqlQueryBuilder(String gql) {
 197  0
     return gqlQueryBuilder(ResultType.UNKNOWN, gql);
 198  
   }
 199  
 
 200  
   /**
 201  
    * Returns a new {@link GqlQuery} builder.
 202  
    *
 203  
    * @see <a href="https://cloud.google.com/datastore/docs/apis/gql/gql_reference">GQL Reference</a>
 204  
    */
 205  
   public static <V> GqlQuery.Builder<V> gqlQueryBuilder(ResultType<V> resultType, String gql) {
 206  0
     return new GqlQuery.Builder<>(resultType, gql);
 207  
   }
 208  
 
 209  
   /**
 210  
    * Returns a new {@link StructuredQuery} builder for full (complete entities) queries.
 211  
    */
 212  
   public static EntityQueryBuilder entityQueryBuilder() {
 213  0
     return new EntityQueryBuilder();
 214  
   }
 215  
 
 216  
   /**
 217  
    * Returns a new {@link StructuredQuery} builder for key only queries.
 218  
    */
 219  
   public static KeyQueryBuilder keyQueryBuilder() {
 220  0
     return new KeyQueryBuilder();
 221  
   }
 222  
 
 223  
   /**
 224  
    * Returns a new {@link StructuredQuery} builder for projection queries.
 225  
    */
 226  
   public static ProjectionEntityQueryBuilder projectionEntityQueryBuilder() {
 227  0
     return new ProjectionEntityQueryBuilder();
 228  
   }
 229  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.QueryResults.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.QueryResults.html new file mode 100644 index 000000000000..b093e0ab14cd --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.QueryResults.html @@ -0,0 +1,108 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.QueryResults
+
 
+ + + + +
Classes in this File Line Coverage Branch Coverage Complexity
QueryResults
N/A
N/A
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import java.util.Iterator;
 20  
 
 21  
 /**
 22  
  * The result of a Google Cloud Datastore query submission.
 23  
  * When the result is not typed it is possible to cast it to its appropriate type according to
 24  
  * the {@link #resultClass} value.
 25  
  * Results are loaded lazily; therefore it is possible to get a {@code DatastoreException}
 26  
  * upon {@link Iterator#hasNext hasNext} or {@link Iterator#next next} calls.
 27  
  *
 28  
  * @param <V> the type of the results value.
 29  
  */
 30  
 public interface QueryResults<V> extends Iterator<V> {
 31  
 
 32  
   /**
 33  
    * Returns the actual class of the result's values.
 34  
    */
 35  
   Class<?> resultClass();
 36  
 
 37  
   /**
 38  
    * Returns the Cursor for point after the value returned in the last {@link #next} call.
 39  
    * Not currently implemented (depends on v1beta3).
 40  
    */
 41  
   Cursor cursorAfter();
 42  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.QueryResultsImpl.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.QueryResultsImpl.html new file mode 100644 index 000000000000..80d3f26b584b --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.QueryResultsImpl.html @@ -0,0 +1,197 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.QueryResultsImpl
+
 
+ + + + +
Classes in this File Line Coverage Branch Coverage Complexity
QueryResultsImpl
0%
0/37
0%
0/16
2.6
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import com.google.api.services.datastore.DatastoreV1;
 20  
 import com.google.api.services.datastore.DatastoreV1.QueryResultBatch.MoreResultsType;
 21  
 import com.google.common.base.Preconditions;
 22  
 import com.google.common.collect.AbstractIterator;
 23  
 import com.google.gcloud.datastore.Query.ResultType;
 24  
 
 25  
 import java.util.Iterator;
 26  
 import java.util.Objects;
 27  
 
 28  
 class QueryResultsImpl<T> extends AbstractIterator<T> implements QueryResults<T> {
 29  
 
 30  
   private final DatastoreImpl datastore;
 31  
   private final DatastoreV1.ReadOptions readOptionsPb;
 32  
   private final DatastoreV1.PartitionId partitionIdPb;
 33  
   private final ResultType<T> queryResultType;
 34  
   private Query<T> query;
 35  
   private ResultType<?> actualResultType;
 36  
   private DatastoreV1.QueryResultBatch queryResultBatchPb;
 37  
   private boolean lastBatch;
 38  
   private Iterator<DatastoreV1.EntityResult> entityResultPbIter;
 39  
   //private ByteString cursor; // only available in v1beta3
 40  
 
 41  
 
 42  
   QueryResultsImpl(DatastoreImpl datastore, DatastoreV1.ReadOptions readOptionsPb,
 43  0
                    Query<T> query) {
 44  0
     this.datastore = datastore;
 45  0
     this.readOptionsPb = readOptionsPb;
 46  0
     this.query = query;
 47  0
     queryResultType = query.type();
 48  0
     DatastoreV1.PartitionId.Builder pbBuilder = DatastoreV1.PartitionId.newBuilder();
 49  0
     pbBuilder.setDatasetId(datastore.options().projectId());
 50  0
     if (query.namespace() != null) {
 51  0
       pbBuilder.setNamespace(query.namespace());
 52  0
     } else if (datastore.options().namespace() != null) {
 53  0
       pbBuilder.setNamespace(datastore.options().namespace());
 54  
     }
 55  0
     partitionIdPb = pbBuilder.build();
 56  0
     sendRequest();
 57  0
   }
 58  
 
 59  
   private void sendRequest() {
 60  0
     DatastoreV1.RunQueryRequest.Builder requestPb = DatastoreV1.RunQueryRequest.newBuilder();
 61  0
     if (readOptionsPb != null) {
 62  0
       requestPb.setReadOptions(readOptionsPb);
 63  
     }
 64  0
     requestPb.setPartitionId(partitionIdPb);
 65  0
     query.populatePb(requestPb);
 66  0
     queryResultBatchPb = datastore.runQuery(requestPb.build()).getBatch();
 67  0
     lastBatch = queryResultBatchPb.getMoreResults() != MoreResultsType.NOT_FINISHED;
 68  0
     entityResultPbIter = queryResultBatchPb.getEntityResultList().iterator();
 69  
     // cursor = resultPb.getSkippedCursor(); // available in v1beta3, use startCursor if not skipped
 70  0
     actualResultType = ResultType.fromPb(queryResultBatchPb.getEntityResultType());
 71  0
     if (Objects.equals(queryResultType, ResultType.PROJECTION_ENTITY)) {
 72  
       // projection entity can represent all type of results
 73  0
       actualResultType = ResultType.PROJECTION_ENTITY;
 74  
     }
 75  0
     Preconditions.checkState(queryResultType.isAssignableFrom(actualResultType),
 76  
         "Unexpected result type " + actualResultType + " vs " + queryResultType);
 77  0
   }
 78  
 
 79  
   @Override
 80  
   protected T computeNext() {
 81  0
     while (!entityResultPbIter.hasNext() && !lastBatch) {
 82  0
       query = query.nextQuery(queryResultBatchPb);
 83  0
       sendRequest();
 84  
     }
 85  0
     if (!entityResultPbIter.hasNext()) {
 86  0
       return endOfData();
 87  
     }
 88  0
     DatastoreV1.EntityResult entityResultPb = entityResultPbIter.next();
 89  
     //cursor = entityResultPb.getCursor(); // only available in v1beta3
 90  
     @SuppressWarnings("unchecked")
 91  0
     T result = (T) actualResultType.convert(entityResultPb.getEntity());
 92  0
     return result;
 93  
   }
 94  
 
 95  
   @Override
 96  
   public Class<?> resultClass() {
 97  0
     return actualResultType.resultClass();
 98  
   }
 99  
 
 100  
   @Override
 101  
   public Cursor cursorAfter() {
 102  
     //return new Cursor(cursor); // only available in v1beta3
 103  0
     return null;
 104  
   }
 105  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.RawValue.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.RawValue.html new file mode 100644 index 000000000000..f394a72eda06 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.RawValue.html @@ -0,0 +1,188 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.RawValue
+
 
+ + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
RawValue
0%
0/13
0%
0/4
1.182
RawValue$1
0%
0/5
N/A
1.182
RawValue$Builder
0%
0/4
N/A
1.182
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import com.google.api.services.datastore.DatastoreV1;
 20  
 
 21  0
 public final class RawValue extends Value<DatastoreV1.Value> {
 22  
 
 23  
   private static final long serialVersionUID = -3359604598651897941L;
 24  
 
 25  0
   static final BaseMarshaller<DatastoreV1.Value, RawValue, Builder> MARSHALLER =
 26  0
       new BaseMarshaller<DatastoreV1.Value, RawValue, Builder>() {
 27  
 
 28  
         private static final long serialVersionUID = 5320642719486106244L;
 29  
 
 30  
         @Override
 31  
         public Builder newBuilder(DatastoreV1.Value value) {
 32  0
           return builder(value);
 33  
         }
 34  
 
 35  
         @Override
 36  
         public int getProtoFieldId() {
 37  
           return 0;
 38  
         }
 39  
 
 40  
         @Override
 41  
         protected DatastoreV1.Value getValue(DatastoreV1.Value from) {
 42  0
           return from;
 43  
         }
 44  
 
 45  
         @Override
 46  
         protected void setValue(RawValue from, DatastoreV1.Value.Builder to) {
 47  0
           to.mergeFrom(from.get());
 48  0
         }
 49  
       };
 50  
 
 51  0
   public static final class Builder
 52  
       extends Value.BaseBuilder<DatastoreV1.Value, RawValue, Builder> {
 53  
 
 54  
     private Builder() {
 55  0
       super(ValueType.RAW_VALUE);
 56  0
     }
 57  
 
 58  
     @Override
 59  
     public RawValue build() {
 60  0
       return new RawValue(this);
 61  
     }
 62  
   }
 63  
 
 64  
   private RawValue(Builder builder) {
 65  
     super(builder);
 66  
   }
 67  
 
 68  
   RawValue(DatastoreV1.Value valuePb) {
 69  0
     this(builder(valuePb));
 70  0
   }
 71  
 
 72  
   @Override
 73  
   public Builder toBuilder() {
 74  0
     return new Builder().mergeFrom(this);
 75  
   }
 76  
 
 77  
   static RawValue of(DatastoreV1.Value valuePb) {
 78  0
     return new RawValue(valuePb);
 79  
   }
 80  
 
 81  
   static Builder builder(DatastoreV1.Value valuePb) {
 82  0
     Builder builder = new Builder();
 83  0
     if (valuePb.hasIndexed()) {
 84  0
       builder.indexed(valuePb.getIndexed());
 85  
     }
 86  0
     if (valuePb.hasMeaning()) {
 87  0
       builder.meaning(valuePb.getMeaning());
 88  
     }
 89  0
     builder.set(valuePb);
 90  0
     return builder;
 91  
   }
 92  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.Serializable.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.Serializable.html new file mode 100644 index 000000000000..6e6b1958dceb --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.Serializable.html @@ -0,0 +1,139 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.Serializable
+
 
+ + + + +
Classes in this File Line Coverage Branch Coverage Complexity
Serializable
0%
0/13
N/A
1.5
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import com.google.protobuf.GeneratedMessage;
 20  
 import com.google.protobuf.InvalidProtocolBufferException;
 21  
 
 22  
 import java.io.IOException;
 23  
 import java.io.ObjectInputStream;
 24  
 import java.io.ObjectOutputStream;
 25  
 import java.io.ObjectStreamException;
 26  
 import java.io.StreamCorruptedException;
 27  
 
 28  
 abstract class Serializable<M extends GeneratedMessage> implements java.io.Serializable {
 29  
 
 30  
   private static final long serialVersionUID = -5565522710061949199L;
 31  
 
 32  
   private transient byte[] bytesPb; // only for deserialization
 33  
 
 34  
   @Override
 35  
   public String toString() {
 36  0
     return toPb().toString();
 37  
   }
 38  
 
 39  
   private void writeObject(ObjectOutputStream output) throws IOException {
 40  0
     output.defaultWriteObject();
 41  0
     output.writeObject(toPb().toByteArray());
 42  0
   }
 43  
 
 44  
   private void readObject(ObjectInputStream input) throws IOException, ClassNotFoundException {
 45  0
     input.defaultReadObject();
 46  0
     bytesPb = (byte[]) input.readObject();
 47  0
   }
 48  
 
 49  
   protected Object readResolve() throws ObjectStreamException {
 50  
     try {
 51  0
       return fromPb(bytesPb);
 52  0
     } catch (InvalidProtocolBufferException ex) {
 53  0
       StreamCorruptedException sce = new StreamCorruptedException("Failed to create object");
 54  0
       sce.initCause(ex);
 55  0
       throw sce;
 56  
     } finally {
 57  0
       bytesPb = null;
 58  
     }
 59  
   }
 60  
 
 61  
   protected abstract M toPb();
 62  
 
 63  
   protected abstract Object fromPb(byte[] bytesPb) throws InvalidProtocolBufferException;
 64  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.StringValue.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.StringValue.html new file mode 100644 index 000000000000..7f5c1f339ac5 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.StringValue.html @@ -0,0 +1,179 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.StringValue
+
 
+ + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
StringValue
0%
0/7
N/A
1
StringValue$1
0%
0/6
N/A
1
StringValue$Builder
0%
0/4
N/A
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import static com.google.api.services.datastore.DatastoreV1.Value.STRING_VALUE_FIELD_NUMBER;
 20  
 
 21  
 import com.google.api.services.datastore.DatastoreV1;
 22  
 
 23  0
 public final class StringValue extends Value<String> {
 24  
 
 25  
   private static final long serialVersionUID = -3105699707394545523L;
 26  
 
 27  0
   static final BaseMarshaller<String, StringValue, Builder> MARSHALLER =
 28  0
       new BaseMarshaller<String, StringValue, Builder>() {
 29  
 
 30  
         private static final long serialVersionUID = -359610204134164436L;
 31  
 
 32  
         @Override
 33  
         public int getProtoFieldId() {
 34  0
           return STRING_VALUE_FIELD_NUMBER;
 35  
         }
 36  
 
 37  
         @Override
 38  
         public Builder newBuilder(String value) {
 39  0
           return builder(value);
 40  
         }
 41  
 
 42  
         @Override
 43  
         protected String getValue(DatastoreV1.Value from) {
 44  0
           return from.getStringValue();
 45  
         }
 46  
 
 47  
         @Override
 48  
         protected void setValue(StringValue from, DatastoreV1.Value.Builder to) {
 49  0
           to.setStringValue(from.get());
 50  0
         }
 51  
       };
 52  
 
 53  0
   public static final class Builder extends Value.BaseBuilder<String, StringValue, Builder> {
 54  
 
 55  
     private Builder() {
 56  0
       super(ValueType.STRING);
 57  0
     }
 58  
 
 59  
     @Override
 60  
     public StringValue build() {
 61  0
       return new StringValue(this);
 62  
     }
 63  
   }
 64  
 
 65  
   public StringValue(String value) {
 66  0
     this(builder(value));
 67  0
   }
 68  
 
 69  
   private StringValue(Builder builder) {
 70  
     super(builder);
 71  
   }
 72  
 
 73  
   @Override
 74  
   public Builder toBuilder() {
 75  0
     return new Builder().mergeFrom(this);
 76  
   }
 77  
 
 78  
   public static StringValue of(String value) {
 79  0
     return new StringValue(value);
 80  
   }
 81  
 
 82  
   public static Builder builder(String value) {
 83  0
     return new Builder().set(value);
 84  
   }
 85  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.StructuredQuery.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.StructuredQuery.html new file mode 100644 index 000000000000..33a540a9408d --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.StructuredQuery.html @@ -0,0 +1,1656 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.StructuredQuery
+
 
+ + + + + + + + + + + + + + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
StructuredQuery
0%
0/80
0%
0/56
1.489
StructuredQuery$BaseBuilder
0%
0/71
0%
0/24
1.489
StructuredQuery$Builder
N/A
N/A
1.489
StructuredQuery$CompositeFilter
0%
0/36
0%
0/14
1.489
StructuredQuery$CompositeFilter$Operator
0%
0/4
N/A
1.489
StructuredQuery$EntityQueryBuilder
0%
0/3
N/A
1.489
StructuredQuery$Filter
0%
0/3
0%
0/2
1.489
StructuredQuery$KeyQueryBuilder
0%
0/9
N/A
1.489
StructuredQuery$OrderBy
0%
0/22
0%
0/8
1.489
StructuredQuery$OrderBy$Direction
0%
0/4
N/A
1.489
StructuredQuery$Projection
0%
0/28
0%
0/14
1.489
StructuredQuery$Projection$Aggregate
0%
0/4
N/A
1.489
StructuredQuery$ProjectionEntityQueryBuilder
0%
0/10
N/A
1.489
StructuredQuery$PropertyFilter
0%
0/71
0%
0/12
1.489
StructuredQuery$PropertyFilter$Operator
0%
0/9
N/A
1.489
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import static com.google.common.base.Preconditions.checkNotNull;
 20  
 import static com.google.gcloud.datastore.BlobValue.of;
 21  
 import static com.google.gcloud.datastore.BooleanValue.of;
 22  
 import static com.google.gcloud.datastore.DateTimeValue.of;
 23  
 import static com.google.gcloud.datastore.DoubleValue.of;
 24  
 import static com.google.gcloud.datastore.KeyValue.of;
 25  
 import static com.google.gcloud.datastore.LongValue.of;
 26  
 import static com.google.gcloud.datastore.StringValue.of;
 27  
 
 28  
 import com.google.api.services.datastore.DatastoreV1;
 29  
 import com.google.common.base.MoreObjects;
 30  
 import com.google.common.base.MoreObjects.ToStringHelper;
 31  
 import com.google.common.base.Preconditions;
 32  
 import com.google.common.collect.ImmutableList;
 33  
 import com.google.protobuf.InvalidProtocolBufferException;
 34  
 
 35  
 import java.io.Serializable;
 36  
 import java.util.Arrays;
 37  
 import java.util.Collections;
 38  
 import java.util.LinkedList;
 39  
 import java.util.List;
 40  
 import java.util.Objects;
 41  
 
 42  
 /**
 43  
  * An implementation of a Google Cloud Datastore Query that can be constructed by providing
 44  
  * all the specific query elements.
 45  
  *
 46  
  * <h3>A usage example:</h3>
 47  
  *
 48  
  * <p>A simple query that returns all entities for a specific kind
 49  
  * <pre>{@code
 50  
  *   Query<Entity> query = Query.entityQueryBuilder().kind(kind).build();
 51  
  *   QueryResults<Entity> results = datastore.run(query);
 52  
  *   while (results.hasNext()) {
 53  
  *     Entity entity = results.next();
 54  
  *     ...
 55  
  *   }
 56  
  * } </pre>
 57  
  *
 58  
  * <p>A simple key-only query of all entities for a specific kind
 59  
  * <pre>{@code
 60  
  *   Query<Key> keyOnlyQuery =  Query.keyQueryBuilder().kind(KIND1).build();
 61  
  *   QueryResults<Key> results = datastore.run(keyOnlyQuery);
 62  
  *   ...
 63  
  * } </pre>
 64  
  *
 65  
  * <p>A less trivial example of a projection query that returns the first 10 results
 66  
  * of "age" and "name" properties (sorted and grouped by "age") with an age greater than 18
 67  
  * <pre>{@code
 68  
  *   Query<ProjectionEntity> query = Query.projectionEntityQueryBuilder()
 69  
  *       .kind(kind)
 70  
  *       .projection(Projection.property("age"), Projection.first("name"))
 71  
  *       .filter(PropertyFilter.gt("age", 18))
 72  
  *       .groupBy("age")
 73  
  *       .orderBy(OrderBy.asc("age"))
 74  
  *       .limit(10)
 75  
  *       .build();
 76  
  *   QueryResults<ProjectionEntity> results = datastore.run(query);
 77  
  *   ...
 78  
  * } </pre>
 79  
  *
 80  
  * @param <V> the type of the result values this query will produce
 81  
  * @see <a href="https://cloud.google.com/appengine/docs/java/datastore/queries">Datastore
 82  
  *     queries</a>
 83  
  */
 84  0
 public class StructuredQuery<V> extends Query<V> {
 85  
 
 86  
   private static final long serialVersionUID = 546838955624019594L;
 87  
   private static final String KEY_PROPERTY_NAME = "__key__";
 88  
 
 89  
   private final transient String kind;
 90  
   private final ImmutableList<Projection> projection;
 91  
   private final transient Filter filter;
 92  
   private final ImmutableList<String> groupBy;
 93  
   private final transient ImmutableList<OrderBy> orderBy;
 94  
   private final transient Cursor startCursor;
 95  
   private final transient Cursor endCursor;
 96  
   private final transient int offset;
 97  
   private final transient Integer limit;
 98  
 
 99  
   public abstract static class Filter implements Serializable {
 100  
 
 101  
     private static final long serialVersionUID = -6443285436239990860L;
 102  
 
 103  
     Filter() {
 104  
     }
 105  
 
 106  
     protected abstract DatastoreV1.Filter toPb();
 107  
 
 108  
     static Filter fromPb(DatastoreV1.Filter filterPb) {
 109  0
       if (filterPb.hasCompositeFilter()) {
 110  0
         return CompositeFilter.fromPb(filterPb.getCompositeFilter());
 111  
       }
 112  0
       return PropertyFilter.fromPb(filterPb.getPropertyFilter());
 113  
     }
 114  
   }
 115  
 
 116  
   public static final class CompositeFilter extends Filter {
 117  
 
 118  
     private static final long serialVersionUID = 3610352685739360009L;
 119  
     private final Operator operator;
 120  
     private final ImmutableList<Filter> filters;
 121  
 
 122  0
     enum Operator {
 123  0
       AND;
 124  
 
 125  
       DatastoreV1.CompositeFilter.Operator toPb() {
 126  0
         return DatastoreV1.CompositeFilter.Operator.valueOf(name());
 127  
       }
 128  
 
 129  
       static Operator fromPb(DatastoreV1.CompositeFilter.Operator operatorPb) {
 130  0
         return valueOf(operatorPb.name());
 131  
       }
 132  
     }
 133  
 
 134  0
     private CompositeFilter(Operator operator, Filter first, Filter... other) {
 135  0
       this.operator = operator;
 136  0
       this.filters =
 137  0
           ImmutableList.<Filter>builder().add(first).addAll(Arrays.asList(other)).build();
 138  0
     }
 139  
 
 140  0
     private CompositeFilter(Operator operator, ImmutableList<Filter> filters) {
 141  0
       this.operator = operator;
 142  0
       this.filters = filters;
 143  0
       Preconditions.checkArgument(!filters.isEmpty(), "filters list must not be empty");
 144  0
     }
 145  
 
 146  
     @Override
 147  
     public String toString() {
 148  0
       ToStringHelper toStringHelper = MoreObjects.toStringHelper(this);
 149  0
       toStringHelper.add("operator", operator);
 150  0
       toStringHelper.add("filters", filters);
 151  0
       return toStringHelper.toString();
 152  
     }
 153  
 
 154  
     @Override
 155  
     public int hashCode() {
 156  0
       return Objects.hash(operator, filters);
 157  
     }
 158  
 
 159  
     @Override
 160  
     public boolean equals(Object obj) {
 161  0
       if (obj == this) {
 162  0
         return true;
 163  
       }
 164  0
       if (!(obj instanceof CompositeFilter)) {
 165  0
         return false;
 166  
       }
 167  0
       CompositeFilter other = (CompositeFilter) obj;
 168  0
       return operator == other.operator
 169  0
           && filters.equals(other.filters);
 170  
     }
 171  
 
 172  
     static CompositeFilter fromPb(DatastoreV1.CompositeFilter compositeFilterPb) {
 173  0
       Operator operator = Operator.fromPb(compositeFilterPb.getOperator());
 174  0
       ImmutableList.Builder<Filter> filters = ImmutableList.builder();
 175  0
       for (DatastoreV1.Filter filterPb : compositeFilterPb.getFilterList()) {
 176  0
         filters.add(Filter.fromPb(filterPb));
 177  0
       }
 178  0
       return new CompositeFilter(operator, filters.build());
 179  
     }
 180  
 
 181  
     public static CompositeFilter and(Filter first, Filter... other) {
 182  0
       return new CompositeFilter(Operator.AND, first, other);
 183  
     }
 184  
 
 185  
     @Override
 186  
     protected DatastoreV1.Filter toPb() {
 187  0
       DatastoreV1.Filter.Builder filterPb = DatastoreV1.Filter.newBuilder();
 188  0
       DatastoreV1.CompositeFilter.Builder compositeFilterPb = filterPb.getCompositeFilterBuilder();
 189  0
       compositeFilterPb.setOperator(operator.toPb());
 190  0
       for (Filter filter : filters) {
 191  0
         compositeFilterPb.addFilter(filter.toPb());
 192  0
       }
 193  0
       return filterPb.build();
 194  
     }
 195  
   }
 196  
 
 197  
   public static final class PropertyFilter extends Filter {
 198  
 
 199  
     private static final long serialVersionUID = -4514695915258598597L;
 200  
 
 201  
     private final String property;
 202  
     private final Operator operator;
 203  
     private final Value<?> value;
 204  
 
 205  0
     enum Operator {
 206  0
       LESS_THAN,
 207  0
       LESS_THAN_OR_EQUAL,
 208  0
       GREATER_THAN,
 209  0
       GREATER_THAN_OR_EQUAL,
 210  0
       EQUAL,
 211  0
       HAS_ANCESTOR;
 212  
 
 213  
       DatastoreV1.PropertyFilter.Operator toPb() {
 214  0
         return DatastoreV1.PropertyFilter.Operator.valueOf(name());
 215  
       }
 216  
 
 217  
       static Operator fromPb(DatastoreV1.PropertyFilter.Operator operatorPb) {
 218  0
         return valueOf(operatorPb.name());
 219  
       }
 220  
     }
 221  
 
 222  0
     private PropertyFilter(String property, Operator operator, Value<?> value) {
 223  0
       this.property = checkNotNull(property);
 224  0
       this.operator = checkNotNull(operator);
 225  0
       this.value = checkNotNull(value);
 226  0
     }
 227  
 
 228  
     public static PropertyFilter fromPb(DatastoreV1.PropertyFilter propertyFilterPb) {
 229  0
       String property = propertyFilterPb.getProperty().getName();
 230  0
       Operator operator = Operator.fromPb(propertyFilterPb.getOperator());
 231  0
       Value<?> value = Value.fromPb(propertyFilterPb.getValue());
 232  0
       return new PropertyFilter(property, operator, value);
 233  
     }
 234  
 
 235  
     @Override
 236  
     public String toString() {
 237  0
       ToStringHelper toStringHelper = MoreObjects.toStringHelper(this);
 238  0
       toStringHelper.add("property", property);
 239  0
       toStringHelper.add("operator", operator);
 240  0
       toStringHelper.add("value", value);
 241  0
       return toStringHelper.toString();
 242  
     }
 243  
 
 244  
     @Override
 245  
     public int hashCode() {
 246  0
       return Objects.hash(property, operator, value);
 247  
     }
 248  
 
 249  
     @Override
 250  
     public boolean equals(Object obj) {
 251  0
       if (obj == this) {
 252  0
         return true;
 253  
       }
 254  0
       if (!(obj instanceof PropertyFilter)) {
 255  0
         return false;
 256  
       }
 257  0
       PropertyFilter other = (PropertyFilter) obj;
 258  0
       return property.equals(other.property)
 259  
           && operator == other.operator
 260  0
           && Objects.equals(value, other.value);
 261  
     }
 262  
 
 263  
     public static PropertyFilter le(String property, Value<?> value) {
 264  0
       return new PropertyFilter(property, Operator.LESS_THAN, value);
 265  
     }
 266  
 
 267  
     public static PropertyFilter le(String property, String value) {
 268  0
       return new PropertyFilter(property, Operator.LESS_THAN, of(value));
 269  
     }
 270  
 
 271  
     public static PropertyFilter le(String property, long value) {
 272  0
       return new PropertyFilter(property, Operator.LESS_THAN, of(value));
 273  
     }
 274  
 
 275  
     public static PropertyFilter le(String property, double value) {
 276  0
       return new PropertyFilter(property, Operator.LESS_THAN, of(value));
 277  
     }
 278  
 
 279  
     public static PropertyFilter le(String property, boolean value) {
 280  0
       return new PropertyFilter(property, Operator.LESS_THAN, of(value));
 281  
     }
 282  
 
 283  
     public static PropertyFilter le(String property, DateTime value) {
 284  0
       return new PropertyFilter(property, Operator.LESS_THAN, of(value));
 285  
     }
 286  
 
 287  
     public static PropertyFilter le(String property, Key value) {
 288  0
       return new PropertyFilter(property, Operator.LESS_THAN, of(value));
 289  
     }
 290  
 
 291  
     public static PropertyFilter le(String property, Blob value) {
 292  0
       return new PropertyFilter(property, Operator.LESS_THAN, of(value));
 293  
     }
 294  
 
 295  
     public static PropertyFilter lte(String property, Value<?> value) {
 296  0
       return new PropertyFilter(property, Operator.LESS_THAN_OR_EQUAL, value);
 297  
     }
 298  
 
 299  
     public static PropertyFilter lte(String property, String value) {
 300  0
       return new PropertyFilter(property, Operator.LESS_THAN_OR_EQUAL, of(value));
 301  
     }
 302  
 
 303  
     public static PropertyFilter lte(String property, long value) {
 304  0
       return new PropertyFilter(property, Operator.LESS_THAN_OR_EQUAL, of(value));
 305  
     }
 306  
 
 307  
     public static PropertyFilter lte(String property, double value) {
 308  0
       return new PropertyFilter(property, Operator.LESS_THAN_OR_EQUAL, of(value));
 309  
     }
 310  
 
 311  
     public static PropertyFilter lte(String property, boolean value) {
 312  0
       return new PropertyFilter(property, Operator.LESS_THAN_OR_EQUAL, of(value));
 313  
     }
 314  
 
 315  
     public static PropertyFilter lte(String property, DateTime value) {
 316  0
       return new PropertyFilter(property, Operator.LESS_THAN_OR_EQUAL, of(value));
 317  
     }
 318  
 
 319  
     public static PropertyFilter lte(String property, Key value) {
 320  0
       return new PropertyFilter(property, Operator.LESS_THAN_OR_EQUAL, of(value));
 321  
     }
 322  
 
 323  
     public static PropertyFilter lte(String property, Blob value) {
 324  0
       return new PropertyFilter(property, Operator.LESS_THAN_OR_EQUAL, of(value));
 325  
     }
 326  
 
 327  
     public static PropertyFilter gt(String property, Value<?> value) {
 328  0
       return new PropertyFilter(property, Operator.GREATER_THAN, value);
 329  
     }
 330  
 
 331  
     public static PropertyFilter gt(String property, String value) {
 332  0
       return new PropertyFilter(property, Operator.GREATER_THAN, of(value));
 333  
     }
 334  
 
 335  
     public static PropertyFilter gt(String property, long value) {
 336  0
       return new PropertyFilter(property, Operator.GREATER_THAN, of(value));
 337  
     }
 338  
 
 339  
     public static PropertyFilter gt(String property, double value) {
 340  0
       return new PropertyFilter(property, Operator.GREATER_THAN, of(value));
 341  
     }
 342  
 
 343  
     public static PropertyFilter gt(String property, boolean value) {
 344  0
       return new PropertyFilter(property, Operator.GREATER_THAN, of(value));
 345  
     }
 346  
 
 347  
     public static PropertyFilter gt(String property, DateTime value) {
 348  0
       return new PropertyFilter(property, Operator.GREATER_THAN, of(value));
 349  
     }
 350  
 
 351  
     public static PropertyFilter gt(String property, Key value) {
 352  0
       return new PropertyFilter(property, Operator.GREATER_THAN, of(value));
 353  
     }
 354  
 
 355  
     public static PropertyFilter gt(String property, Blob value) {
 356  0
       return new PropertyFilter(property, Operator.GREATER_THAN, of(value));
 357  
     }
 358  
 
 359  
     public static PropertyFilter gte(String property, Value<?> value) {
 360  0
       return new PropertyFilter(property, Operator.GREATER_THAN_OR_EQUAL, value);
 361  
     }
 362  
 
 363  
     public static PropertyFilter gte(String property, String value) {
 364  0
       return new PropertyFilter(property, Operator.GREATER_THAN_OR_EQUAL, of(value));
 365  
     }
 366  
 
 367  
     public static PropertyFilter gte(String property, long value) {
 368  0
       return new PropertyFilter(property, Operator.GREATER_THAN_OR_EQUAL, of(value));
 369  
     }
 370  
 
 371  
     public static PropertyFilter gte(String property, double value) {
 372  0
       return new PropertyFilter(property, Operator.GREATER_THAN_OR_EQUAL, of(value));
 373  
     }
 374  
 
 375  
     public static PropertyFilter gte(String property, boolean value) {
 376  0
       return new PropertyFilter(property, Operator.GREATER_THAN_OR_EQUAL, of(value));
 377  
     }
 378  
 
 379  
     public static PropertyFilter gte(String property, DateTime value) {
 380  0
       return new PropertyFilter(property, Operator.GREATER_THAN_OR_EQUAL, of(value));
 381  
     }
 382  
 
 383  
     public static PropertyFilter gte(String property, Key value) {
 384  0
       return new PropertyFilter(property, Operator.GREATER_THAN_OR_EQUAL, of(value));
 385  
     }
 386  
 
 387  
     public static PropertyFilter gte(String property, Blob value) {
 388  0
       return new PropertyFilter(property, Operator.GREATER_THAN_OR_EQUAL, of(value));
 389  
     }
 390  
 
 391  
     public static PropertyFilter eq(String property, Value<?> value) {
 392  0
       return new PropertyFilter(property, Operator.EQUAL, value);
 393  
     }
 394  
 
 395  
     public static PropertyFilter eq(String property, String value) {
 396  0
       return new PropertyFilter(property, Operator.EQUAL, of(value));
 397  
     }
 398  
 
 399  
     public static PropertyFilter eq(String property, long value) {
 400  0
       return new PropertyFilter(property, Operator.EQUAL, of(value));
 401  
     }
 402  
 
 403  
     public static PropertyFilter eq(String property, double value) {
 404  0
       return new PropertyFilter(property, Operator.EQUAL, of(value));
 405  
     }
 406  
 
 407  
     public static PropertyFilter eq(String property, boolean value) {
 408  0
       return new PropertyFilter(property, Operator.EQUAL, of(value));
 409  
     }
 410  
 
 411  
     public static PropertyFilter eq(String property, DateTime value) {
 412  0
       return new PropertyFilter(property, Operator.EQUAL, of(value));
 413  
     }
 414  
 
 415  
     public static PropertyFilter eq(String property, Key value) {
 416  0
       return new PropertyFilter(property, Operator.EQUAL, of(value));
 417  
     }
 418  
 
 419  
     public static PropertyFilter eq(String property, Blob value) {
 420  0
       return new PropertyFilter(property, Operator.EQUAL, of(value));
 421  
     }
 422  
 
 423  
     public static PropertyFilter hasAncestor(Key key) {
 424  0
       return new PropertyFilter(KEY_PROPERTY_NAME, Operator.HAS_ANCESTOR, of(key));
 425  
     }
 426  
 
 427  
     public static PropertyFilter isNull(String property) {
 428  0
       return new PropertyFilter(property, Operator.EQUAL, NullValue.of());
 429  
     }
 430  
 
 431  
     @Override
 432  
     protected DatastoreV1.Filter toPb() {
 433  0
       DatastoreV1.Filter.Builder filterPb = DatastoreV1.Filter.newBuilder();
 434  0
       DatastoreV1.PropertyFilter.Builder propertyFilterPb = filterPb.getPropertyFilterBuilder();
 435  0
       propertyFilterPb.getPropertyBuilder().setName(property);
 436  0
       propertyFilterPb.setOperator(operator.toPb());
 437  0
       if (value != null) {
 438  0
         propertyFilterPb.setValue(value.toPb());
 439  
       }
 440  0
       return filterPb.build();
 441  
     }
 442  
   }
 443  
 
 444  
   public static final class OrderBy implements Serializable {
 445  
 
 446  
     private static final long serialVersionUID = 4091186784814400031L;
 447  
 
 448  
     private final String property;
 449  
     private final Direction direction;
 450  
 
 451  0
     public enum Direction {
 452  
 
 453  0
       ASCENDING, DESCENDING;
 454  
 
 455  
       DatastoreV1.PropertyOrder.Direction toPb() {
 456  0
         return DatastoreV1.PropertyOrder.Direction.valueOf(name());
 457  
       }
 458  
 
 459  
       static Direction fromPb(DatastoreV1.PropertyOrder.Direction directionPb) {
 460  0
         return valueOf(directionPb.name());
 461  
       }
 462  
     }
 463  
 
 464  0
     public OrderBy(String property, Direction direction) {
 465  0
       this.property = checkNotNull(property);
 466  0
       this.direction = checkNotNull(direction);
 467  0
     }
 468  
 
 469  
     @Override
 470  
     public int hashCode() {
 471  0
       return Objects.hash(property, direction);
 472  
     }
 473  
 
 474  
     @Override
 475  
     public boolean equals(Object obj) {
 476  0
       if (obj == this) {
 477  0
         return true;
 478  
       }
 479  0
       if (!(obj instanceof OrderBy)) {
 480  0
         return false;
 481  
       }
 482  0
       OrderBy other = (OrderBy) obj;
 483  0
       return property.equals(other.property)
 484  
           && direction == other.direction;
 485  
     }
 486  
 
 487  
     public String property() {
 488  0
       return property;
 489  
     }
 490  
 
 491  
     public Direction direction() {
 492  0
       return direction;
 493  
     }
 494  
 
 495  
     DatastoreV1.PropertyOrder toPb() {
 496  0
       return DatastoreV1.PropertyOrder.newBuilder()
 497  0
           .setDirection(direction.toPb())
 498  0
           .setProperty(DatastoreV1.PropertyReference.newBuilder().setName(property).build())
 499  0
           .build();
 500  
     }
 501  
 
 502  
     public static OrderBy asc(String property) {
 503  0
       return new OrderBy(property, OrderBy.Direction.ASCENDING);
 504  
     }
 505  
 
 506  
     public static OrderBy desc(String property) {
 507  0
       return new OrderBy(property, OrderBy.Direction.DESCENDING);
 508  
     }
 509  
 
 510  
     static OrderBy fromPb(DatastoreV1.PropertyOrder propertyOrderPb) {
 511  0
       String property = propertyOrderPb.getProperty().getName();
 512  0
       Direction direction = Direction.fromPb(propertyOrderPb.getDirection());
 513  0
       return new OrderBy(property, direction);
 514  
     }
 515  
   }
 516  
 
 517  0
   public static final class Projection implements Serializable {
 518  
 
 519  
     private static final long serialVersionUID = 3083707957256279470L;
 520  
 
 521  
     private final Aggregate aggregate;
 522  
     private final String property;
 523  
 
 524  0
     public enum Aggregate {
 525  
 
 526  0
       FIRST;
 527  
 
 528  
       DatastoreV1.PropertyExpression.AggregationFunction toPb() {
 529  0
         return DatastoreV1.PropertyExpression.AggregationFunction.valueOf(name());
 530  
       }
 531  
 
 532  
       static Aggregate fromPb(DatastoreV1.PropertyExpression.AggregationFunction aggregatePb) {
 533  0
         return valueOf(aggregatePb.name());
 534  
       }
 535  
     }
 536  
 
 537  
     private Projection(Aggregate aggregate, String property) {
 538  
       this.aggregate = aggregate;
 539  
       this.property = property;
 540  
     }
 541  
 
 542  
     @Override
 543  
     public int hashCode() {
 544  0
       return Objects.hash(property, aggregate);
 545  
     }
 546  
 
 547  
     @Override
 548  
     public boolean equals(Object obj) {
 549  0
       if (obj == this) {
 550  0
         return true;
 551  
       }
 552  0
       if (!(obj instanceof Projection)) {
 553  0
         return false;
 554  
       }
 555  0
       Projection other = (Projection) obj;
 556  0
       return Objects.equals(property, other.property)
 557  0
           && Objects.equals(aggregate, other.aggregate);
 558  
     }
 559  
 
 560  
     @Override
 561  
     public String toString() {
 562  0
       ToStringHelper toStringHelper = MoreObjects.toStringHelper(this);
 563  0
       toStringHelper.add("property", property);
 564  0
       if (aggregate != null) {
 565  0
         toStringHelper.add("aggregate", aggregate);
 566  
       }
 567  0
       return toStringHelper.toString();
 568  
     }
 569  
 
 570  
     DatastoreV1.PropertyExpression toPb() {
 571  
       DatastoreV1.PropertyExpression.Builder expressionPb =
 572  0
           DatastoreV1.PropertyExpression.newBuilder();
 573  0
       if (aggregate != null) {
 574  0
         expressionPb.setAggregationFunction(aggregate.toPb());
 575  
       }
 576  0
       expressionPb.setProperty(
 577  0
           DatastoreV1.PropertyReference.newBuilder().setName(property).build());
 578  0
       return expressionPb.build();
 579  
     }
 580  
 
 581  
     public static Projection fromPb(DatastoreV1.PropertyExpression propertyExpressionPb) {
 582  0
       String property = propertyExpressionPb.getProperty().getName();
 583  0
       Aggregate aggregate = null;
 584  0
       if (propertyExpressionPb.hasAggregationFunction()) {
 585  0
         aggregate = Aggregate.fromPb(propertyExpressionPb.getAggregationFunction());
 586  
       }
 587  0
       return new Projection(aggregate, property);
 588  
     }
 589  
 
 590  
     public static Projection property(String property) {
 591  0
       return new Projection(null, property);
 592  
     }
 593  
 
 594  
     public static Projection aggregate(Aggregate aggregate, String property) {
 595  0
       return new Projection(aggregate, property);
 596  
     }
 597  
 
 598  
     public static Projection first(String property) {
 599  0
       return new Projection(Aggregate.FIRST, property);
 600  
     }
 601  
   }
 602  
 
 603  0
   static class BaseBuilder<V, B extends BaseBuilder<V, B>> {
 604  
 
 605  
     private final ResultType<V> resultType;
 606  
     private String namespace;
 607  
     private String kind;
 608  0
     private final List<Projection> projection = new LinkedList<>();
 609  
     private Filter filter;
 610  0
     private final List<String> groupBy = new LinkedList<>();
 611  0
     private final List<OrderBy> orderBy = new LinkedList<>();
 612  
     private Cursor startCursor;
 613  
     private Cursor endCursor;
 614  
     private int offset;
 615  
     private Integer limit;
 616  
 
 617  0
     BaseBuilder(ResultType<V> resultType) {
 618  0
       this.resultType = resultType;
 619  0
     }
 620  
 
 621  
     @SuppressWarnings("unchecked")
 622  
     B self() {
 623  0
       return (B) this;
 624  
     }
 625  
 
 626  
     public B namespace(String namespace) {
 627  0
       this.namespace = namespace;
 628  0
       return self();
 629  
     }
 630  
 
 631  
     public B kind(String kind) {
 632  0
       this.kind = kind;
 633  0
       return self();
 634  
     }
 635  
 
 636  
     public B startCursor(Cursor startCursor) {
 637  0
       this.startCursor = startCursor;
 638  0
       return self();
 639  
     }
 640  
 
 641  
     public B endCursor(Cursor endCursor) {
 642  0
       this.endCursor = endCursor;
 643  0
       return self();
 644  
     }
 645  
 
 646  
     public B offset(int offset) {
 647  0
       Preconditions.checkArgument(offset >= 0, "offset must not be negative");
 648  0
       this.offset = offset;
 649  0
       return self();
 650  
     }
 651  
 
 652  
     public B limit(Integer limit) {
 653  0
       Preconditions.checkArgument(limit == null || limit > 0, "limit must be positive");
 654  0
       this.limit = limit;
 655  0
       return self();
 656  
     }
 657  
 
 658  
     public B filter(Filter filter) {
 659  0
       this.filter = filter;
 660  0
       return self();
 661  
     }
 662  
 
 663  
     public B clearOrderBy() {
 664  0
       orderBy.clear();
 665  0
       return self();
 666  
     }
 667  
 
 668  
     public B orderBy(OrderBy orderBy, OrderBy... others) {
 669  0
       clearOrderBy();
 670  0
       addOrderBy(orderBy, others);
 671  0
       return self();
 672  
     }
 673  
 
 674  
     public B addOrderBy(OrderBy orderBy, OrderBy... others) {
 675  0
       this.orderBy.add(orderBy);
 676  0
       Collections.addAll(this.orderBy, others);
 677  0
       return self();
 678  
     }
 679  
 
 680  
     B clearProjection() {
 681  0
       projection.clear();
 682  0
       return self();
 683  
     }
 684  
 
 685  
     B projection(Projection projection, Projection... others) {
 686  0
       clearProjection();
 687  0
       addProjection(projection, others);
 688  0
       return self();
 689  
     }
 690  
 
 691  
     B addProjection(Projection projection, Projection... others) {
 692  0
       this.projection.add(projection);
 693  0
       Collections.addAll(this.projection, others);
 694  0
       return self();
 695  
     }
 696  
 
 697  
     B clearGroupBy() {
 698  0
       groupBy.clear();
 699  0
       return self();
 700  
     }
 701  
 
 702  
     B groupBy(String property, String... others) {
 703  0
       clearGroupBy();
 704  0
       addGroupBy(property, others);
 705  0
       return self();
 706  
     }
 707  
 
 708  
     B addGroupBy(String property, String... others) {
 709  0
       this.groupBy.add(property);
 710  0
       Collections.addAll(this.groupBy, others);
 711  0
       return self();
 712  
     }
 713  
 
 714  
     B mergeFrom(DatastoreV1.Query queryPb) {
 715  0
       if (queryPb.getKindCount() > 0) {
 716  0
         kind(queryPb.getKind(0).getName());
 717  
       }
 718  0
       if (queryPb.hasStartCursor()) {
 719  0
         startCursor(new Cursor(queryPb.getStartCursor()));
 720  
       }
 721  0
       if (queryPb.hasEndCursor()) {
 722  0
         endCursor(new Cursor(queryPb.getEndCursor()));
 723  
       }
 724  0
       if (queryPb.hasOffset()) {
 725  0
         offset(queryPb.getOffset());
 726  
       }
 727  0
       if (queryPb.hasLimit()) {
 728  0
         limit(queryPb.getLimit());
 729  
       }
 730  0
       if (queryPb.hasFilter()) {
 731  0
         filter(Filter.fromPb(queryPb.getFilter()));
 732  
       }
 733  0
       for (DatastoreV1.PropertyOrder orderByPb : queryPb.getOrderList()) {
 734  0
         addOrderBy(OrderBy.fromPb(orderByPb));
 735  0
       }
 736  0
       for (DatastoreV1.PropertyExpression projectionPb : queryPb.getProjectionList()) {
 737  0
         addProjection(Projection.fromPb(projectionPb));
 738  0
       }
 739  0
       for (DatastoreV1.PropertyReference groupByPb : queryPb.getGroupByList()) {
 740  0
         addGroupBy(groupByPb.getName());
 741  0
       }
 742  0
       return self();
 743  
     }
 744  
 
 745  
     public StructuredQuery<V> build() {
 746  0
       return new StructuredQuery<>(this);
 747  
     }
 748  
   }
 749  
 
 750  
   static final class Builder<V> extends BaseBuilder<V, Builder<V>> {
 751  
 
 752  
     Builder(ResultType<V> resultType) {
 753  
       super(resultType);
 754  
     }
 755  
   }
 756  
 
 757  
   public static final class EntityQueryBuilder extends BaseBuilder<Entity, EntityQueryBuilder> {
 758  
 
 759  
     EntityQueryBuilder() {
 760  0
       super(ResultType.ENTITY);
 761  0
     }
 762  
 
 763  
     @Override
 764  
     public StructuredQuery<Entity> build() {
 765  0
       return new StructuredQuery<>(this);
 766  
     }
 767  
   }
 768  
 
 769  0
   public static final class KeyQueryBuilder extends BaseBuilder<Key, KeyQueryBuilder> {
 770  
 
 771  
     KeyQueryBuilder() {
 772  0
       super(ResultType.KEY);
 773  0
       projection(Projection.property(KEY_PROPERTY_NAME));
 774  0
     }
 775  
 
 776  
     @Override
 777  
     protected KeyQueryBuilder mergeFrom(DatastoreV1.Query queryPb) {
 778  0
       super.mergeFrom(queryPb);
 779  0
       projection(Projection.property(KEY_PROPERTY_NAME));
 780  0
       clearGroupBy();
 781  0
       return this;
 782  
     }
 783  
 
 784  
     @Override
 785  
     public StructuredQuery<Key> build() {
 786  0
       return new StructuredQuery<>(this);
 787  
     }
 788  
   }
 789  
 
 790  0
   public static final class ProjectionEntityQueryBuilder
 791  
       extends BaseBuilder<ProjectionEntity, ProjectionEntityQueryBuilder> {
 792  
 
 793  
     ProjectionEntityQueryBuilder() {
 794  0
       super(ResultType.PROJECTION_ENTITY);
 795  0
     }
 796  
 
 797  
     @Override
 798  
     public StructuredQuery<ProjectionEntity> build() {
 799  0
       return new StructuredQuery<>(this);
 800  
     }
 801  
 
 802  
     @Override
 803  
     public ProjectionEntityQueryBuilder clearProjection() {
 804  0
       return super.clearProjection();
 805  
     }
 806  
 
 807  
     @Override
 808  
     public ProjectionEntityQueryBuilder projection(Projection projection, Projection... others) {
 809  0
       return super.projection(projection, others);
 810  
     }
 811  
 
 812  
     @Override
 813  
     public ProjectionEntityQueryBuilder addProjection(Projection projection, Projection... others) {
 814  0
       return super.addProjection(projection, others);
 815  
     }
 816  
 
 817  
     @Override
 818  
     public ProjectionEntityQueryBuilder clearGroupBy() {
 819  0
       return super.clearGroupBy();
 820  
     }
 821  
 
 822  
     @Override
 823  
     public ProjectionEntityQueryBuilder groupBy(String property, String... others) {
 824  0
       return super.groupBy(property, others);
 825  
     }
 826  
 
 827  
     @Override
 828  
     public ProjectionEntityQueryBuilder addGroupBy(String property, String... others) {
 829  0
       return super.addGroupBy(property, others);
 830  
     }
 831  
   }
 832  
 
 833  
   StructuredQuery(BaseBuilder<V, ?> builder) {
 834  0
     super(builder.resultType, builder.namespace);
 835  0
     kind = builder.kind;
 836  0
     projection = ImmutableList.copyOf(builder.projection);
 837  0
     filter = builder.filter;
 838  0
     groupBy = ImmutableList.copyOf(builder.groupBy);
 839  0
     orderBy = ImmutableList.copyOf(builder.orderBy);
 840  0
     startCursor = builder.startCursor;
 841  0
     endCursor = builder.endCursor;
 842  0
     offset = builder.offset;
 843  0
     limit = builder.limit;
 844  0
   }
 845  
 
 846  
   @Override
 847  
   public int hashCode() {
 848  0
     return Objects.hash(namespace(), kind, startCursor, endCursor, offset, limit, filter, orderBy,
 849  0
         projection(), groupBy());
 850  
   }
 851  
 
 852  
   @Override
 853  
   public boolean equals(Object obj) {
 854  0
     if (obj == this) {
 855  0
       return true;
 856  
     }
 857  0
     if (!(obj instanceof StructuredQuery)) {
 858  0
       return false;
 859  
     }
 860  0
     StructuredQuery<?> other = (StructuredQuery<?>) obj;
 861  0
     return Objects.equals(namespace(), other.namespace())
 862  0
         && Objects.equals(kind, other.kind)
 863  0
         && Objects.equals(startCursor, other.startCursor)
 864  0
         && Objects.equals(endCursor, other.endCursor)
 865  0
         && Objects.equals(offset, other.offset)
 866  0
         && Objects.equals(limit, other.limit)
 867  0
         && Objects.equals(filter, other.filter)
 868  0
         && Objects.equals(orderBy, other.orderBy)
 869  0
         && Objects.equals(projection, other.projection)
 870  0
         && Objects.equals(groupBy, other.groupBy);
 871  
 
 872  
   }
 873  
 
 874  
   public String kind() {
 875  0
     return kind;
 876  
   }
 877  
 
 878  
   boolean keyOnly() {
 879  0
     return projection.size() == 1 && KEY_PROPERTY_NAME.equals(projection.get(0).property);
 880  
   }
 881  
 
 882  
   public List<Projection> projection() {
 883  0
     return projection;
 884  
   }
 885  
 
 886  
   public Filter filter() {
 887  0
     return filter;
 888  
   }
 889  
 
 890  
   public List<String> groupBy() {
 891  0
     return groupBy;
 892  
   }
 893  
 
 894  
   public ImmutableList<OrderBy> orderBy() {
 895  0
     return orderBy;
 896  
   }
 897  
 
 898  
   public Cursor startCursor() {
 899  0
     return startCursor;
 900  
   }
 901  
 
 902  
   public Cursor endCursor() {
 903  0
     return endCursor;
 904  
   }
 905  
 
 906  
   public int offset() {
 907  0
     return offset;
 908  
   }
 909  
 
 910  
   public Integer limit() {
 911  0
     return limit;
 912  
   }
 913  
 
 914  
   @Override
 915  
   protected void populatePb(DatastoreV1.RunQueryRequest.Builder requestPb) {
 916  0
     requestPb.setQuery(toPb());
 917  0
   }
 918  
 
 919  
   @Override
 920  
   protected StructuredQuery<V> nextQuery(DatastoreV1.QueryResultBatch responsePb) {
 921  0
     Builder<V> builder = new Builder<>(type());
 922  0
     builder.mergeFrom(toPb());
 923  0
     builder.startCursor(new Cursor(responsePb.getEndCursor()));
 924  0
     if (offset > 0 && responsePb.getSkippedResults() < offset) {
 925  0
       builder.offset(offset - responsePb.getSkippedResults());
 926  
     } else {
 927  0
       builder.offset(0);
 928  0
       if (limit != null) {
 929  0
         builder.limit(limit - responsePb.getEntityResultCount());
 930  
       }
 931  
     }
 932  0
     return builder.build();
 933  
   }
 934  
 
 935  
   @Override
 936  
   protected DatastoreV1.Query toPb() {
 937  0
     DatastoreV1.Query.Builder queryPb = DatastoreV1.Query.newBuilder();
 938  0
     if (kind != null) {
 939  0
       queryPb.addKindBuilder().setName(kind);
 940  
     }
 941  0
     if (startCursor != null) {
 942  0
       queryPb.setStartCursor(startCursor.byteString());
 943  
     }
 944  0
     if (endCursor != null) {
 945  0
       queryPb.setEndCursor(endCursor.byteString());
 946  
     }
 947  0
     if (offset > 0) {
 948  0
       queryPb.setOffset(offset);
 949  
     }
 950  0
     if (limit != null) {
 951  0
       queryPb.setLimit(limit);
 952  
     }
 953  0
     if (filter != null) {
 954  0
       queryPb.setFilter(filter.toPb());
 955  
     }
 956  0
     for (OrderBy value : orderBy) {
 957  0
       queryPb.addOrder(value.toPb());
 958  0
     }
 959  0
     for (String value : groupBy) {
 960  0
       queryPb.addGroupBy(DatastoreV1.PropertyReference.newBuilder().setName(value).build());
 961  0
     }
 962  0
     for (Projection value : projection) {
 963  0
       queryPb.addProjection(value.toPb());
 964  0
     }
 965  0
     return queryPb.build();
 966  
   }
 967  
 
 968  
   @Override
 969  
   protected Object fromPb(ResultType<V> resultType, String namespace, byte[] bytesPb)
 970  
       throws InvalidProtocolBufferException {
 971  0
     return fromPb(resultType, namespace, DatastoreV1.Query.parseFrom(bytesPb));
 972  
   }
 973  
 
 974  
   private static StructuredQuery<?> fromPb(ResultType<?> resultType, String namespace,
 975  
       DatastoreV1.Query queryPb) {
 976  
     BaseBuilder<?, ?> builder;
 977  0
     if (resultType.equals(ResultType.ENTITY)) {
 978  0
       builder = new EntityQueryBuilder();
 979  0
     } else if (resultType.equals(ResultType.KEY)) {
 980  0
       builder = new KeyQueryBuilder();
 981  
     } else {
 982  0
       builder = new ProjectionEntityQueryBuilder();
 983  
     }
 984  0
     return builder.namespace(namespace).mergeFrom(queryPb).build();
 985  
   }
 986  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.Transaction.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.Transaction.html new file mode 100644 index 000000000000..ea6f08e67cdb --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.Transaction.html @@ -0,0 +1,281 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.Transaction
+
 
+ + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
Transaction
N/A
N/A
1
Transaction$Response
N/A
N/A
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import java.util.Iterator;
 20  
 import java.util.List;
 21  
 
 22  
 /**
 23  
  * A Google cloud datastore transaction.
 24  
  * Similar to {@link Batch} any write operation that is applied on a transaction will only be sent
 25  
  * to the Datastore upon {@link #commit}. A call to {@link #rollback} will invalidate
 26  
  * the transaction and discard the changes. Any read operation that is done by a transaction
 27  
  * will be part of it and therefore a {@code commit} is guaranteed to fail if an entity
 28  
  * was modified outside of the transaction after it was read. Write operation on this
 29  
  * transaction will not be reflected by read operation (as the changes are only sent to
 30  
  * the Datastore upon {@code commit}.
 31  
  * A usage example:
 32  
  * <pre> {@code
 33  
  *   Transaction transaction = datastore.newTransaction();
 34  
  *   try {
 35  
  *     Entity entity = transaction.get(key);
 36  
  *     if (!entity.contains("last_name") || entity.isNull("last_name")) {
 37  
  *       String[] name = entity.getString("name").split(" ");
 38  
  *       entity = Entity.builder(entity).remove("name").set("first_name", name[0])
 39  
  *           .set("last_name", name[1]).build();
 40  
  *       transaction.update(entity);
 41  
  *       transaction.commit();
 42  
  *     }
 43  
  *   } finally {
 44  
  *     if (transaction.active()) {
 45  
  *       transaction.rollback();
 46  
  *     }
 47  
  *   }
 48  
  * } </pre>
 49  
  *
 50  
  * @see <a href="https://cloud.google.com/datastore/docs/concepts/transactions">Google Cloud Datastore transactions</a>
 51  
  *
 52  
  */
 53  
 public interface Transaction extends DatastoreBatchWriter, DatastoreReaderWriter {
 54  
 
 55  
   interface Response {
 56  
     List<Key> generatedKeys();
 57  
   }
 58  
 
 59  
   /**
 60  
    * {@inheritDoc}
 61  
    * The requested entity will be part of this Datastore transaction (so a commit is guaranteed
 62  
    * to fail if entity was changed by others after it was seen by this transaction) but any
 63  
    * write changes in this transaction will not be reflected by the returned entity.
 64  
    *
 65  
    * @throws DatastoreException upon failure or if no longer active
 66  
    */
 67  
   @Override
 68  
   Entity get(Key key);
 69  
 
 70  
   /**
 71  
    * {@inheritDoc}
 72  
    * The requested entities will be part of this Datastore transaction (so a commit is guaranteed
 73  
    * to fail if any of the entities was changed by others after they were seen by this transaction)
 74  
    * but any write changes in this transaction will not be reflected by the returned entities.
 75  
    *
 76  
    * @throws DatastoreException upon failure or if no longer active
 77  
    */
 78  
   @Override
 79  
   Iterator<Entity> get(Key... key);
 80  
 
 81  
   /**
 82  
    * {@inheritDoc}
 83  
    * The requested entities will be part of this Datastore transaction (so a commit is guaranteed
 84  
    * to fail if any of the entities was changed by others after they were seen by this transaction)
 85  
    * but any write changes in this transaction will not be reflected by the returned entities.
 86  
    *
 87  
    * @throws DatastoreException upon failure or if no longer active
 88  
    */
 89  
   @Override
 90  
   List<Entity> fetch(Key... keys);
 91  
 
 92  
   /**
 93  
    * {@inheritDoc}
 94  
    * The entities returned by the result of this query will be part of this Datastore transaction
 95  
    * (so a commit is guaranteed to fail if any of the entities was changed by others after the
 96  
    * query was performed) but any write changes in this transaction will not be reflected by
 97  
    * the result.
 98  
    *
 99  
    * @throws DatastoreException upon failure or if no longer active
 100  
    */
 101  
   @Override
 102  
   <T> QueryResults<T> run(Query<T> query);
 103  
 
 104  
   /**
 105  
    * Commit the transaction.
 106  
    *
 107  
    * @throws DatastoreException if could not commit the transaction or if no longer active
 108  
    */
 109  
   Response commit();
 110  
 
 111  
   /**
 112  
    * Rollback the transaction.
 113  
    *
 114  
    * @throws DatastoreException if transaction was already committed
 115  
    */
 116  
   void rollback();
 117  
 
 118  
   /**
 119  
    * Returns {@code true} if the transaction is still active (was not committed or rolledback).
 120  
    */
 121  
   @Override
 122  
   boolean active();
 123  
 
 124  
   /**
 125  
    * Returns the transaction associated {@link Datastore}.
 126  
    */
 127  
   Datastore datastore();
 128  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.TransactionImpl.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.TransactionImpl.html new file mode 100644 index 000000000000..5f7821247037 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.TransactionImpl.html @@ -0,0 +1,241 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.TransactionImpl
+
 
+ + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
TransactionImpl
0%
0/42
0%
0/10
1.455
TransactionImpl$ResponseImpl
0%
0/1
N/A
1.455
TransactionImpl$ResponseImpl$1
0%
0/2
N/A
1.455
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import com.google.api.services.datastore.DatastoreV1;
 20  
 import com.google.common.base.Function;
 21  
 import com.google.common.collect.Lists;
 22  
 import com.google.gcloud.datastore.TransactionOption.ForceWrites;
 23  
 import com.google.gcloud.datastore.TransactionOption.IsolationLevel;
 24  
 import com.google.protobuf.ByteString;
 25  
 
 26  
 import java.util.Iterator;
 27  
 import java.util.List;
 28  
 import java.util.Map;
 29  
 
 30  
 final class TransactionImpl extends BaseDatastoreBatchWriter implements Transaction {
 31  
 
 32  
   private final DatastoreImpl datastore;
 33  
   private final ByteString transaction;
 34  
   private final boolean force;
 35  
   private boolean rolledback;
 36  
 
 37  
   static class ResponseImpl implements Transaction.Response {
 38  
 
 39  
     private final DatastoreV1.CommitResponse response;
 40  
 
 41  
     ResponseImpl(DatastoreV1.CommitResponse response) {
 42  
       this.response = response;
 43  
     }
 44  
 
 45  
     @Override
 46  
     public List<Key> generatedKeys() {
 47  0
       return Lists.transform(response.getMutationResult().getInsertAutoIdKeyList(),
 48  0
           new Function<DatastoreV1.Key, Key>() {
 49  
             @Override public Key apply(DatastoreV1.Key keyPb) {
 50  0
               return Key.fromPb(keyPb);
 51  
             }
 52  
           });
 53  
     }
 54  
   }
 55  
 
 56  
   TransactionImpl(DatastoreImpl datastore, TransactionOption... options) {
 57  0
     super("transaction");
 58  0
     this.datastore = datastore;
 59  
     DatastoreV1.BeginTransactionRequest.Builder requestPb =
 60  0
         DatastoreV1.BeginTransactionRequest.newBuilder();
 61  0
     Map<Class<? extends TransactionOption>, TransactionOption> optionsMap =
 62  0
         TransactionOption.asImmutableMap(options);
 63  0
     IsolationLevel isolationLevel = (IsolationLevel) optionsMap.get(IsolationLevel.class);
 64  0
     if (isolationLevel != null) {
 65  0
       requestPb.setIsolationLevel(isolationLevel.level().toPb());
 66  
     }
 67  0
     ForceWrites forceWrites = (ForceWrites) optionsMap.get(TransactionOption.ForceWrites.class);
 68  0
     force = forceWrites != null && forceWrites.force();
 69  0
     transaction = datastore.requestTransactionId(requestPb);
 70  0
   }
 71  
 
 72  
   @Override
 73  
   public Entity get(Key key) {
 74  0
     return DatastoreHelper.get(this, key);
 75  
   }
 76  
 
 77  
   @Override
 78  
   public Iterator<Entity> get(Key... keys) {
 79  0
     validateActive();
 80  0
     DatastoreV1.ReadOptions.Builder readOptionsPb = DatastoreV1.ReadOptions.newBuilder();
 81  0
     readOptionsPb.setTransaction(transaction);
 82  0
     return datastore.get(readOptionsPb.build(), keys);
 83  
   }
 84  
 
 85  
   @Override
 86  
   public List<Entity> fetch(Key... keys) {
 87  0
     validateActive();
 88  0
     return DatastoreHelper.fetch(this, keys);
 89  
   }
 90  
 
 91  
   @Override
 92  
   public <T> QueryResults<T> run(Query<T> query) {
 93  0
     validateActive();
 94  0
     DatastoreV1.ReadOptions.Builder readOptionsPb = DatastoreV1.ReadOptions.newBuilder();
 95  0
     readOptionsPb.setTransaction(transaction);
 96  0
     return datastore.run(readOptionsPb.build(), query);
 97  
   }
 98  
 
 99  
   @Override
 100  
   public Transaction.Response commit() {
 101  0
     validateActive();
 102  0
     DatastoreV1.Mutation.Builder mutationPb = toMutationPb();
 103  0
     if (force) {
 104  0
       mutationPb.setForce(force);
 105  
     }
 106  0
     DatastoreV1.CommitRequest.Builder requestPb = DatastoreV1.CommitRequest.newBuilder();
 107  0
     requestPb.setMode(DatastoreV1.CommitRequest.Mode.TRANSACTIONAL);
 108  0
     requestPb.setTransaction(transaction);
 109  0
     requestPb.setMutation(mutationPb);
 110  0
     DatastoreV1.CommitResponse responsePb = datastore.commit(requestPb.build());
 111  0
     deactivate();
 112  0
     return new ResponseImpl(responsePb);
 113  
   }
 114  
 
 115  
   @Override
 116  
   public void rollback() {
 117  0
     if (rolledback) {
 118  0
       return;
 119  
     }
 120  0
     validateActive();
 121  0
     datastore.rollbackTransaction(transaction);
 122  0
     deactivate();
 123  0
     rolledback = true;
 124  0
   }
 125  
 
 126  
   @Override
 127  
   public Datastore datastore() {
 128  0
     return datastore;
 129  
   }
 130  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.TransactionOption.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.TransactionOption.html new file mode 100644 index 000000000000..4d8c732f65cd --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.TransactionOption.html @@ -0,0 +1,240 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.TransactionOption
+
 
+ + + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
TransactionOption
0%
0/7
0%
0/2
1.071
TransactionOption$ForceWrites
0%
0/2
N/A
1.071
TransactionOption$IsolationLevel
0%
0/2
N/A
1.071
TransactionOption$IsolationLevel$Level
0%
0/4
N/A
1.071
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import com.google.api.services.datastore.DatastoreV1;
 20  
 import com.google.common.collect.ImmutableMap;
 21  
 
 22  
 import java.io.Serializable;
 23  
 import java.util.Map;
 24  
 
 25  
 
 26  
 public abstract class TransactionOption implements Serializable {
 27  
 
 28  
   private static final long serialVersionUID = -1862234444015690375L;
 29  
 
 30  
   public static final class ForceWrites extends TransactionOption {
 31  
 
 32  
     private static final long serialVersionUID = -6873967516988380886L;
 33  
 
 34  
     private final boolean force;
 35  
 
 36  
     public ForceWrites(boolean force) {
 37  
       this.force = force;
 38  
     }
 39  
 
 40  
     public boolean force() {
 41  0
       return force;
 42  
     }
 43  
 
 44  
     @Override
 45  
     BatchOption toBatchWriteOption() {
 46  0
       return new BatchOption.ForceWrites(force);
 47  
     }
 48  
   }
 49  
 
 50  
   public static final class IsolationLevel extends TransactionOption {
 51  
 
 52  
     private static final long serialVersionUID = -5592165378565409515L;
 53  
 
 54  
     private final Level level;
 55  
 
 56  0
     public enum Level {
 57  
 
 58  0
       SERIALIZABLE(DatastoreV1.BeginTransactionRequest.IsolationLevel.SERIALIZABLE),
 59  0
       SNAPSHOT(DatastoreV1.BeginTransactionRequest.IsolationLevel.SNAPSHOT);
 60  
 
 61  
       private final DatastoreV1.BeginTransactionRequest.IsolationLevel levelPb;
 62  
 
 63  
       Level(DatastoreV1.BeginTransactionRequest.IsolationLevel levelPb) {
 64  
         this.levelPb = levelPb;
 65  
       }
 66  
 
 67  
       DatastoreV1.BeginTransactionRequest.IsolationLevel toPb() {
 68  0
         return levelPb;
 69  
       }
 70  
     }
 71  
 
 72  
     public IsolationLevel(Level level) {
 73  
       this.level = level;
 74  
     }
 75  
 
 76  
 
 77  
     public Level level() {
 78  0
       return level;
 79  
     }
 80  
 
 81  
     @Override
 82  
     BatchOption toBatchWriteOption() {
 83  0
       return null;
 84  
     }
 85  
   }
 86  
 
 87  
   TransactionOption() {
 88  
     // package protected
 89  
   }
 90  
 
 91  
   public static ForceWrites forceWrites() {
 92  0
     return new ForceWrites(true);
 93  
   }
 94  
 
 95  
   public static IsolationLevel serializable() {
 96  0
     return new IsolationLevel(IsolationLevel.Level.SERIALIZABLE);
 97  
   }
 98  
 
 99  
   public static IsolationLevel snapshot() {
 100  0
     return new IsolationLevel(IsolationLevel.Level.SNAPSHOT);
 101  
   }
 102  
 
 103  
   static Map<Class<? extends TransactionOption>, TransactionOption> asImmutableMap(
 104  
       TransactionOption... options) {
 105  
     ImmutableMap.Builder<Class<? extends TransactionOption>, TransactionOption> builder =
 106  0
         ImmutableMap.builder();
 107  0
     for (TransactionOption option : options) {
 108  0
       builder.put(option.getClass(), option);
 109  
     }
 110  0
     return builder.build();
 111  
   }
 112  
 
 113  
   abstract BatchOption toBatchWriteOption();
 114  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.Validator.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.Validator.html new file mode 100644 index 000000000000..20ba3d2ac46a --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.Validator.html @@ -0,0 +1,137 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.Validator
+
 
+ + + + +
Classes in this File Line Coverage Branch Coverage Complexity
Validator
0%
0/15
0%
0/14
1.25
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import static com.google.common.base.Preconditions.checkArgument;
 20  
 
 21  
 import com.google.common.base.Strings;
 22  
 
 23  
 import java.util.regex.Pattern;
 24  
 
 25  
 /**
 26  
  * Utility to validate Datastore type/values.
 27  
  */
 28  
 final class Validator {
 29  
 
 30  0
   private static final Pattern PROJECT_ID_PATTERN = Pattern.compile(
 31  
       "([a-z\\d\\-]{1,100}~)?([a-z\\d][a-z\\d\\-\\.]{0,99}:)?([a-z\\d][a-z\\d\\-]{0,99})");
 32  
   private static final int MAX_NAMESPACE_LENGTH = 100;
 33  0
   private static final Pattern NAMESPACE_PATTERN =
 34  0
       Pattern.compile(String.format("[0-9A-Za-z\\._\\-]{0,%d}", MAX_NAMESPACE_LENGTH));
 35  
 
 36  
   private Validator() {
 37  
     // utility class
 38  
   }
 39  
 
 40  
   static String validateDatabase(String projectId) {
 41  0
     checkArgument(!Strings.isNullOrEmpty(projectId), "projectId can't be empty or null");
 42  0
     checkArgument(PROJECT_ID_PATTERN.matcher(projectId).matches(),
 43  0
         "projectId must match the following pattern: " + PROJECT_ID_PATTERN.pattern());
 44  0
     return projectId;
 45  
   }
 46  
 
 47  
   static String validateNamespace(String namespace) {
 48  0
     if (namespace != null) {
 49  0
       checkArgument(!namespace.isEmpty(), "namespace must not be an empty string");
 50  0
       checkArgument(namespace.length() <= MAX_NAMESPACE_LENGTH,
 51  
           "namespace must not contain more than 100 characters");
 52  0
       checkArgument(NAMESPACE_PATTERN.matcher(namespace).matches(),
 53  0
           "namespace must the following pattern: " + NAMESPACE_PATTERN.pattern());
 54  
     }
 55  0
     return namespace;
 56  
   }
 57  
 
 58  
   static String validateKind(String kind) {
 59  0
     checkArgument(!Strings.isNullOrEmpty(kind), "kind must not be empty or null");
 60  0
     return kind;
 61  
   }
 62  
 
 63  
 
 64  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.Value.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.Value.html new file mode 100644 index 000000000000..5ff1748a279d --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.Value.html @@ -0,0 +1,443 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.Value
+
 
+ + + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
Value
0%
0/33
0%
0/22
1.552
Value$BaseBuilder
0%
0/12
N/A
1.552
Value$BaseMarshaller
0%
0/13
0%
0/8
1.552
Value$BuilderFactory
N/A
N/A
1.552
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import static com.google.common.base.Preconditions.checkNotNull;
 20  
 
 21  
 import com.google.api.services.datastore.DatastoreV1;
 22  
 import com.google.protobuf.Descriptors.FieldDescriptor;
 23  
 import com.google.protobuf.InvalidProtocolBufferException;
 24  
 
 25  
 import java.util.Map.Entry;
 26  
 import java.util.Objects;
 27  
 
 28  
 /**
 29  
  * Base class for all Google Cloud Datastore value types.
 30  
  * All values must be associated with a non-null content (except {@link NullValue}).
 31  
  * All values are immutable (including their content). To edit (a copy) use {@link #toBuilder()}.
 32  
  * Unsupported value (deprecated or unrecognized) would be represented by {@link RawValue}.
 33  
  *
 34  
  * @param <V> the type of the content for this value
 35  
  */
 36  0
 public abstract class Value<V> extends Serializable<DatastoreV1.Value> {
 37  
 
 38  
   private static final long serialVersionUID = -1899638277588872742L;
 39  
 
 40  
 
 41  
   private final transient ValueType valueType;
 42  
   private final transient Boolean indexed;
 43  
   private final transient Integer meaning;
 44  
   private final transient V value;
 45  
 
 46  
   interface BuilderFactory<V, P extends Value<V>, B extends ValueBuilder<V, P, B>>
 47  
       extends java.io.Serializable {
 48  
     B newBuilder(V value);
 49  
   }
 50  
 
 51  
   abstract static class BaseMarshaller<V, P extends Value<V>, B extends ValueBuilder<V, P, B>>
 52  
       implements ValueMarshaller<V, P, B>, BuilderFactory<V, P, B> {
 53  
 
 54  
     private static final long serialVersionUID = 2880767488942992985L;
 55  
 
 56  
     @SuppressWarnings("deprecation")
 57  
     @Override
 58  
     public final B fromProto(DatastoreV1.Value proto) {
 59  0
       B builder = newBuilder(getValue(proto));
 60  0
       if (proto.hasIndexed()) {
 61  0
         builder.indexed(proto.getIndexed());
 62  
       }
 63  0
       if (proto.hasMeaning()) {
 64  0
         builder.meaning(proto.getMeaning());
 65  
       }
 66  0
       return builder;
 67  
     }
 68  
 
 69  
     @SuppressWarnings("deprecation")
 70  
     @Override
 71  
     public final DatastoreV1.Value toProto(P value) {
 72  0
       DatastoreV1.Value.Builder builder = DatastoreV1.Value.newBuilder();
 73  0
       if (value.hasIndexed()) {
 74  0
         builder.setIndexed(value.indexed());
 75  
       }
 76  0
       if (value.hasMeaning()) {
 77  0
         builder.setMeaning(value.meaning());
 78  
       }
 79  0
       setValue(value, builder);
 80  0
       return builder.build();
 81  
     }
 82  
 
 83  
     protected abstract V getValue(DatastoreV1.Value from);
 84  
 
 85  
     protected abstract void setValue(P from, DatastoreV1.Value.Builder to);
 86  
   }
 87  
 
 88  0
   @SuppressWarnings("deprecation")
 89  
   abstract static class BaseBuilder<V, P extends Value<V>, B extends BaseBuilder<V, P, B>>
 90  
       implements ValueBuilder<V, P, B> {
 91  
 
 92  
     private final ValueType valueType;
 93  
     private Boolean indexed;
 94  
     private Integer meaning;
 95  
     private V value;
 96  
 
 97  
     BaseBuilder(ValueType valueType) {
 98  
       this.valueType = valueType;
 99  
     }
 100  
 
 101  
     @Override
 102  
     public ValueType getValueType() {
 103  
       return valueType;
 104  
     }
 105  
 
 106  
     @Override
 107  
     public B mergeFrom(P other) {
 108  0
       indexed = other.indexed();
 109  0
       meaning = other.meaning();
 110  0
       set(other.get());
 111  0
       return self();
 112  
     }
 113  
 
 114  
     @Override
 115  
     public Boolean getIndexed() {
 116  
       return indexed;
 117  
     }
 118  
 
 119  
     @Override
 120  
     public B indexed(boolean indexed) {
 121  0
       this.indexed = indexed;
 122  0
       return self();
 123  
     }
 124  
 
 125  
     @Override
 126  
     public Integer getMeaning() {
 127  
       return meaning;
 128  
     }
 129  
 
 130  
     @Override
 131  
     public B meaning(Integer meaning) {
 132  0
       this.meaning = meaning;
 133  0
       return self();
 134  
     }
 135  
 
 136  
     @Override
 137  
     public V get() {
 138  
       return value;
 139  
     }
 140  
 
 141  
     @Override
 142  
     public B set(V value) {
 143  0
       this.value = checkNotNull(value);
 144  0
       return self();
 145  
     }
 146  
 
 147  
     @SuppressWarnings("unchecked")
 148  
     private B self() {
 149  0
       return (B) this;
 150  
     }
 151  
 
 152  
     @Override
 153  
     public abstract P build();
 154  
   }
 155  
 
 156  0
   <P extends Value<V>, B extends BaseBuilder<V, P, B>> Value(ValueBuilder<V, P, B> builder) {
 157  0
     valueType = builder.getValueType();
 158  0
     indexed = builder.getIndexed();
 159  0
     meaning = builder.getMeaning();
 160  0
     value = builder.get();
 161  0
   }
 162  
 
 163  
   public final ValueType type() {
 164  0
     return valueType;
 165  
   }
 166  
 
 167  
   public final boolean hasIndexed() {
 168  0
     return indexed != null;
 169  
   }
 170  
 
 171  
   public final Boolean indexed() {
 172  0
     return indexed;
 173  
   }
 174  
 
 175  
   @Deprecated
 176  
   public final boolean hasMeaning() {
 177  0
     return meaning != null;
 178  
   }
 179  
 
 180  
   @Deprecated
 181  
   public final Integer meaning() {
 182  0
     return meaning;
 183  
   }
 184  
 
 185  
   public final V get() {
 186  
     return value;
 187  
   }
 188  
 
 189  
   public abstract ValueBuilder<?, ?, ?> toBuilder();
 190  
 
 191  
   @Override
 192  
   public int hashCode() {
 193  0
     return Objects.hash(valueType, indexed, meaning, value);
 194  
   }
 195  
 
 196  
   @Override
 197  
   @SuppressWarnings("unchecked")
 198  
   public boolean equals(Object obj) {
 199  0
     if (obj == this) {
 200  0
       return true;
 201  
     }
 202  0
     if (!getClass().isInstance(obj)) {
 203  0
       return false;
 204  
     }
 205  0
     Value<V> other = (Value<V>) obj;
 206  0
     return Objects.equals(valueType, other.valueType)
 207  0
         && Objects.equals(indexed, other.indexed)
 208  0
         && Objects.equals(meaning, other.meaning)
 209  0
         && Objects.equals(value, other.value);
 210  
   }
 211  
 
 212  
   @Override
 213  
   @SuppressWarnings("unchecked")
 214  
   protected DatastoreV1.Value toPb() {
 215  0
     return type().getMarshaller().toProto(this);
 216  
   }
 217  
 
 218  
   static Value<?> fromPb(DatastoreV1.Value proto) {
 219  0
     for (Entry<FieldDescriptor, Object> entry : proto.getAllFields().entrySet()) {
 220  0
       FieldDescriptor descriptor = entry.getKey();
 221  0
       if (descriptor.getName().endsWith("_value")) {
 222  0
         ValueType valueType = ValueType.getByDescriptorId(descriptor.getNumber());
 223  0
         if (valueType == null) {
 224  
           // unsupported type
 225  0
           return RawValue.MARSHALLER.fromProto(proto).build();
 226  
         }
 227  0
         return valueType.getMarshaller().fromProto(proto).build();
 228  
       }
 229  0
     }
 230  0
     return NullValue.MARSHALLER.fromProto(proto).build();
 231  
   }
 232  
 
 233  
   @Override
 234  
   protected Object fromPb(byte[] bytesPb) throws InvalidProtocolBufferException {
 235  0
     return fromPb(DatastoreV1.Value.parseFrom(bytesPb));
 236  
   }
 237  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.ValueBuilder.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.ValueBuilder.html new file mode 100644 index 000000000000..936f87145a2c --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.ValueBuilder.html @@ -0,0 +1,108 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.ValueBuilder
+
 
+ + + + +
Classes in this File Line Coverage Branch Coverage Complexity
ValueBuilder
N/A
N/A
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 /**
 20  
  * A common interface for Value builders.
 21  
  */
 22  
 public interface ValueBuilder<V, P extends Value<V>, B extends ValueBuilder<V, P, B>> {
 23  
 
 24  
   ValueType getValueType();
 25  
 
 26  
   B mergeFrom(P other);
 27  
 
 28  
   Boolean getIndexed();
 29  
 
 30  
   B indexed(boolean indexed);
 31  
 
 32  
   Integer getMeaning();
 33  
 
 34  
   @Deprecated
 35  
   B meaning(Integer meaning);
 36  
 
 37  
   V get();
 38  
 
 39  
   B set(V value);
 40  
 
 41  
   P build();
 42  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.ValueMarshaller.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.ValueMarshaller.html new file mode 100644 index 000000000000..e2f138a3cf4a --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.ValueMarshaller.html @@ -0,0 +1,88 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.ValueMarshaller
+
 
+ + + + +
Classes in this File Line Coverage Branch Coverage Complexity
ValueMarshaller
N/A
N/A
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import com.google.api.services.datastore.DatastoreV1;
 20  
 
 21  
 /**
 22  
  * A common interface for Value marshallers.
 23  
  */
 24  
 interface ValueMarshaller<V, P extends Value<V>, B extends ValueBuilder<V, P, B>>
 25  
     extends java.io.Serializable {
 26  
 
 27  
   B fromProto(DatastoreV1.Value proto);
 28  
 
 29  
   DatastoreV1.Value toProto(P value);
 30  
 
 31  
   int getProtoFieldId();
 32  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.datastore.ValueType.html b/site/0.0.7/cobertura/com.google.gcloud.datastore.ValueType.html new file mode 100644 index 000000000000..3766f12409a1 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.datastore.ValueType.html @@ -0,0 +1,228 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.datastore.ValueType
+
 
+ + + + +
Classes in this File Line Coverage Branch Coverage Complexity
ValueType
0%
0/20
N/A
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.datastore;
 18  
 
 19  
 import com.google.common.collect.ImmutableMap;
 20  
 
 21  
 /**
 22  
  * The type of a Datastore property.
 23  
  *
 24  
  * @see <a href="http://cloud.google.com/datastore/docs/concepts/entities#Datastore_Properties_and_value_types">Google Cloud Datastore types</a>
 25  
  */
 26  0
 public enum ValueType {
 27  
 
 28  
   /**
 29  
    * Represents a {@code null} value.
 30  
    */
 31  0
   NULL(NullValue.MARSHALLER),
 32  
 
 33  
   /**
 34  
    * Represents a {@code string} value.
 35  
    */
 36  0
   STRING(StringValue.MARSHALLER),
 37  
 
 38  
   /**
 39  
    * Represents an entity value.
 40  
    */
 41  0
   ENTITY(EntityValue.MARSHALLER),
 42  
 
 43  
   /**
 44  
    * Represents a {@code list} of {@link Value}s.
 45  
    */
 46  0
   LIST(ListValue.MARSHALLER),
 47  
 
 48  
   /**
 49  
    * Represents a {@code key} as a value.
 50  
    */
 51  0
   KEY(KeyValue.MARSHALLER),
 52  
 
 53  
   /**
 54  
    * Represents a {@code long} value.
 55  
    */
 56  0
   LONG(LongValue.MARSHALLER),
 57  
 
 58  
   /**
 59  
    * Represents a {@code double} value.
 60  
    */
 61  0
   DOUBLE(DoubleValue.MARSHALLER),
 62  
 
 63  
   /**
 64  
    * Represents a {@code boolean} value.
 65  
    */
 66  0
   BOOLEAN(BooleanValue.MARSHALLER),
 67  
 
 68  
   /**
 69  
    * Represents a {@link DateTime} value.
 70  
    */
 71  0
   DATE_TIME(DateTimeValue.MARSHALLER),
 72  
 
 73  
   /**
 74  
    * Represents a {@link Blob} value.
 75  
    */
 76  0
   BLOB(BlobValue.MARSHALLER),
 77  
 
 78  
   /**
 79  
    * Represents a raw/unparsed value.
 80  
    */
 81  0
   RAW_VALUE(RawValue.MARSHALLER);
 82  
 
 83  
 
 84  
   private static final ImmutableMap<Integer, ValueType> DESCRIPTOR_TO_TYPE_MAP;
 85  
 
 86  
   @SuppressWarnings("rawtypes") private final ValueMarshaller marshaller;
 87  
 
 88  
   static {
 89  0
     ImmutableMap.Builder<Integer, ValueType> builder = ImmutableMap.builder();
 90  0
     for (ValueType valueType : ValueType.values()) {
 91  0
       int fieldId = valueType.getMarshaller().getProtoFieldId();
 92  0
       if (fieldId > 0) {
 93  0
         builder.put(fieldId, valueType);
 94  
       }
 95  
     }
 96  0
     DESCRIPTOR_TO_TYPE_MAP = builder.build();
 97  0
   }
 98  
 
 99  
 
 100  
   <V, P extends Value<V>, B extends ValueBuilder<V, P, B>>
 101  
       ValueType(ValueMarshaller<V, P, B> marshaller) {
 102  
     this.marshaller = marshaller;
 103  
   }
 104  
 
 105  
   ValueMarshaller getMarshaller() {
 106  
     return marshaller;
 107  
   }
 108  
 
 109  
   static ValueType getByDescriptorId(int descriptorId) {
 110  0
     return DESCRIPTOR_TO_TYPE_MAP.get(descriptorId);
 111  
   }
 112  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.spi.DatastoreRpc.html b/site/0.0.7/cobertura/com.google.gcloud.spi.DatastoreRpc.html new file mode 100644 index 000000000000..c62c1a0e5ab8 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.spi.DatastoreRpc.html @@ -0,0 +1,245 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.spi.DatastoreRpc
+
 
+ + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
DatastoreRpc
N/A
N/A
1
DatastoreRpc$DatastoreRpcException
0%
0/5
N/A
1
DatastoreRpc$DatastoreRpcException$Reason
0%
0/12
N/A
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 package com.google.gcloud.spi;
 17  
 
 18  
 import com.google.api.services.datastore.DatastoreV1.AllocateIdsRequest;
 19  
 import com.google.api.services.datastore.DatastoreV1.AllocateIdsResponse;
 20  
 import com.google.api.services.datastore.DatastoreV1.BeginTransactionRequest;
 21  
 import com.google.api.services.datastore.DatastoreV1.BeginTransactionResponse;
 22  
 import com.google.api.services.datastore.DatastoreV1.CommitRequest;
 23  
 import com.google.api.services.datastore.DatastoreV1.CommitResponse;
 24  
 import com.google.api.services.datastore.DatastoreV1.LookupRequest;
 25  
 import com.google.api.services.datastore.DatastoreV1.LookupResponse;
 26  
 import com.google.api.services.datastore.DatastoreV1.RollbackRequest;
 27  
 import com.google.api.services.datastore.DatastoreV1.RollbackResponse;
 28  
 import com.google.api.services.datastore.DatastoreV1.RunQueryRequest;
 29  
 import com.google.api.services.datastore.DatastoreV1.RunQueryResponse;
 30  
 
 31  
 /**
 32  
  * Provides access to the remote Datastore service.
 33  
  */
 34  
 public interface DatastoreRpc {
 35  
 
 36  
   public class DatastoreRpcException extends Exception {
 37  
 
 38  
     /**
 39  
      * The reason for the exception.
 40  
      *
 41  
      * @see <a href="https://cloud.google.com/datastore/docs/concepts/errors#Error_Codes">Google
 42  
      *     Cloud Datastore error codes</a>
 43  
      */
 44  0
     public enum Reason {
 45  
 
 46  0
       ABORTED(true, "Request aborted", 409),
 47  0
       DEADLINE_EXCEEDED(true, "Deadline exceeded", 403),
 48  0
       FAILED_PRECONDITION(false, "Invalid request", 412),
 49  0
       INTERNAL(false, "Server returned an error", 500),
 50  0
       INVALID_ARGUMENT(false, "Request parameter has an invalid value", 400),
 51  0
       PERMISSION_DENIED(false, "Unauthorized request", 403),
 52  0
       RESOURCE_EXHAUSTED(false, "Quota exceeded", 402),
 53  0
       UNAVAILABLE(true, "Could not reach service", 503);
 54  
 
 55  
       private final boolean retryable;
 56  
       private final String description;
 57  
       private final int httpStatus;
 58  
 
 59  
       private Reason(boolean retryable, String description, int httpStatus) {
 60  
         this.retryable = retryable;
 61  
         this.description = description;
 62  
         this.httpStatus = httpStatus;
 63  
       }
 64  
 
 65  
       public boolean retryable() {
 66  0
         return retryable;
 67  
       }
 68  
 
 69  
       public String description() {
 70  0
         return description;
 71  
       }
 72  
 
 73  
       public int httpStatus() {
 74  0
         return httpStatus;
 75  
       }
 76  
     }
 77  
 
 78  
     private final String reason;
 79  
     private final int httpStatus;
 80  
     private final boolean retryable;
 81  
 
 82  
     public DatastoreRpcException(Reason reason) {
 83  0
       this(reason.name(), reason.httpStatus, reason.retryable, reason.description);
 84  0
     }
 85  
 
 86  
     public DatastoreRpcException(String reason, int httpStatus, boolean retryable, String message) {
 87  
       super(message);
 88  
       this.reason = reason;
 89  
       this.httpStatus = httpStatus;
 90  
       this.retryable = retryable;
 91  
     }
 92  
 
 93  
     public String reason() {
 94  0
       return reason;
 95  
     }
 96  
 
 97  
     public int httpStatus() {
 98  0
       return httpStatus;
 99  
     }
 100  
 
 101  
     public boolean retryable() {
 102  0
       return retryable;
 103  
     }
 104  
   }
 105  
 
 106  
   AllocateIdsResponse allocateIds(AllocateIdsRequest request) throws DatastoreRpcException;
 107  
 
 108  
   BeginTransactionResponse beginTransaction(BeginTransactionRequest request)
 109  
       throws DatastoreRpcException;
 110  
 
 111  
   CommitResponse commit(CommitRequest request) throws DatastoreRpcException;
 112  
 
 113  
   LookupResponse lookup(LookupRequest request) throws DatastoreRpcException;
 114  
 
 115  
   RollbackResponse rollback(RollbackRequest request) throws DatastoreRpcException;
 116  
 
 117  
   RunQueryResponse runQuery(RunQueryRequest request) throws DatastoreRpcException;
 118  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.spi.DatastoreRpcFactory.html b/site/0.0.7/cobertura/com.google.gcloud.spi.DatastoreRpcFactory.html new file mode 100644 index 000000000000..17a4674f4123 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.spi.DatastoreRpcFactory.html @@ -0,0 +1,80 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.spi.DatastoreRpcFactory
+
 
+ + + + +
Classes in this File Line Coverage Branch Coverage Complexity
DatastoreRpcFactory
N/A
N/A
0
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.spi;
 18  
 
 19  
 import com.google.gcloud.datastore.DatastoreOptions;
 20  
 
 21  
 /**
 22  
  * An interface for Datastore RPC factory.
 23  
  * Implementation will be loaded via {@link java.util.ServiceLoader}.
 24  
  */
 25  
 public interface DatastoreRpcFactory extends
 26  
     ServiceRpcFactory<DatastoreRpc, DatastoreOptions> {
 27  
 }
 28  
 
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.spi.DefaultDatastoreRpc.html b/site/0.0.7/cobertura/com.google.gcloud.spi.DefaultDatastoreRpc.html new file mode 100644 index 000000000000..4939bee19d2c --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.spi.DefaultDatastoreRpc.html @@ -0,0 +1,279 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.spi.DefaultDatastoreRpc
+
 
+ + + + +
Classes in this File Line Coverage Branch Coverage Complexity
DefaultDatastoreRpc
0%
0/47
0%
0/6
3.75
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.spi;
 18  
 
 19  
 import com.google.api.services.datastore.DatastoreV1.AllocateIdsRequest;
 20  
 import com.google.api.services.datastore.DatastoreV1.AllocateIdsResponse;
 21  
 import com.google.api.services.datastore.DatastoreV1.BeginTransactionRequest;
 22  
 import com.google.api.services.datastore.DatastoreV1.BeginTransactionResponse;
 23  
 import com.google.api.services.datastore.DatastoreV1.CommitRequest;
 24  
 import com.google.api.services.datastore.DatastoreV1.CommitResponse;
 25  
 import com.google.api.services.datastore.DatastoreV1.LookupRequest;
 26  
 import com.google.api.services.datastore.DatastoreV1.LookupResponse;
 27  
 import com.google.api.services.datastore.DatastoreV1.RollbackRequest;
 28  
 import com.google.api.services.datastore.DatastoreV1.RollbackResponse;
 29  
 import com.google.api.services.datastore.DatastoreV1.RunQueryRequest;
 30  
 import com.google.api.services.datastore.DatastoreV1.RunQueryResponse;
 31  
 import com.google.api.services.datastore.client.Datastore;
 32  
 import com.google.api.services.datastore.client.DatastoreException;
 33  
 import com.google.api.services.datastore.client.DatastoreFactory;
 34  
 import com.google.api.services.datastore.client.DatastoreOptions.Builder;
 35  
 import com.google.common.collect.ImmutableMap;
 36  
 import com.google.gcloud.datastore.DatastoreOptions;
 37  
 import com.google.gcloud.spi.DatastoreRpc.DatastoreRpcException.Reason;
 38  
 
 39  
 import org.json.JSONException;
 40  
 import org.json.JSONObject;
 41  
 import org.json.JSONTokener;
 42  
 
 43  
 import java.util.HashMap;
 44  
 import java.util.Map;
 45  
 
 46  
 public class DefaultDatastoreRpc implements DatastoreRpc {
 47  
 
 48  
   private final Datastore client;
 49  
 
 50  
   private static final ImmutableMap<String, Reason> STR_TO_REASON;
 51  
   private static final ImmutableMap<Integer, Reason> HTTP_STATUS_TO_REASON;
 52  
 
 53  
   static {
 54  0
     ImmutableMap.Builder<String, Reason> builder = ImmutableMap.builder();
 55  0
     Map<Integer, Reason> httpCodes = new HashMap<>();
 56  0
     for (Reason reason : Reason.values()) {
 57  0
       builder.put(reason.name(), reason);
 58  0
       httpCodes.put(reason.httpStatus(), reason);
 59  
     }
 60  0
     STR_TO_REASON = builder.build();
 61  0
     HTTP_STATUS_TO_REASON = ImmutableMap.copyOf(httpCodes);
 62  0
   }
 63  
 
 64  0
   public DefaultDatastoreRpc(DatastoreOptions options) {
 65  0
     client = DatastoreFactory.get().create(
 66  
         new Builder()
 67  0
             .dataset(options.projectId())
 68  0
             .host(options.host())
 69  0
             .initializer(options.httpRequestInitializer())
 70  0
             .build());
 71  0
   }
 72  
 
 73  
   private static DatastoreRpcException translate(DatastoreException exception) {
 74  0
     String message = exception.getMessage();
 75  0
     String reasonStr = "";
 76  0
     if (message != null) {
 77  
       try {
 78  0
         JSONObject json = new JSONObject(new JSONTokener(message));
 79  0
         JSONObject error = json.getJSONObject("error").getJSONArray("errors").getJSONObject(0);
 80  0
         reasonStr = error.getString("reason");
 81  0
         message = error.getString("message");
 82  0
       } catch (JSONException ignore) {
 83  
         // ignore - will be converted to unknown
 84  0
       }
 85  
     }
 86  0
     Reason reason = STR_TO_REASON.get(reasonStr);
 87  0
     if (reason == null) {
 88  0
       reason = HTTP_STATUS_TO_REASON.get(exception.getCode());
 89  
     }
 90  0
     return reason != null
 91  
         ? new DatastoreRpcException(reason)
 92  0
         : new DatastoreRpcException("Unknown", exception.getCode(), false, message);
 93  
   }
 94  
 
 95  
   @Override
 96  
   public AllocateIdsResponse allocateIds(AllocateIdsRequest request)
 97  
       throws DatastoreRpcException {
 98  
     try {
 99  0
       return client.allocateIds(request);
 100  0
     } catch (DatastoreException ex) {
 101  0
       throw translate(ex);
 102  
     }
 103  
   }
 104  
 
 105  
   @Override
 106  
   public BeginTransactionResponse beginTransaction(BeginTransactionRequest request)
 107  
       throws DatastoreRpcException {
 108  
     try {
 109  0
       return client.beginTransaction(request);
 110  0
     } catch (DatastoreException ex) {
 111  0
       throw translate(ex);
 112  
     }
 113  
   }
 114  
 
 115  
   @Override
 116  
   public CommitResponse commit(CommitRequest request) throws DatastoreRpcException {
 117  
     try {
 118  0
       return client.commit(request);
 119  0
     } catch (DatastoreException ex) {
 120  0
       throw translate(ex);
 121  
     }
 122  
   }
 123  
 
 124  
   @Override
 125  
   public LookupResponse lookup(LookupRequest request) throws DatastoreRpcException {
 126  
     try {
 127  0
       return client.lookup(request);
 128  0
     } catch (DatastoreException ex) {
 129  0
       throw translate(ex);
 130  
     }
 131  
   }
 132  
 
 133  
   @Override
 134  
   public RollbackResponse rollback(RollbackRequest request) throws DatastoreRpcException {
 135  
     try {
 136  0
       return client.rollback(request);
 137  0
     } catch (DatastoreException ex) {
 138  0
       throw translate(ex);
 139  
     }
 140  
   }
 141  
 
 142  
   @Override
 143  
   public RunQueryResponse runQuery(RunQueryRequest request) throws DatastoreRpcException {
 144  
     try {
 145  0
       return client.runQuery(request);
 146  0
     } catch (DatastoreException ex) {
 147  0
       throw translate(ex);
 148  
     }
 149  
   }
 150  
 }
 151  
 
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.spi.DefaultStorageRpc.html b/site/0.0.7/cobertura/com.google.gcloud.spi.DefaultStorageRpc.html new file mode 100644 index 000000000000..64d2b56b8a8d --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.spi.DefaultStorageRpc.html @@ -0,0 +1,796 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.spi.DefaultStorageRpc
+
 
+ + + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
DefaultStorageRpc
0%
0/265
0%
0/46
3.621
DefaultStorageRpc$1
0%
0/5
N/A
3.621
DefaultStorageRpc$2
0%
0/7
N/A
3.621
DefaultStorageRpc$3
0%
0/7
N/A
3.621
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 5  
  * in compliance with the License. You may obtain a copy of the License at
 6  
  *
 7  
  * http://www.apache.org/licenses/LICENSE-2.0
 8  
  *
 9  
  * Unless required by applicable law or agreed to in writing, software distributed under the License
 10  
  * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 11  
  * or implied. See the License for the specific language governing permissions and limitations under
 12  
  * the License.
 13  
  */
 14  
 
 15  
 package com.google.gcloud.spi;
 16  
 
 17  
 import static com.google.gcloud.spi.StorageRpc.Option.DELIMITER;
 18  
 import static com.google.gcloud.spi.StorageRpc.Option.IF_GENERATION_MATCH;
 19  
 import static com.google.gcloud.spi.StorageRpc.Option.IF_GENERATION_NOT_MATCH;
 20  
 import static com.google.gcloud.spi.StorageRpc.Option.IF_METAGENERATION_MATCH;
 21  
 import static com.google.gcloud.spi.StorageRpc.Option.IF_METAGENERATION_NOT_MATCH;
 22  
 import static com.google.gcloud.spi.StorageRpc.Option.IF_SOURCE_GENERATION_MATCH;
 23  
 import static com.google.gcloud.spi.StorageRpc.Option.IF_SOURCE_GENERATION_NOT_MATCH;
 24  
 import static com.google.gcloud.spi.StorageRpc.Option.IF_SOURCE_METAGENERATION_MATCH;
 25  
 import static com.google.gcloud.spi.StorageRpc.Option.IF_SOURCE_METAGENERATION_NOT_MATCH;
 26  
 import static com.google.gcloud.spi.StorageRpc.Option.MAX_RESULTS;
 27  
 import static com.google.gcloud.spi.StorageRpc.Option.PAGE_TOKEN;
 28  
 import static com.google.gcloud.spi.StorageRpc.Option.PREDEFINED_ACL;
 29  
 import static com.google.gcloud.spi.StorageRpc.Option.PREDEFINED_DEFAULT_OBJECT_ACL;
 30  
 import static com.google.gcloud.spi.StorageRpc.Option.PREFIX;
 31  
 import static com.google.gcloud.spi.StorageRpc.Option.VERSIONS;
 32  
 
 33  
 import com.google.api.client.googleapis.batch.json.JsonBatchCallback;
 34  
 import com.google.api.client.googleapis.json.GoogleJsonError;
 35  
 import com.google.api.client.googleapis.json.GoogleJsonResponseException;
 36  
 import com.google.api.client.googleapis.media.MediaHttpDownloader;
 37  
 import com.google.api.client.http.ByteArrayContent;
 38  
 import com.google.api.client.http.GenericUrl;
 39  
 import com.google.api.client.http.HttpHeaders;
 40  
 import com.google.api.client.http.HttpRequest;
 41  
 import com.google.api.client.http.HttpRequestFactory;
 42  
 import com.google.api.client.http.HttpRequestInitializer;
 43  
 import com.google.api.client.http.HttpResponse;
 44  
 import com.google.api.client.http.HttpResponseException;
 45  
 import com.google.api.client.http.HttpTransport;
 46  
 import com.google.api.client.http.json.JsonHttpContent;
 47  
 import com.google.api.client.json.JsonFactory;
 48  
 import com.google.api.client.json.jackson.JacksonFactory;
 49  
 import com.google.api.services.storage.Storage;
 50  
 import com.google.api.services.storage.Storage.Objects.Get;
 51  
 import com.google.api.services.storage.Storage.Objects.Insert;
 52  
 import com.google.api.services.storage.model.Bucket;
 53  
 import com.google.api.services.storage.model.Buckets;
 54  
 import com.google.api.services.storage.model.ComposeRequest;
 55  
 import com.google.api.services.storage.model.ComposeRequest.SourceObjects.ObjectPreconditions;
 56  
 import com.google.api.services.storage.model.Objects;
 57  
 import com.google.api.services.storage.model.StorageObject;
 58  
 import com.google.common.base.MoreObjects;
 59  
 import com.google.common.collect.ImmutableSet;
 60  
 import com.google.common.collect.Maps;
 61  
 import com.google.gcloud.storage.StorageException;
 62  
 import com.google.gcloud.storage.StorageOptions;
 63  
 
 64  
 import java.io.ByteArrayOutputStream;
 65  
 import java.io.IOException;
 66  
 import java.util.ArrayList;
 67  
 import java.util.List;
 68  
 import java.util.Map;
 69  
 import java.util.Set;
 70  
 
 71  0
 public class DefaultStorageRpc implements StorageRpc {
 72  
 
 73  
   public static final String DEFAULT_PROJECTION = "full";
 74  
   private final StorageOptions options;
 75  
   private final Storage storage;
 76  
 
 77  
   // see: https://cloud.google.com/storage/docs/concepts-techniques#practices
 78  0
   private static final Set<Integer> RETRYABLE_CODES = ImmutableSet.of(504, 503, 502, 500, 408);
 79  
 
 80  0
   public DefaultStorageRpc(StorageOptions options) {
 81  0
     HttpTransport transport = options.httpTransportFactory().create();
 82  0
     HttpRequestInitializer initializer = options.httpRequestInitializer();
 83  0
     this.options = options;
 84  0
     storage = new Storage.Builder(transport, new JacksonFactory(), initializer)
 85  0
         .setRootUrl(options.host())
 86  0
         .setApplicationName("gcloud-java")
 87  0
         .build();
 88  0
   }
 89  
 
 90  
   private static StorageException translate(IOException exception) {
 91  
     StorageException translated;
 92  0
     if (exception instanceof GoogleJsonResponseException) {
 93  0
       translated = translate(((GoogleJsonResponseException) exception).getDetails());
 94  
     } else {
 95  0
       translated = new StorageException(0, exception.getMessage(), false);
 96  
     }
 97  0
     translated.initCause(exception);
 98  0
     return translated;
 99  
   }
 100  
 
 101  
   private static StorageException translate(GoogleJsonError exception) {
 102  0
     boolean retryable = RETRYABLE_CODES.contains(exception.getCode())
 103  0
         || "InternalError".equals(exception.getMessage());
 104  0
     return new StorageException(exception.getCode(), exception.getMessage(), retryable);
 105  
   }
 106  
 
 107  
   @Override
 108  
   public Bucket create(Bucket bucket, Map<Option, ?> options) throws StorageException {
 109  
     try {
 110  0
       return storage.buckets()
 111  0
           .insert(this.options.projectId(), bucket)
 112  0
           .setProjection(DEFAULT_PROJECTION)
 113  0
           .setPredefinedAcl(PREDEFINED_ACL.getString(options))
 114  0
           .setPredefinedDefaultObjectAcl(PREDEFINED_DEFAULT_OBJECT_ACL.getString(options))
 115  0
           .execute();
 116  0
     } catch (IOException ex) {
 117  0
       throw translate(ex);
 118  
     }
 119  
   }
 120  
 
 121  
   @Override
 122  
   public StorageObject create(StorageObject storageObject, final byte[] content,
 123  
       Map<Option, ?> options) throws StorageException {
 124  
     try {
 125  0
       return storage.objects()
 126  0
           .insert(storageObject.getBucket(), storageObject,
 127  0
               new ByteArrayContent(storageObject.getContentType(), content))
 128  0
           .setProjection(DEFAULT_PROJECTION)
 129  0
           .setPredefinedAcl(PREDEFINED_ACL.getString(options))
 130  0
           .setIfMetagenerationMatch(IF_METAGENERATION_MATCH.getLong(options))
 131  0
           .setIfMetagenerationNotMatch(IF_METAGENERATION_NOT_MATCH.getLong(options))
 132  0
           .setIfGenerationMatch(IF_GENERATION_MATCH.getLong(options))
 133  0
           .setIfGenerationNotMatch(IF_GENERATION_NOT_MATCH.getLong(options))
 134  0
           .execute();
 135  0
     } catch (IOException ex) {
 136  0
       throw translate(ex);
 137  
     }
 138  
   }
 139  
 
 140  
   @Override
 141  
   public Tuple<String, Iterable<Bucket>> list(Map<Option, ?> options) {
 142  
     try {
 143  0
       Buckets buckets = storage.buckets()
 144  0
           .list(this.options.projectId())
 145  0
           .setProjection(DEFAULT_PROJECTION)
 146  0
           .setPrefix(PREFIX.getString(options))
 147  0
           .setMaxResults(MAX_RESULTS.getLong(options))
 148  0
           .setPageToken(PAGE_TOKEN.getString(options))
 149  0
           .execute();
 150  0
       return Tuple.<String, Iterable<Bucket>>of(buckets.getNextPageToken(), buckets.getItems());
 151  0
     } catch (IOException ex) {
 152  0
       throw translate(ex);
 153  
     }
 154  
   }
 155  
 
 156  
   @Override
 157  
   public Tuple<String, Iterable<StorageObject>> list(String bucket, Map<Option, ?> options) {
 158  
     try {
 159  0
       Objects objects = storage.objects()
 160  0
           .list(bucket)
 161  0
           .setProjection(DEFAULT_PROJECTION)
 162  0
           .setVersions(VERSIONS.getBoolean(options))
 163  0
           .setDelimiter(DELIMITER.getString(options))
 164  0
           .setPrefix(PREFIX.getString(options))
 165  0
           .setMaxResults(MAX_RESULTS.getLong(options))
 166  0
           .setPageToken(PAGE_TOKEN.getString(options))
 167  0
           .execute();
 168  0
       return Tuple.<String, Iterable<StorageObject>>of(
 169  0
           objects.getNextPageToken(), objects.getItems());
 170  0
     } catch (IOException ex) {
 171  0
       throw translate(ex);
 172  
     }
 173  
   }
 174  
 
 175  
   @Override
 176  
   public Bucket get(Bucket bucket, Map<Option, ?> options) {
 177  
     try {
 178  0
       return storage.buckets()
 179  0
           .get(bucket.getName())
 180  0
           .setProjection(DEFAULT_PROJECTION)
 181  0
           .setIfMetagenerationMatch(IF_METAGENERATION_MATCH.getLong(options))
 182  0
           .setIfMetagenerationNotMatch(IF_METAGENERATION_NOT_MATCH.getLong(options))
 183  0
           .execute();
 184  0
     } catch (IOException ex) {
 185  0
       throw translate(ex);
 186  
     }
 187  
   }
 188  
 
 189  
   @Override
 190  
   public StorageObject get(StorageObject object, Map<Option, ?> options) {
 191  
     try {
 192  0
       return getRequest(object, options).execute();
 193  0
     } catch (IOException ex) {
 194  0
       throw translate(ex);
 195  
     }
 196  
   }
 197  
 
 198  
   private Storage.Objects.Get getRequest(StorageObject object, Map<Option, ?> options)
 199  
       throws IOException {
 200  0
     return storage.objects()
 201  0
         .get(object.getBucket(), object.getName())
 202  0
         .setProjection(DEFAULT_PROJECTION)
 203  0
         .setIfMetagenerationMatch(IF_METAGENERATION_MATCH.getLong(options))
 204  0
         .setIfMetagenerationNotMatch(IF_METAGENERATION_NOT_MATCH.getLong(options))
 205  0
         .setIfGenerationMatch(IF_GENERATION_MATCH.getLong(options))
 206  0
         .setIfGenerationNotMatch(IF_GENERATION_NOT_MATCH.getLong(options));
 207  
   }
 208  
 
 209  
   @Override
 210  
   public Bucket patch(Bucket bucket, Map<Option, ?> options) {
 211  
     try {
 212  0
       return storage.buckets()
 213  0
           .patch(bucket.getName(), bucket)
 214  0
           .setProjection(DEFAULT_PROJECTION)
 215  0
           .setPredefinedAcl(PREDEFINED_ACL.getString(options))
 216  0
           .setPredefinedDefaultObjectAcl(PREDEFINED_DEFAULT_OBJECT_ACL.getString(options))
 217  0
           .setIfMetagenerationMatch(IF_METAGENERATION_MATCH.getLong(options))
 218  0
           .setIfMetagenerationNotMatch(IF_METAGENERATION_NOT_MATCH.getLong(options))
 219  0
           .execute();
 220  0
     } catch (IOException ex) {
 221  0
       throw translate(ex);
 222  
     }
 223  
   }
 224  
 
 225  
   @Override
 226  
   public StorageObject patch(StorageObject storageObject, Map<Option, ?> options) {
 227  
     try {
 228  0
       return patchRequest(storageObject, options).execute();
 229  0
     } catch (IOException ex) {
 230  0
       throw translate(ex);
 231  
     }
 232  
   }
 233  
 
 234  
   private Storage.Objects.Patch patchRequest(StorageObject storageObject, Map<Option, ?> options)
 235  
       throws IOException {
 236  0
     return storage.objects()
 237  0
         .patch(storageObject.getBucket(), storageObject.getName(), storageObject)
 238  0
         .setProjection(DEFAULT_PROJECTION)
 239  0
         .setPredefinedAcl(PREDEFINED_ACL.getString(options))
 240  0
         .setIfMetagenerationMatch(IF_METAGENERATION_MATCH.getLong(options))
 241  0
         .setIfMetagenerationNotMatch(IF_METAGENERATION_NOT_MATCH.getLong(options))
 242  0
         .setIfGenerationMatch(IF_GENERATION_MATCH.getLong(options))
 243  0
         .setIfGenerationNotMatch(IF_GENERATION_NOT_MATCH.getLong(options));
 244  
   }
 245  
 
 246  
   @Override
 247  
   public boolean delete(Bucket bucket, Map<Option, ?> options) {
 248  
     try {
 249  0
       storage.buckets()
 250  0
           .delete(bucket.getName())
 251  0
           .setIfMetagenerationMatch(IF_METAGENERATION_MATCH.getLong(options))
 252  0
           .setIfMetagenerationNotMatch(IF_METAGENERATION_NOT_MATCH.getLong(options))
 253  0
           .execute();
 254  0
       return true;
 255  0
     } catch (IOException ex) {
 256  0
       StorageException serviceException = translate(ex);
 257  0
       if (serviceException.code() == 404) {
 258  0
         return false;
 259  
       }
 260  0
       throw serviceException;
 261  
     }
 262  
   }
 263  
 
 264  
   @Override
 265  
   public boolean delete(StorageObject blob, Map<Option, ?> options) {
 266  
     try {
 267  0
       deleteRequest(blob, options).execute();
 268  0
       return true;
 269  0
     } catch (IOException ex) {
 270  0
       StorageException serviceException = translate(ex);
 271  0
       if (serviceException.code() == 404) {
 272  0
         return false;
 273  
       }
 274  0
       throw serviceException;
 275  
     }
 276  
   }
 277  
 
 278  
   private Storage.Objects.Delete deleteRequest(StorageObject blob, Map<Option, ?> options)
 279  
       throws IOException {
 280  0
     return storage.objects()
 281  0
         .delete(blob.getBucket(), blob.getName())
 282  0
         .setIfMetagenerationMatch(IF_METAGENERATION_MATCH.getLong(options))
 283  0
         .setIfMetagenerationNotMatch(IF_METAGENERATION_NOT_MATCH.getLong(options))
 284  0
         .setIfGenerationMatch(IF_GENERATION_MATCH.getLong(options))
 285  0
         .setIfGenerationMatch(100L)
 286  0
         .setIfGenerationNotMatch(IF_GENERATION_NOT_MATCH.getLong(options));
 287  
   }
 288  
 
 289  
   @Override
 290  
   public StorageObject compose(Iterable<StorageObject> sources, StorageObject target,
 291  
       Map<Option, ?> targetOptions) throws StorageException {
 292  0
     ComposeRequest request = new ComposeRequest();
 293  0
     if (target.getContentType() == null) {
 294  
       // todo: remove once this is no longer requirement (b/20681287).
 295  0
       target.setContentType("application/octet-stream");
 296  
     }
 297  0
     request.setDestination(target);
 298  0
     List<ComposeRequest.SourceObjects> sourceObjects = new ArrayList<>();
 299  0
     for (StorageObject source : sources) {
 300  0
       ComposeRequest.SourceObjects sourceObject = new ComposeRequest.SourceObjects();
 301  0
       sourceObject.setName(source.getName());
 302  0
       Long generation = source.getGeneration();
 303  0
       if (generation != null) {
 304  0
         sourceObject.setGeneration(generation);
 305  0
         sourceObject.setObjectPreconditions(
 306  0
             new ObjectPreconditions().setIfGenerationMatch(generation));
 307  
       }
 308  0
       sourceObjects.add(sourceObject);
 309  0
     }
 310  0
     request.setSourceObjects(sourceObjects);
 311  
     try {
 312  
       // todo: missing setProjection (b/20659000)
 313  0
       return storage.objects()
 314  0
           .compose(target.getBucket(), target.getName(), request)
 315  0
           .setIfMetagenerationMatch(IF_METAGENERATION_MATCH.getLong(targetOptions))
 316  0
           .setIfGenerationMatch(IF_GENERATION_MATCH.getLong(targetOptions))
 317  0
           .execute();
 318  0
     } catch (IOException ex) {
 319  0
       throw translate(ex);
 320  
     }
 321  
   }
 322  
 
 323  
   @Override
 324  
   public StorageObject copy(StorageObject source, Map<Option, ?> sourceOptions,
 325  
       StorageObject target, Map<Option, ?> targetOptions) throws StorageException {
 326  
     try {
 327  0
       return storage
 328  0
           .objects()
 329  0
           .copy(source.getBucket(), source.getName(), target.getBucket(), target.getName(),
 330  0
               target.getContentType() != null ? target : null)
 331  0
           .setProjection(DEFAULT_PROJECTION)
 332  0
           .setIfMetagenerationMatch(IF_SOURCE_METAGENERATION_MATCH.getLong(sourceOptions))
 333  0
           .setIfMetagenerationNotMatch(IF_SOURCE_METAGENERATION_NOT_MATCH.getLong(sourceOptions))
 334  0
           .setIfGenerationMatch(IF_SOURCE_GENERATION_MATCH.getLong(sourceOptions))
 335  0
           .setIfGenerationNotMatch(IF_SOURCE_GENERATION_NOT_MATCH.getLong(sourceOptions))
 336  0
           .setIfMetagenerationMatch(IF_METAGENERATION_MATCH.getLong(targetOptions))
 337  0
           .setIfMetagenerationNotMatch(IF_METAGENERATION_NOT_MATCH.getLong(targetOptions))
 338  0
           .setIfGenerationMatch(IF_GENERATION_MATCH.getLong(targetOptions))
 339  0
           .setIfGenerationNotMatch(IF_GENERATION_NOT_MATCH.getLong(targetOptions))
 340  0
           .execute();
 341  0
     } catch (IOException ex) {
 342  0
       throw translate(ex);
 343  
     }
 344  
   }
 345  
 
 346  
   @Override
 347  
   public byte[] load(StorageObject from, Map<Option, ?> options)
 348  
       throws StorageException {
 349  
     try {
 350  0
       Storage.Objects.Get getRequest = storage.objects()
 351  0
           .get(from.getBucket(), from.getName())
 352  0
           .setIfMetagenerationMatch(IF_METAGENERATION_MATCH.getLong(options))
 353  0
           .setIfMetagenerationNotMatch(IF_METAGENERATION_NOT_MATCH.getLong(options))
 354  0
           .setIfGenerationMatch(IF_GENERATION_MATCH.getLong(options))
 355  0
           .setIfGenerationNotMatch(IF_GENERATION_NOT_MATCH.getLong(options));
 356  0
       ByteArrayOutputStream out = new ByteArrayOutputStream();
 357  0
       getRequest.getMediaHttpDownloader().setDirectDownloadEnabled(true);
 358  0
       getRequest.executeMediaAndDownloadTo(out);
 359  0
       return out.toByteArray();
 360  0
     } catch (IOException ex) {
 361  0
       throw translate(ex);
 362  
     }
 363  
   }
 364  
 
 365  
   @Override
 366  
   public BatchResponse batch(BatchRequest request) throws StorageException {
 367  0
     com.google.api.client.googleapis.batch.BatchRequest batch = storage.batch();
 368  
     final Map<StorageObject, Tuple<Boolean, StorageException>> deletes =
 369  0
         Maps.newConcurrentMap();
 370  
     final Map<StorageObject, Tuple<StorageObject, StorageException>> updates =
 371  0
         Maps.newConcurrentMap();
 372  
     final Map<StorageObject, Tuple<StorageObject, StorageException>> gets =
 373  0
         Maps.newConcurrentMap();
 374  
     try {
 375  0
       for (final Tuple<StorageObject, Map<Option, ?>> tuple : request.toDelete) {
 376  0
         deleteRequest(tuple.x(), tuple.y()).queue(batch, new JsonBatchCallback<Void>() {
 377  
           @Override
 378  
           public void onSuccess(Void ignore, HttpHeaders responseHeaders) {
 379  0
             deletes.put(tuple.x(), Tuple.<Boolean, StorageException>of(Boolean.TRUE, null));
 380  0
           }
 381  
 
 382  
           @Override
 383  
           public void onFailure(GoogleJsonError e, HttpHeaders responseHeaders) {
 384  0
             deletes.put(tuple.x(), Tuple.<Boolean, StorageException>of(null, translate(e)));
 385  0
           }
 386  
         });
 387  0
       }
 388  0
       for (final Tuple<StorageObject, Map<Option, ?>> tuple : request.toUpdate) {
 389  0
         patchRequest(tuple.x(), tuple.y()).queue(batch, new JsonBatchCallback<StorageObject>() {
 390  
           @Override
 391  
           public void onSuccess(StorageObject storageObject, HttpHeaders responseHeaders) {
 392  0
             updates.put(tuple.x(),
 393  0
                 Tuple.<StorageObject, StorageException>of(storageObject, null));
 394  0
           }
 395  
 
 396  
           @Override
 397  
           public void onFailure(GoogleJsonError e, HttpHeaders responseHeaders) {
 398  0
             updates.put(tuple.x(),
 399  0
                 Tuple.<StorageObject, StorageException>of(null, translate(e)));
 400  0
           }
 401  
         });
 402  0
       }
 403  0
       for (final Tuple<StorageObject, Map<Option, ?>> tuple : request.toGet) {
 404  0
         getRequest(tuple.x(), tuple.y()).queue(batch, new JsonBatchCallback<StorageObject>() {
 405  
           @Override
 406  
           public void onSuccess(StorageObject storageObject, HttpHeaders responseHeaders) {
 407  0
             gets.put(tuple.x(),
 408  0
                 Tuple.<StorageObject, StorageException>of(storageObject, null));
 409  0
           }
 410  
 
 411  
           @Override
 412  
           public void onFailure(GoogleJsonError e, HttpHeaders responseHeaders) {
 413  0
             gets.put(tuple.x(),
 414  0
                 Tuple.<StorageObject, StorageException>of(null, translate(e)));
 415  0
           }
 416  
         });
 417  0
       }
 418  0
       batch.execute();
 419  0
     } catch (IOException ex) {
 420  0
       throw translate(ex);
 421  0
     }
 422  0
     return new BatchResponse(deletes, updates, gets);
 423  
   }
 424  
 
 425  
   @Override
 426  
   public byte[] read(StorageObject from, Map<Option, ?> options, long position, int bytes)
 427  
       throws StorageException {
 428  
     try {
 429  0
       Get req = storage.objects().get(from.getBucket(), from.getName());
 430  0
       req.setIfMetagenerationMatch(IF_METAGENERATION_MATCH.getLong(options))
 431  0
           .setIfMetagenerationNotMatch(IF_METAGENERATION_NOT_MATCH.getLong(options))
 432  0
           .setIfGenerationMatch(IF_GENERATION_MATCH.getLong(options))
 433  0
           .setIfGenerationNotMatch(IF_GENERATION_NOT_MATCH.getLong(options));
 434  0
       MediaHttpDownloader downloader = req.getMediaHttpDownloader();
 435  
       // todo: Fix int casting (https://github.com/google/google-api-java-client/issues/937)
 436  0
       downloader.setContentRange(position, (int) position + bytes);
 437  0
       downloader.setDirectDownloadEnabled(true);
 438  0
       ByteArrayOutputStream output = new ByteArrayOutputStream();
 439  0
       req.executeMediaAndDownloadTo(output);
 440  0
       return output.toByteArray();
 441  0
     } catch (IOException ex) {
 442  0
       throw translate(ex);
 443  
     }
 444  
   }
 445  
 
 446  
   @Override
 447  
   public void write(String uploadId, byte[] toWrite, int toWriteOffset, StorageObject dest,
 448  
       long destOffset, int length, boolean last) throws StorageException {
 449  
     try {
 450  0
       GenericUrl url = new GenericUrl(uploadId);
 451  0
       HttpRequest httpRequest = storage.getRequestFactory().buildPostRequest(url,
 452  
           new ByteArrayContent(null, toWrite, toWriteOffset, length));
 453  0
       long limit = destOffset + length;
 454  0
       StringBuilder range = new StringBuilder("bytes ");
 455  0
       range.append(destOffset).append('-').append(limit - 1).append('/');
 456  0
       if (last) {
 457  0
         range.append(limit);
 458  
       } else {
 459  0
         range.append('*');
 460  
       }
 461  0
       httpRequest.getHeaders().setContentRange(range.toString());
 462  
       int code;
 463  
       String message;
 464  0
       IOException exception = null;
 465  
       try {
 466  0
         HttpResponse response = httpRequest.execute();
 467  0
         code = response.getStatusCode();
 468  0
         message = response.getStatusMessage();
 469  0
       } catch (HttpResponseException ex) {
 470  0
         exception = ex;
 471  0
         code = ex.getStatusCode();
 472  0
         message = ex.getStatusMessage();
 473  0
       }
 474  0
       if (!last && code != 308 || last && !(code == 200 || code == 201)) {
 475  0
         if (exception != null) {
 476  0
           throw exception;
 477  
         }
 478  0
         GoogleJsonError error = new GoogleJsonError();
 479  0
         error.setCode(code);
 480  0
         error.setMessage(message);
 481  0
         throw translate(error);
 482  
       }
 483  0
     } catch (IOException ex) {
 484  0
       throw translate(ex);
 485  0
     }
 486  0
   }
 487  
 
 488  
   @Override
 489  
   public String open(StorageObject object, Map<Option, ?> options)
 490  
       throws StorageException {
 491  
     try {
 492  0
       Insert req = storage.objects().insert(object.getBucket(), object);
 493  0
       GenericUrl url = req.buildHttpRequest().getUrl();
 494  0
       String scheme = url.getScheme();
 495  0
       String host = url.getHost();
 496  0
       String path = "/upload" + url.getRawPath();
 497  0
       url = new GenericUrl(scheme + "://" + host + path);
 498  0
       url.set("uploadType", "resumable");
 499  0
       url.set("name", object.getName());
 500  0
       for (Option option : options.keySet()) {
 501  0
         Object content = option.get(options);
 502  0
         if (content != null) {
 503  0
           url.set(option.value(), content.toString());
 504  
         }
 505  0
       }
 506  0
       JsonFactory jsonFactory = storage.getJsonFactory();
 507  0
       HttpRequestFactory requestFactory = storage.getRequestFactory();
 508  0
       HttpRequest httpRequest =
 509  0
           requestFactory.buildPostRequest(url, new JsonHttpContent(jsonFactory, object));
 510  0
       httpRequest.getHeaders().set("X-Upload-Content-Type",
 511  0
           MoreObjects.firstNonNull(object.getContentType(), "application/octet-stream"));
 512  0
       HttpResponse response = httpRequest.execute();
 513  0
       if (response.getStatusCode() != 200) {
 514  0
         GoogleJsonError error = new GoogleJsonError();
 515  0
         error.setCode(response.getStatusCode());
 516  0
         error.setMessage(response.getStatusMessage());
 517  0
         throw translate(error);
 518  
       }
 519  0
       return response.getHeaders().getLocation();
 520  0
     } catch (IOException ex) {
 521  0
       throw translate(ex);
 522  
     }
 523  
   }
 524  
 }
 525  
 
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.spi.ServiceRpcFactory.html b/site/0.0.7/cobertura/com.google.gcloud.spi.ServiceRpcFactory.html new file mode 100644 index 000000000000..3b40c5dcde5c --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.spi.ServiceRpcFactory.html @@ -0,0 +1,90 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.spi.ServiceRpcFactory
+
 
+ + + + +
Classes in this File Line Coverage Branch Coverage Complexity
ServiceRpcFactory
N/A
N/A
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.spi;
 18  
 
 19  
 import com.google.gcloud.ServiceOptions;
 20  
 
 21  
 import java.io.Serializable;
 22  
 
 23  
 /**
 24  
  * A base interface for all service RPC factories.
 25  
  * Loading of a factory implementation is done via {@link java.util.ServiceLoader}.
 26  
  */
 27  
 public interface ServiceRpcFactory<
 28  
         ServiceRpcT,
 29  
         OptionsT extends ServiceOptions<ServiceRpcT, OptionsT>>
 30  
     extends Serializable {
 31  
 
 32  
   ServiceRpcT create(OptionsT options);
 33  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.spi.StorageRpc.html b/site/0.0.7/cobertura/com.google.gcloud.spi.StorageRpc.html new file mode 100644 index 000000000000..9bab46ab6230 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.spi.StorageRpc.html @@ -0,0 +1,336 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.spi.StorageRpc
+
 
+ + + + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
StorageRpc
N/A
N/A
1
StorageRpc$BatchRequest
0%
0/5
N/A
1
StorageRpc$BatchResponse
0%
0/5
N/A
1
StorageRpc$Option
0%
0/21
N/A
1
StorageRpc$Tuple
0%
0/3
N/A
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.spi;
 18  
 
 19  
 import com.google.api.services.storage.model.Bucket;
 20  
 import com.google.api.services.storage.model.StorageObject;
 21  
 import com.google.common.collect.ImmutableList;
 22  
 import com.google.common.collect.ImmutableMap;
 23  
 import com.google.gcloud.storage.StorageException;
 24  
 
 25  
 import java.util.List;
 26  
 import java.util.Map;
 27  
 
 28  
 public interface StorageRpc {
 29  
 
 30  
   // These options are part of the Google Cloud storage header options
 31  0
   enum Option {
 32  0
     PREDEFINED_ACL("predefinedAcl"),
 33  0
     PREDEFINED_DEFAULT_OBJECT_ACL("predefinedDefaultObjectAcl"),
 34  0
     IF_METAGENERATION_MATCH("ifMetagenerationMatch"),
 35  0
     IF_METAGENERATION_NOT_MATCH("ifMetagenerationNotMatch"),
 36  0
     IF_GENERATION_NOT_MATCH("ifGenerationMatch"),
 37  0
     IF_GENERATION_MATCH("ifGenerationNotMatch"),
 38  0
     IF_SOURCE_METAGENERATION_MATCH("ifSourceMetagenerationMatch"),
 39  0
     IF_SOURCE_METAGENERATION_NOT_MATCH("ifSourceMetagenerationNotMatch"),
 40  0
     IF_SOURCE_GENERATION_MATCH("ifSourceGenerationMatch"),
 41  0
     IF_SOURCE_GENERATION_NOT_MATCH("ifSourceGenerationNotMatch"),
 42  0
     PREFIX("prefix"),
 43  0
     MAX_RESULTS("maxResults"),
 44  0
     PAGE_TOKEN("pageToken"),
 45  0
     DELIMITER("delimiter"),
 46  0
     VERSIONS("versions");
 47  
 
 48  
     private final String value;
 49  
 
 50  
     Option(String value) {
 51  
       this.value = value;
 52  
     }
 53  
 
 54  
     public String value() {
 55  0
       return value;
 56  
     }
 57  
 
 58  
     @SuppressWarnings("unchecked")
 59  
     <T> T get(Map<Option, ?> options) {
 60  0
       return (T) options.get(this);
 61  
     }
 62  
 
 63  
     String getString(Map<Option, ?> options) {
 64  0
       return get(options);
 65  
     }
 66  
 
 67  
     Long getLong(Map<Option, ?> options) {
 68  0
       return get(options);
 69  
     }
 70  
 
 71  
     Boolean getBoolean(Map<Option, ?> options) {
 72  0
       return get(options);
 73  
     }
 74  
   }
 75  
 
 76  
   class Tuple<X, Y> {
 77  
 
 78  
     private final X x;
 79  
     private final Y y;
 80  
 
 81  
     private Tuple(X x, Y y) {
 82  
       this.x = x;
 83  
       this.y = y;
 84  
     }
 85  
 
 86  
     public static <X, Y> Tuple<X, Y> of(X x, Y y) {
 87  0
       return new Tuple<>(x, y);
 88  
     }
 89  
 
 90  
     public X x() {
 91  0
       return x;
 92  
     }
 93  
 
 94  
     public Y y() {
 95  0
       return y;
 96  
     }
 97  
   }
 98  
 
 99  
   class BatchRequest {
 100  
 
 101  
     public final List<Tuple<StorageObject, Map<Option, ?>>> toDelete;
 102  
     public final List<Tuple<StorageObject, Map<Option, ?>>> toUpdate;
 103  
     public final List<Tuple<StorageObject, Map<Option, ?>>> toGet;
 104  
 
 105  
     public BatchRequest(Iterable<Tuple<StorageObject, Map<Option, ?>>> toDelete,
 106  
         Iterable<Tuple<StorageObject, Map<Option, ?>>> toUpdate,
 107  0
         Iterable<Tuple<StorageObject, Map<Option, ?>>> toGet) {
 108  0
       this.toDelete = ImmutableList.copyOf(toDelete);
 109  0
       this.toUpdate = ImmutableList.copyOf(toUpdate);
 110  0
       this.toGet = ImmutableList.copyOf(toGet);
 111  0
     }
 112  
   }
 113  
 
 114  
   class BatchResponse {
 115  
 
 116  
     public final Map<StorageObject, Tuple<Boolean, StorageException>> deletes;
 117  
     public final Map<StorageObject, Tuple<StorageObject, StorageException>> updates;
 118  
     public final Map<StorageObject, Tuple<StorageObject, StorageException>> gets;
 119  
 
 120  
     public BatchResponse(Map<StorageObject, Tuple<Boolean, StorageException>> deletes,
 121  
         Map<StorageObject, Tuple<StorageObject, StorageException>> updates,
 122  0
         Map<StorageObject, Tuple<StorageObject, StorageException>> gets) {
 123  0
       this.deletes = ImmutableMap.copyOf(deletes);
 124  0
       this.updates = ImmutableMap.copyOf(updates);
 125  0
       this.gets = ImmutableMap.copyOf(gets);
 126  0
     }
 127  
   }
 128  
 
 129  
   Bucket create(Bucket bucket, Map<Option, ?> options) throws StorageException;
 130  
 
 131  
   StorageObject create(StorageObject object, byte[] content, Map<Option, ?> options)
 132  
       throws StorageException;
 133  
 
 134  
   Tuple<String, Iterable<Bucket>> list(Map<Option, ?> options) throws StorageException;
 135  
 
 136  
   Tuple<String, Iterable<StorageObject>> list(String bucket, Map<Option, ?> options)
 137  
       throws StorageException;
 138  
 
 139  
   Bucket get(Bucket bucket, Map<Option, ?> options) throws StorageException;
 140  
 
 141  
   StorageObject get(StorageObject object, Map<Option, ?> options)
 142  
       throws StorageException;
 143  
 
 144  
   Bucket patch(Bucket bucket, Map<Option, ?> options) throws StorageException;
 145  
 
 146  
   StorageObject patch(StorageObject storageObject, Map<Option, ?> options)
 147  
       throws StorageException;
 148  
 
 149  
   boolean delete(Bucket bucket, Map<Option, ?> options) throws StorageException;
 150  
 
 151  
   boolean delete(StorageObject object, Map<Option, ?> options) throws StorageException;
 152  
 
 153  
   BatchResponse batch(BatchRequest request) throws StorageException;
 154  
 
 155  
   StorageObject compose(Iterable<StorageObject> sources, StorageObject target,
 156  
       Map<Option, ?> targetOptions) throws StorageException;
 157  
 
 158  
   StorageObject copy(StorageObject source, Map<Option, ?> sourceOptions,
 159  
       StorageObject target, Map<Option, ?> targetOptions) throws StorageException;
 160  
 
 161  
   byte[] load(StorageObject storageObject, Map<Option, ?> options)
 162  
       throws StorageException;
 163  
 
 164  
   byte[] read(StorageObject from, Map<Option, ?> options, long position, int bytes)
 165  
       throws StorageException;
 166  
 
 167  
   String open(StorageObject object, Map<Option, ?> options) throws StorageException;
 168  
 
 169  
   void write(String uploadId, byte[] toWrite, int toWriteOffset, StorageObject dest,
 170  
       long destOffset, int length, boolean last) throws StorageException;
 171  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.spi.StorageRpcFactory.html b/site/0.0.7/cobertura/com.google.gcloud.spi.StorageRpcFactory.html new file mode 100644 index 000000000000..ab6fd2a8699f --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.spi.StorageRpcFactory.html @@ -0,0 +1,78 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.spi.StorageRpcFactory
+
 
+ + + + +
Classes in this File Line Coverage Branch Coverage Complexity
StorageRpcFactory
N/A
N/A
0
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.spi;
 18  
 
 19  
 import com.google.gcloud.storage.StorageOptions;
 20  
 
 21  
 /**
 22  
  * An interface for Storage RPC factory.
 23  
  * Implementation will be loaded via {@link java.util.ServiceLoader}.
 24  
  */
 25  
 public interface StorageRpcFactory extends ServiceRpcFactory<StorageRpc, StorageOptions> {
 26  
 }
 27  
 
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.storage.Acl.html b/site/0.0.7/cobertura/com.google.gcloud.storage.Acl.html new file mode 100644 index 000000000000..0d6441bb861f --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.storage.Acl.html @@ -0,0 +1,497 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.storage.Acl
+
 
+ + + + + + + + + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
Acl
0%
0/22
0%
0/10
1.903
Acl$Domain
0%
0/3
N/A
1.903
Acl$Entity
0%
0/28
0%
0/22
1.903
Acl$Entity$Type
0%
0/2
N/A
1.903
Acl$Group
0%
0/3
N/A
1.903
Acl$Project
0%
0/6
N/A
1.903
Acl$Project$ProjectRole
0%
0/2
N/A
1.903
Acl$RawEntity
0%
0/3
N/A
1.903
Acl$Role
0%
0/2
N/A
1.903
Acl$User
0%
0/9
0%
0/10
1.903
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.storage;
 18  
 
 19  
 import com.google.api.services.storage.model.BucketAccessControl;
 20  
 import com.google.api.services.storage.model.ObjectAccessControl;
 21  
 
 22  
 import java.io.Serializable;
 23  
 import java.util.Objects;
 24  
 
 25  
 /**
 26  
  *  Access Control List on for buckets or blobs.
 27  
  */
 28  
 public final class Acl implements Serializable {
 29  
 
 30  
   private static final long serialVersionUID = 6435575339887912222L;
 31  
 
 32  
   private final Entity entity;
 33  
   private final Role role;
 34  
 
 35  0
   public enum Role {
 36  0
     OWNER, READER, WRITER
 37  
   }
 38  
 
 39  
   public static abstract class Entity implements Serializable {
 40  
 
 41  
     private static final long serialVersionUID = -2707407252771255840L;
 42  
 
 43  
     private final Type type;
 44  
     private final String value;
 45  
 
 46  0
     public enum Type {
 47  0
       DOMAIN, GROUP, USER, PROJECT, UNKNOWN
 48  
     }
 49  
 
 50  
     Entity(Type type, String value) {
 51  
       this.type = type;
 52  
       this.value = value;
 53  
     }
 54  
 
 55  
     public Type type() {
 56  0
       return type;
 57  
     }
 58  
 
 59  
     protected String value() {
 60  0
       return value;
 61  
     }
 62  
 
 63  
     @Override
 64  
     public boolean equals(Object o) {
 65  0
       if (this == o) {
 66  0
         return true;
 67  
       }
 68  0
       if (o == null || getClass() != o.getClass()) {
 69  0
         return false;
 70  
       }
 71  0
       Entity entity = (Entity) o;
 72  0
       return Objects.equals(type, entity.type) &&
 73  0
           Objects.equals(value, entity.value);
 74  
     }
 75  
 
 76  
     @Override
 77  
     public int hashCode() {
 78  0
       return Objects.hash(type, value);
 79  
     }
 80  
 
 81  
     @Override
 82  
     public String toString() {
 83  0
       return toPb();
 84  
     }
 85  
 
 86  
     String toPb() {
 87  0
       return type.name().toLowerCase() + "-" + value();
 88  
     }
 89  
 
 90  
     static Entity fromPb(String entity) {
 91  0
       if (entity.startsWith("user-")) {
 92  0
         return new User(entity.substring(5));
 93  
       }
 94  0
       if (entity.equals(User.ALL_USERS)) {
 95  0
         return User.ofAllUsers();
 96  
       }
 97  0
       if (entity.equals(User.ALL_AUTHENTICATED_USERS)) {
 98  0
         return User.ofAllAuthenticatedUsers();
 99  
       }
 100  0
       if (entity.startsWith("group-")) {
 101  0
         return new Group(entity.substring(6));
 102  
       }
 103  0
       if (entity.startsWith("domain-")) {
 104  0
         return new Domain(entity.substring(7));
 105  
       }
 106  0
       if (entity.startsWith("project-")) {
 107  0
         int idx = entity.indexOf('-', 8);
 108  0
         String team = entity.substring(8, idx);
 109  0
         String projectId = entity.substring(idx + 1);
 110  0
         return new Project(Project.ProjectRole.valueOf(team.toUpperCase()), projectId);
 111  
       }
 112  0
       return new RawEntity(entity);
 113  
     }
 114  
   }
 115  
 
 116  
   public static final class Domain extends Entity {
 117  
 
 118  
     private static final long serialVersionUID = -3033025857280447253L;
 119  
 
 120  
     public Domain(String domain) {
 121  0
       super(Type.DOMAIN, domain);
 122  0
     }
 123  
 
 124  
     public String domain() {
 125  0
       return value();
 126  
     }
 127  
   }
 128  
 
 129  
   public static final class Group extends Entity {
 130  
 
 131  
     private static final long serialVersionUID = -1660987136294408826L;
 132  
 
 133  
     public Group(String email) {
 134  0
       super(Type.GROUP, email);
 135  0
     }
 136  
 
 137  
     public String email() {
 138  0
       return value();
 139  
     }
 140  
   }
 141  
 
 142  
   public static final class User extends Entity {
 143  
 
 144  
     private static final long serialVersionUID = 3076518036392737008L;
 145  
     private static final String ALL_USERS = "allUsers";
 146  
     private static final String ALL_AUTHENTICATED_USERS = "allAuthenticatedUsers";
 147  
 
 148  
     public User(String email) {
 149  0
       super(Type.USER, email);
 150  0
     }
 151  
 
 152  
     public String email() {
 153  0
       return value();
 154  
     }
 155  
 
 156  
     @Override
 157  
     String toPb() {
 158  0
       switch (value()) {
 159  
         case ALL_AUTHENTICATED_USERS:
 160  0
           return ALL_AUTHENTICATED_USERS;
 161  
         case ALL_USERS:
 162  0
           return ALL_USERS;
 163  
         default:
 164  
           break;
 165  
       }
 166  0
       return super.toPb();
 167  
     }
 168  
 
 169  
     public static User ofAllUsers() {
 170  0
       return new User(ALL_USERS);
 171  
     }
 172  
 
 173  
     public static User ofAllAuthenticatedUsers() {
 174  0
       return new User(ALL_AUTHENTICATED_USERS);
 175  
     }
 176  
   }
 177  
 
 178  
   public static final class Project extends Entity {
 179  
 
 180  
     private static final long serialVersionUID = 7933776866530023027L;
 181  
 
 182  
     private final ProjectRole pRole;
 183  
     private final String projectId;
 184  
 
 185  0
     public enum ProjectRole {
 186  0
       OWNERS, EDITORS, VIEWERS
 187  
     }
 188  
 
 189  
     public Project(ProjectRole pRole, String projectId) {
 190  0
       super(Type.PROJECT, pRole.name().toLowerCase() + "-" + projectId);
 191  0
       this.pRole = pRole;
 192  0
       this.projectId = projectId;
 193  0
     }
 194  
 
 195  
     public ProjectRole projectRole() {
 196  0
       return pRole;
 197  
     }
 198  
 
 199  
     public String projectId() {
 200  0
       return projectId;
 201  
     }
 202  
   }
 203  
 
 204  
   public static final class RawEntity extends Entity {
 205  
 
 206  
     private static final long serialVersionUID = 3966205614223053950L;
 207  
 
 208  
     RawEntity(String entity) {
 209  0
       super(Type.UNKNOWN, entity);
 210  0
     }
 211  
 
 212  
     @Override
 213  
     String toPb() {
 214  0
       return value();
 215  
     }
 216  
   }
 217  
 
 218  
   public Acl(Entity entity, Role role) {
 219  
     this.entity = entity;
 220  
     this.role = role;
 221  
   }
 222  
 
 223  
   public Entity entity() {
 224  0
     return entity;
 225  
   }
 226  
 
 227  
   public Role role() {
 228  0
     return role;
 229  
   }
 230  
 
 231  
   @Override
 232  
   public int hashCode() {
 233  0
     return Objects.hash(entity, role);
 234  
   }
 235  
 
 236  
   @Override
 237  
   public boolean equals(Object obj) {
 238  0
     if (this == obj) {
 239  0
       return true;
 240  
     }
 241  0
     if (obj == null || getClass() != obj.getClass()) {
 242  0
       return false;
 243  
     }
 244  0
     final Acl other = (Acl) obj;
 245  0
     return Objects.equals(this.entity, other.entity)
 246  0
         && Objects.equals(this.role, other.role);
 247  
   }
 248  
 
 249  
   BucketAccessControl toBucketPb() {
 250  0
     BucketAccessControl bucketPb = new BucketAccessControl();
 251  0
     bucketPb.setRole(role().toString());
 252  0
     bucketPb.setEntity(entity().toString());
 253  0
     return bucketPb;
 254  
   }
 255  
 
 256  
   ObjectAccessControl toObjectPb() {
 257  0
     ObjectAccessControl objectPb = new ObjectAccessControl();
 258  0
     objectPb.setRole(role().name());
 259  0
     objectPb.setEntity(entity().toPb());
 260  0
     return objectPb;
 261  
   }
 262  
 
 263  
   static Acl fromPb(ObjectAccessControl objectAccessControl) {
 264  0
     Role role = Role.valueOf(objectAccessControl.getRole());
 265  0
     return new Acl(Entity.fromPb(objectAccessControl.getEntity()), role);
 266  
   }
 267  
 
 268  
   static Acl fromPb(BucketAccessControl bucketAccessControl) {
 269  0
     Role role = Role.valueOf(bucketAccessControl.getRole());
 270  0
     return new Acl(Entity.fromPb(bucketAccessControl.getEntity()), role);
 271  
   }
 272  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.storage.BatchRequest.html b/site/0.0.7/cobertura/com.google.gcloud.storage.BatchRequest.html new file mode 100644 index 000000000000..36e2e86eaf21 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.storage.BatchRequest.html @@ -0,0 +1,225 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.storage.BatchRequest
+
 
+ + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
BatchRequest
0%
0/17
0%
0/8
1.333
BatchRequest$1
N/A
N/A
1.333
BatchRequest$Builder
0%
0/12
N/A
1.333
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.storage;
 18  
 
 19  
 import com.google.common.collect.ImmutableMap;
 20  
 import com.google.common.collect.Lists;
 21  
 import com.google.gcloud.storage.Storage.BlobSourceOption;
 22  
 import com.google.gcloud.storage.Storage.BlobTargetOption;
 23  
 
 24  
 import java.io.Serializable;
 25  
 import java.util.LinkedHashMap;
 26  
 import java.util.Map;
 27  
 import java.util.Objects;
 28  
 
 29  
 /**
 30  
  * Google storage batch request.
 31  
  */
 32  0
 public final class BatchRequest implements Serializable {
 33  
 
 34  
   private static final long serialVersionUID = -1527992265939800345L;
 35  
 
 36  
   private final Map<BlobInfo, Iterable<BlobSourceOption>> toDelete;
 37  
   private final Map<BlobInfo, Iterable<BlobTargetOption>> toUpdate;
 38  
   private final Map<BlobInfo, Iterable<BlobSourceOption>> toGet;
 39  
 
 40  0
   public static class Builder {
 41  
 
 42  0
     private Map<BlobInfo, Iterable<BlobSourceOption>> toDelete = new LinkedHashMap<>();
 43  0
     private Map<BlobInfo, Iterable<BlobTargetOption>> toUpdate = new LinkedHashMap<>();
 44  0
     private Map<BlobInfo, Iterable<BlobSourceOption>> toGet = new LinkedHashMap<>();
 45  
 
 46  0
     private Builder() {}
 47  
 
 48  
     /**
 49  
      * Delete the given blob.
 50  
      */
 51  
     public Builder delete(String bucket, String blob, BlobSourceOption... options) {
 52  0
       toDelete.put(BlobInfo.of(bucket, blob), Lists.newArrayList(options));
 53  0
       return this;
 54  
     }
 55  
 
 56  
     /**
 57  
      * Update the given blob.
 58  
      */
 59  
     public Builder update(BlobInfo blobInfo, BlobTargetOption... options) {
 60  0
       toUpdate.put(blobInfo, Lists.newArrayList(options));
 61  0
       return this;
 62  
     }
 63  
 
 64  
     /**
 65  
      * Retrieve metadata for the given blob.
 66  
      */
 67  
     public Builder get(String bucket, String blob, BlobSourceOption... options) {
 68  0
       toGet.put(BlobInfo.of(bucket, blob), Lists.newArrayList(options));
 69  0
       return this;
 70  
     }
 71  
 
 72  
     public BatchRequest build() {
 73  0
       return new BatchRequest(this);
 74  
     }
 75  
   }
 76  
 
 77  0
   private BatchRequest(Builder builder) {
 78  0
     toDelete = ImmutableMap.copyOf(builder.toDelete);
 79  0
     toUpdate = ImmutableMap.copyOf(builder.toUpdate);
 80  0
     toGet = ImmutableMap.copyOf(builder.toGet);
 81  0
   }
 82  
 
 83  
   @Override
 84  
   public int hashCode() {
 85  0
     return Objects.hash(toDelete, toUpdate, toGet);
 86  
   }
 87  
 
 88  
   @Override
 89  
   public boolean equals(Object obj) {
 90  0
     if (!(obj instanceof BatchRequest)) {
 91  0
       return false;
 92  
     }
 93  0
     BatchRequest other = (BatchRequest) obj;
 94  0
     return Objects.equals(toDelete, other.toDelete)
 95  0
         && Objects.equals(toUpdate, other.toUpdate)
 96  0
         && Objects.equals(toGet, other.toGet);
 97  
   }
 98  
 
 99  
   public Map<BlobInfo, Iterable<BlobSourceOption>> toDelete() {
 100  0
     return toDelete;
 101  
   }
 102  
 
 103  
   public Map<BlobInfo, Iterable<BlobTargetOption>> toUpdate() {
 104  0
     return toUpdate;
 105  
   }
 106  
 
 107  
   public Map<BlobInfo, Iterable<BlobSourceOption>> toGet() {
 108  0
     return toGet;
 109  
   }
 110  
 
 111  
   public static Builder builder() {
 112  0
     return new Builder();
 113  
   }
 114  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.storage.BatchResponse.html b/site/0.0.7/cobertura/com.google.gcloud.storage.BatchResponse.html new file mode 100644 index 000000000000..620a72a3d5b5 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.storage.BatchResponse.html @@ -0,0 +1,310 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.storage.BatchResponse
+
 
+ + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
BatchResponse
0%
0/14
0%
0/8
1.562
BatchResponse$Result
0%
0/19
0%
0/10
1.562
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.storage;
 18  
 
 19  
 import com.google.common.base.MoreObjects;
 20  
 import com.google.common.collect.ImmutableList;
 21  
 
 22  
 import java.io.Serializable;
 23  
 import java.util.List;
 24  
 import java.util.Objects;
 25  
 
 26  
 /**
 27  
  * Google Storage batch response.
 28  
  */
 29  
 public final class BatchResponse implements Serializable {
 30  
 
 31  
   private static final long serialVersionUID = 1057416839397037706L;
 32  
 
 33  
   private final List<Result<Boolean>> deleteResult;
 34  
   private final List<Result<BlobInfo>> updateResult;
 35  
   private final List<Result<BlobInfo>> getResult;
 36  
 
 37  
   public static class Result<T extends Serializable> implements Serializable {
 38  
 
 39  
     private static final long serialVersionUID = -1946539570170529094L;
 40  0
     private static final Result<Serializable> EMPTY = Result.of(null);
 41  
 
 42  
     private final T value;
 43  
     private final StorageException exception;
 44  
 
 45  
 
 46  
     public Result(T value) {
 47  
       this.value = value;
 48  
       this.exception = null;
 49  
     }
 50  
 
 51  
     public Result(StorageException exception) {
 52  
       this.exception = exception;
 53  
       this.value = null;
 54  
     }
 55  
 
 56  
     static <T extends Serializable> Result<T> of(T value) {
 57  0
       return new Result<>(value);
 58  
     }
 59  
 
 60  
     /**
 61  
      * Returns the result.
 62  
      *
 63  
      * @throws StorageException if failed
 64  
      */
 65  
     public T get() throws StorageException {
 66  0
       if (failed()) {
 67  0
         throw failure();
 68  
       }
 69  0
       return value;
 70  
     }
 71  
 
 72  
     /**
 73  
      * Returns the failure or {@code null} if was successful.
 74  
      */
 75  
     public StorageException failure() {
 76  0
       return exception;
 77  
     }
 78  
 
 79  
     /**
 80  
      * Returns {@code true} if failed, {@code false} otherwise.
 81  
      */
 82  
     public boolean failed() {
 83  0
       return exception != null;
 84  
     }
 85  
 
 86  
     @Override
 87  
     public int hashCode() {
 88  0
       return Objects.hash(value, exception);
 89  
     }
 90  
 
 91  
     @Override
 92  
     public boolean equals(Object obj) {
 93  0
       if (!(obj instanceof Result)) {
 94  0
         return false;
 95  
       }
 96  0
       Result<?> other = (Result<?>) obj;
 97  0
       return Objects.equals(value, other.value)
 98  0
           && Objects.equals(exception, other.exception);
 99  
     }
 100  
 
 101  
     @Override
 102  
     public String toString() {
 103  0
       return MoreObjects.toStringHelper(this)
 104  0
           .add("value", value)
 105  0
           .add("exception", exception)
 106  0
           .toString();
 107  
     }
 108  
 
 109  
     static <T extends Serializable> Result<T> empty() {
 110  
       @SuppressWarnings("unchecked")
 111  0
       Result<T> result = (Result<T>) EMPTY;
 112  0
       return result;
 113  
     }
 114  
   }
 115  
 
 116  
   public BatchResponse(List<Result<Boolean>> deleteResult, List<Result<BlobInfo>> updateResult,
 117  0
       List<Result<BlobInfo>> getResult) {
 118  0
     this.deleteResult = ImmutableList.copyOf(deleteResult);
 119  0
     this.updateResult = ImmutableList.copyOf(updateResult);
 120  0
     this.getResult = ImmutableList.copyOf(getResult);
 121  0
   }
 122  
 
 123  
   @Override
 124  
   public int hashCode() {
 125  0
     return Objects.hash(deleteResult, updateResult, getResult);
 126  
   }
 127  
 
 128  
   @Override
 129  
   public boolean equals(Object obj) {
 130  0
     if (!(obj instanceof BatchResponse)) {
 131  0
       return false;
 132  
     }
 133  0
     BatchResponse other = (BatchResponse) obj;
 134  0
     return Objects.equals(deleteResult, other.deleteResult)
 135  0
         && Objects.equals(updateResult, other.updateResult)
 136  0
         && Objects.equals(updateResult, other.updateResult);
 137  
   }
 138  
 
 139  
   /**
 140  
    * Returns the results for the delete operations using the request order.
 141  
    */
 142  
   public List<Result<Boolean>> deletes() {
 143  0
     return deleteResult;
 144  
   }
 145  
 
 146  
   /**
 147  
    * Returns the results for the update operations using the request order.
 148  
    */
 149  
   public List<Result<BlobInfo>> updates() {
 150  0
     return updateResult;
 151  
   }
 152  
 
 153  
   /**
 154  
    * Returns the results for the get operations using the request order.
 155  
    */
 156  
   public List<Result<BlobInfo>> gets() {
 157  
     return getResult;
 158  
   }
 159  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.storage.BlobInfo.html b/site/0.0.7/cobertura/com.google.gcloud.storage.BlobInfo.html new file mode 100644 index 000000000000..9e03d3363d66 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.storage.BlobInfo.html @@ -0,0 +1,812 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.storage.BlobInfo
+
 
+ + + + + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
BlobInfo
0%
0/145
0%
0/38
1.367
BlobInfo$1
0%
0/2
N/A
1.367
BlobInfo$2
0%
0/2
N/A
1.367
BlobInfo$3
0%
0/2
N/A
1.367
BlobInfo$4
0%
0/2
N/A
1.367
BlobInfo$Builder
0%
0/48
0%
0/4
1.367
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.storage;
 18  
 
 19  
 import static com.google.common.base.MoreObjects.firstNonNull;
 20  
 import static com.google.common.base.Preconditions.checkNotNull;
 21  
 
 22  
 import com.google.api.client.util.Data;
 23  
 import com.google.api.client.util.DateTime;
 24  
 import com.google.api.services.storage.model.ObjectAccessControl;
 25  
 import com.google.api.services.storage.model.StorageObject;
 26  
 import com.google.api.services.storage.model.StorageObject.Owner;
 27  
 import com.google.common.base.Function;
 28  
 import com.google.common.base.MoreObjects;
 29  
 import com.google.common.collect.ImmutableList;
 30  
 import com.google.common.collect.ImmutableMap;
 31  
 import com.google.common.collect.Lists;
 32  
 
 33  
 import java.io.Serializable;
 34  
 import java.math.BigInteger;
 35  
 import java.util.List;
 36  
 import java.util.Map;
 37  
 import java.util.Objects;
 38  
 
 39  
 /**
 40  
  * A Google Storage object.
 41  
  *
 42  
  * @see <a href="https://cloud.google.com/storage/docs/concepts-techniques#concepts">Concepts and Terminology</a>
 43  
  */
 44  0
 public final class BlobInfo implements Serializable {
 45  
 
 46  
   private static final long serialVersionUID = 2228487739943277159L;
 47  
 
 48  0
   static final Function<StorageObject, BlobInfo> FROM_PB_FUNCTION =
 49  0
       new Function<StorageObject, BlobInfo>() {
 50  
         @Override
 51  
         public BlobInfo apply(StorageObject pb) {
 52  0
           return BlobInfo.fromPb(pb);
 53  
         }
 54  
       };
 55  
 
 56  0
   static final Function<BlobInfo, StorageObject> TO_PB_FUNCTION =
 57  0
       new Function<BlobInfo, StorageObject>() {
 58  
         @Override
 59  
         public StorageObject apply(BlobInfo blobInfo) {
 60  0
           return blobInfo.toPb();
 61  
         }
 62  
       };
 63  
 
 64  
   private final String bucket;
 65  
   private final String id;
 66  
   private final String name;
 67  
   private final String selfLink;
 68  
   private final String cacheControl;
 69  
   private final List<Acl> acl;
 70  
   private final Acl.Entity owner;
 71  
   private final Long size;
 72  
   private final String etag;
 73  
   private final String md5;
 74  
   private final String crc32c;
 75  
   private final String mediaLink;
 76  
   private final Map<String, String> metadata;
 77  
   private final Long generation;
 78  
   private final Long metageneration;
 79  
   private final Long deleteTime;
 80  
   private final Long updateTime;
 81  
   private final String contentType;
 82  
   private final String contentEncoding;
 83  
   private final String contentDisposition;
 84  
   private final String contentLanguage;
 85  
   private final Integer componentCount;
 86  
 
 87  0
   public static final class Builder {
 88  
 
 89  
     private String bucket;
 90  
     private String id;
 91  
     private String name;
 92  
     private String contentType;
 93  
     private String contentEncoding;
 94  
     private String contentDisposition;
 95  
     private String contentLanguage;
 96  
     private Integer componentCount;
 97  
     private String cacheControl;
 98  
     private ImmutableList<Acl> acl;
 99  
     private Acl.Entity owner;
 100  
     private Long size;
 101  
     private String etag;
 102  
     private String selfLink;
 103  
     private String md5;
 104  
     private String crc32c;
 105  
     private String mediaLink;
 106  
     private ImmutableMap<String, String> metadata;
 107  
     private Long generation;
 108  
     private Long metageneration;
 109  
     private Long deleteTime;
 110  
     private Long updateTime;
 111  
 
 112  
     private Builder() {}
 113  
 
 114  
     public Builder bucket(String bucket) {
 115  0
       this.bucket = checkNotNull(bucket);
 116  0
       return this;
 117  
     }
 118  
 
 119  
     Builder id(String id) {
 120  0
       this.id = id;
 121  0
       return this;
 122  
     }
 123  
 
 124  
     public Builder name(String name) {
 125  0
       this.name = checkNotNull(name);
 126  0
       return this;
 127  
     }
 128  
 
 129  
     public Builder contentType(String contentType) {
 130  0
       this.contentType = firstNonNull(contentType, Data.<String>nullOf(String.class));
 131  0
       return this;
 132  
     }
 133  
 
 134  
     public Builder contentDisposition(String contentDisposition) {
 135  0
       this.contentDisposition = firstNonNull(contentDisposition, Data.<String>nullOf(String.class));
 136  0
       return this;
 137  
     }
 138  
 
 139  
     public Builder contentLanguage(String contentLanguage) {
 140  0
       this.contentLanguage = firstNonNull(contentLanguage, Data.<String>nullOf(String.class));
 141  0
       return this;
 142  
     }
 143  
 
 144  
     public Builder contentEncoding(String contentEncoding) {
 145  0
       this.contentEncoding = firstNonNull(contentEncoding, Data.<String>nullOf(String.class));
 146  0
       return this;
 147  
     }
 148  
 
 149  
     Builder componentCount(Integer componentCount) {
 150  0
       this.componentCount = componentCount;
 151  0
       return this;
 152  
     }
 153  
 
 154  
     public Builder cacheControl(String cacheControl) {
 155  0
       this.cacheControl = firstNonNull(cacheControl, Data.<String>nullOf(String.class));
 156  0
       return this;
 157  
     }
 158  
 
 159  
     public Builder acl(List<Acl> acl) {
 160  0
       this.acl = acl != null ? ImmutableList.copyOf(acl) : null;
 161  0
       return this;
 162  
     }
 163  
 
 164  
     Builder owner(Acl.Entity owner) {
 165  0
       this.owner = owner;
 166  0
       return this;
 167  
     }
 168  
 
 169  
     Builder size(Long size) {
 170  0
       this.size = size;
 171  0
       return this;
 172  
     }
 173  
 
 174  
     Builder etag(String etag) {
 175  0
       this.etag = etag;
 176  0
       return this;
 177  
     }
 178  
 
 179  
     Builder selfLink(String selfLink) {
 180  0
       this.selfLink = selfLink;
 181  0
       return this;
 182  
     }
 183  
 
 184  
     public Builder md5(String md5) {
 185  0
       this.md5 = firstNonNull(md5, Data.<String>nullOf(String.class));
 186  0
       return this;
 187  
     }
 188  
 
 189  
     public Builder crc32c(String crc32c) {
 190  0
       this.crc32c = firstNonNull(crc32c, Data.<String>nullOf(String.class));
 191  0
       return this;
 192  
     }
 193  
 
 194  
     Builder mediaLink(String mediaLink) {
 195  0
       this.mediaLink = mediaLink;
 196  0
       return this;
 197  
     }
 198  
 
 199  
     public Builder metadata(Map<String, String> metadata) {
 200  0
       this.metadata = metadata != null ? ImmutableMap.copyOf(metadata) : null;
 201  0
       return this;
 202  
     }
 203  
 
 204  
     Builder generation(Long generation) {
 205  0
       this.generation = generation;
 206  0
       return this;
 207  
     }
 208  
 
 209  
     Builder metageneration(Long metageneration) {
 210  0
       this.metageneration = metageneration;
 211  0
       return this;
 212  
     }
 213  
 
 214  
     Builder deleteTime(Long deleteTime) {
 215  0
       this.deleteTime = deleteTime;
 216  0
       return this;
 217  
     }
 218  
 
 219  
     Builder updateTime(Long updateTime) {
 220  0
       this.updateTime = updateTime;
 221  0
       return this;
 222  
     }
 223  
 
 224  
     public BlobInfo build() {
 225  0
       checkNotNull(bucket);
 226  0
       checkNotNull(name);
 227  0
       return new BlobInfo(this);
 228  
     }
 229  
   }
 230  
 
 231  0
   private BlobInfo(Builder builder) {
 232  0
     bucket = builder.bucket;
 233  0
     name = builder.name;
 234  0
     id = builder.id;
 235  0
     cacheControl = builder.cacheControl;
 236  0
     contentEncoding = builder.contentEncoding;
 237  0
     contentType = builder.contentType;
 238  0
     contentDisposition = builder.contentDisposition;
 239  0
     contentLanguage = builder.contentLanguage;
 240  0
     componentCount = builder.componentCount;
 241  0
     acl = builder.acl;
 242  0
     owner = builder.owner;
 243  0
     size = builder.size;
 244  0
     etag = builder.etag;
 245  0
     selfLink = builder.selfLink;
 246  0
     md5 = builder.md5;
 247  0
     crc32c = builder.crc32c;
 248  0
     mediaLink = builder.mediaLink;
 249  0
     metadata = builder.metadata;
 250  0
     generation = builder.generation;
 251  0
     metageneration = builder.metageneration;
 252  0
     deleteTime = builder.deleteTime;
 253  0
     updateTime = builder.updateTime;
 254  0
   }
 255  
 
 256  
   public String bucket() {
 257  0
     return bucket;
 258  
   }
 259  
 
 260  
   public String id() {
 261  0
     return id;
 262  
   }
 263  
 
 264  
   public String name() {
 265  0
     return name;
 266  
   }
 267  
 
 268  
   public String cacheControl() {
 269  0
     return Data.isNull(cacheControl) ? null : cacheControl;
 270  
   }
 271  
 
 272  
   public List<Acl> acl() {
 273  0
     return acl;
 274  
   }
 275  
 
 276  
   public Acl.Entity owner() {
 277  0
     return owner;
 278  
   }
 279  
 
 280  
   public Long size() {
 281  0
     return size;
 282  
   }
 283  
 
 284  
   public String contentType() {
 285  0
     return Data.isNull(contentType) ? null : contentType;
 286  
   }
 287  
 
 288  
   public String contentEncoding() {
 289  0
     return Data.isNull(contentEncoding) ? null : contentEncoding;
 290  
   }
 291  
 
 292  
   public String contentDisposition() {
 293  0
     return Data.isNull(contentDisposition) ? null : contentDisposition;
 294  
   }
 295  
 
 296  
   public String contentLanguage() {
 297  0
     return Data.isNull(contentLanguage) ? null : contentLanguage;
 298  
   }
 299  
 
 300  
   public Integer componentCount() {
 301  0
     return componentCount;
 302  
   }
 303  
 
 304  
   public String etag() {
 305  0
     return etag;
 306  
   }
 307  
 
 308  
   public String selfLink() {
 309  0
     return selfLink;
 310  
   }
 311  
 
 312  
   public String md5() {
 313  0
     return Data.isNull(md5) ? null : md5;
 314  
   }
 315  
 
 316  
   public String crc32c() {
 317  0
     return Data.isNull(crc32c) ? null : crc32c;
 318  
   }
 319  
 
 320  
   public String mediaLink() {
 321  0
     return mediaLink;
 322  
   }
 323  
 
 324  
   public Map<String, String> metadata() {
 325  0
     return metadata;
 326  
   }
 327  
 
 328  
   public Long generation() {
 329  0
     return generation;
 330  
   }
 331  
 
 332  
   public Long metageneration() {
 333  0
     return metageneration;
 334  
   }
 335  
 
 336  
   public Long deleteTime() {
 337  0
     return deleteTime;
 338  
   }
 339  
 
 340  
   public Long updateTime() {
 341  0
     return updateTime;
 342  
   }
 343  
 
 344  
   public Builder toBuilder() {
 345  0
     return new Builder()
 346  0
         .bucket(bucket)
 347  0
         .name(name)
 348  0
         .id(id)
 349  0
         .generation(generation)
 350  0
         .cacheControl(cacheControl)
 351  0
         .contentEncoding(contentEncoding)
 352  0
         .contentType(contentType)
 353  0
         .contentDisposition(contentDisposition)
 354  0
         .contentLanguage(contentLanguage)
 355  0
         .componentCount(componentCount)
 356  0
         .crc32c(crc32c)
 357  0
         .md5(md5)
 358  0
         .deleteTime(deleteTime)
 359  0
         .updateTime(updateTime)
 360  0
         .mediaLink(mediaLink)
 361  0
         .metadata(metadata)
 362  0
         .metageneration(metageneration)
 363  0
         .acl(acl)
 364  0
         .owner(owner)
 365  0
         .size(size)
 366  0
         .etag(etag)
 367  0
         .selfLink(selfLink);
 368  
   }
 369  
 
 370  
   @Override
 371  
   public String toString() {
 372  0
     return MoreObjects.toStringHelper(this)
 373  0
         .add("bucket", bucket())
 374  0
         .add("name", name())
 375  0
         .add("size", size())
 376  0
         .add("content-type", contentType())
 377  0
         .add("metadata", metadata())
 378  0
         .toString();
 379  
   }
 380  
 
 381  
   public static BlobInfo of(String bucket, String name) {
 382  0
     return builder(bucket, name).build();
 383  
   }
 384  
 
 385  
   public static Builder builder(BucketInfo bucketInfo, String name) {
 386  0
     return builder(bucketInfo.name(), name);
 387  
   }
 388  
 
 389  
   public static Builder builder(String bucket, String name) {
 390  0
     return new Builder().bucket(bucket).name(name);
 391  
   }
 392  
 
 393  
   @Override
 394  
   public int hashCode() {
 395  0
     return Objects.hash(bucket, name);
 396  
   }
 397  
 
 398  
   @Override
 399  
   public boolean equals(Object obj) {
 400  0
     if (!(obj instanceof BlobInfo)) {
 401  0
       return  false;
 402  
     }
 403  0
     return Objects.equals(toPb(), ((BlobInfo) obj).toPb());
 404  
   }
 405  
 
 406  
   StorageObject toPb() {
 407  0
     StorageObject storageObject = new StorageObject();
 408  0
     if (acl != null) {
 409  0
       storageObject.setAcl(Lists.transform(acl, new Function<Acl, ObjectAccessControl>() {
 410  
         @Override
 411  
         public ObjectAccessControl apply(Acl acl) {
 412  0
           return acl.toObjectPb();
 413  
         }
 414  
       }));
 415  
     }
 416  0
     if (deleteTime != null) {
 417  0
       storageObject.setTimeDeleted(new DateTime(deleteTime));
 418  
     }
 419  0
     if (updateTime != null) {
 420  0
       storageObject.setUpdated(new DateTime(updateTime));
 421  
     }
 422  0
     if (size != null) {
 423  0
       storageObject.setSize(BigInteger.valueOf(size));
 424  
     }
 425  0
     if (owner != null) {
 426  0
       storageObject.setOwner(new Owner().setEntity(owner.toPb()));
 427  
     }
 428  0
     storageObject.setBucket(bucket);
 429  0
     storageObject.setCacheControl(cacheControl);
 430  0
     storageObject.setContentEncoding(contentEncoding);
 431  0
     storageObject.setCrc32c(crc32c);
 432  0
     storageObject.setContentType(contentType);
 433  0
     storageObject.setGeneration(generation);
 434  0
     storageObject.setMd5Hash(md5);
 435  0
     storageObject.setMediaLink(mediaLink);
 436  0
     storageObject.setMetadata(metadata);
 437  0
     storageObject.setMetageneration(metageneration);
 438  0
     storageObject.setName(name);
 439  0
     storageObject.setContentDisposition(contentDisposition);
 440  0
     storageObject.setComponentCount(componentCount);
 441  0
     storageObject.setContentLanguage(contentLanguage);
 442  0
     storageObject.setEtag(etag);
 443  0
     storageObject.setId(id);
 444  0
     storageObject.setSelfLink(selfLink);
 445  0
     return storageObject;
 446  
   }
 447  
 
 448  
   static BlobInfo fromPb(StorageObject storageObject) {
 449  0
     Builder builder = new Builder()
 450  0
         .bucket(storageObject.getBucket())
 451  0
         .cacheControl(storageObject.getCacheControl())
 452  0
         .contentEncoding(storageObject.getContentEncoding())
 453  0
         .crc32c(storageObject.getCrc32c())
 454  0
         .contentType(storageObject.getContentType())
 455  0
         .generation(storageObject.getGeneration())
 456  0
         .md5(storageObject.getMd5Hash())
 457  0
         .mediaLink(storageObject.getMediaLink())
 458  0
         .metageneration(storageObject.getMetageneration())
 459  0
         .name(storageObject.getName())
 460  0
         .contentDisposition(storageObject.getContentDisposition())
 461  0
         .componentCount(storageObject.getComponentCount())
 462  0
         .contentLanguage(storageObject.getContentLanguage())
 463  0
         .etag(storageObject.getEtag())
 464  0
         .id(storageObject.getId())
 465  0
         .selfLink(storageObject.getSelfLink());
 466  0
     if (storageObject.getMetadata() != null) {
 467  0
       builder.metadata(storageObject.getMetadata());
 468  
     }
 469  0
     if (storageObject.getTimeDeleted() != null) {
 470  0
       builder.deleteTime(storageObject.getTimeDeleted().getValue());
 471  
     }
 472  0
     if (storageObject.getUpdated() != null) {
 473  0
       builder.updateTime(storageObject.getUpdated().getValue());
 474  
     }
 475  0
     if (storageObject.getSize() != null) {
 476  0
       builder.size(storageObject.getSize().longValue());
 477  
     }
 478  0
     if (storageObject.getOwner() != null) {
 479  0
       builder.owner(Acl.Entity.fromPb(storageObject.getOwner().getEntity()));
 480  
     }
 481  0
     if (storageObject.getAcl() != null) {
 482  0
       builder.acl(Lists.transform(storageObject.getAcl(), new Function<ObjectAccessControl, Acl>() {
 483  
         @Override
 484  
         public Acl apply(ObjectAccessControl objectAccessControl) {
 485  0
           return Acl.fromPb(objectAccessControl);
 486  
         }
 487  
       }));
 488  
     }
 489  0
     return builder.build();
 490  
   }
 491  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.storage.BlobReadChannel.html b/site/0.0.7/cobertura/com.google.gcloud.storage.BlobReadChannel.html new file mode 100644 index 000000000000..e708a7d21e40 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.storage.BlobReadChannel.html @@ -0,0 +1,122 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.storage.BlobReadChannel
+
 
+ + + + +
Classes in this File Line Coverage Branch Coverage Complexity
BlobReadChannel
N/A
N/A
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.storage;
 18  
 
 19  
 import java.io.Closeable;
 20  
 import java.io.IOException;
 21  
 import java.io.Serializable;
 22  
 import java.nio.channels.ReadableByteChannel;
 23  
 
 24  
 /**
 25  
  * A channel for reading data from a Google Cloud Storage object.
 26  
  *
 27  
  * Implementations of this class may buffer data internally to reduce remote calls.
 28  
  *
 29  
  * This class is @{link Serializable}, which allows incremental reads.
 30  
  */
 31  
 public interface BlobReadChannel extends ReadableByteChannel, Serializable, Closeable {
 32  
 
 33  
   /**
 34  
    * Overridden to remove IOException.
 35  
    *
 36  
    * @see java.nio.channels.Channel#close()
 37  
    */
 38  
   @Override
 39  
   void close();
 40  
 
 41  
   void seek(int position) throws IOException;
 42  
 
 43  
   /**
 44  
    * Sets the minimum size that will be read by a single RPC.
 45  
    * Read data will be locally buffered until consumed.
 46  
    */
 47  
   void chunkSize(int chunkSize);
 48  
 
 49  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.storage.BlobReadChannelImpl.html b/site/0.0.7/cobertura/com.google.gcloud.storage.BlobReadChannelImpl.html new file mode 100644 index 000000000000..ddb619d2915b --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.storage.BlobReadChannelImpl.html @@ -0,0 +1,259 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.storage.BlobReadChannelImpl
+
 
+ + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
BlobReadChannelImpl
0%
0/57
0%
0/18
2.091
BlobReadChannelImpl$1
0%
0/2
N/A
2.091
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.storage;
 18  
 
 19  
 import static com.google.gcloud.RetryHelper.runWithRetries;
 20  
 
 21  
 import com.google.api.services.storage.model.StorageObject;
 22  
 import com.google.gcloud.spi.StorageRpc;
 23  
 
 24  
 import java.io.IOException;
 25  
 import java.io.ObjectInputStream;
 26  
 import java.io.ObjectOutputStream;
 27  
 import java.nio.ByteBuffer;
 28  
 import java.util.Map;
 29  
 import java.util.concurrent.Callable;
 30  
 
 31  
 /**
 32  
  * Default implementation for BlobReadChannel.
 33  
  */
 34  0
 class BlobReadChannelImpl implements BlobReadChannel {
 35  
 
 36  
   private static final int DEFAULT_CHUNK_SIZE = 2 * 1024 * 1024;
 37  
   private static final long serialVersionUID = 4821762590742862669L;
 38  
 
 39  
   private final StorageOptions serviceOptions;
 40  
   private final BlobInfo blobInfo;
 41  
   private final Map<StorageRpc.Option, ?> requestOptions;
 42  
   private int position;
 43  
   private boolean isOpen;
 44  
   private boolean endOfStream;
 45  0
   private int chunkSize = DEFAULT_CHUNK_SIZE;
 46  
 
 47  
   private transient StorageRpc storageRpc;
 48  
   private transient StorageObject storageObject;
 49  
   private transient int bufferPos;
 50  
   private transient byte[] buffer;
 51  
 
 52  
   BlobReadChannelImpl(StorageOptions serviceOptions, BlobInfo blobInfo,
 53  0
       Map<StorageRpc.Option, ?> requestOptions) {
 54  0
     this.serviceOptions = serviceOptions;
 55  0
     this.blobInfo = blobInfo;
 56  0
     this.requestOptions = requestOptions;
 57  0
     isOpen = true;
 58  0
     initTransients();
 59  0
   }
 60  
 
 61  
   private void writeObject(ObjectOutputStream out) throws IOException {
 62  0
     if (buffer != null) {
 63  0
       position += bufferPos;
 64  0
       buffer = null;
 65  0
       bufferPos = 0;
 66  0
       endOfStream = false;
 67  
     }
 68  0
     out.defaultWriteObject();
 69  0
   }
 70  
 
 71  
   private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
 72  0
     in.defaultReadObject();
 73  0
     initTransients();
 74  0
   }
 75  
 
 76  
   private void initTransients() {
 77  0
     storageRpc = serviceOptions.storageRpc();
 78  0
     storageObject = blobInfo.toPb();
 79  0
   }
 80  
 
 81  
   @Override
 82  
   public boolean isOpen() {
 83  
     return isOpen;
 84  
   }
 85  
 
 86  
   @Override
 87  
   public void close() {
 88  0
     if (isOpen) {
 89  0
       buffer = null;
 90  0
       isOpen = false;
 91  
     }
 92  0
   }
 93  
 
 94  
   private void validateOpen() throws IOException {
 95  0
     if (!isOpen) {
 96  0
       throw new IOException("stream is closed");
 97  
     }
 98  0
   }
 99  
 
 100  
   @Override
 101  
   public void seek(int position) throws IOException {
 102  0
     validateOpen();
 103  0
     this.position = position;
 104  0
     buffer = null;
 105  0
     bufferPos = 0;
 106  0
     endOfStream = false;
 107  0
   }
 108  
 
 109  
   @Override
 110  
   public void chunkSize(int chunkSize) {
 111  0
     this.chunkSize = chunkSize <= 0 ? DEFAULT_CHUNK_SIZE : chunkSize;
 112  0
   }
 113  
 
 114  
   @Override
 115  
   public int read(ByteBuffer byteBuffer) throws IOException {
 116  0
     validateOpen();
 117  0
     if (buffer == null) {
 118  0
       if (endOfStream) {
 119  0
         return -1;
 120  
       }
 121  0
       final int toRead = Math.max(byteBuffer.remaining(), chunkSize);
 122  0
       buffer = runWithRetries(new Callable<byte[]>() {
 123  
         @Override
 124  
         public byte[] call() {
 125  0
           return storageRpc.read(storageObject, requestOptions, position, toRead);
 126  
         }
 127  0
       }, serviceOptions.retryParams(), StorageImpl.EXCEPTION_HANDLER);
 128  0
       if (toRead > buffer.length) {
 129  0
         endOfStream = true;
 130  0
         if (buffer.length == 0) {
 131  0
           buffer = null;
 132  0
           return -1;
 133  
         }
 134  
       }
 135  
     }
 136  0
     int toWrite = Math.min(buffer.length - bufferPos, byteBuffer.remaining());
 137  0
     byteBuffer.put(buffer, bufferPos, toWrite);
 138  0
     bufferPos += toWrite;
 139  0
     if (bufferPos >= buffer.length) {
 140  0
       position += buffer.length;
 141  0
       buffer = null;
 142  0
       bufferPos = 0;
 143  
     }
 144  0
     return toWrite;
 145  
   }
 146  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.storage.BlobWriteChannel.html b/site/0.0.7/cobertura/com.google.gcloud.storage.BlobWriteChannel.html new file mode 100644 index 000000000000..41d988fe7e66 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.storage.BlobWriteChannel.html @@ -0,0 +1,98 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.storage.BlobWriteChannel
+
 
+ + + + +
Classes in this File Line Coverage Branch Coverage Complexity
BlobWriteChannel
N/A
N/A
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.storage;
 18  
 
 19  
 import java.io.Closeable;
 20  
 import java.io.Serializable;
 21  
 import java.nio.channels.WritableByteChannel;
 22  
 
 23  
 /**
 24  
  * A channel for writing data to a Google Cloud Storage object.
 25  
  *
 26  
  * Implementations of this class may further buffer data internally to reduce remote calls. Written
 27  
  * data will only be visible after calling {@link #close()}. This class is serializable, to allow
 28  
  * incremental writes.
 29  
  */
 30  
 public interface BlobWriteChannel extends WritableByteChannel, Serializable, Closeable {
 31  
 
 32  
   /**
 33  
    * Sets the minimum size that will be written by a single RPC.
 34  
    * Written data will be buffered and only flushed upon reaching this size or closing the channel.
 35  
    */
 36  
   void chunkSize(int chunkSize);
 37  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.storage.BlobWriterChannelImpl.html b/site/0.0.7/cobertura/com.google.gcloud.storage.BlobWriterChannelImpl.html new file mode 100644 index 000000000000..c898a2d2a3e5 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.storage.BlobWriterChannelImpl.html @@ -0,0 +1,256 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.storage.BlobWriterChannelImpl
+
 
+ + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
BlobWriterChannelImpl
0%
0/54
0%
0/18
1.833
BlobWriterChannelImpl$1
0%
0/2
N/A
1.833
BlobWriterChannelImpl$2
0%
0/2
N/A
1.833
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.storage;
 18  
 
 19  
 import static com.google.gcloud.RetryHelper.runWithRetries;
 20  
 import static java.util.concurrent.Executors.callable;
 21  
 
 22  
 import com.google.api.services.storage.model.StorageObject;
 23  
 import com.google.gcloud.spi.StorageRpc;
 24  
 
 25  
 import java.io.IOException;
 26  
 import java.io.ObjectInputStream;
 27  
 import java.io.ObjectOutputStream;
 28  
 import java.nio.ByteBuffer;
 29  
 import java.util.Arrays;
 30  
 import java.util.Map;
 31  
 
 32  
 /**
 33  
  * Default implementation for BlobWriteChannel.
 34  
  */
 35  0
 class BlobWriterChannelImpl implements BlobWriteChannel {
 36  
 
 37  
   private static final long serialVersionUID = 8675286882724938737L;
 38  
   private static final int MIN_CHUNK_SIZE = 256 * 1024;
 39  
   private static final int DEFAULT_CHUNK_SIZE = 8 * MIN_CHUNK_SIZE;
 40  
 
 41  
   private final StorageOptions options;
 42  
   private final BlobInfo blobInfo;
 43  
   private final String uploadId;
 44  
   private int position;
 45  0
   private byte[] buffer = new byte[0];
 46  
   private int limit;
 47  0
   private boolean isOpen = true;
 48  0
   private int chunkSize = DEFAULT_CHUNK_SIZE;
 49  
 
 50  
   private transient StorageRpc storageRpc;
 51  
   private transient StorageObject storageObject;
 52  
 
 53  
   BlobWriterChannelImpl(StorageOptions options, BlobInfo blobInfo,
 54  0
       Map<StorageRpc.Option, ?> optionsMap) {
 55  0
     this.options = options;
 56  0
     this.blobInfo = blobInfo;
 57  0
     initTransients();
 58  0
     uploadId = options.storageRpc().open(storageObject, optionsMap);
 59  0
   }
 60  
 
 61  
   private void writeObject(ObjectOutputStream out) throws IOException {
 62  0
     if (isOpen) {
 63  0
       flush(true);
 64  
     }
 65  0
     out.defaultWriteObject();
 66  0
   }
 67  
 
 68  
   private void flush(boolean compact) {
 69  0
     if (limit >= chunkSize || compact && limit >= MIN_CHUNK_SIZE) {
 70  0
       final int length = limit - limit % MIN_CHUNK_SIZE;
 71  0
       runWithRetries(callable(new Runnable() {
 72  
         @Override
 73  
         public void run() {
 74  0
           storageRpc.write(uploadId, buffer, 0, storageObject, position, length, false);
 75  0
         }
 76  0
       }), options.retryParams(), StorageImpl.EXCEPTION_HANDLER);
 77  0
       position += length;
 78  0
       limit -= length;
 79  0
       byte[] temp = new byte[compact ? limit : chunkSize];
 80  0
       System.arraycopy(buffer, length, temp, 0, limit);
 81  0
       buffer = temp;
 82  
     }
 83  0
   }
 84  
 
 85  
   private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
 86  0
     in.defaultReadObject();
 87  0
     if (isOpen) {
 88  0
       initTransients();
 89  
     }
 90  0
   }
 91  
 
 92  
   private void initTransients() {
 93  0
     storageRpc = options.storageRpc();
 94  0
     storageObject = blobInfo.toPb();
 95  0
   }
 96  
 
 97  
   private void validateOpen() throws IOException {
 98  0
     if (!isOpen) {
 99  0
       throw new IOException("stream is closed");
 100  
     }
 101  0
   }
 102  
 
 103  
   @Override
 104  
   public int write(ByteBuffer byteBuffer) throws IOException {
 105  0
     validateOpen();
 106  0
     int toWrite = byteBuffer.remaining();
 107  0
     int spaceInBuffer = buffer.length - limit;
 108  0
     if (spaceInBuffer >= toWrite) {
 109  0
       byteBuffer.get(buffer, limit, toWrite);
 110  
     } else {
 111  0
       buffer = Arrays.copyOf(buffer, Math.max(chunkSize, buffer.length + toWrite - spaceInBuffer));
 112  0
       byteBuffer.get(buffer, limit, toWrite);
 113  
     }
 114  0
     limit += toWrite;
 115  0
     flush(false);
 116  0
     return toWrite;
 117  
   }
 118  
 
 119  
   @Override
 120  
   public boolean isOpen() {
 121  
     return isOpen;
 122  
   }
 123  
 
 124  
   @Override
 125  
   public void close() throws IOException {
 126  0
     if (isOpen) {
 127  0
       runWithRetries(callable(new Runnable() {
 128  
         @Override
 129  
         public void run() {
 130  0
           storageRpc.write(uploadId, buffer, 0, storageObject, position, limit, true);
 131  0
         }
 132  0
       }), options.retryParams(), StorageImpl.EXCEPTION_HANDLER);
 133  0
       position += buffer.length;
 134  0
       isOpen = false;
 135  0
       buffer = null;
 136  
     }
 137  0
   }
 138  
 
 139  
   @Override
 140  
   public void chunkSize(int chunkSize) {
 141  0
     chunkSize = (chunkSize / MIN_CHUNK_SIZE) * MIN_CHUNK_SIZE;
 142  0
     this.chunkSize = Math.max(MIN_CHUNK_SIZE, chunkSize);
 143  0
   }
 144  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.storage.BucketInfo.html b/site/0.0.7/cobertura/com.google.gcloud.storage.BucketInfo.html new file mode 100644 index 000000000000..0576b25f3dae --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.storage.BucketInfo.html @@ -0,0 +1,1266 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.storage.BucketInfo
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
BucketInfo
0%
0/123
0%
0/54
1.587
BucketInfo$1
0%
0/2
N/A
1.587
BucketInfo$2
0%
0/2
N/A
1.587
BucketInfo$3
0%
0/2
N/A
1.587
BucketInfo$4
0%
0/2
N/A
1.587
BucketInfo$5
0%
0/2
N/A
1.587
BucketInfo$6
0%
0/2
N/A
1.587
BucketInfo$7
0%
0/2
N/A
1.587
BucketInfo$8
0%
0/2
N/A
1.587
BucketInfo$AgeDeleteRule
0%
0/6
N/A
1.587
BucketInfo$Builder
0%
0/35
0%
0/6
1.587
BucketInfo$CreatedBeforeDeleteRule
0%
0/6
N/A
1.587
BucketInfo$DeleteRule
0%
0/29
0%
0/18
1.587
BucketInfo$DeleteRule$Type
0%
0/2
N/A
1.587
BucketInfo$IsLiveDeleteRule
0%
0/5
N/A
1.587
BucketInfo$Location
0%
0/24
0%
0/8
1.587
BucketInfo$Location$Option
0%
0/5
N/A
1.587
BucketInfo$NumNewerVersionsDeleteRule
0%
0/6
N/A
1.587
BucketInfo$RawDeleteRule
0%
0/11
N/A
1.587
BucketInfo$StorageClass
0%
0/17
0%
0/2
1.587
BucketInfo$StorageClass$Option
0%
0/5
N/A
1.587
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.storage;
 18  
 
 19  
 import static com.google.api.client.repackaged.com.google.common.base.Preconditions.checkNotNull;
 20  
 import static com.google.common.base.MoreObjects.firstNonNull;
 21  
 import static com.google.common.collect.Lists.transform;
 22  
 
 23  
 import com.google.api.client.json.jackson2.JacksonFactory;
 24  
 import com.google.api.client.util.Data;
 25  
 import com.google.api.client.util.DateTime;
 26  
 import com.google.api.services.storage.model.Bucket.Lifecycle;
 27  
 import com.google.api.services.storage.model.Bucket.Lifecycle.Rule;
 28  
 import com.google.api.services.storage.model.Bucket.Owner;
 29  
 import com.google.api.services.storage.model.Bucket.Versioning;
 30  
 import com.google.api.services.storage.model.Bucket.Website;
 31  
 import com.google.api.services.storage.model.BucketAccessControl;
 32  
 import com.google.api.services.storage.model.ObjectAccessControl;
 33  
 import com.google.common.base.Function;
 34  
 import com.google.common.base.MoreObjects;
 35  
 import com.google.common.collect.ImmutableList;
 36  
 import com.google.common.collect.ImmutableMap;
 37  
 import com.google.gcloud.storage.Acl.Entity;
 38  
 
 39  
 import java.io.IOException;
 40  
 import java.io.ObjectInputStream;
 41  
 import java.io.ObjectOutputStream;
 42  
 import java.io.Serializable;
 43  
 import java.util.List;
 44  
 import java.util.Objects;
 45  
 
 46  
 /**
 47  
  * A Google Storage bucket.
 48  
  *
 49  
  * @see <a href="https://cloud.google.com/storage/docs/concepts-techniques#concepts">Concepts and
 50  
  *     Terminology</a>
 51  
  */
 52  0
 public final class BucketInfo implements Serializable {
 53  
 
 54  
   private static final long serialVersionUID = -3946094202176916586L;
 55  
 
 56  
   private final String id;
 57  
   private final String name;
 58  
   private final Acl.Entity owner;
 59  
   private final String selfLink;
 60  
   private final Boolean versioningEnabled;
 61  
   private final String indexPage;
 62  
   private final String notFoundPage;
 63  
   private final List<DeleteRule> deleteRules;
 64  
   private final String etag;
 65  
   private final Long createTime;
 66  
   private final Long metageneration;
 67  
   private final List<Cors> cors;
 68  
   private final List<Acl> acl;
 69  
   private final List<Acl> defaultAcl;
 70  
   private final Location location;
 71  
   private final StorageClass storageClass;
 72  
 
 73  0
   static final Function<com.google.api.services.storage.model.Bucket, BucketInfo> FROM_PB_FUNCTION =
 74  0
       new Function<com.google.api.services.storage.model.Bucket, BucketInfo>() {
 75  
         @Override
 76  
         public BucketInfo apply(com.google.api.services.storage.model.Bucket pb) {
 77  0
           return BucketInfo.fromPb(pb);
 78  
         }
 79  
       };
 80  
 
 81  0
   static final Function<BucketInfo, com.google.api.services.storage.model.Bucket> TO_PB_FUNCTION =
 82  0
       new Function<BucketInfo, com.google.api.services.storage.model.Bucket>() {
 83  
         @Override
 84  
         public com.google.api.services.storage.model.Bucket apply(BucketInfo bucketInfo) {
 85  0
           return bucketInfo.toPb();
 86  
         }
 87  
       };
 88  
 
 89  
   public static abstract class DeleteRule implements Serializable {
 90  
 
 91  
     private static final long serialVersionUID = 3137971668395933033L;
 92  
     private final Type type;
 93  
     private static final String SUPPORTED_ACTION = "Delete";
 94  
 
 95  0
     public enum Type {
 96  0
       AGE, CREATE_BEFORE, NUM_NEWER_VERSIONS, IS_LIVE, UNKNOWN
 97  
     }
 98  
 
 99  
     DeleteRule(Type type) {
 100  
       this.type = type;
 101  
     }
 102  
 
 103  
     public Type type() {
 104  0
       return type;
 105  
     }
 106  
 
 107  
     @Override
 108  
     public int hashCode() {
 109  0
       return Objects.hash(type);
 110  
     }
 111  
 
 112  
     @Override
 113  
     public boolean equals(Object obj) {
 114  0
       if (this == obj) {
 115  0
         return true;
 116  
       }
 117  0
       if (obj == null || getClass() != obj.getClass()) {
 118  0
         return false;
 119  
       }
 120  0
       final DeleteRule other = (DeleteRule) obj;
 121  0
       return Objects.equals(toPb(), other.toPb());
 122  
     }
 123  
 
 124  
     Rule toPb() {
 125  0
       Rule rule = new Rule();
 126  0
       rule.setAction(new Rule.Action().setType(SUPPORTED_ACTION));
 127  0
       Rule.Condition condition = new Rule.Condition();
 128  0
       populateCondition(condition);
 129  0
       rule.setCondition(condition);
 130  0
       return rule;
 131  
     }
 132  
 
 133  
     abstract void populateCondition(Rule.Condition condition);
 134  
 
 135  
     static DeleteRule fromPb(Rule rule) {
 136  0
       if (rule.getAction() != null && SUPPORTED_ACTION.endsWith(rule.getAction().getType())) {
 137  0
         Rule.Condition condition = rule.getCondition();
 138  0
         Integer age = condition.getAge();
 139  0
         if (age != null) {
 140  0
           return new AgeDeleteRule(age);
 141  
         }
 142  0
         DateTime dateTime = condition.getCreatedBefore();
 143  0
         if (dateTime != null) {
 144  0
           return new CreatedBeforeDeleteRule(dateTime.getValue());
 145  
         }
 146  0
         Integer numNewerVersions = condition.getNumNewerVersions();
 147  0
         if (numNewerVersions != null) {
 148  0
           return new NumNewerVersionsDeleteRule(numNewerVersions);
 149  
         }
 150  0
         Boolean isLive = condition.getIsLive();
 151  0
         if (isLive != null) {
 152  0
           return new IsLiveDeleteRule(isLive);
 153  
         }
 154  
       }
 155  0
       return new RawDeleteRule(rule);
 156  
     }
 157  
   }
 158  
 
 159  
   public static class AgeDeleteRule extends DeleteRule {
 160  
 
 161  
     private static final long serialVersionUID = 5697166940712116380L;
 162  
     private final int daysToLive;
 163  
 
 164  
     public AgeDeleteRule(int daysToLive) {
 165  0
       super(Type.AGE);
 166  0
       this.daysToLive = daysToLive;
 167  0
     }
 168  
 
 169  
     public int daysToLive() {
 170  0
       return daysToLive;
 171  
     }
 172  
 
 173  
     @Override
 174  
     void populateCondition(Rule.Condition condition) {
 175  0
       condition.setAge(daysToLive);
 176  0
     }
 177  
   }
 178  
 
 179  
   static class RawDeleteRule extends DeleteRule {
 180  
 
 181  
     private static final long serialVersionUID = -7166938278642301933L;
 182  
 
 183  
     private transient Rule rule;
 184  
 
 185  
     RawDeleteRule(Rule rule) {
 186  0
       super(Type.UNKNOWN);
 187  0
       this.rule = rule;
 188  0
     }
 189  
 
 190  
     @Override
 191  
     void populateCondition(Rule.Condition condition) {
 192  0
       throw new UnsupportedOperationException();
 193  
     }
 194  
 
 195  
     private void writeObject(ObjectOutputStream out) throws IOException {
 196  0
       out.defaultWriteObject();
 197  0
       out.writeUTF(rule.toString());
 198  0
     }
 199  
 
 200  
     private void readObject(ObjectInputStream in) throws IOException,
 201  
         ClassNotFoundException {
 202  0
       in.defaultReadObject();
 203  0
       rule = new JacksonFactory().fromString(in.readUTF(), Rule.class);
 204  0
     }
 205  
 
 206  
     Rule toPb() {
 207  0
       return rule;
 208  
     }
 209  
   }
 210  
 
 211  
   public static class CreatedBeforeDeleteRule extends DeleteRule {
 212  
 
 213  
     private static final long serialVersionUID = 881692650279195867L;
 214  
     private final long timeMillis;
 215  
 
 216  
     public CreatedBeforeDeleteRule(long timeMillis) {
 217  0
       super(Type.CREATE_BEFORE);
 218  0
       this.timeMillis = timeMillis;
 219  0
     }
 220  
 
 221  
     public long timeMillis() {
 222  0
       return timeMillis;
 223  
     }
 224  
 
 225  
     @Override
 226  
     void populateCondition(Rule.Condition condition) {
 227  0
       condition.setCreatedBefore(new DateTime(timeMillis));
 228  0
     }
 229  
   }
 230  
 
 231  
   public static class NumNewerVersionsDeleteRule extends DeleteRule {
 232  
 
 233  
     private static final long serialVersionUID = -1955554976528303894L;
 234  
     private final int numNewerVersions;
 235  
 
 236  
     public NumNewerVersionsDeleteRule(int numNewerVersions) {
 237  0
       super(Type.NUM_NEWER_VERSIONS);
 238  0
       this.numNewerVersions = numNewerVersions;
 239  0
     }
 240  
 
 241  
     public int numNewerVersions() {
 242  0
       return numNewerVersions;
 243  
     }
 244  
 
 245  
     @Override
 246  
     void populateCondition(Rule.Condition condition) {
 247  0
       condition.setNumNewerVersions(numNewerVersions);
 248  0
     }
 249  
   }
 250  
 
 251  
   public static class IsLiveDeleteRule extends DeleteRule {
 252  
 
 253  
     private static final long serialVersionUID = -3502994563121313364L;
 254  
     private final boolean isLive;
 255  
 
 256  
     public IsLiveDeleteRule(boolean isLive) {
 257  0
       super(Type.IS_LIVE);
 258  0
       this.isLive = isLive;
 259  0
     }
 260  
 
 261  
     public boolean isLive() {
 262  
       return isLive;
 263  
     }
 264  
 
 265  
     @Override
 266  
     void populateCondition(Rule.Condition condition) {
 267  0
       condition.setIsLive(isLive);
 268  0
     }
 269  
   }
 270  
 
 271  0
   public static final class StorageClass implements Serializable {
 272  
 
 273  
     private static final long serialVersionUID = 374002156285326563L;
 274  
     private static final ImmutableMap<String, Option> STRING_TO_OPTION;
 275  0
     private static final StorageClass NULL_VALUE =
 276  0
         new StorageClass(Data.<String>nullOf(String.class));
 277  
 
 278  
     private final String value;
 279  
 
 280  0
     public enum Option {
 281  0
       DURABLE_REDUCED_AVAILABILITY, STANDARD;
 282  
 
 283  
       private final StorageClass storageClass;
 284  
 
 285  0
       Option() {
 286  0
         storageClass = new StorageClass(name());
 287  0
       }
 288  
     }
 289  
 
 290  
     static {
 291  0
       ImmutableMap.Builder<String, Option> map = ImmutableMap.builder();
 292  0
       for (Option option : Option.values()) {
 293  0
         map.put(option.name(), option);
 294  
       }
 295  0
       STRING_TO_OPTION = map.build();
 296  0
     }
 297  
 
 298  0
     private StorageClass(String value) {
 299  0
       this.value = checkNotNull(value);
 300  0
     }
 301  
 
 302  
     public static StorageClass standard() {
 303  0
       return Option.STANDARD.storageClass;
 304  
     }
 305  
 
 306  
     public static StorageClass durableReducedAvailability() {
 307  0
       return Option.DURABLE_REDUCED_AVAILABILITY.storageClass;
 308  
     }
 309  
 
 310  
     public static StorageClass of(String value) {
 311  0
       Option option = STRING_TO_OPTION.get(value.toUpperCase());
 312  0
       return option == null ? new StorageClass(value) : option.storageClass;
 313  
     }
 314  
 
 315  
     @Override
 316  
     public String toString() {
 317  0
       return value();
 318  
     }
 319  
 
 320  
     public String value() {
 321  0
       return value;
 322  
     }
 323  
   }
 324  
 
 325  0
   public static final class Location implements Serializable {
 326  
 
 327  
     private static final long serialVersionUID = 9073107666838637662L;
 328  
     private static final ImmutableMap<String, Option> STRING_TO_OPTION;
 329  0
     private static final Location NULL_VALUE = new Location(Data.<String>nullOf(String.class));
 330  
 
 331  
     private final String value;
 332  
 
 333  0
     public enum Option {
 334  0
       US, EU, ASIA;
 335  
 
 336  
       private final Location location;
 337  
 
 338  0
       Option() {
 339  0
         location = new Location(name());
 340  0
       }
 341  
     }
 342  
 
 343  
     static {
 344  0
       ImmutableMap.Builder<String, Option> map = ImmutableMap.builder();
 345  0
       for (Option option : Option.values()) {
 346  0
         map.put(option.name(), option);
 347  
       }
 348  0
       STRING_TO_OPTION = map.build();
 349  0
     }
 350  
 
 351  0
     private Location(String value) {
 352  0
       this.value = checkNotNull(value);
 353  0
     }
 354  
 
 355  
     public static Location us() {
 356  0
       return Option.US.location;
 357  
     }
 358  
 
 359  
     public static Location eu() {
 360  0
       return Option.EU.location;
 361  
     }
 362  
 
 363  
     public static Location asia() {
 364  0
       return Option.ASIA.location;
 365  
     }
 366  
 
 367  
     public static Location of(String value) {
 368  0
       Option option = STRING_TO_OPTION.get(value.toUpperCase());
 369  0
       return option == null ? new Location(value) : option.location;
 370  
     }
 371  
 
 372  
     @Override
 373  
     public int hashCode() {
 374  0
       return Objects.hash(value);
 375  
     }
 376  
 
 377  
     @Override
 378  
     public boolean equals(Object obj) {
 379  0
       if (this == obj) {
 380  0
         return true;
 381  
       }
 382  0
       if (obj == null || getClass() != obj.getClass()) {
 383  0
         return false;
 384  
       }
 385  0
       final Location other = (Location) obj;
 386  0
       return Objects.equals(this.value, other.value);
 387  
     }
 388  
 
 389  
     @Override
 390  
     public String toString() {
 391  0
       return value();
 392  
     }
 393  
 
 394  
     public String value() {
 395  0
       return value;
 396  
     }
 397  
   }
 398  
 
 399  0
   public final static class Builder {
 400  
 
 401  
     private String id;
 402  
     private String name;
 403  
     private Acl.Entity owner;
 404  
     private String selfLink;
 405  
     private Boolean versioningEnabled;
 406  
     private String indexPage;
 407  
     private String notFoundPage;
 408  
     private ImmutableList<DeleteRule> deleteRules;
 409  
     private StorageClass storageClass;
 410  
     private Location location;
 411  
     private String etag;
 412  
     private Long createTime;
 413  
     private Long metageneration;
 414  
     private ImmutableList<Cors> cors;
 415  
     private ImmutableList<Acl> acl;
 416  
     private ImmutableList<Acl> defaultAcl;
 417  
 
 418  
     private Builder() {}
 419  
 
 420  
     public Builder name(String name) {
 421  0
       this.name = checkNotNull(name);
 422  0
       return this;
 423  
     }
 424  
 
 425  
     Builder id(String id) {
 426  0
       this.id = id;
 427  0
       return this;
 428  
     }
 429  
 
 430  
     Builder owner(Acl.Entity owner) {
 431  0
       this.owner = owner;
 432  0
       return this;
 433  
     }
 434  
 
 435  
     Builder selfLink(String selfLink) {
 436  0
       this.selfLink = selfLink;
 437  0
       return this;
 438  
     }
 439  
 
 440  
     public Builder versioningEnabled(Boolean enable) {
 441  0
       this.versioningEnabled = firstNonNull(enable, Data.<Boolean>nullOf(Boolean.class));
 442  0
       return this;
 443  
     }
 444  
 
 445  
     public Builder indexPage(String indexPage) {
 446  0
       this.indexPage = indexPage;
 447  0
       return this;
 448  
     }
 449  
 
 450  
     public Builder notFoundPage(String notFoundPage) {
 451  0
       this.notFoundPage = notFoundPage;
 452  0
       return this;
 453  
     }
 454  
 
 455  
     public Builder deleteRules(Iterable<? extends DeleteRule> rules) {
 456  0
       this.deleteRules = ImmutableList.copyOf(rules);
 457  0
       return this;
 458  
     }
 459  
 
 460  
     public Builder storageClass(StorageClass storageClass) {
 461  0
       this.storageClass = firstNonNull(storageClass, StorageClass.NULL_VALUE);
 462  0
       return this;
 463  
     }
 464  
 
 465  
     public Builder location(Location location) {
 466  0
       this.location = firstNonNull(location, Location.NULL_VALUE);
 467  0
       return this;
 468  
     }
 469  
 
 470  
     Builder etag(String etag) {
 471  0
       this.etag = etag;
 472  0
       return this;
 473  
     }
 474  
 
 475  
     Builder createTime(Long createTime) {
 476  0
       this.createTime = createTime;
 477  0
       return this;
 478  
     }
 479  
 
 480  
     Builder metageneration(Long metageneration) {
 481  0
       this.metageneration = metageneration;
 482  0
       return this;
 483  
     }
 484  
 
 485  
     public Builder cors(Iterable<Cors> cors) {
 486  0
       this.cors = cors != null ? ImmutableList.copyOf(cors) : null;
 487  0
       return this;
 488  
     }
 489  
 
 490  
     public Builder acl(Iterable<Acl> acl) {
 491  0
       this.acl = acl != null ? ImmutableList.copyOf(acl) : null;
 492  0
       return this;
 493  
     }
 494  
 
 495  
     public Builder defaultAcl(Iterable<Acl> acl) {
 496  0
       this.defaultAcl = acl != null ? ImmutableList.copyOf(acl) : null;
 497  0
       return this;
 498  
     }
 499  
 
 500  
     public BucketInfo build() {
 501  0
       checkNotNull(name);
 502  0
       return new BucketInfo(this);
 503  
     }
 504  
   }
 505  
 
 506  0
   private BucketInfo(Builder builder) {
 507  0
     id = builder.id;
 508  0
     name = builder.name;
 509  0
     etag = builder.etag;
 510  0
     createTime = builder.createTime;
 511  0
     metageneration = builder.metageneration;
 512  0
     location = builder.location;
 513  0
     storageClass = builder.storageClass;
 514  0
     cors = builder.cors;
 515  0
     acl = builder.acl;
 516  0
     defaultAcl = builder.defaultAcl;
 517  0
     owner = builder.owner;
 518  0
     selfLink = builder.selfLink;
 519  0
     versioningEnabled = builder.versioningEnabled;
 520  0
     indexPage = builder.indexPage;
 521  0
     notFoundPage = builder.notFoundPage;
 522  0
     deleteRules = builder.deleteRules;
 523  0
   }
 524  
 
 525  
   public String id() {
 526  0
     return id;
 527  
   }
 528  
 
 529  
   public String name() {
 530  0
     return name;
 531  
   }
 532  
 
 533  
   public Entity owner() {
 534  0
     return owner;
 535  
   }
 536  
 
 537  
   public String selfLink() {
 538  0
     return selfLink;
 539  
   }
 540  
 
 541  
   public Boolean versioningEnabled() {
 542  0
     return Data.isNull(versioningEnabled) ? null : versioningEnabled;
 543  
   }
 544  
 
 545  
   public String indexPage() {
 546  0
     return indexPage;
 547  
   }
 548  
 
 549  
   public String notFoundPage() {
 550  0
     return notFoundPage;
 551  
   }
 552  
 
 553  
   public List<? extends DeleteRule> deleteRules() {
 554  0
     return deleteRules;
 555  
   }
 556  
 
 557  
   public String etag() {
 558  0
     return etag;
 559  
   }
 560  
 
 561  
   public Long createTime() {
 562  0
     return createTime;
 563  
   }
 564  
 
 565  
   public Long metageneration() {
 566  0
     return metageneration;
 567  
   }
 568  
 
 569  
   public Location location() {
 570  0
     return location == null || Data.isNull(location.value) ? null : location;
 571  
   }
 572  
 
 573  
   public StorageClass storageClass() {
 574  0
     return storageClass == null || Data.isNull(storageClass.value) ? null : storageClass;
 575  
   }
 576  
 
 577  
   public List<Cors> cors() {
 578  0
     return cors;
 579  
   }
 580  
 
 581  
   public List<Acl> acl() {
 582  0
     return acl;
 583  
   }
 584  
 
 585  
   public List<Acl> defaultAcl() {
 586  0
     return defaultAcl;
 587  
   }
 588  
 
 589  
   public Builder toBuilder() {
 590  0
     return new Builder()
 591  0
         .name(name)
 592  0
         .id(id)
 593  0
         .createTime(createTime)
 594  0
         .etag(etag)
 595  0
         .metageneration(metageneration)
 596  0
         .cors(cors)
 597  0
         .acl(acl)
 598  0
         .defaultAcl(defaultAcl)
 599  0
         .location(location)
 600  0
         .storageClass(storageClass)
 601  0
         .owner(owner)
 602  0
         .selfLink(selfLink)
 603  0
         .versioningEnabled(versioningEnabled)
 604  0
         .indexPage(indexPage)
 605  0
         .notFoundPage(notFoundPage)
 606  0
         .deleteRules(deleteRules);
 607  
   }
 608  
 
 609  
   @Override
 610  
   public int hashCode() {
 611  0
     return Objects.hash(name);
 612  
   }
 613  
 
 614  
   @Override
 615  
   public boolean equals(Object obj) {
 616  0
     if (!(obj instanceof BucketInfo)) {
 617  0
       return  false;
 618  
     }
 619  0
     return Objects.equals(toPb(), ((BucketInfo) obj).toPb());
 620  
   }
 621  
 
 622  
   @Override
 623  
   public String toString() {
 624  0
     return MoreObjects.toStringHelper(this)
 625  0
         .add("name", name())
 626  0
         .toString();
 627  
   }
 628  
 
 629  
   public static BucketInfo of(String name) {
 630  0
     return builder(name).build();
 631  
   }
 632  
 
 633  
   public static Builder builder(String name) {
 634  0
     return new Builder().name(name);
 635  
   }
 636  
 
 637  
   com.google.api.services.storage.model.Bucket toPb() {
 638  0
     com.google.api.services.storage.model.Bucket bucketPb =
 639  
         new com.google.api.services.storage.model.Bucket();
 640  0
     bucketPb.setId(id);
 641  0
     bucketPb.setName(name);
 642  0
     bucketPb.setEtag(etag);
 643  0
     if (createTime != null) {
 644  0
       bucketPb.setTimeCreated(new DateTime(createTime));
 645  
     }
 646  0
     if (metageneration != null) {
 647  0
       bucketPb.setMetageneration(metageneration);
 648  
     }
 649  0
     if (location != null) {
 650  0
       bucketPb.setLocation(location.value());
 651  
     }
 652  0
     if (storageClass != null) {
 653  0
       bucketPb.setStorageClass(storageClass.value());
 654  
     }
 655  0
     if (cors != null) {
 656  0
       bucketPb.setCors(transform(cors, Cors.TO_PB_FUNCTION));
 657  
     }
 658  0
     if (acl != null) {
 659  0
       bucketPb.setAcl(transform(acl, new Function<Acl, BucketAccessControl>() {
 660  
         @Override
 661  
         public BucketAccessControl apply(Acl acl) {
 662  0
           return acl.toBucketPb();
 663  
         }
 664  
       }));
 665  
     }
 666  0
     if (defaultAcl != null) {
 667  0
       bucketPb.setDefaultObjectAcl(transform(defaultAcl, new Function<Acl, ObjectAccessControl>() {
 668  
         @Override
 669  
         public ObjectAccessControl apply(Acl acl) {
 670  0
           return acl.toObjectPb();
 671  
         }
 672  
       }));
 673  
     }
 674  0
     if (owner != null) {
 675  0
       bucketPb.setOwner(new Owner().setEntity(owner.toPb()));
 676  
     }
 677  0
     bucketPb.setSelfLink(selfLink);
 678  0
     if (versioningEnabled != null) {
 679  0
       bucketPb.setVersioning(new Versioning().setEnabled(versioningEnabled));
 680  
     }
 681  0
     if (indexPage != null || notFoundPage != null) {
 682  0
       Website website = new Website();
 683  0
       website.setMainPageSuffix(indexPage);
 684  0
       website.setNotFoundPage(notFoundPage);
 685  0
       bucketPb.setWebsite(website);
 686  
     }
 687  0
     if (deleteRules != null) {
 688  0
       Lifecycle lifecycle = new Lifecycle();
 689  0
       lifecycle.setRule(transform(deleteRules, new Function<DeleteRule, Rule>() {
 690  
         @Override
 691  
         public Rule apply(DeleteRule deleteRule) {
 692  0
           return deleteRule.toPb();
 693  
         }
 694  
       }));
 695  0
       bucketPb.setLifecycle(lifecycle);
 696  
     }
 697  0
     return bucketPb;
 698  
   }
 699  
 
 700  
   static BucketInfo fromPb(com.google.api.services.storage.model.Bucket bucketPb) {
 701  0
     Builder builder = new Builder()
 702  0
         .name(bucketPb.getName())
 703  0
         .id(bucketPb.getId())
 704  0
         .etag(bucketPb.getEtag())
 705  0
         .metageneration(bucketPb.getMetageneration())
 706  0
         .createTime(bucketPb.getTimeCreated().getValue())
 707  0
         .location(Location.of(bucketPb.getLocation()))
 708  0
         .selfLink(bucketPb.getSelfLink());
 709  0
     if (bucketPb.getStorageClass() != null) {
 710  0
       builder.storageClass(StorageClass.of(bucketPb.getStorageClass()));
 711  
     }
 712  0
     if (bucketPb.getCors() != null) {
 713  0
       builder.cors(transform(bucketPb.getCors(), Cors.FROM_PB_FUNCTION));
 714  
     }
 715  0
     if (bucketPb.getAcl() != null) {
 716  0
       builder.acl(transform(bucketPb.getAcl(), new Function<BucketAccessControl, Acl>() {
 717  
         @Override
 718  
         public Acl apply(BucketAccessControl bucketAccessControl) {
 719  0
           return Acl.fromPb(bucketAccessControl);
 720  
         }
 721  
       }));
 722  
     }
 723  0
     if (bucketPb.getDefaultObjectAcl() != null) {
 724  0
       builder.defaultAcl(transform(bucketPb.getDefaultObjectAcl(),
 725  0
           new Function<ObjectAccessControl, Acl>() {
 726  
             @Override
 727  
             public Acl apply(ObjectAccessControl objectAccessControl) {
 728  0
               return Acl.fromPb(objectAccessControl);
 729  
             }
 730  
           }));
 731  
     }
 732  0
     if (bucketPb.getOwner() != null) {
 733  0
       builder.owner(Entity.fromPb(bucketPb.getOwner().getEntity()));
 734  
     }
 735  0
     if (bucketPb.getVersioning() != null) {
 736  0
       builder.versioningEnabled(bucketPb.getVersioning().getEnabled());
 737  
     }
 738  0
     Website website = bucketPb.getWebsite();
 739  0
     if (website != null) {
 740  0
       builder.indexPage(website.getMainPageSuffix());
 741  0
       builder.notFoundPage(website.getNotFoundPage());
 742  
     }
 743  0
     if (bucketPb.getLifecycle() != null && bucketPb.getLifecycle().getRule() != null) {
 744  0
       builder.deleteRules(transform(bucketPb.getLifecycle().getRule(),
 745  0
           new Function<Rule, DeleteRule>() {
 746  
             @Override
 747  
             public DeleteRule apply(Rule rule) {
 748  0
               return DeleteRule.fromPb(rule);
 749  
             }
 750  
           }));
 751  
     }
 752  0
     return builder.build();
 753  
   }
 754  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.storage.Cors.html b/site/0.0.7/cobertura/com.google.gcloud.storage.Cors.html new file mode 100644 index 000000000000..0d0054b85019 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.storage.Cors.html @@ -0,0 +1,425 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.storage.Cors
+
 
+ + + + + + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
Cors
0%
0/42
0%
0/18
1.655
Cors$1
0%
0/2
N/A
1.655
Cors$2
0%
0/2
N/A
1.655
Cors$3
0%
0/2
N/A
1.655
Cors$4
0%
0/2
N/A
1.655
Cors$Builder
0%
0/10
0%
0/6
1.655
Cors$Origin
0%
0/17
0%
0/4
1.655
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.storage;
 18  
 
 19  
 import static com.google.common.base.Preconditions.checkNotNull;
 20  
 import static com.google.common.collect.Iterables.transform;
 21  
 import static com.google.common.collect.Lists.newArrayList;
 22  
 
 23  
 import com.google.api.services.storage.model.Bucket;
 24  
 import com.google.common.base.Function;
 25  
 import com.google.common.base.Functions;
 26  
 import com.google.common.collect.ImmutableList;
 27  
 
 28  
 import java.io.Serializable;
 29  
 import java.net.URI;
 30  
 import java.net.URISyntaxException;
 31  
 import java.util.List;
 32  
 import java.util.Objects;
 33  
 
 34  
 /**
 35  
  * Cross-Origin Resource Sharing (CORS) configuration for a bucket.
 36  
  */
 37  0
 public final class Cors implements Serializable {
 38  
 
 39  
   private static final long serialVersionUID = -8637770919343335655L;
 40  
 
 41  0
   static final Function<Bucket.Cors, Cors> FROM_PB_FUNCTION = new Function<Bucket.Cors, Cors>() {
 42  
     @Override
 43  
     public Cors apply(Bucket.Cors pb) {
 44  0
       return Cors.fromPb(pb);
 45  
     }
 46  
   };
 47  
 
 48  0
   static final Function<Cors, Bucket.Cors> TO_PB_FUNCTION = new Function<Cors, Bucket.Cors>() {
 49  
     @Override
 50  
     public Bucket.Cors apply(Cors cors) {
 51  0
       return cors.toPb();
 52  
     }
 53  
   };
 54  
 
 55  
   private final Integer maxAgeSeconds;
 56  
   private final ImmutableList<HttpMethod> methods;
 57  
   private final ImmutableList<Origin> origins;
 58  
   private final ImmutableList<String> responseHeaders;
 59  
 
 60  
   public static final class Origin implements Serializable {
 61  
 
 62  
     private static final long serialVersionUID = -4447958124895577993L;
 63  
     private static final String ANY_URI = "*";
 64  
     private final String value;
 65  
 
 66  0
     private static final Origin ANY = new Origin(ANY_URI);
 67  
 
 68  0
     private Origin(String value) {
 69  0
       this.value = checkNotNull(value);
 70  0
     }
 71  
 
 72  
     public static Origin any() {
 73  0
       return ANY;
 74  
     }
 75  
 
 76  
     public static Origin of(String scheme, String host, int port) {
 77  
       try {
 78  0
         return of(new URI(scheme, null, host, port, null, null, null).toString());
 79  0
       } catch (URISyntaxException e) {
 80  0
         throw new IllegalArgumentException(e);
 81  
       }
 82  
     }
 83  
 
 84  
     public static Origin of(String value) {
 85  0
       if (ANY_URI.equals(value)) {
 86  0
         return any();
 87  
       }
 88  0
       return new Origin(value);
 89  
     }
 90  
 
 91  
     @Override
 92  
     public int hashCode() {
 93  0
       return value.hashCode();
 94  
     }
 95  
 
 96  
     @Override
 97  
     public boolean equals(Object obj) {
 98  0
       if (!(obj instanceof Origin)) {
 99  0
         return false;
 100  
       }
 101  0
       return value.equals(((Origin)obj).value);
 102  
     }
 103  
 
 104  
     @Override
 105  
     public String toString() {
 106  0
       return value();
 107  
     }
 108  
 
 109  
     public String value() {
 110  0
       return value;
 111  
     }
 112  
   }
 113  
 
 114  0
   public static final class Builder {
 115  
 
 116  
     private Integer maxAgeSeconds;
 117  
     private ImmutableList<HttpMethod> methods;
 118  
     private ImmutableList<Origin> origins;
 119  
     private ImmutableList<String> responseHeaders;
 120  
 
 121  
     private Builder() {}
 122  
 
 123  
     public Builder maxAgeSeconds(Integer maxAgeSeconds) {
 124  0
       this.maxAgeSeconds = maxAgeSeconds;
 125  0
       return this;
 126  
     }
 127  
 
 128  
     public Builder methods(Iterable<HttpMethod> methods) {
 129  0
       this.methods = methods != null ? ImmutableList.copyOf(methods) : null;
 130  0
       return this;
 131  
     }
 132  
 
 133  
     public Builder origins(Iterable<Origin> origins) {
 134  0
       this.origins = origins != null ? ImmutableList.copyOf(origins) : null;
 135  0
       return this;
 136  
     }
 137  
 
 138  
     public Builder responseHeaders(Iterable<String> headers) {
 139  0
       this.responseHeaders = headers != null ? ImmutableList.copyOf(headers) : null;
 140  0
       return this;
 141  
     }
 142  
 
 143  
     public Cors build() {
 144  0
       return new Cors(this);
 145  
     }
 146  
   }
 147  
 
 148  0
   private Cors(Builder builder) {
 149  0
     this.maxAgeSeconds = builder.maxAgeSeconds;
 150  0
     this.methods = builder.methods;
 151  0
     this.origins = builder.origins;
 152  0
     this.responseHeaders = builder.responseHeaders;
 153  0
   }
 154  
 
 155  
   public Integer maxAgeSeconds() {
 156  0
     return maxAgeSeconds;
 157  
   }
 158  
 
 159  
   public List<HttpMethod> methods() {
 160  0
     return methods;
 161  
   }
 162  
 
 163  
   public List<Origin> origins() {
 164  0
     return origins;
 165  
   }
 166  
 
 167  
   public List<String> responseHeaders() {
 168  0
     return responseHeaders;
 169  
   }
 170  
 
 171  
   public Builder toBuilder() {
 172  0
     return builder()
 173  0
         .maxAgeSeconds(maxAgeSeconds)
 174  0
         .methods(methods)
 175  0
         .origins(origins)
 176  0
         .responseHeaders(responseHeaders);
 177  
   }
 178  
 
 179  
   @Override
 180  
   public int hashCode() {
 181  0
     return Objects.hash(maxAgeSeconds, methods, origins, responseHeaders);
 182  
   }
 183  
 
 184  
   @Override
 185  
   public boolean equals(Object obj) {
 186  0
     if (!(obj instanceof Cors)) {
 187  0
       return false;
 188  
     }
 189  0
     Cors other = (Cors) obj;
 190  0
     return Objects.equals(maxAgeSeconds, other.maxAgeSeconds)
 191  0
         && Objects.equals(methods, other.methods)
 192  0
         && Objects.equals(origins, other.origins)
 193  0
         && Objects.equals(responseHeaders, other.responseHeaders);
 194  
   }
 195  
 
 196  
   public static Builder builder() {
 197  0
     return new Builder();
 198  
   }
 199  
 
 200  
   Bucket.Cors toPb() {
 201  0
     Bucket.Cors pb = new Bucket.Cors();
 202  0
     pb.setMaxAgeSeconds(maxAgeSeconds);
 203  0
     pb.setResponseHeader(responseHeaders);
 204  0
     if (methods != null) {
 205  0
       pb.setMethod(newArrayList(transform(methods, Functions.toStringFunction())));
 206  
     }
 207  0
     if (origins != null) {
 208  0
       pb.setOrigin(newArrayList(transform(origins, Functions.toStringFunction())));
 209  
     }
 210  0
     return pb;
 211  
   }
 212  
 
 213  
   static Cors fromPb(Bucket.Cors cors) {
 214  0
     Builder builder = builder().maxAgeSeconds(cors.getMaxAgeSeconds());
 215  0
     if (cors.getMethod() != null) {
 216  0
       builder.methods(transform(cors.getMethod(), new Function<String, HttpMethod>() {
 217  
         @Override
 218  
         public HttpMethod apply(String name) {
 219  0
           return HttpMethod.valueOf(name.toUpperCase());
 220  
         }
 221  
       }));
 222  
     }
 223  0
     if (cors.getOrigin() != null) {
 224  0
       builder.origins(transform(cors.getOrigin(), new Function<String, Origin>() {
 225  
         @Override
 226  
         public Origin apply(String value) {
 227  0
           return Origin.of(value);
 228  
         }
 229  
       }));
 230  
     }
 231  0
     builder.responseHeaders(cors.getResponseHeader());
 232  0
     return builder.build();
 233  
   }
 234  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.storage.HttpMethod.html b/site/0.0.7/cobertura/com.google.gcloud.storage.HttpMethod.html new file mode 100644 index 000000000000..7427801e206e --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.storage.HttpMethod.html @@ -0,0 +1,70 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.storage.HttpMethod
+
 
+ + + + +
Classes in this File Line Coverage Branch Coverage Complexity
HttpMethod
0%
0/2
N/A
0
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.storage;
 18  
 
 19  
 /**
 20  
  * Http method supported by Storage service.
 21  
  */
 22  0
 public enum HttpMethod {
 23  0
   GET, HEAD, PUT, POST, DELETE
 24  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.storage.ListResult.html b/site/0.0.7/cobertura/com.google.gcloud.storage.ListResult.html new file mode 100644 index 000000000000..a8aa3ce34292 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.storage.ListResult.html @@ -0,0 +1,178 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.storage.ListResult
+
 
+ + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
ListResult
0%
0/11
0%
0/12
2
ListResult$NextPageFetcher
N/A
N/A
2
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.storage;
 18  
 
 19  
 
 20  
 import java.io.Serializable;
 21  
 import java.util.Collections;
 22  
 import java.util.Iterator;
 23  
 import java.util.Objects;
 24  
 
 25  
 /**
 26  
  * Google Cloud storage list result.
 27  
  */
 28  
 public final class ListResult<T extends Serializable> implements Iterable<T>, Serializable {
 29  
 
 30  
   private static final long serialVersionUID = -6937287874908527950L;
 31  
 
 32  
   private final String cursor;
 33  
   private final Iterable<T> results;
 34  
   private final NextPageFetcher<T> pageFetcher;
 35  
 
 36  
   public interface NextPageFetcher<T extends Serializable> extends Serializable {
 37  
     ListResult<T> nextPage();
 38  
   }
 39  
 
 40  
   public ListResult(NextPageFetcher<T> pageFetcher, String cursor, Iterable<T> results) {
 41  
     this.pageFetcher = pageFetcher;
 42  
     this.cursor = cursor;
 43  
     this.results = results;
 44  
   }
 45  
 
 46  
   /**
 47  
    * Returns the cursor for the nextPage or {@code null} if no more results.
 48  
    */
 49  
   public String nextPageCursor() {
 50  0
     return cursor;
 51  
   }
 52  
 
 53  
   /**
 54  
    * Returns the results of the nextPage or {@code null} if no more result.
 55  
    */
 56  
   public ListResult<T> nextPage() {
 57  0
     if (cursor == null || pageFetcher == null) {
 58  0
       return null;
 59  
     }
 60  0
     return pageFetcher.nextPage();
 61  
   }
 62  
 
 63  
   @Override
 64  
   public Iterator<T> iterator() {
 65  0
     return results == null ? Collections.<T>emptyIterator() : results.iterator();
 66  
   }
 67  
 
 68  
   @Override
 69  
   public int hashCode() {
 70  0
     return Objects.hash(cursor, results);
 71  
   }
 72  
 
 73  
   @Override
 74  
   public boolean equals(Object obj) {
 75  0
     if (!(obj instanceof ListResult)) {
 76  0
       return false;
 77  
     }
 78  0
     ListResult<?> other = (ListResult<?>) obj;
 79  0
     return Objects.equals(cursor, other.cursor)
 80  0
         && Objects.equals(results, other.results);
 81  
   }
 82  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.storage.Option.html b/site/0.0.7/cobertura/com.google.gcloud.storage.Option.html new file mode 100644 index 000000000000..64a58276e57d --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.storage.Option.html @@ -0,0 +1,152 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.storage.Option
+
 
+ + + + +
Classes in this File Line Coverage Branch Coverage Complexity
Option
0%
0/16
0%
0/6
1.5
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.storage;
 18  
 
 19  
 import static com.google.common.base.Preconditions.checkNotNull;
 20  
 
 21  
 import com.google.common.base.MoreObjects;
 22  
 import com.google.gcloud.spi.StorageRpc;
 23  
 
 24  
 import java.io.Serializable;
 25  
 import java.util.Objects;
 26  
 
 27  
 /**
 28  
  * Base class for Storage operation option
 29  
  */
 30  
 class Option implements Serializable {
 31  
 
 32  
   private static final long serialVersionUID = -73199088766477208L;
 33  
 
 34  
   private final StorageRpc.Option rpcOption;
 35  
   private final Object value;
 36  
 
 37  0
   Option(StorageRpc.Option rpcOption, Object value) {
 38  0
     this.rpcOption = checkNotNull(rpcOption);
 39  0
     this.value = value;
 40  0
   }
 41  
 
 42  
   StorageRpc.Option rpcOption() {
 43  0
     return rpcOption;
 44  
   }
 45  
 
 46  
   Object value() {
 47  0
     return value;
 48  
   }
 49  
 
 50  
   @Override
 51  
   public boolean equals(Object obj) {
 52  0
     if (!(obj instanceof Option)) {
 53  0
       return false;
 54  
     }
 55  0
     Option other = (Option) obj;
 56  0
     return Objects.equals(rpcOption, other.rpcOption)
 57  0
         && Objects.equals(value, other.value);
 58  
   }
 59  
 
 60  
   @Override
 61  
   public int hashCode() {
 62  0
     return Objects.hash(rpcOption, value);
 63  
   }
 64  
 
 65  
   @Override
 66  
   public String toString() {
 67  0
     return MoreObjects.toStringHelper(this)
 68  0
         .add("name", rpcOption.value())
 69  0
         .add("value", value)
 70  0
         .toString();
 71  
   }
 72  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.storage.Storage.html b/site/0.0.7/cobertura/com.google.gcloud.storage.Storage.html new file mode 100644 index 000000000000..84631d2ef44d --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.storage.Storage.html @@ -0,0 +1,1131 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.storage.Storage
+
 
+ + + + + + + + + + + + + + + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
Storage
N/A
N/A
1.011
Storage$1
N/A
N/A
1.011
Storage$BlobListOption
0%
0/5
N/A
1.011
Storage$BlobSourceOption
0%
0/7
N/A
1.011
Storage$BlobTargetOption
0%
0/9
N/A
1.011
Storage$BucketListOption
0%
0/4
N/A
1.011
Storage$BucketSourceOption
0%
0/5
N/A
1.011
Storage$BucketTargetOption
0%
0/7
N/A
1.011
Storage$ComposeRequest
0%
0/12
N/A
1.011
Storage$ComposeRequest$Builder
0%
0/17
0%
0/4
1.011
Storage$ComposeRequest$SourceBlob
0%
0/4
N/A
1.011
Storage$CopyRequest
0%
0/16
N/A
1.011
Storage$CopyRequest$Builder
0%
0/16
N/A
1.011
Storage$PredefinedAcl
0%
0/10
N/A
1.011
Storage$SignUrlOption
0%
0/6
N/A
1.011
Storage$SignUrlOption$Option
0%
0/2
N/A
1.011
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.storage;
 18  
 
 19  
 import static com.google.common.base.Preconditions.checkArgument;
 20  
 import static com.google.common.base.Preconditions.checkNotNull;
 21  
 
 22  
 import com.google.common.collect.ImmutableList;
 23  
 import com.google.gcloud.AuthCredentials.ServiceAccountAuthCredentials;
 24  
 import com.google.gcloud.Service;
 25  
 import com.google.gcloud.spi.StorageRpc;
 26  
 
 27  
 import java.io.Serializable;
 28  
 import java.net.URL;
 29  
 import java.util.Arrays;
 30  
 import java.util.Collections;
 31  
 import java.util.LinkedHashSet;
 32  
 import java.util.LinkedList;
 33  
 import java.util.List;
 34  
 import java.util.Set;
 35  
 
 36  
 /**
 37  
  * An interface for Google Cloud Storage.
 38  
  *
 39  
  * @see <a href="https://cloud.google.com/storage/docs">Google Cloud Storage</a>
 40  
  */
 41  
 public interface Storage extends Service<StorageOptions> {
 42  
 
 43  0
   enum PredefinedAcl {
 44  0
     AUTHENTICATED_READ("authenticatedRead"),
 45  0
     ALL_AUTHENTICATED_USERS("allAuthenticatedUsers"),
 46  0
     PRIVATE("private"),
 47  0
     PROJECT_PRIVATE("projectPrivate"),
 48  0
     PUBLIC_READ("publicRead"),
 49  0
     PUBLIC_READ_WRITE("publicReadWrite"),
 50  0
     BUCKET_OWNER_READ("bucketOwnerRead"),
 51  0
     BUCKET_OWNER_FULL_CONTROL("bucketOwnerFullControl");
 52  
 
 53  
     private final String entry;
 54  
 
 55  
     PredefinedAcl(String entry) {
 56  
       this.entry = entry;
 57  
     }
 58  
 
 59  
     String entry() {
 60  0
       return entry;
 61  
     }
 62  
   }
 63  
 
 64  0
   class BucketTargetOption extends Option {
 65  
 
 66  
     private static final long serialVersionUID = -5880204616982900975L;
 67  
 
 68  
     private BucketTargetOption(StorageRpc.Option rpcOption, Object value) {
 69  
       super(rpcOption, value);
 70  
     }
 71  
 
 72  
     private BucketTargetOption(StorageRpc.Option rpcOption) {
 73  0
       this(rpcOption, null);
 74  0
     }
 75  
 
 76  
     public static BucketTargetOption predefinedAcl(PredefinedAcl acl) {
 77  0
       return new BucketTargetOption(StorageRpc.Option.PREDEFINED_ACL, acl.entry());
 78  
     }
 79  
 
 80  
     public static BucketTargetOption predefinedDefaultObjectAcl(PredefinedAcl acl) {
 81  0
       return new BucketTargetOption(StorageRpc.Option.PREDEFINED_DEFAULT_OBJECT_ACL, acl.entry());
 82  
     }
 83  
 
 84  
     public static BucketTargetOption metagenerationMatch() {
 85  0
       return new BucketTargetOption(StorageRpc.Option.IF_METAGENERATION_MATCH);
 86  
     }
 87  
 
 88  
     public static BucketTargetOption metagenerationNotMatch() {
 89  0
       return new BucketTargetOption(StorageRpc.Option.IF_METAGENERATION_NOT_MATCH);
 90  
     }
 91  
   }
 92  
 
 93  0
   class BucketSourceOption extends Option {
 94  
 
 95  
     private static final long serialVersionUID = 5185657617120212117L;
 96  
 
 97  
     private BucketSourceOption(StorageRpc.Option rpcOption, long metageneration) {
 98  0
       super(rpcOption, metageneration);
 99  0
     }
 100  
 
 101  
     public static BucketSourceOption metagenerationMatch(long metageneration) {
 102  0
       return new BucketSourceOption(StorageRpc.Option.IF_METAGENERATION_MATCH, metageneration);
 103  
     }
 104  
 
 105  
     public static BucketSourceOption metagenerationNotMatch(long metageneration) {
 106  0
       return new BucketSourceOption(StorageRpc.Option.IF_METAGENERATION_NOT_MATCH, metageneration);
 107  
     }
 108  
   }
 109  
 
 110  0
   class BlobTargetOption extends Option {
 111  
 
 112  
     private static final long serialVersionUID = 214616862061934846L;
 113  
 
 114  
     private BlobTargetOption(StorageRpc.Option rpcOption, Object value) {
 115  
       super(rpcOption, value);
 116  
     }
 117  
 
 118  
     private BlobTargetOption(StorageRpc.Option rpcOption) {
 119  0
       this(rpcOption, null);
 120  0
     }
 121  
 
 122  
     public static BlobTargetOption predefinedAcl(PredefinedAcl acl) {
 123  0
       return new BlobTargetOption(StorageRpc.Option.PREDEFINED_ACL, acl.entry());
 124  
     }
 125  
 
 126  
     public static BlobTargetOption doesNotExist() {
 127  0
       return new BlobTargetOption(StorageRpc.Option.IF_GENERATION_MATCH, 0L);
 128  
     }
 129  
 
 130  
     public static BlobTargetOption generationMatch() {
 131  0
       return new BlobTargetOption(StorageRpc.Option.IF_GENERATION_MATCH);
 132  
     }
 133  
 
 134  
     public static BlobTargetOption generationNotMatch() {
 135  0
       return new BlobTargetOption(StorageRpc.Option.IF_GENERATION_NOT_MATCH);
 136  
     }
 137  
 
 138  
     public static BlobTargetOption metagenerationMatch() {
 139  0
       return new BlobTargetOption(StorageRpc.Option.IF_METAGENERATION_MATCH);
 140  
     }
 141  
 
 142  
     public static BlobTargetOption metagenerationNotMatch() {
 143  0
       return new BlobTargetOption(StorageRpc.Option.IF_METAGENERATION_NOT_MATCH);
 144  
     }
 145  
   }
 146  
 
 147  0
   class BlobSourceOption extends Option {
 148  
 
 149  
     private static final long serialVersionUID = -3712768261070182991L;
 150  
 
 151  
     private BlobSourceOption(StorageRpc.Option rpcOption, long value) {
 152  0
       super(rpcOption, value);
 153  0
     }
 154  
 
 155  
     public static BlobSourceOption generationMatch(long generation) {
 156  0
       return new BlobSourceOption(StorageRpc.Option.IF_GENERATION_MATCH, generation);
 157  
     }
 158  
 
 159  
     public static BlobSourceOption generationNotMatch(long generation) {
 160  0
       return new BlobSourceOption(StorageRpc.Option.IF_GENERATION_NOT_MATCH, generation);
 161  
     }
 162  
 
 163  
     public static BlobSourceOption metagenerationMatch(long metageneration) {
 164  0
       return new BlobSourceOption(StorageRpc.Option.IF_METAGENERATION_MATCH, metageneration);
 165  
     }
 166  
 
 167  
     public static BlobSourceOption metagenerationNotMatch(long metageneration) {
 168  0
       return new BlobSourceOption(StorageRpc.Option.IF_METAGENERATION_NOT_MATCH, metageneration);
 169  
     }
 170  
   }
 171  
 
 172  0
   class BucketListOption extends Option {
 173  
 
 174  
     private static final long serialVersionUID = 8754017079673290353L;
 175  
 
 176  
     private BucketListOption(StorageRpc.Option option, Object value) {
 177  
       super(option, value);
 178  
     }
 179  
 
 180  
     public static BucketListOption maxResults(long maxResults) {
 181  0
       return new BucketListOption(StorageRpc.Option.MAX_RESULTS, maxResults);
 182  
     }
 183  
 
 184  
     public static BucketListOption startPageToken(String pageToken) {
 185  0
       return new BucketListOption(StorageRpc.Option.PAGE_TOKEN, pageToken);
 186  
     }
 187  
 
 188  
     public static BucketListOption prefix(String prefix) {
 189  0
       return new BucketListOption(StorageRpc.Option.PREFIX, prefix);
 190  
     }
 191  
   }
 192  
 
 193  0
   class BlobListOption extends Option {
 194  
 
 195  
     private static final long serialVersionUID = 9083383524788661294L;
 196  
 
 197  
     private BlobListOption(StorageRpc.Option option, Object value) {
 198  
       super(option, value);
 199  
     }
 200  
 
 201  
     public static BlobListOption maxResults(long maxResults) {
 202  0
       return new BlobListOption(StorageRpc.Option.MAX_RESULTS, maxResults);
 203  
     }
 204  
 
 205  
     public static BlobListOption startPageToken(String pageToken) {
 206  0
       return new BlobListOption(StorageRpc.Option.PAGE_TOKEN, pageToken);
 207  
     }
 208  
 
 209  
     public static BlobListOption prefix(String prefix) {
 210  0
       return new BlobListOption(StorageRpc.Option.PREFIX, prefix);
 211  
     }
 212  
 
 213  
     public static BlobListOption recursive(boolean recursive) {
 214  0
       return new BlobListOption(StorageRpc.Option.DELIMITER, recursive);
 215  
     }
 216  
   }
 217  
 
 218  
   class SignUrlOption implements Serializable {
 219  
 
 220  
     private static final long serialVersionUID = 7850569877451099267L;
 221  
 
 222  
     private final Option option;
 223  
     private final Object value;
 224  
 
 225  0
     enum Option {
 226  0
       HTTP_METHOD, CONTENT_TYPE, MD5, SERVICE_ACCOUNT_CRED;
 227  
     }
 228  
 
 229  
     private SignUrlOption(Option option, Object value) {
 230  
       this.option = option;
 231  
       this.value = value;
 232  
     }
 233  
 
 234  
     Option option() {
 235  0
       return option;
 236  
     }
 237  
 
 238  
     Object value() {
 239  0
       return value;
 240  
     }
 241  
 
 242  
     /**
 243  
      * The HTTP method to be used with the signed URL.
 244  
      */
 245  
     public static SignUrlOption httpMethod(HttpMethod httpMethod) {
 246  0
       return new SignUrlOption(Option.HTTP_METHOD, httpMethod.name());
 247  
     }
 248  
 
 249  
     /**
 250  
      * Use it if signature should include the blob's content-type.
 251  
      * When used, users of the signed URL should include the blob's content-type with their request.
 252  
      */
 253  
     public static SignUrlOption withContentType() {
 254  0
       return new SignUrlOption(Option.CONTENT_TYPE, true);
 255  
     }
 256  
 
 257  
     /**
 258  
      * Use it if signature should include the blob's md5.
 259  
      * When used, users of the signed URL should include the blob's md5 with their request.
 260  
      */
 261  
     public static SignUrlOption withMd5() {
 262  0
       return new SignUrlOption(Option.MD5, true);
 263  
     }
 264  
 
 265  
     /**
 266  
      * Service account credentials which are used for signing the URL.
 267  
      * If not provided an attempt will be made to get it from the environment.
 268  
      *
 269  
      * @see <a href="https://cloud.google.com/storage/docs/authentication#service_accounts">Service
 270  
      *     account</a>
 271  
      */
 272  
     public static SignUrlOption serviceAccount(ServiceAccountAuthCredentials credentials) {
 273  0
       return new SignUrlOption(Option.SERVICE_ACCOUNT_CRED, credentials);
 274  
     }
 275  
   }
 276  
 
 277  0
   class ComposeRequest implements Serializable {
 278  
 
 279  
     private static final long serialVersionUID = -7385681353748590911L;
 280  
 
 281  
     private final List<SourceBlob> sourceBlobs;
 282  
     private final BlobInfo target;
 283  
     private final List<BlobTargetOption> targetOptions;
 284  
 
 285  
     public static class SourceBlob implements Serializable {
 286  
 
 287  
       private static final long serialVersionUID = 4094962795951990439L;
 288  
 
 289  
       final String name;
 290  
       final Long generation;
 291  
 
 292  
       SourceBlob(String name) {
 293  0
         this(name, null);
 294  0
       }
 295  
 
 296  
       SourceBlob(String name, Long generation) {
 297  
         this.name = name;
 298  
         this.generation = generation;
 299  
       }
 300  
 
 301  
       public String name() {
 302  0
         return name;
 303  
       }
 304  
 
 305  
       public Long generation() {
 306  0
         return generation;
 307  
       }
 308  
     }
 309  
 
 310  0
     public static class Builder {
 311  
 
 312  0
       private final List<SourceBlob> sourceBlobs = new LinkedList<>();
 313  
       private BlobInfo target;
 314  0
       private final Set<BlobTargetOption> targetOptions = new LinkedHashSet<>();
 315  
 
 316  
       public Builder addSource(Iterable<String> blobs) {
 317  0
         for (String blob : blobs) {
 318  0
           sourceBlobs.add(new SourceBlob(blob));
 319  0
         }
 320  0
         return this;
 321  
       }
 322  
 
 323  
       public Builder addSource(String... blobs) {
 324  0
         return addSource(Arrays.asList(blobs));
 325  
       }
 326  
 
 327  
       /**
 328  
        * Add a source with a specific generation to match.
 329  
        */
 330  
       public Builder addSource(String blob, long generation) {
 331  0
         sourceBlobs.add(new SourceBlob(blob, generation));
 332  0
         return this;
 333  
       }
 334  
 
 335  
       public Builder target(BlobInfo target) {
 336  0
         this.target = target;
 337  0
         return this;
 338  
       }
 339  
 
 340  
       public Builder targetOptions(BlobTargetOption... options) {
 341  0
         Collections.addAll(targetOptions, options);
 342  0
         return this;
 343  
       }
 344  
 
 345  
       public ComposeRequest build() {
 346  0
         checkArgument(!sourceBlobs.isEmpty());
 347  0
         checkNotNull(target);
 348  0
         return new ComposeRequest(this);
 349  
       }
 350  
     }
 351  
 
 352  0
     private ComposeRequest(Builder builder) {
 353  0
       sourceBlobs = ImmutableList.copyOf(builder.sourceBlobs);
 354  0
       target = builder.target;
 355  0
       targetOptions = ImmutableList.copyOf(builder.targetOptions);
 356  0
     }
 357  
 
 358  
     public List<SourceBlob> sourceBlobs() {
 359  0
       return sourceBlobs;
 360  
     }
 361  
 
 362  
     public BlobInfo target() {
 363  0
       return target;
 364  
     }
 365  
 
 366  
     public List<BlobTargetOption> targetOptions() {
 367  0
       return targetOptions;
 368  
     }
 369  
 
 370  
     public static ComposeRequest of(Iterable<String> sources, BlobInfo target) {
 371  0
       return builder().target(target).addSource(sources).build();
 372  
     }
 373  
 
 374  
     public static ComposeRequest of(String bucket, Iterable<String> sources, String target) {
 375  0
       return of(sources, BlobInfo.of(bucket, target));
 376  
     }
 377  
 
 378  
     public static Builder builder() {
 379  0
       return new Builder();
 380  
     }
 381  
   }
 382  
 
 383  0
   class CopyRequest implements Serializable {
 384  
 
 385  
     private static final long serialVersionUID = -2606508373751748775L;
 386  
 
 387  
     private final String sourceBucket;
 388  
     private final String sourceBlob;
 389  
     private final List<BlobSourceOption> sourceOptions;
 390  
     private final BlobInfo target;
 391  
     private final List<BlobTargetOption> targetOptions;
 392  
 
 393  0
     public static class Builder {
 394  
 
 395  
       private String sourceBucket;
 396  
       private String sourceBlob;
 397  0
       private final Set<BlobSourceOption> sourceOptions = new LinkedHashSet<>();
 398  
       private BlobInfo target;
 399  0
       private final Set<BlobTargetOption> targetOptions = new LinkedHashSet<>();
 400  
 
 401  
       public Builder source(String bucket, String blob) {
 402  0
         this.sourceBucket = bucket;
 403  0
         this.sourceBlob = blob;
 404  0
         return this;
 405  
       }
 406  
 
 407  
       public Builder sourceOptions(BlobSourceOption... options) {
 408  0
         Collections.addAll(sourceOptions, options);
 409  0
         return this;
 410  
       }
 411  
 
 412  
       public Builder target(BlobInfo target) {
 413  0
         this.target = target;
 414  0
         return this;
 415  
       }
 416  
 
 417  
       public Builder targetOptions(BlobTargetOption... options) {
 418  0
         Collections.addAll(targetOptions, options);
 419  0
         return this;
 420  
       }
 421  
 
 422  
       public CopyRequest build() {
 423  0
         checkNotNull(sourceBucket);
 424  0
         checkNotNull(sourceBlob);
 425  0
         checkNotNull(target);
 426  0
         return new CopyRequest(this);
 427  
       }
 428  
     }
 429  
 
 430  0
     private CopyRequest(Builder builder) {
 431  0
       sourceBucket = checkNotNull(builder.sourceBucket);
 432  0
       sourceBlob = checkNotNull(builder.sourceBlob);
 433  0
       sourceOptions = ImmutableList.copyOf(builder.sourceOptions);
 434  0
       target = checkNotNull(builder.target);
 435  0
       targetOptions = ImmutableList.copyOf(builder.targetOptions);
 436  0
     }
 437  
 
 438  
     public String sourceBucket() {
 439  0
       return sourceBucket;
 440  
     }
 441  
 
 442  
     public String sourceBlob() {
 443  0
       return sourceBlob;
 444  
     }
 445  
 
 446  
     public List<BlobSourceOption> sourceOptions() {
 447  0
       return sourceOptions;
 448  
     }
 449  
 
 450  
     public BlobInfo target() {
 451  0
       return target;
 452  
     }
 453  
 
 454  
     public List<BlobTargetOption> targetOptions() {
 455  0
       return targetOptions;
 456  
     }
 457  
 
 458  
     public static CopyRequest of(String sourceBucket, String sourceBlob, BlobInfo target) {
 459  0
       return builder().source(sourceBucket, sourceBlob).target(target).build();
 460  
     }
 461  
 
 462  
     public static CopyRequest of(String sourceBucket, String sourceBlob, String targetBlob) {
 463  0
       return of(sourceBucket, sourceBlob, BlobInfo.of(sourceBucket, targetBlob));
 464  
     }
 465  
 
 466  
     public static Builder builder() {
 467  0
       return new Builder();
 468  
     }
 469  
   }
 470  
 
 471  
   /**
 472  
    * Create a new bucket.
 473  
    *
 474  
    * @return a complete bucket information.
 475  
    * @throws StorageException upon failure
 476  
    */
 477  
   BucketInfo create(BucketInfo bucketInfo, BucketTargetOption... options);
 478  
 
 479  
   /**
 480  
    * Create a new blob.
 481  
    *
 482  
    * @return a complete blob information.
 483  
    * @throws StorageException upon failure
 484  
    */
 485  
   BlobInfo create(BlobInfo blobInfo, byte[] content, BlobTargetOption... options);
 486  
 
 487  
   /**
 488  
    * Return the requested bucket or {@code null} if not found.
 489  
    *
 490  
    * @throws StorageException upon failure
 491  
    */
 492  
   BucketInfo get(String bucket, BucketSourceOption... options);
 493  
 
 494  
   /**
 495  
    * Return the requested blob or {@code null} if not found.
 496  
    *
 497  
    * @throws StorageException upon failure
 498  
    */
 499  
   BlobInfo get(String bucket, String blob, BlobSourceOption... options);
 500  
 
 501  
   /**
 502  
    * List the project's buckets.
 503  
    *
 504  
    * @throws StorageException upon failure
 505  
    */
 506  
   ListResult<BucketInfo> list(BucketListOption... options);
 507  
 
 508  
   /**
 509  
    * List the bucket's blobs.
 510  
    *
 511  
    * @throws StorageException upon failure
 512  
    */
 513  
   ListResult<BlobInfo> list(String bucket, BlobListOption... options);
 514  
 
 515  
   /**
 516  
    * Update bucket information.
 517  
    *
 518  
    * @return the updated bucket
 519  
    * @throws StorageException upon failure
 520  
    */
 521  
   BucketInfo update(BucketInfo bucketInfo, BucketTargetOption... options);
 522  
 
 523  
   /**
 524  
    * Update blob information.
 525  
    *
 526  
    * @return the updated blob
 527  
    * @throws StorageException upon failure
 528  
    */
 529  
   BlobInfo update(BlobInfo blobInfo, BlobTargetOption... options);
 530  
 
 531  
   /**
 532  
    * Delete the requested bucket.
 533  
    *
 534  
    * @return true if bucket was deleted
 535  
    * @throws StorageException upon failure
 536  
    */
 537  
   boolean delete(String bucket, BucketSourceOption... options);
 538  
 
 539  
   /**
 540  
    * Delete the requested blob.
 541  
    *
 542  
    * @return true if blob was deleted
 543  
    * @throws StorageException upon failure
 544  
    */
 545  
   boolean delete(String bucket, String blob, BlobSourceOption... options);
 546  
 
 547  
   /**
 548  
    * Send a compose request.
 549  
    *
 550  
    * @return the composed blob.
 551  
    * @throws StorageException upon failure
 552  
    */
 553  
   BlobInfo compose(ComposeRequest composeRequest);
 554  
 
 555  
   /**
 556  
    * Send a copy request.
 557  
    *
 558  
    * @return the copied blob.
 559  
    * @throws StorageException upon failure
 560  
    */
 561  
   BlobInfo copy(CopyRequest copyRequest);
 562  
 
 563  
   /**
 564  
    * Reads all the bytes from a blob.
 565  
    *
 566  
    * @return the blob's content.
 567  
    * @throws StorageException upon failure
 568  
    */
 569  
   byte[] readAllBytes(String bucket, String blob, BlobSourceOption... options);
 570  
 
 571  
   /**
 572  
    * Send a batch request.
 573  
    *
 574  
    * @return the batch response
 575  
    * @throws StorageException upon failure
 576  
    */
 577  
   BatchResponse apply(BatchRequest batchRequest);
 578  
 
 579  
   /**
 580  
    * Return a channel for reading the blob's content.
 581  
    *
 582  
    * @throws StorageException upon failure
 583  
    */
 584  
   BlobReadChannel reader(String bucket, String blob, BlobSourceOption... options);
 585  
 
 586  
   /**
 587  
    * Create a blob and return a channel for writing its content.
 588  
    *
 589  
    * @throws StorageException upon failure
 590  
    */
 591  
   BlobWriteChannel writer(BlobInfo blobInfo, BlobTargetOption... options);
 592  
 
 593  
   /**
 594  
    * Generates a signed URL for a blob.
 595  
    * If you have a blob that you want to allow access to for a fixed
 596  
    * amount of time, you can use this method to generate a URL that
 597  
    * is only valid within a certain time period.
 598  
    * This is particularly useful if you don't want publicly
 599  
    * accessible blobs, but don't want to require users to explicitly log in.
 600  
    *
 601  
    * @param blobInfo the blob associated with the signed url
 602  
    * @param  expirationTimeInSeconds the signed URL expiration (using epoch time)
 603  
    * @see <a href="https://cloud.google.com/storage/docs/access-control#Signed-URLs">Signed-URLs</a>
 604  
    */
 605  
   URL signUrl(BlobInfo blobInfo, long expirationTimeInSeconds, SignUrlOption... options);
 606  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.storage.StorageException.html b/site/0.0.7/cobertura/com.google.gcloud.storage.StorageException.html new file mode 100644 index 000000000000..abad47567fa3 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.storage.StorageException.html @@ -0,0 +1,118 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.storage.StorageException
+
 
+ + + + +
Classes in this File Line Coverage Branch Coverage Complexity
StorageException
0%
0/2
N/A
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.storage;
 18  
 
 19  
 /**
 20  
  * Storage service exception.
 21  
  *
 22  
  * @see <a href="https://cloud.google.com/storage/docs/json_api/v1/status-codes">Google Cloud
 23  
  *      Storage error codes</a>
 24  
  */
 25  
 public class StorageException extends RuntimeException {
 26  
 
 27  
   private static final long serialVersionUID = -3748432005065428084L;
 28  
 
 29  
   private final int code;
 30  
   private final boolean retryable;
 31  
 
 32  
   public StorageException(int code, String message, boolean retryable) {
 33  
     super(message);
 34  
     this.code = code;
 35  
     this.retryable = retryable;
 36  
   }
 37  
 
 38  
   /**
 39  
    * Returns the code associated with this exception.
 40  
    */
 41  
   public int code() {
 42  0
     return code;
 43  
   }
 44  
 
 45  
   public boolean retryable() {
 46  0
     return retryable;
 47  
   }
 48  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.storage.StorageFactory.html b/site/0.0.7/cobertura/com.google.gcloud.storage.StorageFactory.html new file mode 100644 index 000000000000..a2d306304247 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.storage.StorageFactory.html @@ -0,0 +1,108 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.storage.StorageFactory
+
 
+ + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
StorageFactory
0%
0/2
N/A
1
StorageFactory$1
0%
0/1
N/A
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.storage;
 18  
 
 19  
 
 20  
 /**
 21  
  * A base class for Storage factories.
 22  
  */
 23  
 public abstract class StorageFactory {
 24  
 
 25  0
   private static final StorageFactory INSTANCE = new StorageFactory() {
 26  
     @Override
 27  
     public Storage get(StorageOptions options) {
 28  0
       return new StorageImpl(options);
 29  
     }
 30  
   };
 31  
 
 32  
   /**
 33  
    * Returns the default factory instance.
 34  
    */
 35  
   public static StorageFactory instance() {
 36  0
     return INSTANCE;
 37  
   }
 38  
 
 39  
   /**
 40  
    * Returns a {@code Storage} service for the given options.
 41  
    */
 42  
   public abstract Storage get(StorageOptions options);
 43  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.storage.StorageImpl.html b/site/0.0.7/cobertura/com.google.gcloud.storage.StorageImpl.html new file mode 100644 index 000000000000..071529638081 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.storage.StorageImpl.html @@ -0,0 +1,931 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.storage.StorageImpl
+
 
+ + + + + + + + + + + + + + + + + + + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
StorageImpl
0%
0/204
0%
0/52
1.843
StorageImpl$1
0%
0/5
0%
0/4
1.843
StorageImpl$10
0%
0/2
N/A
1.843
StorageImpl$11
0%
0/2
N/A
1.843
StorageImpl$12
0%
0/2
N/A
1.843
StorageImpl$13
0%
0/2
N/A
1.843
StorageImpl$14
0%
0/2
N/A
1.843
StorageImpl$15
0%
0/2
N/A
1.843
StorageImpl$16
0%
0/2
N/A
1.843
StorageImpl$2
0%
0/2
N/A
1.843
StorageImpl$3
0%
0/2
N/A
1.843
StorageImpl$4
0%
0/6
0%
0/2
1.843
StorageImpl$5
0%
0/6
0%
0/2
1.843
StorageImpl$6
0%
0/2
N/A
1.843
StorageImpl$7
0%
0/2
N/A
1.843
StorageImpl$8
0%
0/2
N/A
1.843
StorageImpl$9
0%
0/2
N/A
1.843
StorageImpl$BasePageFetcher
0%
0/11
0%
0/6
1.843
StorageImpl$BlobPageFetcher
0%
0/1
N/A
1.843
StorageImpl$BucketPageFetcher
0%
0/1
N/A
1.843
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.storage;
 18  
 
 19  
 import static com.google.common.base.MoreObjects.firstNonNull;
 20  
 import static com.google.common.base.Preconditions.checkArgument;
 21  
 import static com.google.gcloud.RetryHelper.runWithRetries;
 22  
 import static com.google.gcloud.spi.StorageRpc.Option.DELIMITER;
 23  
 import static com.google.gcloud.spi.StorageRpc.Option.IF_GENERATION_MATCH;
 24  
 import static com.google.gcloud.spi.StorageRpc.Option.IF_GENERATION_NOT_MATCH;
 25  
 import static com.google.gcloud.spi.StorageRpc.Option.IF_METAGENERATION_MATCH;
 26  
 import static com.google.gcloud.spi.StorageRpc.Option.IF_METAGENERATION_NOT_MATCH;
 27  
 import static com.google.gcloud.spi.StorageRpc.Option.IF_SOURCE_GENERATION_MATCH;
 28  
 import static com.google.gcloud.spi.StorageRpc.Option.IF_SOURCE_GENERATION_NOT_MATCH;
 29  
 import static com.google.gcloud.spi.StorageRpc.Option.IF_SOURCE_METAGENERATION_MATCH;
 30  
 import static com.google.gcloud.spi.StorageRpc.Option.IF_SOURCE_METAGENERATION_NOT_MATCH;
 31  
 import static java.net.HttpURLConnection.HTTP_NOT_FOUND;
 32  
 import static java.nio.charset.StandardCharsets.UTF_8;
 33  
 
 34  
 import com.google.api.services.storage.model.StorageObject;
 35  
 import com.google.common.base.Function;
 36  
 import com.google.common.base.Functions;
 37  
 import com.google.common.collect.ImmutableMap;
 38  
 import com.google.common.collect.Iterables;
 39  
 import com.google.common.collect.Lists;
 40  
 import com.google.common.collect.Maps;
 41  
 import com.google.common.collect.Sets;
 42  
 import com.google.common.io.BaseEncoding;
 43  
 import com.google.common.primitives.Ints;
 44  
 import com.google.gcloud.AuthCredentials.ServiceAccountAuthCredentials;
 45  
 import com.google.gcloud.BaseService;
 46  
 import com.google.gcloud.ExceptionHandler;
 47  
 import com.google.gcloud.ExceptionHandler.Interceptor;
 48  
 import com.google.gcloud.spi.StorageRpc;
 49  
 import com.google.gcloud.spi.StorageRpc.Tuple;
 50  
 
 51  
 import java.io.Serializable;
 52  
 import java.io.UnsupportedEncodingException;
 53  
 import java.net.MalformedURLException;
 54  
 import java.net.URL;
 55  
 import java.net.URLEncoder;
 56  
 import java.security.InvalidKeyException;
 57  
 import java.security.NoSuchAlgorithmException;
 58  
 import java.security.Signature;
 59  
 import java.security.SignatureException;
 60  
 import java.util.Arrays;
 61  
 import java.util.EnumMap;
 62  
 import java.util.List;
 63  
 import java.util.Map;
 64  
 import java.util.Set;
 65  
 import java.util.concurrent.Callable;
 66  
 
 67  0
 final class StorageImpl extends BaseService<StorageOptions> implements Storage {
 68  
 
 69  0
   private static final Interceptor EXCEPTION_HANDLER_INTERCEPTOR = new Interceptor() {
 70  
 
 71  
     private static final long serialVersionUID = -7758580330857881124L;
 72  
 
 73  
     @Override
 74  
     public RetryResult afterEval(Exception exception, RetryResult retryResult) {
 75  0
       return null;
 76  
     }
 77  
 
 78  
     @Override
 79  
     public RetryResult beforeEval(Exception exception) {
 80  0
       if (exception instanceof StorageException) {
 81  0
         boolean retriable = ((StorageException) exception).retryable();
 82  0
         return retriable ? Interceptor.RetryResult.RETRY : Interceptor.RetryResult.ABORT;
 83  
       }
 84  0
       return null;
 85  
     }
 86  
   };
 87  0
   static final ExceptionHandler EXCEPTION_HANDLER = ExceptionHandler.builder()
 88  0
       .abortOn(RuntimeException.class).interceptor(EXCEPTION_HANDLER_INTERCEPTOR).build();
 89  0
   private static final byte[] EMPTY_BYTE_ARRAY = {};
 90  
 
 91  
   private final StorageRpc storageRpc;
 92  
 
 93  
   StorageImpl(StorageOptions options) {
 94  0
     super(options);
 95  0
     storageRpc = options.storageRpc();
 96  
     // todo: configure timeouts - https://developers.google.com/api-client-library/java/google-api-java-client/errors
 97  
     // todo: provide rewrite - https://cloud.google.com/storage/docs/json_api/v1/objects/rewrite
 98  
     // todo: check if we need to expose https://cloud.google.com/storage/docs/json_api/v1/bucketAccessControls/insert vs using bucket update/patch
 99  0
   }
 100  
 
 101  
   @Override
 102  
   public BucketInfo create(BucketInfo bucketInfo, BucketTargetOption... options) {
 103  0
     final com.google.api.services.storage.model.Bucket bucketPb = bucketInfo.toPb();
 104  0
     final Map<StorageRpc.Option, ?> optionsMap = optionMap(bucketInfo, options);
 105  0
     return BucketInfo.fromPb(runWithRetries(
 106  0
         new Callable<com.google.api.services.storage.model.Bucket>() {
 107  
           @Override
 108  
           public com.google.api.services.storage.model.Bucket call() {
 109  0
             return storageRpc.create(bucketPb, optionsMap);
 110  
           }
 111  0
         }, options().retryParams(), EXCEPTION_HANDLER));
 112  
   }
 113  
 
 114  
   @Override
 115  
   public BlobInfo create(BlobInfo blobInfo, final byte[] content, BlobTargetOption... options) {
 116  0
     final StorageObject blobPb = blobInfo.toPb();
 117  0
     final Map<StorageRpc.Option, ?> optionsMap = optionMap(blobInfo, options);
 118  0
     return BlobInfo.fromPb(runWithRetries(new Callable<StorageObject>() {
 119  
       @Override
 120  
       public StorageObject call() {
 121  0
         return storageRpc.create(blobPb, firstNonNull(content, EMPTY_BYTE_ARRAY), optionsMap);
 122  
       }
 123  0
     }, options().retryParams(), EXCEPTION_HANDLER));
 124  
   }
 125  
 
 126  
   @Override
 127  
   public BucketInfo get(String bucket, BucketSourceOption... options) {
 128  0
     final com.google.api.services.storage.model.Bucket bucketPb = BucketInfo.of(bucket).toPb();
 129  0
     final Map<StorageRpc.Option, ?> optionsMap = optionMap(options);
 130  0
     com.google.api.services.storage.model.Bucket answer = runWithRetries(
 131  0
         new Callable<com.google.api.services.storage.model.Bucket>() {
 132  
           @Override
 133  
           public com.google.api.services.storage.model.Bucket call() {
 134  
             try {
 135  0
               return storageRpc.get(bucketPb, optionsMap);
 136  0
             } catch (StorageException ex) {
 137  0
               if (ex.code() == HTTP_NOT_FOUND) {
 138  0
                 return null;
 139  
               }
 140  0
               throw ex;
 141  
             }
 142  
           }
 143  0
         }, options().retryParams(), EXCEPTION_HANDLER);
 144  0
     return answer == null ? null : BucketInfo.fromPb(answer);
 145  
   }
 146  
 
 147  
   @Override
 148  
   public BlobInfo get(String bucket, String blob, BlobSourceOption... options) {
 149  0
     final StorageObject storedObject = BlobInfo.of(bucket, blob).toPb();
 150  0
     final Map<StorageRpc.Option, ?> optionsMap = optionMap(options);
 151  0
     StorageObject storageObject = runWithRetries(new Callable<StorageObject>() {
 152  
       @Override
 153  
       public StorageObject call() {
 154  
         try {
 155  0
           return storageRpc.get(storedObject, optionsMap);
 156  0
         } catch (StorageException ex) {
 157  0
           if (ex.code() == HTTP_NOT_FOUND) {
 158  0
             return null;
 159  
           }
 160  0
           throw ex;
 161  
         }
 162  
       }
 163  0
     }, options().retryParams(), EXCEPTION_HANDLER);
 164  0
     return storageObject == null ? null : BlobInfo.fromPb(storageObject);
 165  
   }
 166  
 
 167  
   private static abstract class BasePageFetcher<T extends Serializable>
 168  
       implements ListResult.NextPageFetcher<T> {
 169  
 
 170  
     private static final long serialVersionUID = 8236329004030295223L;
 171  
     protected final Map<StorageRpc.Option, ?> requestOptions;
 172  
     protected final StorageOptions serviceOptions;
 173  
 
 174  
     BasePageFetcher(StorageOptions serviceOptions, String cursor,
 175  0
         Map<StorageRpc.Option, ?> optionMap) {
 176  0
       this.serviceOptions = serviceOptions;
 177  0
       ImmutableMap.Builder<StorageRpc.Option, Object> builder = ImmutableMap.builder();
 178  0
       if (cursor != null) {
 179  0
         builder.put(StorageRpc.Option.PAGE_TOKEN, cursor);
 180  
       }
 181  0
       for (Map.Entry<StorageRpc.Option, ?> option : optionMap.entrySet()) {
 182  0
         if (option.getKey() != StorageRpc.Option.PAGE_TOKEN) {
 183  0
           builder.put(option.getKey(), option.getValue());
 184  
         }
 185  0
       }
 186  0
       this.requestOptions = builder.build();
 187  0
     }
 188  
   }
 189  
 
 190  
   private static class BucketPageFetcher extends BasePageFetcher<BucketInfo> {
 191  
 
 192  
     private static final long serialVersionUID = -5490616010200159174L;
 193  
 
 194  
     BucketPageFetcher(StorageOptions serviceOptions, String cursor,
 195  
         Map<StorageRpc.Option, ?> optionMap) {
 196  
       super(serviceOptions, cursor, optionMap);
 197  
     }
 198  
 
 199  
     @Override
 200  
     public ListResult<BucketInfo> nextPage() {
 201  0
       return listBuckets(serviceOptions, requestOptions);
 202  
     }
 203  
   }
 204  
 
 205  
   private static class BlobPageFetcher extends BasePageFetcher<BlobInfo> {
 206  
 
 207  
     private static final long serialVersionUID = -5490616010200159174L;
 208  
     private final String bucket;
 209  
 
 210  
     BlobPageFetcher(String bucket, StorageOptions serviceOptions, String cursor,
 211  
         Map<StorageRpc.Option, ?> optionMap) {
 212  
       super(serviceOptions, cursor, optionMap);
 213  
       this.bucket = bucket;
 214  
     }
 215  
 
 216  
     @Override
 217  
     public ListResult<BlobInfo> nextPage() {
 218  0
       return listBlobs(bucket, serviceOptions, requestOptions);
 219  
     }
 220  
   }
 221  
 
 222  
   @Override
 223  
   public ListResult<BucketInfo> list(BucketListOption... options) {
 224  0
     return listBuckets(options(), optionMap(options));
 225  
   }
 226  
 
 227  
   private static ListResult<BucketInfo> listBuckets(final StorageOptions serviceOptions,
 228  
       final Map<StorageRpc.Option, ?> optionsMap) {
 229  0
     Tuple<String, Iterable<com.google.api.services.storage.model.Bucket>> result = runWithRetries(
 230  0
         new Callable<Tuple<String, Iterable<com.google.api.services.storage.model.Bucket>>>() {
 231  
           @Override
 232  
           public Tuple<String, Iterable<com.google.api.services.storage.model.Bucket>> call() {
 233  0
             return serviceOptions.storageRpc().list(optionsMap);
 234  
           }
 235  0
         }, serviceOptions.retryParams(), EXCEPTION_HANDLER);
 236  0
     String cursor = result.x();
 237  0
     return new ListResult<>(new BucketPageFetcher(serviceOptions, cursor, optionsMap), cursor,
 238  0
         Iterables.transform(result.y(),
 239  0
             new Function<com.google.api.services.storage.model.Bucket, BucketInfo>() {
 240  
               @Override
 241  
               public BucketInfo apply(com.google.api.services.storage.model.Bucket bucketPb) {
 242  0
                 return BucketInfo.fromPb(bucketPb);
 243  
               }
 244  
             }));
 245  
   }
 246  
 
 247  
   @Override
 248  
   public ListResult<BlobInfo> list(final String bucket, BlobListOption... options) {
 249  0
     return listBlobs(bucket, options(), optionMap(options));
 250  
   }
 251  
 
 252  
   private static ListResult<BlobInfo> listBlobs(final String bucket,
 253  
       final StorageOptions serviceOptions, final Map<StorageRpc.Option, ?> optionsMap) {
 254  0
     Tuple<String, Iterable<StorageObject>> result = runWithRetries(
 255  0
         new Callable<Tuple<String, Iterable<StorageObject>>>() {
 256  
           @Override
 257  
           public Tuple<String, Iterable<StorageObject>> call() {
 258  0
             return serviceOptions.storageRpc().list(bucket, optionsMap);
 259  
           }
 260  0
         }, serviceOptions.retryParams(), EXCEPTION_HANDLER);
 261  0
     String cursor = result.x();
 262  0
     return new ListResult<>(new BlobPageFetcher(bucket, serviceOptions, cursor, optionsMap), cursor,
 263  0
         Iterables.transform(result.y(),
 264  0
             new Function<StorageObject, BlobInfo>() {
 265  
               @Override
 266  
               public BlobInfo apply(StorageObject storageObject) {
 267  0
                 return BlobInfo.fromPb(storageObject);
 268  
               }
 269  
             }));
 270  
   }
 271  
 
 272  
   @Override
 273  
   public BucketInfo update(BucketInfo bucketInfo, BucketTargetOption... options) {
 274  0
     final com.google.api.services.storage.model.Bucket bucketPb = bucketInfo.toPb();
 275  0
     final Map<StorageRpc.Option, ?> optionsMap = optionMap(bucketInfo, options);
 276  0
     return BucketInfo.fromPb(runWithRetries(
 277  0
         new Callable<com.google.api.services.storage.model.Bucket>() {
 278  
           @Override
 279  
           public com.google.api.services.storage.model.Bucket call() {
 280  0
             return storageRpc.patch(bucketPb, optionsMap);
 281  
           }
 282  0
         }, options().retryParams(), EXCEPTION_HANDLER));
 283  
   }
 284  
 
 285  
   @Override
 286  
   public BlobInfo update(BlobInfo blobInfo, BlobTargetOption... options) {
 287  0
     final StorageObject storageObject = blobInfo.toPb();
 288  0
     final Map<StorageRpc.Option, ?> optionsMap = optionMap(blobInfo, options);
 289  0
     return BlobInfo.fromPb(runWithRetries(new Callable<StorageObject>() {
 290  
       @Override
 291  
       public StorageObject call() {
 292  0
         return storageRpc.patch(storageObject, optionsMap);
 293  
       }
 294  0
     }, options().retryParams(), EXCEPTION_HANDLER));
 295  
   }
 296  
 
 297  
   @Override
 298  
   public boolean delete(String bucket, BucketSourceOption... options) {
 299  0
     final com.google.api.services.storage.model.Bucket bucketPb = BucketInfo.of(bucket).toPb();
 300  0
     final Map<StorageRpc.Option, ?> optionsMap = optionMap(options);
 301  0
     return runWithRetries(new Callable<Boolean>() {
 302  
       @Override
 303  
       public Boolean call() {
 304  0
         return storageRpc.delete(bucketPb, optionsMap);
 305  
       }
 306  0
     }, options().retryParams(), EXCEPTION_HANDLER);
 307  
   }
 308  
 
 309  
   @Override
 310  
   public boolean delete(String bucket, String blob, BlobSourceOption... options) {
 311  0
     final StorageObject storageObject = BlobInfo.of(bucket, blob).toPb();
 312  0
     final Map<StorageRpc.Option, ?> optionsMap = optionMap(options);
 313  0
     return runWithRetries(new Callable<Boolean>() {
 314  
       @Override
 315  
       public Boolean call() {
 316  0
         return storageRpc.delete(storageObject, optionsMap);
 317  
       }
 318  0
     }, options().retryParams(), EXCEPTION_HANDLER);
 319  
   }
 320  
 
 321  
   @Override
 322  
   public BlobInfo compose(final ComposeRequest composeRequest) {
 323  0
     final List<StorageObject> sources =
 324  0
         Lists.newArrayListWithCapacity(composeRequest.sourceBlobs().size());
 325  0
     for (ComposeRequest.SourceBlob sourceBlob : composeRequest.sourceBlobs()) {
 326  0
       sources.add(BlobInfo.builder(composeRequest.target().bucket(), sourceBlob.name())
 327  0
           .generation(sourceBlob.generation()).build().toPb());
 328  0
     }
 329  0
     final StorageObject target = composeRequest.target().toPb();
 330  0
     final Map<StorageRpc.Option, ?> targetOptions = optionMap(composeRequest.target().generation(),
 331  0
         composeRequest.target().metageneration(), composeRequest.targetOptions());
 332  0
     return BlobInfo.fromPb(runWithRetries(new Callable<StorageObject>() {
 333  
       @Override
 334  
       public StorageObject call() {
 335  0
         return storageRpc.compose(sources, target, targetOptions);
 336  
       }
 337  0
     }, options().retryParams(), EXCEPTION_HANDLER));
 338  
   }
 339  
 
 340  
   @Override
 341  
   public BlobInfo copy(CopyRequest copyRequest) {
 342  0
     final StorageObject source =
 343  0
         BlobInfo.of(copyRequest.sourceBucket(), copyRequest.sourceBlob()).toPb();
 344  0
     copyRequest.sourceOptions();
 345  0
     final Map<StorageRpc.Option, ?> sourceOptions =
 346  0
         optionMap(null, null, copyRequest.sourceOptions(), true);
 347  0
     final StorageObject target = copyRequest.target().toPb();
 348  0
     final Map<StorageRpc.Option, ?> targetOptions = optionMap(copyRequest.target().generation(),
 349  0
         copyRequest.target().metageneration(), copyRequest.targetOptions());
 350  0
     return BlobInfo.fromPb(runWithRetries(new Callable<StorageObject>() {
 351  
       @Override
 352  
       public StorageObject call() {
 353  0
         return storageRpc.copy(source, sourceOptions, target, targetOptions);
 354  
       }
 355  0
     }, options().retryParams(), EXCEPTION_HANDLER));
 356  
   }
 357  
 
 358  
   @Override
 359  
   public byte[] readAllBytes(String bucket, String blob, BlobSourceOption... options) {
 360  0
     final StorageObject storageObject = BlobInfo.of(bucket, blob).toPb();
 361  0
     final Map<StorageRpc.Option, ?> optionsMap = optionMap(options);
 362  0
     return runWithRetries(new Callable<byte[]>() {
 363  
       @Override
 364  
       public byte[] call() {
 365  0
         return storageRpc.load(storageObject, optionsMap);
 366  
       }
 367  0
     }, options().retryParams(), EXCEPTION_HANDLER);
 368  
   }
 369  
 
 370  
   @Override
 371  
   public BatchResponse apply(BatchRequest batchRequest) {
 372  0
     List<Tuple<StorageObject, Map<StorageRpc.Option, ?>>> toDelete =
 373  0
         Lists.newArrayListWithCapacity(batchRequest.toDelete().size());
 374  0
     for (Map.Entry<BlobInfo, Iterable<BlobSourceOption>> entry : batchRequest.toDelete().entrySet()) {
 375  0
       BlobInfo blobInfo = entry.getKey();
 376  0
       Map<StorageRpc.Option, ?> optionsMap =
 377  0
           optionMap(blobInfo.generation(), blobInfo.metageneration(), entry.getValue());
 378  0
       StorageObject storageObject = blobInfo.toPb();
 379  0
       toDelete.add(Tuple.<StorageObject, Map<StorageRpc.Option, ?>>of(storageObject, optionsMap));
 380  0
     }
 381  0
     List<Tuple<StorageObject, Map<StorageRpc.Option, ?>>> toUpdate =
 382  0
         Lists.newArrayListWithCapacity(batchRequest.toUpdate().size());
 383  0
     for (Map.Entry<BlobInfo, Iterable<BlobTargetOption>> entry : batchRequest.toUpdate().entrySet()) {
 384  0
       BlobInfo blobInfo = entry.getKey();
 385  0
       Map<StorageRpc.Option, ?> optionsMap =
 386  0
           optionMap(blobInfo.generation(), blobInfo.metageneration(), entry.getValue());
 387  0
       toUpdate.add(Tuple.<StorageObject, Map<StorageRpc.Option, ?>>of(blobInfo.toPb(), optionsMap));
 388  0
     }
 389  0
     List<Tuple<StorageObject, Map<StorageRpc.Option, ?>>> toGet =
 390  0
         Lists.newArrayListWithCapacity(batchRequest.toGet().size());
 391  0
     for (Map.Entry<BlobInfo, Iterable<BlobSourceOption>> entry : batchRequest.toGet().entrySet()) {
 392  0
       BlobInfo blobInfo = entry.getKey();
 393  0
       Map<StorageRpc.Option, ?> optionsMap =
 394  0
           optionMap(blobInfo.generation(), blobInfo.metageneration(), entry.getValue());
 395  0
       toGet.add(Tuple.<StorageObject, Map<StorageRpc.Option, ?>>of(blobInfo.toPb(), optionsMap));
 396  0
     }
 397  0
     StorageRpc.BatchResponse response =
 398  0
         storageRpc.batch(new StorageRpc.BatchRequest(toDelete, toUpdate, toGet));
 399  0
     List<BatchResponse.Result<Boolean>> deletes = transformBatchResult(
 400  0
         toDelete, response.deletes, Functions.<Boolean>identity());
 401  0
     List<BatchResponse.Result<BlobInfo>> updates = transformBatchResult(
 402  
         toUpdate, response.updates, BlobInfo.FROM_PB_FUNCTION);
 403  0
     List<BatchResponse.Result<BlobInfo>> gets = transformBatchResult(
 404  
         toGet, response.gets, BlobInfo.FROM_PB_FUNCTION, HTTP_NOT_FOUND);
 405  0
     return new BatchResponse(deletes, updates, gets);
 406  
   }
 407  
 
 408  
   private <I, O extends Serializable> List<BatchResponse.Result<O>> transformBatchResult(
 409  
       Iterable<Tuple<StorageObject, Map<StorageRpc.Option, ?>>> request,
 410  
       Map<StorageObject, Tuple<I, StorageException>> results, Function<I, O> transform,
 411  
       int... nullOnErrorCodes) {
 412  0
     Set nullOnErrorCodesSet = Sets.newHashSet(Ints.asList(nullOnErrorCodes));
 413  0
     List<BatchResponse.Result<O>> response = Lists.newArrayListWithCapacity(results.size());
 414  0
     for (Tuple<StorageObject, ?> tuple : request) {
 415  0
       Tuple<I, StorageException> result = results.get(tuple.x());
 416  0
       if (result.x() != null) {
 417  0
         response.add(BatchResponse.Result.of(transform.apply(result.x())));
 418  
       } else {
 419  0
         StorageException exception = result.y();
 420  0
         if (nullOnErrorCodesSet.contains(exception.code())) {
 421  
           //noinspection unchecked
 422  0
           response.add(BatchResponse.Result.<O>empty());
 423  
         } else {
 424  0
           response.add(new BatchResponse.Result<O>(exception));
 425  
         }
 426  
       }
 427  0
     }
 428  0
     return response;
 429  
   }
 430  
 
 431  
   @Override
 432  
   public BlobReadChannel reader(String bucket, String blob, BlobSourceOption... options) {
 433  0
     Map<StorageRpc.Option, ?> optionsMap = optionMap(options);
 434  0
     return new BlobReadChannelImpl(options(), BlobInfo.of(bucket, blob), optionsMap);
 435  
   }
 436  
 
 437  
  @Override
 438  
   public BlobWriteChannel writer(BlobInfo blobInfo, BlobTargetOption... options) {
 439  0
     final Map<StorageRpc.Option, ?> optionsMap = optionMap(blobInfo, options);
 440  0
     return new BlobWriterChannelImpl(options(), blobInfo, optionsMap);
 441  
   }
 442  
 
 443  
   @Override
 444  
   public URL signUrl(BlobInfo blobInfo, long expiration, SignUrlOption... options) {
 445  0
     EnumMap<SignUrlOption.Option, Object> optionMap = Maps.newEnumMap(SignUrlOption.Option.class);
 446  0
     for (SignUrlOption option : options) {
 447  0
       optionMap.put(option.option(), option.value());
 448  
     }
 449  0
     ServiceAccountAuthCredentials cred =
 450  0
         (ServiceAccountAuthCredentials) optionMap.get(SignUrlOption.Option.SERVICE_ACCOUNT_CRED);
 451  0
     if (cred == null) {
 452  0
       checkArgument(options().authCredentials() instanceof ServiceAccountAuthCredentials,
 453  
           "Signing key was not provided and could not be derived");
 454  0
       cred = (ServiceAccountAuthCredentials) this.options().authCredentials();
 455  
     }
 456  
     // construct signature data - see https://cloud.google.com/storage/docs/access-control#Signed-URLs
 457  0
     StringBuilder stBuilder = new StringBuilder();
 458  0
     if (optionMap.containsKey(SignUrlOption.Option.HTTP_METHOD)) {
 459  0
       stBuilder.append(optionMap.get(SignUrlOption.Option.HTTP_METHOD));
 460  
     } else {
 461  0
       stBuilder.append(HttpMethod.GET);
 462  
     }
 463  0
     stBuilder.append('\n');
 464  0
     if (firstNonNull((Boolean) optionMap.get(SignUrlOption.Option.MD5) , false)) {
 465  0
       checkArgument(blobInfo.md5() != null, "Blob is missing a value for md5");
 466  0
       stBuilder.append(blobInfo.md5());
 467  
     }
 468  0
     stBuilder.append('\n');
 469  0
     if (firstNonNull((Boolean) optionMap.get(SignUrlOption.Option.CONTENT_TYPE) , false)) {
 470  0
       checkArgument(blobInfo.contentType() != null, "Blob is missing a value for content-type");
 471  0
       stBuilder.append(blobInfo.contentType());
 472  
     }
 473  0
     stBuilder.append('\n');
 474  0
     stBuilder.append(expiration).append('\n');
 475  0
     StringBuilder path = new StringBuilder();
 476  0
     if (!blobInfo.bucket().startsWith("/")) {
 477  0
       path.append('/');
 478  
     }
 479  0
     path.append(blobInfo.bucket());
 480  0
     if (!blobInfo.bucket().endsWith("/")) {
 481  0
       path.append('/');
 482  
     }
 483  0
     if (blobInfo.name().startsWith("/")) {
 484  0
       path.setLength(stBuilder.length() - 1);
 485  
     }
 486  0
     path.append(blobInfo.name());
 487  0
     stBuilder.append(path);
 488  
     try {
 489  0
       Signature signer = Signature.getInstance("SHA256withRSA");
 490  0
       signer.initSign(cred.privateKey());
 491  0
       signer.update(stBuilder.toString().getBytes(UTF_8));
 492  
       String signature =
 493  0
           URLEncoder.encode(BaseEncoding.base64().encode(signer.sign()), UTF_8.name());
 494  0
       stBuilder = new StringBuilder("https://storage.googleapis.com").append(path);
 495  0
       stBuilder.append("?GoogleAccessId=").append(cred.account());
 496  0
       stBuilder.append("&Expires=").append(expiration);
 497  0
       stBuilder.append("&Signature=").append(signature);
 498  0
       return new URL(stBuilder.toString());
 499  0
     } catch (MalformedURLException | NoSuchAlgorithmException | UnsupportedEncodingException e) {
 500  0
       throw new IllegalStateException(e);
 501  0
     } catch (SignatureException | InvalidKeyException e) {
 502  0
       throw new IllegalArgumentException("Invalid service account private key");
 503  
     }
 504  
   }
 505  
 
 506  
   private Map<StorageRpc.Option, ?> optionMap(Long generation, Long metaGeneration,
 507  
       Iterable<? extends Option> options) {
 508  0
     return optionMap(generation, metaGeneration, options, false);
 509  
   }
 510  
 
 511  
   private Map<StorageRpc.Option, ?> optionMap(Long generation, Long metaGeneration,
 512  
       Iterable<? extends Option> options, boolean useAsSource) {
 513  0
     Map<StorageRpc.Option, Object> temp = Maps.newEnumMap(StorageRpc.Option.class);
 514  0
     for (Option option : options) {
 515  0
       Object prev = temp.put(option.rpcOption(), option.value());
 516  0
       checkArgument(prev == null, "Duplicate option %s", option);
 517  0
     }
 518  0
     Boolean value = (Boolean) temp.remove(DELIMITER);
 519  0
     if (Boolean.TRUE.equals(value)) {
 520  0
       temp.put(DELIMITER, options().pathDelimiter());
 521  
     }
 522  0
     if (useAsSource) {
 523  0
       addToOptionMap(IF_GENERATION_MATCH, IF_SOURCE_GENERATION_MATCH, generation, temp);
 524  0
       addToOptionMap(IF_GENERATION_NOT_MATCH, IF_SOURCE_GENERATION_NOT_MATCH, generation, temp);
 525  0
       addToOptionMap(IF_METAGENERATION_MATCH, IF_SOURCE_METAGENERATION_MATCH, metaGeneration, temp);
 526  0
       addToOptionMap(IF_METAGENERATION_NOT_MATCH,
 527  
           IF_SOURCE_METAGENERATION_NOT_MATCH, metaGeneration, temp);
 528  
     } else {
 529  0
       addToOptionMap(IF_GENERATION_MATCH, generation, temp);
 530  0
       addToOptionMap(IF_GENERATION_NOT_MATCH, generation, temp);
 531  0
       addToOptionMap(IF_METAGENERATION_MATCH, metaGeneration, temp);
 532  0
       addToOptionMap(IF_METAGENERATION_NOT_MATCH, metaGeneration, temp);
 533  
     }
 534  0
     return ImmutableMap.copyOf(temp);
 535  
   }
 536  
 
 537  
   private static <T> void addToOptionMap(StorageRpc.Option option, T defaultValue,
 538  
       Map<StorageRpc.Option, Object> map) {
 539  0
     addToOptionMap(option, option, defaultValue, map);
 540  0
   }
 541  
 
 542  
   private static <T> void addToOptionMap(StorageRpc.Option getOption, StorageRpc.Option putOption,
 543  
       T defaultValue, Map<StorageRpc.Option, Object> map) {
 544  0
     if (map.containsKey(getOption)) {
 545  
       @SuppressWarnings("unchecked")
 546  0
       T value = (T) map.remove(getOption);
 547  0
       checkArgument(value != null || defaultValue != null,
 548  0
           "Option " + getOption.value() + " is missing a value");
 549  0
       value = firstNonNull(value, defaultValue);
 550  0
       map.put(putOption, value);
 551  
     }
 552  0
   }
 553  
 
 554  
   private Map<StorageRpc.Option, ?> optionMap(Option... options) {
 555  0
     return optionMap(null, null, Arrays.asList(options));
 556  
   }
 557  
 
 558  
   private Map<StorageRpc.Option, ?> optionMap(Long generation, Long metaGeneration,
 559  
       Option... options) {
 560  0
     return optionMap(generation, metaGeneration, Arrays.asList(options));
 561  
   }
 562  
 
 563  
   private Map<StorageRpc.Option, ?> optionMap(BucketInfo bucketInfo, Option... options) {
 564  0
     return optionMap(null, bucketInfo.metageneration(), options);
 565  
   }
 566  
 
 567  
   private Map<StorageRpc.Option, ?> optionMap(BlobInfo blobInfo, Option... options) {
 568  0
     return optionMap(blobInfo.generation(), blobInfo.metageneration(), options);
 569  
   }
 570  
 }
+ + + + diff --git a/site/0.0.7/cobertura/com.google.gcloud.storage.StorageOptions.html b/site/0.0.7/cobertura/com.google.gcloud.storage.StorageOptions.html new file mode 100644 index 000000000000..1ceaf08d27c6 --- /dev/null +++ b/site/0.0.7/cobertura/com.google.gcloud.storage.StorageOptions.html @@ -0,0 +1,233 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.storage.StorageOptions
+
 
+ + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
StorageOptions
0%
0/23
0%
0/12
1.538
StorageOptions$1
N/A
N/A
1.538
StorageOptions$Builder
0%
0/4
N/A
1.538
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.storage;
 18  
 
 19  
 import com.google.common.base.MoreObjects;
 20  
 import com.google.common.collect.ImmutableSet;
 21  
 import com.google.gcloud.ServiceOptions;
 22  
 import com.google.gcloud.spi.DefaultStorageRpc;
 23  
 import com.google.gcloud.spi.StorageRpc;
 24  
 import com.google.gcloud.spi.StorageRpcFactory;
 25  
 
 26  
 import java.util.Objects;
 27  
 import java.util.Set;
 28  
 
 29  0
 public class StorageOptions extends ServiceOptions<StorageRpc, StorageOptions> {
 30  
 
 31  
   private static final long serialVersionUID = -7804860602287801084L;
 32  
   private static final String GCS_SCOPE = "https://www.googleapis.com/auth/devstorage.full_control";
 33  0
   private static final Set<String> SCOPES = ImmutableSet.of(GCS_SCOPE);
 34  
   private static final String DEFAULT_PATH_DELIMITER = "/";
 35  
 
 36  
   private final String pathDelimiter;
 37  
   private transient StorageRpc storageRpc;
 38  
 
 39  0
   public static class Builder extends
 40  
       ServiceOptions.Builder<StorageRpc, StorageOptions, Builder> {
 41  
 
 42  
     private String pathDelimiter;
 43  
 
 44  
     private Builder() {}
 45  
 
 46  
     private Builder(StorageOptions options) {
 47  
       super(options);
 48  
     }
 49  
 
 50  
     public Builder pathDelimiter(String pathDelimiter) {
 51  0
       this.pathDelimiter = pathDelimiter;
 52  0
       return this;
 53  
     }
 54  
 
 55  
     @Override
 56  
     public StorageOptions build() {
 57  0
       return new StorageOptions(this);
 58  
     }
 59  
   }
 60  
 
 61  
   private StorageOptions(Builder builder) {
 62  0
     super(builder);
 63  0
     pathDelimiter = MoreObjects.firstNonNull(builder.pathDelimiter, DEFAULT_PATH_DELIMITER);
 64  
     // todo: consider providing read-timeout
 65  0
   }
 66  
 
 67  
   @Override
 68  
   protected Set<String> scopes() {
 69  0
     return SCOPES;
 70  
   }
 71  
 
 72  
   StorageRpc storageRpc() {
 73  0
     if (storageRpc != null) {
 74  0
       return storageRpc;
 75  
     }
 76  0
     if (serviceRpcFactory() != null) {
 77  0
       storageRpc = serviceRpcFactory().create(this);
 78  
     } else {
 79  0
       storageRpc = createRpc(this, StorageRpcFactory.class);
 80  0
       if (storageRpc == null) {
 81  0
         storageRpc = new DefaultStorageRpc(this);
 82  
       }
 83  
     }
 84  0
     return storageRpc;
 85  
   }
 86  
 
 87  
   public String pathDelimiter() {
 88  0
     return pathDelimiter;
 89  
   }
 90  
 
 91  
   @Override
 92  
   public Builder toBuilder() {
 93  0
     return new Builder(this);
 94  
   }
 95  
 
 96  
   @Override
 97  
   public int hashCode() {
 98  0
     return baseHashCode() ^ Objects.hash(pathDelimiter);
 99  
   }
 100  
 
 101  
   @Override
 102  
   public boolean equals(Object obj) {
 103  0
     if (!(obj instanceof StorageOptions)) {
 104  0
       return false;
 105  
     }
 106  0
     StorageOptions other = (StorageOptions) obj;
 107  0
     return baseEquals(other) && Objects.equals(pathDelimiter, other.pathDelimiter);
 108  
   }
 109  
 
 110  
   public static StorageOptions defaultInstance() {
 111  0
     return builder().build();
 112  
   }
 113  
 
 114  
   public static Builder builder() {
 115  0
     return new Builder();
 116  
   }
 117  
 }
+ + + + diff --git a/site/0.0.7/cobertura/css/help.css b/site/0.0.7/cobertura/css/help.css new file mode 100644 index 000000000000..c6fbb28972f1 --- /dev/null +++ b/site/0.0.7/cobertura/css/help.css @@ -0,0 +1,22 @@ +dl { + float: left; + width: 100%; +} + +dt { + border-top: 1px solid #808080; + float: left; + font-weight: bold; + margin: 0; + padding: 1em; + width: 20%; +} + +dd { + border-top: 1px solid #808080; + float: left; + font-style: italic; + margin: 0; + padding: 1em; + width: 60%; +} diff --git a/site/0.0.7/cobertura/css/main.css b/site/0.0.7/cobertura/css/main.css new file mode 100644 index 000000000000..9b5b0dc6831d --- /dev/null +++ b/site/0.0.7/cobertura/css/main.css @@ -0,0 +1,131 @@ +@import url("help.css"); +@import url("source-viewer.css"); +@import url("tooltip.css"); + +.hidden { + display: none; +} + +a.dfn { + border-bottom: 1px dotted #00aa00; + cursor: help; +} + +a.dfn:active, a.dfn:link, a.dfn:visited { + color: #000000; + text-decoration: none; +} + +a.dfn:hover { + color: #0000ff; + text-decoration: none; +} + +body { + font-family: verdana, arial, helvetica; +} + +h1, h2, h3, h4, h5, h6 { + margin-bottom: 0.5em; +} + +h5 { + margin-top: 0.5em; +} + +div.footer { + font-size: 68%; + margin-top: 1.5em; +} + +div.percentgraph +{ + background-color: #f02020; + border: #808080 1px solid; + height: 1.3em; + margin: 0px; + padding: 0px; + width: 100px; +} + +div.percentgraph div.greenbar +{ + background-color: #00f000; + height: 1.3em; + margin: 0px; + padding: 0px; +} + +div.percentgraph div.na +{ + background-color: #eaeaea; + height: 1.3em; + margin: 0px; + padding: 0px; +} + +div.percentgraph span.text +{ + display: block; + position: absolute; + text-align: center; + width: 100px; +} + +div.separator { + height: 10px; +} + +table tr td, table tr th { + font-size: 68%; +} + +td.value table tr td { + font-size: 11px; +} + +table.percentgraph { + border: 0px; + font-size: 130%; + margin: 0px; + margin-left: auto; + margin-right: 0px; + padding: 0px; +} + +table.percentgraph tr.percentgraph { + border: 0px; + margin: 0px; + padding: 0px; +} + +table.percentgraph td.percentgraph { + border: 0px; + margin: 0px; + padding: 0px; + padding-left: 4px; +} + +table.report { + border-collapse: collapse; + width: 100%; +} + +table.report td { + border: #d0d0d0 1px solid; +} + +table.report td.heading { + background: #dcecff; + font-weight: bold; + text-align: center; +} + +table.report td.heading:hover { + background: #c0ffc0; + cursor: pointer; +} + +table.report td.value { + text-align: right; +} diff --git a/site/0.0.7/cobertura/css/sortabletable.css b/site/0.0.7/cobertura/css/sortabletable.css new file mode 100644 index 000000000000..970e2b55c9b7 --- /dev/null +++ b/site/0.0.7/cobertura/css/sortabletable.css @@ -0,0 +1,50 @@ +.sort-table { + font: Icon; + border: 1px Solid ThreeDShadow; + background: Window; + color: WindowText; +} + +.sort-table thead { + background: ButtonFace; +} + +.sort-table td { + padding: 2px 5px; +} + +.sort-table thead td { + border: 1px solid; + border-color: ButtonHighlight ButtonShadow + ButtonShadow ButtonHighlight; + cursor: default; +} + +.sort-table thead td:active { + border-color: ButtonShadow ButtonHighlight + ButtonHighlight ButtonShadow; + padding: 3px 4px 1px 6px; +} + +.sort-table thead td[_sortType=None]:active { + border-color: ButtonHighlight ButtonShadow + ButtonShadow ButtonHighlight; + padding: 2px 5px; +} + +.sort-arrow { + width: 11px; + height: 11px; + background-position: center center; + background-repeat: no-repeat; + margin: 0 2px; +} + +.sort-arrow.descending { + background-image: url("../images/downsimple.png"); + +} + +.sort-arrow.ascending { + background-image: url("../images/upsimple.png"); +} \ No newline at end of file diff --git a/site/0.0.7/cobertura/css/source-viewer.css b/site/0.0.7/cobertura/css/source-viewer.css new file mode 100644 index 000000000000..73797d613eb3 --- /dev/null +++ b/site/0.0.7/cobertura/css/source-viewer.css @@ -0,0 +1,73 @@ +pre.src { + background: #ffffff; + margin-top: 0px; + margin-bottom: 0px; +} + +table.src { + border: #dcdcdc 1px solid; + font-size: 16px; +} + +td.numLine { + background: #f0f0f0; + border-right: #dcdcdc 1px solid; + padding-right: 3px; + text-align: right; +} + +td.numLineCover { + background: #80ff80; + border-right: #dcdcdc 1px solid; + padding-right: 3px; + text-align: right; +} + +td.nbHits { + background: #f0f0f0; + border-right: #dcdcdc 1px solid; + padding-right: 3px; + text-align: right; +} + +td.nbHitsCovered { + background: #80ff80; + border-right: #dcdcdc 1px solid; + padding-right: 3px; + text-align: right; +} + +td.nbHitsUncovered { + background: #ff9090; + border-right: #dcdcdc 1px solid; + font-weight: bold; + padding-right: 3px; + text-align: right; +} + +td.src { + width: 100%; +} + +span.comment { + color: #b22222; + font-style: italic; +} + +span.keyword { + color: #2020bf; + font-weight: bold; +} + +span.srcUncovered { + background: #ff9090; +} + +span.string { + color: #2a00ff; +} + +span.text_italic { + font-size: 12px; + font-style: italic; +} diff --git a/site/0.0.7/cobertura/css/tooltip.css b/site/0.0.7/cobertura/css/tooltip.css new file mode 100644 index 000000000000..c790d8104ebf --- /dev/null +++ b/site/0.0.7/cobertura/css/tooltip.css @@ -0,0 +1,49 @@ +a.hastooltip { + border-bottom: 1px dotted #00aa00; + color: #000000; + cursor: help; + font-style: normal; + position: relative; /* This is the key */ + text-decoration: none; + z-index: 24; /* What does this do? */ +} + +a.hastooltip:active { + color: #000000; + text-decoration: none; +} + +a.hastooltip:link { + color: #000000; + text-decoration: none; +} + +a.hastooltip:hover { + background-color: #a0b8ff; + color: #000000; + text-decoration: none; + z-index: 25; +} + +a.hastooltip:visited { + color: #000000; + text-decoration: none; +} + +a.hastooltip span { + display: none; +} + +a.hastooltip:hover span { + background-color: #eeeeee; + border: 1px solid #000000; + color: #000000; + display: block; + padding: 5px; + left: -15.2em; + position: absolute; + text-align: center; + text-decoration: none; + top: 2em; + width: 20em; +} diff --git a/site/0.0.7/cobertura/frame-packages.html b/site/0.0.7/cobertura/frame-packages.html new file mode 100644 index 000000000000..697a3501dc22 --- /dev/null +++ b/site/0.0.7/cobertura/frame-packages.html @@ -0,0 +1,29 @@ + + + + +Coverage Report + + + +
Packages
+ + + + + + + + + + + + + + + + +
All
com.google.gcloud
com.google.gcloud.datastore
com.google.gcloud.spi
com.google.gcloud.storage
+ + diff --git a/site/0.0.7/cobertura/frame-sourcefiles-com.google.gcloud.datastore.html b/site/0.0.7/cobertura/frame-sourcefiles-com.google.gcloud.datastore.html new file mode 100644 index 000000000000..6f70531b0ea2 --- /dev/null +++ b/site/0.0.7/cobertura/frame-sourcefiles-com.google.gcloud.datastore.html @@ -0,0 +1,173 @@ + + + + +Coverage Report Classes + + + +
+com.google.gcloud.datastore +
+
 
+
Classes
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BaseDatastoreBatchWriter (0%)
BaseEntity (0%)
BaseKey (0%)
Batch (N/A)
BatchImpl (0%)
BatchOption (0%)
Blob (0%)
BlobValue (0%)
BooleanValue (0%)
Cursor (0%)
Datastore (N/A)
DatastoreBatchWriter (N/A)
DatastoreException (0%)
DatastoreFactory (0%)
DatastoreHelper (0%)
DatastoreImpl (0%)
DatastoreOptions (0%)
DatastoreReader (N/A)
DatastoreReaderWriter (N/A)
DatastoreWriter (N/A)
DateTime (0%)
DateTimeValue (0%)
DoubleValue (0%)
Entity (0%)
EntityValue (0%)
FullEntity (0%)
GqlQuery (0%)
IncompleteKey (0%)
Key (0%)
KeyFactory (0%)
KeyValue (0%)
ListValue (0%)
LongValue (0%)
NullValue (0%)
PathElement (0%)
ProjectionEntity (0%)
Query (0%)
QueryResults (N/A)
QueryResultsImpl (0%)
RawValue (0%)
Serializable (0%)
StringValue (0%)
StructuredQuery (0%)
Transaction (N/A)
TransactionImpl (0%)
TransactionOption (0%)
Validator (0%)
Value (0%)
ValueBuilder (N/A)
ValueMarshaller (N/A)
ValueType (0%)
+ + diff --git a/site/0.0.7/cobertura/frame-sourcefiles-com.google.gcloud.html b/site/0.0.7/cobertura/frame-sourcefiles-com.google.gcloud.html new file mode 100644 index 000000000000..9b38f5b971e7 --- /dev/null +++ b/site/0.0.7/cobertura/frame-sourcefiles-com.google.gcloud.html @@ -0,0 +1,41 @@ + + + + +Coverage Report Classes + + + +
+com.google.gcloud +
+
 
+
Classes
+ + + + + + + + + + + + + + + + + + + + + + + + +
AuthCredentials (0%)
BaseService (0%)
ExceptionHandler (0%)
RetryHelper (0%)
RetryParams (0%)
Service (N/A)
ServiceOptions (0%)
+ + diff --git a/site/0.0.7/cobertura/frame-sourcefiles-com.google.gcloud.spi.html b/site/0.0.7/cobertura/frame-sourcefiles-com.google.gcloud.spi.html new file mode 100644 index 000000000000..4a2e01044e15 --- /dev/null +++ b/site/0.0.7/cobertura/frame-sourcefiles-com.google.gcloud.spi.html @@ -0,0 +1,41 @@ + + + + +Coverage Report Classes + + + +
+com.google.gcloud.spi +
+
 
+
Classes
+ + + + + + + + + + + + + + + + + + + + + + + + +
DatastoreRpc (0%)
DatastoreRpcFactory (N/A)
DefaultDatastoreRpc (0%)
DefaultStorageRpc (0%)
ServiceRpcFactory (N/A)
StorageRpc (0%)
StorageRpcFactory (N/A)
+ + diff --git a/site/0.0.7/cobertura/frame-sourcefiles-com.google.gcloud.storage.html b/site/0.0.7/cobertura/frame-sourcefiles-com.google.gcloud.storage.html new file mode 100644 index 000000000000..f4c63ed1d5be --- /dev/null +++ b/site/0.0.7/cobertura/frame-sourcefiles-com.google.gcloud.storage.html @@ -0,0 +1,74 @@ + + + + +Coverage Report Classes + + + +
+com.google.gcloud.storage +
+
 
+
Classes
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Acl (0%)
BatchRequest (0%)
BatchResponse (0%)
BlobInfo (0%)
BlobReadChannel (N/A)
BlobReadChannelImpl (0%)
BlobWriteChannel (N/A)
BlobWriterChannelImpl (0%)
BucketInfo (0%)
Cors (0%)
HttpMethod (0%)
ListResult (0%)
Option (0%)
Storage (0%)
StorageException (0%)
StorageFactory (0%)
StorageImpl (0%)
StorageOptions (0%)
+ + diff --git a/site/0.0.7/cobertura/frame-sourcefiles.html b/site/0.0.7/cobertura/frame-sourcefiles.html new file mode 100644 index 000000000000..289755628b98 --- /dev/null +++ b/site/0.0.7/cobertura/frame-sourcefiles.html @@ -0,0 +1,269 @@ + + + + +Coverage Report Classes + + + +
+All Packages +
+
 
+
Classes
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Acl (0%)
AuthCredentials (0%)
BaseDatastoreBatchWriter (0%)
BaseEntity (0%)
BaseKey (0%)
BaseService (0%)
Batch (N/A)
BatchImpl (0%)
BatchOption (0%)
BatchRequest (0%)
BatchResponse (0%)
Blob (0%)
BlobInfo (0%)
BlobReadChannel (N/A)
BlobReadChannelImpl (0%)
BlobValue (0%)
BlobWriteChannel (N/A)
BlobWriterChannelImpl (0%)
BooleanValue (0%)
BucketInfo (0%)
Cors (0%)
Cursor (0%)
Datastore (N/A)
DatastoreBatchWriter (N/A)
DatastoreException (0%)
DatastoreFactory (0%)
DatastoreHelper (0%)
DatastoreImpl (0%)
DatastoreOptions (0%)
DatastoreReader (N/A)
DatastoreReaderWriter (N/A)
DatastoreRpc (0%)
DatastoreRpcFactory (N/A)
DatastoreWriter (N/A)
DateTime (0%)
DateTimeValue (0%)
DefaultDatastoreRpc (0%)
DefaultStorageRpc (0%)
DoubleValue (0%)
Entity (0%)
EntityValue (0%)
ExceptionHandler (0%)
FullEntity (0%)
GqlQuery (0%)
HttpMethod (0%)
IncompleteKey (0%)
Key (0%)
KeyFactory (0%)
KeyValue (0%)
ListResult (0%)
ListValue (0%)
LongValue (0%)
NullValue (0%)
Option (0%)
PathElement (0%)
ProjectionEntity (0%)
Query (0%)
QueryResults (N/A)
QueryResultsImpl (0%)
RawValue (0%)
RetryHelper (0%)
RetryParams (0%)
Serializable (0%)
Service (N/A)
ServiceOptions (0%)
ServiceRpcFactory (N/A)
Storage (0%)
StorageException (0%)
StorageFactory (0%)
StorageImpl (0%)
StorageOptions (0%)
StorageRpc (0%)
StorageRpcFactory (N/A)
StringValue (0%)
StructuredQuery (0%)
Transaction (N/A)
TransactionImpl (0%)
TransactionOption (0%)
Validator (0%)
Value (0%)
ValueBuilder (N/A)
ValueMarshaller (N/A)
ValueType (0%)
+ + diff --git a/site/0.0.7/cobertura/frame-summary-com.google.gcloud.datastore.html b/site/0.0.7/cobertura/frame-summary-com.google.gcloud.datastore.html new file mode 100644 index 000000000000..8e6a619e1a97 --- /dev/null +++ b/site/0.0.7/cobertura/frame-summary-com.google.gcloud.datastore.html @@ -0,0 +1,225 @@ + + + + +Coverage Report + + + + + + + +
Coverage Report - com.google.gcloud.datastore
+
 
+ + + + + +
Package # Classes Line Coverage Branch Coverage Complexity
com.google.gcloud.datastore134
0%
0/1851
0%
0/586
1.445
+ +
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Classes in this Package Line Coverage Branch Coverage Complexity
BaseDatastoreBatchWriter
0%
0/102
0%
0/50
2.3
BaseEntity
0%
0/49
0%
0/16
1.229
BaseEntity$Builder
0%
0/56
0%
0/4
1.229
BaseKey
0%
0/34
0%
0/22
1.524
BaseKey$Builder
0%
0/28
0%
0/4
1.524
Batch
N/A
N/A
1
Batch$Response
N/A
N/A
1
BatchImpl
0%
0/18
0%
0/4
1.333
BatchImpl$ResponseImpl
0%
0/1
N/A
1.333
BatchImpl$ResponseImpl$1
0%
0/2
N/A
1.333
BatchOption
0%
0/5
0%
0/2
1.2
BatchOption$ForceWrites
0%
0/1
N/A
1.2
Blob
0%
0/32
0%
0/12
1.353
Blob$1
0%
0/1
0%
0/2
1.353
BlobValue
0%
0/7
N/A
1
BlobValue$1
0%
0/6
N/A
1
BlobValue$Builder
0%
0/4
N/A
1
BooleanValue
0%
0/7
N/A
1
BooleanValue$1
0%
0/5
N/A
1
BooleanValue$Builder
0%
0/4
N/A
1
Cursor
0%
0/26
0%
0/8
1.818
Datastore
N/A
N/A
1
Datastore$TransactionCallable
N/A
N/A
1
DatastoreBatchWriter
N/A
N/A
1
DatastoreException
0%
0/26
0%
0/6
1.615
DatastoreException$Code
0%
0/17
N/A
1.615
DatastoreFactory
0%
0/2
N/A
1
DatastoreFactory$1
0%
0/1
N/A
1
DatastoreHelper
0%
0/23
0%
0/8
1.857
DatastoreImpl
0%
0/127
0%
0/46
2.333
DatastoreImpl$1
0%
0/5
0%
0/4
2.333
DatastoreImpl$2
0%
0/2
N/A
2.333
DatastoreImpl$3
0%
0/2
N/A
2.333
DatastoreImpl$4
0%
0/2
N/A
2.333
DatastoreImpl$5
0%
0/2
N/A
2.333
DatastoreImpl$6
0%
0/2
N/A
2.333
DatastoreImpl$7
0%
0/3
N/A
2.333
DatastoreImpl$ResultsIterator
0%
0/16
0%
0/6
2.333
DatastoreOptions
0%
0/57
0%
0/30
2.211
DatastoreOptions$1
N/A
N/A
2.211
DatastoreOptions$Builder
0%
0/15
0%
0/2
2.211
DatastoreReader
N/A
N/A
1
DatastoreReaderWriter
N/A
N/A
0
DatastoreWriter
N/A
N/A
1
DateTime
0%
0/15
0%
0/6
1.143
DateTimeValue
0%
0/7
N/A
1
DateTimeValue$1
0%
0/5
N/A
1
DateTimeValue$Builder
0%
0/4
N/A
1
DoubleValue
0%
0/7
N/A
1
DoubleValue$1
0%
0/5
N/A
1
DoubleValue$Builder
0%
0/4
N/A
1
Entity
0%
0/11
0%
0/4
1.143
Entity$1
N/A
N/A
1.143
Entity$Builder
0%
0/11
0%
0/2
1.143
EntityValue
0%
0/7
N/A
1
EntityValue$1
0%
0/6
N/A
1
EntityValue$Builder
0%
0/6
0%
0/2
1
FullEntity
0%
0/5
N/A
1
FullEntity$Builder
0%
0/2
N/A
1
GqlQuery
0%
0/56
0%
0/28
1.66
GqlQuery$1
N/A
N/A
1.66
GqlQuery$Binding
0%
0/35
0%
0/20
1.66
GqlQuery$Builder
0%
0/65
0%
0/6
1.66
IncompleteKey
0%
0/24
0%
0/12
1.667
IncompleteKey$1
N/A
N/A
1.667
IncompleteKey$Builder
0%
0/4
N/A
1.667
Key
0%
0/40
0%
0/4
1.423
Key$1
N/A
N/A
1.423
Key$Builder
0%
0/23
0%
0/4
1.423
KeyFactory
0%
0/23
N/A
1
KeyValue
0%
0/7
N/A
1
KeyValue$1
0%
0/5
N/A
1
KeyValue$Builder
0%
0/4
N/A
1
ListValue
0%
0/10
N/A
1.278
ListValue$1
0%
0/12
0%
0/4
1.278
ListValue$Builder
0%
0/20
0%
0/8
1.278
LongValue
0%
0/7
N/A
1
LongValue$1
0%
0/5
N/A
1
LongValue$Builder
0%
0/4
N/A
1
NullValue
0%
0/7
N/A
1
NullValue$1
0%
0/4
N/A
1
NullValue$Builder
0%
0/6
0%
0/2
1
PathElement
0%
0/41
0%
0/30
1.867
ProjectionEntity
0%
0/12
0%
0/12
1.889
ProjectionEntity$1
N/A
N/A
1.889
ProjectionEntity$Builder
0%
0/2
N/A
1.889
Query
0%
0/17
N/A
1.36
Query$1
N/A
N/A
1.36
Query$ResultType
0%
0/26
0%
0/6
1.36
Query$ResultType$1
0%
0/5
0%
0/4
1.36
Query$ResultType$2
0%
0/2
N/A
1.36
Query$ResultType$3
0%
0/2
N/A
1.36
Query$ResultType$4
0%
0/2
N/A
1.36
QueryResults
N/A
N/A
1
QueryResultsImpl
0%
0/37
0%
0/16
2.6
RawValue
0%
0/13
0%
0/4
1.182
RawValue$1
0%
0/5
N/A
1.182
RawValue$Builder
0%
0/4
N/A
1.182
Serializable
0%
0/13
N/A
1.5
StringValue
0%
0/7
N/A
1
StringValue$1
0%
0/6
N/A
1
StringValue$Builder
0%
0/4
N/A
1
StructuredQuery
0%
0/80
0%
0/56
1.489
StructuredQuery$BaseBuilder
0%
0/71
0%
0/24
1.489
StructuredQuery$Builder
N/A
N/A
1.489
StructuredQuery$CompositeFilter
0%
0/36
0%
0/14
1.489
StructuredQuery$CompositeFilter$Operator
0%
0/4
N/A
1.489
StructuredQuery$EntityQueryBuilder
0%
0/3
N/A
1.489
StructuredQuery$Filter
0%
0/3
0%
0/2
1.489
StructuredQuery$KeyQueryBuilder
0%
0/9
N/A
1.489
StructuredQuery$OrderBy
0%
0/22
0%
0/8
1.489
StructuredQuery$OrderBy$Direction
0%
0/4
N/A
1.489
StructuredQuery$Projection
0%
0/28
0%
0/14
1.489
StructuredQuery$Projection$Aggregate
0%
0/4
N/A
1.489
StructuredQuery$ProjectionEntityQueryBuilder
0%
0/10
N/A
1.489
StructuredQuery$PropertyFilter
0%
0/71
0%
0/12
1.489
StructuredQuery$PropertyFilter$Operator
0%
0/9
N/A
1.489
Transaction
N/A
N/A
1
Transaction$Response
N/A
N/A
1
TransactionImpl
0%
0/42
0%
0/10
1.455
TransactionImpl$ResponseImpl
0%
0/1
N/A
1.455
TransactionImpl$ResponseImpl$1
0%
0/2
N/A
1.455
TransactionOption
0%
0/7
0%
0/2
1.071
TransactionOption$ForceWrites
0%
0/2
N/A
1.071
TransactionOption$IsolationLevel
0%
0/2
N/A
1.071
TransactionOption$IsolationLevel$Level
0%
0/4
N/A
1.071
Validator
0%
0/15
0%
0/14
1.25
Value
0%
0/33
0%
0/22
1.552
Value$BaseBuilder
0%
0/12
N/A
1.552
Value$BaseMarshaller
0%
0/13
0%
0/8
1.552
Value$BuilderFactory
N/A
N/A
1.552
ValueBuilder
N/A
N/A
1
ValueMarshaller
N/A
N/A
1
ValueType
0%
0/20
N/A
1
+ + + + diff --git a/site/0.0.7/cobertura/frame-summary-com.google.gcloud.html b/site/0.0.7/cobertura/frame-summary-com.google.gcloud.html new file mode 100644 index 000000000000..579d0daf3b95 --- /dev/null +++ b/site/0.0.7/cobertura/frame-summary-com.google.gcloud.html @@ -0,0 +1,76 @@ + + + + +Coverage Report + + + + + + + +
Coverage Report - com.google.gcloud
+
 
+ + + + + + + + +
Package # Classes Line Coverage Branch Coverage Complexity
com.google.gcloud26
0%
0/394
0%
0/158
1.828
com.google.gcloud.datastore134
0%
0/1851
0%
0/586
1.445
com.google.gcloud.spi16
0%
0/382
0%
0/52
2.195
com.google.gcloud.storage102
0%
0/1268
0%
0/362
1.5
+ +
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Classes in this Package Line Coverage Branch Coverage Complexity
AuthCredentials
0%
0/9
N/A
1.273
AuthCredentials$AppEngineAuthCredentials
0%
0/4
N/A
1.273
AuthCredentials$ApplicationDefaultAuthCredentials
0%
0/7
N/A
1.273
AuthCredentials$ComputeEngineAuthCredentials
0%
0/10
N/A
1.273
AuthCredentials$ServiceAccountAuthCredentials
0%
0/22
0%
0/8
1.273
BaseService
0%
0/1
N/A
1
ExceptionHandler
0%
0/58
0%
0/28
2.273
ExceptionHandler$1
N/A
N/A
2.273
ExceptionHandler$Builder
0%
0/17
0%
0/6
2.273
ExceptionHandler$Interceptor
N/A
N/A
2.273
ExceptionHandler$Interceptor$RetryResult
0%
0/3
N/A
2.273
ExceptionHandler$RetryInfo
0%
0/12
0%
0/4
2.273
RetryHelper
0%
0/63
0%
0/18
1.818
RetryHelper$Context
0%
0/2
N/A
1.818
RetryHelper$NonRetriableException
N/A
N/A
1.818
RetryHelper$RetriesExhaustedException
N/A
N/A
1.818
RetryHelper$RetryHelperException
N/A
N/A
1.818
RetryHelper$RetryInterruptedException
0%
0/2
N/A
1.818
RetryParams
0%
0/37
0%
0/28
1.455
RetryParams$1
N/A
N/A
1.455
RetryParams$Builder
0%
0/31
0%
0/2
1.455
Service
N/A
N/A
1
ServiceOptions
0%
0/86
0%
0/62
2.258
ServiceOptions$Builder
0%
0/22
N/A
2.258
ServiceOptions$DefaultHttpTransportFactory
0%
0/8
0%
0/2
2.258
ServiceOptions$HttpTransportFactory
N/A
N/A
2.258
+ + + + diff --git a/site/0.0.7/cobertura/frame-summary-com.google.gcloud.spi.html b/site/0.0.7/cobertura/frame-summary-com.google.gcloud.spi.html new file mode 100644 index 000000000000..18916f7066f4 --- /dev/null +++ b/site/0.0.7/cobertura/frame-summary-com.google.gcloud.spi.html @@ -0,0 +1,63 @@ + + + + +Coverage Report + + + + + + + +
Coverage Report - com.google.gcloud.spi
+
 
+ + + + + +
Package # Classes Line Coverage Branch Coverage Complexity
com.google.gcloud.spi16
0%
0/382
0%
0/52
2.195
+ +
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Classes in this Package Line Coverage Branch Coverage Complexity
DatastoreRpc
N/A
N/A
1
DatastoreRpc$DatastoreRpcException
0%
0/5
N/A
1
DatastoreRpc$DatastoreRpcException$Reason
0%
0/12
N/A
1
DatastoreRpcFactory
N/A
N/A
0
DefaultDatastoreRpc
0%
0/47
0%
0/6
3.75
DefaultStorageRpc
0%
0/265
0%
0/46
3.621
DefaultStorageRpc$1
0%
0/5
N/A
3.621
DefaultStorageRpc$2
0%
0/7
N/A
3.621
DefaultStorageRpc$3
0%
0/7
N/A
3.621
ServiceRpcFactory
N/A
N/A
1
StorageRpc
N/A
N/A
1
StorageRpc$BatchRequest
0%
0/5
N/A
1
StorageRpc$BatchResponse
0%
0/5
N/A
1
StorageRpc$Option
0%
0/21
N/A
1
StorageRpc$Tuple
0%
0/3
N/A
1
StorageRpcFactory
N/A
N/A
0
+ + + + diff --git a/site/0.0.7/cobertura/frame-summary-com.google.gcloud.storage.html b/site/0.0.7/cobertura/frame-summary-com.google.gcloud.storage.html new file mode 100644 index 000000000000..9b2c8616a970 --- /dev/null +++ b/site/0.0.7/cobertura/frame-summary-com.google.gcloud.storage.html @@ -0,0 +1,160 @@ + + + + +Coverage Report + + + + + + + +
Coverage Report - com.google.gcloud.storage
+
 
+ + + + + +
Package # Classes Line Coverage Branch Coverage Complexity
com.google.gcloud.storage102
0%
0/1268
0%
0/362
1.5
+ +
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Classes in this Package Line Coverage Branch Coverage Complexity
Acl
0%
0/22
0%
0/10
1.903
Acl$Domain
0%
0/3
N/A
1.903
Acl$Entity
0%
0/28
0%
0/22
1.903
Acl$Entity$Type
0%
0/2
N/A
1.903
Acl$Group
0%
0/3
N/A
1.903
Acl$Project
0%
0/6
N/A
1.903
Acl$Project$ProjectRole
0%
0/2
N/A
1.903
Acl$RawEntity
0%
0/3
N/A
1.903
Acl$Role
0%
0/2
N/A
1.903
Acl$User
0%
0/9
0%
0/10
1.903
BatchRequest
0%
0/17
0%
0/8
1.333
BatchRequest$1
N/A
N/A
1.333
BatchRequest$Builder
0%
0/12
N/A
1.333
BatchResponse
0%
0/14
0%
0/8
1.562
BatchResponse$Result
0%
0/19
0%
0/10
1.562
BlobInfo
0%
0/145
0%
0/38
1.367
BlobInfo$1
0%
0/2
N/A
1.367
BlobInfo$2
0%
0/2
N/A
1.367
BlobInfo$3
0%
0/2
N/A
1.367
BlobInfo$4
0%
0/2
N/A
1.367
BlobInfo$Builder
0%
0/48
0%
0/4
1.367
BlobReadChannel
N/A
N/A
1
BlobReadChannelImpl
0%
0/57
0%
0/18
2.091
BlobReadChannelImpl$1
0%
0/2
N/A
2.091
BlobWriteChannel
N/A
N/A
1
BlobWriterChannelImpl
0%
0/54
0%
0/18
1.833
BlobWriterChannelImpl$1
0%
0/2
N/A
1.833
BlobWriterChannelImpl$2
0%
0/2
N/A
1.833
BucketInfo
0%
0/123
0%
0/54
1.587
BucketInfo$1
0%
0/2
N/A
1.587
BucketInfo$2
0%
0/2
N/A
1.587
BucketInfo$3
0%
0/2
N/A
1.587
BucketInfo$4
0%
0/2
N/A
1.587
BucketInfo$5
0%
0/2
N/A
1.587
BucketInfo$6
0%
0/2
N/A
1.587
BucketInfo$7
0%
0/2
N/A
1.587
BucketInfo$8
0%
0/2
N/A
1.587
BucketInfo$AgeDeleteRule
0%
0/6
N/A
1.587
BucketInfo$Builder
0%
0/35
0%
0/6
1.587
BucketInfo$CreatedBeforeDeleteRule
0%
0/6
N/A
1.587
BucketInfo$DeleteRule
0%
0/29
0%
0/18
1.587
BucketInfo$DeleteRule$Type
0%
0/2
N/A
1.587
BucketInfo$IsLiveDeleteRule
0%
0/5
N/A
1.587
BucketInfo$Location
0%
0/24
0%
0/8
1.587
BucketInfo$Location$Option
0%
0/5
N/A
1.587
BucketInfo$NumNewerVersionsDeleteRule
0%
0/6
N/A
1.587
BucketInfo$RawDeleteRule
0%
0/11
N/A
1.587
BucketInfo$StorageClass
0%
0/17
0%
0/2
1.587
BucketInfo$StorageClass$Option
0%
0/5
N/A
1.587
Cors
0%
0/42
0%
0/18
1.655
Cors$1
0%
0/2
N/A
1.655
Cors$2
0%
0/2
N/A
1.655
Cors$3
0%
0/2
N/A
1.655
Cors$4
0%
0/2
N/A
1.655
Cors$Builder
0%
0/10
0%
0/6
1.655
Cors$Origin
0%
0/17
0%
0/4
1.655
HttpMethod
0%
0/2
N/A
0
ListResult
0%
0/11
0%
0/12
2
ListResult$NextPageFetcher
N/A
N/A
2
Option
0%
0/16
0%
0/6
1.5
Storage
N/A
N/A
1.011
Storage$1
N/A
N/A
1.011
Storage$BlobListOption
0%
0/5
N/A
1.011
Storage$BlobSourceOption
0%
0/7
N/A
1.011
Storage$BlobTargetOption
0%
0/9
N/A
1.011
Storage$BucketListOption
0%
0/4
N/A
1.011
Storage$BucketSourceOption
0%
0/5
N/A
1.011
Storage$BucketTargetOption
0%
0/7
N/A
1.011
Storage$ComposeRequest
0%
0/12
N/A
1.011
Storage$ComposeRequest$Builder
0%
0/17
0%
0/4
1.011
Storage$ComposeRequest$SourceBlob
0%
0/4
N/A
1.011
Storage$CopyRequest
0%
0/16
N/A
1.011
Storage$CopyRequest$Builder
0%
0/16
N/A
1.011
Storage$PredefinedAcl
0%
0/10
N/A
1.011
Storage$SignUrlOption
0%
0/6
N/A
1.011
Storage$SignUrlOption$Option
0%
0/2
N/A
1.011
StorageException
0%
0/2
N/A
1
StorageFactory
0%
0/2
N/A
1
StorageFactory$1
0%
0/1
N/A
1
StorageImpl
0%
0/204
0%
0/52
1.843
StorageImpl$1
0%
0/5
0%
0/4
1.843
StorageImpl$10
0%
0/2
N/A
1.843
StorageImpl$11
0%
0/2
N/A
1.843
StorageImpl$12
0%
0/2
N/A
1.843
StorageImpl$13
0%
0/2
N/A
1.843
StorageImpl$14
0%
0/2
N/A
1.843
StorageImpl$15
0%
0/2
N/A
1.843
StorageImpl$16
0%
0/2
N/A
1.843
StorageImpl$2
0%
0/2
N/A
1.843
StorageImpl$3
0%
0/2
N/A
1.843
StorageImpl$4
0%
0/6
0%
0/2
1.843
StorageImpl$5
0%
0/6
0%
0/2
1.843
StorageImpl$6
0%
0/2
N/A
1.843
StorageImpl$7
0%
0/2
N/A
1.843
StorageImpl$8
0%
0/2
N/A
1.843
StorageImpl$9
0%
0/2
N/A
1.843
StorageImpl$BasePageFetcher
0%
0/11
0%
0/6
1.843
StorageImpl$BlobPageFetcher
0%
0/1
N/A
1.843
StorageImpl$BucketPageFetcher
0%
0/1
N/A
1.843
StorageOptions
0%
0/23
0%
0/12
1.538
StorageOptions$1
N/A
N/A
1.538
StorageOptions$Builder
0%
0/4
N/A
1.538
+ + + + diff --git a/site/0.0.7/cobertura/frame-summary.html b/site/0.0.7/cobertura/frame-summary.html new file mode 100644 index 000000000000..4ac86f1ae7fc --- /dev/null +++ b/site/0.0.7/cobertura/frame-summary.html @@ -0,0 +1,33 @@ + + + + +Coverage Report + + + + + + + +
Coverage Report - All Packages
+
 
+ + + + + + + + + +
Package # Classes Line Coverage Branch Coverage Complexity
All Packages278
0%
0/3895
0%
0/1158
1.538
com.google.gcloud26
0%
0/394
0%
0/158
1.828
com.google.gcloud.datastore134
0%
0/1851
0%
0/586
1.445
com.google.gcloud.spi16
0%
0/382
0%
0/52
2.195
com.google.gcloud.storage102
0%
0/1268
0%
0/362
1.5
+ + + + diff --git a/site/0.0.7/cobertura/help.html b/site/0.0.7/cobertura/help.html new file mode 100644 index 000000000000..4c518dcd342d --- /dev/null +++ b/site/0.0.7/cobertura/help.html @@ -0,0 +1,31 @@ + + + + + + +Coverage Report - Help + + + + +
+ +
Line Coverage
+
The percent of lines executed by this test run.
+ +
Branch Coverage
+
The percent of branches executed by this test run.
+ +
Complexity
+
Average McCabe's cyclomatic code complexity for all methods. This is basically a count of the number of different code paths in a method (incremented by 1 for each if statement, while loop, etc.)
+ +
N/A
+
Line coverage and branch coverage will appear as "Not Applicable" when Cobertura can not find line number information in the .class file. This happens for stub and skeleton classes, interfaces, or when the class was not compiled with "debug=true."
+ +
+ + + + diff --git a/site/0.0.7/cobertura/images/blank.png b/site/0.0.7/cobertura/images/blank.png new file mode 100644 index 000000000000..cee9cd37a10e Binary files /dev/null and b/site/0.0.7/cobertura/images/blank.png differ diff --git a/site/0.0.7/cobertura/images/downsimple.png b/site/0.0.7/cobertura/images/downsimple.png new file mode 100644 index 000000000000..4accf927bed9 Binary files /dev/null and b/site/0.0.7/cobertura/images/downsimple.png differ diff --git a/site/0.0.7/cobertura/images/upsimple.png b/site/0.0.7/cobertura/images/upsimple.png new file mode 100644 index 000000000000..c82b76ffe2c9 Binary files /dev/null and b/site/0.0.7/cobertura/images/upsimple.png differ diff --git a/site/0.0.7/cobertura/index.html b/site/0.0.7/cobertura/index.html new file mode 100644 index 000000000000..573719b81895 --- /dev/null +++ b/site/0.0.7/cobertura/index.html @@ -0,0 +1,25 @@ + + + + + +Coverage Report + + + + + + + + + + + <body> + <p>This document is designed to be viewed using the frames feature. If you see this message, you are using a frame-incapable web client.</p> + <p><a href="frame-summary.html">Click here to view a non-frame version.</a></p> + </body> + + + + diff --git a/site/0.0.7/cobertura/js/customsorttypes.js b/site/0.0.7/cobertura/js/customsorttypes.js new file mode 100644 index 000000000000..a16bda216f71 --- /dev/null +++ b/site/0.0.7/cobertura/js/customsorttypes.js @@ -0,0 +1,65 @@ +/* + * Cobertura - http://cobertura.sourceforge.net/ + * + * Copyright (C) 2005 Mark Doliner + * Copyright (C) 2005 Olivier Parent + * + * Cobertura is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published + * by the Free Software Foundation; either version 2 of the License, + * or (at your option) any later version. + * + * Cobertura is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Cobertura; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ + + + +function percentageSortType( s ) +{ + var ret; + var i = s.indexOf( "%" ); + + if (i != -1) { + s = s.substr( 0, i ); + } + ret = parseFloat(s); + if (isNaN(ret)) { + ret = -1; + } + + return ret; +} + +SortableTable.prototype.addSortType( "Percentage", percentageSortType ); + + + +// This is needed for correctly sorting numbers in different +// locales. The stock number converter only expects to sort +// numbers which use a period as a separator instead of a +// comma (like French). +function formattedNumberSortType( s ) +{ + var ret; + var i = s.indexOf(';'); + + if (i != -1) { + s = s.substring(0, i); + } + ret = parseFloat(s); + if (isNaN(ret)) { + return -1; + } + + return ret; +} + +SortableTable.prototype.addSortType( "FormattedNumber", formattedNumberSortType ); diff --git a/site/0.0.7/cobertura/js/popup.js b/site/0.0.7/cobertura/js/popup.js new file mode 100644 index 000000000000..4a09072260dc --- /dev/null +++ b/site/0.0.7/cobertura/js/popup.js @@ -0,0 +1,8 @@ +var newwindow; +function popupwindow(url) +{ + newwindow=window.open(url,'name','height=500,width=500,resizable=yes,scrollbars=yes'); + if (window.focus) { + newwindow.focus() + } +} diff --git a/site/0.0.7/cobertura/js/sortabletable.js b/site/0.0.7/cobertura/js/sortabletable.js new file mode 100644 index 000000000000..0dad657240f8 --- /dev/null +++ b/site/0.0.7/cobertura/js/sortabletable.js @@ -0,0 +1,455 @@ + +/*----------------------------------------------------------------------------\ +| Sortable Table 1.12 | +|-----------------------------------------------------------------------------| +| Created by Erik Arvidsson | +| (http://webfx.eae.net/contact.html#erik) | +| For WebFX (http://webfx.eae.net/) | +|-----------------------------------------------------------------------------| +| A DOM 1 based script that allows an ordinary HTML table to be sortable. | +|-----------------------------------------------------------------------------| +| Copyright (c) 1998 - 2004 Erik Arvidsson | +|-----------------------------------------------------------------------------| +| This software is provided "as is", without warranty of any kind, express or | +| implied, including but not limited to the warranties of merchantability, | +| fitness for a particular purpose and noninfringement. In no event shall the | +| authors or copyright holders be liable for any claim, damages or other | +| liability, whether in an action of contract, tort or otherwise, arising | +| from, out of or in connection with the software or the use or other | +| dealings in the software. | +| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | +| This software is available under the three different licenses mentioned | +| below. To use this software you must chose, and qualify, for one of those. | +| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | +| The WebFX Non-Commercial License http://webfx.eae.net/license.html | +| Permits anyone the right to use the software in a non-commercial context | +| free of charge. | +| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | +| The WebFX Commercial license http://webfx.eae.net/commercial.html | +| Permits the license holder the right to use the software in a commercial | +| context. Such license must be specifically obtained, however it's valid for | +| any number of implementations of the licensed software. | +| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | +| GPL - The GNU General Public License http://www.gnu.org/licenses/gpl.txt | +| Permits anyone the right to use and modify the software without limitations | +| as long as proper credits are given and the original and modified source | +| code are included. Requires that the final product, software derivate from | +| the original source or any software utilizing a GPL component, such as | +| this, is also licensed under the GPL license. | +|-----------------------------------------------------------------------------| +| 2003-01-10 | First version | +| 2003-01-19 | Minor changes to the date parsing | +| 2003-01-28 | JScript 5.0 fixes (no support for 'in' operator) | +| 2003-02-01 | Sloppy typo like error fixed in getInnerText | +| 2003-07-04 | Added workaround for IE cellIndex bug. | +| 2003-11-09 | The bDescending argument to sort was not correctly working | +| | Using onclick DOM0 event if no support for addEventListener | +| | or attachEvent | +| 2004-01-13 | Adding addSortType and removeSortType which makes it a lot | +| | easier to add new, custom sort types. | +| 2004-01-27 | Switch to use descending = false as the default sort order. | +| | Change defaultDescending to suit your needs. | +| 2004-03-14 | Improved sort type None look and feel a bit | +| 2004-08-26 | Made the handling of tBody and tHead more flexible. Now you | +| | can use another tHead or no tHead, and you can chose some | +| | other tBody. | +|-----------------------------------------------------------------------------| +| Created 2003-01-10 | All changes are in the log above. | Updated 2004-08-26 | +\----------------------------------------------------------------------------*/ + + +function SortableTable(oTable, oSortTypes) { + + this.sortTypes = oSortTypes || []; + + this.sortColumn = null; + this.descending = null; + + var oThis = this; + this._headerOnclick = function (e) { + oThis.headerOnclick(e); + }; + + if (oTable) { + this.setTable( oTable ); + this.document = oTable.ownerDocument || oTable.document; + } + else { + this.document = document; + } + + + // only IE needs this + var win = this.document.defaultView || this.document.parentWindow; + this._onunload = function () { + oThis.destroy(); + }; + if (win && typeof win.attachEvent != "undefined") { + win.attachEvent("onunload", this._onunload); + } +} + +SortableTable.gecko = navigator.product == "Gecko"; +SortableTable.msie = /msie/i.test(navigator.userAgent); +// Mozilla is faster when doing the DOM manipulations on +// an orphaned element. MSIE is not +SortableTable.removeBeforeSort = SortableTable.gecko; + +SortableTable.prototype.onsort = function () {}; + +// default sort order. true -> descending, false -> ascending +SortableTable.prototype.defaultDescending = false; + +// shared between all instances. This is intentional to allow external files +// to modify the prototype +SortableTable.prototype._sortTypeInfo = {}; + +SortableTable.prototype.setTable = function (oTable) { + if ( this.tHead ) + this.uninitHeader(); + this.element = oTable; + this.setTHead( oTable.tHead ); + this.setTBody( oTable.tBodies[0] ); +}; + +SortableTable.prototype.setTHead = function (oTHead) { + if (this.tHead && this.tHead != oTHead ) + this.uninitHeader(); + this.tHead = oTHead; + this.initHeader( this.sortTypes ); +}; + +SortableTable.prototype.setTBody = function (oTBody) { + this.tBody = oTBody; +}; + +SortableTable.prototype.setSortTypes = function ( oSortTypes ) { + if ( this.tHead ) + this.uninitHeader(); + this.sortTypes = oSortTypes || []; + if ( this.tHead ) + this.initHeader( this.sortTypes ); +}; + +// adds arrow containers and events +// also binds sort type to the header cells so that reordering columns does +// not break the sort types +SortableTable.prototype.initHeader = function (oSortTypes) { + if (!this.tHead) return; + var cells = this.tHead.rows[0].cells; + var doc = this.tHead.ownerDocument || this.tHead.document; + this.sortTypes = oSortTypes || []; + var l = cells.length; + var img, c; + for (var i = 0; i < l; i++) { + c = cells[i]; + if (this.sortTypes[i] != null && this.sortTypes[i] != "None") { + img = doc.createElement("IMG"); + img.src = "images/blank.png"; + c.appendChild(img); + if (this.sortTypes[i] != null) + c._sortType = this.sortTypes[i]; + if (typeof c.addEventListener != "undefined") + c.addEventListener("click", this._headerOnclick, false); + else if (typeof c.attachEvent != "undefined") + c.attachEvent("onclick", this._headerOnclick); + else + c.onclick = this._headerOnclick; + } + else + { + c.setAttribute( "_sortType", oSortTypes[i] ); + c._sortType = "None"; + } + } + this.updateHeaderArrows(); +}; + +// remove arrows and events +SortableTable.prototype.uninitHeader = function () { + if (!this.tHead) return; + var cells = this.tHead.rows[0].cells; + var l = cells.length; + var c; + for (var i = 0; i < l; i++) { + c = cells[i]; + if (c._sortType != null && c._sortType != "None") { + c.removeChild(c.lastChild); + if (typeof c.removeEventListener != "undefined") + c.removeEventListener("click", this._headerOnclick, false); + else if (typeof c.detachEvent != "undefined") + c.detachEvent("onclick", this._headerOnclick); + c._sortType = null; + c.removeAttribute( "_sortType" ); + } + } +}; + +SortableTable.prototype.updateHeaderArrows = function () { + if (!this.tHead) return; + var cells = this.tHead.rows[0].cells; + var l = cells.length; + var img; + for (var i = 0; i < l; i++) { + if (cells[i]._sortType != null && cells[i]._sortType != "None") { + img = cells[i].lastChild; + if (i == this.sortColumn) + img.className = "sort-arrow " + (this.descending ? "descending" : "ascending"); + else + img.className = "sort-arrow"; + } + } +}; + +SortableTable.prototype.headerOnclick = function (e) { + // find TD element + var el = e.target || e.srcElement; + while (el.tagName != "TD") + el = el.parentNode; + + this.sort(SortableTable.msie ? SortableTable.getCellIndex(el) : el.cellIndex); +}; + +// IE returns wrong cellIndex when columns are hidden +SortableTable.getCellIndex = function (oTd) { + var cells = oTd.parentNode.childNodes + var l = cells.length; + var i; + for (i = 0; cells[i] != oTd && i < l; i++) + ; + return i; +}; + +SortableTable.prototype.getSortType = function (nColumn) { + return this.sortTypes[nColumn] || "String"; +}; + +// only nColumn is required +// if bDescending is left out the old value is taken into account +// if sSortType is left out the sort type is found from the sortTypes array + +SortableTable.prototype.sort = function (nColumn, bDescending, sSortType) { + if (!this.tBody) return; + if (sSortType == null) + sSortType = this.getSortType(nColumn); + + // exit if None + if (sSortType == "None") + return; + + if (bDescending == null) { + if (this.sortColumn != nColumn) + this.descending = this.defaultDescending; + else + this.descending = !this.descending; + } + else + this.descending = bDescending; + + this.sortColumn = nColumn; + + if (typeof this.onbeforesort == "function") + this.onbeforesort(); + + var f = this.getSortFunction(sSortType, nColumn); + var a = this.getCache(sSortType, nColumn); + var tBody = this.tBody; + + a.sort(f); + + if (this.descending) + a.reverse(); + + if (SortableTable.removeBeforeSort) { + // remove from doc + var nextSibling = tBody.nextSibling; + var p = tBody.parentNode; + p.removeChild(tBody); + } + + // insert in the new order + var l = a.length; + for (var i = 0; i < l; i++) + tBody.appendChild(a[i].element); + + if (SortableTable.removeBeforeSort) { + // insert into doc + p.insertBefore(tBody, nextSibling); + } + + this.updateHeaderArrows(); + + this.destroyCache(a); + + if (typeof this.onsort == "function") + this.onsort(); +}; + +SortableTable.prototype.asyncSort = function (nColumn, bDescending, sSortType) { + var oThis = this; + this._asyncsort = function () { + oThis.sort(nColumn, bDescending, sSortType); + }; + window.setTimeout(this._asyncsort, 1); +}; + +SortableTable.prototype.getCache = function (sType, nColumn) { + if (!this.tBody) return []; + var rows = this.tBody.rows; + var l = rows.length; + var a = new Array(l); + var r; + for (var i = 0; i < l; i++) { + r = rows[i]; + a[i] = { + value: this.getRowValue(r, sType, nColumn), + element: r + }; + }; + return a; +}; + +SortableTable.prototype.destroyCache = function (oArray) { + var l = oArray.length; + for (var i = 0; i < l; i++) { + oArray[i].value = null; + oArray[i].element = null; + oArray[i] = null; + } +}; + +SortableTable.prototype.getRowValue = function (oRow, sType, nColumn) { + // if we have defined a custom getRowValue use that + if (this._sortTypeInfo[sType] && this._sortTypeInfo[sType].getRowValue) + return this._sortTypeInfo[sType].getRowValue(oRow, nColumn); + + var s; + var c = oRow.cells[nColumn]; + if (typeof c.innerText != "undefined") + s = c.innerText; + else + s = SortableTable.getInnerText(c); + return this.getValueFromString(s, sType); +}; + +SortableTable.getInnerText = function (oNode) { + var s = ""; + var cs = oNode.childNodes; + var l = cs.length; + for (var i = 0; i < l; i++) { + switch (cs[i].nodeType) { + case 1: //ELEMENT_NODE + s += SortableTable.getInnerText(cs[i]); + break; + case 3: //TEXT_NODE + s += cs[i].nodeValue; + break; + } + } + return s; +}; + +SortableTable.prototype.getValueFromString = function (sText, sType) { + if (this._sortTypeInfo[sType]) + return this._sortTypeInfo[sType].getValueFromString( sText ); + return sText; + /* + switch (sType) { + case "Number": + return Number(sText); + case "CaseInsensitiveString": + return sText.toUpperCase(); + case "Date": + var parts = sText.split("-"); + var d = new Date(0); + d.setFullYear(parts[0]); + d.setDate(parts[2]); + d.setMonth(parts[1] - 1); + return d.valueOf(); + } + return sText; + */ + }; + +SortableTable.prototype.getSortFunction = function (sType, nColumn) { + if (this._sortTypeInfo[sType]) + return this._sortTypeInfo[sType].compare; + return SortableTable.basicCompare; +}; + +SortableTable.prototype.destroy = function () { + this.uninitHeader(); + var win = this.document.parentWindow; + if (win && typeof win.detachEvent != "undefined") { // only IE needs this + win.detachEvent("onunload", this._onunload); + } + this._onunload = null; + this.element = null; + this.tHead = null; + this.tBody = null; + this.document = null; + this._headerOnclick = null; + this.sortTypes = null; + this._asyncsort = null; + this.onsort = null; +}; + +// Adds a sort type to all instance of SortableTable +// sType : String - the identifier of the sort type +// fGetValueFromString : function ( s : string ) : T - A function that takes a +// string and casts it to a desired format. If left out the string is just +// returned +// fCompareFunction : function ( n1 : T, n2 : T ) : Number - A normal JS sort +// compare function. Takes two values and compares them. If left out less than, +// <, compare is used +// fGetRowValue : function( oRow : HTMLTRElement, nColumn : int ) : T - A function +// that takes the row and the column index and returns the value used to compare. +// If left out then the innerText is first taken for the cell and then the +// fGetValueFromString is used to convert that string the desired value and type + +SortableTable.prototype.addSortType = function (sType, fGetValueFromString, fCompareFunction, fGetRowValue) { + this._sortTypeInfo[sType] = { + type: sType, + getValueFromString: fGetValueFromString || SortableTable.idFunction, + compare: fCompareFunction || SortableTable.basicCompare, + getRowValue: fGetRowValue + }; +}; + +// this removes the sort type from all instances of SortableTable +SortableTable.prototype.removeSortType = function (sType) { + delete this._sortTypeInfo[sType]; +}; + +SortableTable.basicCompare = function compare(n1, n2) { + if (n1.value < n2.value) + return -1; + if (n2.value < n1.value) + return 1; + return 0; +}; + +SortableTable.idFunction = function (x) { + return x; +}; + +SortableTable.toUpperCase = function (s) { + return s.toUpperCase(); +}; + +SortableTable.toDate = function (s) { + var parts = s.split("-"); + var d = new Date(0); + d.setFullYear(parts[0]); + d.setDate(parts[2]); + d.setMonth(parts[1] - 1); + return d.valueOf(); +}; + + +// add sort types +SortableTable.prototype.addSortType("Number", Number); +SortableTable.prototype.addSortType("CaseInsensitiveString", SortableTable.toUpperCase); +SortableTable.prototype.addSortType("Date", SortableTable.toDate); +SortableTable.prototype.addSortType("String"); +// None is a special case diff --git a/site/0.0.7/cobertura/js/stringbuilder.js b/site/0.0.7/cobertura/js/stringbuilder.js new file mode 100644 index 000000000000..464a1cacb2ba --- /dev/null +++ b/site/0.0.7/cobertura/js/stringbuilder.js @@ -0,0 +1,79 @@ +/*----------------------------------------------------------------------------\ +| String Builder 1.02 | +|-----------------------------------------------------------------------------| +| Created by Erik Arvidsson | +| (http://webfx.eae.net/contact.html#erik) | +| For WebFX (http://webfx.eae.net/) | +|-----------------------------------------------------------------------------| +| A class that allows more efficient building of strings than concatenation. | +|-----------------------------------------------------------------------------| +| Copyright (c) 1999 - 2002 Erik Arvidsson | +|-----------------------------------------------------------------------------| +| This software is provided "as is", without warranty of any kind, express or | +| implied, including but not limited to the warranties of merchantability, | +| fitness for a particular purpose and noninfringement. In no event shall the | +| authors or copyright holders be liable for any claim, damages or other | +| liability, whether in an action of contract, tort or otherwise, arising | +| from, out of or in connection with the software or the use or other | +| dealings in the software. | +| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | +| This software is available under the three different licenses mentioned | +| below. To use this software you must chose, and qualify, for one of those. | +| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | +| The WebFX Non-Commercial License http://webfx.eae.net/license.html | +| Permits anyone the right to use the software in a non-commercial context | +| free of charge. | +| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | +| The WebFX Commercial license http://webfx.eae.net/commercial.html | +| Permits the license holder the right to use the software in a commercial | +| context. Such license must be specifically obtained, however it's valid for | +| any number of implementations of the licensed software. | +| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | +| GPL - The GNU General Public License http://www.gnu.org/licenses/gpl.txt | +| Permits anyone the right to use and modify the software without limitations | +| as long as proper credits are given and the original and modified source | +| code are included. Requires that the final product, software derivate from | +| the original source or any software utilizing a GPL component, such as | +| this, is also licensed under the GPL license. | +|-----------------------------------------------------------------------------| +| 2000-10-02 | First version | +| 2000-10-05 | Added a cache of the string so that it does not need to be | +| | regenerated every time in toString | +| 2002-10-03 | Added minor improvement in the toString method | +|-----------------------------------------------------------------------------| +| Created 2000-10-02 | All changes are in the log above. | Updated 2002-10-03 | +\----------------------------------------------------------------------------*/ function StringBuilder(sString) { + + // public + this.length = 0; + + this.append = function (sString) { + // append argument + this.length += (this._parts[this._current++] = String(sString)).length; + + // reset cache + this._string = null; + return this; + }; + + this.toString = function () { + if (this._string != null) + return this._string; + + var s = this._parts.join(""); + this._parts = [s]; + this._current = 1; + this.length = s.length; + + return this._string = s; + }; + + // private + this._current = 0; + this._parts = []; + this._string = null; // used to cache the string + + // init + if (sString != null) + this.append(sString); +} diff --git a/site/0.0.7/css/apache-maven-fluido-1.3.1.min.css b/site/0.0.7/css/apache-maven-fluido-1.3.1.min.css new file mode 100644 index 000000000000..ed43d1211cff --- /dev/null +++ b/site/0.0.7/css/apache-maven-fluido-1.3.1.min.css @@ -0,0 +1,9 @@ +/*! + * Bootstrap v2.2.2 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover{color:#808080}.text-warning{color:#c09853}a.text-warning:hover{color:#a47e3c}.text-error{color:#b94a48}a.text-error:hover{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover{color:#2d6987}.text-success{color:#468847}a.text-success:hover{color:#356635}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:25px}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{margin-bottom:5px;font-size:0;white-space:nowrap}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover td,.table-hover tbody tr:hover th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success td{background-color:#dff0d8}.table tbody tr.error td{background-color:#f2dede}.table tbody tr.warning td{background-color:#fcf8e3}.table tbody tr.info td{background-color:#d9edf7}.table-hover tbody tr.success:hover td{background-color:#d0e9c6}.table-hover tbody tr.error:hover td{background-color:#ebcccc}.table-hover tbody tr.warning:hover td{background-color:#faf2cc}.table-hover tbody tr.info:hover td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.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;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu li>a:hover,.dropdown-menu li>a:focus,.dropdown-submenu:hover>a{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu .disabled>a,.dropdown-menu .disabled>a:hover{color:#999}.dropdown-menu .disabled>a:hover{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #bbb;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#a2a2a2;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.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-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn{border-color:#c5c5c5;border-color:rgba(0,0,0,0.15) rgba(0,0,0,0.15) rgba(0,0,0,0.25)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #0044cc #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-mini .caret,.btn-small .caret,.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success h4{color:#468847}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eeeeee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:hover .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover{border-color:#eee #dddddd #eee #eeeeee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover{border-color:#eee #eeeeee #eee #dddddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#777}.navbar-link{color:#777}.navbar-link:hover{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown>a:hover .caret{border-top-color:#555;border-bottom-color:#555}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover{color:#fff}.navbar-inverse .brand{color:#999}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>a:hover .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;*background-color:#040404;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:hover{text-decoration:none;background-color:#f5f5f5}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>span{color:#999;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{margin-top:-3px}.tooltip.right{margin-left:3px}.tooltip.bottom{margin-top:3px}.tooltip.left{margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;width:236px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media .pull-left{margin-right:10px}.media .pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img{display:block;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed}.clear{clear:both;visibility:hidden}.clear hr{display:none}.section p,.section p,.section dt,.section dt{margin-right:7px;margin-left:7px}#ohloh{margin-bottom:10px}#poweredBy{text-align:center}a.externalLink{padding-right:18px}a.newWindow{background:url('../images/window-new.png') right center no-repeat;padding-right:18px}a.externalLink[href^=http]{background:url('../images/internet-web-browser.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".asc"]{background:url('../images/accessories-text-editor.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".jpg"],a.externalLink[href$=".jpeg"],a.externalLink[href$=".gif"],a.externalLink[href$=".png"]{background:url('../images/image-x-generic.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".tar.gz"],a.externalLink[href$=".zip"]{background:url('../images/package-x-generic.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".md5"],a.externalLink[href$=".sha1"]{background:url('../images/document-properties.png') right center no-repeat;padding-right:18px}a.externalLink[href^=https]{background:url('../images/application-certificate.png') right center no-repeat;padding-right:18px}a.externalLink[href^=file]{background:url('../images/drive-harddisk.png') right center no-repeat;padding-right:18px}a.externalLink[href^=ftp]{background:url('../images/network-server.png') right center no-repeat;padding-right:18px}a.externalLink[href^=mailto]{background:url('../images/contact-new.png') right center no-repeat;padding-right:18px}li.none{list-style:none}.search-query{background-image:url(http://www.google.com/cse/intl/en/images/google_custom_search_watermark.gif);background-attachment:initial;background-origin:initial;background-clip:initial;background-color:#fff;background-position:0 50%;background-repeat:no-repeat no-repeat;width:95%}body.topBarEnabled{padding-top:60px}body.topBarDisabled{padding-top:20px}.builtBy{display:block}img.builtBy{margin:10px auto}#search-form{margin-left:9px;margin-right:9px}.hero-unit h2{font-size:60px}tt{padding:0 3px 2px;font-family:Monaco,Andale Mono,Courier New,monospace;font-size:.8em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background-color:#fee9cc;color:rgba(0,0,0,0.75);padding:1px 3px}li{color:#404040}table.zebra-striped{background-color:#FFF}.footer{background-color:#EEE}.sidebar-nav{padding-left:0;padding-right:0}.sidebar-nav .icon-chevron-right,.sidebar-nav .icon-chevron-down{margin-top:2px;margin-right:-6px;float:right;opacity:.25}li.pull-right{margin-left:3px;margin-right:3px}.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0;padding-left:15px}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} \ No newline at end of file diff --git a/site/0.0.7/css/github.min.css b/site/0.0.7/css/github.min.css new file mode 100644 index 000000000000..2bd26b60f15d --- /dev/null +++ b/site/0.0.7/css/github.min.css @@ -0,0 +1 @@ +.hljs{display:block;padding:.5em;color:#333;background:#f8f8f8}.hljs-comment,.hljs-template_comment,.diff .hljs-header,.hljs-javadoc{color:#998;font-style:italic}.hljs-keyword,.css .rule .hljs-keyword,.hljs-winutils,.javascript .hljs-title,.nginx .hljs-title,.hljs-subst,.hljs-request,.hljs-status{color:#333;font-weight:bold}.hljs-number,.hljs-hexcolor,.ruby .hljs-constant{color:#099}.hljs-string,.hljs-tag .hljs-value,.hljs-phpdoc,.tex .hljs-formula{color:#d14}.hljs-title,.hljs-id,.coffeescript .hljs-params,.scss .hljs-preprocessor{color:#900;font-weight:bold}.javascript .hljs-title,.lisp .hljs-title,.clojure .hljs-title,.hljs-subst{font-weight:normal}.hljs-class .hljs-title,.haskell .hljs-type,.vhdl .hljs-literal,.tex .hljs-command{color:#458;font-weight:bold}.hljs-tag,.hljs-tag .hljs-title,.hljs-rules .hljs-property,.django .hljs-tag .hljs-keyword{color:#000080;font-weight:normal}.hljs-attribute,.hljs-variable,.lisp .hljs-body{color:#008080}.hljs-regexp{color:#009926}.hljs-symbol,.ruby .hljs-symbol .hljs-string,.lisp .hljs-keyword,.tex .hljs-special,.hljs-prompt{color:#990073}.hljs-built_in,.lisp .hljs-title,.clojure .hljs-built_in{color:#0086b3}.hljs-preprocessor,.hljs-pragma,.hljs-pi,.hljs-doctype,.hljs-shebang,.hljs-cdata{color:#999;font-weight:bold}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.diff .hljs-change{background:#0086b3}.hljs-chunk{color:#aaa} \ No newline at end of file diff --git a/site/0.0.7/css/normalize.css b/site/0.0.7/css/normalize.css new file mode 100644 index 000000000000..42e24d6880b5 --- /dev/null +++ b/site/0.0.7/css/normalize.css @@ -0,0 +1,527 @@ +/*! normalize.css v1.1.3 | MIT License | git.io/normalize */ + +/* ========================================================================== + HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined in IE 6/7/8/9 and Firefox 3. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { + display: block; +} + +/** + * Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3. + */ + +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address styling not present in IE 7/8/9, Firefox 3, and Safari 4. + * Known issue: no IE 6 support. + */ + +[hidden] { + display: none; +} + +/* ========================================================================== + Base + ========================================================================== */ + +/** + * 1. Correct text resizing oddly in IE 6/7 when body `font-size` is set using + * `em` units. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-size: 100%; /* 1 */ + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/** + * Address `font-family` inconsistency between `textarea` and other form + * elements. + */ + +html, +button, +input, +select, +textarea { + font-family: sans-serif; +} + +/** + * Address margins handled incorrectly in IE 6/7. + */ + +body { + margin: 0; +} + +/* ========================================================================== + Links + ========================================================================== */ + +/** + * Address `outline` inconsistency between Chrome and other browsers. + */ + +a:focus { + outline: thin dotted; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* ========================================================================== + Typography + ========================================================================== */ + +/** + * Address font sizes and margins set differently in IE 6/7. + * Address font sizes within `section` and `article` in Firefox 4+, Safari 5, + * and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +h2 { + font-size: 1.5em; + margin: 0.83em 0; +} + +h3 { + font-size: 1.17em; + margin: 1em 0; +} + +h4 { + font-size: 1em; + margin: 1.33em 0; +} + +h5 { + font-size: 0.83em; + margin: 1.67em 0; +} + +h6 { + font-size: 0.67em; + margin: 2.33em 0; +} + +/** + * Address styling not present in IE 7/8/9, Safari 5, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +blockquote { + margin: 1em 40px; +} + +/** + * Address styling not present in Safari 5 and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address differences between Firefox and other browsers. + * Known issue: no IE 6/7 normalization. + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Address styling not present in IE 6/7/8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Address margins set differently in IE 6/7. + */ + +p, +pre { + margin: 1em 0; +} + +/** + * Correct font family set oddly in IE 6, Safari 4/5, and Chrome. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, serif; + _font-family: 'courier new', monospace; + font-size: 1em; +} + +/** + * Improve readability of pre-formatted text in all browsers. + */ + +pre { + white-space: pre; + white-space: pre-wrap; + word-wrap: break-word; +} + +/** + * Address CSS quotes not supported in IE 6/7. + */ + +q { + quotes: none; +} + +/** + * Address `quotes` property not supported in Safari 4. + */ + +q:before, +q:after { + content: ''; + content: none; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* ========================================================================== + Lists + ========================================================================== */ + +/** + * Address margins set differently in IE 6/7. + */ + +dl, +menu, +ol, +ul { + margin: 1em 0; +} + +dd { + margin: 0 0 0 40px; +} + +/** + * Address paddings set differently in IE 6/7. + */ + +menu, +ol, +ul { + padding: 0 0 0 40px; +} + +/** + * Correct list images handled incorrectly in IE 7. + */ + +nav ul, +nav ol { + list-style: none; + list-style-image: none; +} + +/* ========================================================================== + Embedded content + ========================================================================== */ + +/** + * 1. Remove border when inside `a` element in IE 6/7/8/9 and Firefox 3. + * 2. Improve image quality when scaled in IE 7. + */ + +img { + border: 0; /* 1 */ + -ms-interpolation-mode: bicubic; /* 2 */ +} + +/** + * Correct overflow displayed oddly in IE 9. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* ========================================================================== + Figures + ========================================================================== */ + +/** + * Address margin not present in IE 6/7/8/9, Safari 5, and Opera 11. + */ + +figure { + margin: 0; +} + +/* ========================================================================== + Forms + ========================================================================== */ + +/** + * Correct margin displayed oddly in IE 6/7. + */ + +form { + margin: 0; +} + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct color not being inherited in IE 6/7/8/9. + * 2. Correct text not wrapping in Firefox 3. + * 3. Correct alignment displayed oddly in IE 6/7. + */ + +legend { + border: 0; /* 1 */ + padding: 0; + white-space: normal; /* 2 */ + *margin-left: -7px; /* 3 */ +} + +/** + * 1. Correct font size not being inherited in all browsers. + * 2. Address margins set differently in IE 6/7, Firefox 3+, Safari 5, + * and Chrome. + * 3. Improve appearance and consistency in all browsers. + */ + +button, +input, +select, +textarea { + font-size: 100%; /* 1 */ + margin: 0; /* 2 */ + vertical-align: baseline; /* 3 */ + *vertical-align: middle; /* 3 */ +} + +/** + * Address Firefox 3+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +button, +input { + line-height: normal; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Chrome, Safari 5+, and IE 6+. + * Correct `select` style inheritance in Firefox 4+ and Opera. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + * 4. Remove inner spacing in IE 7 without affecting normal text inputs. + * Known issue: inner spacing remains in IE 6. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ + *overflow: visible; /* 4 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * 1. Address box sizing set to content-box in IE 8/9. + * 2. Remove excess padding in IE 8/9. + * 3. Remove excess padding in IE 7. + * Known issue: excess padding remains in IE 6. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ + *height: 13px; /* 3 */ + *width: 13px; /* 3 */ +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari 5 and Chrome + * on OS X. + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Remove inner padding and border in Firefox 3+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * 1. Remove default vertical scrollbar in IE 6/7/8/9. + * 2. Improve readability and alignment in all browsers. + */ + +textarea { + overflow: auto; /* 1 */ + vertical-align: top; /* 2 */ +} + +/* ========================================================================== + Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} diff --git a/site/0.0.7/css/print.css b/site/0.0.7/css/print.css new file mode 100644 index 000000000000..46c5e8109dd0 --- /dev/null +++ b/site/0.0.7/css/print.css @@ -0,0 +1,23 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +/* $Id: print.css 1201871 2011-11-14 20:18:24Z simonetripodi $ */ + +#banner, #footer, #leftcol, #breadcrumbs, .docs #toc, .docs .courtesylinks, #leftColumn, #navColumn {display: none !important;} +#bodyColumn, body.docs div.docs {margin: 0 !important;border: none !important} diff --git a/site/0.0.7/css/site.css b/site/0.0.7/css/site.css new file mode 100644 index 000000000000..2a3c49ac5b12 --- /dev/null +++ b/site/0.0.7/css/site.css @@ -0,0 +1,1287 @@ +/*! HTML5 Boilerplate v4.3.0 | MIT License | http://h5bp.com/ */ + +/* + * What follows is the result of much research on cross-browser styling. + * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal, + * Kroc Camen, and the H5BP dev community and team. + */ + +/* ========================================================================== + Base styles: opinionated defaults + ========================================================================== */ + +html, +button, +input, +select, +textarea { + color: #222; +} + +html { + font-size: 1em; + line-height: 1.4; +} + +/* + * Remove text-shadow in selection highlight: h5bp.com/i + * These selection rule sets have to be separate. + * Customize the background color to match your design. + */ + +::-moz-selection { + background: #b3d4fc; + text-shadow: none; +} + +::selection { + background: #b3d4fc; + text-shadow: none; +} + +/* + * A better looking default horizontal rule + */ + +hr { + display: block; + height: 1px; + border: 0; + border-top: 1px solid #ccc; + margin: 1em 0; + padding: 0; +} + +/* + * Remove the gap between images, videos, audio and canvas and the bottom of + * their containers: h5bp.com/i/440 + */ + +audio, +canvas, +img, +video { + vertical-align: middle; +} + +/* + * Remove default fieldset styles. + */ + +fieldset { + border: 0; + margin: 0; + padding: 0; +} + +/* + * Allow only vertical resizing of textareas. + */ + +textarea { + resize: vertical; +} + +/* ========================================================================== + Browse Happy prompt + ========================================================================== */ + +.browsehappy { + margin: 0.2em 0; + background: #ccc; + color: #000; + padding: 0.2em 0; +} + +/* ========================================================================== + Author's custom styles + ========================================================================== */ + +html { + height: 100%; + background: #fff; +} + +body { + height: 100%; + font-family: 'Roboto', sans-serif; + color: #5d6061; +} + + +/* Global Elements + ========================================================================== */ + +pre { + padding: 0.5em; + background: #f8f8f8; + /* Border Radius */ + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + font-family: 'Droid Sans Mono', monospace; +} + +code { + font-size: 1em; + line-height: 1.4em; +} + +img { + max-width: 100%; +} + +h1, h2, h3, h4, h5, h6 { + font-weight: normal; + font-weight: 300; +} + +/* Header + ========================================================================== */ + +.page-header, +.hero-banner { + background: #4285f4; + color: #fff; +} + +.page-header { + position: relative; + padding: 1em; +} + +.page-header.fixed { + position: fixed; + z-index: 2; + top: 0; + width: 100%; + padding: 0; +} + +/* + Logo +*/ + +.logo { + margin: 0; + width: 13em; + font-size: 1em; + line-height: normal; +} + +.page-header.fixed .logo { + width: auto; +} + +.page-header.fixed a { + color: #fff; + text-decoration: none; +} + +.page-header.fixed a:hover { + opacity: 0.4; +} + +.page-header.fixed .logo img { + position: relative; + top: -0.2em; + width: 2em; + margin: 0 0.5em; +} + +.page-header.fixed .gcloud { + display: inline-block; + padding: 0.4em 0 0.6em 0.6em; + border-left: 1px solid rgba(255,255,255,0.2); + font-family: 'Open Sans', sans-serif; + font-weight: 300; + font-size: 1.4em; +} + +/* + Menu +*/ + +.nav-current { + display: block; + position: absolute; + top: 1.2em; + right: 1em; + width: 24px; + height: 20px; + background: url(../img/icon-menu.svg) no-repeat; + text-indent: -90000px; + cursor: pointer; +} + +.page-header.fixed .nav-current { + top: 1em; +} + +.menu { + display: none; + position: absolute; + top: 3.6em; + right: 0; + width: 100%; + margin: 0; + padding: 0; + background: #2570ec; + /* Box Shadow */ + -webkit-box-shadow: 5px 5px 8px rgba(0,16,41,0.3); + -moz-box-shadow: 5px 5px 8px rgba(0,16,41,0.3); + box-shadow: 5px 5px 8px rgba(0,16,41,0.3); + /* Transitions */ + -webkit-transition: all 0.3s ease; + -moz-transition: all 0.3s ease; + -ms-transition: all 0.3s ease; + -o-transition: all 0.3s ease; + transition: all 0.3s ease; +} + +.page-header.fixed .menu { + top: 3.3em; +} + +.menu a { + display: block; + padding: 1em; + border-top: 1px solid rgba(255,255,255,0.2); + color: #fff; + text-decoration: none; + /* Transitions */ + -webkit-transition: all 0.3s ease; + -moz-transition: all 0.3s ease; + -ms-transition: all 0.3s ease; + -o-transition: all 0.3s ease; + transition: all 0.3s ease; +} + +.menu a:hover { + background: #1a65e0; +} + +.menu-icon { + margin-right: 0.5em; +} + +/* + Open Menu + */ + +.main-nav.open .nav-current { + opacity: 0.4; +} + +.main-nav.open .menu { + display: block; +} + + + +/* Home Content + ========================================================================== */ + +/* + Main Content +*/ + +.main { + font-size: 0.9em; + line-height: 1.8em; +} + +.container { + padding: 2.8em 2em; +} + +.block-title { + margin-top: 0; + font-size: 1.6em; +} + +/* + Hero Banner +*/ + +.hero-banner h1 { + margin: 0 0 0.6em; + font-family: 'Open Sans', sans-serif; + font-size: 3.5em; + font-weight: 300; +} + +.hero-banner p { + margin-bottom: 2.2em; + font-size: 0.9em; + line-height: 1.6em; +} + +.hero-banner h2 { + margin-bottom: 0.2em; + font-size: 1.3em; +} + +.hero-banner pre { + margin: 0; + padding: 1em; + border: none; + background: #2a74ed; +} + +/* + What is it? + */ +.about pre { + font-size: 110%; +} + +/* + Featuring +*/ + +.featuring .block-title { + text-align: center; +} + +.featuring p { + font-size: 0.9em; + line-height: 1.6em; +} + +.featuring-links { + list-style: none; + margin: 0; + padding: 0; +} + +.btn, +.ext-link { + display: block; +} + +.btn { + padding: 1em; + border: none; + /* Border Radius */ + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + background: #db4437; + color: #fff; + text-decoration: none; + /* Transitions */ + -webkit-transition: all 0.3s ease; + -moz-transition: all 0.3s ease; + -ms-transition: all 0.3s ease; + -o-transition: all 0.3s ease; + transition: all 0.3s ease; +} + +.btn:hover { + background: #f24f41; +} + +.btn img { + margin-right: 0.5em; +} + +.featuring-links .btn { + margin-bottom: 1em; + padding: 1.5em; + font-size: 1.1em; + text-align: center; +} + +.featuring-links .btn img { + width: 2em; +} + +.ext-link { + display: block; + padding: 1em; + border-bottom: 1px solid rgba(0,0,0,0.1); + color: #5d6061; + text-decoration: none; + /* Transitions */ + -webkit-transition: all 0.3s ease; + -moz-transition: all 0.3s ease; + -ms-transition: all 0.3s ease; + -o-transition: all 0.3s ease; + transition: all 0.3s ease; +} + +.ext-link:hover { + background: #f6f6f6; +} + +.ext-link img { + opacity: 0.5; + margin-right: 0.5em; + /* Transitions */ + -webkit-transition: all 0.3s ease; + -moz-transition: all 0.3s ease; + -ms-transition: all 0.3s ease; + -o-transition: all 0.3s ease; + transition: all 0.3s ease; +} + +.ext-link:hover img { + opacity: 0.7; +} + +.pagination { + margin: 2em 0 0; + padding: 0; + list-style: none; + text-decoration: none; + text-align: center; +} + +.pagination li { + display: inline-block; + width: 1em; + height: 1em; + margin: 0 0.2em; +} + +.pagination a { + display: block; + width: 100%; + height: 100%; + border: 1px solid rgba(0,0,0,0.2); + /* Border Radius */ + -webkit-border-radius: 50%; + -moz-border-radius: 50%; + border-radius: 50%; + background: #fff; + text-indent: -90000px; +} + +.pagination a:hover { + background: rgba(0,0,0,0.1); +} + +.pagination .current, +.pagination .current:hover { + background: #db4437; + border-color: #db4437; +} + +/* + About +*/ + +.about { + background: #eee; +} + +.about h4 { + margin-bottom: 0; + font-size: 1.2em; + font-weight: bold; + color: #4285f4; +} + +/* + FAQ +*/ + +.faq-btn, +.faq-questions { + max-width: 20em; + margin: 0; + padding: 0; + list-style: none; +} + +.faq-btn { + position: relative; + margin-bottom: 2em; +} + +.faq-btn .current { + background: #e6eefc url(../img/icon-dropdown-faq.svg) 95% 50% no-repeat; +} + +.faq-btn .current, +.faq-questions a { + display: block; + padding: 1em; + border: 1px solid #a7bfe8; + color: #2b70e2; + cursor: pointer; + text-decoration: none; + /* Transitions */ + -webkit-transition: all 0.3s ease; + -moz-transition: all 0.3s ease; + -ms-transition: all 0.3s ease; + -o-transition: all 0.3s ease; + transition: all 0.3s ease; +} + +.faq-questions { + display: none; + position: absolute; + width: 100%; +} + +.faq-questions a { + border-top: none; + background: #e6eefc; +} + +.faq-questions a:hover { + background: #fcfdff; +} + +/* + Open FAQ button + */ + +.faq-btn.open .current { + background-color: #c6d7f6; + /* Box Shadow */ + -webkit-box-shadow: inset 0 0 10px rgba(16,71,163,0.3); + -moz-box-shadow: inset 0 0 10px rgba(16,71,163,0.3); + box-shadow: inset 0 0 10px rgba(16,71,163,0.3); + color: #1555bf; +} + +.faq-btn.open .faq-questions { + display: block; +} + + +/* Docs Content + ========================================================================== */ + +.docs-header { + position: relative; + padding: 7em 2em 4em; + background: #f8f8f8; + border-bottom: 1px solid rgba(0,0,0,0.05); +} + +/* + Page Title +*/ + +.page-title { + margin: 0; + font-family: 'Open Sans', sans-serif; + font-weight: 300; + color: #4285f4; + font-size: 2.4em; + line-height: 1em; +} + +/* + Versions +*/ + +.versions { + display: inline-block; + margin-top: 2em; +} + +.versions span, +.versions a { + display: block; +} + +.v-current { + font-size: 1.2em; + color: #2b70e2; +} + +.v-current i { + font-size: 0.7em; +} + +.v-btn { + padding: 0.5em; + border: 1px solid rgba(0,0,0,0.2); + background: rgba(0,0,0,0.07); + font-size: 0.8em; + color: rgba(0,0,0,0.6); + text-align: center; + text-decoration: none; + /* Transitions */ + -webkit-transition: all 0.3s ease; + -moz-transition: all 0.3s ease; + -ms-transition: all 0.3s ease; + -o-transition: all 0.3s ease; + transition: all 0.3s ease; +} + +.v-btn:hover { + background: rgba(0,0,0,0.02); +} + +.v-btn img { + position: relative; + top: -0.1em; + opacity: 0.3; +} + +.v-list { + color: rgba(0,0,0,0.2); +} + +.v-list a { + color: #4285f4; + text-decoration: none; +} + +.v-list a:hover { + text-decoration: underline; +} + +/* + Content + */ + + +.content { + padding: 1em 2em; +} + +.content pre, +.table { + border: 0; + margin-bottom: 2em; +} + +.content h2, .content h3, .content h4, .content h5, .content h6 { + margin: 2em 0 0.5em; +} + +.content>h2:first-child { + margin-top: 1em; +} + +/* + Tables + */ + +.table { + text-align: left; +} + +.table th, +.table td { + padding: 0.3em 1em; + border: 1px solid #cfcfcf; +} + +.table th[scope="col"] { + border-color: #2264d0; + background: #4285f4; + color: #fff; +} + +.table th[scope="row"] { + background: #f6f6f6; +} + +/* + Side Nav + */ + + .side-nav { + padding-bottom: 3em; + background: #efefef; + } + +.side-nav a { + display: block; + padding: 0.3em 2em; + color: #5d6061; + text-decoration: none; + /* Transitions */ + -webkit-transition: all 0.3s ease; + -moz-transition: all 0.3s ease; + -ms-transition: all 0.3s ease; + -o-transition: all 0.3s ease; + transition: all 0.3s ease; +} + +.side-nav a:hover { + background: rgba(255,255,255,0.7); +} + +.side-nav .current, +.side-nav .current:hover { + background: #e2e2e2; +} + +.side-nav ul { + margin: 0; + padding: 0; +} + +.side-nav .sub-sections a { + padding-left: 4em; +} + +.side-nav .external-links { + margin-top: 2em; +} + +.external-links img { + margin-right: 0.3em; + opacity: 0.3; + /* Transitions */ + -webkit-transition: all 0.3s ease; + -moz-transition: all 0.3s ease; + -ms-transition: all 0.3s ease; + -o-transition: all 0.3s ease; + transition: all 0.3s ease; +} + +.external-links a:hover img { + opacity: 0.6; +} + + + +/* ========================================================================== + Helper classes + ========================================================================== */ + +/* + * Image replacement + */ + +.ir { + background-color: transparent; + border: 0; + overflow: hidden; + /* IE 6/7 fallback */ + *text-indent: -9999px; +} + +.ir:before { + content: ""; + display: block; + width: 0; + height: 150%; +} + +/* + * Hide from both screenreaders and browsers: h5bp.com/u + */ + +.hidden { + display: none !important; + visibility: hidden; +} + +/* + * Hide only visually, but have it available for screenreaders: h5bp.com/v + */ + +.visuallyhidden { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} + +/* + * Extends the .visuallyhidden class to allow the element to be focusable + * when navigated to via the keyboard: h5bp.com/p + */ + +.visuallyhidden.focusable:active, +.visuallyhidden.focusable:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto; +} + +/* + * Hide visually and from screenreaders, but maintain layout + */ + +.invisible { + visibility: hidden; +} + +/* + * Clearfix: contain floats + * + * For modern browsers + * 1. The space content is one way to avoid an Opera bug when the + * `contenteditable` attribute is included anywhere else in the document. + * Otherwise it causes space to appear at the top and bottom of elements + * that receive the `clearfix` class. + * 2. The use of `table` rather than `block` is only necessary if using + * `:before` to contain the top-margins of child elements. + */ + +.clearfix:before, +.clearfix:after { + content: " "; /* 1 */ + display: table; /* 2 */ +} + +.clearfix:after { + clear: both; +} + +/* + * For IE 6/7 only + * Include this rule to trigger hasLayout and contain floats. + */ + +.clearfix { + *zoom: 1; +} + +/* ========================================================================== + EXAMPLE Media Queries for Responsive Design. + These examples override the primary ('mobile first') styles. + Modify as content requires. + ========================================================================== */ + +@media only screen and (min-width: 35em) { + + /* + Main + */ + + .main { + font-size: 1em; + } + + /* + Featuring + */ + + .featuring-links { + text-align: center; + } + + .featuring-links li { + display: inline-block; + } + + .featuring-links li:first-child { + display: block; + } + + .featuring-links .btn { + display: inline-block; + padding: 1em 2.4em; + } + + .ext-link { + display: inline-block; + padding: 0.8em 1.2em; + border: none; + /* Border Radius */ + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + } + + .pagination li { + width: 0.6em; + height: 0.6em; + } + +} + +@media only screen and (min-width: 45em) { + + /* + Docs Header + */ + + .versions { + position: absolute; + top: 6em; + right: 2em; + margin: 0; + } + + .v-btn { + + font-size: 0.7em; + line-height: normal; + } + +} + +@media only screen and (min-width: 50em) { + + /* + Header + */ + + .page-header { + padding: 1.6em; + } + + .page-header.fixed .logo img { + margin: 0 0.8em; + } + + .page-header.fixed .gcloud { + padding: 0 0 0 1em; + height: 70px; + line-height: 70px; + } + + /* + Logo + */ + + .logo { + width: 280px; + } + + /* + Menu + */ + + .main-nav { + position: absolute; + top: 1.2em; + left: 21.5em; + } + + .page-header.fixed .main-nav { + top: 0; + left: 11.5em; + } + + .nav-current { + position: relative; + top: 0; + left: 0; + padding: 0.8em 1.6em; + width: 150px; + height: auto; + border: 1px solid rgba(255,255,255,0.4); + background: url(../img/icon-dropdown.svg) 90% 50% no-repeat; + text-indent: 0; + } + + .page-header.fixed .nav-current { + top: 0; + padding: 0 1.6em; + height: 70px; + border: 1px solid rgba(255,255,255,0.2); + border-top: none; + border-bottom: none; + line-height: 70px; + } + + .nav-current:hover { + background-color: rgba(255,255,255,0.1); + } + + .menu { + top: 3em; + left: 0; + } + + .menu a { + padding: 1.2em 1.5em; + } + + .page-header.fixed .menu { + top: 70px; + } + + /* + Docs Header + */ + + .docs-header { + padding-top: 7.7em; + } + + .versions { + top: 7em; + } + + + /* + Content + */ + + .container, + .content { + width: 80%; + margin: 0 auto; + padding: 2em 0; + } + + /* + Hero Banner + */ + + .hero-banner { + padding: 2em 0; + } + + .hero-banner h1 { + font-size: 5em; + margin-bottom: 0.8em; + } + + .hero-banner p { + font-size: 1em; + line-height: 2em; + } + + /* + Featuring + */ + + .featuring .block-title { + margin-bottom: 1.4em; + } + +} + +@media only screen and (min-width: 60em) { + + /* + Content + */ + + .container { + width: 90%; + max-width: 1020px; + font-size: 0.9em; + } + + .col { + width: 46%; + } + + .col-left { + float: left; + } + + .col-right { + float: right; + } + + .block-title { + font-size: 2em; + } + + /* + Hero Banner + */ + + .hero-banner { + padding-bottom: 0; + } + + .hero-banner .col-right { + padding-top: 3.6em; + } + + .hero-banner h1 { + font-size: 5.6em; + } + + .hero-banner p { + font-size: 1.1em; + } + + .hero-banner h2 { + font-size: 1.3em; + margin-bottom: 0.4em; + } + + .hero-banner pre { + font-size: 1.1em; + padding: 1em 1.5em; + } + + /* + Featuring + */ + + .featuring { + text-align: center; + } + + .featuring-links li { + font-size: 1em; + } + + .featuring-links li:first-child { + display: inline-block; + } + + .featuring-links .btn { + margin-right: 0.5em; + } + + .ext-link { + padding: 0.5em 1.2em; + } + + .featuring p { + max-width: 80%; + margin: 0 auto; + font-size: 1em; + } + + /* + About + */ + + .about .col-right { + padding-top: 2.4em; + } + + /* + FAQ + */ + + .faq .answer { + -moz-column-count: 2; + -moz-column-gap: 50px; + -webkit-column-count: 2; + -webkit-column-gap: 50px; + column-count: 2; + column-gap: 50px; + } + + /* + Docs Page + */ + + .lang-page { + background: url(../img/lang-bg.png) repeat-y; + } + + .docs-header { + margin-left: 240px; + } + + .content { + width: 100%; + max-width: 1070px; + padding-left: 290px; + padding-right: 2em; + /* Box Sizing */ + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + margin: 0; + font-size: 0.9em; + } + + + .side-nav { + position: absolute; + top: 0; + left: 0; + width: 240px; + padding-top: 7.7em; + background: none; + font-size: 0.9em; + } + + .side-nav a { + padding-left: 2.5em; + } + +} + +@media print, + (-o-min-device-pixel-ratio: 5/4), + (-webkit-min-device-pixel-ratio: 1.25), + (min-resolution: 120dpi) { + /* Style adjustments for high resolution devices */ +} + +/* ========================================================================== + Print styles. + Inlined to avoid required HTTP connection: h5bp.com/r + ========================================================================== */ + +@media print { + * { + background: transparent !important; + color: #000 !important; /* Black prints faster: h5bp.com/s */ + box-shadow: none !important; + text-shadow: none !important; + } + + a, + a:visited { + text-decoration: underline; + } + + a[href]:after { + content: " (" attr(href) ")"; + } + + abbr[title]:after { + content: " (" attr(title) ")"; + } + + /* + * Don't show links for images, or javascript/internal links + */ + + .ir a:after, + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; + } + + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + + thead { + display: table-header-group; /* h5bp.com/t */ + } + + tr, + img { + page-break-inside: avoid; + } + + img { + max-width: 100% !important; + } + + @page { + margin: 0.5cm; + } + + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + + h2, + h3 { + page-break-after: avoid; + } +} diff --git a/site/0.0.7/dependency-analysis.html b/site/0.0.7/dependency-analysis.html new file mode 100644 index 000000000000..9db325938693 --- /dev/null +++ b/site/0.0.7/dependency-analysis.html @@ -0,0 +1,174 @@ + + + + + + + + + GCloud Java – + + + + + + + + + + + + + +
+ + + + + +
+
+ +
+ + +
+ + +
+
+
+ +
+ + + + diff --git a/site/0.0.7/dependency-convergence.html b/site/0.0.7/dependency-convergence.html new file mode 100644 index 000000000000..1733f2baa06d --- /dev/null +++ b/site/0.0.7/dependency-convergence.html @@ -0,0 +1,374 @@ + + + + + + + + + GCloud Java – Reactor Dependency Convergence + + + + + + + + + + + + + +
+ + + + + +
+
+ +
+ + +
+ +
+

Reactor Dependency Convergence

+ + + +
+ Legend: +
errorAt least one dependency has a differing version of the dependency or has SNAPSHOT dependencies.

+ + + + + + + + + + + + + + + + + + + + + +
+ Statistics: +
Number of modules:6
Number of dependencies (NOD):41
Number of unique artifacts (NOA):49
Number of version-conflicting artifacts (NOC):6
Number of SNAPSHOT artifacts (NOS):0
Convergence (NOD/NOA):error 83 %
Ready for release (100 % convergence and no SNAPSHOTS):error Error
You do not have 100 % convergence.
+
+

Dependencies used in modules

+
+

com.google.api-client:google-api-client

+ + + +
error + + + + + + + + + +
1.15.0-rc +
    +
  1. com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT
    \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
       \- com.google.api-client:google-api-client:jar:1.15.0-rc:compile

  2. +
  3. com.google.gcloud:gcloud-java-examples:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT:compile
       \- com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT:compile
          \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
             \- (com.google.api-client:google-api-client:jar:1.15.0-rc:compile - omitted for conflict with 1.20.0)

  4. +
  5. com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT:compile
       \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
          \- (com.google.api-client:google-api-client:jar:1.15.0-rc:compile - omitted for conflict with 1.20.0)

1.19.0 +
    +
  1. com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT
    \- com.google.apis:google-api-services-datastore:jar:v1beta2-rev23-1.19.0:compile
       \- (com.google.api-client:google-api-client:jar:1.19.0:compile - omitted for conflict with 1.15.0-rc)

  2. +
  3. com.google.gcloud:gcloud-java-examples:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT:compile
       \- com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT:compile
          \- com.google.apis:google-api-services-datastore:jar:v1beta2-rev23-1.19.0:compile
             \- (com.google.api-client:google-api-client:jar:1.19.0:compile - omitted for conflict with 1.20.0)

  4. +
  5. com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT:compile
       \- com.google.apis:google-api-services-datastore:jar:v1beta2-rev23-1.19.0:compile
          \- (com.google.api-client:google-api-client:jar:1.19.0:compile - omitted for conflict with 1.20.0)

1.20.0 +
    +
  1. com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
       \- com.google.api-client:google-api-client-appengine:jar:1.20.0:compile
          +- (com.google.api-client:google-api-client:jar:1.20.0:compile - omitted for conflict with 1.15.0-rc)
          \- com.google.api-client:google-api-client-servlet:jar:1.20.0:compile
             \- (com.google.api-client:google-api-client:jar:1.20.0:compile - omitted for duplicate)

  2. +
  3. com.google.gcloud:gcloud-java-examples:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT:compile
       +- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
       |  \- com.google.api-client:google-api-client-appengine:jar:1.20.0:compile
       |     +- com.google.api-client:google-api-client:jar:1.20.0:compile
       |     \- com.google.api-client:google-api-client-servlet:jar:1.20.0:compile
       |        \- (com.google.api-client:google-api-client:jar:1.20.0:compile - omitted for duplicate)
       \- com.google.gcloud:gcloud-java-storage:jar:0.0.7-SNAPSHOT:compile
          \- com.google.apis:google-api-services-storage:jar:v1-rev33-1.20.0:compile
             \- (com.google.api-client:google-api-client:jar:1.20.0:compile - omitted for duplicate)

  4. +
  5. com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT
    +- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
    |  \- com.google.api-client:google-api-client-appengine:jar:1.20.0:compile
    |     +- com.google.api-client:google-api-client:jar:1.20.0:compile
    |     \- com.google.api-client:google-api-client-servlet:jar:1.20.0:compile
    |        \- (com.google.api-client:google-api-client:jar:1.20.0:compile - omitted for duplicate)
    \- com.google.gcloud:gcloud-java-storage:jar:0.0.7-SNAPSHOT:compile
       \- com.google.apis:google-api-services-storage:jar:v1-rev33-1.20.0:compile
          \- (com.google.api-client:google-api-client:jar:1.20.0:compile - omitted for duplicate)

+
+

com.google.http-client:google-http-client

+ + + +
error + + + + + + + + + +
1.15.0-rc +
    +
  1. com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT
    \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
       +- (com.google.http-client:google-http-client:jar:1.15.0-rc:compile - omitted for conflict with 1.20.0)
       \- com.google.http-client:google-http-client-protobuf:jar:1.15.0-rc:compile
          \- (com.google.http-client:google-http-client:jar:1.15.0-rc:compile - omitted for conflict with 1.20.0)

  2. +
  3. com.google.gcloud:gcloud-java-examples:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT:compile
       \- com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT:compile
          \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
             +- (com.google.http-client:google-http-client:jar:1.15.0-rc:compile - omitted for conflict with 1.20.0)
             \- com.google.http-client:google-http-client-protobuf:jar:1.15.0-rc:compile
                \- (com.google.http-client:google-http-client:jar:1.15.0-rc:compile - omitted for conflict with 1.20.0)

  4. +
  5. com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT:compile
       \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
          +- (com.google.http-client:google-http-client:jar:1.15.0-rc:compile - omitted for conflict with 1.20.0)
          \- com.google.http-client:google-http-client-protobuf:jar:1.15.0-rc:compile
             \- (com.google.http-client:google-http-client:jar:1.15.0-rc:compile - omitted for conflict with 1.20.0)

1.19.0 +
    +
  1. com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT
    \- com.google.auth:google-auth-library-oauth2-http:jar:0.1.0:compile
       +- (com.google.http-client:google-http-client:jar:1.19.0:compile - omitted for conflict with 1.20.0)
       \- com.google.http-client:google-http-client-jackson2:jar:1.19.0:compile
          \- (com.google.http-client:google-http-client:jar:1.19.0:compile - omitted for duplicate)

  2. +
  3. com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
       \- com.google.auth:google-auth-library-oauth2-http:jar:0.1.0:compile
          +- (com.google.http-client:google-http-client:jar:1.19.0:compile - omitted for conflict with 1.20.0)
          \- com.google.http-client:google-http-client-jackson2:jar:1.19.0:compile
             \- (com.google.http-client:google-http-client:jar:1.19.0:compile - omitted for duplicate)

  4. +
  5. com.google.gcloud:gcloud-java-examples:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT:compile
       \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
          \- com.google.auth:google-auth-library-oauth2-http:jar:0.1.0:compile
             +- (com.google.http-client:google-http-client:jar:1.19.0:compile - omitted for conflict with 1.20.0)
             \- com.google.http-client:google-http-client-jackson2:jar:1.19.0:compile
                \- (com.google.http-client:google-http-client:jar:1.19.0:compile - omitted for duplicate)

  6. +
  7. com.google.gcloud:gcloud-java-storage:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
       \- com.google.auth:google-auth-library-oauth2-http:jar:0.1.0:compile
          +- (com.google.http-client:google-http-client:jar:1.19.0:compile - omitted for conflict with 1.20.0)
          \- com.google.http-client:google-http-client-jackson2:jar:1.19.0:compile
             \- (com.google.http-client:google-http-client:jar:1.19.0:compile - omitted for duplicate)

  8. +
  9. com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
       \- com.google.auth:google-auth-library-oauth2-http:jar:0.1.0:compile
          +- (com.google.http-client:google-http-client:jar:1.19.0:compile - omitted for conflict with 1.20.0)
          \- com.google.http-client:google-http-client-jackson2:jar:1.19.0:compile
             \- (com.google.http-client:google-http-client:jar:1.19.0:compile - omitted for duplicate)

1.20.0 +
    +
  1. com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT
    +- com.google.http-client:google-http-client:jar:1.20.0:compile
    +- com.google.oauth-client:google-oauth-client:jar:1.20.0:compile
    |  \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)
    +- com.google.api-client:google-api-client-appengine:jar:1.20.0:compile
    |  +- com.google.oauth-client:google-oauth-client-appengine:jar:1.20.0:compile
    |  |  \- com.google.oauth-client:google-oauth-client-servlet:jar:1.20.0:compile
    |  |     \- com.google.http-client:google-http-client-jdo:jar:1.20.0:compile
    |  |        \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)
    |  \- com.google.http-client:google-http-client-appengine:jar:1.20.0:compile
    |     \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)
    \- com.google.http-client:google-http-client-jackson:jar:1.20.0:compile
       \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)

  2. +
  3. com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
       +- com.google.http-client:google-http-client:jar:1.20.0:compile
       +- com.google.oauth-client:google-oauth-client:jar:1.20.0:compile
       |  \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)
       +- com.google.api-client:google-api-client-appengine:jar:1.20.0:compile
       |  +- com.google.oauth-client:google-oauth-client-appengine:jar:1.20.0:compile
       |  |  \- com.google.oauth-client:google-oauth-client-servlet:jar:1.20.0:compile
       |  |     \- com.google.http-client:google-http-client-jdo:jar:1.20.0:compile
       |  |        \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)
       |  \- com.google.http-client:google-http-client-appengine:jar:1.20.0:compile
       |     \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)
       \- com.google.http-client:google-http-client-jackson:jar:1.20.0:compile
          \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)

  4. +
  5. com.google.gcloud:gcloud-java-examples:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT:compile
       \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
          +- com.google.http-client:google-http-client:jar:1.20.0:compile
          +- com.google.oauth-client:google-oauth-client:jar:1.20.0:compile
          |  \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)
          +- com.google.api-client:google-api-client-appengine:jar:1.20.0:compile
          |  +- com.google.oauth-client:google-oauth-client-appengine:jar:1.20.0:compile
          |  |  \- com.google.oauth-client:google-oauth-client-servlet:jar:1.20.0:compile
          |  |     \- com.google.http-client:google-http-client-jdo:jar:1.20.0:compile
          |  |        \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)
          |  \- com.google.http-client:google-http-client-appengine:jar:1.20.0:compile
          |     \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)
          \- com.google.http-client:google-http-client-jackson:jar:1.20.0:compile
             \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)

  6. +
  7. com.google.gcloud:gcloud-java-storage:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
       +- com.google.http-client:google-http-client:jar:1.20.0:compile
       +- com.google.oauth-client:google-oauth-client:jar:1.20.0:compile
       |  \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)
       +- com.google.api-client:google-api-client-appengine:jar:1.20.0:compile
       |  +- com.google.oauth-client:google-oauth-client-appengine:jar:1.20.0:compile
       |  |  \- com.google.oauth-client:google-oauth-client-servlet:jar:1.20.0:compile
       |  |     \- com.google.http-client:google-http-client-jdo:jar:1.20.0:compile
       |  |        \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)
       |  \- com.google.http-client:google-http-client-appengine:jar:1.20.0:compile
       |     \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)
       \- com.google.http-client:google-http-client-jackson:jar:1.20.0:compile
          \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)

  8. +
  9. com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
       +- com.google.http-client:google-http-client:jar:1.20.0:compile
       +- com.google.oauth-client:google-oauth-client:jar:1.20.0:compile
       |  \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)
       +- com.google.api-client:google-api-client-appengine:jar:1.20.0:compile
       |  +- com.google.oauth-client:google-oauth-client-appengine:jar:1.20.0:compile
       |  |  \- com.google.oauth-client:google-oauth-client-servlet:jar:1.20.0:compile
       |  |     \- com.google.http-client:google-http-client-jdo:jar:1.20.0:compile
       |  |        \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)
       |  \- com.google.http-client:google-http-client-appengine:jar:1.20.0:compile
       |     \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)
       \- com.google.http-client:google-http-client-jackson:jar:1.20.0:compile
          \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)

+
+

com.google.http-client:google-http-client-jackson

+ + + +
error + + + + + + +
1.15.0-rc +
    +
  1. com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT
    \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
       \- (com.google.http-client:google-http-client-jackson:jar:1.15.0-rc:compile - omitted for conflict with 1.20.0)

  2. +
  3. com.google.gcloud:gcloud-java-examples:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT:compile
       \- com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT:compile
          \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
             \- (com.google.http-client:google-http-client-jackson:jar:1.15.0-rc:compile - omitted for conflict with 1.20.0)

  4. +
  5. com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT:compile
       \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
          \- (com.google.http-client:google-http-client-jackson:jar:1.15.0-rc:compile - omitted for conflict with 1.20.0)

1.20.0 +
    +
  1. com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
       \- com.google.http-client:google-http-client-jackson:jar:1.20.0:compile

  2. +
  3. com.google.gcloud:gcloud-java-examples:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT:compile
       \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
          \- com.google.http-client:google-http-client-jackson:jar:1.20.0:compile

  4. +
  5. com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
       \- com.google.http-client:google-http-client-jackson:jar:1.20.0:compile

+
+

com.google.http-client:google-http-client-jackson2

+ + + +
error + + + + + + +
1.19.0 +
    +
  1. com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT
    \- com.google.auth:google-auth-library-oauth2-http:jar:0.1.0:compile
       \- com.google.http-client:google-http-client-jackson2:jar:1.19.0:compile

  2. +
  3. com.google.gcloud:gcloud-java-examples:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT:compile
       \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
          \- com.google.auth:google-auth-library-oauth2-http:jar:0.1.0:compile
             \- com.google.http-client:google-http-client-jackson2:jar:1.19.0:compile

  4. +
  5. com.google.gcloud:gcloud-java-storage:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
       \- com.google.auth:google-auth-library-oauth2-http:jar:0.1.0:compile
          \- com.google.http-client:google-http-client-jackson2:jar:1.19.0:compile

  6. +
  7. com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
       \- com.google.auth:google-auth-library-oauth2-http:jar:0.1.0:compile
          \- com.google.http-client:google-http-client-jackson2:jar:1.19.0:compile

1.20.0 +
    +
  1. com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT
    \- com.google.api-client:google-api-client-appengine:jar:1.20.0:compile
       \- com.google.api-client:google-api-client:jar:1.20.0:compile
          \- (com.google.http-client:google-http-client-jackson2:jar:1.20.0:compile - omitted for conflict with 1.19.0)

  2. +
  3. com.google.gcloud:gcloud-java-examples:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT:compile
       \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
          \- com.google.api-client:google-api-client-appengine:jar:1.20.0:compile
             \- com.google.api-client:google-api-client:jar:1.20.0:compile
                \- (com.google.http-client:google-http-client-jackson2:jar:1.20.0:compile - omitted for conflict with 1.19.0)

  4. +
  5. com.google.gcloud:gcloud-java-storage:jar:0.0.7-SNAPSHOT
    \- com.google.apis:google-api-services-storage:jar:v1-rev33-1.20.0:compile
       \- com.google.api-client:google-api-client:jar:1.20.0:compile
          \- (com.google.http-client:google-http-client-jackson2:jar:1.20.0:compile - omitted for conflict with 1.19.0)

  6. +
  7. com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
       \- com.google.api-client:google-api-client-appengine:jar:1.20.0:compile
          \- com.google.api-client:google-api-client:jar:1.20.0:compile
             \- (com.google.http-client:google-http-client-jackson2:jar:1.20.0:compile - omitted for conflict with 1.19.0)

+
+

com.google.oauth-client:google-oauth-client

+ + + +
error + + + + + + +
1.15.0-rc +
    +
  1. com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT
    \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
       +- (com.google.oauth-client:google-oauth-client:jar:1.15.0-rc:compile - omitted for conflict with 1.20.0)
       \- com.google.api-client:google-api-client:jar:1.15.0-rc:compile
          \- (com.google.oauth-client:google-oauth-client:jar:1.15.0-rc:compile - omitted for conflict with 1.20.0)

  2. +
  3. com.google.gcloud:gcloud-java-examples:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT:compile
       \- com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT:compile
          \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
             \- (com.google.oauth-client:google-oauth-client:jar:1.15.0-rc:compile - omitted for conflict with 1.20.0)

  4. +
  5. com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT:compile
       \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
          \- (com.google.oauth-client:google-oauth-client:jar:1.15.0-rc:compile - omitted for conflict with 1.20.0)

1.20.0 +
    +
  1. com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
       +- com.google.oauth-client:google-oauth-client:jar:1.20.0:compile
       \- com.google.api-client:google-api-client-appengine:jar:1.20.0:compile
          \- com.google.oauth-client:google-oauth-client-appengine:jar:1.20.0:compile
             +- (com.google.oauth-client:google-oauth-client:jar:1.20.0:compile - omitted for duplicate)
             \- com.google.oauth-client:google-oauth-client-servlet:jar:1.20.0:compile
                \- (com.google.oauth-client:google-oauth-client:jar:1.20.0:compile - omitted for duplicate)

  2. +
  3. com.google.gcloud:gcloud-java-examples:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT:compile
       \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
          +- com.google.oauth-client:google-oauth-client:jar:1.20.0:compile
          \- com.google.api-client:google-api-client-appengine:jar:1.20.0:compile
             +- com.google.oauth-client:google-oauth-client-appengine:jar:1.20.0:compile
             |  +- (com.google.oauth-client:google-oauth-client:jar:1.20.0:compile - omitted for duplicate)
             |  \- com.google.oauth-client:google-oauth-client-servlet:jar:1.20.0:compile
             |     \- (com.google.oauth-client:google-oauth-client:jar:1.20.0:compile - omitted for duplicate)
             \- com.google.api-client:google-api-client:jar:1.20.0:compile
                \- (com.google.oauth-client:google-oauth-client:jar:1.20.0:compile - omitted for duplicate)

  4. +
  5. com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
       +- com.google.oauth-client:google-oauth-client:jar:1.20.0:compile
       \- com.google.api-client:google-api-client-appengine:jar:1.20.0:compile
          +- com.google.oauth-client:google-oauth-client-appengine:jar:1.20.0:compile
          |  +- (com.google.oauth-client:google-oauth-client:jar:1.20.0:compile - omitted for duplicate)
          |  \- com.google.oauth-client:google-oauth-client-servlet:jar:1.20.0:compile
          |     \- (com.google.oauth-client:google-oauth-client:jar:1.20.0:compile - omitted for duplicate)
          \- com.google.api-client:google-api-client:jar:1.20.0:compile
             \- (com.google.oauth-client:google-oauth-client:jar:1.20.0:compile - omitted for duplicate)

+
+

com.google.protobuf:protobuf-java

+ + + +
error + + + + + + +
2.4.1 +
    +
  1. com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT
    \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
       \- com.google.http-client:google-http-client-protobuf:jar:1.15.0-rc:compile
          \- (com.google.protobuf:protobuf-java:jar:2.4.1:compile - omitted for conflict with 2.5.0)

  2. +
  3. com.google.gcloud:gcloud-java-examples:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT:compile
       \- com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT:compile
          \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
             \- com.google.http-client:google-http-client-protobuf:jar:1.15.0-rc:compile
                \- (com.google.protobuf:protobuf-java:jar:2.4.1:compile - omitted for conflict with 2.5.0)

  4. +
  5. com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT:compile
       \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
          \- com.google.http-client:google-http-client-protobuf:jar:1.15.0-rc:compile
             \- (com.google.protobuf:protobuf-java:jar:2.4.1:compile - omitted for conflict with 2.5.0)

2.5.0 +
    +
  1. com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT
    \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
       \- com.google.protobuf:protobuf-java:jar:2.5.0:compile

  2. +
  3. com.google.gcloud:gcloud-java-examples:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT:compile
       \- com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT:compile
          \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
             \- com.google.protobuf:protobuf-java:jar:2.5.0:compile

  4. +
  5. com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT:compile
       \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
          \- com.google.protobuf:protobuf-java:jar:2.5.0:compile

+
+
+
+ +
+ + + + diff --git a/site/0.0.7/dependency-info.html b/site/0.0.7/dependency-info.html new file mode 100644 index 000000000000..f3b07341f7de --- /dev/null +++ b/site/0.0.7/dependency-info.html @@ -0,0 +1,233 @@ + + + + + + + + + GCloud Java – Dependency Information + + + + + + + + + + + + + +
+ + + + + +
+
+ +
+ + +
+ +
+

Dependency Information

+
+

Apache Maven

+
+
<dependency>
+  <groupId>com.google.gcloud</groupId>
+  <artifactId>gcloud-java-pom</artifactId>
+  <version>0.0.7-SNAPSHOT</version>
+  <type>pom</type>
+</dependency>
+
+

Apache Buildr

+
+
'com.google.gcloud:gcloud-java-pom:pom:0.0.7-SNAPSHOT'
+
+

Apache Ivy

+
+
<dependency org="com.google.gcloud" name="gcloud-java-pom" rev="0.0.7-SNAPSHOT">
+  <artifact name="gcloud-java-pom" type="pom" />
+</dependency>
+
+

Groovy Grape

+
+
@Grapes(
+@Grab(group='com.google.gcloud', module='gcloud-java-pom', version='0.0.7-SNAPSHOT')
+)
+
+

Grails

+
+
compile 'com.google.gcloud:gcloud-java-pom:0.0.7-SNAPSHOT'
+
+

Leiningen

+
+
[com.google.gcloud/gcloud-java-pom "0.0.7-SNAPSHOT"]
+
+

SBT

+
+
libraryDependencies += "com.google.gcloud" % "gcloud-java-pom" % "0.0.7-SNAPSHOT"
+
+
+
+ +
+ + + + diff --git a/site/0.0.7/dev-activity.html b/site/0.0.7/dev-activity.html new file mode 100644 index 000000000000..2ca764b9f23e --- /dev/null +++ b/site/0.0.7/dev-activity.html @@ -0,0 +1,191 @@ + + + + + + + + + GCloud Java – Developer Activity Report + + + + + + + + + + + + + +
+ + + + + +
+
+ +
+ + +
+ +
+

Developer Activity Report

+
+

Changes between 2015-07-18 and 2015-08-18

+

Total commits: 7
Total number of files changed: 52

+ + + + + + + + + + + + +
DeveloperTotal commitsTotal Number of Files Changed
Ajay Kannan <ajaykannan@google.com>649
aozarov <aozarov@gmail.com>13
+
+
+
+ +
+ + + + diff --git a/site/0.0.7/distribution-management.html b/site/0.0.7/distribution-management.html new file mode 100644 index 000000000000..45b28d4caef0 --- /dev/null +++ b/site/0.0.7/distribution-management.html @@ -0,0 +1,204 @@ + + + + + + + + + GCloud Java – Project Distribution Management + + + + + + + + + + + + + +
+ + + + + +
+
+ +
+ + +
+ +
+

Overview

+

The following is the distribution management information used by this project.

+ +
+

Snapshot Repository - sonatype-nexus-snapshots

https://oss.sonatype.org/content/repositories/snapshots
+
+

Site - github-pages-site

+

site/0.0.7-SNAPSHOT/

+
+
+
+ +
+ + + + diff --git a/site/0.0.7/file-activity.html b/site/0.0.7/file-activity.html new file mode 100644 index 000000000000..aa6efa5d450b --- /dev/null +++ b/site/0.0.7/file-activity.html @@ -0,0 +1,338 @@ + + + + + + + + + GCloud Java – File Activity Report + + + + + + + + + + + + + +
+ + + + + +
+
+ +
+ + +
+ +
+

File Activity Report

+
+

Changes between 2015-07-18 and 2015-08-18

+

Total commits: 7
Total number of files changed: 52

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FilenameNumber of Times Changed
src/site/resources/index.html 2
src/site/resources/img/icon-lang-java.svg 2
src/resources/css/github.min.css 2
src/resources/css/normalize.css 2
src/resources/css/site.css 2
src/resources/img/icon-arrow-bullet.svg 2
src/resources/img/icon-dropdown-faq.svg 2
src/resources/img/icon-dropdown.svg 2
src/resources/img/icon-lang-java.svg 2
src/resources/img/icon-lang-nodejs.svg 2
src/resources/img/icon-lang-python.svg 2
src/resources/img/icon-lang-ruby.svg 2
src/resources/img/icon-link-github.svg 2
src/resources/img/icon-link-package-manager.svg 2
src/resources/img/icon-link-stackoverflow.svg 2
src/resources/img/icon-menu.svg 2
src/resources/img/icon-table-check.svg 2
src/resources/img/lang-bg.png 2
src/resources/img/logo-full.svg 2
src/resources/img/logo.svg 2
src/resources/index.html 2
src/resources/index.html~ 2
src/resources/js/main.js 2
src/resources/js/plugins.js 2
src/resources/js/vendor/jquery-1.10.2.min.js 2
src/resources/js/vendor/modernizr-2.6.2.min.js 2
src/resources/js/vendor/prettify.js 2
gcloud-java-core/src/main/java/com/google/gcloud/ServiceOptions.java 1
gcloud-java-storage/src/main/java/com/google/gcloud/storage/StorageImpl.java 1
pom.xml 1
src/site/resources/css/github.min.css 1
src/site/resources/css/normalize.css 1
src/site/resources/css/site.css 1
src/site/resources/img/icon-arrow-bullet.svg 1
src/site/resources/img/icon-dropdown-faq.svg 1
src/site/resources/img/icon-dropdown.svg 1
src/site/resources/img/icon-lang-nodejs.svg 1
src/site/resources/img/icon-lang-python.svg 1
src/site/resources/img/icon-lang-ruby.svg 1
src/site/resources/img/icon-link-github.svg 1
src/site/resources/img/icon-link-package-manager.svg 1
src/site/resources/img/icon-link-stackoverflow.svg 1
src/site/resources/img/icon-menu.svg 1
src/site/resources/img/icon-table-check.svg 1
src/site/resources/img/lang-bg.png 1
src/site/resources/img/logo-full.svg 1
src/site/resources/img/logo.svg 1
src/site/resources/js/main.js 1
src/site/resources/js/plugins.js 1
src/site/resources/js/vendor/jquery-1.10.2.min.js 1
src/site/resources/js/vendor/modernizr-2.6.2.min.js 1
src/site/resources/js/vendor/prettify.js 1
+
+
+
+ +
+ + + + diff --git a/site/0.0.7/gcloud-java-core/changelog.html b/site/0.0.7/gcloud-java-core/changelog.html new file mode 100644 index 000000000000..1eafa31688fc --- /dev/null +++ b/site/0.0.7/gcloud-java-core/changelog.html @@ -0,0 +1,189 @@ + + + + + + + + + GCloud Java core – Change Log Report + + + + + + + + + + + + + +
+ + + + + +
+
+ +
+ + +
+ +
+

Change Log Report

+

Total number of changed sets: 1

+
+

Changes between 2015-07-18 and 2015-08-18

+

Total commits: 1
Total number of files changed: 1

+ + + + + + + + +
TimestampAuthorDetails
2015-07-30 15:18:41aozarov <aozarov@gmail.com>gcloud-java-core/src/main/java/com/google/gcloud/ServiceOptions.java v cbd1b26de2010578a833ab9c54180c5b437b211b

1. Fix issue #121 and replace default_project_id environment name with GCLOUD_PROJECT
2. Fix a null pointer bug with listing
3. Update maven dependencies
+
+
+
+ +
+ + + + diff --git a/site/0.0.7/gcloud-java-core/checkstyle.html b/site/0.0.7/gcloud-java-core/checkstyle.html new file mode 100644 index 000000000000..715109f569da --- /dev/null +++ b/site/0.0.7/gcloud-java-core/checkstyle.html @@ -0,0 +1,266 @@ + + + + + + + + + GCloud Java core – Checkstyle Results + + + + + + + + + + + + + +
+ + + + + +
+
+ +
+ + +
+ +
+

Checkstyle Results

+

The following document contains the results of Checkstyle 6.8.1 with checkstyle.xml ruleset. rss feed

+
+

Summary

+ + + + + + + + + + +
Files Info Warnings Errors
8030
+
+

Files

+ + + + + + + + + + + + + + + +
File I W E
com/google/gcloud/AuthCredentials.java010
com/google/gcloud/ServiceOptions.java020
+
+

Rules

+ + + + + + + + + + +
CategoryRuleViolationsSeverity
indentationIndentation +
    +
  • throwsIndent: "4"
  • +
  • arrayInitIndent: "2"
  • +
  • caseIndent: "2"
  • +
  • basicOffset: "2"
  • +
  • braceAdjustment: "0"
  • +
  • lineWrappingIndentation: "4"
3 Warning
+
+

Details

+
+

com/google/gcloud/AuthCredentials.java

+ + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningindentationIndentation'catch' child have incorrect indentation level 7, expected level should be 8.136
+
+

com/google/gcloud/ServiceOptions.java

+ + + + + + + + + + + + + + + + + + +
SeverityCategoryRuleMessageLine
 WarningindentationIndentation'member def type' have incorrect indentation level 3, expected level should be 4.216
 WarningindentationIndentation'method def' child have incorrect indentation level 3, expected level should be 4.216
+
+
+
+ +
+ + + + diff --git a/site/0.0.7/gcloud-java-core/checkstyle.rss b/site/0.0.7/gcloud-java-core/checkstyle.rss new file mode 100644 index 000000000000..0d4f10fd1af6 --- /dev/null +++ b/site/0.0.7/gcloud-java-core/checkstyle.rss @@ -0,0 +1,166 @@ + + + + + GCloud Java core - Checkstyle report + https://github.com/GoogleCloudPlatform/gcloud-java/gcloud-java-core + GCloud Java core - Checkstyle report + en-us + ©2015 Google + + File: 8, + Errors: 0, + Warnings: 3, + Infos: 0 + + https://github.com/GoogleCloudPlatform/gcloud-java/gcloud-java-core/checkstyle.html + +

Click here for the full Checkstyle report.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FilesIWE
+ com/google/gcloud/BaseService.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/spi/ServiceRpcFactory.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/ServiceOptions.java + + 0 + + 2 + + 0 +
+ com/google/gcloud/AuthCredentials.java + + 0 + + 1 + + 0 +
+ com/google/gcloud/ExceptionHandler.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/RetryParams.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/Service.java + + 0 + + 0 + + 0 +
+ com/google/gcloud/RetryHelper.java + + 0 + + 0 + + 0 +
+ +
+
+
+
+ diff --git a/site/0.0.7/gcloud-java-core/cobertura/com.google.gcloud.AuthCredentials.html b/site/0.0.7/gcloud-java-core/cobertura/com.google.gcloud.AuthCredentials.html new file mode 100644 index 000000000000..e8da3c756374 --- /dev/null +++ b/site/0.0.7/gcloud-java-core/cobertura/com.google.gcloud.AuthCredentials.html @@ -0,0 +1,402 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.AuthCredentials
+
 
+ + + + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
AuthCredentials
0%
0/9
N/A
1.273
AuthCredentials$AppEngineAuthCredentials
0%
0/4
N/A
1.273
AuthCredentials$ApplicationDefaultAuthCredentials
0%
0/7
N/A
1.273
AuthCredentials$ComputeEngineAuthCredentials
0%
0/10
N/A
1.273
AuthCredentials$ServiceAccountAuthCredentials
0%
0/22
0%
0/8
1.273
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud;
 18  
 
 19  
 import static com.google.common.base.Preconditions.checkNotNull;
 20  
 
 21  
 import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
 22  
 import com.google.api.client.googleapis.compute.ComputeCredential;
 23  
 import com.google.api.client.googleapis.extensions.appengine.auth.oauth2.AppIdentityCredential;
 24  
 import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
 25  
 import com.google.api.client.http.HttpRequestInitializer;
 26  
 import com.google.api.client.http.HttpTransport;
 27  
 import com.google.api.client.http.javanet.NetHttpTransport;
 28  
 import com.google.api.client.json.jackson.JacksonFactory;
 29  
 import com.google.auth.http.HttpCredentialsAdapter;
 30  
 import com.google.auth.oauth2.GoogleCredentials;
 31  
 
 32  
 import java.io.IOException;
 33  
 import java.io.ObjectInputStream;
 34  
 import java.io.ObjectStreamException;
 35  
 import java.io.Serializable;
 36  
 import java.security.GeneralSecurityException;
 37  
 import java.security.PrivateKey;
 38  
 import java.util.Objects;
 39  
 import java.util.Set;
 40  
 
 41  
 /**
 42  
  * Credentials for accessing Google Cloud services.
 43  
  */
 44  
 public abstract class AuthCredentials implements Serializable {
 45  
 
 46  
   private static final long serialVersionUID = 236297804453464604L;
 47  
 
 48  0
   private static class AppEngineAuthCredentials extends AuthCredentials {
 49  
 
 50  
     private static final long serialVersionUID = 7931300552744202954L;
 51  
 
 52  0
     private static final AuthCredentials INSTANCE = new AppEngineAuthCredentials();
 53  
 
 54  
     @Override
 55  
     protected HttpRequestInitializer httpRequestInitializer(HttpTransport transport,
 56  
         Set<String> scopes) {
 57  0
       return new AppIdentityCredential(scopes);
 58  
     }
 59  
 
 60  
     private Object readResolve() throws ObjectStreamException {
 61  0
       return INSTANCE;
 62  
     }
 63  
   }
 64  
 
 65  0
   public static class ServiceAccountAuthCredentials extends AuthCredentials {
 66  
 
 67  
     private static final long serialVersionUID = 8007708734318445901L;
 68  
     private final String account;
 69  
     private final PrivateKey privateKey;
 70  
 
 71  0
     private static final AuthCredentials NO_CREDENTIALS = new ServiceAccountAuthCredentials();
 72  
 
 73  0
     ServiceAccountAuthCredentials(String account, PrivateKey privateKey) {
 74  0
       this.account = checkNotNull(account);
 75  0
       this.privateKey = checkNotNull(privateKey);
 76  0
     }
 77  
 
 78  
     ServiceAccountAuthCredentials() {
 79  
       account = null;
 80  
       privateKey = null;
 81  
     }
 82  
 
 83  
     @Override
 84  
     protected HttpRequestInitializer httpRequestInitializer(
 85  
         HttpTransport transport, Set<String> scopes) {
 86  0
       GoogleCredential.Builder builder = new GoogleCredential.Builder()
 87  0
           .setTransport(transport)
 88  0
           .setJsonFactory(new JacksonFactory());
 89  0
       if (privateKey != null) {
 90  0
         builder.setServiceAccountPrivateKey(privateKey);
 91  0
         builder.setServiceAccountId(account);
 92  0
         builder.setServiceAccountScopes(scopes);
 93  
       }
 94  0
       return builder.build();
 95  
     }
 96  
 
 97  
     public String account() {
 98  0
       return account;
 99  
     }
 100  
 
 101  
     public PrivateKey privateKey() {
 102  0
       return privateKey;
 103  
     }
 104  
 
 105  
     @Override
 106  
     public int hashCode() {
 107  0
       return Objects.hash(account, privateKey);
 108  
     }
 109  
 
 110  
     @Override
 111  
     public boolean equals(Object obj) {
 112  0
       if (!(obj instanceof ServiceAccountAuthCredentials)) {
 113  0
         return false;
 114  
       }
 115  0
       ServiceAccountAuthCredentials other = (ServiceAccountAuthCredentials) obj;
 116  0
       return Objects.equals(account, other.account)
 117  0
           && Objects.equals(privateKey, other.privateKey);
 118  
     }
 119  
   }
 120  
 
 121  
   private static class ComputeEngineAuthCredentials extends AuthCredentials {
 122  
 
 123  
     private static final long serialVersionUID = -5217355402127260144L;
 124  
 
 125  
     private transient ComputeCredential computeCredential;
 126  
 
 127  0
     ComputeEngineAuthCredentials() throws IOException, GeneralSecurityException {
 128  0
       computeCredential = getComputeCredential();
 129  0
     }
 130  
 
 131  
     private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
 132  0
       in.defaultReadObject();
 133  
       try {
 134  0
         computeCredential = getComputeCredential();
 135  0
       } catch (GeneralSecurityException e) {
 136  0
        throw new IOException(e);
 137  0
       }
 138  0
     }
 139  
 
 140  
     @Override
 141  
     protected HttpRequestInitializer httpRequestInitializer(HttpTransport transport,
 142  
         Set<String> scopes) {
 143  0
       return computeCredential;
 144  
     }
 145  
   }
 146  
 
 147  
   private static class ApplicationDefaultAuthCredentials extends AuthCredentials {
 148  
 
 149  
     private static final long serialVersionUID = -8306873864136099893L;
 150  
 
 151  
     private transient GoogleCredentials googleCredentials;
 152  
 
 153  0
     ApplicationDefaultAuthCredentials() throws IOException {
 154  0
       googleCredentials = GoogleCredentials.getApplicationDefault();
 155  0
     }
 156  
 
 157  
     private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
 158  0
       in.defaultReadObject();
 159  0
       googleCredentials =  GoogleCredentials.getApplicationDefault();
 160  0
     }
 161  
 
 162  
     @Override
 163  
     protected HttpRequestInitializer httpRequestInitializer(HttpTransport transport,
 164  
         Set<String> scopes) {
 165  0
       return new HttpCredentialsAdapter(googleCredentials);
 166  
     }
 167  
   }
 168  
 
 169  
   protected abstract HttpRequestInitializer httpRequestInitializer(HttpTransport transport,
 170  
       Set<String> scopes);
 171  
 
 172  
   public static AuthCredentials createForAppEngine() {
 173  0
     return AppEngineAuthCredentials.INSTANCE;
 174  
   }
 175  
 
 176  
   public static AuthCredentials createForComputeEngine()
 177  
       throws IOException, GeneralSecurityException {
 178  0
     return new ComputeEngineAuthCredentials();
 179  
   }
 180  
 
 181  
   /**
 182  
    * Returns the Application Default Credentials.
 183  
    *
 184  
    * <p>Returns the Application Default Credentials which are credentials that identify and
 185  
    * authorize the whole application. This is the built-in service account if running on
 186  
    * Google Compute Engine or the credentials file from the path in the environment variable
 187  
    * GOOGLE_APPLICATION_CREDENTIALS.
 188  
    * </p>
 189  
    *
 190  
    * @return the credentials instance.
 191  
    * @throws IOException if the credentials cannot be created in the current environment.
 192  
    */
 193  
   public static AuthCredentials createApplicationDefaults() throws IOException {
 194  0
     return new ApplicationDefaultAuthCredentials();
 195  
   }
 196  
 
 197  
   public static ServiceAccountAuthCredentials createFor(String account, PrivateKey privateKey) {
 198  0
     return new ServiceAccountAuthCredentials(account, privateKey);
 199  
   }
 200  
 
 201  
   public static AuthCredentials noCredentials() {
 202  0
     return ServiceAccountAuthCredentials.NO_CREDENTIALS;
 203  
   }
 204  
 
 205  
   static ComputeCredential getComputeCredential() throws IOException, GeneralSecurityException {
 206  0
     NetHttpTransport transport = GoogleNetHttpTransport.newTrustedTransport();
 207  
     // Try to connect using Google Compute Engine service account credentials.
 208  0
     ComputeCredential credential = new ComputeCredential(transport, new JacksonFactory());
 209  
     // Force token refresh to detect if we are running on Google Compute Engine.
 210  0
     credential.refreshToken();
 211  0
     return credential;
 212  
   }
 213  
 }
+ + + + diff --git a/site/0.0.7/gcloud-java-core/cobertura/com.google.gcloud.BaseService.html b/site/0.0.7/gcloud-java-core/cobertura/com.google.gcloud.BaseService.html new file mode 100644 index 000000000000..88cf6506daa4 --- /dev/null +++ b/site/0.0.7/gcloud-java-core/cobertura/com.google.gcloud.BaseService.html @@ -0,0 +1,87 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.BaseService
+
 
+ + + + +
Classes in this File Line Coverage Branch Coverage Complexity
BaseService
0%
0/1
N/A
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud;
 18  
 
 19  
 public abstract class BaseService<OptionsT extends ServiceOptions<?, OptionsT>>
 20  
     implements Service<OptionsT> {
 21  
 
 22  
   private final OptionsT options;
 23  
 
 24  
   protected BaseService(OptionsT options) {
 25  
     this.options = options;
 26  
   }
 27  
 
 28  
   @Override
 29  
   public OptionsT options() {
 30  0
     return options;
 31  
   }
 32  
 }
+ + + + diff --git a/site/0.0.7/gcloud-java-core/cobertura/com.google.gcloud.ExceptionHandler.html b/site/0.0.7/gcloud-java-core/cobertura/com.google.gcloud.ExceptionHandler.html new file mode 100644 index 000000000000..257ed941b1c9 --- /dev/null +++ b/site/0.0.7/gcloud-java-core/cobertura/com.google.gcloud.ExceptionHandler.html @@ -0,0 +1,499 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.ExceptionHandler
+
 
+ + + + + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
ExceptionHandler
0%
0/58
0%
0/28
2.273
ExceptionHandler$1
N/A
N/A
2.273
ExceptionHandler$Builder
0%
0/17
0%
0/6
2.273
ExceptionHandler$Interceptor
N/A
N/A
2.273
ExceptionHandler$Interceptor$RetryResult
0%
0/3
N/A
2.273
ExceptionHandler$RetryInfo
0%
0/12
0%
0/4
2.273
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud;
 18  
 
 19  
 import static com.google.common.base.MoreObjects.firstNonNull;
 20  
 import static com.google.common.base.Preconditions.checkNotNull;
 21  
 
 22  
 import com.google.common.annotations.VisibleForTesting;
 23  
 import com.google.common.base.Preconditions;
 24  
 import com.google.common.collect.ImmutableList;
 25  
 import com.google.common.collect.ImmutableSet;
 26  
 import com.google.common.collect.Sets;
 27  
 
 28  
 import java.io.Serializable;
 29  
 import java.lang.reflect.Method;
 30  
 import java.util.Set;
 31  
 import java.util.concurrent.Callable;
 32  
 
 33  
 /**
 34  
  * Exception handling used by {@link RetryHelper}.
 35  
  */
 36  0
 public final class ExceptionHandler implements Serializable {
 37  
 
 38  
   private static final long serialVersionUID = -2460707015779532919L;
 39  
 
 40  0
   private static final ExceptionHandler DEFAULT_INSTANCE =
 41  0
       builder().retryOn(Exception.class).abortOn(RuntimeException.class).build();
 42  
 
 43  
   private final ImmutableList<Interceptor> interceptors;
 44  
   private final ImmutableSet<Class<? extends Exception>> retriableExceptions;
 45  
   private final ImmutableSet<Class<? extends Exception>> nonRetriableExceptions;
 46  0
   private final Set<RetryInfo> retryInfo = Sets.newHashSet();
 47  
 
 48  
   public interface Interceptor extends Serializable {
 49  
 
 50  0
     enum RetryResult {
 51  
 
 52  0
       RETRY(true), ABORT(false);
 53  
 
 54  
       private final boolean booleanValue;
 55  
 
 56  
       RetryResult(boolean booleanValue) {
 57  
         this.booleanValue = booleanValue;
 58  
       }
 59  
 
 60  
       boolean booleanValue() {
 61  0
         return booleanValue;
 62  
       }
 63  
     }
 64  
 
 65  
     /**
 66  
      * This method is called before exception evaluation and could short-circuit the process.
 67  
      *
 68  
      * @param exception the exception that is being evaluated
 69  
      * @return {@link RetryResult} to indicate if the exception should be ignored (
 70  
      *         {@link RetryResult#RETRY}), propagated ({@link RetryResult#ABORT}), or evaluation
 71  
      *         should proceed ({@code null}).
 72  
      */
 73  
     RetryResult beforeEval(Exception exception);
 74  
 
 75  
     /**
 76  
      * This method is called after the evaluation and could alter its result.
 77  
      *
 78  
      * @param exception the exception that is being evaluated
 79  
      * @param retryResult the result of the evaluation so far.
 80  
      * @return {@link RetryResult} to indicate if the exception should be ignored (
 81  
      *         {@link RetryResult#RETRY}), propagated ({@link RetryResult#ABORT}), or evaluation
 82  
      *         should proceed ({@code null}).
 83  
      */
 84  
     RetryResult afterEval(Exception exception, RetryResult retryResult);
 85  
   }
 86  
 
 87  
   /**
 88  
    * ExceptionHandler builder.
 89  
    */
 90  0
   public static class Builder {
 91  
 
 92  0
     private final ImmutableList.Builder<Interceptor> interceptors = ImmutableList.builder();
 93  0
     private final ImmutableSet.Builder<Class<? extends Exception>> retriableExceptions =
 94  0
         ImmutableSet.builder();
 95  0
     private final ImmutableSet.Builder<Class<? extends Exception>> nonRetriableExceptions =
 96  0
         ImmutableSet.builder();
 97  
 
 98  0
     private Builder() {}
 99  
 
 100  
 
 101  
     /**
 102  
      * Adds the exception handler interceptors. Call order will be maintained.
 103  
      *
 104  
      * @param interceptors the interceptors for this exception handler
 105  
      * @return the Builder for chaining
 106  
      */
 107  
     public Builder interceptor(Interceptor... interceptors) {
 108  0
       for (Interceptor interceptor : interceptors) {
 109  0
         this.interceptors.add(interceptor);
 110  
       }
 111  0
       return this;
 112  
     }
 113  
 
 114  
     /**
 115  
      * Add the exceptions to ignore/retry-on.
 116  
      *
 117  
      * @param exceptions retry should continue when such exceptions are thrown
 118  
      * @return the Builder for chaining
 119  
      */
 120  
     @SafeVarargs
 121  
     public final Builder retryOn(Class<? extends Exception>... exceptions) {
 122  0
       for (Class<? extends Exception> exception : exceptions) {
 123  0
         retriableExceptions.add(checkNotNull(exception));
 124  
       }
 125  0
       return this;
 126  
     }
 127  
 
 128  
     /**
 129  
      * Adds the exceptions to abort on.
 130  
      *
 131  
      * @param exceptions retry should abort when such exceptions are thrown
 132  
      * @return the Builder for chaining
 133  
      */
 134  
     @SafeVarargs
 135  
     public final Builder abortOn(Class<? extends Exception>... exceptions) {
 136  0
       for (Class<? extends Exception> exception : exceptions) {
 137  0
         nonRetriableExceptions.add(checkNotNull(exception));
 138  
       }
 139  0
       return this;
 140  
     }
 141  
 
 142  
     /**
 143  
      * Returns a new ExceptionHandler instance.
 144  
      */
 145  
     public ExceptionHandler build() {
 146  0
       return new ExceptionHandler(this);
 147  
     }
 148  
   }
 149  
 
 150  
   @VisibleForTesting
 151  0
   static final class RetryInfo implements Serializable {
 152  
 
 153  
     private static final long serialVersionUID = -4264634837841455974L;
 154  
     private final Class<? extends Exception> exception;
 155  
     private final Interceptor.RetryResult retry;
 156  0
     private final Set<RetryInfo> children = Sets.newHashSet();
 157  
 
 158  0
     RetryInfo(Class<? extends Exception> exception, Interceptor.RetryResult retry) {
 159  0
       this.exception = checkNotNull(exception);
 160  0
       this.retry = retry;
 161  0
     }
 162  
 
 163  
     @Override
 164  
     public int hashCode() {
 165  0
       return exception.hashCode();
 166  
     }
 167  
 
 168  
     @Override
 169  
     public boolean equals(Object obj) {
 170  0
       if (obj == this) {
 171  0
         return true;
 172  
       }
 173  0
       if (!(obj instanceof RetryInfo)) {
 174  0
         return false;
 175  
       }
 176  
       // We only care about exception in equality as we allow only one instance per exception
 177  0
       return ((RetryInfo) obj).exception.equals(exception);
 178  
     }
 179  
   }
 180  
 
 181  0
   private ExceptionHandler(Builder builder) {
 182  0
     interceptors = builder.interceptors.build();
 183  0
     retriableExceptions = builder.retriableExceptions.build();
 184  0
     nonRetriableExceptions = builder.nonRetriableExceptions.build();
 185  0
     Preconditions.checkArgument(
 186  0
         Sets.intersection(retriableExceptions, nonRetriableExceptions).isEmpty(),
 187  
         "Same exception was found in both retryable and non-retryable sets");
 188  0
     for (Class<? extends Exception> exception : retriableExceptions) {
 189  0
       addRetryInfo(new RetryInfo(exception, Interceptor.RetryResult.RETRY), retryInfo);
 190  0
     }
 191  0
     for (Class<? extends Exception> exception : nonRetriableExceptions) {
 192  0
       addRetryInfo(new RetryInfo(exception, Interceptor.RetryResult.ABORT), retryInfo);
 193  0
     }
 194  0
   }
 195  
 
 196  
   private static void addRetryInfo(RetryInfo retryInfo, Set<RetryInfo> dest) {
 197  0
     for (RetryInfo current : dest) {
 198  0
       if (current.exception.isAssignableFrom(retryInfo.exception)) {
 199  0
         addRetryInfo(retryInfo, current.children);
 200  0
         return;
 201  
       }
 202  0
       if (retryInfo.exception.isAssignableFrom(current.exception)) {
 203  0
         retryInfo.children.add(current);
 204  
       }
 205  0
     }
 206  0
     dest.removeAll(retryInfo.children);
 207  0
     dest.add(retryInfo);
 208  0
   }
 209  
 
 210  
   private static RetryInfo findMostSpecificRetryInfo(Set<RetryInfo> retryInfo,
 211  
       Class<? extends Exception> exception) {
 212  0
     for (RetryInfo current : retryInfo) {
 213  0
       if (current.exception.isAssignableFrom(exception)) {
 214  0
         RetryInfo match = findMostSpecificRetryInfo(current.children, exception);
 215  0
         return match == null ? current : match;
 216  
       }
 217  0
     }
 218  0
     return null;
 219  
   }
 220  
 
 221  
   // called for Class<? extends Callable>, therefore a "call" method must be found.
 222  
   private static Method getCallableMethod(Class<?> clazz) {
 223  
     try {
 224  0
       return clazz.getDeclaredMethod("call");
 225  0
     } catch (NoSuchMethodException e) {
 226  
       // check parent
 227  0
       return getCallableMethod(clazz.getSuperclass());
 228  0
     } catch (SecurityException e) {
 229  
       // This should never happen
 230  0
       throw new IllegalStateException("Unexpected exception", e);
 231  
     }
 232  
   }
 233  
 
 234  
   void verifyCaller(Callable<?> callable) {
 235  0
     Method callMethod = getCallableMethod(callable.getClass());
 236  0
     for (Class<?> exceptionOrError : callMethod.getExceptionTypes()) {
 237  0
       Preconditions.checkArgument(Exception.class.isAssignableFrom(exceptionOrError),
 238  
           "Callable method exceptions must be derived from Exception");
 239  
       @SuppressWarnings("unchecked")
 240  0
       Class<? extends Exception> exception = (Class<? extends Exception>) exceptionOrError;
 241  0
       Preconditions.checkArgument(findMostSpecificRetryInfo(retryInfo, exception) != null,
 242  
           "Declared exception '" + exception + "' is not covered by exception handler");
 243  
     }
 244  0
   }
 245  
 
 246  
   public Set<Class<? extends Exception>> getRetriableExceptions() {
 247  
     return retriableExceptions;
 248  
   }
 249  
 
 250  
   public Set<Class<? extends Exception>> getNonRetriableExceptions() {
 251  
     return nonRetriableExceptions;
 252  
   }
 253  
 
 254  
   boolean shouldRetry(Exception ex) {
 255  0
     for (Interceptor interceptor : interceptors) {
 256  0
       Interceptor.RetryResult retryResult = interceptor.beforeEval(ex);
 257  0
       if (retryResult != null) {
 258  0
         return retryResult.booleanValue();
 259  
       }
 260  0
     }
 261  0
     RetryInfo retryInfo = findMostSpecificRetryInfo(this.retryInfo, ex.getClass());
 262  0
     Interceptor.RetryResult retryResult =
 263  0
         retryInfo == null ? Interceptor.RetryResult.ABORT : retryInfo.retry;
 264  0
     for (Interceptor interceptor : interceptors) {
 265  0
       retryResult = firstNonNull(interceptor.afterEval(ex, retryResult), retryResult);
 266  0
     }
 267  0
     return retryResult.booleanValue();
 268  
   }
 269  
 
 270  
   /**
 271  
    * Returns an instance which retry any checked exception and abort on any runtime exception.
 272  
    */
 273  
   public static ExceptionHandler getDefaultInstance() {
 274  0
     return DEFAULT_INSTANCE;
 275  
   }
 276  
 
 277  
   public static Builder builder() {
 278  0
     return new Builder();
 279  
   }
 280  
 }
+ + + + diff --git a/site/0.0.7/gcloud-java-core/cobertura/com.google.gcloud.RetryHelper.html b/site/0.0.7/gcloud-java-core/cobertura/com.google.gcloud.RetryHelper.html new file mode 100644 index 000000000000..f626b505212b --- /dev/null +++ b/site/0.0.7/gcloud-java-core/cobertura/com.google.gcloud.RetryHelper.html @@ -0,0 +1,466 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.RetryHelper
+
 
+ + + + + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
RetryHelper
0%
0/63
0%
0/18
1.818
RetryHelper$Context
0%
0/2
N/A
1.818
RetryHelper$NonRetriableException
N/A
N/A
1.818
RetryHelper$RetriesExhaustedException
N/A
N/A
1.818
RetryHelper$RetryHelperException
N/A
N/A
1.818
RetryHelper$RetryInterruptedException
0%
0/2
N/A
1.818
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud;
 18  
 
 19  
 import static com.google.common.base.Preconditions.checkNotNull;
 20  
 import static java.lang.StrictMath.max;
 21  
 import static java.lang.StrictMath.min;
 22  
 import static java.lang.StrictMath.pow;
 23  
 import static java.lang.StrictMath.random;
 24  
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
 25  
 
 26  
 import com.google.common.annotations.VisibleForTesting;
 27  
 import com.google.common.base.MoreObjects;
 28  
 import com.google.common.base.MoreObjects.ToStringHelper;
 29  
 import com.google.common.base.Stopwatch;
 30  
 
 31  
 import java.io.InterruptedIOException;
 32  
 import java.nio.channels.ClosedByInterruptException;
 33  
 import java.util.concurrent.Callable;
 34  
 import java.util.logging.Level;
 35  
 import java.util.logging.Logger;
 36  
 
 37  
 /**
 38  
  * Utility class for retrying operations. For more details about the parameters, see
 39  
  * {@link RetryParams}. If the request is never successful, a {@link RetriesExhaustedException} will
 40  
  * be thrown.
 41  
  *
 42  
  * @param <V> return value of the closure that is being run with retries
 43  
  */
 44  0
 public class RetryHelper<V> {
 45  
 
 46  0
   private static final Logger log = Logger.getLogger(RetryHelper.class.getName());
 47  
 
 48  
   private final Stopwatch stopwatch;
 49  
   private final Callable<V> callable;
 50  
   private final RetryParams params;
 51  
   private final ExceptionHandler exceptionHandler;
 52  
   private int attemptNumber;
 53  
 
 54  
 
 55  0
   private static final ThreadLocal<Context> context = new ThreadLocal<>();
 56  
 
 57  
   public static class RetryHelperException extends RuntimeException {
 58  
 
 59  
     private static final long serialVersionUID = -2907061015610448235L;
 60  
 
 61  
     RetryHelperException() {}
 62  
 
 63  
     RetryHelperException(String message) {
 64  
       super(message);
 65  
     }
 66  
 
 67  
     RetryHelperException(Throwable cause) {
 68  
       super(cause);
 69  
     }
 70  
 
 71  
     RetryHelperException(String message, Throwable cause) {
 72  
       super(message, cause);
 73  
     }
 74  
   }
 75  
 
 76  
   /**
 77  
    * Thrown when a RetryHelper failed to complete its work due to interruption. Throwing this
 78  
    * exception also sets the thread interrupt flag.
 79  
    */
 80  
   public static final class RetryInterruptedException extends RetryHelperException {
 81  
 
 82  
     private static final long serialVersionUID = 1678966737697204885L;
 83  
 
 84  
     RetryInterruptedException() {}
 85  
 
 86  
     /**
 87  
      * Sets the caller thread interrupt flag and throws {@code RetryInterruptedException}.
 88  
      */
 89  
     public static void propagate() throws RetryInterruptedException {
 90  0
       Thread.currentThread().interrupt();
 91  0
       throw new RetryInterruptedException();
 92  
     }
 93  
   }
 94  
 
 95  
   /**
 96  
    * Thrown when a RetryHelper has attempted the maximum number of attempts allowed by RetryParams
 97  
    * and was not successful.
 98  
    */
 99  
   public static final class RetriesExhaustedException extends RetryHelperException {
 100  
 
 101  
     private static final long serialVersionUID = 780199686075408083L;
 102  
 
 103  
     RetriesExhaustedException(String message) {
 104  
       super(message);
 105  
     }
 106  
 
 107  
     RetriesExhaustedException(String message, Throwable cause) {
 108  
       super(message, cause);
 109  
     }
 110  
   }
 111  
 
 112  
   /**
 113  
    * Thrown when RetryHelper callable has indicate it should not be retried.
 114  
    */
 115  
   public static final class NonRetriableException extends RetryHelperException {
 116  
 
 117  
     private static final long serialVersionUID = -2331878521983499652L;
 118  
 
 119  
     NonRetriableException(Throwable throwable) {
 120  
       super(throwable);
 121  
     }
 122  
   }
 123  
 
 124  
   static class Context {
 125  
 
 126  
     private final RetryHelper<?> helper;
 127  
 
 128  
     Context(RetryHelper<?> helper) {
 129  
       this.helper = helper;
 130  
     }
 131  
 
 132  
     public RetryParams getRetryParams() {
 133  0
       return helper.params;
 134  
     }
 135  
 
 136  
     public int getAttemptNumber() {
 137  0
       return helper.attemptNumber;
 138  
     }
 139  
   }
 140  
 
 141  
   @VisibleForTesting
 142  
   static void setContext(Context ctx) {
 143  0
     if (ctx == null) {
 144  0
       context.remove();
 145  
     } else {
 146  0
       context.set(ctx);
 147  
     }
 148  0
   }
 149  
 
 150  
   static Context getContext() {
 151  0
     return context.get();
 152  
   }
 153  
 
 154  
   @VisibleForTesting
 155  
   RetryHelper(Callable<V> callable, RetryParams params, ExceptionHandler exceptionHandler,
 156  0
       Stopwatch stopwatch) {
 157  0
     this.callable = checkNotNull(callable);
 158  0
     this.params = checkNotNull(params);
 159  0
     this.stopwatch = checkNotNull(stopwatch);
 160  0
     this.exceptionHandler = checkNotNull(exceptionHandler);
 161  0
     exceptionHandler.verifyCaller(callable);
 162  0
   }
 163  
 
 164  
   @Override
 165  
   public String toString() {
 166  0
     ToStringHelper toStringHelper = MoreObjects.toStringHelper(this);
 167  0
     toStringHelper.add("params", params);
 168  0
     toStringHelper.add("stopwatch", stopwatch);
 169  0
     toStringHelper.add("attemptNumber", attemptNumber);
 170  0
     toStringHelper.add("callable", callable);
 171  0
     toStringHelper.add("exceptionHandler", exceptionHandler);
 172  0
     return toStringHelper.toString();
 173  
   }
 174  
 
 175  
   private V doRetry() throws RetryHelperException {
 176  0
     stopwatch.start();
 177  
     while (true) {
 178  0
       attemptNumber++;
 179  
       Exception exception;
 180  
       try {
 181  0
         V value = callable.call();
 182  0
         if (attemptNumber > 1 && log.isLoggable(Level.FINE)) {
 183  0
           log.fine(this + ": attempt #" + attemptNumber + " succeeded");
 184  
         }
 185  0
         return value;
 186  0
       } catch (InterruptedException | InterruptedIOException | ClosedByInterruptException e) {
 187  0
         if (!exceptionHandler.shouldRetry(e)) {
 188  0
           RetryInterruptedException.propagate();
 189  
         }
 190  0
         exception = e;
 191  0
       } catch (Exception e) {
 192  0
         if (!exceptionHandler.shouldRetry(e)) {
 193  0
           throw new NonRetriableException(e);
 194  
         }
 195  0
         exception = e;
 196  0
       }
 197  0
       if (attemptNumber >= params.getRetryMaxAttempts()
 198  0
           || attemptNumber >= params.getRetryMinAttempts()
 199  0
           && stopwatch.elapsed(MILLISECONDS) >= params.getTotalRetryPeriodMillis()) {
 200  0
         throw new RetriesExhaustedException(this + ": Too many failures, giving up", exception);
 201  
       }
 202  0
       long sleepDurationMillis = getSleepDuration(params, attemptNumber);
 203  0
       if (log.isLoggable(Level.FINE)) {
 204  0
         log.fine(this + ": Attempt #" + attemptNumber + " failed [" + exception
 205  
             + "], sleeping for " + sleepDurationMillis + " ms");
 206  
       }
 207  
       try {
 208  0
         Thread.sleep(sleepDurationMillis);
 209  0
       } catch (InterruptedException e) {
 210  
         // propagate as RetryInterruptedException
 211  0
         RetryInterruptedException.propagate();
 212  0
       }
 213  0
     }
 214  
   }
 215  
 
 216  
   @VisibleForTesting
 217  
   static long getSleepDuration(RetryParams retryParams, int attemptsSoFar) {
 218  0
     long initialDelay = retryParams.getInitialRetryDelayMillis();
 219  0
     double backoffFactor = retryParams.getRetryDelayBackoffFactor();
 220  0
     long maxDelay = retryParams.getMaxRetryDelayMillis();
 221  0
     long retryDelay = getExponentialValue(initialDelay, backoffFactor, maxDelay, attemptsSoFar);
 222  0
     return (long) ((random() / 2.0 + .75) * retryDelay);
 223  
   }
 224  
 
 225  
   private static long getExponentialValue(long initialDelay, double backoffFactor, long maxDelay,
 226  
       int attemptsSoFar) {
 227  0
     return (long) min(maxDelay, pow(backoffFactor, max(1, attemptsSoFar) - 1) * initialDelay);
 228  
   }
 229  
 
 230  
   public static <V> V runWithRetries(Callable<V> callable) throws RetryHelperException {
 231  0
     return runWithRetries(callable, RetryParams.getDefaultInstance(),
 232  0
         ExceptionHandler.getDefaultInstance());
 233  
   }
 234  
 
 235  
   public static <V> V runWithRetries(Callable<V> callable, RetryParams params,
 236  
       ExceptionHandler exceptionHandler) throws RetryHelperException {
 237  0
     return runWithRetries(callable, params, exceptionHandler, Stopwatch.createUnstarted());
 238  
   }
 239  
 
 240  
   @VisibleForTesting
 241  
   static <V> V runWithRetries(Callable<V> callable, RetryParams params,
 242  
       ExceptionHandler exceptionHandler, Stopwatch stopwatch) throws RetryHelperException {
 243  0
     RetryHelper<V> retryHelper = new RetryHelper<>(callable, params, exceptionHandler, stopwatch);
 244  0
     Context previousContext = getContext();
 245  0
     setContext(new Context(retryHelper));
 246  
     try {
 247  0
       return retryHelper.doRetry();
 248  
     } finally {
 249  0
       setContext(previousContext);
 250  
     }
 251  
   }
 252  
 }
+ + + + diff --git a/site/0.0.7/gcloud-java-core/cobertura/com.google.gcloud.RetryParams.html b/site/0.0.7/gcloud-java-core/cobertura/com.google.gcloud.RetryParams.html new file mode 100644 index 000000000000..6ade71962808 --- /dev/null +++ b/site/0.0.7/gcloud-java-core/cobertura/com.google.gcloud.RetryParams.html @@ -0,0 +1,542 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.RetryParams
+
 
+ + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
RetryParams
0%
0/37
0%
0/28
1.455
RetryParams$1
N/A
N/A
1.455
RetryParams$Builder
0%
0/31
0%
0/2
1.455
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud;
 18  
 
 19  
 import static com.google.common.base.Preconditions.checkArgument;
 20  
 
 21  
 import com.google.common.base.MoreObjects;
 22  
 import com.google.common.base.MoreObjects.ToStringHelper;
 23  
 
 24  
 import java.io.Serializable;
 25  
 import java.util.Objects;
 26  
 
 27  
 /**
 28  
  * Parameters for configuring retries with an exponential backoff. Initial request is executed
 29  
  * immediately. If the request fails but passes the {@link ExceptionHandler} criteria the calling
 30  
  * thread sleeps for {@code initialRetryDelayMillis}. Each subsequent failure the sleep interval is
 31  
  * calculated as:
 32  
  * <p>
 33  
  * {@code retryDelayBackoffFactor ^ attempts * initialRetryDelayMillis} but would be upper-bounded
 34  
  * to {@code maxRetryDelayMillis}
 35  
  * </p>
 36  
  * This proceeds until either the request is successful, {@code retryMaxAttempts} are made, or both
 37  
  * {@code retryMinAttempts} are made and {@code totalRetryPeriodMillis} have elapsed. To construct
 38  
  * {@code RetryParams}, first create a {@link RetryParams.Builder}. The builder is mutable and each
 39  
  * of the parameters can be set (any unset parameters will fallback to the defaults). The
 40  
  * {@code Builder} can be then used to create an immutable {@code RetryParams} object. For default
 41  
  * {@code RetryParams} use {@link #getDefaultInstance}. Default settings are subject to change
 42  
  * release to release. If you require specific settings, explicitly create an instance of
 43  
  * {@code RetryParams} with all the required settings.
 44  
  *
 45  
  * @see RetryHelper
 46  
  */
 47  0
 public final class RetryParams implements Serializable {
 48  
 
 49  
   private static final long serialVersionUID = -8492751576749007700L;
 50  
 
 51  
   public static final int DEFAULT_RETRY_MIN_ATTEMPTS = 3;
 52  
   public static final int DEFAULT_RETRY_MAX_ATTEMPTS = 6;
 53  
   public static final long DEFAULT_INITIAL_RETRY_DELAY_MILLIS = 250L;
 54  
   public static final long DEFAULT_MAX_RETRY_DELAY_MILLIS = 10_000L;
 55  
   public static final double DEFAULT_RETRY_DELAY_BACKOFF_FACTOR = 2.0;
 56  
   public static final long DEFAULT_TOTAL_RETRY_PERIOD_MILLIS = 50_000L;
 57  
 
 58  
   private final int retryMinAttempts;
 59  
   private final int retryMaxAttempts;
 60  
   private final long initialRetryDelayMillis;
 61  
   private final long maxRetryDelayMillis;
 62  
   private final double retryDelayBackoffFactor;
 63  
   private final long totalRetryPeriodMillis;
 64  
 
 65  0
   private static final RetryParams DEFAULT_INSTANCE = new RetryParams(new Builder());
 66  0
   private static final RetryParams NO_RETRIES =
 67  0
       builder().retryMaxAttempts(1).retryMinAttempts(1).build();
 68  
 
 69  
 
 70  
   /**
 71  
    * RetryParams builder.
 72  
    */
 73  0
   public static final class Builder {
 74  
 
 75  
     private int retryMinAttempts;
 76  
     private int retryMaxAttempts;
 77  
     private long initialRetryDelayMillis;
 78  
     private long maxRetryDelayMillis;
 79  
     private double retryDelayBackoffFactor;
 80  
     private long totalRetryPeriodMillis;
 81  
 
 82  
     private Builder() {
 83  0
       this(null);
 84  0
     }
 85  
 
 86  0
     Builder(/* Nullable */RetryParams retryParams) {
 87  0
       if (retryParams == null) {
 88  0
         retryMinAttempts = DEFAULT_RETRY_MIN_ATTEMPTS;
 89  0
         retryMaxAttempts = DEFAULT_RETRY_MAX_ATTEMPTS;
 90  0
         initialRetryDelayMillis = DEFAULT_INITIAL_RETRY_DELAY_MILLIS;
 91  0
         maxRetryDelayMillis = DEFAULT_MAX_RETRY_DELAY_MILLIS;
 92  0
         retryDelayBackoffFactor = DEFAULT_RETRY_DELAY_BACKOFF_FACTOR;
 93  0
         totalRetryPeriodMillis = DEFAULT_TOTAL_RETRY_PERIOD_MILLIS;
 94  
       } else {
 95  0
         retryMinAttempts = retryParams.getRetryMinAttempts();
 96  0
         retryMaxAttempts = retryParams.getRetryMaxAttempts();
 97  0
         initialRetryDelayMillis = retryParams.getInitialRetryDelayMillis();
 98  0
         maxRetryDelayMillis = retryParams.getMaxRetryDelayMillis();
 99  0
         retryDelayBackoffFactor = retryParams.getRetryDelayBackoffFactor();
 100  0
         totalRetryPeriodMillis = retryParams.getTotalRetryPeriodMillis();
 101  
       }
 102  0
     }
 103  
 
 104  
     /**
 105  
      * Sets retryMinAttempts.
 106  
      *
 107  
      * @param retryMinAttempts the retryMinAttempts to set
 108  
      * @return the Builder for chaining
 109  
      */
 110  
     public Builder retryMinAttempts(int retryMinAttempts) {
 111  0
       this.retryMinAttempts = retryMinAttempts;
 112  0
       return this;
 113  
     }
 114  
 
 115  
     /**
 116  
      * Sets retryMaxAttempts.
 117  
      *
 118  
      * @param retryMaxAttempts the retryMaxAttempts to set
 119  
      * @return the Builder for chaining
 120  
      */
 121  
     public Builder retryMaxAttempts(int retryMaxAttempts) {
 122  0
       this.retryMaxAttempts = retryMaxAttempts;
 123  0
       return this;
 124  
     }
 125  
 
 126  
     /**
 127  
      * Sets initialRetryDelayMillis.
 128  
      *
 129  
      * @param initialRetryDelayMillis the initialRetryDelayMillis to set
 130  
      * @return the Builder for chaining
 131  
      */
 132  
     public Builder initialRetryDelayMillis(long initialRetryDelayMillis) {
 133  0
       this.initialRetryDelayMillis = initialRetryDelayMillis;
 134  0
       return this;
 135  
     }
 136  
 
 137  
     /**
 138  
      * Sets maxRetryDelayMillis.
 139  
      *
 140  
      * @param maxRetryDelayMillis the maxRetryDelayMillis to set
 141  
      * @return the Builder for chaining
 142  
      */
 143  
     public Builder maxRetryDelayMillis(long maxRetryDelayMillis) {
 144  0
       this.maxRetryDelayMillis = maxRetryDelayMillis;
 145  0
       return this;
 146  
     }
 147  
 
 148  
     /**
 149  
      * Sets retryDelayBackoffFactor.
 150  
      *
 151  
      * @param retryDelayBackoffFactor the retryDelayBackoffFactor to set
 152  
      * @return the Builder for chaining
 153  
      */
 154  
     public Builder retryDelayBackoffFactor(double retryDelayBackoffFactor) {
 155  0
       this.retryDelayBackoffFactor = retryDelayBackoffFactor;
 156  0
       return this;
 157  
     }
 158  
 
 159  
     /**
 160  
      * Sets totalRetryPeriodMillis.
 161  
      *
 162  
      * @param totalRetryPeriodMillis the totalRetryPeriodMillis to set
 163  
      * @return the Builder for chaining
 164  
      */
 165  
     public Builder totalRetryPeriodMillis(long totalRetryPeriodMillis) {
 166  0
       this.totalRetryPeriodMillis = totalRetryPeriodMillis;
 167  0
       return this;
 168  
     }
 169  
 
 170  
     /**
 171  
      * Create an instance of RetryParams with the parameters set in this builder.
 172  
      *
 173  
      * @return a new instance of RetryParams
 174  
      */
 175  
     public RetryParams build() {
 176  0
       return new RetryParams(this);
 177  
     }
 178  
   }
 179  
 
 180  
   /**
 181  
    * Create a new RetryParams with the parameters from a {@link RetryParams.Builder}
 182  
    *
 183  
    * @param builder the parameters to use to construct the RetryParams object
 184  
    */
 185  0
   private RetryParams(Builder builder) {
 186  0
     retryMinAttempts = builder.retryMinAttempts;
 187  0
     retryMaxAttempts = builder.retryMaxAttempts;
 188  0
     initialRetryDelayMillis = builder.initialRetryDelayMillis;
 189  0
     maxRetryDelayMillis = builder.maxRetryDelayMillis;
 190  0
     retryDelayBackoffFactor = builder.retryDelayBackoffFactor;
 191  0
     totalRetryPeriodMillis = builder.totalRetryPeriodMillis;
 192  0
     checkArgument(retryMinAttempts >= 0, "retryMinAttempts must not be negative");
 193  0
     checkArgument(retryMaxAttempts >= retryMinAttempts,
 194  
         "retryMaxAttempts must not be smaller than retryMinAttempts");
 195  0
     checkArgument(initialRetryDelayMillis >= 0, "initialRetryDelayMillis must not be negative");
 196  0
     checkArgument(maxRetryDelayMillis >= initialRetryDelayMillis,
 197  
         "maxRetryDelayMillis must not be smaller than initialRetryDelayMillis");
 198  0
     checkArgument(retryDelayBackoffFactor >= 0, "retryDelayBackoffFactor must not be negative");
 199  0
     checkArgument(totalRetryPeriodMillis >= 0, "totalRetryPeriodMillis must not be negative");
 200  0
   }
 201  
 
 202  
   /**
 203  
    * Returns an instance with the default parameters.
 204  
    */
 205  
   public static RetryParams getDefaultInstance() {
 206  0
     return DEFAULT_INSTANCE;
 207  
   }
 208  
 
 209  
   public static RetryParams noRetries() {
 210  0
     return NO_RETRIES;
 211  
   }
 212  
 
 213  
   /**
 214  
    * Returns the retryMinAttempts.
 215  
    */
 216  
   public int getRetryMinAttempts() {
 217  
     return retryMinAttempts;
 218  
   }
 219  
 
 220  
   /**
 221  
    * Returns the retryMaxAttempts.
 222  
    */
 223  
   public int getRetryMaxAttempts() {
 224  
     return retryMaxAttempts;
 225  
   }
 226  
 
 227  
   /**
 228  
    * Returns the initialRetryDelayMillis.
 229  
    */
 230  
   public long getInitialRetryDelayMillis() {
 231  
     return initialRetryDelayMillis;
 232  
   }
 233  
 
 234  
   /**
 235  
    * Returns the maxRetryDelayMillis.
 236  
    */
 237  
   public long getMaxRetryDelayMillis() {
 238  
     return maxRetryDelayMillis;
 239  
   }
 240  
 
 241  
   /**
 242  
    * Returns the maxRetryDelayBackoffFactor.
 243  
    */
 244  
   public double getRetryDelayBackoffFactor() {
 245  
     return retryDelayBackoffFactor;
 246  
   }
 247  
 
 248  
   /**
 249  
    * Returns the totalRetryPeriodMillis.
 250  
    */
 251  
   public long getTotalRetryPeriodMillis() {
 252  
     return totalRetryPeriodMillis;
 253  
   }
 254  
 
 255  
   @Override
 256  
   public int hashCode() {
 257  0
     return Objects.hash(retryMinAttempts, retryMaxAttempts, initialRetryDelayMillis,
 258  0
         maxRetryDelayMillis, retryDelayBackoffFactor, totalRetryPeriodMillis);
 259  
   }
 260  
 
 261  
   @Override
 262  
   public boolean equals(Object obj) {
 263  0
     if (obj == this) {
 264  0
       return true;
 265  
     }
 266  0
     if (!(obj instanceof RetryParams)) {
 267  0
       return false;
 268  
     }
 269  0
     RetryParams other = (RetryParams) obj;
 270  0
     return retryMinAttempts == other.retryMinAttempts && retryMaxAttempts == other.retryMaxAttempts
 271  
         && initialRetryDelayMillis == other.initialRetryDelayMillis
 272  
         && maxRetryDelayMillis == other.maxRetryDelayMillis
 273  
         && retryDelayBackoffFactor == other.retryDelayBackoffFactor
 274  
         && totalRetryPeriodMillis == other.totalRetryPeriodMillis;
 275  
   }
 276  
 
 277  
   @Override
 278  
   public String toString() {
 279  0
     ToStringHelper toStringHelper = MoreObjects.toStringHelper(this);
 280  0
     toStringHelper.add("retryMinAttempts", retryMinAttempts);
 281  0
     toStringHelper.add("retryMaxAttempts", retryMaxAttempts);
 282  0
     toStringHelper.add("initialRetryDelayMillis", initialRetryDelayMillis);
 283  0
     toStringHelper.add("maxRetryDelayMillis", maxRetryDelayMillis);
 284  0
     toStringHelper.add("retryDelayBackoffFactor", retryDelayBackoffFactor);
 285  0
     toStringHelper.add("totalRetryPeriodMillis", totalRetryPeriodMillis);
 286  0
     return toStringHelper.toString();
 287  
   }
 288  
 
 289  
   public static Builder builder() {
 290  0
     return new Builder();
 291  
   }
 292  
 }
+ + + + diff --git a/site/0.0.7/gcloud-java-core/cobertura/com.google.gcloud.Service.html b/site/0.0.7/gcloud-java-core/cobertura/com.google.gcloud.Service.html new file mode 100644 index 000000000000..69094d039fa4 --- /dev/null +++ b/site/0.0.7/gcloud-java-core/cobertura/com.google.gcloud.Service.html @@ -0,0 +1,66 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.Service
+
 
+ + + + +
Classes in this File Line Coverage Branch Coverage Complexity
Service
N/A
N/A
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud;
 18  
 
 19  
 public interface Service<OptionsT extends ServiceOptions<?, OptionsT>> {
 20  
   OptionsT options();
 21  
 }
+ + + + diff --git a/site/0.0.7/gcloud-java-core/cobertura/com.google.gcloud.ServiceOptions.html b/site/0.0.7/gcloud-java-core/cobertura/com.google.gcloud.ServiceOptions.html new file mode 100644 index 000000000000..5aa473d5697e --- /dev/null +++ b/site/0.0.7/gcloud-java-core/cobertura/com.google.gcloud.ServiceOptions.html @@ -0,0 +1,575 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.ServiceOptions
+
 
+ + + + + + + +
Classes in this File Line Coverage Branch Coverage Complexity
ServiceOptions
0%
0/86
0%
0/62
2.258
ServiceOptions$Builder
0%
0/22
N/A
2.258
ServiceOptions$DefaultHttpTransportFactory
0%
0/8
0%
0/2
2.258
ServiceOptions$HttpTransportFactory
N/A
N/A
2.258
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud;
 18  
 
 19  
 
 20  
 import static com.google.common.base.MoreObjects.firstNonNull;
 21  
 import static com.google.common.base.Preconditions.checkNotNull;
 22  
 import static java.nio.charset.StandardCharsets.UTF_8;
 23  
 
 24  
 import com.google.api.client.extensions.appengine.http.UrlFetchTransport;
 25  
 import com.google.api.client.http.HttpRequestInitializer;
 26  
 import com.google.api.client.http.HttpTransport;
 27  
 import com.google.api.client.http.javanet.NetHttpTransport;
 28  
 import com.google.common.collect.Iterables;
 29  
 import com.google.gcloud.spi.ServiceRpcFactory;
 30  
 
 31  
 import java.io.BufferedReader;
 32  
 import java.io.File;
 33  
 import java.io.FileReader;
 34  
 import java.io.IOException;
 35  
 import java.io.InputStream;
 36  
 import java.io.InputStreamReader;
 37  
 import java.io.Serializable;
 38  
 import java.lang.reflect.Method;
 39  
 import java.net.HttpURLConnection;
 40  
 import java.net.URL;
 41  
 import java.util.Locale;
 42  
 import java.util.Objects;
 43  
 import java.util.ServiceLoader;
 44  
 import java.util.Set;
 45  
 import java.util.regex.Matcher;
 46  
 import java.util.regex.Pattern;
 47  
 
 48  0
 public abstract class ServiceOptions<
 49  
         ServiceRpcT,
 50  
         OptionsT extends ServiceOptions<ServiceRpcT, OptionsT>>
 51  
     implements Serializable {
 52  
 
 53  
   private static final String DEFAULT_HOST = "https://www.googleapis.com";
 54  
   private static final long serialVersionUID = 1203687993961393350L;
 55  
   private static final String PROJECT_ENV_NAME = "GCLOUD_PROJECT";
 56  
 
 57  
   private final String projectId;
 58  
   private final String host;
 59  
   private final HttpTransportFactory httpTransportFactory;
 60  
   private final AuthCredentials authCredentials;
 61  
   private final RetryParams retryParams;
 62  
   private final ServiceRpcFactory<ServiceRpcT, OptionsT> serviceRpcFactory;
 63  
 
 64  
   public interface HttpTransportFactory extends Serializable {
 65  
     HttpTransport create();
 66  
   }
 67  
 
 68  0
   private enum DefaultHttpTransportFactory implements HttpTransportFactory {
 69  
 
 70  0
     INSTANCE;
 71  
 
 72  
     @Override
 73  
     public HttpTransport create() {
 74  
       // Consider App Engine
 75  0
       if (appEngineAppId() != null) {
 76  
         try {
 77  0
           return new UrlFetchTransport();
 78  0
         } catch (Exception ignore) {
 79  
           // Maybe not on App Engine
 80  
         }
 81  
       }
 82  
       // Consider Compute
 83  
       try {
 84  0
         return AuthCredentials.getComputeCredential().getTransport();
 85  0
       } catch (Exception e) {
 86  
         // Maybe not on GCE
 87  
       }
 88  0
       return new NetHttpTransport();
 89  
     }
 90  
   }
 91  
 
 92  
 
 93  
 
 94  0
   protected abstract static class Builder<
 95  
       ServiceRpcT,
 96  
       OptionsT extends ServiceOptions<ServiceRpcT, OptionsT>,
 97  
       B extends Builder<ServiceRpcT, OptionsT, B>> {
 98  
 
 99  
     private String projectId;
 100  
     private String host;
 101  
     private HttpTransportFactory httpTransportFactory;
 102  
     private AuthCredentials authCredentials;
 103  
     private RetryParams retryParams;
 104  
     private ServiceRpcFactory<ServiceRpcT, OptionsT> serviceRpcFactory;
 105  
 
 106  
     protected Builder() {}
 107  
 
 108  0
     protected Builder(ServiceOptions<ServiceRpcT, OptionsT> options) {
 109  0
       projectId = options.projectId;
 110  0
       host = options.host;
 111  0
       httpTransportFactory = options.httpTransportFactory;
 112  0
       authCredentials = options.authCredentials;
 113  0
       retryParams = options.retryParams;
 114  0
       serviceRpcFactory = options.serviceRpcFactory;
 115  0
     }
 116  
 
 117  
     protected abstract ServiceOptions<ServiceRpcT, OptionsT> build();
 118  
 
 119  
     @SuppressWarnings("unchecked")
 120  
     protected B self() {
 121  0
       return (B) this;
 122  
     }
 123  
 
 124  
     public B projectId(String projectId) {
 125  0
       this.projectId = projectId;
 126  0
       return self();
 127  
     }
 128  
 
 129  
     public B host(String host) {
 130  0
       this.host = host;
 131  0
       return self();
 132  
     }
 133  
 
 134  
     public B httpTransportFactory(HttpTransportFactory httpTransportFactory) {
 135  0
       this.httpTransportFactory = httpTransportFactory;
 136  0
       return self();
 137  
     }
 138  
 
 139  
     public B authCredentials(AuthCredentials authCredentials) {
 140  0
       this.authCredentials = authCredentials;
 141  0
       return self();
 142  
     }
 143  
 
 144  
     public B retryParams(RetryParams retryParams) {
 145  0
       this.retryParams = retryParams;
 146  0
       return self();
 147  
     }
 148  
 
 149  
     public B serviceRpcFactory(ServiceRpcFactory<ServiceRpcT, OptionsT> serviceRpcFactory) {
 150  0
       this.serviceRpcFactory = serviceRpcFactory;
 151  0
       return self();
 152  
     }
 153  
   }
 154  
 
 155  0
   protected ServiceOptions(Builder<ServiceRpcT, OptionsT, ?> builder) {
 156  0
     projectId = checkNotNull(builder.projectId != null ? builder.projectId : defaultProject());
 157  0
     host = firstNonNull(builder.host, DEFAULT_HOST);
 158  0
     httpTransportFactory =
 159  0
         firstNonNull(builder.httpTransportFactory, DefaultHttpTransportFactory.INSTANCE);
 160  0
     authCredentials = firstNonNull(builder.authCredentials, defaultAuthCredentials());
 161  0
     retryParams = builder.retryParams;
 162  0
     serviceRpcFactory = builder.serviceRpcFactory;
 163  0
   }
 164  
 
 165  
   private static AuthCredentials defaultAuthCredentials() {
 166  
     // Consider App Engine. This will not be needed once issue #21 is fixed.
 167  0
     if (appEngineAppId() != null) {
 168  
       try {
 169  0
         return AuthCredentials.createForAppEngine();
 170  0
       } catch (Exception ignore) {
 171  
         // Maybe not on App Engine
 172  
       }
 173  
     }
 174  
 
 175  
     try {
 176  0
       return AuthCredentials.createApplicationDefaults();
 177  0
     } catch (Exception ex) {
 178  
       // fallback to old-style
 179  
     }
 180  
 
 181  
     // Consider old-style Compute. This will not be needed once issue #21 is fixed.
 182  
     try {
 183  0
       return AuthCredentials.createForComputeEngine();
 184  0
     } catch (Exception ignore) {
 185  
       // Maybe not on GCE
 186  
     }
 187  0
     return AuthCredentials.noCredentials();
 188  
   }
 189  
 
 190  
   protected static String appEngineAppId() {
 191  0
     return System.getProperty("com.google.appengine.application.id");
 192  
   }
 193  
 
 194  
   protected String defaultProject() {
 195  0
     String projectId = System.getProperty(PROJECT_ENV_NAME, System.getenv(PROJECT_ENV_NAME));
 196  0
     if (projectId == null) {
 197  0
       projectId = getAppEngineProjectId();
 198  
     }
 199  0
     return projectId != null ? projectId : googleCloudProjectId();
 200  
   }
 201  
 
 202  
   protected static String googleCloudProjectId() {
 203  
     try {
 204  0
       URL url = new URL("http://metadata/computeMetadata/v1/project/project-id");
 205  0
       HttpURLConnection connection = (HttpURLConnection) url.openConnection();
 206  0
       connection.setRequestProperty("X-Google-Metadata-Request", "True");
 207  0
       InputStream input = connection.getInputStream();
 208  0
       if (connection.getResponseCode() == 200) {
 209  0
         try (BufferedReader reader = new BufferedReader(new InputStreamReader(input, UTF_8))) {
 210  0
           return reader.readLine();
 211  0
         }
 212  
       }
 213  0
     } catch (IOException ignore) {
 214  
       // ignore
 215  0
     }
 216  
    File configDir;
 217  0
     if (System.getenv().containsKey("CLOUDSDK_CONFIG")) {
 218  0
       configDir = new File(System.getenv("CLOUDSDK_CONFIG"));
 219  0
     } else if (isWindows() &&  System.getenv().containsKey("APPDATA")) {
 220  0
       configDir = new File(System.getenv("APPDATA"), "gcloud");
 221  
     } else {
 222  0
       configDir = new File(System.getProperty("user.home"), ".config/gcloud");
 223  
     }
 224  0
     try (BufferedReader reader =
 225  
         new BufferedReader(new FileReader(new File(configDir, "properties")))) {
 226  
       String line;
 227  0
       String section = null;
 228  0
       Pattern projectPattern = Pattern.compile("^project\\s*=\\s*(.*)$");
 229  0
       Pattern sectionPattern = Pattern.compile("^\\[(.*)\\]$");
 230  0
       while ((line = reader.readLine()) != null) {
 231  0
         if (line.isEmpty() || line.startsWith(";")) {
 232  0
           continue;
 233  
         }
 234  0
         line = line.trim();
 235  0
         Matcher matcher = sectionPattern.matcher(line);
 236  0
         if (matcher.matches()) {
 237  0
           section = matcher.group(1);
 238  0
         } else if (section == null || section.equals("core")) {
 239  0
           matcher = projectPattern.matcher(line);
 240  0
           if (matcher.matches()) {
 241  0
             return matcher.group(1);
 242  
           }
 243  
         }
 244  0
       }
 245  0
     } catch (IOException ex) {
 246  
       // ignore
 247  0
     }
 248  
     // return null if can't determine
 249  0
     return null;
 250  
   }
 251  
 
 252  
   private static boolean isWindows() {
 253  0
     return System.getProperty("os.name").toLowerCase(Locale.ENGLISH).contains("windows");
 254  
   }
 255  
 
 256  
   protected static String getAppEngineProjectId() {
 257  
     // TODO(ozarov): An alternative to reflection would be to depend on AE api jar:
 258  
     // http://mvnrepository.com/artifact/com.google.appengine/appengine-api-1.0-sdk/1.2.0
 259  
     try {
 260  0
       Class<?> factoryClass =
 261  0
           Class.forName("com.google.appengine.api.appidentity.AppIdentityServiceFactory");
 262  0
       Method method = factoryClass.getMethod("getAppIdentityService");
 263  0
       Object appIdentityService = method.invoke(null);
 264  0
       method = appIdentityService.getClass().getMethod("getServiceAccountName");
 265  0
       String serviceAccountName = (String) method.invoke(appIdentityService);
 266  0
       int indexOfAtSign = serviceAccountName.indexOf('@');
 267  0
       return serviceAccountName.substring(0, indexOfAtSign);
 268  0
     } catch (Exception ignore) {
 269  
       // return null if can't determine
 270  0
       return null;
 271  
     }
 272  
   }
 273  
 
 274  
   protected abstract Set<String> scopes();
 275  
 
 276  
   public String projectId() {
 277  0
     return projectId;
 278  
   }
 279  
 
 280  
   public String host() {
 281  0
     return host;
 282  
   }
 283  
 
 284  
   public HttpTransportFactory httpTransportFactory() {
 285  0
     return httpTransportFactory;
 286  
   }
 287  
 
 288  
   public AuthCredentials authCredentials() {
 289  0
     return authCredentials;
 290  
   }
 291  
 
 292  
   public RetryParams retryParams() {
 293  0
     return retryParams != null ? retryParams : RetryParams.noRetries();
 294  
   }
 295  
 
 296  
   public ServiceRpcFactory<ServiceRpcT, OptionsT> serviceRpcFactory() {
 297  0
     return serviceRpcFactory;
 298  
   }
 299  
 
 300  
   public HttpRequestInitializer httpRequestInitializer() {
 301  0
     HttpTransport httpTransport = httpTransportFactory.create();
 302  0
     return authCredentials().httpRequestInitializer(httpTransport, scopes());
 303  
   }
 304  
 
 305  
   protected int baseHashCode() {
 306  0
     return Objects.hash(projectId, host, httpTransportFactory, authCredentials, retryParams,
 307  
         serviceRpcFactory);
 308  
   }
 309  
 
 310  
   protected boolean baseEquals(ServiceOptions<?, ?> other) {
 311  0
     return Objects.equals(projectId, other.projectId)
 312  0
         && Objects.equals(host, other.host)
 313  0
         && Objects.equals(httpTransportFactory, other.httpTransportFactory)
 314  0
         && Objects.equals(authCredentials, other.authCredentials)
 315  0
         && Objects.equals(retryParams, other.retryParams)
 316  0
         && Objects.equals(serviceRpcFactory, other.serviceRpcFactory);
 317  
   }
 318  
 
 319  
   public abstract Builder<ServiceRpcT, OptionsT, ?> toBuilder();
 320  
 
 321  
   /**
 322  
    * Creates a service RPC using a factory loaded by {@link ServiceLoader}.
 323  
    */
 324  
   protected static
 325  
       <ServiceRpcT, OptionsT extends ServiceOptions<ServiceRpcT, OptionsT>>
 326  
       ServiceRpcT createRpc(OptionsT options,
 327  
           Class<? extends ServiceRpcFactory<ServiceRpcT, OptionsT>> factoryClass) {
 328  0
     ServiceRpcFactory<ServiceRpcT, OptionsT> factory =
 329  0
         Iterables.getFirst(ServiceLoader.load(factoryClass), null);
 330  0
     return factory == null ? null : factory.create(options);
 331  
   }
 332  
 }
+ + + + diff --git a/site/0.0.7/gcloud-java-core/cobertura/com.google.gcloud.spi.ServiceRpcFactory.html b/site/0.0.7/gcloud-java-core/cobertura/com.google.gcloud.spi.ServiceRpcFactory.html new file mode 100644 index 000000000000..b99facfbe749 --- /dev/null +++ b/site/0.0.7/gcloud-java-core/cobertura/com.google.gcloud.spi.ServiceRpcFactory.html @@ -0,0 +1,90 @@ + + + + +Coverage Report + + + + +
Coverage Report - com.google.gcloud.spi.ServiceRpcFactory
+
 
+ + + + +
Classes in this File Line Coverage Branch Coverage Complexity
ServiceRpcFactory
N/A
N/A
1
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 1  
 /*
 2  
  * Copyright 2015 Google Inc. All Rights Reserved.
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *       http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package com.google.gcloud.spi;
 18  
 
 19  
 import com.google.gcloud.ServiceOptions;
 20  
 
 21  
 import java.io.Serializable;
 22  
 
 23  
 /**
 24  
  * A base interface for all service RPC factories.
 25  
  * Loading of a factory implementation is done via {@link java.util.ServiceLoader}.
 26  
  */
 27  
 public interface ServiceRpcFactory<
 28  
         ServiceRpcT,
 29  
         OptionsT extends ServiceOptions<ServiceRpcT, OptionsT>>
 30  
     extends Serializable {
 31  
 
 32  
   ServiceRpcT create(OptionsT options);
 33  
 }
+ + + + diff --git a/site/0.0.7/gcloud-java-core/cobertura/css/help.css b/site/0.0.7/gcloud-java-core/cobertura/css/help.css new file mode 100644 index 000000000000..c6fbb28972f1 --- /dev/null +++ b/site/0.0.7/gcloud-java-core/cobertura/css/help.css @@ -0,0 +1,22 @@ +dl { + float: left; + width: 100%; +} + +dt { + border-top: 1px solid #808080; + float: left; + font-weight: bold; + margin: 0; + padding: 1em; + width: 20%; +} + +dd { + border-top: 1px solid #808080; + float: left; + font-style: italic; + margin: 0; + padding: 1em; + width: 60%; +} diff --git a/site/0.0.7/gcloud-java-core/cobertura/css/main.css b/site/0.0.7/gcloud-java-core/cobertura/css/main.css new file mode 100644 index 000000000000..9b5b0dc6831d --- /dev/null +++ b/site/0.0.7/gcloud-java-core/cobertura/css/main.css @@ -0,0 +1,131 @@ +@import url("help.css"); +@import url("source-viewer.css"); +@import url("tooltip.css"); + +.hidden { + display: none; +} + +a.dfn { + border-bottom: 1px dotted #00aa00; + cursor: help; +} + +a.dfn:active, a.dfn:link, a.dfn:visited { + color: #000000; + text-decoration: none; +} + +a.dfn:hover { + color: #0000ff; + text-decoration: none; +} + +body { + font-family: verdana, arial, helvetica; +} + +h1, h2, h3, h4, h5, h6 { + margin-bottom: 0.5em; +} + +h5 { + margin-top: 0.5em; +} + +div.footer { + font-size: 68%; + margin-top: 1.5em; +} + +div.percentgraph +{ + background-color: #f02020; + border: #808080 1px solid; + height: 1.3em; + margin: 0px; + padding: 0px; + width: 100px; +} + +div.percentgraph div.greenbar +{ + background-color: #00f000; + height: 1.3em; + margin: 0px; + padding: 0px; +} + +div.percentgraph div.na +{ + background-color: #eaeaea; + height: 1.3em; + margin: 0px; + padding: 0px; +} + +div.percentgraph span.text +{ + display: block; + position: absolute; + text-align: center; + width: 100px; +} + +div.separator { + height: 10px; +} + +table tr td, table tr th { + font-size: 68%; +} + +td.value table tr td { + font-size: 11px; +} + +table.percentgraph { + border: 0px; + font-size: 130%; + margin: 0px; + margin-left: auto; + margin-right: 0px; + padding: 0px; +} + +table.percentgraph tr.percentgraph { + border: 0px; + margin: 0px; + padding: 0px; +} + +table.percentgraph td.percentgraph { + border: 0px; + margin: 0px; + padding: 0px; + padding-left: 4px; +} + +table.report { + border-collapse: collapse; + width: 100%; +} + +table.report td { + border: #d0d0d0 1px solid; +} + +table.report td.heading { + background: #dcecff; + font-weight: bold; + text-align: center; +} + +table.report td.heading:hover { + background: #c0ffc0; + cursor: pointer; +} + +table.report td.value { + text-align: right; +} diff --git a/site/0.0.7/gcloud-java-core/cobertura/css/sortabletable.css b/site/0.0.7/gcloud-java-core/cobertura/css/sortabletable.css new file mode 100644 index 000000000000..970e2b55c9b7 --- /dev/null +++ b/site/0.0.7/gcloud-java-core/cobertura/css/sortabletable.css @@ -0,0 +1,50 @@ +.sort-table { + font: Icon; + border: 1px Solid ThreeDShadow; + background: Window; + color: WindowText; +} + +.sort-table thead { + background: ButtonFace; +} + +.sort-table td { + padding: 2px 5px; +} + +.sort-table thead td { + border: 1px solid; + border-color: ButtonHighlight ButtonShadow + ButtonShadow ButtonHighlight; + cursor: default; +} + +.sort-table thead td:active { + border-color: ButtonShadow ButtonHighlight + ButtonHighlight ButtonShadow; + padding: 3px 4px 1px 6px; +} + +.sort-table thead td[_sortType=None]:active { + border-color: ButtonHighlight ButtonShadow + ButtonShadow ButtonHighlight; + padding: 2px 5px; +} + +.sort-arrow { + width: 11px; + height: 11px; + background-position: center center; + background-repeat: no-repeat; + margin: 0 2px; +} + +.sort-arrow.descending { + background-image: url("../images/downsimple.png"); + +} + +.sort-arrow.ascending { + background-image: url("../images/upsimple.png"); +} \ No newline at end of file diff --git a/site/0.0.7/gcloud-java-core/cobertura/css/source-viewer.css b/site/0.0.7/gcloud-java-core/cobertura/css/source-viewer.css new file mode 100644 index 000000000000..73797d613eb3 --- /dev/null +++ b/site/0.0.7/gcloud-java-core/cobertura/css/source-viewer.css @@ -0,0 +1,73 @@ +pre.src { + background: #ffffff; + margin-top: 0px; + margin-bottom: 0px; +} + +table.src { + border: #dcdcdc 1px solid; + font-size: 16px; +} + +td.numLine { + background: #f0f0f0; + border-right: #dcdcdc 1px solid; + padding-right: 3px; + text-align: right; +} + +td.numLineCover { + background: #80ff80; + border-right: #dcdcdc 1px solid; + padding-right: 3px; + text-align: right; +} + +td.nbHits { + background: #f0f0f0; + border-right: #dcdcdc 1px solid; + padding-right: 3px; + text-align: right; +} + +td.nbHitsCovered { + background: #80ff80; + border-right: #dcdcdc 1px solid; + padding-right: 3px; + text-align: right; +} + +td.nbHitsUncovered { + background: #ff9090; + border-right: #dcdcdc 1px solid; + font-weight: bold; + padding-right: 3px; + text-align: right; +} + +td.src { + width: 100%; +} + +span.comment { + color: #b22222; + font-style: italic; +} + +span.keyword { + color: #2020bf; + font-weight: bold; +} + +span.srcUncovered { + background: #ff9090; +} + +span.string { + color: #2a00ff; +} + +span.text_italic { + font-size: 12px; + font-style: italic; +} diff --git a/site/0.0.7/gcloud-java-core/cobertura/css/tooltip.css b/site/0.0.7/gcloud-java-core/cobertura/css/tooltip.css new file mode 100644 index 000000000000..c790d8104ebf --- /dev/null +++ b/site/0.0.7/gcloud-java-core/cobertura/css/tooltip.css @@ -0,0 +1,49 @@ +a.hastooltip { + border-bottom: 1px dotted #00aa00; + color: #000000; + cursor: help; + font-style: normal; + position: relative; /* This is the key */ + text-decoration: none; + z-index: 24; /* What does this do? */ +} + +a.hastooltip:active { + color: #000000; + text-decoration: none; +} + +a.hastooltip:link { + color: #000000; + text-decoration: none; +} + +a.hastooltip:hover { + background-color: #a0b8ff; + color: #000000; + text-decoration: none; + z-index: 25; +} + +a.hastooltip:visited { + color: #000000; + text-decoration: none; +} + +a.hastooltip span { + display: none; +} + +a.hastooltip:hover span { + background-color: #eeeeee; + border: 1px solid #000000; + color: #000000; + display: block; + padding: 5px; + left: -15.2em; + position: absolute; + text-align: center; + text-decoration: none; + top: 2em; + width: 20em; +} diff --git a/site/0.0.7/gcloud-java-core/cobertura/frame-packages.html b/site/0.0.7/gcloud-java-core/cobertura/frame-packages.html new file mode 100644 index 000000000000..671bd25c0c86 --- /dev/null +++ b/site/0.0.7/gcloud-java-core/cobertura/frame-packages.html @@ -0,0 +1,23 @@ + + + + +Coverage Report + + + +
Packages
+ + + + + + + + + + +
All
com.google.gcloud
com.google.gcloud.spi
+ + diff --git a/site/0.0.7/gcloud-java-core/cobertura/frame-sourcefiles-com.google.gcloud.html b/site/0.0.7/gcloud-java-core/cobertura/frame-sourcefiles-com.google.gcloud.html new file mode 100644 index 000000000000..9b38f5b971e7 --- /dev/null +++ b/site/0.0.7/gcloud-java-core/cobertura/frame-sourcefiles-com.google.gcloud.html @@ -0,0 +1,41 @@ + + + + +Coverage Report Classes + + + +
+com.google.gcloud +
+
 
+
Classes
+ + + + + + + + + + + + + + + + + + + + + + + + +
AuthCredentials (0%)
BaseService (0%)
ExceptionHandler (0%)
RetryHelper (0%)
RetryParams (0%)
Service (N/A)
ServiceOptions (0%)
+ + diff --git a/site/0.0.7/gcloud-java-core/cobertura/frame-sourcefiles-com.google.gcloud.spi.html b/site/0.0.7/gcloud-java-core/cobertura/frame-sourcefiles-com.google.gcloud.spi.html new file mode 100644 index 000000000000..bfe1b849dc89 --- /dev/null +++ b/site/0.0.7/gcloud-java-core/cobertura/frame-sourcefiles-com.google.gcloud.spi.html @@ -0,0 +1,23 @@ + + + + +Coverage Report Classes + + + +
+com.google.gcloud.spi +
+
 
+
Classes
+ + + + + + +
ServiceRpcFactory (N/A)
+ + diff --git a/site/0.0.7/gcloud-java-core/cobertura/frame-sourcefiles.html b/site/0.0.7/gcloud-java-core/cobertura/frame-sourcefiles.html new file mode 100644 index 000000000000..0640ad061b22 --- /dev/null +++ b/site/0.0.7/gcloud-java-core/cobertura/frame-sourcefiles.html @@ -0,0 +1,44 @@ + + + + +Coverage Report Classes + + + +
+All Packages +
+
 
+
Classes
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
AuthCredentials (0%)
BaseService (0%)
ExceptionHandler (0%)
RetryHelper (0%)
RetryParams (0%)
Service (N/A)
ServiceOptions (0%)
ServiceRpcFactory (N/A)
+ + diff --git a/site/0.0.7/gcloud-java-core/cobertura/frame-summary-com.google.gcloud.html b/site/0.0.7/gcloud-java-core/cobertura/frame-summary-com.google.gcloud.html new file mode 100644 index 000000000000..4dd8ceb73f81 --- /dev/null +++ b/site/0.0.7/gcloud-java-core/cobertura/frame-summary-com.google.gcloud.html @@ -0,0 +1,74 @@ + + + + +Coverage Report + + + + + + + +
Coverage Report - com.google.gcloud
+
 
+ + + + + + +
Package # Classes Line Coverage Branch Coverage Complexity
com.google.gcloud26
0%
0/394
0%
0/158
1.828
com.google.gcloud.spi1
N/A
N/A
1
+ +
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Classes in this Package Line Coverage Branch Coverage Complexity
AuthCredentials
0%
0/9
N/A
1.273
AuthCredentials$AppEngineAuthCredentials
0%
0/4
N/A
1.273
AuthCredentials$ApplicationDefaultAuthCredentials
0%
0/7
N/A
1.273
AuthCredentials$ComputeEngineAuthCredentials
0%
0/10
N/A
1.273
AuthCredentials$ServiceAccountAuthCredentials
0%
0/22
0%
0/8
1.273
BaseService
0%
0/1
N/A
1
ExceptionHandler
0%
0/58
0%
0/28
2.273
ExceptionHandler$1
N/A
N/A
2.273
ExceptionHandler$Builder
0%
0/17
0%
0/6
2.273
ExceptionHandler$Interceptor
N/A
N/A
2.273
ExceptionHandler$Interceptor$RetryResult
0%
0/3
N/A
2.273
ExceptionHandler$RetryInfo
0%
0/12
0%
0/4
2.273
RetryHelper
0%
0/63
0%
0/18
1.818
RetryHelper$Context
0%
0/2
N/A
1.818
RetryHelper$NonRetriableException
N/A
N/A
1.818
RetryHelper$RetriesExhaustedException
N/A
N/A
1.818
RetryHelper$RetryHelperException
N/A
N/A
1.818
RetryHelper$RetryInterruptedException
0%
0/2
N/A
1.818
RetryParams
0%
0/37
0%
0/28
1.455
RetryParams$1
N/A
N/A
1.455
RetryParams$Builder
0%
0/31
0%
0/2
1.455
Service
N/A
N/A
1
ServiceOptions
0%
0/86
0%
0/62
2.258
ServiceOptions$Builder
0%
0/22
N/A
2.258
ServiceOptions$DefaultHttpTransportFactory
0%
0/8
0%
0/2
2.258
ServiceOptions$HttpTransportFactory
N/A
N/A
2.258
+ + + + diff --git a/site/0.0.7/gcloud-java-core/cobertura/frame-summary-com.google.gcloud.spi.html b/site/0.0.7/gcloud-java-core/cobertura/frame-summary-com.google.gcloud.spi.html new file mode 100644 index 000000000000..2137603a4203 --- /dev/null +++ b/site/0.0.7/gcloud-java-core/cobertura/frame-summary-com.google.gcloud.spi.html @@ -0,0 +1,42 @@ + + + + +Coverage Report + + + + + + + +
Coverage Report - com.google.gcloud.spi
+
 
+ + + + + +
Package # Classes Line Coverage Branch Coverage Complexity
com.google.gcloud.spi1
N/A
N/A
1
+ +
 
+ + + + + + +
Classes in this Package Line Coverage Branch Coverage Complexity
ServiceRpcFactory
N/A
N/A
1
+ + + + diff --git a/site/0.0.7/gcloud-java-core/cobertura/frame-summary.html b/site/0.0.7/gcloud-java-core/cobertura/frame-summary.html new file mode 100644 index 000000000000..7b2e46c27a8f --- /dev/null +++ b/site/0.0.7/gcloud-java-core/cobertura/frame-summary.html @@ -0,0 +1,31 @@ + + + + +Coverage Report + + + + + + + +
Coverage Report - All Packages
+
 
+ + + + + + + +
Package # Classes Line Coverage Branch Coverage Complexity
All Packages27
0%
0/394
0%
0/158
1.821
com.google.gcloud26
0%
0/394
0%
0/158
1.828
com.google.gcloud.spi1
N/A
N/A
1
+ + + + diff --git a/site/0.0.7/gcloud-java-core/cobertura/help.html b/site/0.0.7/gcloud-java-core/cobertura/help.html new file mode 100644 index 000000000000..4c518dcd342d --- /dev/null +++ b/site/0.0.7/gcloud-java-core/cobertura/help.html @@ -0,0 +1,31 @@ + + + + + + +Coverage Report - Help + + + + +
+ +
Line Coverage
+
The percent of lines executed by this test run.
+ +
Branch Coverage
+
The percent of branches executed by this test run.
+ +
Complexity
+
Average McCabe's cyclomatic code complexity for all methods. This is basically a count of the number of different code paths in a method (incremented by 1 for each if statement, while loop, etc.)
+ +
N/A
+
Line coverage and branch coverage will appear as "Not Applicable" when Cobertura can not find line number information in the .class file. This happens for stub and skeleton classes, interfaces, or when the class was not compiled with "debug=true."
+ +
+ + + + diff --git a/site/0.0.7/gcloud-java-core/cobertura/images/blank.png b/site/0.0.7/gcloud-java-core/cobertura/images/blank.png new file mode 100644 index 000000000000..cee9cd37a10e Binary files /dev/null and b/site/0.0.7/gcloud-java-core/cobertura/images/blank.png differ diff --git a/site/0.0.7/gcloud-java-core/cobertura/images/downsimple.png b/site/0.0.7/gcloud-java-core/cobertura/images/downsimple.png new file mode 100644 index 000000000000..4accf927bed9 Binary files /dev/null and b/site/0.0.7/gcloud-java-core/cobertura/images/downsimple.png differ diff --git a/site/0.0.7/gcloud-java-core/cobertura/images/upsimple.png b/site/0.0.7/gcloud-java-core/cobertura/images/upsimple.png new file mode 100644 index 000000000000..c82b76ffe2c9 Binary files /dev/null and b/site/0.0.7/gcloud-java-core/cobertura/images/upsimple.png differ diff --git a/site/0.0.7/gcloud-java-core/cobertura/index.html b/site/0.0.7/gcloud-java-core/cobertura/index.html new file mode 100644 index 000000000000..573719b81895 --- /dev/null +++ b/site/0.0.7/gcloud-java-core/cobertura/index.html @@ -0,0 +1,25 @@ + + + + + +Coverage Report + + + + + + + + + + + <body> + <p>This document is designed to be viewed using the frames feature. If you see this message, you are using a frame-incapable web client.</p> + <p><a href="frame-summary.html">Click here to view a non-frame version.</a></p> + </body> + + + + diff --git a/site/0.0.7/gcloud-java-core/cobertura/js/customsorttypes.js b/site/0.0.7/gcloud-java-core/cobertura/js/customsorttypes.js new file mode 100644 index 000000000000..a16bda216f71 --- /dev/null +++ b/site/0.0.7/gcloud-java-core/cobertura/js/customsorttypes.js @@ -0,0 +1,65 @@ +/* + * Cobertura - http://cobertura.sourceforge.net/ + * + * Copyright (C) 2005 Mark Doliner + * Copyright (C) 2005 Olivier Parent + * + * Cobertura is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published + * by the Free Software Foundation; either version 2 of the License, + * or (at your option) any later version. + * + * Cobertura is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Cobertura; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ + + + +function percentageSortType( s ) +{ + var ret; + var i = s.indexOf( "%" ); + + if (i != -1) { + s = s.substr( 0, i ); + } + ret = parseFloat(s); + if (isNaN(ret)) { + ret = -1; + } + + return ret; +} + +SortableTable.prototype.addSortType( "Percentage", percentageSortType ); + + + +// This is needed for correctly sorting numbers in different +// locales. The stock number converter only expects to sort +// numbers which use a period as a separator instead of a +// comma (like French). +function formattedNumberSortType( s ) +{ + var ret; + var i = s.indexOf(';'); + + if (i != -1) { + s = s.substring(0, i); + } + ret = parseFloat(s); + if (isNaN(ret)) { + return -1; + } + + return ret; +} + +SortableTable.prototype.addSortType( "FormattedNumber", formattedNumberSortType ); diff --git a/site/0.0.7/gcloud-java-core/cobertura/js/popup.js b/site/0.0.7/gcloud-java-core/cobertura/js/popup.js new file mode 100644 index 000000000000..4a09072260dc --- /dev/null +++ b/site/0.0.7/gcloud-java-core/cobertura/js/popup.js @@ -0,0 +1,8 @@ +var newwindow; +function popupwindow(url) +{ + newwindow=window.open(url,'name','height=500,width=500,resizable=yes,scrollbars=yes'); + if (window.focus) { + newwindow.focus() + } +} diff --git a/site/0.0.7/gcloud-java-core/cobertura/js/sortabletable.js b/site/0.0.7/gcloud-java-core/cobertura/js/sortabletable.js new file mode 100644 index 000000000000..0dad657240f8 --- /dev/null +++ b/site/0.0.7/gcloud-java-core/cobertura/js/sortabletable.js @@ -0,0 +1,455 @@ + +/*----------------------------------------------------------------------------\ +| Sortable Table 1.12 | +|-----------------------------------------------------------------------------| +| Created by Erik Arvidsson | +| (http://webfx.eae.net/contact.html#erik) | +| For WebFX (http://webfx.eae.net/) | +|-----------------------------------------------------------------------------| +| A DOM 1 based script that allows an ordinary HTML table to be sortable. | +|-----------------------------------------------------------------------------| +| Copyright (c) 1998 - 2004 Erik Arvidsson | +|-----------------------------------------------------------------------------| +| This software is provided "as is", without warranty of any kind, express or | +| implied, including but not limited to the warranties of merchantability, | +| fitness for a particular purpose and noninfringement. In no event shall the | +| authors or copyright holders be liable for any claim, damages or other | +| liability, whether in an action of contract, tort or otherwise, arising | +| from, out of or in connection with the software or the use or other | +| dealings in the software. | +| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | +| This software is available under the three different licenses mentioned | +| below. To use this software you must chose, and qualify, for one of those. | +| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | +| The WebFX Non-Commercial License http://webfx.eae.net/license.html | +| Permits anyone the right to use the software in a non-commercial context | +| free of charge. | +| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | +| The WebFX Commercial license http://webfx.eae.net/commercial.html | +| Permits the license holder the right to use the software in a commercial | +| context. Such license must be specifically obtained, however it's valid for | +| any number of implementations of the licensed software. | +| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | +| GPL - The GNU General Public License http://www.gnu.org/licenses/gpl.txt | +| Permits anyone the right to use and modify the software without limitations | +| as long as proper credits are given and the original and modified source | +| code are included. Requires that the final product, software derivate from | +| the original source or any software utilizing a GPL component, such as | +| this, is also licensed under the GPL license. | +|-----------------------------------------------------------------------------| +| 2003-01-10 | First version | +| 2003-01-19 | Minor changes to the date parsing | +| 2003-01-28 | JScript 5.0 fixes (no support for 'in' operator) | +| 2003-02-01 | Sloppy typo like error fixed in getInnerText | +| 2003-07-04 | Added workaround for IE cellIndex bug. | +| 2003-11-09 | The bDescending argument to sort was not correctly working | +| | Using onclick DOM0 event if no support for addEventListener | +| | or attachEvent | +| 2004-01-13 | Adding addSortType and removeSortType which makes it a lot | +| | easier to add new, custom sort types. | +| 2004-01-27 | Switch to use descending = false as the default sort order. | +| | Change defaultDescending to suit your needs. | +| 2004-03-14 | Improved sort type None look and feel a bit | +| 2004-08-26 | Made the handling of tBody and tHead more flexible. Now you | +| | can use another tHead or no tHead, and you can chose some | +| | other tBody. | +|-----------------------------------------------------------------------------| +| Created 2003-01-10 | All changes are in the log above. | Updated 2004-08-26 | +\----------------------------------------------------------------------------*/ + + +function SortableTable(oTable, oSortTypes) { + + this.sortTypes = oSortTypes || []; + + this.sortColumn = null; + this.descending = null; + + var oThis = this; + this._headerOnclick = function (e) { + oThis.headerOnclick(e); + }; + + if (oTable) { + this.setTable( oTable ); + this.document = oTable.ownerDocument || oTable.document; + } + else { + this.document = document; + } + + + // only IE needs this + var win = this.document.defaultView || this.document.parentWindow; + this._onunload = function () { + oThis.destroy(); + }; + if (win && typeof win.attachEvent != "undefined") { + win.attachEvent("onunload", this._onunload); + } +} + +SortableTable.gecko = navigator.product == "Gecko"; +SortableTable.msie = /msie/i.test(navigator.userAgent); +// Mozilla is faster when doing the DOM manipulations on +// an orphaned element. MSIE is not +SortableTable.removeBeforeSort = SortableTable.gecko; + +SortableTable.prototype.onsort = function () {}; + +// default sort order. true -> descending, false -> ascending +SortableTable.prototype.defaultDescending = false; + +// shared between all instances. This is intentional to allow external files +// to modify the prototype +SortableTable.prototype._sortTypeInfo = {}; + +SortableTable.prototype.setTable = function (oTable) { + if ( this.tHead ) + this.uninitHeader(); + this.element = oTable; + this.setTHead( oTable.tHead ); + this.setTBody( oTable.tBodies[0] ); +}; + +SortableTable.prototype.setTHead = function (oTHead) { + if (this.tHead && this.tHead != oTHead ) + this.uninitHeader(); + this.tHead = oTHead; + this.initHeader( this.sortTypes ); +}; + +SortableTable.prototype.setTBody = function (oTBody) { + this.tBody = oTBody; +}; + +SortableTable.prototype.setSortTypes = function ( oSortTypes ) { + if ( this.tHead ) + this.uninitHeader(); + this.sortTypes = oSortTypes || []; + if ( this.tHead ) + this.initHeader( this.sortTypes ); +}; + +// adds arrow containers and events +// also binds sort type to the header cells so that reordering columns does +// not break the sort types +SortableTable.prototype.initHeader = function (oSortTypes) { + if (!this.tHead) return; + var cells = this.tHead.rows[0].cells; + var doc = this.tHead.ownerDocument || this.tHead.document; + this.sortTypes = oSortTypes || []; + var l = cells.length; + var img, c; + for (var i = 0; i < l; i++) { + c = cells[i]; + if (this.sortTypes[i] != null && this.sortTypes[i] != "None") { + img = doc.createElement("IMG"); + img.src = "images/blank.png"; + c.appendChild(img); + if (this.sortTypes[i] != null) + c._sortType = this.sortTypes[i]; + if (typeof c.addEventListener != "undefined") + c.addEventListener("click", this._headerOnclick, false); + else if (typeof c.attachEvent != "undefined") + c.attachEvent("onclick", this._headerOnclick); + else + c.onclick = this._headerOnclick; + } + else + { + c.setAttribute( "_sortType", oSortTypes[i] ); + c._sortType = "None"; + } + } + this.updateHeaderArrows(); +}; + +// remove arrows and events +SortableTable.prototype.uninitHeader = function () { + if (!this.tHead) return; + var cells = this.tHead.rows[0].cells; + var l = cells.length; + var c; + for (var i = 0; i < l; i++) { + c = cells[i]; + if (c._sortType != null && c._sortType != "None") { + c.removeChild(c.lastChild); + if (typeof c.removeEventListener != "undefined") + c.removeEventListener("click", this._headerOnclick, false); + else if (typeof c.detachEvent != "undefined") + c.detachEvent("onclick", this._headerOnclick); + c._sortType = null; + c.removeAttribute( "_sortType" ); + } + } +}; + +SortableTable.prototype.updateHeaderArrows = function () { + if (!this.tHead) return; + var cells = this.tHead.rows[0].cells; + var l = cells.length; + var img; + for (var i = 0; i < l; i++) { + if (cells[i]._sortType != null && cells[i]._sortType != "None") { + img = cells[i].lastChild; + if (i == this.sortColumn) + img.className = "sort-arrow " + (this.descending ? "descending" : "ascending"); + else + img.className = "sort-arrow"; + } + } +}; + +SortableTable.prototype.headerOnclick = function (e) { + // find TD element + var el = e.target || e.srcElement; + while (el.tagName != "TD") + el = el.parentNode; + + this.sort(SortableTable.msie ? SortableTable.getCellIndex(el) : el.cellIndex); +}; + +// IE returns wrong cellIndex when columns are hidden +SortableTable.getCellIndex = function (oTd) { + var cells = oTd.parentNode.childNodes + var l = cells.length; + var i; + for (i = 0; cells[i] != oTd && i < l; i++) + ; + return i; +}; + +SortableTable.prototype.getSortType = function (nColumn) { + return this.sortTypes[nColumn] || "String"; +}; + +// only nColumn is required +// if bDescending is left out the old value is taken into account +// if sSortType is left out the sort type is found from the sortTypes array + +SortableTable.prototype.sort = function (nColumn, bDescending, sSortType) { + if (!this.tBody) return; + if (sSortType == null) + sSortType = this.getSortType(nColumn); + + // exit if None + if (sSortType == "None") + return; + + if (bDescending == null) { + if (this.sortColumn != nColumn) + this.descending = this.defaultDescending; + else + this.descending = !this.descending; + } + else + this.descending = bDescending; + + this.sortColumn = nColumn; + + if (typeof this.onbeforesort == "function") + this.onbeforesort(); + + var f = this.getSortFunction(sSortType, nColumn); + var a = this.getCache(sSortType, nColumn); + var tBody = this.tBody; + + a.sort(f); + + if (this.descending) + a.reverse(); + + if (SortableTable.removeBeforeSort) { + // remove from doc + var nextSibling = tBody.nextSibling; + var p = tBody.parentNode; + p.removeChild(tBody); + } + + // insert in the new order + var l = a.length; + for (var i = 0; i < l; i++) + tBody.appendChild(a[i].element); + + if (SortableTable.removeBeforeSort) { + // insert into doc + p.insertBefore(tBody, nextSibling); + } + + this.updateHeaderArrows(); + + this.destroyCache(a); + + if (typeof this.onsort == "function") + this.onsort(); +}; + +SortableTable.prototype.asyncSort = function (nColumn, bDescending, sSortType) { + var oThis = this; + this._asyncsort = function () { + oThis.sort(nColumn, bDescending, sSortType); + }; + window.setTimeout(this._asyncsort, 1); +}; + +SortableTable.prototype.getCache = function (sType, nColumn) { + if (!this.tBody) return []; + var rows = this.tBody.rows; + var l = rows.length; + var a = new Array(l); + var r; + for (var i = 0; i < l; i++) { + r = rows[i]; + a[i] = { + value: this.getRowValue(r, sType, nColumn), + element: r + }; + }; + return a; +}; + +SortableTable.prototype.destroyCache = function (oArray) { + var l = oArray.length; + for (var i = 0; i < l; i++) { + oArray[i].value = null; + oArray[i].element = null; + oArray[i] = null; + } +}; + +SortableTable.prototype.getRowValue = function (oRow, sType, nColumn) { + // if we have defined a custom getRowValue use that + if (this._sortTypeInfo[sType] && this._sortTypeInfo[sType].getRowValue) + return this._sortTypeInfo[sType].getRowValue(oRow, nColumn); + + var s; + var c = oRow.cells[nColumn]; + if (typeof c.innerText != "undefined") + s = c.innerText; + else + s = SortableTable.getInnerText(c); + return this.getValueFromString(s, sType); +}; + +SortableTable.getInnerText = function (oNode) { + var s = ""; + var cs = oNode.childNodes; + var l = cs.length; + for (var i = 0; i < l; i++) { + switch (cs[i].nodeType) { + case 1: //ELEMENT_NODE + s += SortableTable.getInnerText(cs[i]); + break; + case 3: //TEXT_NODE + s += cs[i].nodeValue; + break; + } + } + return s; +}; + +SortableTable.prototype.getValueFromString = function (sText, sType) { + if (this._sortTypeInfo[sType]) + return this._sortTypeInfo[sType].getValueFromString( sText ); + return sText; + /* + switch (sType) { + case "Number": + return Number(sText); + case "CaseInsensitiveString": + return sText.toUpperCase(); + case "Date": + var parts = sText.split("-"); + var d = new Date(0); + d.setFullYear(parts[0]); + d.setDate(parts[2]); + d.setMonth(parts[1] - 1); + return d.valueOf(); + } + return sText; + */ + }; + +SortableTable.prototype.getSortFunction = function (sType, nColumn) { + if (this._sortTypeInfo[sType]) + return this._sortTypeInfo[sType].compare; + return SortableTable.basicCompare; +}; + +SortableTable.prototype.destroy = function () { + this.uninitHeader(); + var win = this.document.parentWindow; + if (win && typeof win.detachEvent != "undefined") { // only IE needs this + win.detachEvent("onunload", this._onunload); + } + this._onunload = null; + this.element = null; + this.tHead = null; + this.tBody = null; + this.document = null; + this._headerOnclick = null; + this.sortTypes = null; + this._asyncsort = null; + this.onsort = null; +}; + +// Adds a sort type to all instance of SortableTable +// sType : String - the identifier of the sort type +// fGetValueFromString : function ( s : string ) : T - A function that takes a +// string and casts it to a desired format. If left out the string is just +// returned +// fCompareFunction : function ( n1 : T, n2 : T ) : Number - A normal JS sort +// compare function. Takes two values and compares them. If left out less than, +// <, compare is used +// fGetRowValue : function( oRow : HTMLTRElement, nColumn : int ) : T - A function +// that takes the row and the column index and returns the value used to compare. +// If left out then the innerText is first taken for the cell and then the +// fGetValueFromString is used to convert that string the desired value and type + +SortableTable.prototype.addSortType = function (sType, fGetValueFromString, fCompareFunction, fGetRowValue) { + this._sortTypeInfo[sType] = { + type: sType, + getValueFromString: fGetValueFromString || SortableTable.idFunction, + compare: fCompareFunction || SortableTable.basicCompare, + getRowValue: fGetRowValue + }; +}; + +// this removes the sort type from all instances of SortableTable +SortableTable.prototype.removeSortType = function (sType) { + delete this._sortTypeInfo[sType]; +}; + +SortableTable.basicCompare = function compare(n1, n2) { + if (n1.value < n2.value) + return -1; + if (n2.value < n1.value) + return 1; + return 0; +}; + +SortableTable.idFunction = function (x) { + return x; +}; + +SortableTable.toUpperCase = function (s) { + return s.toUpperCase(); +}; + +SortableTable.toDate = function (s) { + var parts = s.split("-"); + var d = new Date(0); + d.setFullYear(parts[0]); + d.setDate(parts[2]); + d.setMonth(parts[1] - 1); + return d.valueOf(); +}; + + +// add sort types +SortableTable.prototype.addSortType("Number", Number); +SortableTable.prototype.addSortType("CaseInsensitiveString", SortableTable.toUpperCase); +SortableTable.prototype.addSortType("Date", SortableTable.toDate); +SortableTable.prototype.addSortType("String"); +// None is a special case diff --git a/site/0.0.7/gcloud-java-core/cobertura/js/stringbuilder.js b/site/0.0.7/gcloud-java-core/cobertura/js/stringbuilder.js new file mode 100644 index 000000000000..464a1cacb2ba --- /dev/null +++ b/site/0.0.7/gcloud-java-core/cobertura/js/stringbuilder.js @@ -0,0 +1,79 @@ +/*----------------------------------------------------------------------------\ +| String Builder 1.02 | +|-----------------------------------------------------------------------------| +| Created by Erik Arvidsson | +| (http://webfx.eae.net/contact.html#erik) | +| For WebFX (http://webfx.eae.net/) | +|-----------------------------------------------------------------------------| +| A class that allows more efficient building of strings than concatenation. | +|-----------------------------------------------------------------------------| +| Copyright (c) 1999 - 2002 Erik Arvidsson | +|-----------------------------------------------------------------------------| +| This software is provided "as is", without warranty of any kind, express or | +| implied, including but not limited to the warranties of merchantability, | +| fitness for a particular purpose and noninfringement. In no event shall the | +| authors or copyright holders be liable for any claim, damages or other | +| liability, whether in an action of contract, tort or otherwise, arising | +| from, out of or in connection with the software or the use or other | +| dealings in the software. | +| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | +| This software is available under the three different licenses mentioned | +| below. To use this software you must chose, and qualify, for one of those. | +| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | +| The WebFX Non-Commercial License http://webfx.eae.net/license.html | +| Permits anyone the right to use the software in a non-commercial context | +| free of charge. | +| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | +| The WebFX Commercial license http://webfx.eae.net/commercial.html | +| Permits the license holder the right to use the software in a commercial | +| context. Such license must be specifically obtained, however it's valid for | +| any number of implementations of the licensed software. | +| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | +| GPL - The GNU General Public License http://www.gnu.org/licenses/gpl.txt | +| Permits anyone the right to use and modify the software without limitations | +| as long as proper credits are given and the original and modified source | +| code are included. Requires that the final product, software derivate from | +| the original source or any software utilizing a GPL component, such as | +| this, is also licensed under the GPL license. | +|-----------------------------------------------------------------------------| +| 2000-10-02 | First version | +| 2000-10-05 | Added a cache of the string so that it does not need to be | +| | regenerated every time in toString | +| 2002-10-03 | Added minor improvement in the toString method | +|-----------------------------------------------------------------------------| +| Created 2000-10-02 | All changes are in the log above. | Updated 2002-10-03 | +\----------------------------------------------------------------------------*/ function StringBuilder(sString) { + + // public + this.length = 0; + + this.append = function (sString) { + // append argument + this.length += (this._parts[this._current++] = String(sString)).length; + + // reset cache + this._string = null; + return this; + }; + + this.toString = function () { + if (this._string != null) + return this._string; + + var s = this._parts.join(""); + this._parts = [s]; + this._current = 1; + this.length = s.length; + + return this._string = s; + }; + + // private + this._current = 0; + this._parts = []; + this._string = null; // used to cache the string + + // init + if (sString != null) + this.append(sString); +} diff --git a/site/0.0.7/gcloud-java-core/css/apache-maven-fluido-1.3.1.min.css b/site/0.0.7/gcloud-java-core/css/apache-maven-fluido-1.3.1.min.css new file mode 100644 index 000000000000..ed43d1211cff --- /dev/null +++ b/site/0.0.7/gcloud-java-core/css/apache-maven-fluido-1.3.1.min.css @@ -0,0 +1,9 @@ +/*! + * Bootstrap v2.2.2 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover{color:#808080}.text-warning{color:#c09853}a.text-warning:hover{color:#a47e3c}.text-error{color:#b94a48}a.text-error:hover{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover{color:#2d6987}.text-success{color:#468847}a.text-success:hover{color:#356635}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:25px}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{margin-bottom:5px;font-size:0;white-space:nowrap}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover td,.table-hover tbody tr:hover th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success td{background-color:#dff0d8}.table tbody tr.error td{background-color:#f2dede}.table tbody tr.warning td{background-color:#fcf8e3}.table tbody tr.info td{background-color:#d9edf7}.table-hover tbody tr.success:hover td{background-color:#d0e9c6}.table-hover tbody tr.error:hover td{background-color:#ebcccc}.table-hover tbody tr.warning:hover td{background-color:#faf2cc}.table-hover tbody tr.info:hover td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.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;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu li>a:hover,.dropdown-menu li>a:focus,.dropdown-submenu:hover>a{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu .disabled>a,.dropdown-menu .disabled>a:hover{color:#999}.dropdown-menu .disabled>a:hover{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #bbb;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#a2a2a2;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.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-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn{border-color:#c5c5c5;border-color:rgba(0,0,0,0.15) rgba(0,0,0,0.15) rgba(0,0,0,0.25)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #0044cc #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-mini .caret,.btn-small .caret,.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success h4{color:#468847}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eeeeee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:hover .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover{border-color:#eee #dddddd #eee #eeeeee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover{border-color:#eee #eeeeee #eee #dddddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#777}.navbar-link{color:#777}.navbar-link:hover{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown>a:hover .caret{border-top-color:#555;border-bottom-color:#555}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover{color:#fff}.navbar-inverse .brand{color:#999}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>a:hover .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;*background-color:#040404;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:hover{text-decoration:none;background-color:#f5f5f5}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>span{color:#999;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{margin-top:-3px}.tooltip.right{margin-left:3px}.tooltip.bottom{margin-top:3px}.tooltip.left{margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;width:236px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media .pull-left{margin-right:10px}.media .pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img{display:block;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed}.clear{clear:both;visibility:hidden}.clear hr{display:none}.section p,.section p,.section dt,.section dt{margin-right:7px;margin-left:7px}#ohloh{margin-bottom:10px}#poweredBy{text-align:center}a.externalLink{padding-right:18px}a.newWindow{background:url('../images/window-new.png') right center no-repeat;padding-right:18px}a.externalLink[href^=http]{background:url('../images/internet-web-browser.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".asc"]{background:url('../images/accessories-text-editor.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".jpg"],a.externalLink[href$=".jpeg"],a.externalLink[href$=".gif"],a.externalLink[href$=".png"]{background:url('../images/image-x-generic.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".tar.gz"],a.externalLink[href$=".zip"]{background:url('../images/package-x-generic.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".md5"],a.externalLink[href$=".sha1"]{background:url('../images/document-properties.png') right center no-repeat;padding-right:18px}a.externalLink[href^=https]{background:url('../images/application-certificate.png') right center no-repeat;padding-right:18px}a.externalLink[href^=file]{background:url('../images/drive-harddisk.png') right center no-repeat;padding-right:18px}a.externalLink[href^=ftp]{background:url('../images/network-server.png') right center no-repeat;padding-right:18px}a.externalLink[href^=mailto]{background:url('../images/contact-new.png') right center no-repeat;padding-right:18px}li.none{list-style:none}.search-query{background-image:url(http://www.google.com/cse/intl/en/images/google_custom_search_watermark.gif);background-attachment:initial;background-origin:initial;background-clip:initial;background-color:#fff;background-position:0 50%;background-repeat:no-repeat no-repeat;width:95%}body.topBarEnabled{padding-top:60px}body.topBarDisabled{padding-top:20px}.builtBy{display:block}img.builtBy{margin:10px auto}#search-form{margin-left:9px;margin-right:9px}.hero-unit h2{font-size:60px}tt{padding:0 3px 2px;font-family:Monaco,Andale Mono,Courier New,monospace;font-size:.8em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background-color:#fee9cc;color:rgba(0,0,0,0.75);padding:1px 3px}li{color:#404040}table.zebra-striped{background-color:#FFF}.footer{background-color:#EEE}.sidebar-nav{padding-left:0;padding-right:0}.sidebar-nav .icon-chevron-right,.sidebar-nav .icon-chevron-down{margin-top:2px;margin-right:-6px;float:right;opacity:.25}li.pull-right{margin-left:3px;margin-right:3px}.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0;padding-left:15px}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} \ No newline at end of file diff --git a/site/0.0.7/gcloud-java-core/css/print.css b/site/0.0.7/gcloud-java-core/css/print.css new file mode 100644 index 000000000000..46c5e8109dd0 --- /dev/null +++ b/site/0.0.7/gcloud-java-core/css/print.css @@ -0,0 +1,23 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +/* $Id: print.css 1201871 2011-11-14 20:18:24Z simonetripodi $ */ + +#banner, #footer, #leftcol, #breadcrumbs, .docs #toc, .docs .courtesylinks, #leftColumn, #navColumn {display: none !important;} +#bodyColumn, body.docs div.docs {margin: 0 !important;border: none !important} diff --git a/site/0.0.7/gcloud-java-core/css/site.css b/site/0.0.7/gcloud-java-core/css/site.css new file mode 100644 index 000000000000..055e7e286adc --- /dev/null +++ b/site/0.0.7/gcloud-java-core/css/site.css @@ -0,0 +1 @@ +/* You can override this file with your own styles */ \ No newline at end of file diff --git a/site/0.0.7/gcloud-java-core/dependencies.html b/site/0.0.7/gcloud-java-core/dependencies.html new file mode 100644 index 000000000000..0b27621e1ce2 --- /dev/null +++ b/site/0.0.7/gcloud-java-core/dependencies.html @@ -0,0 +1,1272 @@ + + + + + + + + + GCloud Java core – Project Dependencies + + + + + + + + + + + + + +
+ + + + + +
+
+ +
+ + +
+ + +
+

Project Dependencies

+
+

compile

+

The following is a list of compile dependencies for this project. These dependencies are required to compile and run the application:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GroupIdArtifactIdVersionTypeLicense
com.google.api-clientgoogle-api-client-appengine1.20.0jarThe Apache Software License, Version 2.0
com.google.authgoogle-auth-library-credentials0.1.0jarBSD New license
com.google.authgoogle-auth-library-oauth2-http0.1.0jarBSD New license
com.google.guavaguava18.0jarThe Apache Software License, Version 2.0
com.google.http-clientgoogle-http-client1.20.0jarThe Apache Software License, Version 2.0
com.google.http-clientgoogle-http-client-jackson1.20.0jarThe Apache Software License, Version 2.0
com.google.oauth-clientgoogle-oauth-client1.20.0jarThe Apache Software License, Version 2.0
joda-timejoda-time2.8.2jarApache 2
org.jsonjson20090211jarprovided without support or warranty
+
+

test

+

The following is a list of test dependencies for this project. These dependencies are only required to compile and run unit tests for the application:

+ + + + + + + + + + + + + + + + + + +
GroupIdArtifactIdVersionTypeLicense
junitjunit4.12jarEclipse Public License 1.0
org.easymockeasymock3.3jarApache 2
+
+

Project Transitive Dependencies

+

The following is a list of transitive dependencies for this project. Transitive dependencies are the dependencies of the project dependencies.

+
+

compile

+

The following is a list of compile dependencies for this project. These dependencies are required to compile and run the application:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GroupIdArtifactIdVersionTypeLicense
com.fasterxml.jackson.corejackson-core2.1.3jarThe Apache Software License, Version 2.0
com.google.api-clientgoogle-api-client1.20.0jarThe Apache Software License, Version 2.0
com.google.api-clientgoogle-api-client-servlet1.20.0jarThe Apache Software License, Version 2.0
com.google.code.findbugsjsr3051.3.9jarThe Apache Software License, Version 2.0
com.google.http-clientgoogle-http-client-appengine1.20.0jarThe Apache Software License, Version 2.0
com.google.http-clientgoogle-http-client-jackson21.19.0jarThe Apache Software License, Version 2.0
com.google.http-clientgoogle-http-client-jdo1.20.0jarThe Apache Software License, Version 2.0
com.google.oauth-clientgoogle-oauth-client-appengine1.20.0jarThe Apache Software License, Version 2.0
com.google.oauth-clientgoogle-oauth-client-servlet1.20.0jarThe Apache Software License, Version 2.0
commons-codeccommons-codec1.3jar/LICENSE.txt
commons-loggingcommons-logging1.1.1jarThe Apache Software License, Version 2.0
javax.jdojdo2-api2.3-ebjarApache 2
javax.servletservlet-api2.5jar-
javax.transactiontransaction-api1.1jar-
org.apache.httpcomponentshttpclient4.0.1jar../LICENSE.txt
org.apache.httpcomponentshttpcore4.0.1jarApache License
org.codehaus.jacksonjackson-core-asl1.9.11jarThe Apache Software License, Version 2.0
+
+

test

+

The following is a list of test dependencies for this project. These dependencies are only required to compile and run unit tests for the application:

+ + + + + + + + + + + + + + + + + + + + + + + + +
GroupIdArtifactIdVersionTypeLicense
cglibcglib-nodep3.1jarASF 2.0
org.hamcresthamcrest-core1.3jarNew BSD License
org.objenesisobjenesis2.1jarApache 2
+
+

Project Dependency Graph

+ +
+

Dependency Tree

+
+
+

Licenses

+

Apache 2: EasyMock, JDO2 API, Joda-Time, Objenesis

+

Unknown: servlet-api, transaction-api

+

provided without support or warranty: JSON (JavaScript Object Notation)

+

Eclipse Public License 1.0: JUnit

+

Apache License: HttpClient, HttpCore

+

GCloud Java Software License: GCloud Java core

+

ASF 2.0: Code Generation Library

+

BSD New license: Google Auth Library for Java - Credentials, Google Auth Library for Java - OAuth2 HTTP

+

New BSD License: Hamcrest Core

+

The Apache Software License, Version 2.0: Codec, Commons Logging, FindBugs-jsr305, Google APIs Client Library for Java, Google App Engine extensions to the Google API Client Library for Java., Google App Engine extensions to the Google HTTP Client Library for Java., Google App Engine extensions to the Google OAuth Client Library for Java., Google HTTP Client Library for Java, Google OAuth Client Library for Java, Guava: Google Core Libraries for Java, JDO extensions to the Google HTTP Client Library for Java., Jackson, Jackson 2 extensions to the Google HTTP Client Library for Java., Jackson extensions to the Google HTTP Client Library for Java., Jackson-core, Servlet and JDO extensions to the Google API Client Library for Java., Servlet and JDO extensions to the Google OAuth Client Library for Java.

+
+

Dependency File Details

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FilenameSizeEntriesClassesPackagesJava VersionDebug Information
cglib-nodep-3.1.jar331.20 kB25625291.2Yes
jackson-core-2.1.3.jar206.80 kB1108981.5Yes
google-api-client-1.20.0.jar194.26 kB137106221.5Yes
google-api-client-appengine-1.20.0.jar9.87 kB22731.5Yes
google-api-client-servlet-1.20.0.jar6.72 kB14411.5Yes
google-auth-library-credentials-0.1.0.jar2.67 kB11111.5Yes
google-auth-library-oauth2-http-0.1.0.jar21.79 kB21921.5Yes
jsr305-1.3.9.jar33.01 kB723531.5Yes
guava-18.0.jar2.26 MB17191690171.6Yes
google-http-client-1.20.0.jar286.72 kB247213201.5Yes
google-http-client-appengine-1.20.0.jar15.69 kB211121.5Yes
google-http-client-jackson-1.20.0.jar6.03 kB12411.5Yes
google-http-client-jackson2-1.19.0.jar6.72 kB13511.5Yes
google-http-client-jdo-1.20.0.jar11.34 kB13511.5Yes
google-oauth-client-1.20.0.jar61.09 kB574731.5Yes
google-oauth-client-appengine-1.20.0.jar7.95 kB17721.5Yes
google-oauth-client-servlet-1.20.0.jar22.12 kB241141.5Yes
commons-codec-1.3.jar46.72 kB422551.2Yes
commons-logging-1.1.1.jar60.69 kB422821.1Yes
jdo2-api-2.3-eb.jar192.70 kB22618271.5Yes
servlet-api-2.5.jar105.11 kB684221.5Yes
transaction-api-1.1.jar15.07 kB241821.3Yes
joda-time-2.8.2.jar621.99 kB74924671.5Yes
junit-4.12.jar314.93 kB323286301.5Yes
httpclient-4.0.1.jar291.04 kB266230221.5Yes
httpcore-4.0.1.jar172.89 kB181158101.3Yes
jackson-core-asl-1.9.11.jar232.13 kB13712181.5Yes
easymock-3.3.jar126.61 kB1049531.5Yes
hamcrest-core-1.3.jar45.02 kB524531.5Yes
json-20090211.jar45.94 kB211911.6Yes
objenesis-2.1.jar41.76 kB523791.5Yes
TotalSizeEntriesClassesPackagesJava VersionDebug Information
315.79 MB505340282111.631
compile: 26compile: 4.93 MBcompile: 4266compile: 3313compile: 157-compile: 26
test: 5test: 859.53 kBtest: 787test: 715test: 54-test: 5
+
+

Dependency Repository Locations

+ + + + + + + + + + + + + + + + + + + + +
Repo IDURLReleaseSnapshot
centralhttps://repo.maven.apache.org/maven2YesNo
sonatype-nexus-snapshotshttps://oss.sonatype.org/content/repositories/snapshotsNoYes
apache.snapshotshttp://people.apache.org/repo/m2-snapshot-repositoryNoYes
+

Repository locations for each of the Dependencies.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Artifactcentralsonatype-nexus-snapshotsapache.snapshots
cglib:cglib-nodep:jar:3.1Found at https://repo.maven.apache.org/maven2--
com.fasterxml.jackson.core:jackson-core:jar:2.1.3Found at https://repo.maven.apache.org/maven2--
com.google.api-client:google-api-client:jar:1.20.0Found at https://repo.maven.apache.org/maven2--
com.google.api-client:google-api-client-appengine:jar:1.20.0Found at https://repo.maven.apache.org/maven2--
com.google.api-client:google-api-client-servlet:jar:1.20.0Found at https://repo.maven.apache.org/maven2--
com.google.auth:google-auth-library-credentials:jar:0.1.0Found at https://repo.maven.apache.org/maven2--
com.google.auth:google-auth-library-oauth2-http:jar:0.1.0Found at https://repo.maven.apache.org/maven2--
com.google.code.findbugs:jsr305:jar:1.3.9Found at https://repo.maven.apache.org/maven2--
com.google.guava:guava:jar:18.0Found at https://repo.maven.apache.org/maven2--
com.google.http-client:google-http-client:jar:1.20.0Found at https://repo.maven.apache.org/maven2--
com.google.http-client:google-http-client-appengine:jar:1.20.0Found at https://repo.maven.apache.org/maven2--
com.google.http-client:google-http-client-jackson:jar:1.20.0Found at https://repo.maven.apache.org/maven2--
com.google.http-client:google-http-client-jackson2:jar:1.19.0Found at https://repo.maven.apache.org/maven2--
com.google.http-client:google-http-client-jdo:jar:1.20.0Found at https://repo.maven.apache.org/maven2--
com.google.oauth-client:google-oauth-client:jar:1.20.0Found at https://repo.maven.apache.org/maven2--
com.google.oauth-client:google-oauth-client-appengine:jar:1.20.0Found at https://repo.maven.apache.org/maven2--
com.google.oauth-client:google-oauth-client-servlet:jar:1.20.0Found at https://repo.maven.apache.org/maven2--
commons-codec:commons-codec:jar:1.3Found at https://repo.maven.apache.org/maven2--
commons-logging:commons-logging:jar:1.1.1Found at https://repo.maven.apache.org/maven2--
javax.jdo:jdo2-api:jar:2.3-ebFound at https://repo.maven.apache.org/maven2--
javax.servlet:servlet-api:jar:2.5Found at https://repo.maven.apache.org/maven2--
javax.transaction:transaction-api:jar:1.1Found at https://repo.maven.apache.org/maven2--
joda-time:joda-time:jar:2.8.2Found at https://repo.maven.apache.org/maven2--
junit:junit:jar:4.12Found at https://repo.maven.apache.org/maven2--
org.apache.httpcomponents:httpclient:jar:4.0.1Found at https://repo.maven.apache.org/maven2--
org.apache.httpcomponents:httpcore:jar:4.0.1Found at https://repo.maven.apache.org/maven2--
org.codehaus.jackson:jackson-core-asl:jar:1.9.11Found at https://repo.maven.apache.org/maven2--
org.easymock:easymock:jar:3.3Found at https://repo.maven.apache.org/maven2--
org.hamcrest:hamcrest-core:jar:1.3Found at https://repo.maven.apache.org/maven2--
org.json:json:jar:20090211Found at https://repo.maven.apache.org/maven2--
org.objenesis:objenesis:jar:2.1Found at https://repo.maven.apache.org/maven2--
Totalcentralsonatype-nexus-snapshotsapache.snapshots
31 (compile: 26, test: 5)3100
+
+
+
+ +
+ + + + diff --git a/site/0.0.7/gcloud-java-core/dependency-analysis.html b/site/0.0.7/gcloud-java-core/dependency-analysis.html new file mode 100644 index 000000000000..c14919b939c8 --- /dev/null +++ b/site/0.0.7/gcloud-java-core/dependency-analysis.html @@ -0,0 +1,313 @@ + + + + + + + + + GCloud Java core – Dependencies Report + + + + + + + + + + + + + +
+ + + + + +
+
+ +
+ + +
+ +
+

Dependency Analysis

+
+

Used and declared dependencies

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GroupIdArtifactIdVersionScopeClassifierTypeOptional
com.google.authgoogle-auth-library-oauth2-http0.1.0compilejarfalse
com.google.http-clientgoogle-http-client1.20.0compilejarfalse
com.google.guavaguava18.0compilejarfalse
com.google.api-clientgoogle-api-client-appengine1.20.0compilejarfalse
com.google.http-clientgoogle-http-client-jackson1.20.0compilejarfalse
junitjunit4.12testjarfalse

+
+

Used but undeclared dependencies

+ + + + + + + + + + + + + + + + + + + + + + + + +
GroupIdArtifactIdVersionScopeClassifierTypeOptional
com.google.api-clientgoogle-api-client1.20.0compilejarfalse
com.google.http-clientgoogle-http-client-appengine1.20.0compilejarfalse

+
+

Unused but declared dependencies

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GroupIdArtifactIdVersionScopeClassifierTypeOptional
com.google.authgoogle-auth-library-credentials0.1.0compilejarfalse
com.google.oauth-clientgoogle-oauth-client1.20.0compilejarfalse
joda-timejoda-time2.8.2compilejarfalse
org.jsonjson20090211compilejarfalse
org.easymockeasymock3.3testjarfalse

+
+
+
+ +
+ + + + diff --git a/site/0.0.7/gcloud-java-core/dependency-convergence.html b/site/0.0.7/gcloud-java-core/dependency-convergence.html new file mode 100644 index 000000000000..2325b50879e4 --- /dev/null +++ b/site/0.0.7/gcloud-java-core/dependency-convergence.html @@ -0,0 +1,382 @@ + + + + + + + + + GCloud Java core – Reactor Dependency Convergence + + + + + + + + + + + + + +
+ + + + + +
+
+ +
+ + +
+ +
+

Reactor Dependency Convergence

+ + + +
+ Legend: +
errorAt least one dependency has a differing version of the dependency or has SNAPSHOT dependencies.

+ + + + + + + + + + + + + + + + + + + + + +
+ Statistics: +
Number of modules:6
Number of dependencies (NOD):41
Number of unique artifacts (NOA):50
Number of version-conflicting artifacts (NOC):6
Number of SNAPSHOT artifacts (NOS):0
Convergence (NOD/NOA):error 82 %
Ready for release (100 % convergence and no SNAPSHOTS):error Error
You do not have 100 % convergence.
+
+

Dependencies used in modules

+
+

com.google.api-client:google-api-client

+ + + +
error + + + + + + + + + +
1.15.0-rc +
    +
  1. com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT
    \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
       \- com.google.api-client:google-api-client:jar:1.15.0-rc:compile

  2. +
  3. com.google.gcloud:gcloud-java-examples:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT:compile
       \- com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT:compile
          \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
             \- (com.google.api-client:google-api-client:jar:1.15.0-rc:compile - omitted for conflict with 1.20.0)

  4. +
  5. com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT:compile
       \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
          \- (com.google.api-client:google-api-client:jar:1.15.0-rc:compile - omitted for conflict with 1.20.0)

1.19.0 +
    +
  1. com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT
    \- com.google.apis:google-api-services-datastore:jar:v1beta2-rev23-1.19.0:compile
       \- (com.google.api-client:google-api-client:jar:1.19.0:compile - omitted for conflict with 1.15.0-rc)

  2. +
  3. com.google.gcloud:gcloud-java-examples:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT:compile
       \- com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT:compile
          \- com.google.apis:google-api-services-datastore:jar:v1beta2-rev23-1.19.0:compile
             \- (com.google.api-client:google-api-client:jar:1.19.0:compile - omitted for conflict with 1.20.0)

  4. +
  5. com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT:compile
       \- com.google.apis:google-api-services-datastore:jar:v1beta2-rev23-1.19.0:compile
          \- (com.google.api-client:google-api-client:jar:1.19.0:compile - omitted for conflict with 1.20.0)

1.20.0 +
    +
  1. com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
       \- com.google.api-client:google-api-client-appengine:jar:1.20.0:compile
          +- (com.google.api-client:google-api-client:jar:1.20.0:compile - omitted for conflict with 1.15.0-rc)
          \- com.google.api-client:google-api-client-servlet:jar:1.20.0:compile
             \- (com.google.api-client:google-api-client:jar:1.20.0:compile - omitted for duplicate)

  2. +
  3. com.google.gcloud:gcloud-java-examples:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT:compile
       +- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
       |  \- com.google.api-client:google-api-client-appengine:jar:1.20.0:compile
       |     +- com.google.api-client:google-api-client:jar:1.20.0:compile
       |     \- com.google.api-client:google-api-client-servlet:jar:1.20.0:compile
       |        \- (com.google.api-client:google-api-client:jar:1.20.0:compile - omitted for duplicate)
       \- com.google.gcloud:gcloud-java-storage:jar:0.0.7-SNAPSHOT:compile
          \- com.google.apis:google-api-services-storage:jar:v1-rev33-1.20.0:compile
             \- (com.google.api-client:google-api-client:jar:1.20.0:compile - omitted for duplicate)

  4. +
  5. com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT
    +- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
    |  \- com.google.api-client:google-api-client-appengine:jar:1.20.0:compile
    |     +- com.google.api-client:google-api-client:jar:1.20.0:compile
    |     \- com.google.api-client:google-api-client-servlet:jar:1.20.0:compile
    |        \- (com.google.api-client:google-api-client:jar:1.20.0:compile - omitted for duplicate)
    \- com.google.gcloud:gcloud-java-storage:jar:0.0.7-SNAPSHOT:compile
       \- com.google.apis:google-api-services-storage:jar:v1-rev33-1.20.0:compile
          \- (com.google.api-client:google-api-client:jar:1.20.0:compile - omitted for duplicate)

+
+

com.google.http-client:google-http-client

+ + + +
error + + + + + + + + + +
1.15.0-rc +
    +
  1. com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT
    \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
       +- (com.google.http-client:google-http-client:jar:1.15.0-rc:compile - omitted for conflict with 1.20.0)
       \- com.google.http-client:google-http-client-protobuf:jar:1.15.0-rc:compile
          \- (com.google.http-client:google-http-client:jar:1.15.0-rc:compile - omitted for conflict with 1.20.0)

  2. +
  3. com.google.gcloud:gcloud-java-examples:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT:compile
       \- com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT:compile
          \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
             +- (com.google.http-client:google-http-client:jar:1.15.0-rc:compile - omitted for conflict with 1.20.0)
             \- com.google.http-client:google-http-client-protobuf:jar:1.15.0-rc:compile
                \- (com.google.http-client:google-http-client:jar:1.15.0-rc:compile - omitted for conflict with 1.20.0)

  4. +
  5. com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT:compile
       \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
          +- (com.google.http-client:google-http-client:jar:1.15.0-rc:compile - omitted for conflict with 1.20.0)
          \- com.google.http-client:google-http-client-protobuf:jar:1.15.0-rc:compile
             \- (com.google.http-client:google-http-client:jar:1.15.0-rc:compile - omitted for conflict with 1.20.0)

1.19.0 +
    +
  1. com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT
    \- com.google.auth:google-auth-library-oauth2-http:jar:0.1.0:compile
       +- (com.google.http-client:google-http-client:jar:1.19.0:compile - omitted for conflict with 1.20.0)
       \- com.google.http-client:google-http-client-jackson2:jar:1.19.0:compile
          \- (com.google.http-client:google-http-client:jar:1.19.0:compile - omitted for duplicate)

  2. +
  3. com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
       \- com.google.auth:google-auth-library-oauth2-http:jar:0.1.0:compile
          +- (com.google.http-client:google-http-client:jar:1.19.0:compile - omitted for conflict with 1.20.0)
          \- com.google.http-client:google-http-client-jackson2:jar:1.19.0:compile
             \- (com.google.http-client:google-http-client:jar:1.19.0:compile - omitted for duplicate)

  4. +
  5. com.google.gcloud:gcloud-java-examples:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT:compile
       \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
          \- com.google.auth:google-auth-library-oauth2-http:jar:0.1.0:compile
             +- (com.google.http-client:google-http-client:jar:1.19.0:compile - omitted for conflict with 1.20.0)
             \- com.google.http-client:google-http-client-jackson2:jar:1.19.0:compile
                \- (com.google.http-client:google-http-client:jar:1.19.0:compile - omitted for duplicate)

  6. +
  7. com.google.gcloud:gcloud-java-storage:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
       \- com.google.auth:google-auth-library-oauth2-http:jar:0.1.0:compile
          +- (com.google.http-client:google-http-client:jar:1.19.0:compile - omitted for conflict with 1.20.0)
          \- com.google.http-client:google-http-client-jackson2:jar:1.19.0:compile
             \- (com.google.http-client:google-http-client:jar:1.19.0:compile - omitted for duplicate)

  8. +
  9. com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
       \- com.google.auth:google-auth-library-oauth2-http:jar:0.1.0:compile
          +- (com.google.http-client:google-http-client:jar:1.19.0:compile - omitted for conflict with 1.20.0)
          \- com.google.http-client:google-http-client-jackson2:jar:1.19.0:compile
             \- (com.google.http-client:google-http-client:jar:1.19.0:compile - omitted for duplicate)

1.20.0 +
    +
  1. com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT
    +- com.google.http-client:google-http-client:jar:1.20.0:compile
    +- com.google.oauth-client:google-oauth-client:jar:1.20.0:compile
    |  \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)
    +- com.google.api-client:google-api-client-appengine:jar:1.20.0:compile
    |  +- com.google.oauth-client:google-oauth-client-appengine:jar:1.20.0:compile
    |  |  \- com.google.oauth-client:google-oauth-client-servlet:jar:1.20.0:compile
    |  |     \- com.google.http-client:google-http-client-jdo:jar:1.20.0:compile
    |  |        \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)
    |  \- com.google.http-client:google-http-client-appengine:jar:1.20.0:compile
    |     \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)
    \- com.google.http-client:google-http-client-jackson:jar:1.20.0:compile
       \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)

  2. +
  3. com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
       +- com.google.http-client:google-http-client:jar:1.20.0:compile
       +- com.google.oauth-client:google-oauth-client:jar:1.20.0:compile
       |  \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)
       +- com.google.api-client:google-api-client-appengine:jar:1.20.0:compile
       |  +- com.google.oauth-client:google-oauth-client-appengine:jar:1.20.0:compile
       |  |  \- com.google.oauth-client:google-oauth-client-servlet:jar:1.20.0:compile
       |  |     \- com.google.http-client:google-http-client-jdo:jar:1.20.0:compile
       |  |        \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)
       |  \- com.google.http-client:google-http-client-appengine:jar:1.20.0:compile
       |     \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)
       \- com.google.http-client:google-http-client-jackson:jar:1.20.0:compile
          \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)

  4. +
  5. com.google.gcloud:gcloud-java-examples:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT:compile
       \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
          +- com.google.http-client:google-http-client:jar:1.20.0:compile
          +- com.google.oauth-client:google-oauth-client:jar:1.20.0:compile
          |  \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)
          +- com.google.api-client:google-api-client-appengine:jar:1.20.0:compile
          |  +- com.google.oauth-client:google-oauth-client-appengine:jar:1.20.0:compile
          |  |  \- com.google.oauth-client:google-oauth-client-servlet:jar:1.20.0:compile
          |  |     \- com.google.http-client:google-http-client-jdo:jar:1.20.0:compile
          |  |        \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)
          |  \- com.google.http-client:google-http-client-appengine:jar:1.20.0:compile
          |     \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)
          \- com.google.http-client:google-http-client-jackson:jar:1.20.0:compile
             \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)

  6. +
  7. com.google.gcloud:gcloud-java-storage:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
       +- com.google.http-client:google-http-client:jar:1.20.0:compile
       +- com.google.oauth-client:google-oauth-client:jar:1.20.0:compile
       |  \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)
       +- com.google.api-client:google-api-client-appengine:jar:1.20.0:compile
       |  +- com.google.oauth-client:google-oauth-client-appengine:jar:1.20.0:compile
       |  |  \- com.google.oauth-client:google-oauth-client-servlet:jar:1.20.0:compile
       |  |     \- com.google.http-client:google-http-client-jdo:jar:1.20.0:compile
       |  |        \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)
       |  \- com.google.http-client:google-http-client-appengine:jar:1.20.0:compile
       |     \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)
       \- com.google.http-client:google-http-client-jackson:jar:1.20.0:compile
          \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)

  8. +
  9. com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
       +- com.google.http-client:google-http-client:jar:1.20.0:compile
       +- com.google.oauth-client:google-oauth-client:jar:1.20.0:compile
       |  \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)
       +- com.google.api-client:google-api-client-appengine:jar:1.20.0:compile
       |  +- com.google.oauth-client:google-oauth-client-appengine:jar:1.20.0:compile
       |  |  \- com.google.oauth-client:google-oauth-client-servlet:jar:1.20.0:compile
       |  |     \- com.google.http-client:google-http-client-jdo:jar:1.20.0:compile
       |  |        \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)
       |  \- com.google.http-client:google-http-client-appengine:jar:1.20.0:compile
       |     \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)
       \- com.google.http-client:google-http-client-jackson:jar:1.20.0:compile
          \- (com.google.http-client:google-http-client:jar:1.20.0:compile - omitted for duplicate)

+
+

com.google.http-client:google-http-client-jackson

+ + + +
error + + + + + + +
1.15.0-rc +
    +
  1. com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT
    \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
       \- (com.google.http-client:google-http-client-jackson:jar:1.15.0-rc:compile - omitted for conflict with 1.20.0)

  2. +
  3. com.google.gcloud:gcloud-java-examples:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT:compile
       \- com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT:compile
          \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
             \- (com.google.http-client:google-http-client-jackson:jar:1.15.0-rc:compile - omitted for conflict with 1.20.0)

  4. +
  5. com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT:compile
       \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
          \- (com.google.http-client:google-http-client-jackson:jar:1.15.0-rc:compile - omitted for conflict with 1.20.0)

1.20.0 +
    +
  1. com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
       \- com.google.http-client:google-http-client-jackson:jar:1.20.0:compile

  2. +
  3. com.google.gcloud:gcloud-java-examples:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT:compile
       \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
          \- com.google.http-client:google-http-client-jackson:jar:1.20.0:compile

  4. +
  5. com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
       \- com.google.http-client:google-http-client-jackson:jar:1.20.0:compile

+
+

com.google.http-client:google-http-client-jackson2

+ + + +
error + + + + + + +
1.19.0 +
    +
  1. com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT
    \- com.google.auth:google-auth-library-oauth2-http:jar:0.1.0:compile
       \- com.google.http-client:google-http-client-jackson2:jar:1.19.0:compile

  2. +
  3. com.google.gcloud:gcloud-java-examples:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT:compile
       \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
          \- com.google.auth:google-auth-library-oauth2-http:jar:0.1.0:compile
             \- com.google.http-client:google-http-client-jackson2:jar:1.19.0:compile

  4. +
  5. com.google.gcloud:gcloud-java-storage:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
       \- com.google.auth:google-auth-library-oauth2-http:jar:0.1.0:compile
          \- com.google.http-client:google-http-client-jackson2:jar:1.19.0:compile

  6. +
  7. com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
       \- com.google.auth:google-auth-library-oauth2-http:jar:0.1.0:compile
          \- com.google.http-client:google-http-client-jackson2:jar:1.19.0:compile

1.20.0 +
    +
  1. com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT
    \- com.google.api-client:google-api-client-appengine:jar:1.20.0:compile
       \- com.google.api-client:google-api-client:jar:1.20.0:compile
          \- (com.google.http-client:google-http-client-jackson2:jar:1.20.0:compile - omitted for conflict with 1.19.0)

  2. +
  3. com.google.gcloud:gcloud-java-examples:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT:compile
       \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
          \- com.google.api-client:google-api-client-appengine:jar:1.20.0:compile
             \- com.google.api-client:google-api-client:jar:1.20.0:compile
                \- (com.google.http-client:google-http-client-jackson2:jar:1.20.0:compile - omitted for conflict with 1.19.0)

  4. +
  5. com.google.gcloud:gcloud-java-storage:jar:0.0.7-SNAPSHOT
    \- com.google.apis:google-api-services-storage:jar:v1-rev33-1.20.0:compile
       \- com.google.api-client:google-api-client:jar:1.20.0:compile
          \- (com.google.http-client:google-http-client-jackson2:jar:1.20.0:compile - omitted for conflict with 1.19.0)

  6. +
  7. com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
       \- com.google.api-client:google-api-client-appengine:jar:1.20.0:compile
          \- com.google.api-client:google-api-client:jar:1.20.0:compile
             \- (com.google.http-client:google-http-client-jackson2:jar:1.20.0:compile - omitted for conflict with 1.19.0)

+
+

com.google.oauth-client:google-oauth-client

+ + + +
error + + + + + + +
1.15.0-rc +
    +
  1. com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT
    \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
       +- (com.google.oauth-client:google-oauth-client:jar:1.15.0-rc:compile - omitted for conflict with 1.20.0)
       \- com.google.api-client:google-api-client:jar:1.15.0-rc:compile
          \- (com.google.oauth-client:google-oauth-client:jar:1.15.0-rc:compile - omitted for conflict with 1.20.0)

  2. +
  3. com.google.gcloud:gcloud-java-examples:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT:compile
       \- com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT:compile
          \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
             \- (com.google.oauth-client:google-oauth-client:jar:1.15.0-rc:compile - omitted for conflict with 1.20.0)

  4. +
  5. com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT:compile
       \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
          \- (com.google.oauth-client:google-oauth-client:jar:1.15.0-rc:compile - omitted for conflict with 1.20.0)

1.20.0 +
    +
  1. com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
       +- com.google.oauth-client:google-oauth-client:jar:1.20.0:compile
       \- com.google.api-client:google-api-client-appengine:jar:1.20.0:compile
          \- com.google.oauth-client:google-oauth-client-appengine:jar:1.20.0:compile
             +- (com.google.oauth-client:google-oauth-client:jar:1.20.0:compile - omitted for duplicate)
             \- com.google.oauth-client:google-oauth-client-servlet:jar:1.20.0:compile
                \- (com.google.oauth-client:google-oauth-client:jar:1.20.0:compile - omitted for duplicate)

  2. +
  3. com.google.gcloud:gcloud-java-examples:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT:compile
       \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
          +- com.google.oauth-client:google-oauth-client:jar:1.20.0:compile
          \- com.google.api-client:google-api-client-appengine:jar:1.20.0:compile
             +- com.google.oauth-client:google-oauth-client-appengine:jar:1.20.0:compile
             |  +- (com.google.oauth-client:google-oauth-client:jar:1.20.0:compile - omitted for duplicate)
             |  \- com.google.oauth-client:google-oauth-client-servlet:jar:1.20.0:compile
             |     \- (com.google.oauth-client:google-oauth-client:jar:1.20.0:compile - omitted for duplicate)
             \- com.google.api-client:google-api-client:jar:1.20.0:compile
                \- (com.google.oauth-client:google-oauth-client:jar:1.20.0:compile - omitted for duplicate)

  4. +
  5. com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT:compile
       +- com.google.oauth-client:google-oauth-client:jar:1.20.0:compile
       \- com.google.api-client:google-api-client-appengine:jar:1.20.0:compile
          +- com.google.oauth-client:google-oauth-client-appengine:jar:1.20.0:compile
          |  +- (com.google.oauth-client:google-oauth-client:jar:1.20.0:compile - omitted for duplicate)
          |  \- com.google.oauth-client:google-oauth-client-servlet:jar:1.20.0:compile
          |     \- (com.google.oauth-client:google-oauth-client:jar:1.20.0:compile - omitted for duplicate)
          \- com.google.api-client:google-api-client:jar:1.20.0:compile
             \- (com.google.oauth-client:google-oauth-client:jar:1.20.0:compile - omitted for duplicate)

+
+

com.google.protobuf:protobuf-java

+ + + +
error + + + + + + +
2.4.1 +
    +
  1. com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT
    \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
       \- com.google.http-client:google-http-client-protobuf:jar:1.15.0-rc:compile
          \- (com.google.protobuf:protobuf-java:jar:2.4.1:compile - omitted for conflict with 2.5.0)

  2. +
  3. com.google.gcloud:gcloud-java-examples:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT:compile
       \- com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT:compile
          \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
             \- com.google.http-client:google-http-client-protobuf:jar:1.15.0-rc:compile
                \- (com.google.protobuf:protobuf-java:jar:2.4.1:compile - omitted for conflict with 2.5.0)

  4. +
  5. com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT:compile
       \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
          \- com.google.http-client:google-http-client-protobuf:jar:1.15.0-rc:compile
             \- (com.google.protobuf:protobuf-java:jar:2.4.1:compile - omitted for conflict with 2.5.0)

2.5.0 +
    +
  1. com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT
    \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
       \- com.google.protobuf:protobuf-java:jar:2.5.0:compile

  2. +
  3. com.google.gcloud:gcloud-java-examples:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT:compile
       \- com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT:compile
          \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
             \- com.google.protobuf:protobuf-java:jar:2.5.0:compile

  4. +
  5. com.google.gcloud:gcloud-java:jar:0.0.7-SNAPSHOT
    \- com.google.gcloud:gcloud-java-datastore:jar:0.0.7-SNAPSHOT:compile
       \- com.google.apis:google-api-services-datastore-protobuf:jar:v1beta2-rev1-2.1.2:compile
          \- com.google.protobuf:protobuf-java:jar:2.5.0:compile

+
+
+
+ +
+ + + + diff --git a/site/0.0.7/gcloud-java-core/dependency-info.html b/site/0.0.7/gcloud-java-core/dependency-info.html new file mode 100644 index 000000000000..e1cc390d02ca --- /dev/null +++ b/site/0.0.7/gcloud-java-core/dependency-info.html @@ -0,0 +1,240 @@ + + + + + + + + + GCloud Java core – Dependency Information + + + + + + + + + + + + + +
+ + + + + +
+
+ +
+ + +
+ +
+

Dependency Information

+
+

Apache Maven

+
+
<dependency>
+  <groupId>com.google.gcloud</groupId>
+  <artifactId>gcloud-java-core</artifactId>
+  <version>0.0.7-SNAPSHOT</version>
+</dependency>
+
+

Apache Buildr

+
+
'com.google.gcloud:gcloud-java-core:jar:0.0.7-SNAPSHOT'
+
+

Apache Ivy

+
+
<dependency org="com.google.gcloud" name="gcloud-java-core" rev="0.0.7-SNAPSHOT">
+  <artifact name="gcloud-java-core" type="jar" />
+</dependency>
+
+

Groovy Grape

+
+
@Grapes(
+@Grab(group='com.google.gcloud', module='gcloud-java-core', version='0.0.7-SNAPSHOT')
+)
+
+

Grails

+
+
compile 'com.google.gcloud:gcloud-java-core:0.0.7-SNAPSHOT'
+
+

Leiningen

+
+
[com.google.gcloud/gcloud-java-core "0.0.7-SNAPSHOT"]
+
+

SBT

+
+
libraryDependencies += "com.google.gcloud" % "gcloud-java-core" % "0.0.7-SNAPSHOT"
+
+
+
+ +
+ + + + diff --git a/site/0.0.7/gcloud-java-core/dev-activity.html b/site/0.0.7/gcloud-java-core/dev-activity.html new file mode 100644 index 000000000000..ff5f71bc9804 --- /dev/null +++ b/site/0.0.7/gcloud-java-core/dev-activity.html @@ -0,0 +1,188 @@ + + + + + + + + + GCloud Java core – Developer Activity Report + + + + + + + + + + + + + +
+ + + + + +
+
+ +
+ + +
+ +
+

Developer Activity Report

+
+

Changes between 2015-07-18 and 2015-08-18

+

Total commits: 1
Total number of files changed: 1

+ + + + + + + + +
DeveloperTotal commitsTotal Number of Files Changed
aozarov <aozarov@gmail.com>11
+
+
+
+ +
+ + + + diff --git a/site/0.0.7/gcloud-java-core/distribution-management.html b/site/0.0.7/gcloud-java-core/distribution-management.html new file mode 100644 index 000000000000..8b79a6b51a60 --- /dev/null +++ b/site/0.0.7/gcloud-java-core/distribution-management.html @@ -0,0 +1,212 @@ + + + + + + + + + GCloud Java core – Project Distribution Management + + + + + + + + + + + + + +
+ + + + + +
+
+ +
+ + +
+ +
+

Overview

+

The following is the distribution management information used by this project.

+ +
+

Snapshot Repository - sonatype-nexus-snapshots

https://oss.sonatype.org/content/repositories/snapshots
+
+

Site - github-pages-site

+

site/0.0.7-SNAPSHOT/gcloud-java-core/

+
+
+
+ +
+ + + + diff --git a/site/0.0.7/gcloud-java-core/file-activity.html b/site/0.0.7/gcloud-java-core/file-activity.html new file mode 100644 index 000000000000..1fe71b386ec0 --- /dev/null +++ b/site/0.0.7/gcloud-java-core/file-activity.html @@ -0,0 +1,186 @@ + + + + + + + + + GCloud Java core – File Activity Report + + + + + + + + + + + + + +
+ + + + + +
+
+ +
+ + +
+ +
+

File Activity Report

+
+

Changes between 2015-07-18 and 2015-08-18

+

Total commits: 1
Total number of files changed: 1

+ + + + + + +
FilenameNumber of Times Changed
gcloud-java-core/src/main/java/com/google/gcloud/ServiceOptions.java 1
+
+
+
+ +
+ + + + diff --git a/site/0.0.7/gcloud-java-core/images/accessories-text-editor.png b/site/0.0.7/gcloud-java-core/images/accessories-text-editor.png new file mode 100644 index 000000000000..abc3366edad8 Binary files /dev/null and b/site/0.0.7/gcloud-java-core/images/accessories-text-editor.png differ diff --git a/site/0.0.7/gcloud-java-core/images/add.gif b/site/0.0.7/gcloud-java-core/images/add.gif new file mode 100644 index 000000000000..1cb3dbf936e3 Binary files /dev/null and b/site/0.0.7/gcloud-java-core/images/add.gif differ diff --git a/site/0.0.7/gcloud-java-core/images/apache-maven-project-2.png b/site/0.0.7/gcloud-java-core/images/apache-maven-project-2.png new file mode 100644 index 000000000000..6c096ec0c7d5 Binary files /dev/null and b/site/0.0.7/gcloud-java-core/images/apache-maven-project-2.png differ diff --git a/site/0.0.7/gcloud-java-core/images/application-certificate.png b/site/0.0.7/gcloud-java-core/images/application-certificate.png new file mode 100644 index 000000000000..cc6aff616f3e Binary files /dev/null and b/site/0.0.7/gcloud-java-core/images/application-certificate.png differ diff --git a/site/0.0.7/gcloud-java-core/images/close.gif b/site/0.0.7/gcloud-java-core/images/close.gif new file mode 100644 index 000000000000..1c26bbc5264f Binary files /dev/null and b/site/0.0.7/gcloud-java-core/images/close.gif differ diff --git a/site/0.0.7/gcloud-java-core/images/contact-new.png b/site/0.0.7/gcloud-java-core/images/contact-new.png new file mode 100644 index 000000000000..ebc4316d844d Binary files /dev/null and b/site/0.0.7/gcloud-java-core/images/contact-new.png differ diff --git a/site/0.0.7/gcloud-java-core/images/document-properties.png b/site/0.0.7/gcloud-java-core/images/document-properties.png new file mode 100644 index 000000000000..34c2409a7c28 Binary files /dev/null and b/site/0.0.7/gcloud-java-core/images/document-properties.png differ diff --git a/site/0.0.7/gcloud-java-core/images/drive-harddisk.png b/site/0.0.7/gcloud-java-core/images/drive-harddisk.png new file mode 100644 index 000000000000..d7ce475f8390 Binary files /dev/null and b/site/0.0.7/gcloud-java-core/images/drive-harddisk.png differ diff --git a/site/0.0.7/gcloud-java-core/images/fix.gif b/site/0.0.7/gcloud-java-core/images/fix.gif new file mode 100644 index 000000000000..b7eb3dc44242 Binary files /dev/null and b/site/0.0.7/gcloud-java-core/images/fix.gif differ diff --git a/site/0.0.7/gcloud-java-core/images/icon_error_sml.gif b/site/0.0.7/gcloud-java-core/images/icon_error_sml.gif new file mode 100644 index 000000000000..12e9a01a930c Binary files /dev/null and b/site/0.0.7/gcloud-java-core/images/icon_error_sml.gif differ diff --git a/site/0.0.7/gcloud-java-core/images/icon_help_sml.gif b/site/0.0.7/gcloud-java-core/images/icon_help_sml.gif new file mode 100644 index 000000000000..aaf20e6eea41 Binary files /dev/null and b/site/0.0.7/gcloud-java-core/images/icon_help_sml.gif differ diff --git a/site/0.0.7/gcloud-java-core/images/icon_info_sml.gif b/site/0.0.7/gcloud-java-core/images/icon_info_sml.gif new file mode 100644 index 000000000000..b776326703c3 Binary files /dev/null and b/site/0.0.7/gcloud-java-core/images/icon_info_sml.gif differ diff --git a/site/0.0.7/gcloud-java-core/images/icon_success_sml.gif b/site/0.0.7/gcloud-java-core/images/icon_success_sml.gif new file mode 100644 index 000000000000..0a195279b3f9 Binary files /dev/null and b/site/0.0.7/gcloud-java-core/images/icon_success_sml.gif differ diff --git a/site/0.0.7/gcloud-java-core/images/icon_warning_sml.gif b/site/0.0.7/gcloud-java-core/images/icon_warning_sml.gif new file mode 100644 index 000000000000..ac6ad6ada39e Binary files /dev/null and b/site/0.0.7/gcloud-java-core/images/icon_warning_sml.gif differ diff --git a/site/0.0.7/gcloud-java-core/images/image-x-generic.png b/site/0.0.7/gcloud-java-core/images/image-x-generic.png new file mode 100644 index 000000000000..ab49efb3457c Binary files /dev/null and b/site/0.0.7/gcloud-java-core/images/image-x-generic.png differ diff --git a/site/0.0.7/gcloud-java-core/images/internet-web-browser.png b/site/0.0.7/gcloud-java-core/images/internet-web-browser.png new file mode 100644 index 000000000000..307d6aca6141 Binary files /dev/null and b/site/0.0.7/gcloud-java-core/images/internet-web-browser.png differ diff --git a/site/0.0.7/gcloud-java-core/images/logos/build-by-maven-black.png b/site/0.0.7/gcloud-java-core/images/logos/build-by-maven-black.png new file mode 100644 index 000000000000..919fd0f66a7f Binary files /dev/null and b/site/0.0.7/gcloud-java-core/images/logos/build-by-maven-black.png differ diff --git a/site/0.0.7/gcloud-java-core/images/logos/build-by-maven-white.png b/site/0.0.7/gcloud-java-core/images/logos/build-by-maven-white.png new file mode 100644 index 000000000000..7d44c9c2e574 Binary files /dev/null and b/site/0.0.7/gcloud-java-core/images/logos/build-by-maven-white.png differ diff --git a/site/0.0.7/gcloud-java-core/images/logos/maven-feather.png b/site/0.0.7/gcloud-java-core/images/logos/maven-feather.png new file mode 100644 index 000000000000..b5ada836e9eb Binary files /dev/null and b/site/0.0.7/gcloud-java-core/images/logos/maven-feather.png differ diff --git a/site/0.0.7/gcloud-java-core/images/network-server.png b/site/0.0.7/gcloud-java-core/images/network-server.png new file mode 100644 index 000000000000..1d12e1938ac4 Binary files /dev/null and b/site/0.0.7/gcloud-java-core/images/network-server.png differ diff --git a/site/0.0.7/gcloud-java-core/images/package-x-generic.png b/site/0.0.7/gcloud-java-core/images/package-x-generic.png new file mode 100644 index 000000000000..8b7e9e67b5de Binary files /dev/null and b/site/0.0.7/gcloud-java-core/images/package-x-generic.png differ diff --git a/site/0.0.7/gcloud-java-core/images/profiles/pre-release.png b/site/0.0.7/gcloud-java-core/images/profiles/pre-release.png new file mode 100644 index 000000000000..d448e850cd3f Binary files /dev/null and b/site/0.0.7/gcloud-java-core/images/profiles/pre-release.png differ diff --git a/site/0.0.7/gcloud-java-core/images/profiles/retired.png b/site/0.0.7/gcloud-java-core/images/profiles/retired.png new file mode 100644 index 000000000000..f89f6a29c6b6 Binary files /dev/null and b/site/0.0.7/gcloud-java-core/images/profiles/retired.png differ diff --git a/site/0.0.7/gcloud-java-core/images/profiles/sandbox.png b/site/0.0.7/gcloud-java-core/images/profiles/sandbox.png new file mode 100644 index 000000000000..f88b3626761f Binary files /dev/null and b/site/0.0.7/gcloud-java-core/images/profiles/sandbox.png differ diff --git a/site/0.0.7/gcloud-java-core/images/remove.gif b/site/0.0.7/gcloud-java-core/images/remove.gif new file mode 100644 index 000000000000..fc65631cad98 Binary files /dev/null and b/site/0.0.7/gcloud-java-core/images/remove.gif differ diff --git a/site/0.0.7/gcloud-java-core/images/rss.png b/site/0.0.7/gcloud-java-core/images/rss.png new file mode 100644 index 000000000000..a9850ee2cd57 Binary files /dev/null and b/site/0.0.7/gcloud-java-core/images/rss.png differ diff --git a/site/0.0.7/gcloud-java-core/images/update.gif b/site/0.0.7/gcloud-java-core/images/update.gif new file mode 100644 index 000000000000..b2a6d0bf6375 Binary files /dev/null and b/site/0.0.7/gcloud-java-core/images/update.gif differ diff --git a/site/0.0.7/gcloud-java-core/images/window-new.png b/site/0.0.7/gcloud-java-core/images/window-new.png new file mode 100644 index 000000000000..0e12ef954c7c Binary files /dev/null and b/site/0.0.7/gcloud-java-core/images/window-new.png differ diff --git a/site/0.0.7/gcloud-java-core/img/glyphicons-halflings-white.png b/site/0.0.7/gcloud-java-core/img/glyphicons-halflings-white.png new file mode 100644 index 000000000000..3bf6484a29d8 Binary files /dev/null and b/site/0.0.7/gcloud-java-core/img/glyphicons-halflings-white.png differ diff --git a/site/0.0.7/gcloud-java-core/img/glyphicons-halflings.png b/site/0.0.7/gcloud-java-core/img/glyphicons-halflings.png new file mode 100644 index 000000000000..a9969993201f Binary files /dev/null and b/site/0.0.7/gcloud-java-core/img/glyphicons-halflings.png differ diff --git a/site/0.0.7/gcloud-java-core/index.html b/site/0.0.7/gcloud-java-core/index.html new file mode 100644 index 000000000000..c62c4cc97b5c --- /dev/null +++ b/site/0.0.7/gcloud-java-core/index.html @@ -0,0 +1,205 @@ + + + + + + + + + GCloud Java core – About + + + + + + + + + + + + + +
+ + + + + +
+
+ +
+ + +
+ +
+

About GCloud Java core

+

Core module for the gcloud-java.

+
+
+
+ +
+ + + + diff --git a/site/0.0.7/gcloud-java-core/integration.html b/site/0.0.7/gcloud-java-core/integration.html new file mode 100644 index 000000000000..7bad524f5193 --- /dev/null +++ b/site/0.0.7/gcloud-java-core/integration.html @@ -0,0 +1,213 @@ + + + + + + + + + GCloud Java core – Continuous Integration + + + + + + + + + + + + + +
+ + + + + +
+
+ +
+ + +
+ +
+

Overview

+

This project uses Travis CI.

+
+

Access

+

The following is a link to the continuous integration system used by the project:

+
+
+

Notifiers

+

No notifiers are defined. Please check back at a later date.

+
+
+
+ +
+ + + + diff --git a/site/0.0.7/gcloud-java-core/issue-tracking.html b/site/0.0.7/gcloud-java-core/issue-tracking.html new file mode 100644 index 000000000000..7442ee30d839 --- /dev/null +++ b/site/0.0.7/gcloud-java-core/issue-tracking.html @@ -0,0 +1,210 @@ + + + + + + + + + GCloud Java core – Issue Tracking + + + + + + + + + + + + + +
+ + + + + +
+
+ +
+ + +
+ +
+

Overview

+

This project uses GitHub Issues to manage its issues.

+
+

Issue Tracking

+

Issues, bugs, and feature requests should be submitted to the following issue tracking system for this project.

+
+
+
+
+ +
+ + + + diff --git a/site/0.0.7/gcloud-java-core/js/apache-maven-fluido-1.3.1.min.js b/site/0.0.7/gcloud-java-core/js/apache-maven-fluido-1.3.1.min.js new file mode 100644 index 000000000000..d16bb77898e4 --- /dev/null +++ b/site/0.0.7/gcloud-java-core/js/apache-maven-fluido-1.3.1.min.js @@ -0,0 +1,21 @@ +/*! + * jQuery JavaScript Library v1.9.1 + * http://jquery.com/ + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * + * Copyright 2005, 2012 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2013-2-4 + */ +(function(a3,aH){var aj,x,aD=typeof aH,l=a3.document,aM=a3.location,bj=a3.jQuery,I=a3.$,ab={},a7=[],t="1.9.1",aJ=a7.concat,ap=a7.push,a5=a7.slice,aN=a7.indexOf,A=ab.toString,W=ab.hasOwnProperty,aR=t.trim,bK=function(e,b4){return new bK.fn.init(e,b4,x)},bB=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ad=/\S+/g,D=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,bs=/^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,a=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,bi=/^[\],:{}\s]*$/,bl=/(?:^|:|,)(?:\s*\[)+/g,bH=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,a0=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,bT=/^-ms-/,aW=/-([\da-z])/gi,N=function(e,b4){return b4.toUpperCase()},bX=function(e){if(l.addEventListener||e.type==="load"||l.readyState==="complete"){bm();bK.ready()}},bm=function(){if(l.addEventListener){l.removeEventListener("DOMContentLoaded",bX,false);a3.removeEventListener("load",bX,false)}else{l.detachEvent("onreadystatechange",bX);a3.detachEvent("onload",bX)}};bK.fn=bK.prototype={jquery:t,constructor:bK,init:function(e,b6,b5){var b4,b7;if(!e){return this}if(typeof e==="string"){if(e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3){b4=[null,e,null]}else{b4=bs.exec(e)}if(b4&&(b4[1]||!b6)){if(b4[1]){b6=b6 instanceof bK?b6[0]:b6;bK.merge(this,bK.parseHTML(b4[1],b6&&b6.nodeType?b6.ownerDocument||b6:l,true));if(a.test(b4[1])&&bK.isPlainObject(b6)){for(b4 in b6){if(bK.isFunction(this[b4])){this[b4](b6[b4])}else{this.attr(b4,b6[b4])}}}return this}else{b7=l.getElementById(b4[2]);if(b7&&b7.parentNode){if(b7.id!==b4[2]){return b5.find(e)}this.length=1;this[0]=b7}this.context=l;this.selector=e;return this}}else{if(!b6||b6.jquery){return(b6||b5).find(e)}else{return this.constructor(b6).find(e)}}}else{if(e.nodeType){this.context=this[0]=e;this.length=1;return this}else{if(bK.isFunction(e)){return b5.ready(e)}}}if(e.selector!==aH){this.selector=e.selector;this.context=e.context}return bK.makeArray(e,this)},selector:"",length:0,size:function(){return this.length},toArray:function(){return a5.call(this)},get:function(e){return e==null?this.toArray():(e<0?this[this.length+e]:this[e])},pushStack:function(e){var b4=bK.merge(this.constructor(),e);b4.prevObject=this;b4.context=this.context;return b4},each:function(b4,e){return bK.each(this,b4,e)},ready:function(e){bK.ready.promise().done(e);return this},slice:function(){return this.pushStack(a5.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(b5){var e=this.length,b4=+b5+(b5<0?e:0);return this.pushStack(b4>=0&&b40){return}aj.resolveWith(l,[bK]);if(bK.fn.trigger){bK(l).trigger("ready").off("ready")}},isFunction:function(e){return bK.type(e)==="function"},isArray:Array.isArray||function(e){return bK.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return !isNaN(parseFloat(e))&&isFinite(e)},type:function(e){if(e==null){return String(e)}return typeof e==="object"||typeof e==="function"?ab[A.call(e)]||"object":typeof e},isPlainObject:function(b6){if(!b6||bK.type(b6)!=="object"||b6.nodeType||bK.isWindow(b6)){return false}try{if(b6.constructor&&!W.call(b6,"constructor")&&!W.call(b6.constructor.prototype,"isPrototypeOf")){return false}}catch(b5){return false}var b4;for(b4 in b6){}return b4===aH||W.call(b6,b4)},isEmptyObject:function(b4){var e;for(e in b4){return false}return true},error:function(e){throw new Error(e)},parseHTML:function(b7,b5,b6){if(!b7||typeof b7!=="string"){return null}if(typeof b5==="boolean"){b6=b5;b5=false}b5=b5||l;var b4=a.exec(b7),e=!b6&&[];if(b4){return[b5.createElement(b4[1])]}b4=bK.buildFragment([b7],b5,e);if(e){bK(e).remove()}return bK.merge([],b4.childNodes)},parseJSON:function(e){if(a3.JSON&&a3.JSON.parse){return a3.JSON.parse(e)}if(e===null){return e}if(typeof e==="string"){e=bK.trim(e);if(e){if(bi.test(e.replace(bH,"@").replace(a0,"]").replace(bl,""))){return(new Function("return "+e))()}}}bK.error("Invalid JSON: "+e)},parseXML:function(b6){var b4,b5;if(!b6||typeof b6!=="string"){return null}try{if(a3.DOMParser){b5=new DOMParser();b4=b5.parseFromString(b6,"text/xml")}else{b4=new ActiveXObject("Microsoft.XMLDOM");b4.async="false";b4.loadXML(b6)}}catch(b7){b4=aH}if(!b4||!b4.documentElement||b4.getElementsByTagName("parsererror").length){bK.error("Invalid XML: "+b6)}return b4},noop:function(){},globalEval:function(e){if(e&&bK.trim(e)){(a3.execScript||function(b4){a3["eval"].call(a3,b4)})(e)}},camelCase:function(e){return e.replace(bT,"ms-").replace(aW,N)},nodeName:function(b4,e){return b4.nodeName&&b4.nodeName.toLowerCase()===e.toLowerCase()},each:function(b8,b9,b4){var b7,b5=0,b6=b8.length,e=ac(b8);if(b4){if(e){for(;b50&&(b4-1) in b5)}x=bK(l);var bZ={};function af(b4){var e=bZ[b4]={};bK.each(b4.match(ad)||[],function(b6,b5){e[b5]=true});return e}bK.Callbacks=function(cd){cd=typeof cd==="string"?(bZ[cd]||af(cd)):bK.extend({},cd);var b7,b6,e,b8,b9,b5,ca=[],cb=!cd.once&&[],b4=function(ce){b6=cd.memory&&ce;e=true;b9=b5||0;b5=0;b8=ca.length;b7=true;for(;ca&&b9-1){ca.splice(cf,1);if(b7){if(cf<=b8){b8--}if(cf<=b9){b9--}}}})}return this},has:function(ce){return ce?bK.inArray(ce,ca)>-1:!!(ca&&ca.length)},empty:function(){ca=[];return this},disable:function(){ca=cb=b6=aH;return this},disabled:function(){return !ca},lock:function(){cb=aH;if(!b6){cc.disable()}return this},locked:function(){return !cb},fireWith:function(cf,ce){ce=ce||[];ce=[cf,ce.slice?ce.slice():ce];if(ca&&(!e||cb)){if(b7){cb.push(ce)}else{b4(ce)}}return this},fire:function(){cc.fireWith(this,arguments);return this},fired:function(){return !!e}};return cc};bK.extend({Deferred:function(b5){var b4=[["resolve","done",bK.Callbacks("once memory"),"resolved"],["reject","fail",bK.Callbacks("once memory"),"rejected"],["notify","progress",bK.Callbacks("memory")]],b6="pending",b7={state:function(){return b6},always:function(){e.done(arguments).fail(arguments);return this},then:function(){var b8=arguments;return bK.Deferred(function(b9){bK.each(b4,function(cb,ca){var cd=ca[0],cc=bK.isFunction(b8[cb])&&b8[cb];e[ca[1]](function(){var ce=cc&&cc.apply(this,arguments);if(ce&&bK.isFunction(ce.promise)){ce.promise().done(b9.resolve).fail(b9.reject).progress(b9.notify)}else{b9[cd+"With"](this===b7?b9.promise():this,cc?[ce]:arguments)}})});b8=null}).promise()},promise:function(b8){return b8!=null?bK.extend(b8,b7):b7}},e={};b7.pipe=b7.then;bK.each(b4,function(b9,b8){var cb=b8[2],ca=b8[3];b7[b8[1]]=cb.add;if(ca){cb.add(function(){b6=ca},b4[b9^1][2].disable,b4[2][2].lock)}e[b8[0]]=function(){e[b8[0]+"With"](this===e?b7:this,arguments);return this};e[b8[0]+"With"]=cb.fireWith});b7.promise(e);if(b5){b5.call(e,e)}return e},when:function(b7){var b5=0,b9=a5.call(arguments),e=b9.length,b4=e!==1||(b7&&bK.isFunction(b7.promise))?e:0,cc=b4===1?b7:bK.Deferred(),b6=function(ce,cf,cd){return function(cg){cf[ce]=this;cd[ce]=arguments.length>1?a5.call(arguments):cg;if(cd===cb){cc.notifyWith(cf,cd)}else{if(!(--b4)){cc.resolveWith(cf,cd)}}}},cb,b8,ca;if(e>1){cb=new Array(e);b8=new Array(e);ca=new Array(e);for(;b5
a";ce=b4.getElementsByTagName("*");cc=b4.getElementsByTagName("a")[0];if(!ce||!cc||!ce.length){return{}}cd=l.createElement("select");b6=cd.appendChild(l.createElement("option"));cb=b4.getElementsByTagName("input")[0];cc.style.cssText="top:1px;float:left;opacity:.5";cf={getSetAttribute:b4.className!=="t",leadingWhitespace:b4.firstChild.nodeType===3,tbody:!b4.getElementsByTagName("tbody").length,htmlSerialize:!!b4.getElementsByTagName("link").length,style:/top/.test(cc.getAttribute("style")),hrefNormalized:cc.getAttribute("href")==="/a",opacity:/^0.5/.test(cc.style.opacity),cssFloat:!!cc.style.cssFloat,checkOn:!!cb.value,optSelected:b6.selected,enctype:!!l.createElement("form").enctype,html5Clone:l.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",boxModel:l.compatMode==="CSS1Compat",deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true,boxSizingReliable:true,pixelPosition:false};cb.checked=true;cf.noCloneChecked=cb.cloneNode(true).checked;cd.disabled=true;cf.optDisabled=!b6.disabled;try{delete b4.test}catch(b9){cf.deleteExpando=false}cb=l.createElement("input");cb.setAttribute("value","");cf.input=cb.getAttribute("value")==="";cb.value="t";cb.setAttribute("type","radio");cf.radioValue=cb.value==="t";cb.setAttribute("checked","t");cb.setAttribute("name","t");ca=l.createDocumentFragment();ca.appendChild(cb);cf.appendChecked=cb.checked;cf.checkClone=ca.cloneNode(true).cloneNode(true).lastChild.checked;if(b4.attachEvent){b4.attachEvent("onclick",function(){cf.noCloneEvent=false});b4.cloneNode(true).click()}for(b7 in {submit:true,change:true,focusin:true}){b4.setAttribute(b8="on"+b7,"t");cf[b7+"Bubbles"]=b8 in a3||b4.attributes[b8].expando===false}b4.style.backgroundClip="content-box";b4.cloneNode(true).style.backgroundClip="";cf.clearCloneStyle=b4.style.backgroundClip==="content-box";bK(function(){var cg,cj,ci,ch="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",e=l.getElementsByTagName("body")[0];if(!e){return}cg=l.createElement("div");cg.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px";e.appendChild(cg).appendChild(b4);b4.innerHTML="
t
";ci=b4.getElementsByTagName("td");ci[0].style.cssText="padding:0;margin:0;border:0;display:none";b5=(ci[0].offsetHeight===0);ci[0].style.display="";ci[1].style.display="none";cf.reliableHiddenOffsets=b5&&(ci[0].offsetHeight===0);b4.innerHTML="";b4.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;";cf.boxSizing=(b4.offsetWidth===4);cf.doesNotIncludeMarginInBodyOffset=(e.offsetTop!==1);if(a3.getComputedStyle){cf.pixelPosition=(a3.getComputedStyle(b4,null)||{}).top!=="1%";cf.boxSizingReliable=(a3.getComputedStyle(b4,null)||{width:"4px"}).width==="4px";cj=b4.appendChild(l.createElement("div"));cj.style.cssText=b4.style.cssText=ch;cj.style.marginRight=cj.style.width="0";b4.style.width="1px";cf.reliableMarginRight=!parseFloat((a3.getComputedStyle(cj,null)||{}).marginRight)}if(typeof b4.style.zoom!==aD){b4.innerHTML="";b4.style.cssText=ch+"width:1px;padding:1px;display:inline;zoom:1";cf.inlineBlockNeedsLayout=(b4.offsetWidth===3);b4.style.display="block";b4.innerHTML="
";b4.firstChild.style.width="5px";cf.shrinkWrapBlocks=(b4.offsetWidth!==3);if(cf.inlineBlockNeedsLayout){e.style.zoom=1}}e.removeChild(cg);cg=b4=ci=cj=null});ce=cd=ca=b6=cc=cb=null;return cf})();var bx=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,aO=/([A-Z])/g;function bb(b6,b4,b8,b7){if(!bK.acceptData(b6)){return}var b9,cb,cc=bK.expando,ca=typeof b4==="string",cd=b6.nodeType,e=cd?bK.cache:b6,b5=cd?b6[cc]:b6[cc]&&cc;if((!b5||!e[b5]||(!b7&&!e[b5].data))&&ca&&b8===aH){return}if(!b5){if(cd){b6[cc]=b5=a7.pop()||bK.guid++}else{b5=cc}}if(!e[b5]){e[b5]={};if(!cd){e[b5].toJSON=bK.noop}}if(typeof b4==="object"||typeof b4==="function"){if(b7){e[b5]=bK.extend(e[b5],b4)}else{e[b5].data=bK.extend(e[b5].data,b4)}}b9=e[b5];if(!b7){if(!b9.data){b9.data={}}b9=b9.data}if(b8!==aH){b9[bK.camelCase(b4)]=b8}if(ca){cb=b9[b4];if(cb==null){cb=b9[bK.camelCase(b4)]}}else{cb=b9}return cb}function aa(b6,b4,b7){if(!bK.acceptData(b6)){return}var b9,b8,ca,cb=b6.nodeType,e=cb?bK.cache:b6,b5=cb?b6[bK.expando]:bK.expando;if(!e[b5]){return}if(b4){ca=b7?e[b5]:e[b5].data;if(ca){if(!bK.isArray(b4)){if(b4 in ca){b4=[b4]}else{b4=bK.camelCase(b4);if(b4 in ca){b4=[b4]}else{b4=b4.split(" ")}}}else{b4=b4.concat(bK.map(b4,bK.camelCase))}for(b9=0,b8=b4.length;b91,null,true)},removeData:function(e){return this.each(function(){bK.removeData(this,e)})}});function bz(b6,b5,b7){if(b7===aH&&b6.nodeType===1){var b4="data-"+b5.replace(aO,"-$1").toLowerCase();b7=b6.getAttribute(b4);if(typeof b7==="string"){try{b7=b7==="true"?true:b7==="false"?false:b7==="null"?null:+b7+""===b7?+b7:bx.test(b7)?bK.parseJSON(b7):b7}catch(b8){}bK.data(b6,b5,b7)}else{b7=aH}}return b7}function O(b4){var e;for(e in b4){if(e==="data"&&bK.isEmptyObject(b4[e])){continue}if(e!=="toJSON"){return false}}return true}bK.extend({queue:function(b5,b4,b6){var e;if(b5){b4=(b4||"fx")+"queue";e=bK._data(b5,b4);if(b6){if(!e||bK.isArray(b6)){e=bK._data(b5,b4,bK.makeArray(b6))}else{e.push(b6)}}return e||[]}},dequeue:function(b8,b7){b7=b7||"fx";var b4=bK.queue(b8,b7),b9=b4.length,b6=b4.shift(),e=bK._queueHooks(b8,b7),b5=function(){bK.dequeue(b8,b7)};if(b6==="inprogress"){b6=b4.shift();b9--}e.cur=b6;if(b6){if(b7==="fx"){b4.unshift("inprogress")}delete e.stop;b6.call(b8,b5,e)}if(!b9&&e){e.empty.fire()}},_queueHooks:function(b5,b4){var e=b4+"queueHooks";return bK._data(b5,e)||bK._data(b5,e,{empty:bK.Callbacks("once memory").add(function(){bK._removeData(b5,b4+"queue");bK._removeData(b5,e)})})}});bK.fn.extend({queue:function(e,b4){var b5=2;if(typeof e!=="string"){b4=e;e="fx";b5--}if(arguments.length1)},removeAttr:function(e){return this.each(function(){bK.removeAttr(this,e)})},prop:function(e,b4){return bK.access(this,bK.prop,e,b4,arguments.length>1)},removeProp:function(e){e=bK.propFix[e]||e;return this.each(function(){try{this[e]=aH;delete this[e]}catch(b4){}})},addClass:function(ca){var b4,e,cb,b7,b5,b6=0,b8=this.length,b9=typeof ca==="string"&&ca;if(bK.isFunction(ca)){return this.each(function(cc){bK(this).addClass(ca.call(this,cc,this.className))})}if(b9){b4=(ca||"").match(ad)||[];for(;b6=0){cb=cb.replace(" "+b7+" "," ")}}e.className=ca?bK.trim(cb):""}}}return this},toggleClass:function(b6,b4){var b5=typeof b6,e=typeof b4==="boolean";if(bK.isFunction(b6)){return this.each(function(b7){bK(this).toggleClass(b6.call(this,b7,this.className,b4),b4)})}return this.each(function(){if(b5==="string"){var b9,b8=0,b7=bK(this),ca=b4,cb=b6.match(ad)||[];while((b9=cb[b8++])){ca=e?ca:!b7.hasClass(b9);b7[ca?"addClass":"removeClass"](b9)}}else{if(b5===aD||b5==="boolean"){if(this.className){bK._data(this,"__className__",this.className)}this.className=this.className||b6===false?"":bK._data(this,"__className__")||""}}})},hasClass:function(e){var b6=" "+e+" ",b5=0,b4=this.length;for(;b5=0){return true}}return false},val:function(b6){var b4,e,b7,b5=this[0];if(!arguments.length){if(b5){e=bK.valHooks[b5.type]||bK.valHooks[b5.nodeName.toLowerCase()];if(e&&"get" in e&&(b4=e.get(b5,"value"))!==aH){return b4}b4=b5.value;return typeof b4==="string"?b4.replace(al,""):b4==null?"":b4}return}b7=bK.isFunction(b6);return this.each(function(b9){var ca,b8=bK(this);if(this.nodeType!==1){return}if(b7){ca=b6.call(this,b9,b8.val())}else{ca=b6}if(ca==null){ca=""}else{if(typeof ca==="number"){ca+=""}else{if(bK.isArray(ca)){ca=bK.map(ca,function(cb){return cb==null?"":cb+""})}}}e=bK.valHooks[this.type]||bK.valHooks[this.nodeName.toLowerCase()];if(!e||!("set" in e)||e.set(this,ca,"value")===aH){this.value=ca}})}});bK.extend({valHooks:{option:{get:function(e){var b4=e.attributes.value;return !b4||b4.specified?e.value:e.text}},select:{get:function(e){var b9,b5,cb=e.options,b7=e.selectedIndex,b6=e.type==="select-one"||b7<0,ca=b6?null:[],b8=b6?b7+1:cb.length,b4=b7<0?b8:b6?b7:0;for(;b4=0});if(!e.length){b4.selectedIndex=-1}return e}}},attr:function(b8,b6,b9){var e,b7,b5,b4=b8.nodeType;if(!b8||b4===3||b4===8||b4===2){return}if(typeof b8.getAttribute===aD){return bK.prop(b8,b6,b9)}b7=b4!==1||!bK.isXMLDoc(b8);if(b7){b6=b6.toLowerCase();e=bK.attrHooks[b6]||(M.test(b6)?b0:a9)}if(b9!==aH){if(b9===null){bK.removeAttr(b8,b6)}else{if(e&&b7&&"set" in e&&(b5=e.set(b8,b9,b6))!==aH){return b5}else{b8.setAttribute(b6,b9+"");return b9}}}else{if(e&&b7&&"get" in e&&(b5=e.get(b8,b6))!==null){return b5}else{if(typeof b8.getAttribute!==aD){b5=b8.getAttribute(b6)}return b5==null?aH:b5}}},removeAttr:function(b5,b7){var e,b6,b4=0,b8=b7&&b7.match(ad);if(b8&&b5.nodeType===1){while((e=b8[b4++])){b6=bK.propFix[e]||e;if(M.test(e)){if(!bQ&&ar.test(e)){b5[bK.camelCase("default-"+e)]=b5[b6]=false}else{b5[b6]=false}}else{bK.attr(b5,e,"")}b5.removeAttribute(bQ?e:b6)}}},attrHooks:{type:{set:function(e,b4){if(!bK.support.radioValue&&b4==="radio"&&bK.nodeName(e,"input")){var b5=e.value;e.setAttribute("type",b4);if(b5){e.value=b5}return b4}}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(b8,b6,b9){var b5,e,b7,b4=b8.nodeType;if(!b8||b4===3||b4===8||b4===2){return}b7=b4!==1||!bK.isXMLDoc(b8);if(b7){b6=bK.propFix[b6]||b6;e=bK.propHooks[b6]}if(b9!==aH){if(e&&"set" in e&&(b5=e.set(b8,b9,b6))!==aH){return b5}else{return(b8[b6]=b9)}}else{if(e&&"get" in e&&(b5=e.get(b8,b6))!==null){return b5}else{return b8[b6]}}},propHooks:{tabIndex:{get:function(b4){var e=b4.getAttributeNode("tabindex");return e&&e.specified?parseInt(e.value,10):aG.test(b4.nodeName)||E.test(b4.nodeName)&&b4.href?0:aH}}}});b0={get:function(b6,b4){var b7=bK.prop(b6,b4),e=typeof b7==="boolean"&&b6.getAttribute(b4),b5=typeof b7==="boolean"?bG&&bQ?e!=null:ar.test(b4)?b6[bK.camelCase("default-"+b4)]:!!e:b6.getAttributeNode(b4);return b5&&b5.value!==false?b4.toLowerCase():aH},set:function(b4,b5,e){if(b5===false){bK.removeAttr(b4,e)}else{if(bG&&bQ||!ar.test(e)){b4.setAttribute(!bQ&&bK.propFix[e]||e,e)}else{b4[bK.camelCase("default-"+e)]=b4[e]=true}}return e}};if(!bG||!bQ){bK.attrHooks.value={get:function(b5,b4){var e=b5.getAttributeNode(b4);return bK.nodeName(b5,"input")?b5.defaultValue:e&&e.specified?e.value:aH},set:function(b4,b5,e){if(bK.nodeName(b4,"input")){b4.defaultValue=b5}else{return a9&&a9.set(b4,b5,e)}}}}if(!bQ){a9=bK.valHooks.button={get:function(b5,b4){var e=b5.getAttributeNode(b4);return e&&(b4==="id"||b4==="name"||b4==="coords"?e.value!=="":e.specified)?e.value:aH},set:function(b5,b6,b4){var e=b5.getAttributeNode(b4);if(!e){b5.setAttributeNode((e=b5.ownerDocument.createAttribute(b4)))}e.value=b6+="";return b4==="value"||b6===b5.getAttribute(b4)?b6:aH}};bK.attrHooks.contenteditable={get:a9.get,set:function(b4,b5,e){a9.set(b4,b5===""?false:b5,e)}};bK.each(["width","height"],function(b4,e){bK.attrHooks[e]=bK.extend(bK.attrHooks[e],{set:function(b5,b6){if(b6===""){b5.setAttribute(e,"auto");return b6}}})})}if(!bK.support.hrefNormalized){bK.each(["href","src","width","height"],function(b4,e){bK.attrHooks[e]=bK.extend(bK.attrHooks[e],{get:function(b6){var b5=b6.getAttribute(e,2);return b5==null?aH:b5}})});bK.each(["href","src"],function(b4,e){bK.propHooks[e]={get:function(b5){return b5.getAttribute(e,4)}}})}if(!bK.support.style){bK.attrHooks.style={get:function(e){return e.style.cssText||aH},set:function(e,b4){return(e.style.cssText=b4+"")}}}if(!bK.support.optSelected){bK.propHooks.selected=bK.extend(bK.propHooks.selected,{get:function(b4){var e=b4.parentNode;if(e){e.selectedIndex;if(e.parentNode){e.parentNode.selectedIndex}}return null}})}if(!bK.support.enctype){bK.propFix.enctype="encoding"}if(!bK.support.checkOn){bK.each(["radio","checkbox"],function(){bK.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}})}bK.each(["radio","checkbox"],function(){bK.valHooks[this]=bK.extend(bK.valHooks[this],{set:function(e,b4){if(bK.isArray(b4)){return(e.checked=bK.inArray(bK(e).val(),b4)>=0)}}})});var bI=/^(?:input|select|textarea)$/i,a4=/^key/,bO=/^(?:mouse|contextmenu)|click/,bC=/^(?:focusinfocus|focusoutblur)$/,bv=/^([^.]*)(?:\.(.+)|)$/;function S(){return true}function Y(){return false}bK.event={global:{},add:function(b7,cc,ch,b9,b8){var ca,ci,cj,b5,ce,cb,cg,b6,cf,e,b4,cd=bK._data(b7);if(!cd){return}if(ch.handler){b5=ch;ch=b5.handler;b8=b5.selector}if(!ch.guid){ch.guid=bK.guid++}if(!(ci=cd.events)){ci=cd.events={}}if(!(cb=cd.handle)){cb=cd.handle=function(ck){return typeof bK!==aD&&(!ck||bK.event.triggered!==ck.type)?bK.event.dispatch.apply(cb.elem,arguments):aH};cb.elem=b7}cc=(cc||"").match(ad)||[""];cj=cc.length;while(cj--){ca=bv.exec(cc[cj])||[];cf=b4=ca[1];e=(ca[2]||"").split(".").sort();ce=bK.event.special[cf]||{};cf=(b8?ce.delegateType:ce.bindType)||cf;ce=bK.event.special[cf]||{};cg=bK.extend({type:cf,origType:b4,data:b9,handler:ch,guid:ch.guid,selector:b8,needsContext:b8&&bK.expr.match.needsContext.test(b8),namespace:e.join(".")},b5);if(!(b6=ci[cf])){b6=ci[cf]=[];b6.delegateCount=0;if(!ce.setup||ce.setup.call(b7,b9,e,cb)===false){if(b7.addEventListener){b7.addEventListener(cf,cb,false)}else{if(b7.attachEvent){b7.attachEvent("on"+cf,cb)}}}}if(ce.add){ce.add.call(b7,cg);if(!cg.handler.guid){cg.handler.guid=ch.guid}}if(b8){b6.splice(b6.delegateCount++,0,cg)}else{b6.push(cg)}bK.event.global[cf]=true}b7=null},remove:function(b6,cc,cj,b7,cb){var b9,cg,ca,b8,ci,ch,ce,b5,cf,e,b4,cd=bK.hasData(b6)&&bK._data(b6);if(!cd||!(ch=cd.events)){return}cc=(cc||"").match(ad)||[""];ci=cc.length;while(ci--){ca=bv.exec(cc[ci])||[];cf=b4=ca[1];e=(ca[2]||"").split(".").sort();if(!cf){for(cf in ch){bK.event.remove(b6,cf+cc[ci],cj,b7,true)}continue}ce=bK.event.special[cf]||{};cf=(b7?ce.delegateType:ce.bindType)||cf;b5=ch[cf]||[];ca=ca[2]&&new RegExp("(^|\\.)"+e.join("\\.(?:.*\\.|)")+"(\\.|$)");b8=b9=b5.length;while(b9--){cg=b5[b9];if((cb||b4===cg.origType)&&(!cj||cj.guid===cg.guid)&&(!ca||ca.test(cg.namespace))&&(!b7||b7===cg.selector||b7==="**"&&cg.selector)){b5.splice(b9,1);if(cg.selector){b5.delegateCount--}if(ce.remove){ce.remove.call(b6,cg)}}}if(b8&&!b5.length){if(!ce.teardown||ce.teardown.call(b6,e,cd.handle)===false){bK.removeEvent(b6,cf,cd.handle)}delete ch[cf]}}if(bK.isEmptyObject(ch)){delete cd.handle;bK._removeData(b6,"events")}},trigger:function(b4,cb,b7,ci){var cc,b6,cg,ch,ce,ca,b9,b8=[b7||l],cf=W.call(b4,"type")?b4.type:b4,b5=W.call(b4,"namespace")?b4.namespace.split("."):[];cg=ca=b7=b7||l;if(b7.nodeType===3||b7.nodeType===8){return}if(bC.test(cf+bK.event.triggered)){return}if(cf.indexOf(".")>=0){b5=cf.split(".");cf=b5.shift();b5.sort()}b6=cf.indexOf(":")<0&&"on"+cf;b4=b4[bK.expando]?b4:new bK.Event(cf,typeof b4==="object"&&b4);b4.isTrigger=true;b4.namespace=b5.join(".");b4.namespace_re=b4.namespace?new RegExp("(^|\\.)"+b5.join("\\.(?:.*\\.|)")+"(\\.|$)"):null;b4.result=aH;if(!b4.target){b4.target=b7}cb=cb==null?[b4]:bK.makeArray(cb,[b4]);ce=bK.event.special[cf]||{};if(!ci&&ce.trigger&&ce.trigger.apply(b7,cb)===false){return}if(!ci&&!ce.noBubble&&!bK.isWindow(b7)){ch=ce.delegateType||cf;if(!bC.test(ch+cf)){cg=cg.parentNode}for(;cg;cg=cg.parentNode){b8.push(cg);ca=cg}if(ca===(b7.ownerDocument||l)){b8.push(ca.defaultView||ca.parentWindow||a3)}}b9=0;while((cg=b8[b9++])&&!b4.isPropagationStopped()){b4.type=b9>1?ch:ce.bindType||cf;cc=(bK._data(cg,"events")||{})[b4.type]&&bK._data(cg,"handle");if(cc){cc.apply(cg,cb)}cc=b6&&cg[b6];if(cc&&bK.acceptData(cg)&&cc.apply&&cc.apply(cg,cb)===false){b4.preventDefault()}}b4.type=cf;if(!ci&&!b4.isDefaultPrevented()){if((!ce._default||ce._default.apply(b7.ownerDocument,cb)===false)&&!(cf==="click"&&bK.nodeName(b7,"a"))&&bK.acceptData(b7)){if(b6&&b7[cf]&&!bK.isWindow(b7)){ca=b7[b6];if(ca){b7[b6]=null}bK.event.triggered=cf;try{b7[cf]()}catch(cd){}bK.event.triggered=aH;if(ca){b7[b6]=ca}}}}return b4.result},dispatch:function(e){e=bK.event.fix(e);var b7,b8,cc,b4,b6,cb=[],ca=a5.call(arguments),b5=(bK._data(this,"events")||{})[e.type]||[],b9=bK.event.special[e.type]||{};ca[0]=e;e.delegateTarget=this;if(b9.preDispatch&&b9.preDispatch.call(this,e)===false){return}cb=bK.event.handlers.call(this,e,b5);b7=0;while((b4=cb[b7++])&&!e.isPropagationStopped()){e.currentTarget=b4.elem;b6=0;while((cc=b4.handlers[b6++])&&!e.isImmediatePropagationStopped()){if(!e.namespace_re||e.namespace_re.test(cc.namespace)){e.handleObj=cc;e.data=cc.data;b8=((bK.event.special[cc.origType]||{}).handle||cc.handler).apply(b4.elem,ca);if(b8!==aH){if((e.result=b8)===false){e.preventDefault();e.stopPropagation()}}}}}if(b9.postDispatch){b9.postDispatch.call(this,e)}return e.result},handlers:function(e,b5){var b4,ca,b8,b7,b9=[],b6=b5.delegateCount,cb=e.target;if(b6&&cb.nodeType&&(!e.button||e.type!=="click")){for(;cb!=this;cb=cb.parentNode||this){if(cb.nodeType===1&&(cb.disabled!==true||e.type!=="click")){b8=[];for(b7=0;b7=0:bK.find(b4,this,null,[cb]).length}if(b8[b4]){b8.push(ca)}}if(b8.length){b9.push({elem:cb,handlers:b8})}}}}if(b6+~])"+cq+"*"),cQ=new RegExp(cl),cR=new RegExp("^"+cL+"$"),cZ={ID:new RegExp("^#("+b4+")"),CLASS:new RegExp("^\\.("+b4+")"),NAME:new RegExp("^\\[name=['\"]?("+b4+")['\"]?\\]"),TAG:new RegExp("^("+b4.replace("w","w*")+")"),ATTR:new RegExp("^"+c3),PSEUDO:new RegExp("^"+cl),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+cq+"*(even|odd|(([+-]|)(\\d*)n|)"+cq+"*(?:([+-]|)"+cq+"*(\\d+)|))"+cq+"*\\)|)","i"),needsContext:new RegExp("^"+cq+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+cq+"*((?:-\\d)?\\d*)"+cq+"*\\)|)(?=[^-]|$)","i")},cX=/[\x20\t\r\n\f]*[+~]/,cN=/^[^{]+\{\s*\[native code/,cP=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,b9=/^(?:input|select|textarea|button)$/i,cm=/^h\d$/i,cM=/'|\\/g,cu=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,ct=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,c2=function(e,dj){var di="0x"+dj-65536;return di!==di?dj:di<0?String.fromCharCode(di+65536):String.fromCharCode(di>>10|55296,di&1023|56320)};try{cn.call(cJ.documentElement.childNodes,0)[0].nodeType}catch(cD){cn=function(di){var dj,e=[];while((dj=this[di++])){e.push(dj)}return e}}function cF(e){return cN.test(e+"")}function cA(){var e,di=[];return(e=function(dj,dk){if(di.push(dj+=" ")>co.cacheLength){delete e[di.shift()]}return(e[dj]=dk)})}function ck(e){e[c6]=true;return e}function cd(di){var dk=cC.createElement("div");try{return di(dk)}catch(dj){return false}finally{dk=null}}function cw(dq,di,du,dw){var dv,dm,dn,ds,dt,dl,dk,e,dj,dr;if((di?di.ownerDocument||di:cJ)!==cC){cW(di)}di=di||cC;du=du||[];if(!dq||typeof dq!=="string"){return du}if((ds=di.nodeType)!==1&&ds!==9){return[]}if(!ce&&!dw){if((dv=cP.exec(dq))){if((dn=dv[1])){if(ds===9){dm=di.getElementById(dn);if(dm&&dm.parentNode){if(dm.id===dn){du.push(dm);return du}}else{return du}}else{if(di.ownerDocument&&(dm=di.ownerDocument.getElementById(dn))&&cG(di,dm)&&dm.id===dn){du.push(dm);return du}}}else{if(dv[2]){b5.apply(du,cn.call(di.getElementsByTagName(dq),0));return du}else{if((dn=dv[3])&&de.getByClassName&&di.getElementsByClassName){b5.apply(du,cn.call(di.getElementsByClassName(dn),0));return du}}}}if(de.qsa&&!c0.test(dq)){dk=true;e=c6;dj=di;dr=ds===9&&dq;if(ds===1&&di.nodeName.toLowerCase()!=="object"){dl=cg(dq);if((dk=di.getAttribute("id"))){e=dk.replace(cM,"\\$&")}else{di.setAttribute("id",e)}e="[id='"+e+"'] ";dt=dl.length;while(dt--){dl[dt]=e+ch(dl[dt])}dj=cX.test(dq)&&di.parentNode||di;dr=dl.join(",")}if(dr){try{b5.apply(du,cn.call(dj.querySelectorAll(dr),0));return du}catch(dp){}finally{if(!dk){di.removeAttribute("id")}}}}}return dd(dq.replace(cs,"$1"),di,du,dw)}cK=cw.isXML=function(e){var di=e&&(e.ownerDocument||e).documentElement;return di?di.nodeName!=="HTML":false};cW=cw.setDocument=function(e){var di=e?e.ownerDocument||e:cJ;if(di===cC||di.nodeType!==9||!di.documentElement){return cC}cC=di;cp=di.documentElement;ce=cK(di);de.tagNameNoComments=cd(function(dj){dj.appendChild(di.createComment(""));return !dj.getElementsByTagName("*").length});de.attributes=cd(function(dk){dk.innerHTML="";var dj=typeof dk.lastChild.getAttribute("multiple");return dj!=="boolean"&&dj!=="string"});de.getByClassName=cd(function(dj){dj.innerHTML="";if(!dj.getElementsByClassName||!dj.getElementsByClassName("e").length){return false}dj.lastChild.className="e";return dj.getElementsByClassName("e").length===2});de.getByName=cd(function(dk){dk.id=c6+0;dk.innerHTML="
";cp.insertBefore(dk,cp.firstChild);var dj=di.getElementsByName&&di.getElementsByName(c6).length===2+di.getElementsByName(c6+0).length;de.getIdNotName=!di.getElementById(c6);cp.removeChild(dk);return dj});co.attrHandle=cd(function(dj){dj.innerHTML="";return dj.firstChild&&typeof dj.firstChild.getAttribute!==da&&dj.firstChild.getAttribute("href")==="#"})?{}:{href:function(dj){return dj.getAttribute("href",2)},type:function(dj){return dj.getAttribute("type")}};if(de.getIdNotName){co.find.ID=function(dl,dk){if(typeof dk.getElementById!==da&&!ce){var dj=dk.getElementById(dl);return dj&&dj.parentNode?[dj]:[]}};co.filter.ID=function(dk){var dj=dk.replace(ct,c2);return function(dl){return dl.getAttribute("id")===dj}}}else{co.find.ID=function(dl,dk){if(typeof dk.getElementById!==da&&!ce){var dj=dk.getElementById(dl);return dj?dj.id===dl||typeof dj.getAttributeNode!==da&&dj.getAttributeNode("id").value===dl?[dj]:ci:[]}};co.filter.ID=function(dk){var dj=dk.replace(ct,c2);return function(dm){var dl=typeof dm.getAttributeNode!==da&&dm.getAttributeNode("id");return dl&&dl.value===dj}}}co.find.TAG=de.tagNameNoComments?function(dj,dk){if(typeof dk.getElementsByTagName!==da){return dk.getElementsByTagName(dj)}}:function(dj,dn){var dp,dm=[],dl=0,dk=dn.getElementsByTagName(dj);if(dj==="*"){while((dp=dk[dl++])){if(dp.nodeType===1){dm.push(dp)}}return dm}return dk};co.find.NAME=de.getByName&&function(dj,dk){if(typeof dk.getElementsByName!==da){return dk.getElementsByName(name)}};co.find.CLASS=de.getByClassName&&function(dk,dj){if(typeof dj.getElementsByClassName!==da&&!ce){return dj.getElementsByClassName(dk)}};dc=[];c0=[":focus"];if((de.qsa=cF(di.querySelectorAll))){cd(function(dj){dj.innerHTML="";if(!dj.querySelectorAll("[selected]").length){c0.push("\\["+cq+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)")}if(!dj.querySelectorAll(":checked").length){c0.push(":checked")}});cd(function(dj){dj.innerHTML="";if(dj.querySelectorAll("[i^='']").length){c0.push("[*^$]="+cq+"*(?:\"\"|'')")}if(!dj.querySelectorAll(":enabled").length){c0.push(":enabled",":disabled")}dj.querySelectorAll("*,:x");c0.push(",.*:")})}if((de.matchesSelector=cF((cb=cp.matchesSelector||cp.mozMatchesSelector||cp.webkitMatchesSelector||cp.oMatchesSelector||cp.msMatchesSelector)))){cd(function(dj){de.disconnectedMatch=cb.call(dj,"div");cb.call(dj,"[s!='']:x");dc.push("!=",cl)})}c0=new RegExp(c0.join("|"));dc=new RegExp(dc.join("|"));cG=cF(cp.contains)||cp.compareDocumentPosition?function(dk,dj){var dm=dk.nodeType===9?dk.documentElement:dk,dl=dj&&dj.parentNode;return dk===dl||!!(dl&&dl.nodeType===1&&(dm.contains?dm.contains(dl):dk.compareDocumentPosition&&dk.compareDocumentPosition(dl)&16))}:function(dk,dj){if(dj){while((dj=dj.parentNode)){if(dj===dk){return true}}}return false};cE=cp.compareDocumentPosition?function(dk,dj){var dl;if(dk===dj){cU=true;return 0}if((dl=dj.compareDocumentPosition&&dk.compareDocumentPosition&&dk.compareDocumentPosition(dj))){if(dl&1||dk.parentNode&&dk.parentNode.nodeType===11){if(dk===di||cG(cJ,dk)){return -1}if(dj===di||cG(cJ,dj)){return 1}return 0}return dl&4?-1:1}return dk.compareDocumentPosition?-1:1}:function(dk,dj){var dr,dn=0,dq=dk.parentNode,dm=dj.parentNode,dl=[dk],dp=[dj];if(dk===dj){cU=true;return 0}else{if(!dq||!dm){return dk===di?-1:dj===di?1:dq?-1:dm?1:0}else{if(dq===dm){return b7(dk,dj)}}}dr=dk;while((dr=dr.parentNode)){dl.unshift(dr)}dr=dj;while((dr=dr.parentNode)){dp.unshift(dr)}while(dl[dn]===dp[dn]){dn++}return dn?b7(dl[dn],dp[dn]):dl[dn]===cJ?-1:dp[dn]===cJ?1:0};cU=false;[0,0].sort(cE);de.detectDuplicates=cU;return cC};cw.matches=function(di,e){return cw(di,null,null,e)};cw.matchesSelector=function(dj,dl){if((dj.ownerDocument||dj)!==cC){cW(dj)}dl=dl.replace(cu,"='$1']");if(de.matchesSelector&&!ce&&(!dc||!dc.test(dl))&&!c0.test(dl)){try{var di=cb.call(dj,dl);if(di||de.disconnectedMatch||dj.document&&dj.document.nodeType!==11){return di}}catch(dk){}}return cw(dl,cC,null,[dj]).length>0};cw.contains=function(e,di){if((e.ownerDocument||e)!==cC){cW(e)}return cG(e,di)};cw.attr=function(di,e){var dj;if((di.ownerDocument||di)!==cC){cW(di)}if(!ce){e=e.toLowerCase()}if((dj=co.attrHandle[e])){return dj(di)}if(ce||de.attributes){return di.getAttribute(e)}return((dj=di.getAttributeNode(e))||di.getAttribute(e))&&di[e]===true?e:dj&&dj.specified?dj.value:null};cw.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)};cw.uniqueSort=function(dj){var dk,dl=[],di=1,e=0;cU=!de.detectDuplicates;dj.sort(cE);if(cU){for(;(dk=dj[di]);di++){if(dk===dj[di-1]){e=dl.push(di)}}while(e--){dj.splice(dl[e],1)}}return dj};function b7(di,e){var dk=e&&di,dj=dk&&(~e.sourceIndex||cO)-(~di.sourceIndex||cO);if(dj){return dj}if(dk){while((dk=dk.nextSibling)){if(dk===e){return -1}}}return di?1:-1}function cx(e){return function(dj){var di=dj.nodeName.toLowerCase();return di==="input"&&dj.type===e}}function b8(e){return function(dj){var di=dj.nodeName.toLowerCase();return(di==="input"||di==="button")&&dj.type===e}}function c4(e){return ck(function(di){di=+di;return ck(function(dj,dn){var dl,dk=e([],dj.length,di),dm=dk.length;while(dm--){if(dj[(dl=dk[dm])]){dj[dl]=!(dn[dl]=dj[dl])}}})})}cI=cw.getText=function(dl){var dk,di="",dj=0,e=dl.nodeType;if(!e){for(;(dk=dl[dj]);dj++){di+=cI(dk)}}else{if(e===1||e===9||e===11){if(typeof dl.textContent==="string"){return dl.textContent}else{for(dl=dl.firstChild;dl;dl=dl.nextSibling){di+=cI(dl)}}}else{if(e===3||e===4){return dl.nodeValue}}}return di};co=cw.selectors={cacheLength:50,createPseudo:ck,match:cZ,find:{},relative:{">":{dir:"parentNode",first:true}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:true},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){e[1]=e[1].replace(ct,c2);e[3]=(e[4]||e[5]||"").replace(ct,c2);if(e[2]==="~="){e[3]=" "+e[3]+" "}return e.slice(0,4)},CHILD:function(e){e[1]=e[1].toLowerCase();if(e[1].slice(0,3)==="nth"){if(!e[3]){cw.error(e[0])}e[4]=+(e[4]?e[5]+(e[6]||1):2*(e[3]==="even"||e[3]==="odd"));e[5]=+((e[7]+e[8])||e[3]==="odd")}else{if(e[3]){cw.error(e[0])}}return e},PSEUDO:function(di){var e,dj=!di[5]&&di[2];if(cZ.CHILD.test(di[0])){return null}if(di[4]){di[2]=di[4]}else{if(dj&&cQ.test(dj)&&(e=cg(dj,true))&&(e=dj.indexOf(")",dj.length-e)-dj.length)){di[0]=di[0].slice(0,e);di[2]=dj.slice(0,e)}}return di.slice(0,3)}},filter:{TAG:function(e){if(e==="*"){return function(){return true}}e=e.replace(ct,c2).toLowerCase();return function(di){return di.nodeName&&di.nodeName.toLowerCase()===e}},CLASS:function(e){var di=b6[e+" "];return di||(di=new RegExp("(^|"+cq+")"+e+"("+cq+"|$)"))&&b6(e,function(dj){return di.test(dj.className||(typeof dj.getAttribute!==da&&dj.getAttribute("class"))||"")})},ATTR:function(dj,di,e){return function(dl){var dk=cw.attr(dl,dj);if(dk==null){return di==="!="}if(!di){return true}dk+="";return di==="="?dk===e:di==="!="?dk!==e:di==="^="?e&&dk.indexOf(e)===0:di==="*="?e&&dk.indexOf(e)>-1:di==="$="?e&&dk.slice(-e.length)===e:di==="~="?(" "+dk+" ").indexOf(e)>-1:di==="|="?dk===e||dk.slice(0,e.length+1)===e+"-":false}},CHILD:function(di,dl,dk,dm,dj){var dp=di.slice(0,3)!=="nth",e=di.slice(-4)!=="last",dn=dl==="of-type";return dm===1&&dj===0?function(dq){return !!dq.parentNode}:function(dw,du,dz){var dq,dC,dx,dB,dy,dt,dv=dp!==e?"nextSibling":"previousSibling",dA=dw.parentNode,ds=dn&&dw.nodeName.toLowerCase(),dr=!dz&&!dn;if(dA){if(dp){while(dv){dx=dw;while((dx=dx[dv])){if(dn?dx.nodeName.toLowerCase()===ds:dx.nodeType===1){return false}}dt=dv=di==="only"&&!dt&&"nextSibling"}return true}dt=[e?dA.firstChild:dA.lastChild];if(e&&dr){dC=dA[c6]||(dA[c6]={});dq=dC[di]||[];dy=dq[0]===df&&dq[1];dB=dq[0]===df&&dq[2];dx=dy&&dA.childNodes[dy];while((dx=++dy&&dx&&dx[dv]||(dB=dy=0)||dt.pop())){if(dx.nodeType===1&&++dB&&dx===dw){dC[di]=[df,dy,dB];break}}}else{if(dr&&(dq=(dw[c6]||(dw[c6]={}))[di])&&dq[0]===df){dB=dq[1]}else{while((dx=++dy&&dx&&dx[dv]||(dB=dy=0)||dt.pop())){if((dn?dx.nodeName.toLowerCase()===ds:dx.nodeType===1)&&++dB){if(dr){(dx[c6]||(dx[c6]={}))[di]=[df,dB]}if(dx===dw){break}}}}}dB-=dj;return dB===dm||(dB%dm===0&&dB/dm>=0)}}},PSEUDO:function(dk,dj){var e,di=co.pseudos[dk]||co.setFilters[dk.toLowerCase()]||cw.error("unsupported pseudo: "+dk);if(di[c6]){return di(dj)}if(di.length>1){e=[dk,dk,"",dj];return co.setFilters.hasOwnProperty(dk.toLowerCase())?ck(function(dn,dq){var dm,dl=di(dn,dj),dp=dl.length;while(dp--){dm=ca.call(dn,dl[dp]);dn[dm]=!(dq[dm]=dl[dp])}}):function(dl){return di(dl,0,e)}}return di}},pseudos:{not:ck(function(e){var di=[],dj=[],dk=cT(e.replace(cs,"$1"));return dk[c6]?ck(function(dm,ds,dq,dn){var dr,dl=dk(dm,null,dn,[]),dp=dm.length;while(dp--){if((dr=dl[dp])){dm[dp]=!(ds[dp]=dr)}}}):function(dn,dm,dl){di[0]=dn;dk(di,null,dl,dj);return !dj.pop()}}),has:ck(function(e){return function(di){return cw(e,di).length>0}}),contains:ck(function(e){return function(di){return(di.textContent||di.innerText||cI(di)).indexOf(e)>-1}}),lang:ck(function(e){if(!cR.test(e||"")){cw.error("unsupported lang: "+e)}e=e.replace(ct,c2).toLowerCase();return function(dj){var di;do{if((di=ce?dj.getAttribute("xml:lang")||dj.getAttribute("lang"):dj.lang)){di=di.toLowerCase();return di===e||di.indexOf(e+"-")===0}}while((dj=dj.parentNode)&&dj.nodeType===1);return false}}),target:function(e){var di=db.location&&db.location.hash;return di&&di.slice(1)===e.id},root:function(e){return e===cp},focus:function(e){return e===cC.activeElement&&(!cC.hasFocus||cC.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===false},disabled:function(e){return e.disabled===true},checked:function(e){var di=e.nodeName.toLowerCase();return(di==="input"&&!!e.checked)||(di==="option"&&!!e.selected)},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling){if(e.nodeName>"@"||e.nodeType===3||e.nodeType===4){return false}}return true},parent:function(e){return !co.pseudos.empty(e)},header:function(e){return cm.test(e.nodeName)},input:function(e){return b9.test(e.nodeName)},button:function(di){var e=di.nodeName.toLowerCase();return e==="input"&&di.type==="button"||e==="button"},text:function(di){var e;return di.nodeName.toLowerCase()==="input"&&di.type==="text"&&((e=di.getAttribute("type"))==null||e.toLowerCase()===di.type)},first:c4(function(){return[0]}),last:c4(function(e,di){return[di-1]}),eq:c4(function(e,dj,di){return[di<0?di+dj:di]}),even:c4(function(e,dj){var di=0;for(;di=0;){e.push(di)}return e}),gt:c4(function(e,dk,dj){var di=dj<0?dj+dk:dj;for(;++di1?function(dl,dk,di){var dj=e.length;while(dj--){if(!e[dj](dl,dk,di)){return false}}return true}:e[0]}function cY(e,di,dj,dk,dn){var dl,dr=[],dm=0,dp=e.length,dq=di!=null;for(;dm-1){dy[dA]=!(dv[dA]=ds)}}}}else{du=cY(du===dv?du.splice(dp,du.length):du);if(dm){dm(null,dv,du,dx)}else{b5.apply(dv,du)}}})}function c7(dn){var di,dl,dj,dm=dn.length,dr=co.relative[dn[0].type],ds=dr||co.relative[" "],dk=dr?1:0,dp=cr(function(dt){return dt===di},ds,true),dq=cr(function(dt){return ca.call(di,dt)>-1},ds,true),e=[function(dv,du,dt){return(!dr&&(dt||du!==dh))||((di=du).nodeType?dp(dv,du,dt):dq(dv,du,dt))}];for(;dk1&&dg(e),dk>1&&ch(dn.slice(0,dk-1)).replace(cs,"$1"),dl,dk0,dl=dk.length>0,di=function(dx,dr,dw,dv,dD){var ds,dt,dy,dC=[],dB=0,du="0",dn=dx&&[],dz=dD!=null,dA=dh,dq=dx||dl&&co.find.TAG("*",dD&&dr.parentNode||dr),dp=(df+=dA==null?1:Math.random()||0.1);if(dz){dh=dr!==cC&&dr;cc=dm}for(;(ds=dq[du])!=null;du++){if(dl&&ds){dt=0;while((dy=dk[dt++])){if(dy(ds,dr,dw)){dv.push(ds);break}}if(dz){df=dp;cc=++dm}}if(e){if((ds=!dy&&ds)){dB--}if(dx){dn.push(ds)}}}dB+=du;if(e&&du!==dB){dt=0;while((dy=dj[dt++])){dy(dn,dC,dr,dw)}if(dx){if(dB>0){while(du--){if(!(dn[du]||dC[du])){dC[du]=c9.call(dv)}}}dC=cY(dC)}b5.apply(dv,dC);if(dz&&!dx&&dC.length>0&&(dB+dj.length)>1){cw.uniqueSort(dv)}}if(dz){df=dp;dh=dA}return dn};return e?ck(di):di}cT=cw.compile=function(e,dm){var dj,di=[],dl=[],dk=cH[e+" "];if(!dk){if(!dm){dm=cg(e)}dj=dm.length;while(dj--){dk=c7(dm[dj]);if(dk[c6]){di.push(dk)}else{dl.push(dk)}}dk=cH(e,cV(dl,di))}return dk};function cz(di,dl,dk){var dj=0,e=dl.length;for(;dj2&&(di=dq[0]).type==="ID"&&e.nodeType===9&&!ce&&co.relative[dq[1].type]){e=co.find.ID(di.matches[0].replace(ct,c2),e)[0];if(!e){return dk}dj=dj.slice(dq.shift().value.length)}dl=cZ.needsContext.test(dj)?0:dq.length;while(dl--){di=dq[dl];if(co.relative[(dr=di.type)]){break}if((dp=co.find[dr])){if((dn=dp(di.matches[0].replace(ct,c2),cX.test(dq[0].type)&&e.parentNode||e))){dq.splice(dl,1);dj=dn.length&&ch(dq);if(!dj){b5.apply(dk,cn.call(dn,0));return dk}break}}}}}cT(dj,dm)(dn,e,ce,dk,cX.test(dj));return dk}co.pseudos.nth=co.pseudos.eq;function cS(){}co.filters=cS.prototype=co.pseudos;co.setFilters=new cS();cW();cw.attr=bK.attr;bK.find=cw;bK.expr=cw.selectors;bK.expr[":"]=bK.expr.pseudos;bK.unique=cw.uniqueSort;bK.text=cw.getText;bK.isXMLDoc=cw.isXML;bK.contains=cw.contains})(a3);var ak=/Until$/,bu=/^(?:parents|prev(?:Until|All))/,ao=/^.[^:#\[\.,]*$/,z=bK.expr.match.needsContext,by={children:true,contents:true,next:true,prev:true};bK.fn.extend({find:function(b4){var b7,b6,b5,e=this.length;if(typeof b4!=="string"){b5=this;return this.pushStack(bK(b4).filter(function(){for(b7=0;b71?bK.unique(b6):b6);b6.selector=(this.selector?this.selector+" ":"")+b4;return b6},has:function(b6){var b5,b4=bK(b6,this),e=b4.length;return this.filter(function(){for(b5=0;b5=0:bK.filter(e,this).length>0:this.filter(e).length>0)},closest:function(b7,b6){var b8,b5=0,e=this.length,b4=[],b9=z.test(b7)||typeof b7!=="string"?bK(b7,b6||this.context):0;for(;b5-1:bK.find.matchesSelector(b8,b7)){b4.push(b8);break}b8=b8.parentNode}}return this.pushStack(b4.length>1?bK.unique(b4):b4)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.first().prevAll().length:-1}if(typeof e==="string"){return bK.inArray(this[0],bK(e))}return bK.inArray(e.jquery?e[0]:e,this)},add:function(e,b4){var b6=typeof e==="string"?bK(e,b4):bK.makeArray(e&&e.nodeType?[e]:e),b5=bK.merge(this.get(),b6);return this.pushStack(bK.unique(b5))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}});bK.fn.andSelf=bK.fn.addBack;function aY(b4,e){do{b4=b4[e]}while(b4&&b4.nodeType!==1);return b4}bK.each({parent:function(b4){var e=b4.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return bK.dir(e,"parentNode")},parentsUntil:function(b4,e,b5){return bK.dir(b4,"parentNode",b5)},next:function(e){return aY(e,"nextSibling")},prev:function(e){return aY(e,"previousSibling")},nextAll:function(e){return bK.dir(e,"nextSibling")},prevAll:function(e){return bK.dir(e,"previousSibling")},nextUntil:function(b4,e,b5){return bK.dir(b4,"nextSibling",b5)},prevUntil:function(b4,e,b5){return bK.dir(b4,"previousSibling",b5)},siblings:function(e){return bK.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return bK.sibling(e.firstChild)},contents:function(e){return bK.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:bK.merge([],e.childNodes)}},function(e,b4){bK.fn[e]=function(b7,b5){var b6=bK.map(this,b4,b7);if(!ak.test(e)){b5=b7}if(b5&&typeof b5==="string"){b6=bK.filter(b5,b6)}b6=this.length>1&&!by[e]?bK.unique(b6):b6;if(this.length>1&&bu.test(e)){b6=b6.reverse()}return this.pushStack(b6)}});bK.extend({filter:function(b5,e,b4){if(b4){b5=":not("+b5+")"}return e.length===1?bK.find.matchesSelector(e[0],b5)?[e[0]]:[]:bK.find.matches(b5,e)},dir:function(b5,b4,b7){var e=[],b6=b5[b4];while(b6&&b6.nodeType!==9&&(b7===aH||b6.nodeType!==1||!bK(b6).is(b7))){if(b6.nodeType===1){e.push(b6)}b6=b6[b4]}return e},sibling:function(b5,b4){var e=[];for(;b5;b5=b5.nextSibling){if(b5.nodeType===1&&b5!==b4){e.push(b5)}}return e}});function aP(b6,b5,e){b5=b5||0;if(bK.isFunction(b5)){return bK.grep(b6,function(b8,b7){var b9=!!b5.call(b8,b7,b8);return b9===e})}else{if(b5.nodeType){return bK.grep(b6,function(b7){return(b7===b5)===e})}else{if(typeof b5==="string"){var b4=bK.grep(b6,function(b7){return b7.nodeType===1});if(ao.test(b5)){return bK.filter(b5,b4,!e)}else{b5=bK.filter(b5,b4)}}}}return bK.grep(b6,function(b7){return(bK.inArray(b7,b5)>=0)===e})}function B(e){var b5=d.split("|"),b4=e.createDocumentFragment();if(b4.createElement){while(b5.length){b4.createElement(b5.pop())}}return b4}var d="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",aB=/ jQuery\d+="(?:null|\d+)"/g,K=new RegExp("<(?:"+d+")[\\s/>]","i"),b3=/^\s+/,aE=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,m=/<([\w:]+)/,bY=/\s*$/g,U={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:bK.support.htmlSerialize?[0,"",""]:[1,"X
","
"]},aT=B(l),j=aT.appendChild(l.createElement("div"));U.optgroup=U.option;U.tbody=U.tfoot=U.colgroup=U.caption=U.thead;U.th=U.td;bK.fn.extend({text:function(e){return bK.access(this,function(b4){return b4===aH?bK.text(this):this.empty().append((this[0]&&this[0].ownerDocument||l).createTextNode(b4))},null,e,arguments.length)},wrapAll:function(e){if(bK.isFunction(e)){return this.each(function(b5){bK(this).wrapAll(e.call(this,b5))})}if(this[0]){var b4=bK(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){b4.insertBefore(this[0])}b4.map(function(){var b5=this;while(b5.firstChild&&b5.firstChild.nodeType===1){b5=b5.firstChild}return b5}).append(this)}return this},wrapInner:function(e){if(bK.isFunction(e)){return this.each(function(b4){bK(this).wrapInner(e.call(this,b4))})}return this.each(function(){var b4=bK(this),b5=b4.contents();if(b5.length){b5.wrapAll(e)}else{b4.append(e)}})},wrap:function(e){var b4=bK.isFunction(e);return this.each(function(b5){bK(this).wrapAll(b4?e.call(this,b5):e)})},unwrap:function(){return this.parent().each(function(){if(!bK.nodeName(this,"body")){bK(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){this.insertBefore(e,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(e){if(this.parentNode){this.parentNode.insertBefore(e,this)}})},after:function(){return this.domManip(arguments,false,function(e){if(this.parentNode){this.parentNode.insertBefore(e,this.nextSibling)}})},remove:function(e,b6){var b5,b4=0;for(;(b5=this[b4])!=null;b4++){if(!e||bK.filter(e,[b5]).length>0){if(!b6&&b5.nodeType===1){bK.cleanData(k(b5))}if(b5.parentNode){if(b6&&bK.contains(b5.ownerDocument,b5)){bt(k(b5,"script"))}b5.parentNode.removeChild(b5)}}}return this},empty:function(){var b4,e=0;for(;(b4=this[e])!=null;e++){if(b4.nodeType===1){bK.cleanData(k(b4,false))}while(b4.firstChild){b4.removeChild(b4.firstChild)}if(b4.options&&bK.nodeName(b4,"select")){b4.options.length=0}}return this},clone:function(b4,e){b4=b4==null?false:b4;e=e==null?b4:e;return this.map(function(){return bK.clone(this,b4,e)})},html:function(e){return bK.access(this,function(b7){var b6=this[0]||{},b5=0,b4=this.length;if(b7===aH){return b6.nodeType===1?b6.innerHTML.replace(aB,""):aH}if(typeof b7==="string"&&!am.test(b7)&&(bK.support.htmlSerialize||!K.test(b7))&&(bK.support.leadingWhitespace||!b3.test(b7))&&!U[(m.exec(b7)||["",""])[1].toLowerCase()]){b7=b7.replace(aE,"<$1>");try{for(;b5")){cb=b4.cloneNode(true)}else{j.innerHTML=b4.outerHTML;j.removeChild(cb=j.firstChild)}if((!bK.support.noCloneEvent||!bK.support.noCloneChecked)&&(b4.nodeType===1||b4.nodeType===11)&&!bK.isXMLDoc(b4)){b8=k(cb);b9=k(b4);for(b7=0;(b5=b9[b7])!=null;++b7){if(b8[b7]){R(b5,b8[b7])}}}if(b6){if(e){b9=b9||k(b4);b8=b8||k(cb);for(b7=0;(b5=b9[b7])!=null;b7++){au(b5,b8[b7])}}else{au(b4,cb)}}b8=k(cb,"script");if(b8.length>0){bt(b8,!ca&&k(b4,"script"))}b8=b9=b5=null;return cb},buildFragment:function(b4,b6,cb,cg){var cc,b8,ca,cf,ch,ce,b5,b9=b4.length,b7=B(b6),e=[],cd=0;for(;cd")+b5[2];cc=b5[0];while(cc--){cf=cf.lastChild}if(!bK.support.leadingWhitespace&&b3.test(b8)){e.push(b6.createTextNode(b3.exec(b8)[0]))}if(!bK.support.tbody){b8=ch==="table"&&!bY.test(b8)?cf.firstChild:b5[1]===""&&!bY.test(b8)?cf:0;cc=b8&&b8.childNodes.length;while(cc--){if(bK.nodeName((ce=b8.childNodes[cc]),"tbody")&&!ce.childNodes.length){b8.removeChild(ce)}}}bK.merge(e,cf.childNodes);cf.textContent="";while(cf.firstChild){cf.removeChild(cf.firstChild)}cf=b7.lastChild}}}}if(cf){b7.removeChild(cf)}if(!bK.support.appendChecked){bK.grep(k(e,"input"),bW)}cd=0;while((b8=e[cd++])){if(cg&&bK.inArray(b8,cg)!==-1){continue}ca=bK.contains(b8.ownerDocument,b8);cf=k(b7.appendChild(b8),"script");if(ca){bt(cf)}if(cb){cc=0;while((b8=cf[cc++])){if(bA.test(b8.type||"")){cb.push(b8)}}}}cf=null;return b7},cleanData:function(b4,cc){var b6,cb,b5,b7,b8=0,cd=bK.expando,e=bK.cache,b9=bK.support.deleteExpando,ca=bK.event.special;for(;(b6=b4[b8])!=null;b8++){if(cc||bK.acceptData(b6)){b5=b6[cd];b7=b5&&e[b5];if(b7){if(b7.events){for(cb in b7.events){if(ca[cb]){bK.event.remove(b6,cb)}else{bK.removeEvent(b6,cb,b7.handle)}}}if(e[b5]){delete e[b5];if(b9){delete b6[cd]}else{if(typeof b6.removeAttribute!==aD){b6.removeAttribute(cd)}else{b6[cd]=null}}a7.push(b5)}}}}}});var aF,bp,F,bh=/alpha\([^)]*\)/i,aU=/opacity\s*=\s*([^)]*)/,bo=/^(top|right|bottom|left)$/,G=/^(none|table(?!-c[ea]).+)/,aZ=/^margin/,ba=new RegExp("^("+bB+")(.*)$","i"),X=new RegExp("^("+bB+")(?!px)[a-z%]+$","i"),T=new RegExp("^([+-])=("+bB+")","i"),bk={BODY:"block"},bc={position:"absolute",visibility:"hidden",display:"block"},bD={letterSpacing:0,fontWeight:400},bU=["Top","Right","Bottom","Left"],aw=["Webkit","O","Moz","ms"];function b(b6,b4){if(b4 in b6){return b4}var b7=b4.charAt(0).toUpperCase()+b4.slice(1),e=b4,b5=aw.length;while(b5--){b4=aw[b5]+b7;if(b4 in b6){return b4}}return e}function Q(b4,e){b4=e||b4;return bK.css(b4,"display")==="none"||!bK.contains(b4.ownerDocument,b4)}function p(b9,e){var ca,b7,b8,b4=[],b5=0,b6=b9.length;for(;b51)},show:function(){return p(this,true)},hide:function(){return p(this)},toggle:function(b4){var e=typeof b4==="boolean";return this.each(function(){if(e?b4:Q(this)){bK(this).show()}else{bK(this).hide()}})}});bK.extend({cssHooks:{opacity:{get:function(b5,b4){if(b4){var e=F(b5,"opacity");return e===""?"1":e}}}},cssNumber:{columnCount:true,fillOpacity:true,fontWeight:true,lineHeight:true,opacity:true,orphans:true,widows:true,zIndex:true,zoom:true},cssProps:{"float":bK.support.cssFloat?"cssFloat":"styleFloat"},style:function(b6,b5,cc,b7){if(!b6||b6.nodeType===3||b6.nodeType===8||!b6.style){return}var ca,cb,cd,b8=bK.camelCase(b5),b4=b6.style;b5=bK.cssProps[b8]||(bK.cssProps[b8]=b(b4,b8));cd=bK.cssHooks[b5]||bK.cssHooks[b8];if(cc!==aH){cb=typeof cc;if(cb==="string"&&(ca=T.exec(cc))){cc=(ca[1]+1)*ca[2]+parseFloat(bK.css(b6,b5));cb="number"}if(cc==null||cb==="number"&&isNaN(cc)){return}if(cb==="number"&&!bK.cssNumber[b8]){cc+="px"}if(!bK.support.clearCloneStyle&&cc===""&&b5.indexOf("background")===0){b4[b5]="inherit"}if(!cd||!("set" in cd)||(cc=cd.set(b6,cc,b7))!==aH){try{b4[b5]=cc}catch(b9){}}}else{if(cd&&"get" in cd&&(ca=cd.get(b6,false,b7))!==aH){return ca}return b4[b5]}},css:function(b9,b7,b4,b8){var b6,ca,e,b5=bK.camelCase(b7);b7=bK.cssProps[b5]||(bK.cssProps[b5]=b(b9.style,b5));e=bK.cssHooks[b7]||bK.cssHooks[b5];if(e&&"get" in e){ca=e.get(b9,true,b4)}if(ca===aH){ca=F(b9,b7,b8)}if(ca==="normal"&&b7 in bD){ca=bD[b7]}if(b4===""||b4){b6=parseFloat(ca);return b4===true||bK.isNumeric(b6)?b6||0:ca}return ca},swap:function(b8,b7,b9,b6){var b5,b4,e={};for(b4 in b7){e[b4]=b8.style[b4];b8.style[b4]=b7[b4]}b5=b9.apply(b8,b6||[]);for(b4 in b7){b8.style[b4]=e[b4]}return b5}});if(a3.getComputedStyle){bp=function(e){return a3.getComputedStyle(e,null)};F=function(b7,b5,b9){var b6,b4,cb,b8=b9||bp(b7),ca=b8?b8.getPropertyValue(b5)||b8[b5]:aH,e=b7.style;if(b8){if(ca===""&&!bK.contains(b7.ownerDocument,b7)){ca=bK.style(b7,b5)}if(X.test(ca)&&aZ.test(b5)){b6=e.width;b4=e.minWidth;cb=e.maxWidth;e.minWidth=e.maxWidth=e.width=ca;ca=b8.width;e.width=b6;e.minWidth=b4;e.maxWidth=cb}}return ca}}else{if(l.documentElement.currentStyle){bp=function(e){return e.currentStyle};F=function(b6,b4,b9){var b5,b8,ca,b7=b9||bp(b6),cb=b7?b7[b4]:aH,e=b6.style;if(cb==null&&e&&e[b4]){cb=e[b4]}if(X.test(cb)&&!bo.test(b4)){b5=e.left;b8=b6.runtimeStyle;ca=b8&&b8.left;if(ca){b8.left=b6.currentStyle.left}e.left=b4==="fontSize"?"1em":cb;cb=e.pixelLeft+"px";e.left=b5;if(ca){b8.left=ca}}return cb===""?"auto":cb}}}function aK(e,b5,b6){var b4=ba.exec(b5);return b4?Math.max(0,b4[1]-(b6||0))+(b4[2]||"px"):b5}function ax(b7,b4,e,b9,b6){var b5=e===(b9?"border":"content")?4:b4==="width"?1:0,b8=0;for(;b5<4;b5+=2){if(e==="margin"){b8+=bK.css(b7,e+bU[b5],true,b6)}if(b9){if(e==="content"){b8-=bK.css(b7,"padding"+bU[b5],true,b6)}if(e!=="margin"){b8-=bK.css(b7,"border"+bU[b5]+"Width",true,b6)}}else{b8+=bK.css(b7,"padding"+bU[b5],true,b6);if(e!=="padding"){b8+=bK.css(b7,"border"+bU[b5]+"Width",true,b6)}}}return b8}function v(b7,b4,e){var b6=true,b8=b4==="width"?b7.offsetWidth:b7.offsetHeight,b5=bp(b7),b9=bK.support.boxSizing&&bK.css(b7,"boxSizing",false,b5)==="border-box";if(b8<=0||b8==null){b8=F(b7,b4,b5);if(b8<0||b8==null){b8=b7.style[b4]}if(X.test(b8)){return b8}b6=b9&&(bK.support.boxSizingReliable||b8===b7.style[b4]);b8=parseFloat(b8)||0}return(b8+ax(b7,b4,e||(b9?"border":"content"),b6,b5))+"px"}function bF(b5){var b4=l,e=bk[b5];if(!e){e=a2(b5,b4);if(e==="none"||!e){aF=(aF||bK("