/** * 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.sim; import java.util.List; import java.util.logging.Logger; import org.diirt.datasource.ChannelWriteCallback; import org.diirt.datasource.MultiplexedChannelHandler; import org.diirt.datasource.util.FunctionParser; import org.diirt.vtype.ValueFactory; /** * * @author carcassi */ class ConstantChannelHandler extends MultiplexedChannelHandler<Object, Object> { private static final Logger log = Logger.getLogger(ConstantChannelHandler.class.getName()); public ConstantChannelHandler(String channelName) { super(channelName); List<Object> tokens = FunctionParser.parseFunctionWithScalarOrArrayArguments(channelName, "Wrong syntax. Correct examples: const(3.14), const(\"Bob\"), const(1,2,3), const(\"ON\", \"OFF\""); processMessage((Object) ValueFactory.toVTypeChecked(tokens.get(1))); } @Override public void connect() { processConnection(new Object()); } @Override public void disconnect() { processConnection(null); } @Override protected boolean saveMessageAfterDisconnect() { return true; } @Override public void write(Object newValue, ChannelWriteCallback callback) { throw new UnsupportedOperationException("Can't write to simulation channel."); } }