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

org.diirt.datasource.expression.MapUpdate Maven / Gradle / Ivy

The newest version!
/**
 * Copyright (C) 2010-18 diirt developers. See COPYRIGHT.TXT
 * All rights reserved. Use is subject to license terms. See LICENSE.TXT
 */
package org.diirt.datasource.expression;

import java.util.Collection;
import java.util.Collections;
import java.util.Map;
import org.diirt.datasource.ReadFunction;
import org.diirt.datasource.WriteFunction;

/**
 *
 * @author carcassi
 */
class MapUpdate {

    private final Collection expressionsToDelete;
    private final Map> readFunctionsToAdd;
    private final Map> writeFunctionsToAdd;
    private final boolean toClear;

    private MapUpdate(Collection expressionsToDelete, Map> readFunctionsToAdd,
            Map> writeFunctionsToAdd, boolean toClear) {
        this.expressionsToDelete = expressionsToDelete;
        this.readFunctionsToAdd = readFunctionsToAdd;
        this.writeFunctionsToAdd = writeFunctionsToAdd;
        this.toClear = toClear;
    }

    public Collection getExpressionsToDelete() {
        return expressionsToDelete;
    }

    public Map> getReadFunctionsToAdd() {
        return readFunctionsToAdd;
    }

    public Map> getWriteFunctionsToAdd() {
        return writeFunctionsToAdd;
    }

    public boolean isToClear() {
        return toClear;
    }

    public static  MapUpdate clear() {
        return new MapUpdate<>(Collections.emptyList(), Collections.>emptyMap(),
                Collections.>emptyMap(), true);
    }

    public static  MapUpdate addReadFunction(String name, ReadFunction function) {
        return new MapUpdate<>(Collections.emptyList(), Collections.singletonMap(name, function),
                null, false);
    }

    public static  MapUpdate addWriteFunction(String name, WriteFunction function) {
        return new MapUpdate<>(Collections.emptyList(), null,
                Collections.singletonMap(name, function), false);
    }

    public static  MapUpdate removeFunction(String name) {
        return new MapUpdate<>(Collections.singleton(name), Collections.>emptyMap(),
                Collections.>emptyMap(), true);
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy