All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.moon.mapping.processing.ConvertStrategy Maven / Gradle / Ivy

package com.moon.mapping.processing;

import java.util.Collection;
import java.util.Map;

/**
 * @author benshaoye
 */
public enum ConvertStrategy {
    /**
     * 正向映射
     */
    FORWARD {
        @Override
        public Map> getMethodAttrMap(BaseDefinition definition) {
            return definition.getGetterAttrMap();
        }

        @Override
        public String forMethod(
            MapMethodFactory factory, String thisClass, String thatClass, Collection fields
        ) { return factory.unsafeForward(thisClass, thatClass, fields); }

        @Override
        public boolean isIgnore(PropertyAttr attr) { return attr.isIgnoreForward(); }
    },
    /**
     * 反向映射
     */
    BACKWARD {
        @Override
        public Map> getMethodAttrMap(BaseDefinition definition) {
            return definition.getSetterAttrMap();
        }

        @Override
        public String forMethod(
            MapMethodFactory factory, String thisClass, String thatClass, Collection fields
        ) { return factory.unsafeBackward(thisClass, thatClass, fields); }

        @Override
        public boolean isIgnore(PropertyAttr attr) { return attr.isIgnoreBackward(); }
    };

    public abstract Map> getMethodAttrMap(BaseDefinition definition);

    public abstract String forMethod(
        MapMethodFactory factory, String thisClass, String thatClass, Collection fields
    );

    public abstract boolean isIgnore(PropertyAttr attr);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy