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

io.gridgo.utils.pojo.getter.PojoGetter Maven / Gradle / Ivy

package io.gridgo.utils.pojo.getter;

import io.gridgo.utils.pojo.getter.fieldwalkers.FieldWalker;
import io.gridgo.utils.pojo.getter.fieldwalkers.GenericFieldWalker;
import lombok.NonNull;

public class PojoGetter {

    public static PojoGetter of(@NonNull Object target, PojoGetterProxy proxy) {
        return new PojoGetter(target, proxy);
    }

    public static PojoGetter of(@NonNull Object target) {
        return of(target, null);
    }

    /********************************************************
     ********************* END OF STATIC ********************
     ********************************************************/

    private final FieldWalker fieldWalker = GenericFieldWalker.getInstance();

    private final Object target;

    private final PojoGetterProxy proxy;

    private boolean shallowly = false;

    @NonNull
    private PojoFlattenAcceptor walker;

    private PojoGetter(Object target, PojoGetterProxy proxy) {
        this.target = target;
        this.proxy = proxy;
    }

    public PojoGetter shallowly(boolean shallowly) {
        this.shallowly = shallowly;
        return this;
    }

    public PojoGetter walker(PojoFlattenAcceptor walker) {
        this.walker = walker;
        return this;
    }

    public void walk() {
        fieldWalker.walk(target, proxy, walker, shallowly);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy