package com.hwlcn.ldap.ldap.sdk.persist;
import com.hwlcn.ldap.ldap.sdk.SearchResultEntry;
import com.hwlcn.ldap.ldap.sdk.SearchResultListener;
import com.hwlcn.ldap.ldap.sdk.SearchResultReference;
import com.hwlcn.core.annotation.ThreadSafety;
import com.hwlcn.ldap.util.ThreadSafetyLevel;
import static com.hwlcn.ldap.util.Debug.*;
@ThreadSafety(level=ThreadSafetyLevel.NOT_THREADSAFE)
final class SearchListenerBridge<T>
implements SearchResultListener
{
private static final long serialVersionUID = 1939354785788059032L;
private final LDAPPersister<T> persister;
private final ObjectSearchListener<T> listener;
SearchListenerBridge(final LDAPPersister<T> persister,
final ObjectSearchListener<T> listener)
{
this.persister = persister;
this.listener = listener;
}
public void searchEntryReturned(final SearchResultEntry searchEntry)
{
try
{
listener.objectReturned(persister.decode(searchEntry));
}
catch (LDAPPersistException lpe)
{
debugException(lpe);
listener.unparsableEntryReturned(searchEntry, lpe);
}
}
public void searchReferenceReturned(
final SearchResultReference searchReference)
{
listener.searchReferenceReturned(searchReference);
}
}