refactored ModuleRegistry to singleton system
Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
@@ -17,13 +17,8 @@ import java.util.List;
|
||||
|
||||
public abstract class BaseHandler extends PathHandler {
|
||||
|
||||
private final ModuleRegistry registry;
|
||||
|
||||
public record Page(String mime, byte[] bytes){}
|
||||
|
||||
public BaseHandler(ModuleRegistry registry){
|
||||
this.registry = registry.add(this);
|
||||
}
|
||||
|
||||
public HttpExchange addCors(HttpExchange ex){
|
||||
var headers = ex.getRequestHeaders();
|
||||
@@ -41,23 +36,11 @@ public abstract class BaseHandler extends PathHandler {
|
||||
return ex;
|
||||
}
|
||||
|
||||
public CompanyService companyService(){
|
||||
return registry.companyService();
|
||||
}
|
||||
|
||||
public DocumentService documentService(){
|
||||
return registry.documentService();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean doOptions(Path path, HttpExchange ex) throws IOException {
|
||||
return ok(addCors(ex));
|
||||
}
|
||||
|
||||
public ItemService itemService(){
|
||||
return registry.itemService();
|
||||
}
|
||||
|
||||
public boolean load(Path path, HttpExchange ex) throws IOException {
|
||||
try {
|
||||
var doc = load(path.toString());
|
||||
@@ -84,43 +67,15 @@ public abstract class BaseHandler extends PathHandler {
|
||||
}
|
||||
}
|
||||
|
||||
public NoteService noteService(){
|
||||
return registry.noteService();
|
||||
}
|
||||
|
||||
public boolean ok(HttpExchange ex) throws IOException {
|
||||
return sendEmptyResponse(HTTP_OK,ex);
|
||||
}
|
||||
|
||||
public PostBox postBox() {
|
||||
return registry.postBox();
|
||||
}
|
||||
|
||||
public ProjectService projectService(){
|
||||
return registry.projectService();
|
||||
}
|
||||
|
||||
public boolean send(HttpExchange ex, UmbrellaException e) throws IOException {
|
||||
return sendContent(ex,e.statusCode(),e.getMessage());
|
||||
}
|
||||
|
||||
public TagService tagService(){
|
||||
return registry.tagService();
|
||||
}
|
||||
|
||||
public TaskService taskService(){
|
||||
return registry.taskService();
|
||||
}
|
||||
|
||||
public Translator translator(){
|
||||
return registry.translator();
|
||||
}
|
||||
|
||||
public boolean unauthorized(HttpExchange ex) throws IOException {
|
||||
return sendEmptyResponse(HTTP_UNAUTHORIZED,ex);
|
||||
}
|
||||
|
||||
public UserService userService(){
|
||||
return registry.userService();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,78 +19,79 @@ public class ModuleRegistry {
|
||||
private Translator translator;
|
||||
private UserService userService;
|
||||
|
||||
private static final ModuleRegistry singleton = new ModuleRegistry();
|
||||
|
||||
private ModuleRegistry(){}
|
||||
|
||||
public ModuleRegistry add(Object service) {
|
||||
public static void add(Object service) {
|
||||
switch (service) {
|
||||
case BookmarkService bs: bookmarkService = bs; break;
|
||||
case CompanyService cs: companyService = cs; break;
|
||||
case DocumentService ds: documentService = ds; break;
|
||||
case ItemService is: itemService = is; break;
|
||||
case MarkdownService ms: markdownService = ms; break;
|
||||
case NoteService ns: noteService = ns; break;
|
||||
case PostBox pb: postBox = pb; break;
|
||||
case ProjectService ps: projectService = ps; break;
|
||||
case TagService ts: tagService = ts; break;
|
||||
case TaskService ts: taskService = ts; break;
|
||||
case TimeService ts: timeService = ts; break;
|
||||
case Translator tr: translator = tr; break;
|
||||
case UserService us: userService = us; break;
|
||||
case BookmarkService bs: singleton.bookmarkService = bs; break;
|
||||
case CompanyService cs: singleton.companyService = cs; break;
|
||||
case DocumentService ds: singleton.documentService = ds; break;
|
||||
case ItemService is: singleton.itemService = is; break;
|
||||
case MarkdownService ms: singleton.markdownService = ms; break;
|
||||
case NoteService ns: singleton.noteService = ns; break;
|
||||
case PostBox pb: singleton.postBox = pb; break;
|
||||
case ProjectService ps: singleton.projectService = ps; break;
|
||||
case TagService ts: singleton.tagService = ts; break;
|
||||
case TaskService ts: singleton.taskService = ts; break;
|
||||
case TimeService ts: singleton.timeService = ts; break;
|
||||
case Translator tr: singleton.translator = tr; break;
|
||||
case UserService us: singleton.userService = us; break;
|
||||
case null: break;
|
||||
default: System.getLogger(getClass().getSimpleName()).log(System.Logger.Level.WARNING,"Trying to add untracked class {0} to {1}",service.getClass().getSimpleName(),getClass().getSimpleName());
|
||||
default: System.getLogger(ModuleRegistry.class.getSimpleName()).log(System.Logger.Level.WARNING,"Trying to add untracked class {0}",service.getClass().getSimpleName());
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public BookmarkService bookmarkService(){
|
||||
return bookmarkService;
|
||||
public static BookmarkService bookmarkService(){
|
||||
return singleton.bookmarkService;
|
||||
}
|
||||
|
||||
public CompanyService companyService(){
|
||||
return companyService;
|
||||
public static CompanyService companyService(){
|
||||
return singleton.companyService;
|
||||
}
|
||||
|
||||
public DocumentService documentService(){
|
||||
return documentService;
|
||||
public static DocumentService documentService(){
|
||||
return singleton.documentService;
|
||||
}
|
||||
|
||||
public ItemService itemService(){
|
||||
return itemService;
|
||||
public static ItemService itemService(){
|
||||
return singleton.itemService;
|
||||
}
|
||||
|
||||
public MarkdownService markdownService(){
|
||||
return markdownService;
|
||||
public static MarkdownService markdownService(){
|
||||
return singleton.markdownService;
|
||||
}
|
||||
|
||||
public NoteService noteService(){
|
||||
return noteService;
|
||||
public static NoteService noteService(){
|
||||
return singleton.noteService;
|
||||
}
|
||||
|
||||
public PostBox postBox() {
|
||||
return postBox;
|
||||
public static PostBox postBox() {
|
||||
return singleton.postBox;
|
||||
}
|
||||
|
||||
public ProjectService projectService(){
|
||||
return projectService;
|
||||
public static ProjectService projectService(){
|
||||
return singleton.projectService;
|
||||
}
|
||||
|
||||
public TagService tagService(){
|
||||
return tagService;
|
||||
public static TagService tagService(){
|
||||
return singleton.tagService;
|
||||
}
|
||||
|
||||
public TaskService taskService(){
|
||||
return taskService;
|
||||
public static TaskService taskService(){
|
||||
return singleton.taskService;
|
||||
}
|
||||
|
||||
public TimeService timeService(){
|
||||
return timeService;
|
||||
public static TimeService timeService(){
|
||||
return singleton.timeService;
|
||||
}
|
||||
|
||||
public Translator translator(){
|
||||
return translator;
|
||||
public static Translator translator(){
|
||||
return singleton.translator;
|
||||
}
|
||||
|
||||
public UserService userService(){
|
||||
return userService;
|
||||
public static UserService userService(){
|
||||
return singleton.userService;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user