// Path: src/main/java/stream/flarebot/flarebot/util/objects/ApiRoute.java
// public class ApiRoute {
// 
//     private String url;
//     private int params;
// 
//     public String getUrl() {
//         return url;
//     }
// 
//     public int getParams() {
//         return params;
//     }
// 
//     public ApiRoute(String url) {
//         int open = StringUtils.countMatches(url, "{");
//         if (open != StringUtils.countMatches(url, "}")) {
//             throw new IllegalArgumentException("Number of { does not match number of }");
//         }
// 
//         this.url = url.replaceAll("\\{.*?}", "%s");
//         this.params = open;
//     }
// 
//     public String getCompiledUrl(String... params) {
//         if (this.params != params.length) {
//             throw new IllegalArgumentException(String.format("Number of params given (%d) does not match required amount (%d) !", params.length, this.params));
//         }
//         return String.format(this.url, params);
//     }
// }


import stream.flarebot.flarebot.util.objects.ApiRoute;
package stream.flarebot.flarebot.util.currency;


public class CurrencyApiRoutes {

    public static class NormalApi {

        private static final String BASE_URL = "https://api.fixer.io";

// Path: src/main/java/stream/flarebot/flarebot/util/objects/ApiRoute.java
// public class ApiRoute {
// 
//     private String url;
//     private int params;
// 
//     public String getUrl() {
//         return url;
//     }
// 
//     public int getParams() {
//         return params;
//     }
// 
//     public ApiRoute(String url) {
//         int open = StringUtils.countMatches(url, "{");
//         if (open != StringUtils.countMatches(url, "}")) {
//             throw new IllegalArgumentException("Number of { does not match number of }");
//         }
// 
//         this.url = url.replaceAll("\\{.*?}", "%s");
//         this.params = open;
//     }
// 
//     public String getCompiledUrl(String... params) {
//         if (this.params != params.length) {
//             throw new IllegalArgumentException(String.format("Number of params given (%d) does not match required amount (%d) !", params.length, this.params));
//         }
//         return String.format(this.url, params);
//     }
// }


// Path: src/main/java/stream/flarebot/flarebot/util/currency/CurrencyApiRoutes.java
import stream.flarebot.flarebot.util.objects.ApiRoute;

package stream.flarebot.flarebot.util.currency;


public class CurrencyApiRoutes {

    public static class NormalApi {

        private static final String BASE_URL = "https://api.fixer.io";

        public static final ApiRoute LATEST_ALL = new ApiRoute(BASE_URL + "/latest");