refactored ModuleRegistry to singleton system

Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
2025-09-12 00:38:28 +02:00
parent e8e215f24c
commit bfe87f53a8
23 changed files with 140 additions and 163 deletions

View File

@@ -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();
}
}

View File

@@ -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;
}
}