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

org.jfaster.badger.sql.UpdateOpTransfer Maven / Gradle / Ivy

package org.jfaster.badger.sql;

import java.util.LinkedHashMap;
import java.util.Map;

/**
 *
 * @author yanpengfang
 * create 2019-01-13 11:34 AM
 */
public class UpdateOpTransfer {
    /**
     * 生成自增id的更新操作支持的返回类型
     */
    public final static Map GENERATED_TRANSFORMERS = new LinkedHashMap<>();

    static {
        GENERATED_TRANSFORMERS.put(int.class, IntegerTransformer.INSTANCE);
        GENERATED_TRANSFORMERS.put(long.class, LongTransformer.INSTANCE);
        GENERATED_TRANSFORMERS.put(Integer.class, IntegerTransformer.INSTANCE);
        GENERATED_TRANSFORMERS.put(Long.class, LongTransformer.INSTANCE);
    }

    public interface Transformer {
        Object transform(Number n);
    }

    public interface GeneratedTransformer extends Transformer {
        Class getRawType();
    }

    public enum IntegerTransformer implements GeneratedTransformer {
        INSTANCE;

        @Override
        public Object transform(Number n) {
            return n.intValue();
        }

        @Override
        public Class getRawType() {
            return int.class;
        }
    }

    public enum LongTransformer implements GeneratedTransformer {
        INSTANCE;

        @Override
        public Object transform(Number n) {
            return n.longValue();
        }

        @Override
        public Class getRawType() {
            return long.class;
        }
    }

    public enum VoidTransformer implements Transformer {
        INSTANCE;

        @Override
        public Object transform(Number n) {
            return null;
        }
    }

    public enum BooleanTransformer implements Transformer {
        INSTANCE;

        @Override
        public Object transform(Number n) {
            return n.intValue() > 0 ? Boolean.TRUE : Boolean.FALSE;
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy