package oracle.demo.topdowndoclit.service;
import java.util.Set;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.ArrayList;
import java.util.Calendar;
import java.rmi.RemoteException;
import oracle.demo.topdowndoclit.types.*;
public class DocLitLoggerImpl implements LoggingFacilityLogPortType{
private Set m_logSet;
public DocLitLoggerImpl(){
m_logSet = new HashSet();
}
public void logEvent(LogEventRequestType document) throws
RemoteException {
synchronized(this){
m_logSet.add(document);
}
}
public GetEventsResponseType getEvents(GetEventsRequestType document) throws
GetEventsFaultType_Exception, RemoteException {
GetEventsResponseType response = new GetEventsResponseType();
List responseList = new ArrayList();
synchronized(this){
Iterator it = m_logSet.iterator();
String id = document.getDemoUserID();
while(it.hasNext()){
LogEventRequestType req = (LogEventRequestType)it.next();
if(id.equals(req.getDemoUserID())){
responseList.add(createLogEntryFromRequest(req));
}
}
response.setLogEntry((LogEntry[])responseList.toArray(new LogEntry[0]));
}
return response;
}
private LogEntry createLogEntryFromRequest(LogEventRequestType req) {
LogEntry le = new LogEntry();
le.setAny(req.getAny());
le.setEventDescription(req.getEventDescription());
le.setEventID(req.getEventID());
le.setServiceID(req.getServiceID());
le.setTimestamp(Calendar.getInstance());
return le;
}
}
|