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

org.simpleflatmapper.map.mapper.MapperSourceImpl Maven / Gradle / Ivy

package org.simpleflatmapper.map.mapper;

import org.simpleflatmapper.map.FieldKey;
import org.simpleflatmapper.map.getter.ContextualGetterFactory;
import org.simpleflatmapper.map.getter.ContextualGetterFactoryAdapter;
import org.simpleflatmapper.reflect.getter.GetterFactory;

public class MapperSourceImpl> implements MapperSource {

    private final Class source;
    private final ContextualGetterFactory getterFactory;

    public MapperSourceImpl(Class source, ContextualGetterFactory getterFactory) {
        this.source = source;
        this.getterFactory = getterFactory;
    }

    @Override
    public Class source() {
        return source;
    }

    @Override
    public ContextualGetterFactory getterFactory() {
        return getterFactory;
    }

    public MapperSourceImpl getterFactory(ContextualGetterFactory getterFactory) {
        if (getterFactory == null) return this;
        return new MapperSourceImpl(source, getterFactory);
    }

    public MapperSourceImpl getterFactory(GetterFactory getterFactory) {
        if (getterFactory == null) return this;
        return getterFactory(new ContextualGetterFactoryAdapter(getterFactory));
    }

}