
org.diirt.datasource.expression.MapUpdate Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of datasource Show documentation
Show all versions of datasource Show documentation
Support for publish/subscribe data sources.
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