Compare commits

..

No commits in common. "structure-update" and "develop" have entirely different histories.

306 changed files with 2781 additions and 2741 deletions

View file

@ -12,26 +12,8 @@ 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:
@ -62,26 +44,8 @@ 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:
@ -103,23 +67,5 @@ 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,26 +11,8 @@ 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:
@ -38,23 +20,5 @@ 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 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="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="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 [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.
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.
\
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 extremely simple and easy to understand.
- Make comments about your code, unless it's extremly 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 separate it.
- Make sure every field and method has a newline to seperate it.
- Files must end with a newline or cats might get angry.
- Use your brain.
### Pull request guidelines

View file

@ -92,13 +92,6 @@ 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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.LoggerImplementation;
import de.staropensource.sosengine.base.classes.LoggerImplementation;
import de.staropensource.sosengine.base.logging.Logger;
import de.staropensource.sosengine.base.type.logging.LogLevel;
import de.staropensource.sosengine.base.types.logging.LogLevel;
import org.fusesource.jansi.Ansi;
import org.fusesource.jansi.AnsiConsole;
import org.jetbrains.annotations.NotNull;
@ -35,6 +35,7 @@ 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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,20 +19,18 @@
package de.staropensource.sosengine.ansi;
import de.staropensource.sosengine.base.implementable.ShortcodeParserSkeleton;
import de.staropensource.sosengine.base.exception.ParserException;
import de.staropensource.sosengine.base.classes.ShortcodeParserSkeleton;
import de.staropensource.sosengine.base.exceptions.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.
@ -54,13 +52,11 @@ 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);
status.clear();
} else if (component.startsWith("TEXT:"))
else if (component.startsWith("TEXT:"))
ansi.a(component.substring(5));
else if (component.startsWith("COLOR:"))
if (component.startsWith("COLOR:FOREGROUND:"))
@ -68,38 +64,18 @@ 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 (status.contains("ATTRIBUTE:BLINK"))
continue;
if (component.startsWith("ATTRIBUTE:BLINK"))
ansi.a(Ansi.Attribute.BLINK_SLOW);
status.add("ATTRIBUTE:BLINK");
} else if (component.startsWith("ATTRIBUTE:BOLD")) {
if (status.contains("ATTRIBUTE:BOLD"))
continue;
else if (component.startsWith("ATTRIBUTE:BOLD"))
ansi.a(Ansi.Attribute.INTENSITY_BOLD);
status.add("ATTRIBUTE:BOLD");
} else if (component.startsWith("ATTRIBUTE:ITALIC")) {
if (status.contains("ATTRIBUTE:ITALIC"))
continue;
else if (component.startsWith("ATTRIBUTE:ITALIC"))
ansi.a(Ansi.Attribute.ITALIC);
status.add("ATTRIBUTE:ITALIC");
} else if (component.startsWith("ATTRIBUTE:STRIKETHROUGH")) {
if (status.contains("ATTRIBUTE:STRIKETHROUGH"))
continue;
else if (component.startsWith("ATTRIBUTE:STRIKETHROUGH"))
ansi.a(Ansi.Attribute.STRIKETHROUGH_ON);
status.add("ATTRIBUTE:STRIKETHROUGH");
} else if (component.startsWith("ATTRIBUTE:UNDERLINE")) {
if (status.contains("ATTRIBUTE:UNDERLINE"))
continue;
else if (component.startsWith("ATTRIBUTE:UNDERLINE"))
ansi.a(Ansi.Attribute.UNDERLINE);
status.add("ATTRIBUTE:UNDERLINE");
}
else if (component.startsWith("ATTRIBUTE:NEGATIVE"))
ansi.a(Ansi.Attribute.NEGATIVE_ON);
return ansi;
}

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.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.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.logging.Logger;
import de.staropensource.sosengine.base.type.DependencyVector;
import de.staropensource.sosengine.base.types.DependencyVector;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
@ -34,7 +34,7 @@ import org.jetbrains.annotations.NotNull;
* @since v1-alpha2
*/
@EngineSubsystem
@SuppressWarnings({ "JavadocDeclaration" })
@SuppressWarnings({ "unused", "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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify

View file

@ -131,13 +131,6 @@ 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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* Licensed under the GNU Affero General Public License v3
*
* This program is free software: you can redistribute it and/or modify
@ -19,26 +19,27 @@
package de.staropensource.sosengine.base;
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.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.internal.events.InternalEngineShutdownEvent;
import de.staropensource.sosengine.base.internal.types.DependencySubsystemVector;
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.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.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;
@ -57,7 +58,7 @@ import java.util.*;
* @since v1-alpha0
*/
@EngineSubsystem
@SuppressWarnings({ "JavadocDeclaration" })
@SuppressWarnings({ "unused", "JavadocDeclaration" })
public final class Engine extends SubsystemClass {
/**
* Contains the class instance.
@ -106,21 +107,6 @@ 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
@ -145,39 +131,24 @@ public final class Engine extends SubsystemClass {
* @see ShutdownHandler
* @since v1-alpha2
*/
@Getter(value = AccessLevel.MODULE)
@Setter(value = AccessLevel.MODULE)
@Getter
@Setter
private @NotNull ShutdownHandler shutdownHandler = new Engine.JvmShutdownHandler();
/**
* Contains the JVM shutdown hook thread,
* which ensures that the engine is fully shut
* down before the JVM exits.
* Contains a list of all registered subsystems.
* The list is sorted after initialization order.
*
* @see EngineInternals#installSafetyShutdownHook(boolean)
* @since v1-alpha4
* @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(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()!");
});
@Getter
private @NotNull ImmutableLinkedList<@NotNull DependencySubsystemVector> subsystems = new ImmutableLinkedList<>();
/**
* Initializes the StarOpenSource Engine.
@ -199,14 +170,12 @@ public final class Engine extends SubsystemClass {
logger.info("Initializing engine");
initializeClasses(); // Initialize classes
if (checkEnvironment()) // Check environment
if (checkEnvironment())
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
@ -222,23 +191,8 @@ 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\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();
logger.info("Initialized sos!engine %engine_version% (commit %engine_git_commit_id_long%-%engine_git_branch%, dirty %engine_git_dirty%) in " + initTime + "ms");
}
/**
@ -256,12 +210,15 @@ public final class Engine extends SubsystemClass {
}
/**
* Ensures the execution safety of the environment.
* Initializes all classes.
*
* @since v1-alpha4
* @since v1-alpha0
*/
private void ensureEnvironment() {
EngineInternals.getInstance().installSafetyShutdownHook(true);
private void initializeClasses() {
logger.verb("Initializing engine classes");
new PlaceholderEngine();
EngineInformation.update();
}
/**
@ -366,17 +323,15 @@ 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
initializedClassRaw = clazz.getDeclaredConstructor().newInstance();
initializedClass = null;
Object initializedClassRaw = clazz.getDeclaredConstructor().newInstance();
SubsystemClass initializedClass = null;
// Check if class implements SubsystemMainClass
if (initializedClassRaw instanceof SubsystemClass)
initializedClass = (SubsystemClass) initializedClassRaw;
if (initializedClassRaw instanceof SubsystemClass subsystemInstance)
initializedClass = subsystemInstance;
else
logger.crash("Failed to initialize subsystem " + clazz.getName() + ": Does not implement " + SubsystemClass.class.getName());
@ -429,7 +384,7 @@ public final class Engine extends SubsystemClass {
}
// Initialize subsystems
logger.verb("Initializing engine subsystems");
logger.info("Initializing engine subsystems");
long initTime;
for (DependencySubsystemVector vector : subsystems) {
logger.diag("Initializing subsystem " + vector.getMainClass().getName() + " (" + vector.getMainClass().getClass().getName() + ")");
@ -453,12 +408,6 @@ 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;
@ -472,19 +421,12 @@ public final class Engine extends SubsystemClass {
// Flush log messages
Logger.flushLogMessages();
// Disable safety shutdown hook
try {
Runtime.getRuntime().removeShutdownHook(safetyShutdownHook);
} catch (Exception ignored) {}
// Send events
logger.verb("Notifying classes about shutdown");
logger.verb("Notifiying 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);
}
@ -551,18 +493,8 @@ public final class Engine extends SubsystemClass {
/** {@inheritDoc} */
@Override
public void shutdown(short exitCode) {
// 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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.ShortcodeParserSkeleton;
import de.staropensource.sosengine.base.implementable.Configuration;
import de.staropensource.sosengine.base.implementable.helpers.EventHelper;
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.logging.CrashHandler;
import de.staropensource.sosengine.base.logging.Logger;
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.types.EngineState;
import de.staropensource.sosengine.base.types.logging.LogLevel;
import de.staropensource.sosengine.base.types.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({ "JavadocDeclaration" })
@SuppressWarnings({ "unused", "JavadocDeclaration" })
public final class EngineConfiguration extends Configuration {
/**
* Contains the class instance.
@ -216,19 +216,19 @@ public final class EngineConfiguration extends Configuration {
private String loggerTemplate;
/**
* Contains how fast the logging thread will poll for queued messages.
* Only applies if {@code optimizeLogging} is turned on.
* 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 #optimizeLogging
* @since v1-alpha1
* @see CrashHandler
* @since v1-alpha0
* -- GETTER --
* Gets the value for {@link #loggerPollingSpeed}.
* Gets the value for {@link #loggerImmediateShutdown}.
*
* @return variable value
* @see #loggerPollingSpeed
* @since v1-alpha1
* @see #loggerImmediateShutdown
* @since v1-alpha0
*/
private int loggerPollingSpeed;
private boolean loggerImmediateShutdown;
/**
* 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,34 +245,19 @@ public final class EngineConfiguration extends Configuration {
private boolean loggerForceStandardOutput;
/**
* 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}).
* Contains how fast the logging thread will poll for queued messages.
* Only applies if {@code optimizeLogging} is turned on.
*
* @since v1-alpha4
* @see #optimizeLogging
* @since v1-alpha1
* -- GETTER --
* Gets the value for {@link #loggerEnableNewlineSupport}.
* Gets the value for {@link #loggerForceStandardOutput}.
*
* @return variable value
* @see #loggerEnableNewlineSupport
* @since v1-alpha4
* @see #loggerForceStandardOutput
* @since v1-alpha1
*/
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;
private int loggerPollingSpeed;
/**
* Will truncate the path of types when using their {@code toString} method.
@ -340,10 +325,9 @@ public final class EngineConfiguration extends Configuration {
}
}
case "loggerTemplate" -> loggerTemplate = parser.getString(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 "loggerForceStandardOutput" -> loggerForceStandardOutput = parser.getBoolean(group + property);
case "loggerPollingSpeed" -> loggerPollingSpeed = parser.getInteger(group + property, true);
case "hideFullTypePath" -> hideFullTypePath = parser.getBoolean(group + property);
}
@ -374,11 +358,10 @@ 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_message_prefix%%log_color_primary%%log_color_secondary%%log_message%<reset>";
loggerPollingSpeed = 5;
loggerForceStandardOutput = false;
loggerEnableNewlineSupport = true;
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;
loggerPollingSpeed = 5;
hideFullTypePath = false;
}
@ -399,10 +382,9 @@ public final class EngineConfiguration extends Configuration {
case "loggerLevel" -> { return loggerLevel; }
case "loggerTemplate" -> { return loggerTemplate; }
case "loggerPollingSpeed" -> { return loggerPollingSpeed; }
case "loggerForceStandardOutput" -> { return loggerForceStandardOutput; }
case "loggerEnableNewlineSupport" -> { return loggerEnableNewlineSupport; }
case "loggerImmediateShutdown" -> { return loggerImmediateShutdown; }
case "loggerForceStandardOutput" -> { return loggerForceStandardOutput; }
case "loggerPollingSpeed" -> { return loggerPollingSpeed; }
case "hideFullTypePath" -> { return hideFullTypePath; }
default -> { return null; }

View file

@ -1,169 +0,0 @@
/*
* 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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.annotation;
package de.staropensource.sosengine.base.annotations;
import de.staropensource.sosengine.base.implementable.SubsystemClass;
import de.staropensource.sosengine.base.classes.SubsystemClass;
import java.lang.annotation.*;
@ -33,4 +33,5 @@ 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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.annotation;
package de.staropensource.sosengine.base.annotations;
import de.staropensource.sosengine.base.implementable.Event;
import de.staropensource.sosengine.base.type.EventPriority;
import de.staropensource.sosengine.base.classes.Event;
import de.staropensource.sosengine.base.types.EventPriority;
import org.jetbrains.annotations.NotNull;
import java.lang.annotation.*;
@ -34,6 +34,7 @@ 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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.annotation;
package de.staropensource.sosengine.base.annotations;

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable;
package de.staropensource.sosengine.base.classes;
import de.staropensource.sosengine.base.logging.LoggerInstance;
import de.staropensource.sosengine.base.utility.PropertiesReader;
@ -35,6 +35,7 @@ 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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable;
package de.staropensource.sosengine.base.classes;
import de.staropensource.sosengine.base.implementable.helpers.EventHelper;
import de.staropensource.sosengine.base.classes.helpers.EventHelper;
/**
* Represents an event.
@ -27,6 +27,7 @@ import de.staropensource.sosengine.base.implementable.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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable;
package de.staropensource.sosengine.base.classes;
import de.staropensource.sosengine.base.logging.Logger;
import de.staropensource.sosengine.base.type.logging.LogLevel;
import de.staropensource.sosengine.base.types.logging.LogLevel;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@ -30,6 +30,7 @@ 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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable;
package de.staropensource.sosengine.base.classes;
import de.staropensource.sosengine.base.utility.PlaceholderEngine;
import org.jetbrains.annotations.NotNull;
@ -28,6 +28,7 @@ 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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable;
package de.staropensource.sosengine.base.classes;
import de.staropensource.sosengine.base.EngineConfiguration;
import de.staropensource.sosengine.base.exception.ParserException;
import de.staropensource.sosengine.base.exceptions.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({ "JavadocDeclaration" })
@SuppressWarnings({ "unused", "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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable;
package de.staropensource.sosengine.base.classes;
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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable;
package de.staropensource.sosengine.base.classes;
import de.staropensource.sosengine.base.Engine;
import de.staropensource.sosengine.base.annotation.EngineSubsystem;
import de.staropensource.sosengine.base.annotation.EventListener;
import de.staropensource.sosengine.base.annotations.EngineSubsystem;
import de.staropensource.sosengine.base.annotations.EventListener;
import de.staropensource.sosengine.base.internal.events.InternalEngineShutdownEvent;
import de.staropensource.sosengine.base.logging.LoggerInstance;
import de.staropensource.sosengine.base.type.DependencyVector;
import de.staropensource.sosengine.base.types.DependencyVector;
import org.jetbrains.annotations.NotNull;
/**
@ -33,6 +33,7 @@ import org.jetbrains.annotations.NotNull;
* @see EngineSubsystem
* @since v1-alpha0
*/
@SuppressWarnings({ "unused" })
public abstract class SubsystemClass {
/**
* Constructs this class.
@ -83,6 +84,5 @@ 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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable;
package de.staropensource.sosengine.base.classes;
import de.staropensource.sosengine.base.exception.versioning.IncompatibleVersioningSystemException;
import de.staropensource.sosengine.base.exceptions.versioning.IncompatibleVersioningSystemException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Range;
@ -28,6 +28,7 @@ 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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.helpers;
package de.staropensource.sosengine.base.classes.helpers;
import de.staropensource.sosengine.base.EngineConfiguration;
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.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.logging.LoggerInstance;
import de.staropensource.sosengine.base.reflection.Reflect;
import de.staropensource.sosengine.base.reflection.ReflectionMethod;
@ -53,6 +53,7 @@ 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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.helpers;
package de.staropensource.sosengine.base.classes.helpers;

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.type}.
* These are not to be confused with data types. See {@link de.staropensource.sosengine.base.types}.
*
* @since v1-alpha0
*/
package de.staropensource.sosengine.base.implementable;
package de.staropensource.sosengine.base.classes;

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.dataprovider.information;
package de.staropensource.sosengine.base.data.information;
import de.staropensource.sosengine.base.Engine;
import de.staropensource.sosengine.base.logging.LoggerInstance;
import de.staropensource.sosengine.base.type.VersionType;
import de.staropensource.sosengine.base.types.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({ "JavadocDeclaration" })
@SuppressWarnings({ "unused", "JavadocDeclaration" })
public final class EngineInformation {
/**
* Contains the {@link LoggerInstance} for this instance.
@ -363,6 +363,7 @@ 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;
}
@ -390,6 +391,7 @@ 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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.dataprovider.information;
package de.staropensource.sosengine.base.data.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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.dataprovider.information;
package de.staropensource.sosengine.base.data.information;

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.dataprovider;
package de.staropensource.sosengine.base.data;

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.dataprovider.versioning;
package de.staropensource.sosengine.base.data.versioning;
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.classes.VersioningSystem;
import de.staropensource.sosengine.base.exceptions.versioning.IncompatibleVersioningSystemException;
import de.staropensource.sosengine.base.exceptions.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({ "JavadocDeclaration" })
@SuppressWarnings({ "unused", "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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.dataprovider.versioning;
package de.staropensource.sosengine.base.data.versioning;
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.classes.VersioningSystem;
import de.staropensource.sosengine.base.exceptions.versioning.IncompatibleVersioningSystemException;
import de.staropensource.sosengine.base.exceptions.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({ "JavadocDeclaration" })
@SuppressWarnings({ "unused", "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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.dataprovider.versioning;
package de.staropensource.sosengine.base.data.versioning;
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.classes.VersioningSystem;
import de.staropensource.sosengine.base.exceptions.versioning.IncompatibleVersioningSystemException;
import de.staropensource.sosengine.base.exceptions.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({ "JavadocDeclaration" })
@SuppressWarnings({ "unused", "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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.dataprovider.versioning;
package de.staropensource.sosengine.base.data.versioning;
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 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 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({ "JavadocDeclaration" })
@SuppressWarnings({ "unused", "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 characters
// Iterate through all chraracters
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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.dataprovider.versioning;
package de.staropensource.sosengine.base.data.versioning;
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.classes.VersioningSystem;
import de.staropensource.sosengine.base.exceptions.versioning.IncompatibleVersioningSystemException;
import de.staropensource.sosengine.base.exceptions.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({ "JavadocDeclaration" })
@SuppressWarnings({ "unused", "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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.dataprovider.versioning;
package de.staropensource.sosengine.base.data.versioning;
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.classes.VersioningSystem;
import de.staropensource.sosengine.base.exceptions.versioning.IncompatibleVersioningSystemException;
import de.staropensource.sosengine.base.exceptions.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({ "JavadocDeclaration" })
@SuppressWarnings({ "unused", "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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.dataprovider.versioning;
package de.staropensource.sosengine.base.data.versioning;

View file

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

View file

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

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.exception;
package de.staropensource.sosengine.base.exceptions;
import org.jetbrains.annotations.NotNull;

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.exception;
package de.staropensource.sosengine.base.exceptions;
import de.staropensource.sosengine.base.type.Tristate;
import de.staropensource.sosengine.base.types.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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.exception;
package de.staropensource.sosengine.base.exceptions;
import org.jetbrains.annotations.NotNull;

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.exception;
package de.staropensource.sosengine.base.exceptions;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
@ -28,7 +28,7 @@ import org.jetbrains.annotations.NotNull;
* @since v1-alpha1
*/
@Getter
@SuppressWarnings({ "JavadocDeclaration" })
@SuppressWarnings({ "unused", "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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.exception.dependency;
package de.staropensource.sosengine.base.exceptions.dependency;
import de.staropensource.sosengine.base.utility.DependencyResolver;
import org.jetbrains.annotations.NotNull;
@ -27,6 +27,7 @@ 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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.exception.dependency;
package de.staropensource.sosengine.base.exceptions.dependency;
import de.staropensource.sosengine.base.type.DependencyVector;
import de.staropensource.sosengine.base.types.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({ "JavadocDeclaration" })
@SuppressWarnings({ "unused", "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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.exception.dependency;
package de.staropensource.sosengine.base.exceptions.dependency;

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.exception;
package de.staropensource.sosengine.base.exceptions;

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.exception.reflection;
package de.staropensource.sosengine.base.exceptions.reflection;
import de.staropensource.sosengine.base.type.reflection.ClassType;
import de.staropensource.sosengine.base.types.reflection.ClassType;
import de.staropensource.sosengine.base.utility.ListFormatter;
import org.jetbrains.annotations.NotNull;
@ -28,6 +28,7 @@ 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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.exception.reflection;
package de.staropensource.sosengine.base.exceptions.reflection;
import org.jetbrains.annotations.NotNull;

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.exception.reflection;
package de.staropensource.sosengine.base.exceptions.reflection;
import de.staropensource.sosengine.base.reflection.ReflectionClass;
import org.jetbrains.annotations.NotNull;
@ -27,6 +27,7 @@ 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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.exception.reflection;
package de.staropensource.sosengine.base.exceptions.reflection;
import de.staropensource.sosengine.base.reflection.ReflectionClass;
import org.jetbrains.annotations.NotNull;
@ -27,6 +27,7 @@ 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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.exception.reflection;
package de.staropensource.sosengine.base.exceptions.reflection;
import org.jetbrains.annotations.NotNull;
@ -26,6 +26,7 @@ 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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.exception.reflection;
package de.staropensource.sosengine.base.exceptions.reflection;
import org.jetbrains.annotations.NotNull;
@ -26,7 +26,8 @@ import org.jetbrains.annotations.NotNull;
*
* @since v1-alpha2
*/
public class NoReflectionAccessException extends Exception {
@SuppressWarnings({ "unused" })
public class NoAccessException extends Exception {
/**
* Constructs this exception.
*
@ -34,7 +35,7 @@ public class NoReflectionAccessException extends Exception {
* @param name class, method or field name
* @since v1-alpha2
*/
public NoReflectionAccessException(@NotNull String type, @NotNull String name) {
public NoAccessException(@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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.exception.reflection;
package de.staropensource.sosengine.base.exceptions.reflection;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
@ -28,7 +28,7 @@ import org.jetbrains.annotations.NotNull;
* @since v1-alpha2
*/
@Getter
@SuppressWarnings({ "JavadocDeclaration" })
@SuppressWarnings({ "unused", "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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.exception.reflection;
package de.staropensource.sosengine.base.exceptions.reflection;

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.exception.versioning;
package de.staropensource.sosengine.base.exceptions.versioning;
import de.staropensource.sosengine.base.implementable.VersioningSystem;
import de.staropensource.sosengine.base.classes.VersioningSystem;
/**
* Thrown when trying to compare a {@link VersioningSystem} against another
@ -27,6 +27,7 @@ import de.staropensource.sosengine.base.implementable.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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.exception.versioning;
package de.staropensource.sosengine.base.exceptions.versioning;
import de.staropensource.sosengine.base.implementable.VersioningSystem;
import de.staropensource.sosengine.base.classes.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({ "JavadocDeclaration" })
@SuppressWarnings({ "unused", "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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.VersioningSystem}s.
* Exceptions thrown by implementations of {@link de.staropensource.sosengine.base.classes.VersioningSystem}s.
*
* @see de.staropensource.sosengine.base.implementable.VersioningSystem
* @see de.staropensource.sosengine.base.classes.VersioningSystem
* @since v1-alpha1
*/
package de.staropensource.sosengine.base.exception.versioning;
package de.staropensource.sosengine.base.exceptions.versioning;

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Event;
import de.staropensource.sosengine.base.implementable.helpers.EventHelper;
import de.staropensource.sosengine.base.classes.Event;
import de.staropensource.sosengine.base.classes.helpers.EventHelper;
/**
* Called when the engine is about to shutdown, after {@link de.staropensource.sosengine.base.event.EngineShutdownEvent}.
* Called when the engine is about to shutdown, after {@link de.staropensource.sosengine.base.events.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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.classes.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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.classes.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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.classes.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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.classes.Placeholder;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.EngineInformation;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.EngineInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.JvmInformation;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.JvmInformation;
import org.jetbrains.annotations.NotNull;
/**
@ -44,8 +44,7 @@ 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 Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.JvmInformation;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.JvmInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.JvmInformation;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.JvmInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.JvmInformation;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.JvmInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.JvmInformation;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.JvmInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.dataprovider.information.JvmInformation;
import de.staropensource.sosengine.base.classes.Placeholder;
import de.staropensource.sosengine.base.data.information.JvmInformation;
import org.jetbrains.annotations.NotNull;
/**

View file

@ -1,6 +1,6 @@
/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Copyright (c) 2024 The StarOpenSource Engine Contributors
* 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.implementable.Placeholder;
import de.staropensource.sosengine.base.classes.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