package org.juxtapose.streamline.util.net; import java.util.Iterator; import java.util.Map.Entry; import org.juxtapose.streamline.producer.ISTMEntryKey; import org.juxtapose.streamline.stm.ISTM; import org.juxtapose.streamline.util.Status; import org.juxtapose.streamline.util.data.DataType; import org.juxtapose.streamline.util.data.DataTypeString; import com.trifork.clj_ds.IPersistentMap; /** * @author Pontus J�rgne * 2 maj 2013 * Copyright (c) Pontus J�rgne. All rights reserved */ public class RemoteServiceTrackerProducer extends RemoteProxyEntryProducer { RemoteServiceTracker tracker; /** * @param inSTM * @param inKey * @param inConnector * @param inTracker */ public RemoteServiceTrackerProducer( ISTM inSTM, ISTMEntryKey inKey, ClientConnectorHandler inConnector, RemoteServiceTracker inTracker ) { super( inSTM, inKey, inConnector ); tracker = inTracker; } /* (non-Javadoc) * @see org.juxtapose.streamline.util.net.RemoteProxyEntryProducer#updateData(org.juxtapose.streamline.producer.ISTMEntryKey, com.trifork.clj_ds.IPersistentMap, boolean) */ public void updateData( ISTMEntryKey inKey, final IPersistentMap<String, DataType<?>> inData, boolean inFirstUpdate ) { Iterator<Entry<String, DataType<?>>> iterator = inData.iterator(); while( iterator.hasNext() ) { Entry<String, DataType<?>> entry = iterator.next(); if( entry.getValue() instanceof DataTypeString ) { String strStatus = (String)entry.getValue().get(); Status serviceStatus = Status.valueOf( strStatus ); tracker.statusUpdated( entry.getKey(), serviceStatus ); } } } }