/**
* Copyright (C) 2010-14 diirt developers. See COPYRIGHT.TXT
* All rights reserved. Use is subject to license terms. See LICENSE.TXT
*/
package org.diirt.datasource.formula;
import org.diirt.datasource.PVWriterDirector;
import org.diirt.datasource.WriteFunction;
import org.diirt.datasource.WriteRecipeBuilder;
import org.diirt.datasource.expression.WriteExpressionImpl;
import org.diirt.datasource.expression.WriteExpressionListImpl;
/**
*
* @author carcassi
*/
class ReadOnlyWriteExpression<T> extends WriteExpressionImpl<T> {
private final String errorMessage;
public ReadOnlyWriteExpression(final String errorMessage, String defaultName) {
super(new WriteExpressionListImpl<>(), new WriteFunction<T>() {
@Override
public void writeValue(T newValue) {
throw new RuntimeException(errorMessage);
}
}, defaultName);
this.errorMessage = errorMessage;
}
@Override
public void fillWriteRecipe(PVWriterDirector director, WriteRecipeBuilder builder) {
super.fillWriteRecipe(director, builder);
director.connectStatic(new RuntimeException(errorMessage), false, getName());
}
}