View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.eclipse.aether.transfer;
20  
21  import org.eclipse.aether.RepositoryException;
22  import org.eclipse.aether.repository.RemoteRepository;
23  
24  /**
25   * Thrown when a transfer could not be performed because a remote repository is not accessible in offline mode.
26   */
27  public class RepositoryOfflineException extends RepositoryException {
28  
29      private final transient RemoteRepository repository;
30  
31      private static String getMessage(RemoteRepository repository) {
32          if (repository == null) {
33              return "Cannot access remote repositories in offline mode";
34          } else {
35              return "Cannot access " + repository.getId() + " (" + repository.getUrl() + ") in offline mode";
36          }
37      }
38  
39      /**
40       * Creates a new exception with the specified repository.
41       *
42       * @param repository The inaccessible remote repository, may be {@code null}.
43       */
44      public RepositoryOfflineException(RemoteRepository repository) {
45          super(getMessage(repository));
46          this.repository = repository;
47      }
48  
49      /**
50       * Creates a new exception with the specified repository and detail message.
51       *
52       * @param repository The inaccessible remote repository, may be {@code null}.
53       * @param message The detail message, may be {@code null}.
54       */
55      public RepositoryOfflineException(RemoteRepository repository, String message) {
56          super(message);
57          this.repository = repository;
58      }
59  
60      /**
61       * Gets the remote repository that could not be accessed due to offline mode.
62       *
63       * @return The inaccessible remote repository or {@code null} if unknown.
64       */
65      public RemoteRepository getRepository() {
66          return repository;
67      }
68  }