Home | History | Annotate | Download | only in phonenumbers
      1 /*
      2  * Copyright (C) 2014 The Libphonenumber Authors
      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.i18n.phonenumbers;
     18 
     19 import java.io.InputStream;
     20 
     21 /**
     22  * Interface for clients to specify a customized phone metadata loader, useful for Android apps to
     23  * load Android resources since the library loads Java resources by default, e.g. with
     24  * <a href="http://developer.android.com/reference/android/content/res/AssetManager.html">
     25  * AssetManager</a>. Note that implementation owners have the responsibility to ensure this is
     26  * thread-safe.
     27  */
     28 public interface MetadataLoader {
     29   /**
     30    * Returns an input stream corresponding to the metadata to load. This method may be called
     31    * concurrently so implementations must be thread-safe.
     32    *
     33    * @param metadataFileName  file name (including path) of metadata to load. File path is an
     34    *     absolute class path like /com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto
     35    * @return  the input stream for the metadata file. The library will close this stream
     36    *     after it is done. Return null in case the metadata file could not be found
     37    */
     38   public InputStream loadMetadata(String metadataFileName);
     39 }
     40