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

com.brettonw.bedrock.bag.entry.HandlerObjectFromPairsArray Maven / Gradle / Ivy

package com.brettonw.bedrock.bag.entry;

import com.brettonw.bedrock.bag.BagArray;
import com.brettonw.bedrock.bag.BagObject;

public class HandlerObjectFromPairsArray implements Handler {
    private Handler arrayHandler;
    protected boolean accumulateEntries;

    public HandlerObjectFromPairsArray (Handler arrayHandler) {
        super ();
        this.arrayHandler = arrayHandler;
        accumulateEntries = false;
    }

    public HandlerObjectFromPairsArray accumulateEntries (boolean accumulateEntries) {
        this.accumulateEntries = accumulateEntries;
        return this;
    }

    @Override
    public Object getEntry (String input) {
        // read the bag array of the input, and check for success
        BagArray bagArray = (BagArray) arrayHandler.getEntry (input);
        if (bagArray != null) {
            // create a bag object from the array of pairs
            BagObject bagObject = new BagObject (bagArray.getCount ());
            bagArray.forEach (object -> {
                BagArray pair = (BagArray) object;
                    if (accumulateEntries) {
                        bagObject.add (pair.getString (0), pair.getString (1));
                    } else {
                        bagObject.put (pair.getString (0), pair.getString (1));
                    }
            });

            // return the result
            return bagObject;
        }
        return null;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy