core/src/commonMain/kotlin/gms/OssLicenseParser.kt
changeset 30 763a6573b900
parent 24 f07de07b90c4
child 34 ce299aacc068
equal deleted inserted replaced
29:b6b62004b1e7 30:763a6573b900
    27 import okio.use
    27 import okio.use
    28 
    28 
    29 /**
    29 /**
    30  * Parse licences data generated by the "com.google.android.gms.oss-licenses-plugin" gradle plugin.
    30  * Parse licences data generated by the "com.google.android.gms.oss-licenses-plugin" gradle plugin.
    31  */
    31  */
    32 class OssLicenseParser {
    32 class OssLicenseParser(
       
    33     thirdPartyLicensesSource: Source,
       
    34     thirdPartyLicensesMetadataSource: Source
       
    35 ): AutoCloseable {
       
    36 
       
    37     private val thirdPartyLicensesInput = thirdPartyLicensesSource.buffer()
       
    38     private val thirdPartyLicensesMetadataInput = thirdPartyLicensesMetadataSource.buffer()
    33 
    39 
    34     /**
    40     /**
    35      * Parse licenses
    41      * Parse licenses
    36      * @param [thirdPartyLicensesInput] is usually res/raw/third_party_licenses file
    42      * @param [thirdPartyLicensesInput] is usually res/raw/third_party_licenses file
    37      * @param [thirdPartyLicensesMetadataInput] is usually res/raw/third_party_license_metadata file
    43      * @param [thirdPartyLicensesMetadataInput] is usually res/raw/third_party_license_metadata file
    38      */
    44      */
    39     fun parseLicenses(
    45     fun parseLicenses(): Map<String, String> {
    40         thirdPartyLicensesInput: Source, thirdPartyLicensesMetadataInput: Source
       
    41     ): Map<String, String> {
       
    42         val licenses = readLicensesFile(thirdPartyLicensesInput)
    46         val licenses = readLicensesFile(thirdPartyLicensesInput)
    43         return buildLicenseInfo(licenses, thirdPartyLicensesMetadataInput)
    47         return buildLicenseInfo(licenses, thirdPartyLicensesMetadataInput)
    44     }
    48     }
    45 
    49 
    46     private fun readLicensesFile(thirdPartyLicensesInput: Source): ByteString {
    50     private fun readLicensesFile(thirdPartyLicensesInput: Source): ByteString {
    67                         }
    71                         }
    68                     }
    72                     }
    69                 }
    73                 }
    70             }
    74             }
    71         }
    75         }
       
    76     }
       
    77 
       
    78     override fun close() {
       
    79         thirdPartyLicensesInput.close()
       
    80         thirdPartyLicensesMetadataInput.close()
    72     }
    81     }
    73 
    82 
    74     companion object
    83     companion object
    75 }
    84 }
    76 
    85