// Path: src/locales/Lang.java
// public abstract class Lang {
//     public static final String EN = "en";
//     public static final String ES = "es";
//     public static Properties en = new Properties();
//     public static Properties es = new Properties();
//     
//     public static String translate(String key, HashMap parameters, String locale) {
//         try {
//             readDirectory();
//         } catch (IOException ex) {
//             System.out.println(ex.getMessage());
//             Logger.getLogger(Lang.class.getName()).log(Level.SEVERE, null, ex);
//         }
//         String translate = "";
//         if (locale.equals("en"))
//             translate = en.getProperty(key);
//         if (locale.equals("es"))
//             translate = es.getProperty(key);
//         if (!parameters.isEmpty()) {
//             Iterator it = parameters.entrySet().iterator();
//             while (it.hasNext()) {
//                 Map.Entry pair = (Map.Entry)it.next();
//                 String k = (String) pair.getKey();
//                 String v = (String) pair.getValue();
//                 translate = translate.replace("%{"+ k.toLowerCase() +"}", v);
//                 it.remove(); // avoids a ConcurrentModificationException
//             }
//         }
//         return translate;
//     }
//     
//     protected static void readDirectory() throws IOException {
//         if (!en.isEmpty() && !es.isEmpty()) {
//             return;
//         }
//         InputStream inEn = Lang.class.getClassLoader().getResourceAsStream("locales/messages/en.properties");
//         InputStream inEs = Lang.class.getClassLoader().getResourceAsStream("locales/messages/es.properties");
//         en.load(inEn);
//         es.load(inEs);
//     }
// }


import locales.Lang;
import java.util.HashMap;
package io.conekta;



public class OfflineRecurrentReference extends PaymentSource {
    public String reference;
    public String barcode;
    public String barcode_url;
    public String provider;
    public String expires_at;



    @Override
    public String instanceUrl() throws Error {
        if (id == null || id.length() == 0) {
            HashMap parameters = new HashMap();
            parameters.put("RESOURCE", this.getClass().getSimpleName());
// Path: src/locales/Lang.java
// public abstract class Lang {
//     public static final String EN = "en";
//     public static final String ES = "es";
//     public static Properties en = new Properties();
//     public static Properties es = new Properties();
//     
//     public static String translate(String key, HashMap parameters, String locale) {
//         try {
//             readDirectory();
//         } catch (IOException ex) {
//             System.out.println(ex.getMessage());
//             Logger.getLogger(Lang.class.getName()).log(Level.SEVERE, null, ex);
//         }
//         String translate = "";
//         if (locale.equals("en"))
//             translate = en.getProperty(key);
//         if (locale.equals("es"))
//             translate = es.getProperty(key);
//         if (!parameters.isEmpty()) {
//             Iterator it = parameters.entrySet().iterator();
//             while (it.hasNext()) {
//                 Map.Entry pair = (Map.Entry)it.next();
//                 String k = (String) pair.getKey();
//                 String v = (String) pair.getValue();
//                 translate = translate.replace("%{"+ k.toLowerCase() +"}", v);
//                 it.remove(); // avoids a ConcurrentModificationException
//             }
//         }
//         return translate;
//     }
//     
//     protected static void readDirectory() throws IOException {
//         if (!en.isEmpty() && !es.isEmpty()) {
//             return;
//         }
//         InputStream inEn = Lang.class.getClassLoader().getResourceAsStream("locales/messages/en.properties");
//         InputStream inEs = Lang.class.getClassLoader().getResourceAsStream("locales/messages/es.properties");
//         en.load(inEn);
//         es.load(inEs);
//     }
// }


// Path: src/io/conekta/OfflineRecurrentReference.java
import locales.Lang;
import java.util.HashMap;

package io.conekta;



public class OfflineRecurrentReference extends PaymentSource {
    public String reference;
    public String barcode;
    public String barcode_url;
    public String provider;
    public String expires_at;



    @Override
    public String instanceUrl() throws Error {
        if (id == null || id.length() == 0) {
            HashMap parameters = new HashMap();
            parameters.put("RESOURCE", this.getClass().getSimpleName());
            throw new Error(Lang.translate("error.resource.id", parameters, Lang.EN),