View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *     http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.apache.commons.mail.resolver;
18  
19  import org.apache.commons.mail.DataSourceResolver;
20  
21  /**
22   * Base class for various resolvers.
23   *
24   * @since 1.3
25   */
26  public abstract class DataSourceBaseResolver implements DataSourceResolver
27  {
28      /** shall we ignore resources not found or complain with an exception */
29      private final boolean lenient;
30  
31      /**
32       * Constructor.
33       */
34      public DataSourceBaseResolver()
35      {
36          this.lenient = false;
37      }
38  
39      /**
40       * Constructor.
41       *
42       * @param lenient shall we ignore resources not found or throw an exception?
43       */
44      public DataSourceBaseResolver(final boolean lenient)
45      {
46          this.lenient = lenient;
47      }
48  
49      /**
50       * Shall we ignore resources not found or throw an exception?
51       *
52       * @return the lenient flag
53       */
54      public boolean isLenient()
55      {
56          return lenient;
57      }
58  
59      /**
60       * Is this a content id?
61       *
62       * @param resourceLocation the resource location
63       * @return true if it is a CID
64       */
65      protected boolean isCid(final String resourceLocation)
66      {
67          return resourceLocation.startsWith("cid:");
68      }
69  
70      /**
71       * Is this a file URL?
72       *
73       * @param urlString the URL string
74       * @return true if it is a file URL
75       */
76      protected boolean isFileUrl(final String urlString)
77      {
78          return urlString.startsWith("file:/");
79      }
80  
81      /**
82       * Is this a HTTP/HTTPS URL?
83       *
84       * @param urlString the URL string
85       * @return true if it is a HTTP/HTTPS URL
86       */
87      protected boolean isHttpUrl(final String urlString)
88      {
89          return urlString.startsWith("http://") || urlString.startsWith("https://");
90      }
91  }