forked from google/gdata-java-client
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathWebmasterToolsService.java
More file actions
154 lines (135 loc) · 5.81 KB
/
Copy pathWebmasterToolsService.java
File metadata and controls
154 lines (135 loc) · 5.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
/* Copyright (c) 2008 Google Inc.
*
* Licensed 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.
*/
package com.google.gdata.client.webmastertools;
import com.google.gdata.client.AuthTokenFactory;
import com.google.gdata.client.GoogleService;
import com.google.gdata.client.Service;
import com.google.gdata.data.webmastertools.CrawlIssuesFeed;
import com.google.gdata.data.webmastertools.KeywordsFeed;
import com.google.gdata.data.webmastertools.MessagesFeed;
import com.google.gdata.data.webmastertools.SitemapsFeed;
import com.google.gdata.data.webmastertools.SitesFeed;
import com.google.gdata.util.Version;
import com.google.gdata.util.VersionRegistry;
/**
* Extends the basic {@link GoogleService} abstraction to define a service that
* is preconfigured for access to the Google Webmaster Tools Data API.
*
*
*/
public class WebmasterToolsService extends GoogleService {
/**
* The abbreviated name of Google Webmaster Tools Data API recognized by
* Google. The service name is used when requesting an authentication token.
*/
public static final String WEBMASTERTOOLS_SERVICE = "sitemaps";
/**
* The version ID of the service.
*/
public static final String WEBMASTERTOOLS_SERVICE_VERSION =
"GWebmasterTools-Java/" +
WebmasterToolsService.class.getPackage().getImplementationVersion();
/** GData versions supported by the Google Webmaster Tools Data API. */
public static final class Versions {
/** Version 1. This is the initial version of the API and is based on
* Version 1 of the GData protocol. */
public static final Version V1 = new Version(WebmasterToolsService.class,
"1.0", Service.Versions.V1);
/** Version 2. This version adds full compliance with the Atom Publishing
* Protocol and is based on Version 2 of the GData protocol. */
public static final Version V2 = new Version(WebmasterToolsService.class,
"2.0", Service.Versions.V2);
private Versions() {}
}
/**
* Default GData version used by the Google Webmaster Tools Data API.
*/
public static final Version DEFAULT_VERSION =
Service.initServiceVersion(WebmasterToolsService.class, Versions.V2);
/**
* Constructs an instance connecting to the Google Webmaster Tools Data API
* for an application with the name {@code applicationName}.
*
* @param applicationName the name of the client application accessing the
* service. Application names should preferably have the format
* [company-id]-[app-name]-[app-version]. The name will be used by the
* Google servers to monitor the source of authentication.
*/
public WebmasterToolsService(String applicationName) {
super(WEBMASTERTOOLS_SERVICE, applicationName);
declareExtensions();
}
/**
* Constructs an instance connecting to the Google Webmaster Tools Data API
* for an application with the name {@code applicationName} and the given
* {@code GDataRequestFactory} and {@code AuthTokenFactory}. Use this
* constructor to override the default factories.
*
* @param applicationName the name of the client application accessing the
* service. Application names should preferably have the format
* [company-id]-[app-name]-[app-version]. The name will be used by the
* Google servers to monitor the source of authentication.
* @param requestFactory the request factory that generates gdata request
* objects
* @param authTokenFactory the factory that creates auth tokens
*/
public WebmasterToolsService(String applicationName,
Service.GDataRequestFactory requestFactory,
AuthTokenFactory authTokenFactory) {
super(applicationName, requestFactory, authTokenFactory);
declareExtensions();
}
/**
* Constructs an instance connecting to the Google Webmaster Tools Data API
* with name {@code serviceName} for an application with the name {@code
* applicationName}. The service will authenticate at the provided {@code
* domainName}.
*
* @param applicationName the name of the client application accessing the
* service. Application names should preferably have the format
* [company-id]-[app-name]-[app-version]. The name will be used by the
* Google servers to monitor the source of authentication.
* @param protocol name of protocol to use for authentication
* ("http"/"https")
* @param domainName the name of the domain hosting the login handler
*/
public WebmasterToolsService(String applicationName, String protocol,
String domainName) {
super(WEBMASTERTOOLS_SERVICE, applicationName, protocol, domainName);
declareExtensions();
}
@Override
public String getServiceVersion() {
return WEBMASTERTOOLS_SERVICE_VERSION + " " + super.getServiceVersion();
}
/**
* Returns the current GData version used by the Google Webmaster Tools Data
* API.
*/
public static Version getVersion() {
return VersionRegistry.get().getVersion(WebmasterToolsService.class);
}
/**
* Declare the extensions of the feeds for the Google Webmaster Tools Data
* API.
*/
private void declareExtensions() {
new CrawlIssuesFeed().declareExtensions(extProfile);
new KeywordsFeed().declareExtensions(extProfile);
new MessagesFeed().declareExtensions(extProfile);
new SitemapsFeed().declareExtensions(extProfile);
new SitesFeed().declareExtensions(extProfile);
}
}