szkielet oblsugi eventow
This commit is contained in:
1 parent
6942009358
commit
a733249665
4 files changed
+87
No files matched your search
@@ -0,0 +1,53 @@
|
||||
package application.events;
|
||||
|
||||
import org.reflections.Reflections;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* Created by lukasgol on 01.02.15.
|
||||
*/
|
||||
@Component
|
||||
public class EventManager {
|
||||
|
||||
Set<Class<? extends EventObject>> eventClassSet;
|
||||
Set<EventObject> eventsSet;
|
||||
public EventManager() {
|
||||
eventClassSet = findEventClasses();
|
||||
eventsSet = instantiateEvents(eventClassSet);
|
||||
System.out.println("Class EventManagerCreated");
|
||||
}
|
||||
|
||||
public Set<Class<? extends EventObject>> findEventClasses(){
|
||||
System.out.println("Class Finder started...");
|
||||
Reflections reflections = new Reflections("application.events.impl");
|
||||
Set<Class<? extends EventObject>> classes = reflections.getSubTypesOf(EventObject.class);
|
||||
System.out.println("Class Finder stoped");
|
||||
return classes;
|
||||
}
|
||||
|
||||
public Set<EventObject> instantiateEvents(Set<Class<? extends EventObject>> classes){
|
||||
Set<EventObject> eventObjectSet = new HashSet<>();
|
||||
for (Class<? extends EventObject> c : classes) {
|
||||
try {
|
||||
EventObject obj=c.newInstance();
|
||||
System.out.println("Crated new Event: "+c.getName());
|
||||
eventObjectSet.add(obj);
|
||||
} catch (InstantiationException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return eventObjectSet;
|
||||
}
|
||||
|
||||
public void startEvents(){
|
||||
for(EventObject e:eventsSet){
|
||||
e.validEvent();
|
||||
if(e.isValid())e.handleEvent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package application.events;
|
||||
|
||||
/**
|
||||
* Created by lukasgol on 01.02.15.
|
||||
*/
|
||||
public interface EventObject {
|
||||
public void validEvent();
|
||||
public void handleEvent();
|
||||
public boolean isValid();
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package application.events.impl;
|
||||
|
||||
import application.events.EventObject;
|
||||
|
||||
/**
|
||||
* Created by lukasgol on 01.02.15.
|
||||
*/
|
||||
public class EventObjectImpl implements EventObject {
|
||||
@Override
|
||||
public void validEvent() {
|
||||
System.out.println("Chceking event: "+this.getClass().getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleEvent() {
|
||||
System.out.println("sending notification for event: "+this.getClass().getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isValid() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user