// Path: common/src/main/java/cz/gopay/api/v3/model/common/CheckoutGroup.java
// @XmlType
// @XmlEnum(String.class)
// public enum CheckoutGroup {
// 	
// 	@XmlEnumValue("card-payment")
// 	CARD_PAYMENT("card-payment", EnumSet.of(PaymentInstrument.PAYMENT_CARD)),
// 	
// 	@XmlEnumValue("bank-transfer")
// 	BANK_TRANSFER("bank-transfer", EnumSet.of(PaymentInstrument.BANK_ACCOUNT)),
// 	
// 	@XmlEnumValue("wallet")
// 	WALLET("wallet", EnumSet.of(
// 			PaymentInstrument.GOPAY,
// 			PaymentInstrument.BITCOIN,
// 			PaymentInstrument.PAYPAL)),
// 	
// 	@XmlEnumValue("others")
// 	OTHERS("others", EnumSet.of(
// 			PaymentInstrument.PRSMS,
// 			PaymentInstrument.MPAYMENT,
// 			PaymentInstrument.PAYSAFECARD,
// 			PaymentInstrument.MASTERPASS))
// 	;
// 	
// 	private final String name;
// 	private final Set<PaymentInstrument> paymentInstruments;
// 	
// 	private CheckoutGroup(String name, Set<PaymentInstrument> paymentInstruments) {
// 		this.name = name;
// 		this.paymentInstruments = paymentInstruments;
// 	}
// 	
// 	public String getName() {
// 		return name;
// 	}
// 	
// 	public Set<PaymentInstrument> getPaymentInstruments() {
// 		return paymentInstruments;
// 	}
// 	
// 	@Override
// 	public String toString() {
// 		return name;
// 	}
// 	
// 	public static CheckoutGroup findByInstrument(PaymentInstrument instrument) {
// 		
// 		for (CheckoutGroup group : CheckoutGroup.values()) {
// 			
// 			if (group.getPaymentInstruments().contains(instrument)) {
// 				return group;
// 			}
// 		}
// 		return null;
// 	}
// 	
// 	public static CheckoutGroup getByStringName(String stringName) {
// 		CheckoutGroup result = null;
// 		for (CheckoutGroup item : EnumSet.allOf(CheckoutGroup.class)) {
// 			if (String.valueOf(item).equals(stringName)) {
// 				result = item;
// 				break;
// 			}
// 		}
// 		return result;
// 	}
// 	
// }


import cz.gopay.api.v3.model.common.CheckoutGroup;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
package cz.gopay.api.v3.model.payment.support;




@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class PaymentInstrumentRoot {
	
	@XmlElement(name = "groups")
	private Map<CheckoutGroup, Group> groups;
	
	@XmlElement(name = "enabledPaymentInstruments")
	private List<EnabledPaymentInstrument> enabledPaymentInstruments;
	
	public Map<CheckoutGroup, Group> getGroups() {
		return groups;
	}
	
	public PaymentInstrumentRoot addGroup(CheckoutGroup coGroup, Group groupData) {
		
// Path: common/src/main/java/cz/gopay/api/v3/model/common/CheckoutGroup.java
// @XmlType
// @XmlEnum(String.class)
// public enum CheckoutGroup {
// 	
// 	@XmlEnumValue("card-payment")
// 	CARD_PAYMENT("card-payment", EnumSet.of(PaymentInstrument.PAYMENT_CARD)),
// 	
// 	@XmlEnumValue("bank-transfer")
// 	BANK_TRANSFER("bank-transfer", EnumSet.of(PaymentInstrument.BANK_ACCOUNT)),
// 	
// 	@XmlEnumValue("wallet")
// 	WALLET("wallet", EnumSet.of(
// 			PaymentInstrument.GOPAY,
// 			PaymentInstrument.BITCOIN,
// 			PaymentInstrument.PAYPAL)),
// 	
// 	@XmlEnumValue("others")
// 	OTHERS("others", EnumSet.of(
// 			PaymentInstrument.PRSMS,
// 			PaymentInstrument.MPAYMENT,
// 			PaymentInstrument.PAYSAFECARD,
// 			PaymentInstrument.MASTERPASS))
// 	;
// 	
// 	private final String name;
// 	private final Set<PaymentInstrument> paymentInstruments;
// 	
// 	private CheckoutGroup(String name, Set<PaymentInstrument> paymentInstruments) {
// 		this.name = name;
// 		this.paymentInstruments = paymentInstruments;
// 	}
// 	
// 	public String getName() {
// 		return name;
// 	}
// 	
// 	public Set<PaymentInstrument> getPaymentInstruments() {
// 		return paymentInstruments;
// 	}
// 	
// 	@Override
// 	public String toString() {
// 		return name;
// 	}
// 	
// 	public static CheckoutGroup findByInstrument(PaymentInstrument instrument) {
// 		
// 		for (CheckoutGroup group : CheckoutGroup.values()) {
// 			
// 			if (group.getPaymentInstruments().contains(instrument)) {
// 				return group;
// 			}
// 		}
// 		return null;
// 	}
// 	
// 	public static CheckoutGroup getByStringName(String stringName) {
// 		CheckoutGroup result = null;
// 		for (CheckoutGroup item : EnumSet.allOf(CheckoutGroup.class)) {
// 			if (String.valueOf(item).equals(stringName)) {
// 				result = item;
// 				break;
// 			}
// 		}
// 		return result;
// 	}
// 	
// }


// Path: common/src/main/java/cz/gopay/api/v3/model/payment/support/PaymentInstrumentRoot.java
import cz.gopay.api.v3.model.common.CheckoutGroup;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;

package cz.gopay.api.v3.model.payment.support;




@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class PaymentInstrumentRoot {
	
	@XmlElement(name = "groups")
	private Map<CheckoutGroup, Group> groups;
	
	@XmlElement(name = "enabledPaymentInstruments")
	private List<EnabledPaymentInstrument> enabledPaymentInstruments;
	
	public Map<CheckoutGroup, Group> getGroups() {
		return groups;
	}
	
	public PaymentInstrumentRoot addGroup(CheckoutGroup coGroup, Group groupData) {
		
		if (this.groups == null) {