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

org.simpleflatmapper.map.getter.ComposedContextualGetterFactory Maven / Gradle / Ivy

Go to download

Java library to map flat record - ResultSet, csv - to java object with minimum configuration and low footprint.

There is a newer version: 9.0.2
Show newest version
package org.simpleflatmapper.map.getter;

import org.simpleflatmapper.map.context.MappingContextFactoryBuilder;

import java.lang.reflect.Type;

public class ComposedContextualGetterFactory  implements ContextualGetterFactory {

    private final ContextualGetterFactory[] factories;

    private ComposedContextualGetterFactory(ContextualGetterFactory[] factories) {
        this.factories = factories;
    }

    @Override
    public 

ContextualGetter newGetter(Type target, K key, MappingContextFactoryBuilder mappingContextFactoryBuilder, Object... properties) { ContextualGetterFactory[] factories = this.factories; for(int i = 0; i < factories.length; i++) { ContextualGetterFactory factory = factories[i]; ContextualGetter getter = factory.newGetter(target, key, mappingContextFactoryBuilder, properties); if (getter != null) return getter; } return null; } public static ComposedContextualGetterFactory composed(ContextualGetterFactory cfg1, ContextualGetterFactory cfg2) { int size = getSize(cfg1) + getSize(cfg2); ContextualGetterFactory[] factories = new ContextualGetterFactory[size]; int index = 0; index = append(factories, 0, cfg1); index = append(factories, index, cfg2); return new ComposedContextualGetterFactory(factories); } private static int append(ContextualGetterFactory[] factories, int from, ContextualGetterFactory cfg) { if (cfg instanceof ComposedContextualGetterFactory) { ContextualGetterFactory[] fs = ((ComposedContextualGetterFactory)cfg).factories; System.arraycopy(fs, 0, factories, from, fs.length); return from + fs.length; } else { factories[from] = cfg; return from + 1; } } private static int getSize(ContextualGetterFactory cfg) { if (cfg instanceof ComposedContextualGetterFactory) { return ((ComposedContextualGetterFactory)cfg).factories.length; } return 1; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy