// Path: NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/PaymentMethod.java
// public interface PaymentMethod extends BaseEntity {
// 
//     // Methods for working with custom properties
// 
//     @Deprecated
//     Map<String, String> getPaymentMethodProperties();
// 
// }
// 
// Path: NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/PaymentMethodImpl.java
// public class PaymentMethodImpl extends BaseEntityImpl implements PaymentMethod {
// 
//     private static final long serialVersionUID = -529417516632266683L;
// 
//     /**
//      * @see BaseEntityImpl#getReservedProps()
//      */
//     public static List<String> getReservedProps() {
//         return BaseEntityImpl.getReservedProps();
//     }
// 
//     @Override
//     public Map<String, String> getPaymentMethodProperties() {
//         return getProperties();
//     }
// 
// }
// 
// Path: NetLicensingClient/src/main/java/com/labs64/netlicensing/exception/ConversionException.java
// public class ConversionException extends NetLicensingException {
// 
//     private static final long serialVersionUID = -3798344733724547819L;
// 
//     /**
//      * Construct a <code>ConversionException</code> with the specified detail message.
//      * 
//      * @param msg
//      *            the detail message
//      */
//     public ConversionException(final String msg) {
//         super(msg);
//     }
// 
//     /**
//      * Construct a <code>ConversionException</code> with the specified detail message and cause exception.
//      * 
//      * @param msg
//      *            the detail message
//      * @param cause
//      *            the cause exception
//      */
//     public ConversionException(final String msg, final Throwable cause) {
//         super(msg, cause);
//     }
// 
// }


import com.labs64.netlicensing.domain.entity.PaymentMethod;
import com.labs64.netlicensing.domain.entity.impl.PaymentMethodImpl;
import com.labs64.netlicensing.exception.ConversionException;
import com.labs64.netlicensing.schema.context.Item;
import com.labs64.netlicensing.schema.context.Property;
/* Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.labs64.netlicensing.schema.converter;


/**
 * Convert {@link Item} entity into {@link PaymentMethod} object.
 */
public class ItemToPaymentMethodConverter extends ItemToEntityBaseConverter<PaymentMethod> {

    @Override
// Path: NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/PaymentMethod.java
// public interface PaymentMethod extends BaseEntity {
// 
//     // Methods for working with custom properties
// 
//     @Deprecated
//     Map<String, String> getPaymentMethodProperties();
// 
// }
// 
// Path: NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/PaymentMethodImpl.java
// public class PaymentMethodImpl extends BaseEntityImpl implements PaymentMethod {
// 
//     private static final long serialVersionUID = -529417516632266683L;
// 
//     /**
//      * @see BaseEntityImpl#getReservedProps()
//      */
//     public static List<String> getReservedProps() {
//         return BaseEntityImpl.getReservedProps();
//     }
// 
//     @Override
//     public Map<String, String> getPaymentMethodProperties() {
//         return getProperties();
//     }
// 
// }
// 
// Path: NetLicensingClient/src/main/java/com/labs64/netlicensing/exception/ConversionException.java
// public class ConversionException extends NetLicensingException {
// 
//     private static final long serialVersionUID = -3798344733724547819L;
// 
//     /**
//      * Construct a <code>ConversionException</code> with the specified detail message.
//      * 
//      * @param msg
//      *            the detail message
//      */
//     public ConversionException(final String msg) {
//         super(msg);
//     }
// 
//     /**
//      * Construct a <code>ConversionException</code> with the specified detail message and cause exception.
//      * 
//      * @param msg
//      *            the detail message
//      * @param cause
//      *            the cause exception
//      */
//     public ConversionException(final String msg, final Throwable cause) {
//         super(msg, cause);
//     }
// 
// }


// Path: NetLicensingClient/src/main/java/com/labs64/netlicensing/schema/converter/ItemToPaymentMethodConverter.java
import com.labs64.netlicensing.domain.entity.PaymentMethod;
import com.labs64.netlicensing.domain.entity.impl.PaymentMethodImpl;
import com.labs64.netlicensing.exception.ConversionException;
import com.labs64.netlicensing.schema.context.Item;
import com.labs64.netlicensing.schema.context.Property;

/* Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.labs64.netlicensing.schema.converter;


/**
 * Convert {@link Item} entity into {@link PaymentMethod} object.
 */
public class ItemToPaymentMethodConverter extends ItemToEntityBaseConverter<PaymentMethod> {

    @Override
    public PaymentMethod convert(final Item source) throws ConversionException {