Improved Kdoc.
This commit is contained in:
parent
32be9b9a2e
commit
6aaef8e089
2 changed files with 23 additions and 10 deletions
|
@ -32,18 +32,24 @@
|
||||||
|
|
||||||
package net.thauvin.erik.crypto
|
package net.thauvin.erik.crypto
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Thrown when an exceptional condition has occurred.
|
||||||
|
*/
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
class CryptoException : Exception {
|
class CryptoException : Exception {
|
||||||
var statusCode = NO_STATUS
|
var statusCode = NO_STATUS
|
||||||
|
|
||||||
|
/** Constructs a new exception with the specified status code, message and cause. */
|
||||||
constructor(statusCode: Int = NO_STATUS, message: String, cause: Throwable) : super(message, cause) {
|
constructor(statusCode: Int = NO_STATUS, message: String, cause: Throwable) : super(message, cause) {
|
||||||
this.statusCode = statusCode
|
this.statusCode = statusCode
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Constructs a new exception with the specified status code and message. */
|
||||||
constructor(statusCode: Int = NO_STATUS, message: String) : super(message) {
|
constructor(statusCode: Int = NO_STATUS, message: String) : super(message) {
|
||||||
this.statusCode = statusCode
|
this.statusCode = statusCode
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Constructs a new exception with the specified status code and cause. */
|
||||||
constructor(statusCode: Int = NO_STATUS, cause: Throwable) : super(cause) {
|
constructor(statusCode: Int = NO_STATUS, cause: Throwable) : super(cause) {
|
||||||
this.statusCode = statusCode
|
this.statusCode = statusCode
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,9 +46,13 @@ import java.util.Currency
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A small Kotlin/Java library for retrieving cryptocurrencies current spot prices.
|
* Retrieves and holds a cryptocurrency current spot price.
|
||||||
*
|
*
|
||||||
* @author [Erik C. Thauvin](https://erik.thauvin.net/)
|
* @constructor Constructs a new [CryptoPrice] object.
|
||||||
|
*
|
||||||
|
* @param base The cryptocurrency ticker symbol, such as `BTC`, `ETH`, `LTC`, etc.
|
||||||
|
* @param currency The fiat currency ISO 4217 code, such as `USD`, `GPB`, `EUR`, etc.
|
||||||
|
* @param amount The cryptocurrency price.
|
||||||
*/
|
*/
|
||||||
open class CryptoPrice(val base: String, val currency: String, val amount: BigDecimal) {
|
open class CryptoPrice(val base: String, val currency: String, val amount: BigDecimal) {
|
||||||
companion object {
|
companion object {
|
||||||
|
@ -56,7 +60,7 @@ open class CryptoPrice(val base: String, val currency: String, val amount: BigDe
|
||||||
private const val COINBASE_API_URL = "https://api.coinbase.com/v2/"
|
private const val COINBASE_API_URL = "https://api.coinbase.com/v2/"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert JSON data object to [CryptoPrice].
|
* Converts JSON data object to [CryptoPrice].
|
||||||
*/
|
*/
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
@Throws(CryptoException::class)
|
@Throws(CryptoException::class)
|
||||||
|
@ -78,7 +82,7 @@ open class CryptoPrice(val base: String, val currency: String, val amount: BigDe
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Make an API call.
|
* Makes an API call.
|
||||||
*/
|
*/
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
@JvmOverloads
|
@JvmOverloads
|
||||||
|
@ -114,6 +118,9 @@ open class CryptoPrice(val base: String, val currency: String, val amount: BigDe
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prints the current prices for the specified cryptocurrencies.
|
||||||
|
*/
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun main(args: Array<String>) {
|
fun main(args: Array<String>) {
|
||||||
args.forEach {
|
args.forEach {
|
||||||
|
@ -124,10 +131,10 @@ open class CryptoPrice(val base: String, val currency: String, val amount: BigDe
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve the current spot price.
|
* Retrieves the current spot price.
|
||||||
*
|
*
|
||||||
* @param base The cryptocurrency ticker symbol. (`BTC`, `ETH`, `ETH2`, etc.)
|
* @param base The cryptocurrency ticker symbol, such as `BTC`, `ETH`, `LTC`, etc.
|
||||||
* @param currency The fiat currency ISO 4217 code. (`USD`, `GPB`, `EUR`, etc.)
|
* @param currency The fiat currency ISO 4217 code, such as `USD`, `GPB`, `EUR`, etc.
|
||||||
* @param date The [LocalDate] for historical price data.
|
* @param date The [LocalDate] for historical price data.
|
||||||
*/
|
*/
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
|
@ -140,7 +147,7 @@ open class CryptoPrice(val base: String, val currency: String, val amount: BigDe
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the [amount] as a currency formatted string. (eg: $1,203.33)
|
* Returns the [amount] as a currency formatted string, such as `$1,203.33`.
|
||||||
*/
|
*/
|
||||||
@JvmOverloads
|
@JvmOverloads
|
||||||
@Throws(IllegalArgumentException::class)
|
@Throws(IllegalArgumentException::class)
|
||||||
|
@ -153,7 +160,7 @@ open class CryptoPrice(val base: String, val currency: String, val amount: BigDe
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a JSON representation of the [CryptoPrice].
|
* Returns a JSON representation of the [CryptoPrice].
|
||||||
*/
|
*/
|
||||||
fun toJson(): String {
|
fun toJson(): String {
|
||||||
return JSONStringer()
|
return JSONStringer()
|
||||||
|
@ -168,7 +175,7 @@ open class CryptoPrice(val base: String, val currency: String, val amount: BigDe
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a JSON respresentation of the [CryptoPrice].
|
* Returns a JSON respresentation of the [CryptoPrice].
|
||||||
*/
|
*/
|
||||||
override fun toString(): String = toJson()
|
override fun toString(): String = toJson()
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue