Java tutorial
/* * Copyright (c) Mirth Corporation. All rights reserved. * * http://www.mirthcorp.com * * The software in this package is published under the terms of the MPL license a copy of which has * been included with this distribution in the LICENSE.txt file. */ package com.mirth.connect.donkey.server.channel; import java.util.List; import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; import com.mirth.connect.donkey.model.channel.MetaDataColumn; import com.mirth.connect.donkey.model.channel.MetaDataColumnException; import com.mirth.connect.donkey.model.message.ConnectorMessage; public class MetaDataReplacer { private Logger logger = Logger.getLogger(getClass()); /* * Extracts any custom columns from the connector message and adds them to * the custom column map. */ public void setMetaDataMap(ConnectorMessage connectorMessage, List<MetaDataColumn> metaDataColumns) { for (MetaDataColumn column : metaDataColumns) { if (StringUtils.isNotEmpty(column.getMappingName())) { Object value = getMetaDataValue(connectorMessage, column); if (value != null) { try { connectorMessage.getMetaDataMap().put(column.getName(), column.getType().castValue(value)); } catch (MetaDataColumnException e) { // If there is an error casting the value, log a warning but continue with processing because // the metadata values are not essential for processing logger.warn("Could not cast value '" + value + "' to " + column.getType().toString(), e); } } } } } protected Object getMetaDataValue(ConnectorMessage connectorMessage, MetaDataColumn column) { Object value = null; if (connectorMessage.getConnectorMap().containsKey(column.getMappingName())) { value = connectorMessage.getConnectorMap().get(column.getMappingName()); } else if (connectorMessage.getChannelMap().containsKey(column.getMappingName())) { value = connectorMessage.getChannelMap().get(column.getMappingName()); } else if (connectorMessage.getSourceMap().containsKey(column.getMappingName())) { value = connectorMessage.getSourceMap().get(column.getMappingName()); } return value; } }