package com.log.core;
import java.util.LinkedList;
import java.util.Queue;
import com.log.model.Application;
import com.log.model.ApplicationObject;
public class ApplicationRegistration {
private Application application;
public ApplicationRegistration(Application application) {
super();
this.application = application;
objects = new LinkedList<ApplicationObject>();
}
private Queue<ApplicationObject> objects;
public void appendLog(ApplicationObject log) {
synchronized (objects) {
objects.add(log);
objects.notifyAll();
}
}
public ApplicationObject getNextObject() {
synchronized (objects) {
if(!objects.isEmpty()) {
return objects.poll();
}
}
try {
synchronized (objects) {
objects.wait();
if(!objects.isEmpty()) {
return objects.poll();
}
}
} catch (InterruptedException e) {
return null;
}
return getNextObject();
}
public Application getApplication() {
return application;
}
public void setApplication(Application application) {
this.application = application;
}
}