Adapter Development Kit 9.12 | webMethods Adapter Development Kit Documentation | webMethods Adapter Development Kit Installation and User’s Documentation | Listener Notifications | Listener Implementation | Example Listener Class
 
Example Listener Class
package com.wm.MyAdapter.listeners;

import com.wm.adk.error.AdapterException;
import com.wm.adk.metadata.WmDescriptor;
import com.wm.adk.notification.WmConnectedListener;
import com.wm.adk.notification.NotificationResults;

import java.io.FileReader;
import java.util.Locale;
import javax.resource.ResourceException;

import com.wm.MyAdapter.MyAdapter;
import com.wm.MyAdapter.connections.SimpleConnection;
public class SimpleListener extends WmConnectedListener
{
public static final String FILE_NAME_PARM = "fileName";
private String _fileName = null;
public void setFileName(String val){_fileName = val;}

private FileReader _reader = null;
private StringBuffer workingBuffer = new StringBuffer();
private String _lastDataObject = null;

public void fillWmDescriptor(WmDescriptor descriptor, Locale locale)
throws ResourceException
{
descriptor.setRequired(FILE_NAME_PARM);
descriptor.setDescriptions(
MyAdapter.getInstance().getAdapterResourceBundleManager(), locale);
}
public void listenerStartup() throws ResourceException
{
try
{
//_reader = ((SimpleConnection)retrieveConnection()).getReader();
_reader = ((SimpleConnection)retrieveConnection()).getReader(_fileName);
while(_reader.ready())
{
_reader.read(); // move to the end of the stream
}
}
catch (Throwable t)
{
throw MyAdapter.getInstance().createAdapterException(100,t);
}
}

public Object waitForData() throws ResourceException
{
try
{
if(_reader.ready())
{
do
{
int i = _reader.read();
if (i != -1)
{
char c = (char)i;
workingBuffer.append(c);
if(c == '\n')
{
_lastDataObject = new String(workingBuffer);
workingBuffer = new StringBuffer();
break;
}
}
else
{
break;
}
} while (_reader.ready());
}
}
catch (Throwable t)
{
throw MyAdapter.getInstance().createAdapterException(100,t);
}
return _lastDataObject;
}
public void listenerShutdown()
{
try
{
_reader.close();
}
catch(Throwable t){}
}
public void processNotificationResults(NotificationResults results)
throws ResourceException
{
if(results != null)
{
if(results.hadError())
{
MyAdapter.getLogger().logError(9999,
"Error processing: " + this._lastDataObject +
" errorInfo = " + (results.getErrorInfo() == null ? "" : results.getErrorInfo().toString()));
}
}
else
{
MyAdapter.getLogger().logError( 9999,
"No notification available to process:" +
this._lastDataObject);
}
}
}