X: Moved all API files into Implementation package
Until Nenjim works better navigation in the code is just too annoying.
This commit is contained in:
@@ -1,7 +0,0 @@
|
|||||||
package com.r35157.libs.math;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
|
|
||||||
public interface UtilsDouble {
|
|
||||||
double erf(BigDecimal x);
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
package com.r35157.libs.notification;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
public interface AddressedNotifier<
|
|
||||||
D extends NotificationDestination,
|
|
||||||
M extends NotificationMessage>
|
|
||||||
{
|
|
||||||
void push(D destination, M message) throws IOException;
|
|
||||||
|
|
||||||
default BoundNotifier<M> bind(D destination) {
|
|
||||||
return message -> push(destination, message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
package com.r35157.libs.notification;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
public interface BoundNotifier<M extends NotificationMessage> {
|
|
||||||
void push(M message) throws IOException;
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
package com.r35157.libs.notification;
|
|
||||||
|
|
||||||
public interface NotificationDestination {}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
package com.r35157.libs.notification;
|
|
||||||
|
|
||||||
public interface NotificationMessage {
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
package com.r35157.libs.valuetypes.basic;
|
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
public record CurrencyType(
|
|
||||||
UUID id,
|
|
||||||
String name,
|
|
||||||
String symbol
|
|
||||||
) {
|
|
||||||
@Override
|
|
||||||
public @NotNull String toString() {
|
|
||||||
return symbol;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,70 +0,0 @@
|
|||||||
package com.r35157.libs.valuetypes.basic;
|
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
import java.util.regex.Matcher;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Semantic Versioning (SemVer):
|
|
||||||
* A version number has the form MAJOR.MINOR.PATCH.
|
|
||||||
* - Increment MAJOR for incompatible API changes,
|
|
||||||
* - Increment MINOR for added functionality in a backward-compatible way,
|
|
||||||
* - Increment PATCH for backward-compatible bug fixes or improvements.
|
|
||||||
* TODO: Not the whole specification is implemented yet!
|
|
||||||
*/
|
|
||||||
public record SemanticVersion(int major, int minor, int patch) {
|
|
||||||
/**
|
|
||||||
* Creates a SemanticVersion and validates that all components are valid.
|
|
||||||
*
|
|
||||||
* @throws IllegalArgumentException if any of {@code major}, {@code minor}, or {@code patch} is negative
|
|
||||||
*/
|
|
||||||
public SemanticVersion {
|
|
||||||
initializationGuardClause(major, minor, patch);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static SemanticVersion of(int major, int minor, int patch) {
|
|
||||||
return new SemanticVersion(major, minor, patch);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static SemanticVersion of(int major, int minor) {
|
|
||||||
return of(major, minor, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static SemanticVersion of(int major) {
|
|
||||||
return of(major, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static SemanticVersion of(@NotNull String versionStr) {
|
|
||||||
final String s = versionStr.trim();
|
|
||||||
|
|
||||||
final Matcher m = SEMVER_REGEX.matcher(s);
|
|
||||||
if (!m.matches()) {
|
|
||||||
throw new IllegalArgumentException("Invalid semantic version: '" + versionStr + "'!");
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
final int major = Integer.parseInt(m.group(1));
|
|
||||||
final int minor = m.group(2) != null ? Integer.parseInt(m.group(2)) : 0;
|
|
||||||
final int patch = m.group(3) != null ? Integer.parseInt(m.group(3)) : 0;
|
|
||||||
return of(major, minor, patch);
|
|
||||||
} catch (NumberFormatException e) {
|
|
||||||
// Happens only with overruns
|
|
||||||
throw new IllegalArgumentException("Invalid semantic version: '" + versionStr + "'!", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public @NotNull String toString() {
|
|
||||||
return "%d.%d.%d".formatted(major, minor, patch);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void initializationGuardClause(int major, int minor, int patch) throws IllegalArgumentException {
|
|
||||||
if (major < 0) throw new IllegalArgumentException("Version element 'major' cannot be negative - was '" + major + "'!");
|
|
||||||
if (minor < 0) throw new IllegalArgumentException("Version element 'minor' cannot be negative - was '" + minor + "'!");
|
|
||||||
if (patch < 0) throw new IllegalArgumentException("Version element 'patch' cannot be negative - was '" + patch + "'!");
|
|
||||||
}
|
|
||||||
|
|
||||||
private static final Pattern SEMVER_REGEX =
|
|
||||||
Pattern.compile("^(\\d+)(?:\\.(\\d+)(?:\\.(\\d+))?)?$");
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
package com.r35157.libs.valuetypes.basic;
|
|
||||||
|
|
||||||
public record SmtpConfiguration(
|
|
||||||
NetworkEndPoint networkEndPoint,
|
|
||||||
Credentials credentials
|
|
||||||
) {
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
package com.r35157.libs.valuetypes.basic;
|
|
||||||
|
|
||||||
public record TradingPair(
|
|
||||||
CurrencyType base, // The thing you are buying or selling.
|
|
||||||
CurrencyType quote // The currency/unit used to price the base asset.
|
|
||||||
) { }
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
package com.r35157.nenjim.hubd.journal;
|
|
||||||
|
|
||||||
public interface JournalManager {
|
|
||||||
Journal getJournal(String moduleName);
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
package com.r35157.nenjim.hubd.module;
|
|
||||||
|
|
||||||
public record Module() {
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user