| /* |
| * Copyright (C) 2010 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.doclava; |
| |
| import com.google.doclava.apicheck.ApiCheck; |
| import com.google.doclava.apicheck.ApiInfo; |
| import com.google.doclava.apicheck.ApiParseException; |
| |
| import java.net.MalformedURLException; |
| import java.net.URL; |
| |
| /** |
| * A remote source of documentation that can be linked against. A federated |
| * site represents a library that has packages, classes, and members that may |
| * be referenced or shared across codebases. |
| */ |
| public final class FederatedSite { |
| private final String name; |
| private final URL baseUrl; |
| private final ApiInfo apiInfo; |
| |
| public FederatedSite(String name, URL baseUrl) throws ApiParseException { |
| this.name = name; |
| this.baseUrl = baseUrl; |
| |
| try { |
| URL xmlUrl = new URL(baseUrl + "/xml/current.xml"); |
| this.apiInfo = new ApiCheck().parseApi(xmlUrl); |
| } catch (MalformedURLException e) { |
| throw new AssertionError(e); |
| } |
| } |
| |
| /** |
| * Constructs a federated site using an api file not contained on |
| * the site itself. |
| */ |
| public FederatedSite(String name, URL baseUrl, String api) throws ApiParseException { |
| this.name = name; |
| this.baseUrl = baseUrl; |
| this.apiInfo = new ApiCheck().parseApi(api); |
| } |
| |
| public String linkFor(String htmlPage) { |
| return baseUrl + "/" + htmlPage; |
| } |
| |
| public String name() { |
| return name; |
| } |
| |
| public ApiInfo apiInfo() { |
| return apiInfo; |
| } |
| |
| public URL baseUrl() { |
| return baseUrl; |
| } |
| } |