Compare commits

...

38 commits

Author SHA1 Message Date
db10965c69
Rename name-conflicting NoAccessExceptions
Some checks failed
build-and-test / build (push) Failing after 36s
build-and-test / generate-javadoc (push) Failing after 38s
build-and-test / test (push) Failing after 42s
2024-08-31 13:53:39 +02:00
f578360395
Did I accidentally commit test code?
Some checks failed
build-and-test / test (push) Failing after 55s
build-and-test / build (push) Successful in 1m15s
build-and-test / generate-javadoc (push) Successful in 1m17s
2024-08-31 13:23:35 +02:00
6e7d660d70
Rename packages
Some checks failed
build-and-test / test (push) Failing after 1m3s
build-and-test / generate-javadoc (push) Failing after 1m9s
build-and-test / build (push) Failing after 1m12s
2024-08-31 13:15:31 +02:00
a3ca81498e
Replace Thread#sleep calls with Thread#onSpinWait 2024-08-30 03:06:36 +02:00
0d4fa85c91
Separate API documentation links 2024-08-24 22:56:27 +02:00
b974ce22b0
Add licensing and copyright information to init message 2024-08-21 21:45:43 +02:00
34be192d5b
[no ci] Update copyright notice 2024-08-21 21:41:28 +02:00
d1fa759d0a
Ensure engine shutdown after running tests 2024-08-21 21:26:25 +02:00
6a2a18095b
Fix Javadoc warnings 2024-08-21 21:19:22 +02:00
b4f5829375
Add PrintStreamService (implements #5) 2024-08-21 19:35:05 +02:00
b3968d8469
Fix typo Notifiying -> Notifying 2024-08-21 13:53:57 +02:00
d06f8a3dc3
Move ShutdownHandler code into EngineInternals 2024-08-21 13:51:21 +02:00
f1fb21dbb1
Replace executeSafely with good 'ol try-catch 2024-08-21 01:52:32 +02:00
5284dfe17b
Remove 1s thread sleep 2024-08-21 01:51:13 +02:00
8ea4594e6f
Revert "Removed safety shutdown hook again"
Found a fix.
This reverts commit f880122add.
2024-08-21 01:50:49 +02:00
f880122add
Removed safety shutdown hook again 2024-08-21 01:43:08 +02:00
2fedc981af
Add shutdown hook functionality (broken, #6)
Doesn't really work right now, will likely be removed
2024-08-21 01:40:45 +02:00
5718f33d88
Fix PlaceholderEngine usage in Logger.java 2024-08-20 22:32:21 +02:00
98ff132d27
Update Gradle wrapper to 8.10 2024-08-20 22:09:27 +02:00
c90406dac9
Make GLFW subsystem standalone + remove unnecessary fluff 2024-08-20 22:07:49 +02:00
ae790dbd18
Flush logs before printing crash report 2024-08-20 21:45:41 +02:00
701f316950
Nuke 'graphics', welcome 'windowing' 2024-08-20 21:01:39 +02:00
a550f0a16a
Update docusaurus 2024-08-20 20:54:46 +02:00
ef613acc59
[no ci] Fix typos, add link for JVM langs 2024-08-20 20:54:02 +02:00
29ac99c478
Remove size and position w/ decoration getters 2024-08-20 20:31:27 +02:00
ca3bf94a48
Prevent allocation in loops 2024-08-20 20:25:46 +02:00
ad7b3568cf
Add config setting for toggling newline support 2024-08-19 20:28:40 +02:00
48c326ad71
[no ci] Remove breakpoint instruction 2024-08-19 20:28:13 +02:00
fb82c9c4b0
Rework logger placeholder replacement, add newline support
This commit reworks how placeholders work in Logger.java and adds support for printing multiple lines.
2024-08-19 20:17:55 +02:00
971f81a626
Fix quirk of Jansi in AnsiShortcodeConverter
This commit prevents toggling attributes when including them multiple times in a string and instead simply ignores them when specified multiple times without <reset>ting them.
2024-08-19 20:14:55 +02:00
70ff609b77
[no ci] Sort properties in gradle.properties 2024-08-19 15:17:39 +02:00
54cde09be3
Update test configuration in other build.gradle files 2024-08-19 02:59:11 +02:00
43e038d3ec
Add correct @since tag to ListFormatter 2024-08-19 02:49:46 +02:00
781f1c113c
Remove unused and leftover methods 2024-08-19 02:49:31 +02:00
f828d31094
Remove args from Main#run method 2024-08-19 02:49:14 +02:00
9ff4f96814
Remove many unused warning supressions
Why did I add this to every single class file in the first place...?
2024-08-19 02:49:00 +02:00
ed9c94f17c
Added hacky way for controlling the execution of tests 2024-08-19 02:06:26 +02:00
94fb91197a
Add caching to workflows 2024-08-18 20:25:09 +02:00
306 changed files with 2739 additions and 2779 deletions

View file

@ -12,8 +12,26 @@ jobs:
steps:
- name: Checkout
uses: https://code.forgejo.org/actions/checkout@v4
- name: Restore Gradle cache
uses: actions/cache/restore@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
gradle-${{ runner.os }}-
- name: Compile
run: ./gradlew --no-daemon jar javadocJar sourceJar
- name: Save Gradle cache
uses: actions/cache/save@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
gradle-${{ runner.os }}-
- name: Upload library JARs
uses: https://code.forgejo.org/forgejo/upload-artifact@v4
with:
@ -44,8 +62,26 @@ jobs:
steps:
- name: Checkout
uses: https://code.forgejo.org/actions/checkout@v4
- name: Restore Gradle cache
uses: actions/cache/restore@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
gradle-${{ runner.os }}-
- name: Generate javadoc
run: ./gradlew --no-daemon javadoc javadocAll
- name: Save Gradle cache
uses: actions/cache/save@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
gradle-${{ runner.os }}-
- name: Upload separate javadoc
uses: https://code.forgejo.org/forgejo/upload-artifact@v4
with:
@ -67,5 +103,23 @@ jobs:
steps:
- name: Checkout
uses: https://code.forgejo.org/actions/checkout@v4
- name: Restore Gradle cache
uses: actions/cache/restore@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
gradle-${{ runner.os }}-
- name: Run tests
run: ./gradlew --no-daemon test
- name: Save Gradle cache
uses: actions/cache/save@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
gradle-${{ runner.os }}-

View file

@ -11,8 +11,26 @@ jobs:
steps:
- name: Checkout
uses: https://code.forgejo.org/actions/checkout@v4
- name: Restore Gradle cache
uses: actions/cache/restore@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
gradle-${{ runner.os }}-
- name: Generate javadoc
run: ./gradlew --no-daemon javadoc
- name: Save Gradle cache
uses: actions/cache/save@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
gradle-${{ runner.os }}-
test:
runs-on: docker
container:
@ -20,5 +38,23 @@ jobs:
steps:
- name: Checkout
uses: https://code.forgejo.org/actions/checkout@v4
- name: Restore Gradle cache
uses: actions/cache/restore@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
gradle-${{ runner.os }}-
- name: Run tests
run: ./gradlew --no-daemon test
- name: Save Gradle cache
uses: actions/cache/save@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
gradle-${{ runner.os }}-

View file

@ -1,7 +1,7 @@
<component name="CopyrightManager">
<copyright>
<option name="allowReplaceRegexp" value="Copyright .* The StarOpenSource Engine Contributors" />
<option name="notice" value="STAROPENSOURCE ENGINE SOURCE FILE&#10;Copyright (c) &amp;#36;today.year The StarOpenSource Engine Contributors&#10;Licensed under the GNU Affero General Public License v3&#10;&#10;This program is free software: you can redistribute it and/or modify&#10;it under the terms of the GNU Affero General Public License as&#10;published by the Free Software Foundation, either version 3 of the&#10;License, or (at your option) any later version.&#10;&#10;This program is distributed in the hope that it will be useful,&#10;but WITHOUT ANY WARRANTY; without even the implied warranty of&#10;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the&#10;GNU Affero General Public License for more details.&#10;&#10;You should have received a copy of the GNU Affero General Public License&#10;along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;." />
<option name="notice" value="STAROPENSOURCE ENGINE SOURCE FILE&#10;Copyright (c) &amp;#36;today.year The StarOpenSource Engine Authors&#10;Licensed under the GNU Affero General Public License v3&#10;&#10;This program is free software: you can redistribute it and/or modify&#10;it under the terms of the GNU Affero General Public License as&#10;published by the Free Software Foundation, either version 3 of the&#10;License, or (at your option) any later version.&#10;&#10;This program is distributed in the hope that it will be useful,&#10;but WITHOUT ANY WARRANTY; without even the implied warranty of&#10;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the&#10;GNU Affero General Public License for more details.&#10;&#10;You should have received a copy of the GNU Affero General Public License&#10;along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;." />
<option name="myName" value="sos!engine" />
</copyright>
</component>
</component>

View file

@ -19,8 +19,8 @@ The StarOpenSource Engine is under heavy development and is extremely unstable.
## About
### ... the engine
The StarOpenSource Engine is a modular and extensible framework for building applications and games written in the Java programming language.
The engine consists of various subsystems, each separate and responsible for only a few closely-related things.
The StarOpenSource Engine is a modular and extensible framework for building applications and games written in [one of the multiple JVM programming languages](https://en.wikipedia.org/wiki/List_of_JVM_languages).
The engine consists of various subsystems, each separate and responsible for only a few closely-related tasks.
\
Not only that. The engine also features various useful classes, interfaces and methods making development fun and simpler, while being lightweight.
### ... the repository
@ -50,10 +50,10 @@ We recommend and are using [IntelliJ IDEA Community Edition](https://github.com/
We recommend looking at existing classes and code for a good understanding on how we'd like code to be written.
Here's a quick rundown on the most important things:
- Document EVERYTHING. Every single class, field and method, even if private.
- Make comments about your code, unless it's extremly simple and easy to understand.
- Make comments about your code, unless it's extremely simple and easy to understand.
- Make sure to add and update `@since` in javadoc comments (update if the javadoc changes a good amount).
- Keep stuff simple, no need to elaborate what a logger is. Though remember to not make it *too* simple.
- Make sure every field and method has a newline to seperate it.
- Make sure every field and method has a newline to separate it.
- Files must end with a newline or cats might get angry.
- Use your brain.
### Pull request guidelines

View file

@ -92,6 +92,13 @@ javadoc {
test {
useJUnitPlatform()
// Pass test configuration to test VMs
Map<String, String> testConfiguration = new HashMap<>();
for (String property : project.properties.keySet())
if (property.startsWith("test."))
testConfiguration.put(property, project.properties.get(property).toString())
systemProperties(testConfiguration)
setMaxParallelForks(project.hasProperty("jobs") ? Integer.parseInt((String) project.property("jobs")) : 8)
setForkEvery(1)
setFailFast(true)

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -20,9 +20,9 @@
package de.staropensource.sosengine.ansi;
import de.staropensource.sosengine.base.EngineConfiguration;
import de.staropensource.sosengine.base.classes.LoggerImplementation;
import de.staropensource.sosengine.base.implementable.LoggerImplementation;
import de.staropensource.sosengine.base.logging.Logger;
import de.staropensource.sosengine.base.types.logging.LogLevel;
import de.staropensource.sosengine.base.type.logging.LogLevel;
import org.fusesource.jansi.Ansi;
import org.fusesource.jansi.AnsiConsole;
import org.jetbrains.annotations.NotNull;
@ -35,7 +35,6 @@ import org.jetbrains.annotations.Nullable;
* @see LoggerImplementation
* @since v1-alpha2
*/
@SuppressWarnings({ "unused" })
public class AnsiLoggerImplementation implements LoggerImplementation {
/**
* Constructs this class.

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,18 +19,20 @@
package de.staropensource.sosengine.ansi;
import de.staropensource.sosengine.base.classes.ShortcodeParserSkeleton;
import de.staropensource.sosengine.base.exceptions.ParserException;
import de.staropensource.sosengine.base.implementable.ShortcodeParserSkeleton;
import de.staropensource.sosengine.base.exception.ParserException;
import org.fusesource.jansi.Ansi;
import org.jetbrains.annotations.NotNull;
import java.util.HashSet;
import java.util.Set;
/**
* Converts shortcodes such as {@code <bold>} or {@code <blink>} into a usable {@link Ansi} escape sequence.
*
* @see ShortcodeParserSkeleton
* @since v1-alpha2
*/
@SuppressWarnings({ "unused" })
public final class AnsiShortcodeConverter extends ShortcodeParserSkeleton {
/**
* Constructs this class.
@ -52,11 +54,13 @@ public final class AnsiShortcodeConverter extends ShortcodeParserSkeleton {
*/
public @NotNull Ansi getAnsi() {
Ansi ansi = Ansi.ansi();
Set<@NotNull String> status = new HashSet<>();
for (String component : components)
if (component.equals("RESET"))
if (component.equals("RESET")) {
ansi.a(Ansi.Attribute.RESET);
else if (component.startsWith("TEXT:"))
status.clear();
} else if (component.startsWith("TEXT:"))
ansi.a(component.substring(5));
else if (component.startsWith("COLOR:"))
if (component.startsWith("COLOR:FOREGROUND:"))
@ -64,18 +68,38 @@ public final class AnsiShortcodeConverter extends ShortcodeParserSkeleton {
else if (component.startsWith("COLOR:BACKGROUND:"))
ansi.bg(Ansi.Color.valueOf(component.substring(17)));
else if (component.startsWith("ATTRIBUTE:"))
if (component.startsWith("ATTRIBUTE:BLINK"))
if (component.startsWith("ATTRIBUTE:BLINK")) {
if (status.contains("ATTRIBUTE:BLINK"))
continue;
ansi.a(Ansi.Attribute.BLINK_SLOW);
else if (component.startsWith("ATTRIBUTE:BOLD"))
status.add("ATTRIBUTE:BLINK");
} else if (component.startsWith("ATTRIBUTE:BOLD")) {
if (status.contains("ATTRIBUTE:BOLD"))
continue;
ansi.a(Ansi.Attribute.INTENSITY_BOLD);
else if (component.startsWith("ATTRIBUTE:ITALIC"))
status.add("ATTRIBUTE:BOLD");
} else if (component.startsWith("ATTRIBUTE:ITALIC")) {
if (status.contains("ATTRIBUTE:ITALIC"))
continue;
ansi.a(Ansi.Attribute.ITALIC);
else if (component.startsWith("ATTRIBUTE:STRIKETHROUGH"))
status.add("ATTRIBUTE:ITALIC");
} else if (component.startsWith("ATTRIBUTE:STRIKETHROUGH")) {
if (status.contains("ATTRIBUTE:STRIKETHROUGH"))
continue;
ansi.a(Ansi.Attribute.STRIKETHROUGH_ON);
else if (component.startsWith("ATTRIBUTE:UNDERLINE"))
status.add("ATTRIBUTE:STRIKETHROUGH");
} else if (component.startsWith("ATTRIBUTE:UNDERLINE")) {
if (status.contains("ATTRIBUTE:UNDERLINE"))
continue;
ansi.a(Ansi.Attribute.UNDERLINE);
else if (component.startsWith("ATTRIBUTE:NEGATIVE"))
ansi.a(Ansi.Attribute.NEGATIVE_ON);
status.add("ATTRIBUTE:UNDERLINE");
}
return ansi;
}

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,12 +19,12 @@
package de.staropensource.sosengine.ansi;
import de.staropensource.sosengine.base.annotations.EngineSubsystem;
import de.staropensource.sosengine.base.classes.SubsystemClass;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import de.staropensource.sosengine.base.data.versioning.StarOpenSourceVersioningSystem;
import de.staropensource.sosengine.base.annotation.EngineSubsystem;
import de.staropensource.sosengine.base.implementable.SubsystemClass;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import de.staropensource.sosengine.base.dataprovider.versioning.StarOpenSourceVersioningSystem;
import de.staropensource.sosengine.base.logging.Logger;
import de.staropensource.sosengine.base.types.DependencyVector;
import de.staropensource.sosengine.base.type.DependencyVector;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
@ -34,7 +34,7 @@ import org.jetbrains.annotations.NotNull;
* @since v1-alpha2
*/
@EngineSubsystem
@SuppressWarnings({ "unused", "JavadocDeclaration" })
@SuppressWarnings({ "JavadocDeclaration" })
public final class AnsiSubsystem extends SubsystemClass {
/**
* Contains the class instance.

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify

View file

@ -131,6 +131,13 @@ javadoc {
test {
useJUnitPlatform()
// Pass test configuration to test VMs
Map<String, String> testConfiguration = new HashMap<>();
for (String property : project.properties.keySet())
if (property.startsWith("test."))
testConfiguration.put(property, project.properties.get(property).toString())
systemProperties(testConfiguration)
setMaxParallelForks(project.hasProperty("jobs") ? Integer.parseInt((String) project.property("jobs")) : 8)
setForkEvery(1)
setFailFast(true)

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,27 +19,26 @@
package de.staropensource.sosengine.base;
import de.staropensource.sosengine.base.annotations.EngineSubsystem;
import de.staropensource.sosengine.base.classes.ShutdownHandler;
import de.staropensource.sosengine.base.classes.SubsystemClass;
import de.staropensource.sosengine.base.classes.helpers.EventHelper;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import de.staropensource.sosengine.base.data.information.JvmInformation;
import de.staropensource.sosengine.base.data.versioning.StarOpenSourceVersioningSystem;
import de.staropensource.sosengine.base.events.*;
import de.staropensource.sosengine.base.exceptions.NoAccessException;
import de.staropensource.sosengine.base.exceptions.dependency.UnmetDependenciesException;
import de.staropensource.sosengine.base.annotation.EngineSubsystem;
import de.staropensource.sosengine.base.implementable.ShutdownHandler;
import de.staropensource.sosengine.base.implementable.SubsystemClass;
import de.staropensource.sosengine.base.implementable.helpers.EventHelper;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import de.staropensource.sosengine.base.dataprovider.information.JvmInformation;
import de.staropensource.sosengine.base.dataprovider.versioning.StarOpenSourceVersioningSystem;
import de.staropensource.sosengine.base.event.*;
import de.staropensource.sosengine.base.exception.NoAccessException;
import de.staropensource.sosengine.base.exception.dependency.UnmetDependenciesException;
import de.staropensource.sosengine.base.internal.events.InternalEngineShutdownEvent;
import de.staropensource.sosengine.base.internal.types.DependencySubsystemVector;
import de.staropensource.sosengine.base.logging.CrashHandler;
import de.staropensource.sosengine.base.logging.Logger;
import de.staropensource.sosengine.base.logging.LoggerInstance;
import de.staropensource.sosengine.base.types.DependencyVector;
import de.staropensource.sosengine.base.types.EngineState;
import de.staropensource.sosengine.base.types.immutable.ImmutableLinkedList;
import de.staropensource.sosengine.base.logging.*;
import de.staropensource.sosengine.base.type.DependencyVector;
import de.staropensource.sosengine.base.type.EngineState;
import de.staropensource.sosengine.base.type.immutable.ImmutableLinkedList;
import de.staropensource.sosengine.base.utility.DependencyResolver;
import de.staropensource.sosengine.base.utility.Miscellaneous;
import de.staropensource.sosengine.base.utility.PlaceholderEngine;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;
import org.jetbrains.annotations.NotNull;
@ -58,7 +57,7 @@ import java.util.*;
* @since v1-alpha0
*/
@EngineSubsystem
@SuppressWarnings({ "unused", "JavadocDeclaration" })
@SuppressWarnings({ "JavadocDeclaration" })
public final class Engine extends SubsystemClass {
/**
* Contains the class instance.
@ -107,6 +106,21 @@ public final class Engine extends SubsystemClass {
@Getter
private @NotNull EngineState state = EngineState.UNKNOWN;
/**
* Contains a list of all registered subsystems.
* The list is sorted after initialization order.
*
* @since v1-alpha1
* -- GETTER --
* Returns a list of all registered subsystems.
* The list is sorted after initialization order.
*
* @return subsystem list
* @since v1-alpha1
*/
@Getter
private @NotNull ImmutableLinkedList<@NotNull DependencySubsystemVector> subsystems = new ImmutableLinkedList<>();
/**
* Contains the engine's shutdown handler.
* The shutdown handler is responsible for
@ -131,24 +145,39 @@ public final class Engine extends SubsystemClass {
* @see ShutdownHandler
* @since v1-alpha2
*/
@Getter
@Setter
@Getter(value = AccessLevel.MODULE)
@Setter(value = AccessLevel.MODULE)
private @NotNull ShutdownHandler shutdownHandler = new Engine.JvmShutdownHandler();
/**
* Contains a list of all registered subsystems.
* The list is sorted after initialization order.
* Contains the JVM shutdown hook thread,
* which ensures that the engine is fully shut
* down before the JVM exits.
*
* @since v1-alpha1
* -- GETTER --
* Returns a list of all registered subsystems.
* The list is sorted after initialization order.
*
* @return subsystem list
* @since v1-alpha1
* @see EngineInternals#installSafetyShutdownHook(boolean)
* @since v1-alpha4
*/
@Getter
private @NotNull ImmutableLinkedList<@NotNull DependencySubsystemVector> subsystems = new ImmutableLinkedList<>();
@Getter(AccessLevel.MODULE)
private final @NotNull Thread safetyShutdownHook = Thread.ofPlatform()
.name("Engine shutdown thread")
.group(getThreadGroup())
.unstarted(() -> {
// Check if already shutting down
switch (state) {
case UNKNOWN, SHUTDOWN, CRASHED -> {
return;
}
}
// Print warning about shutdown
logger.warn("Trying to shut down engine using shutdown hook.\nThis approach to shutting down the engine and JVM is NOT RECOMMENDED, please use Engine#shutdown() instead.");
// Shutdown
Engine.getInstance().shutdown();
// Print last message
InitLogger.warn(getClass(), "ENGINE", EngineInformation.getVersioningCodename(), "Engine successfully shut down using shutdown hook. PLEASE USE Engine#shutdown() INSTEAD OF System#exit() or Runtime#exit()!");
});
/**
* Initializes the StarOpenSource Engine.
@ -170,12 +199,14 @@ public final class Engine extends SubsystemClass {
logger.info("Initializing engine");
initializeClasses(); // Initialize classes
if (checkEnvironment())
if (checkEnvironment()) // Check environment
throw new IllegalStateException("Running in an incompatible environment");
ensureEnvironment(); // Prepare the environment and ensure safety
populateCrashContent(); // Populate crash content
cacheEvents(); // Cache event listeners
startThreads(); // Start threads
logger.verb("Completing early initialization stage");
state = EngineState.STARTUP;
// Perform automatic subsystem initialization
@ -191,8 +222,23 @@ public final class Engine extends SubsystemClass {
}
});
logger.verb("Completing late initialization stage");
state = EngineState.RUNNING;
logger.info("Initialized sos!engine %engine_version% (commit %engine_git_commit_id_long%-%engine_git_branch%, dirty %engine_git_dirty%) in " + initTime + "ms");
logger.info("Initialized sos!engine %engine_version% (commit %engine_git_commit_id_long%-%engine_git_branch%, dirty %engine_git_dirty%) in " + initTime + "ms\nThe StarOpenSource Engine is licensed under the GNU AGPL v3. Copyright (c) 2024 The StarOpenSource Engine Authors.");
}
/**
* Initializes all classes.
*
* @since v1-alpha0
*/
private void initializeClasses() {
logger.verb("Initializing engine classes");
new EngineInternals();
new PlaceholderEngine();
EngineInformation.update();
PrintStreamService.initializeStreams();
}
/**
@ -210,15 +256,12 @@ public final class Engine extends SubsystemClass {
}
/**
* Initializes all classes.
* Ensures the execution safety of the environment.
*
* @since v1-alpha0
* @since v1-alpha4
*/
private void initializeClasses() {
logger.verb("Initializing engine classes");
new PlaceholderEngine();
EngineInformation.update();
private void ensureEnvironment() {
EngineInternals.getInstance().installSafetyShutdownHook(true);
}
/**
@ -323,15 +366,17 @@ public final class Engine extends SubsystemClass {
Set<@NotNull Class<?>> annotatedClasses = reflections.getTypesAnnotatedWith(EngineSubsystem.class);
// Initialize classes, get dependency vector and add to 'subsystemsMutable'
Object initializedClassRaw;
SubsystemClass initializedClass;
for (Class<?> clazz : annotatedClasses) {
try {
// Create new instance
Object initializedClassRaw = clazz.getDeclaredConstructor().newInstance();
SubsystemClass initializedClass = null;
initializedClassRaw = clazz.getDeclaredConstructor().newInstance();
initializedClass = null;
// Check if class implements SubsystemMainClass
if (initializedClassRaw instanceof SubsystemClass subsystemInstance)
initializedClass = subsystemInstance;
if (initializedClassRaw instanceof SubsystemClass)
initializedClass = (SubsystemClass) initializedClassRaw;
else
logger.crash("Failed to initialize subsystem " + clazz.getName() + ": Does not implement " + SubsystemClass.class.getName());
@ -384,7 +429,7 @@ public final class Engine extends SubsystemClass {
}
// Initialize subsystems
logger.info("Initializing engine subsystems");
logger.verb("Initializing engine subsystems");
long initTime;
for (DependencySubsystemVector vector : subsystems) {
logger.diag("Initializing subsystem " + vector.getMainClass().getName() + " (" + vector.getMainClass().getClass().getName() + ")");
@ -408,6 +453,12 @@ public final class Engine extends SubsystemClass {
* @since v1-alpha0
*/
public synchronized void shutdown(@Range(from = 0, to = 255) int exitCode) {
switch (state) {
case UNKNOWN, SHUTDOWN, CRASHED -> {
return;
}
}
logger.info("Shutting engine down");
if (state != EngineState.CRASHED)
state = EngineState.SHUTDOWN;
@ -421,12 +472,19 @@ public final class Engine extends SubsystemClass {
// Flush log messages
Logger.flushLogMessages();
logger.verb("Notifiying classes about shutdown");
// Disable safety shutdown hook
try {
Runtime.getRuntime().removeShutdownHook(safetyShutdownHook);
} catch (Exception ignored) {}
// Send events
logger.verb("Notifying classes about shutdown");
new EngineShutdownEvent().callEvent();
logger.verb("Notifying subsystems about shutdown");
new InternalEngineShutdownEvent().callEvent();
// Invoke shutdown handler
logger.verb("Invoking shutdown handler (code " + exitCode + ")");
shutdownHandler.shutdown((short) exitCode);
}
@ -493,8 +551,18 @@ public final class Engine extends SubsystemClass {
/** {@inheritDoc} */
@Override
public void shutdown(short exitCode) {
logger.warn("Terminating JVM");
// Check if already shutting down
try {
Thread thread = Thread.ofVirtual().unstarted(() -> {});
Runtime.getRuntime().addShutdownHook(thread);
Runtime.getRuntime().removeShutdownHook(thread);
} catch (IllegalStateException exception) {
logger.warn("Terminating JVM: Already shutting down, skipping");
return;
}
logger.warn("Terminating JVM");
System.exit(exitCode);
}
}

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,14 +19,14 @@
package de.staropensource.sosengine.base;
import de.staropensource.sosengine.base.classes.ShortcodeParserSkeleton;
import de.staropensource.sosengine.base.classes.Configuration;
import de.staropensource.sosengine.base.classes.helpers.EventHelper;
import de.staropensource.sosengine.base.implementable.ShortcodeParserSkeleton;
import de.staropensource.sosengine.base.implementable.Configuration;
import de.staropensource.sosengine.base.implementable.helpers.EventHelper;
import de.staropensource.sosengine.base.logging.CrashHandler;
import de.staropensource.sosengine.base.logging.Logger;
import de.staropensource.sosengine.base.types.EngineState;
import de.staropensource.sosengine.base.types.logging.LogLevel;
import de.staropensource.sosengine.base.types.vectors.Vec2f;
import de.staropensource.sosengine.base.type.EngineState;
import de.staropensource.sosengine.base.type.logging.LogLevel;
import de.staropensource.sosengine.base.type.vectors.Vec2f;
import de.staropensource.sosengine.base.utility.PropertiesReader;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
@ -50,7 +50,7 @@ import java.util.Properties;
* @since v1-alpha0
*/
@Getter
@SuppressWarnings({ "unused", "JavadocDeclaration" })
@SuppressWarnings({ "JavadocDeclaration" })
public final class EngineConfiguration extends Configuration {
/**
* Contains the class instance.
@ -216,19 +216,19 @@ public final class EngineConfiguration extends Configuration {
private String loggerTemplate;
/**
* If enabled, the JVM will immediately shutdown on an engine crash. This will prevent shutdown hooks from executing.
* Note: This will also prevent Jansi and potentially other libraries from removing temporary native libraries at shutdown.
* Contains how fast the logging thread will poll for queued messages.
* Only applies if {@code optimizeLogging} is turned on.
*
* @see CrashHandler
* @since v1-alpha0
* @see #optimizeLogging
* @since v1-alpha1
* -- GETTER --
* Gets the value for {@link #loggerImmediateShutdown}.
* Gets the value for {@link #loggerPollingSpeed}.
*
* @return variable value
* @see #loggerImmediateShutdown
* @since v1-alpha0
* @see #loggerPollingSpeed
* @since v1-alpha1
*/
private boolean loggerImmediateShutdown;
private int loggerPollingSpeed;
/**
* If enabled, will force the {@link Logger} and {@link CrashHandler} to use <a href="https://www.man7.org/linux/man-pages/man3/stderr.3.html">the standard output</a>
@ -245,19 +245,34 @@ public final class EngineConfiguration extends Configuration {
private boolean loggerForceStandardOutput;
/**
* Contains how fast the logging thread will poll for queued messages.
* Only applies if {@code optimizeLogging} is turned on.
* If enabled, will enable support for printing log messages on multiple lines.
* By enabling this configuration setting, logger throughput will be decreased slightly when encountering a log message with newlines found in it.
* This performance hit is negligible though and should not affect application performance, especially with logger multi-threading turned on (see {@link #optimizeLogging}).
*
* @see #optimizeLogging
* @since v1-alpha1
* @since v1-alpha4
* -- GETTER --
* Gets the value for {@link #loggerForceStandardOutput}.
* Gets the value for {@link #loggerEnableNewlineSupport}.
*
* @return variable value
* @see #loggerForceStandardOutput
* @since v1-alpha1
* @see #loggerEnableNewlineSupport
* @since v1-alpha4
*/
private int loggerPollingSpeed;
private boolean loggerEnableNewlineSupport;
/**
* If enabled, the JVM will immediately shutdown on an engine crash. This will prevent shutdown hooks from executing.
* Note: This will also prevent Jansi and potentially other libraries from removing temporary native libraries at shutdown.
*
* @see CrashHandler
* @since v1-alpha0
* -- GETTER --
* Gets the value for {@link #loggerImmediateShutdown}.
*
* @return variable value
* @see #loggerImmediateShutdown
* @since v1-alpha0
*/
private boolean loggerImmediateShutdown;
/**
* Will truncate the path of types when using their {@code toString} method.
@ -325,9 +340,10 @@ public final class EngineConfiguration extends Configuration {
}
}
case "loggerTemplate" -> loggerTemplate = parser.getString(group + property);
case "loggerImmediateShutdown" -> loggerImmediateShutdown = parser.getBoolean(group + property);
case "loggerForceStandardOutput" -> loggerForceStandardOutput = parser.getBoolean(group + property);
case "loggerPollingSpeed" -> loggerPollingSpeed = parser.getInteger(group + property, true);
case "loggerForceStandardOutput" -> loggerForceStandardOutput = parser.getBoolean(group + property);
case "loggerEnableNewlineSupport" -> loggerEnableNewlineSupport = parser.getBoolean(group + property);
case "loggerImmediateShutdown" -> loggerImmediateShutdown = parser.getBoolean(group + property);
case "hideFullTypePath" -> hideFullTypePath = parser.getBoolean(group + property);
}
@ -358,10 +374,11 @@ public final class EngineConfiguration extends Configuration {
optimizeSubsystemInitialization = true;
loggerLevel = LogLevel.INFORMATIONAL;
loggerTemplate = "%log_color_primary%[%time_hour%:%time_minute%:%time_second%] [%log_level% %log_path%%log_metadata%] %log_color_secondary%%log_message%<reset>";
loggerImmediateShutdown = false;
loggerForceStandardOutput = false;
loggerTemplate = "%log_color_primary%[%time_hour%:%time_minute%:%time_second%] [%log_level% %log_path%%log_metadata%] %log_message_prefix%%log_color_primary%%log_color_secondary%%log_message%<reset>";
loggerPollingSpeed = 5;
loggerForceStandardOutput = false;
loggerEnableNewlineSupport = true;
loggerImmediateShutdown = false;
hideFullTypePath = false;
}
@ -382,9 +399,10 @@ public final class EngineConfiguration extends Configuration {
case "loggerLevel" -> { return loggerLevel; }
case "loggerTemplate" -> { return loggerTemplate; }
case "loggerImmediateShutdown" -> { return loggerImmediateShutdown; }
case "loggerForceStandardOutput" -> { return loggerForceStandardOutput; }
case "loggerPollingSpeed" -> { return loggerPollingSpeed; }
case "loggerForceStandardOutput" -> { return loggerForceStandardOutput; }
case "loggerEnableNewlineSupport" -> { return loggerEnableNewlineSupport; }
case "loggerImmediateShutdown" -> { return loggerImmediateShutdown; }
case "hideFullTypePath" -> { return hideFullTypePath; }
default -> { return null; }

View file

@ -0,0 +1,169 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base;
import de.staropensource.sosengine.base.implementable.ShutdownHandler;
import de.staropensource.sosengine.base.exception.NoAccessException;
import de.staropensource.sosengine.base.logging.LoggerInstance;
import de.staropensource.sosengine.base.type.InternalAccessArea;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* Class which allows access to the internals
* and changing the behaviour of the engine.
*
* @since v1-alpha4
*/
@SuppressWarnings({ "JavadocDeclaration" })
public final class EngineInternals {
/**
* Contains the class instance.
*
* @since v1-alpha4
* -- GETTER --
* Returns the class instance.
*
* @return class instance unless the engine is uninitialized
* @since v1-alpha4
*/
@Getter
private static EngineInternals instance;
/**
* Contains the {@link LoggerInstance} for this instance.
*
* @see LoggerInstance
* @since v1-alpha4
*/
private static final LoggerInstance logger = new LoggerInstance.Builder().setClazz(EngineInternals.class).setOrigin("ENGINE").build();
/**
* Contains all disabled internal access areas.
*
* @since v1-alpha4
* -- GETTER --
* Returns all disabled internal access areas.
*
* @return restricted areas
* @since v1-alpha4
*/
@Getter
private final @NotNull List<@NotNull InternalAccessArea> restrictedAreas = new ArrayList<>();
/**
* Constructs this class.
*
* @since v1-alpha4
*/
public EngineInternals() {
// Only allow one instance
if (instance == null && Engine.getInstance() != null)
instance = this;
else
logger.crash("Only one instance of this class is allowed, use getInstance() instead of creating a new instance");
}
/**
* Determines whether access to the specified area is allowed.
*
* @param area internal access area to check
* @throws NoAccessException when restricted
* @since v1-alpha4
*/
private void isRestricted(@NotNull InternalAccessArea area) throws NoAccessException {
if (restrictedAreas.contains(area))
throw new NoAccessException("The internal access area " + area.name() + " has been restricted");
}
/**
* Restricts access to certain areas of this class.
*
* @param area area to restrict
* @since v1-alpha4
*/
public void restrictAccess(@NotNull InternalAccessArea area) {
switch (area) {
case ALL -> {
List<@NotNull InternalAccessArea> areas = new ArrayList<>(List.of(InternalAccessArea.values()));
areas.remove(InternalAccessArea.ALL);
areas.remove(InternalAccessArea.ALL_READ);
areas.remove(InternalAccessArea.ALL_WRITE);
restrictedAreas.addAll(areas);
}
case ALL_READ -> restrictedAreas.addAll(Arrays.stream(InternalAccessArea.valuesReadOnly()).toList());
case ALL_WRITE -> restrictedAreas.addAll(Arrays.stream(InternalAccessArea.valuesWriteOnly()).toList());
default -> restrictedAreas.add(area);
}
}
/**
* Installs or uninstalls the JVM shutdown
* hook, which prevents the JVM from exiting
* before the engine has fully shut down.
* Highly recommended to keep enabled.
*
* @param status {@code true} to install, {@code false} otherwise
* @throws NoAccessException when restricted
* @since v1-alpha4
*/
public void installSafetyShutdownHook(boolean status) throws NoAccessException {
isRestricted(InternalAccessArea.SAFETY_SHUTDOWN_HOOK);
try {
if (status)
Runtime.getRuntime().addShutdownHook(Engine.getInstance().getSafetyShutdownHook());
else
Runtime.getRuntime().removeShutdownHook(Engine.getInstance().getSafetyShutdownHook());
} catch (IllegalArgumentException | IllegalStateException ignored) {}
}
/**
* Sets the engine's shutdown handler.
* The shutdown handler is responsible for
* shutting down the JVM safely.
*
* @param shutdownHandler new shutdown handler
* @throws NoAccessException when restricted
* @since v1-alpha4
*/
public void setShutdownHandler(@NotNull ShutdownHandler shutdownHandler) throws NoAccessException {
isRestricted(InternalAccessArea.SHUTDOWN_HANDLER_UPDATE);
Engine.getInstance().setShutdownHandler(shutdownHandler);
}
/**
* Gets the engine's shutdown handler.
* The shutdown handler is responsible for
* shutting down the JVM safely.
*
* @return shutdown handler
* @throws NoAccessException when restricted
* @since v1-alpha4
*/
public @NotNull ShutdownHandler getShutdownHandler() throws NoAccessException {
isRestricted(InternalAccessArea.SHUTDOWN_HANDLER_GET);
return Engine.getInstance().getShutdownHandler();
}
}

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,9 +17,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.annotations;
package de.staropensource.sosengine.base.annotation;
import de.staropensource.sosengine.base.classes.SubsystemClass;
import de.staropensource.sosengine.base.implementable.SubsystemClass;
import java.lang.annotation.*;
@ -33,5 +33,4 @@ import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
@SuppressWarnings("unused")
public @interface EngineSubsystem {}

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,10 +17,10 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.annotations;
package de.staropensource.sosengine.base.annotation;
import de.staropensource.sosengine.base.classes.Event;
import de.staropensource.sosengine.base.types.EventPriority;
import de.staropensource.sosengine.base.implementable.Event;
import de.staropensource.sosengine.base.type.EventPriority;
import org.jetbrains.annotations.NotNull;
import java.lang.annotation.*;
@ -34,7 +34,6 @@ import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@Documented
@SuppressWarnings("unused")
public @interface EventListener {
/**
* Specifies the event to listen for.

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -23,4 +23,4 @@
*
* @since v1-alpha0
*/
package de.staropensource.sosengine.base.annotations;
package de.staropensource.sosengine.base.annotation;

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,11 +17,11 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.data.information;
package de.staropensource.sosengine.base.dataprovider.information;
import de.staropensource.sosengine.base.Engine;
import de.staropensource.sosengine.base.logging.LoggerInstance;
import de.staropensource.sosengine.base.types.VersionType;
import de.staropensource.sosengine.base.type.VersionType;
import de.staropensource.sosengine.base.utility.PropertiesReader;
import de.staropensource.sosengine.base.utility.parser.StackTraceParser;
import lombok.Getter;
@ -42,7 +42,7 @@ import java.util.Properties;
*
* @since v1-alpha0
*/
@SuppressWarnings({ "unused", "JavadocDeclaration" })
@SuppressWarnings({ "JavadocDeclaration" })
public final class EngineInformation {
/**
* Contains the {@link LoggerInstance} for this instance.
@ -363,7 +363,6 @@ public final class EngineInformation {
gradleProperties.load(gradleStream);
gradleStream.close();
} catch (IOException exception) {
StackTraceParser parser = new StackTraceParser(exception);
logger.crash("Unable to load build information: InputStream 'gradleStream' failed", exception);
return;
}
@ -391,7 +390,6 @@ public final class EngineInformation {
gitProperties.load(gitStream);
gitStream.close();
} catch (IOException exception) {
StackTraceParser parser = new StackTraceParser(exception);
logger.crash("Unable to load build information: InputStream 'gitStream' failed", exception);
return;
}

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,7 +17,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.data.information;
package de.staropensource.sosengine.base.dataprovider.information;
import de.staropensource.sosengine.base.logging.LoggerInstance;
import org.jetbrains.annotations.NotNull;

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -22,4 +22,4 @@
*
* @since v1-alpha0
*/
package de.staropensource.sosengine.base.data.information;
package de.staropensource.sosengine.base.dataprovider.information;

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -22,4 +22,4 @@
*
* @since v1-alpha0
*/
package de.staropensource.sosengine.base.data;
package de.staropensource.sosengine.base.dataprovider;

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,11 +17,11 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.data.versioning;
package de.staropensource.sosengine.base.dataprovider.versioning;
import de.staropensource.sosengine.base.classes.VersioningSystem;
import de.staropensource.sosengine.base.exceptions.versioning.IncompatibleVersioningSystemException;
import de.staropensource.sosengine.base.exceptions.versioning.InvalidVersionStringException;
import de.staropensource.sosengine.base.implementable.VersioningSystem;
import de.staropensource.sosengine.base.exception.versioning.IncompatibleVersioningSystemException;
import de.staropensource.sosengine.base.exception.versioning.InvalidVersionStringException;
import de.staropensource.sosengine.base.utility.Miscellaneous;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
@ -33,7 +33,7 @@ import org.jetbrains.annotations.Range;
* @since v1-alpha1
*/
@Getter
@SuppressWarnings({ "unused", "JavadocDeclaration" })
@SuppressWarnings({ "JavadocDeclaration" })
public final class FourNumberVersioningSystem implements VersioningSystem {
/**
* Contains the first number vector.

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,11 +17,11 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.data.versioning;
package de.staropensource.sosengine.base.dataprovider.versioning;
import de.staropensource.sosengine.base.classes.VersioningSystem;
import de.staropensource.sosengine.base.exceptions.versioning.IncompatibleVersioningSystemException;
import de.staropensource.sosengine.base.exceptions.versioning.InvalidVersionStringException;
import de.staropensource.sosengine.base.implementable.VersioningSystem;
import de.staropensource.sosengine.base.exception.versioning.IncompatibleVersioningSystemException;
import de.staropensource.sosengine.base.exception.versioning.InvalidVersionStringException;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Range;
@ -32,7 +32,7 @@ import org.jetbrains.annotations.Range;
* @since v1-alpha1
*/
@Getter
@SuppressWarnings({ "unused", "JavadocDeclaration" })
@SuppressWarnings({ "JavadocDeclaration" })
public final class OneNumberVersioningSystem implements VersioningSystem {
/**
* Contains the number vector.

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,11 +17,11 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.data.versioning;
package de.staropensource.sosengine.base.dataprovider.versioning;
import de.staropensource.sosengine.base.classes.VersioningSystem;
import de.staropensource.sosengine.base.exceptions.versioning.IncompatibleVersioningSystemException;
import de.staropensource.sosengine.base.exceptions.versioning.InvalidVersionStringException;
import de.staropensource.sosengine.base.implementable.VersioningSystem;
import de.staropensource.sosengine.base.exception.versioning.IncompatibleVersioningSystemException;
import de.staropensource.sosengine.base.exception.versioning.InvalidVersionStringException;
import de.staropensource.sosengine.base.utility.Miscellaneous;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
@ -40,7 +40,7 @@ import java.util.List;
* @since v1-alpha1
*/
@Getter
@SuppressWarnings({ "unused", "JavadocDeclaration" })
@SuppressWarnings({ "JavadocDeclaration" })
public final class SemanticVersioningSystem implements VersioningSystem {
/**
* Contains the {@code MAJOR} vector.

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,12 +17,12 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.data.versioning;
package de.staropensource.sosengine.base.dataprovider.versioning;
import de.staropensource.sosengine.base.classes.VersioningSystem;
import de.staropensource.sosengine.base.exceptions.versioning.IncompatibleVersioningSystemException;
import de.staropensource.sosengine.base.exceptions.versioning.InvalidVersionStringException;
import de.staropensource.sosengine.base.types.VersionType;
import de.staropensource.sosengine.base.implementable.VersioningSystem;
import de.staropensource.sosengine.base.exception.versioning.IncompatibleVersioningSystemException;
import de.staropensource.sosengine.base.exception.versioning.InvalidVersionStringException;
import de.staropensource.sosengine.base.type.VersionType;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@ -41,7 +41,7 @@ import java.util.Locale;
* @since v1-alpha1
*/
@Getter
@SuppressWarnings({ "unused", "JavadocDeclaration" })
@SuppressWarnings({ "JavadocDeclaration" })
public final class StarOpenSourceVersioningSystem implements VersioningSystem {
/**
* Contains the {@code VERSION} vector.
@ -131,7 +131,7 @@ public final class StarOpenSourceVersioningSystem implements VersioningSystem {
String companion = null;
String fork = null;
// Iterate through all chraracters
// Iterate through all characters
for (Character character : versionString.toCharArray()) {
switch (parsingId) {
case 0 -> { // 'v' character

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,11 +17,11 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.data.versioning;
package de.staropensource.sosengine.base.dataprovider.versioning;
import de.staropensource.sosengine.base.classes.VersioningSystem;
import de.staropensource.sosengine.base.exceptions.versioning.IncompatibleVersioningSystemException;
import de.staropensource.sosengine.base.exceptions.versioning.InvalidVersionStringException;
import de.staropensource.sosengine.base.implementable.VersioningSystem;
import de.staropensource.sosengine.base.exception.versioning.IncompatibleVersioningSystemException;
import de.staropensource.sosengine.base.exception.versioning.InvalidVersionStringException;
import de.staropensource.sosengine.base.utility.Miscellaneous;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
@ -33,7 +33,7 @@ import org.jetbrains.annotations.Range;
* @since v1-alpha1
*/
@Getter
@SuppressWarnings({ "unused", "JavadocDeclaration" })
@SuppressWarnings({ "JavadocDeclaration" })
public final class ThreeNumberVersioningSystem implements VersioningSystem {
/**
* Contains the first number vector.

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,11 +17,11 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.data.versioning;
package de.staropensource.sosengine.base.dataprovider.versioning;
import de.staropensource.sosengine.base.classes.VersioningSystem;
import de.staropensource.sosengine.base.exceptions.versioning.IncompatibleVersioningSystemException;
import de.staropensource.sosengine.base.exceptions.versioning.InvalidVersionStringException;
import de.staropensource.sosengine.base.implementable.VersioningSystem;
import de.staropensource.sosengine.base.exception.versioning.IncompatibleVersioningSystemException;
import de.staropensource.sosengine.base.exception.versioning.InvalidVersionStringException;
import de.staropensource.sosengine.base.utility.Miscellaneous;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
@ -33,7 +33,7 @@ import org.jetbrains.annotations.Range;
* @since v1-alpha1
*/
@Getter
@SuppressWarnings({ "unused", "JavadocDeclaration" })
@SuppressWarnings({ "JavadocDeclaration" })
public final class TwoNumberVersioningSystem implements VersioningSystem {
/**
* Contains the first number vector.

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -23,4 +23,4 @@
*
* @since v1-alpha1
*/
package de.staropensource.sosengine.base.data.versioning;
package de.staropensource.sosengine.base.dataprovider.versioning;

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,17 +17,16 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.events;
package de.staropensource.sosengine.base.event;
import de.staropensource.sosengine.base.classes.Event;
import de.staropensource.sosengine.base.classes.helpers.EventHelper;
import de.staropensource.sosengine.base.implementable.Event;
import de.staropensource.sosengine.base.implementable.helpers.EventHelper;
/**
* Called in the event of an engine crash.
*
* @since v1-alpha0
*/
@SuppressWarnings({ "unused" })
public final class EngineCrashEvent implements Event {
/**
* Constructs this event.

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,10 +17,10 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.events;
package de.staropensource.sosengine.base.event;
import de.staropensource.sosengine.base.classes.Event;
import de.staropensource.sosengine.base.classes.helpers.EventHelper;
import de.staropensource.sosengine.base.implementable.Event;
import de.staropensource.sosengine.base.implementable.helpers.EventHelper;
/**
* Called when the engine is about to shutdown.

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,10 +17,10 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.events;
package de.staropensource.sosengine.base.event;
import de.staropensource.sosengine.base.classes.Event;
import de.staropensource.sosengine.base.classes.helpers.EventHelper;
import de.staropensource.sosengine.base.implementable.Event;
import de.staropensource.sosengine.base.implementable.helpers.EventHelper;
import de.staropensource.sosengine.base.logging.Logger;
/**
@ -31,7 +31,6 @@ import de.staropensource.sosengine.base.logging.Logger;
* @see Logger#crash(Class, String, String, String, Throwable, boolean)
* @since v1-alpha0
*/
@SuppressWarnings({ "unused" })
public final class EngineSoftCrashEvent implements Event {
/**
* Constructs this event.

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,11 +17,11 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.events;
package de.staropensource.sosengine.base.event;
import de.staropensource.sosengine.base.classes.Event;
import de.staropensource.sosengine.base.classes.helpers.EventHelper;
import de.staropensource.sosengine.base.types.logging.LogLevel;
import de.staropensource.sosengine.base.implementable.Event;
import de.staropensource.sosengine.base.implementable.helpers.EventHelper;
import de.staropensource.sosengine.base.type.logging.LogLevel;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@ -30,7 +30,6 @@ import org.jetbrains.annotations.Nullable;
*
* @since v1-alpha0
*/
@SuppressWarnings({ "unused" })
public final class LogEvent implements Event {
/**
* Constructs this event.

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,10 +17,10 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.events;
package de.staropensource.sosengine.base.event;
import de.staropensource.sosengine.base.classes.Event;
import de.staropensource.sosengine.base.classes.helpers.EventHelper;
import de.staropensource.sosengine.base.implementable.Event;
import de.staropensource.sosengine.base.implementable.helpers.EventHelper;
import de.staropensource.sosengine.base.utility.Miscellaneous;
import org.jetbrains.annotations.NotNull;

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -22,4 +22,4 @@
*
* @since v1-alpha1
*/
package de.staropensource.sosengine.base.events;
package de.staropensource.sosengine.base.event;

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,26 +17,22 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.exceptions;
package de.staropensource.sosengine.base.exception;
import org.jetbrains.annotations.NotNull;
/**
* Thrown when the caller class is not allowed to call the throwing method.
* <p>
* Not to be confused with {@link de.staropensource.sosengine.base.exceptions.reflection.NoAccessException},
* which handles access violations of reflection objects.
*
* @since v1-alpha2
*/
@SuppressWarnings({ "unused" })
public class NoAccessException extends RuntimeException {
public class NoCallAccessException extends RuntimeException {
/**
* Constructs this exception.
*
* @since v1-alpha2
*/
public NoAccessException() {}
public NoCallAccessException() {}
/**
* Constructs this exception.
@ -44,7 +40,7 @@ public class NoAccessException extends RuntimeException {
* @param message message
* @since v1-alpha2
*/
public NoAccessException(@NotNull String message) {
public NoCallAccessException(@NotNull String message) {
super(message);
}
}

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,7 +17,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.exceptions;
package de.staropensource.sosengine.base.exception;
import org.jetbrains.annotations.NotNull;

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,9 +17,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.exceptions;
package de.staropensource.sosengine.base.exception;
import de.staropensource.sosengine.base.types.Tristate;
import de.staropensource.sosengine.base.type.Tristate;
/**
* Thrown when converting a {@link Tristate} into a {@link Boolean} fails.

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,7 +17,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.exceptions;
package de.staropensource.sosengine.base.exception;
import org.jetbrains.annotations.NotNull;

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,7 +17,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.exceptions;
package de.staropensource.sosengine.base.exception;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
@ -28,7 +28,7 @@ import org.jetbrains.annotations.NotNull;
* @since v1-alpha1
*/
@Getter
@SuppressWarnings({ "unused", "JavadocDeclaration" })
@SuppressWarnings({ "JavadocDeclaration" })
public class UnexpectedThrowableException extends Exception {
/**
* Contains the throwable supplied to the constructor.

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,7 +17,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.exceptions.dependency;
package de.staropensource.sosengine.base.exception.dependency;
import de.staropensource.sosengine.base.utility.DependencyResolver;
import org.jetbrains.annotations.NotNull;
@ -27,7 +27,6 @@ import org.jetbrains.annotations.NotNull;
*
* @since v1-alpha1
*/
@SuppressWarnings({ "unused" })
public class DependencyCycleException extends RuntimeException {
/**
* Constructs this exception.

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,9 +17,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.exceptions.dependency;
package de.staropensource.sosengine.base.exception.dependency;
import de.staropensource.sosengine.base.types.DependencyVector;
import de.staropensource.sosengine.base.type.DependencyVector;
import de.staropensource.sosengine.base.utility.DependencyResolver;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
@ -33,7 +33,7 @@ import java.util.Map;
* @since v1-alpha1
*/
@Getter
@SuppressWarnings({ "unused", "JavadocDeclaration" })
@SuppressWarnings({ "JavadocDeclaration" })
public class UnmetDependenciesException extends Exception {
/**
* Contains the unmet dependencies list supplied to the constructor.

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -23,4 +23,4 @@
* @see de.staropensource.sosengine.base.utility.DependencyResolver
* @since v1-alpha1
*/
package de.staropensource.sosengine.base.exceptions.dependency;
package de.staropensource.sosengine.base.exception.dependency;

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -22,4 +22,4 @@
*
* @since v1-alpha1
*/
package de.staropensource.sosengine.base.exceptions;
package de.staropensource.sosengine.base.exception;

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,9 +17,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.exceptions.reflection;
package de.staropensource.sosengine.base.exception.reflection;
import de.staropensource.sosengine.base.types.reflection.ClassType;
import de.staropensource.sosengine.base.type.reflection.ClassType;
import de.staropensource.sosengine.base.utility.ListFormatter;
import org.jetbrains.annotations.NotNull;
@ -28,7 +28,6 @@ import org.jetbrains.annotations.NotNull;
*
* @since v1-alpha2
*/
@SuppressWarnings({ "unused" })
public class IncompatibleTypeException extends RuntimeException {
/**
* Constructs this exception.

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,7 +17,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.exceptions.reflection;
package de.staropensource.sosengine.base.exception.reflection;
import org.jetbrains.annotations.NotNull;

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,7 +17,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.exceptions.reflection;
package de.staropensource.sosengine.base.exception.reflection;
import de.staropensource.sosengine.base.reflection.ReflectionClass;
import org.jetbrains.annotations.NotNull;
@ -27,7 +27,6 @@ import org.jetbrains.annotations.NotNull;
*
* @since v1-alpha2
*/
@SuppressWarnings({ "unused" })
public class InvalidFieldException extends Exception {
/**
* Constructs this exception.

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,7 +17,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.exceptions.reflection;
package de.staropensource.sosengine.base.exception.reflection;
import de.staropensource.sosengine.base.reflection.ReflectionClass;
import org.jetbrains.annotations.NotNull;
@ -27,7 +27,6 @@ import org.jetbrains.annotations.NotNull;
*
* @since v1-alpha2
*/
@SuppressWarnings({ "unused" })
public class InvalidMethodException extends Exception {
/**
* Constructs this exception.

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,7 +17,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.exceptions.reflection;
package de.staropensource.sosengine.base.exception.reflection;
import org.jetbrains.annotations.NotNull;
@ -26,7 +26,6 @@ import org.jetbrains.annotations.NotNull;
*
* @since v1-alpha2
*/
@SuppressWarnings({ "unused" })
public class InvalidMethodSignature extends Exception {
/**
* Constructs this exception.

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,7 +17,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.exceptions.reflection;
package de.staropensource.sosengine.base.exception.reflection;
import org.jetbrains.annotations.NotNull;
@ -26,8 +26,7 @@ import org.jetbrains.annotations.NotNull;
*
* @since v1-alpha2
*/
@SuppressWarnings({ "unused" })
public class NoAccessException extends Exception {
public class NoReflectionAccessException extends Exception {
/**
* Constructs this exception.
*
@ -35,7 +34,7 @@ public class NoAccessException extends Exception {
* @param name class, method or field name
* @since v1-alpha2
*/
public NoAccessException(@NotNull String type, @NotNull String name) {
public NoReflectionAccessException(@NotNull String type, @NotNull String name) {
super("Access to " + type + " " + name + " has been denied");
}
}

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,7 +17,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.exceptions.reflection;
package de.staropensource.sosengine.base.exception.reflection;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
@ -28,7 +28,7 @@ import org.jetbrains.annotations.NotNull;
* @since v1-alpha2
*/
@Getter
@SuppressWarnings({ "unused", "JavadocDeclaration" })
@SuppressWarnings({ "JavadocDeclaration" })
public class StaticInitializerException extends Exception {
/**
* Contains the throwable thrown by the static initializer.

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -23,4 +23,4 @@
* @see de.staropensource.sosengine.base.reflection
* @since v1-alpha2
*/
package de.staropensource.sosengine.base.exceptions.reflection;
package de.staropensource.sosengine.base.exception.reflection;

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,9 +17,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.exceptions.versioning;
package de.staropensource.sosengine.base.exception.versioning;
import de.staropensource.sosengine.base.classes.VersioningSystem;
import de.staropensource.sosengine.base.implementable.VersioningSystem;
/**
* Thrown when trying to compare a {@link VersioningSystem} against another
@ -27,7 +27,6 @@ import de.staropensource.sosengine.base.classes.VersioningSystem;
*
* @since v1-alpha1
*/
@SuppressWarnings({ "unused" })
public class IncompatibleVersioningSystemException extends RuntimeException {
/**
* Constructs this exception.

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,9 +17,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.exceptions.versioning;
package de.staropensource.sosengine.base.exception.versioning;
import de.staropensource.sosengine.base.classes.VersioningSystem;
import de.staropensource.sosengine.base.implementable.VersioningSystem;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@ -32,7 +32,7 @@ import org.jetbrains.annotations.Nullable;
* @since v1-alpha1
*/
@Getter
@SuppressWarnings({ "unused", "JavadocDeclaration" })
@SuppressWarnings({ "JavadocDeclaration" })
public class InvalidVersionStringException extends Exception {
/**
* Contains the throwable supplied to the constructor.

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -18,9 +18,9 @@
*/
/**
* Exceptions thrown by implementations of {@link de.staropensource.sosengine.base.classes.VersioningSystem}s.
* Exceptions thrown by implementations of {@link de.staropensource.sosengine.base.implementable.VersioningSystem}s.
*
* @see de.staropensource.sosengine.base.classes.VersioningSystem
* @see de.staropensource.sosengine.base.implementable.VersioningSystem
* @since v1-alpha1
*/
package de.staropensource.sosengine.base.exceptions.versioning;
package de.staropensource.sosengine.base.exception.versioning;

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,7 +17,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.classes;
package de.staropensource.sosengine.base.implementable;
import de.staropensource.sosengine.base.logging.LoggerInstance;
import de.staropensource.sosengine.base.utility.PropertiesReader;
@ -35,7 +35,6 @@ import java.util.Properties;
*
* @since v1-alpha2
*/
@SuppressWarnings({ "unused" })
public abstract class Configuration {
/**
* Contains the {@link LoggerInstance} for this instance.

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,9 +17,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.classes;
package de.staropensource.sosengine.base.implementable;
import de.staropensource.sosengine.base.classes.helpers.EventHelper;
import de.staropensource.sosengine.base.implementable.helpers.EventHelper;
/**
* Represents an event.
@ -27,7 +27,6 @@ import de.staropensource.sosengine.base.classes.helpers.EventHelper;
* @see EventHelper
* @since v1-alpha0
*/
@SuppressWarnings({ "unused" })
public interface Event {
/**
* Emits the event and calls all event listeners.

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,10 +17,10 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.classes;
package de.staropensource.sosengine.base.implementable;
import de.staropensource.sosengine.base.logging.Logger;
import de.staropensource.sosengine.base.types.logging.LogLevel;
import de.staropensource.sosengine.base.type.logging.LogLevel;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@ -30,7 +30,6 @@ import org.jetbrains.annotations.Nullable;
* @see Logger#setLoggerImplementation(LoggerImplementation)
* @since v1-alpha0
*/
@SuppressWarnings({ "unused" })
public interface LoggerImplementation {
/**
* Invoked before anything is done with the log message.

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,7 +17,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.classes;
package de.staropensource.sosengine.base.implementable;
import de.staropensource.sosengine.base.utility.PlaceholderEngine;
import org.jetbrains.annotations.NotNull;
@ -28,7 +28,6 @@ import org.jetbrains.annotations.NotNull;
* @see PlaceholderEngine
* @since v1-alpha0
*/
@SuppressWarnings({ "unused" })
public interface Placeholder {
/**
* Replaces the placeholder with content.

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,10 +17,10 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.classes;
package de.staropensource.sosengine.base.implementable;
import de.staropensource.sosengine.base.EngineConfiguration;
import de.staropensource.sosengine.base.exceptions.ParserException;
import de.staropensource.sosengine.base.exception.ParserException;
import de.staropensource.sosengine.base.logging.LoggerInstance;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
@ -48,7 +48,7 @@ import java.util.Locale;
*
* @since v1-alpha1
*/
@SuppressWarnings({ "unused", "JavadocDeclaration" })
@SuppressWarnings({ "JavadocDeclaration" })
public abstract class ShortcodeParserSkeleton {
/**
* Contains the {@link LoggerInstance} for this instance.

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,7 +17,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.classes;
package de.staropensource.sosengine.base.implementable;
import de.staropensource.sosengine.base.Engine;
import org.jetbrains.annotations.Range;

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,14 +17,14 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.classes;
package de.staropensource.sosengine.base.implementable;
import de.staropensource.sosengine.base.Engine;
import de.staropensource.sosengine.base.annotations.EngineSubsystem;
import de.staropensource.sosengine.base.annotations.EventListener;
import de.staropensource.sosengine.base.annotation.EngineSubsystem;
import de.staropensource.sosengine.base.annotation.EventListener;
import de.staropensource.sosengine.base.internal.events.InternalEngineShutdownEvent;
import de.staropensource.sosengine.base.logging.LoggerInstance;
import de.staropensource.sosengine.base.types.DependencyVector;
import de.staropensource.sosengine.base.type.DependencyVector;
import org.jetbrains.annotations.NotNull;
/**
@ -33,7 +33,6 @@ import org.jetbrains.annotations.NotNull;
* @see EngineSubsystem
* @since v1-alpha0
*/
@SuppressWarnings({ "unused" })
public abstract class SubsystemClass {
/**
* Constructs this class.
@ -84,5 +83,6 @@ public abstract class SubsystemClass {
* @since v1-alpha0
*/
@EventListener(event = InternalEngineShutdownEvent.class)
@SuppressWarnings({ "unused" })
protected static void shutdownSubsystem() {}
}

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,9 +17,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.classes;
package de.staropensource.sosengine.base.implementable;
import de.staropensource.sosengine.base.exceptions.versioning.IncompatibleVersioningSystemException;
import de.staropensource.sosengine.base.exception.versioning.IncompatibleVersioningSystemException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Range;
@ -28,7 +28,6 @@ import org.jetbrains.annotations.Range;
*
* @since v1-alpha1
*/
@SuppressWarnings({ "unused" })
public interface VersioningSystem {
/**
* Returns the name of the versioning system.

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -17,17 +17,17 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.staropensource.sosengine.base.classes.helpers;
package de.staropensource.sosengine.base.implementable.helpers;
import de.staropensource.sosengine.base.EngineConfiguration;
import de.staropensource.sosengine.base.annotations.EventListener;
import de.staropensource.sosengine.base.classes.Event;
import de.staropensource.sosengine.base.events.LogEvent;
import de.staropensource.sosengine.base.exceptions.UnexpectedThrowableException;
import de.staropensource.sosengine.base.exceptions.reflection.InstanceMethodFromStaticContextException;
import de.staropensource.sosengine.base.exceptions.reflection.InvalidMethodSignature;
import de.staropensource.sosengine.base.exceptions.reflection.NoAccessException;
import de.staropensource.sosengine.base.exceptions.reflection.StaticInitializerException;
import de.staropensource.sosengine.base.annotation.EventListener;
import de.staropensource.sosengine.base.implementable.Event;
import de.staropensource.sosengine.base.event.LogEvent;
import de.staropensource.sosengine.base.exception.UnexpectedThrowableException;
import de.staropensource.sosengine.base.exception.reflection.InstanceMethodFromStaticContextException;
import de.staropensource.sosengine.base.exception.reflection.InvalidMethodSignature;
import de.staropensource.sosengine.base.exception.reflection.NoAccessException;
import de.staropensource.sosengine.base.exception.reflection.StaticInitializerException;
import de.staropensource.sosengine.base.logging.LoggerInstance;
import de.staropensource.sosengine.base.reflection.Reflect;
import de.staropensource.sosengine.base.reflection.ReflectionMethod;
@ -53,7 +53,6 @@ import java.util.Set;
* @since v1-alpha0
*/
@Getter
@SuppressWarnings({ "unused" })
public final class EventHelper {
/**
* Holds all cached events.

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -23,4 +23,4 @@
*
* @since v1-alpha0
*/
package de.staropensource.sosengine.base.classes.helpers;
package de.staropensource.sosengine.base.implementable.helpers;

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -20,8 +20,8 @@
/**
* Interfaces and abstract classes which can be used for implementing classes.
* <p>
* These are not to be confused with data types. See {@link de.staropensource.sosengine.base.types}.
* These are not to be confused with data types. See {@link de.staropensource.sosengine.base.type}.
*
* @since v1-alpha0
*/
package de.staropensource.sosengine.base.classes;
package de.staropensource.sosengine.base.implementable;

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,11 +19,11 @@
package de.staropensource.sosengine.base.internal.events;
import de.staropensource.sosengine.base.classes.Event;
import de.staropensource.sosengine.base.classes.helpers.EventHelper;
import de.staropensource.sosengine.base.implementable.Event;
import de.staropensource.sosengine.base.implementable.helpers.EventHelper;
/**
* Called when the engine is about to shutdown, after {@link de.staropensource.sosengine.base.events.EngineShutdownEvent}.
* Called when the engine is about to shutdown, after {@link de.staropensource.sosengine.base.event.EngineShutdownEvent}.
* <p>
* Meant for subsystems to perform cleanup and shutdown routines, not for applications.
*

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,7 +19,7 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.utility.Math;
import org.jetbrains.annotations.NotNull;

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,7 +19,7 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.utility.Math;
import org.jetbrains.annotations.NotNull;

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,7 +19,7 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.utility.Math;
import org.jetbrains.annotations.NotNull;

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,7 +19,7 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.implementable.Placeholder;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.JvmInformation;
import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.JvmInformation;
import org.jetbrains.annotations.NotNull;
/**
@ -44,7 +44,8 @@ public final class JvmArguments implements Placeholder {
StringBuilder arguments = new StringBuilder();
for (String argument : JvmInformation.getArguments()) {
if (!arguments.isEmpty()) arguments.append(" ");
if (!arguments.isEmpty())
arguments.append(" ");
arguments
.append("\"")

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.JvmInformation;
import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.JvmInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.JvmInformation;
import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.JvmInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.JvmInformation;
import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.JvmInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.JvmInformation;
import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.JvmInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,8 +19,8 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.JvmInformation;
import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.JvmInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,7 +19,7 @@
package de.staropensource.sosengine.base.internal.placeholders;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.implementable.Placeholder;
import de.staropensource.sosengine.base.utility.Math;
import org.jetbrains.annotations.NotNull;

Some files were not shown because too many files have changed in this diff Show more