From 59badf96f6ac42f4ac6d8d476fd2f83770fc744d Mon Sep 17 00:00:00 2001 From: JesseBrault0709 <62299747+JesseBrault0709@users.noreply.github.com> Date: Mon, 13 May 2024 14:14:21 +0200 Subject: [PATCH] Groowt-all and fp. --- .../groowt/gradle/groowt-conventions.gradle | 12 ---- .../groowt/gradle/groowt-testing.gradle | 35 ++++++++++++ groowt-all/build.gradle | 22 +++++++ settings.gradle | 2 +- util/di/build.gradle | 16 ++++++ util/extensible/build.gradle | 13 +++++ util/fp/build.gradle | 26 +++++++++ .../java/groowt/util/fp/either}/Either.java | 2 +- .../main/java/groowt/util/fp/hkt/Monoid.java | 23 ++++++++ .../java/groowt/util/fp/hkt}/SemiGroup.java | 6 +- .../main/java/groowt/util/fp/hkt/Zero.java | 17 ++++++ .../java/groowt/util/fp/option}/Option.java | 3 +- .../groowt/util/fp/property/Property.java | 56 ++++++++++++++++++ .../util/fp/property/SimpleProperty.java | 57 +++++++++++++++++++ .../groowt/util/fp/provider/LazyProvider.java | 18 ++++++ .../groowt/util/fp/provider/Provider.java | 26 +++++++++ .../util/fp/provider}/SimpleProvider.java | 9 ++- view-components/build.gradle | 30 ++++------ views/build.gradle | 26 ++++----- web-views/build.gradle | 19 ++++--- .../transpile/DefaultComponentTranspiler.java | 2 +- .../transpile/DefaultGStringTranspiler.java | 2 +- .../DefaultTranspilerConfiguration.java | 2 +- .../CachingComponentClassNodeResolver.java | 2 +- ...ClassLoaderComponentClassNodeResolver.java | 2 +- .../resolve/ComponentClassNodeResolver.java | 2 +- .../ModuleNodeComponentClassNodeResolver.java | 2 +- .../groowt/view/web/util/LazyProvider.java | 26 --------- .../java/groowt/view/web/util/Monoid.java | 21 ------- .../java/groowt/view/web/util/Property.java | 5 -- .../java/groowt/view/web/util/Provider.java | 17 ------ 31 files changed, 363 insertions(+), 138 deletions(-) create mode 100644 buildSrc/src/main/groovy/groowt/gradle/groowt-testing.gradle create mode 100644 groowt-all/build.gradle create mode 100644 util/fp/build.gradle rename {web-views/src/main/java/groowt/view/web/util => util/fp/src/main/java/groowt/util/fp/either}/Either.java (98%) create mode 100644 util/fp/src/main/java/groowt/util/fp/hkt/Monoid.java rename {web-views/src/main/java/groowt/view/web/util => util/fp/src/main/java/groowt/util/fp/hkt}/SemiGroup.java (90%) create mode 100644 util/fp/src/main/java/groowt/util/fp/hkt/Zero.java rename {web-views/src/main/java/groowt/view/web/util => util/fp/src/main/java/groowt/util/fp/option}/Option.java (98%) create mode 100644 util/fp/src/main/java/groowt/util/fp/property/Property.java create mode 100644 util/fp/src/main/java/groowt/util/fp/property/SimpleProperty.java create mode 100644 util/fp/src/main/java/groowt/util/fp/provider/LazyProvider.java create mode 100644 util/fp/src/main/java/groowt/util/fp/provider/Provider.java rename {web-views/src/main/java/groowt/view/web/util => util/fp/src/main/java/groowt/util/fp/provider}/SimpleProvider.java (51%) delete mode 100644 web-views/src/main/java/groowt/view/web/util/LazyProvider.java delete mode 100644 web-views/src/main/java/groowt/view/web/util/Monoid.java delete mode 100644 web-views/src/main/java/groowt/view/web/util/Property.java delete mode 100644 web-views/src/main/java/groowt/view/web/util/Provider.java diff --git a/buildSrc/src/main/groovy/groowt/gradle/groowt-conventions.gradle b/buildSrc/src/main/groovy/groowt/gradle/groowt-conventions.gradle index 6dadabc..4b737d0 100644 --- a/buildSrc/src/main/groovy/groowt/gradle/groowt-conventions.gradle +++ b/buildSrc/src/main/groovy/groowt/gradle/groowt-conventions.gradle @@ -10,20 +10,8 @@ repositories { mavenCentral() } -dependencies { - testImplementation libs.junit.jupiter.api -} - java { toolchain { languageVersion = JavaLanguageVersion.of(21) } } - -testing { - suites { - test { - useJUnitJupiter() - } - } -} diff --git a/buildSrc/src/main/groovy/groowt/gradle/groowt-testing.gradle b/buildSrc/src/main/groovy/groowt/gradle/groowt-testing.gradle new file mode 100644 index 0000000..614fd4a --- /dev/null +++ b/buildSrc/src/main/groovy/groowt/gradle/groowt-testing.gradle @@ -0,0 +1,35 @@ +//file:noinspection GrPackage +plugins { + id 'groowt-conventions' + id 'groowt-logging' +} + +configurations { + testing { + canBeConsumed = false + canBeResolved = false + } + testImplementation { + extendsFrom configurations.testing + } +} + +repositories { + mavenCentral() +} + +dependencies { + testing libs.junit.jupiter.api +} + +test { + testLogging.showStandardStreams = true +} + +testing { + suites { + test { + useJUnitJupiter() + } + } +} diff --git a/groowt-all/build.gradle b/groowt-all/build.gradle new file mode 100644 index 0000000..6cee128 --- /dev/null +++ b/groowt-all/build.gradle @@ -0,0 +1,22 @@ +plugins { + id 'groowt-conventions' + id 'groowt-publish' + id 'java-library' +} + +dependencies { + api project(':views') + api project(':view-components') + api project(':web-views') + api project(':di') + api project(':extensible') +} + +publishing { + publications { + create('groowtAll', MavenPublication) { + artifactId = 'groowt-all' + from components.java + } + } +} diff --git a/settings.gradle b/settings.gradle index fdb33d6..c5452cd 100644 --- a/settings.gradle +++ b/settings.gradle @@ -6,7 +6,7 @@ pluginManagement { rootProject.name = 'groowt' -include 'cli', 'groowt-gradle', 'groowt-gradle-model', 'views', 'view-components', 'web-views' +include 'cli', 'groowt-all', 'groowt-gradle', 'groowt-gradle-model', 'views', 'view-components', 'web-views' file('util').eachDir { include it.name diff --git a/util/di/build.gradle b/util/di/build.gradle index ba31d42..dace193 100644 --- a/util/di/build.gradle +++ b/util/di/build.gradle @@ -1,5 +1,8 @@ plugins { id 'groowt-conventions' + id 'groowt-testing' + id 'groowt-logging' + id 'groowt-publish' id 'java-library' } @@ -8,3 +11,16 @@ dependencies { compileOnlyApi libs.jetbrains.anotations implementation libs.slf4j.api, libs.groovy } + +jar { + archiveBaseName = 'groowt-util-di' +} + +publishing { + publications { + create('di', MavenPublication) { + artifactId = 'groowt-util-di' + from components.java + } + } +} diff --git a/util/extensible/build.gradle b/util/extensible/build.gradle index 228c187..989bd2d 100644 --- a/util/extensible/build.gradle +++ b/util/extensible/build.gradle @@ -1,8 +1,21 @@ plugins { id 'groowt-conventions' + id 'groowt-publish' id 'java-library' } dependencies { compileOnlyApi libs.jetbrains.anotations } + +jar { + archiveBaseName = 'groowt-util-extensible' +} + +publishing { + publications { + create('extensible', MavenPublication) { + artifactId = 'groowt-util-extensible' + } + } +} diff --git a/util/fp/build.gradle b/util/fp/build.gradle new file mode 100644 index 0000000..97ee98c --- /dev/null +++ b/util/fp/build.gradle @@ -0,0 +1,26 @@ +plugins { + id 'groowt-conventions' + id 'groowt-publish' + id 'java-library' +} + +repositories { + mavenCentral() +} + +dependencies { + compileOnlyApi libs.jetbrains.anotations +} + +jar { + archiveBaseName = 'groowt-util-fp' +} + +publishing { + publications { + create('fp', MavenPublication) { + artifactId = 'groowt-util-fp' + from components.java + } + } +} diff --git a/web-views/src/main/java/groowt/view/web/util/Either.java b/util/fp/src/main/java/groowt/util/fp/either/Either.java similarity index 98% rename from web-views/src/main/java/groowt/view/web/util/Either.java rename to util/fp/src/main/java/groowt/util/fp/either/Either.java index d1ef6c1..921c0e7 100644 --- a/web-views/src/main/java/groowt/view/web/util/Either.java +++ b/util/fp/src/main/java/groowt/util/fp/either/Either.java @@ -1,4 +1,4 @@ -package groowt.view.web.util; +package groowt.util.fp.either; import java.util.function.Function; diff --git a/util/fp/src/main/java/groowt/util/fp/hkt/Monoid.java b/util/fp/src/main/java/groowt/util/fp/hkt/Monoid.java new file mode 100644 index 0000000..ce5f1cb --- /dev/null +++ b/util/fp/src/main/java/groowt/util/fp/hkt/Monoid.java @@ -0,0 +1,23 @@ +package groowt.util.fp.hkt; + +import java.util.Objects; + +public final class Monoid { + + private final SemiGroup semiGroup; + private final Zero zero; + + public Monoid(SemiGroup semiGroup, Zero zero) { + this.semiGroup = Objects.requireNonNull(semiGroup); + this.zero = Objects.requireNonNull(zero); + } + + public T concat(T left, T right) { + return this.semiGroup.concat(left, right); + } + + public T empty() { + return this.zero.getEmpty(); + } + +} diff --git a/web-views/src/main/java/groowt/view/web/util/SemiGroup.java b/util/fp/src/main/java/groowt/util/fp/hkt/SemiGroup.java similarity index 90% rename from web-views/src/main/java/groowt/view/web/util/SemiGroup.java rename to util/fp/src/main/java/groowt/util/fp/hkt/SemiGroup.java index d2fda27..0976caf 100644 --- a/web-views/src/main/java/groowt/view/web/util/SemiGroup.java +++ b/util/fp/src/main/java/groowt/util/fp/hkt/SemiGroup.java @@ -1,13 +1,17 @@ -package groowt.view.web.util; +package groowt.util.fp.hkt; import java.util.function.BinaryOperator; public final class SemiGroup { + private final BinaryOperator concat; + public SemiGroup(BinaryOperator concat) { this.concat = concat; } + public T concat(T left, T right) { return this.concat.apply(left, right); } + } diff --git a/util/fp/src/main/java/groowt/util/fp/hkt/Zero.java b/util/fp/src/main/java/groowt/util/fp/hkt/Zero.java new file mode 100644 index 0000000..ce35d4b --- /dev/null +++ b/util/fp/src/main/java/groowt/util/fp/hkt/Zero.java @@ -0,0 +1,17 @@ +package groowt.util.fp.hkt; + +import java.util.Objects; + +public final class Zero { + + private final T empty; + + public Zero(T empty) { + this.empty = Objects.requireNonNull(empty); + } + + public T getEmpty() { + return this.empty; + } + +} diff --git a/web-views/src/main/java/groowt/view/web/util/Option.java b/util/fp/src/main/java/groowt/util/fp/option/Option.java similarity index 98% rename from web-views/src/main/java/groowt/view/web/util/Option.java rename to util/fp/src/main/java/groowt/util/fp/option/Option.java index 4ce9b40..62d354f 100644 --- a/web-views/src/main/java/groowt/view/web/util/Option.java +++ b/util/fp/src/main/java/groowt/util/fp/option/Option.java @@ -1,5 +1,6 @@ -package groowt.view.web.util; +package groowt.util.fp.option; +import groowt.util.fp.hkt.Monoid; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/util/fp/src/main/java/groowt/util/fp/property/Property.java b/util/fp/src/main/java/groowt/util/fp/property/Property.java new file mode 100644 index 0000000..a173ec6 --- /dev/null +++ b/util/fp/src/main/java/groowt/util/fp/property/Property.java @@ -0,0 +1,56 @@ +package groowt.util.fp.property; + +import groowt.util.fp.provider.Provider; +import org.jetbrains.annotations.Nullable; + +import java.util.function.Supplier; + +public interface Property extends Provider { + + static Property get(Class tClass) { + return new SimpleProperty<>(); + } + + static Property of(T t) { + final Property property = new SimpleProperty<>(); + property.set(t); + return property; + } + + static Property ofLazy(Provider tProvider) { + final Property property = new SimpleProperty<>(); + property.set(tProvider); + return property; + } + + static Property ofLazy(Supplier tSupplier) { + final Property property = new SimpleProperty<>(); + property.set(Provider.ofLazy(tSupplier)); + return property; + } + + void set(T t); + void set(Provider tProvider); + void setConvention(T t); + void setConvention(Provider tProvider); + + boolean isPresent(); + boolean isEmpty(); + + default T fold(@Nullable T onEmpty) { + if (this.isPresent()) { + return this.get(); + } else { + return onEmpty; + } + } + + default T fold(Provider onEmpty) { + if (this.isPresent()) { + return this.get(); + } else { + return onEmpty.get(); + } + } + +} diff --git a/util/fp/src/main/java/groowt/util/fp/property/SimpleProperty.java b/util/fp/src/main/java/groowt/util/fp/property/SimpleProperty.java new file mode 100644 index 0000000..69260ec --- /dev/null +++ b/util/fp/src/main/java/groowt/util/fp/property/SimpleProperty.java @@ -0,0 +1,57 @@ +package groowt.util.fp.property; + +import groowt.util.fp.provider.Provider; + +import java.util.Objects; + +final class SimpleProperty implements Property { + + private Provider provider; + private Provider convention; + + @Override + public boolean isPresent() { + return this.provider != null || this.convention != null; + } + + @Override + public boolean isEmpty() { + return this.provider == null && this.convention == null; + } + + @Override + public void set(T t) { + Objects.requireNonNull(t); + this.provider = Provider.of(t); + } + + @Override + public void set(Provider tProvider) { + Objects.requireNonNull(tProvider); + this.provider = tProvider; + } + + @Override + public void setConvention(T convention) { + Objects.requireNonNull(convention); + this.convention = Provider.of(convention); + } + + @Override + public void setConvention(Provider convention) { + Objects.requireNonNull(convention); + this.convention = convention; + } + + @Override + public T get() { + if (!this.isPresent()) { + throw new NullPointerException("Cannot get() from an empty Property. Set the value or set the convention."); + } else if (this.provider != null) { + return this.provider.get(); + } else { + return this.convention.get(); + } + } + +} diff --git a/util/fp/src/main/java/groowt/util/fp/provider/LazyProvider.java b/util/fp/src/main/java/groowt/util/fp/provider/LazyProvider.java new file mode 100644 index 0000000..2d0d34a --- /dev/null +++ b/util/fp/src/main/java/groowt/util/fp/provider/LazyProvider.java @@ -0,0 +1,18 @@ +package groowt.util.fp.provider; + +import java.util.function.Supplier; + +final class LazyProvider implements Provider { + + private final Supplier lazy; + + public LazyProvider(Supplier supplier) { + this.lazy = supplier; + } + + @Override + public T get() { + return this.lazy.get(); + } + +} diff --git a/util/fp/src/main/java/groowt/util/fp/provider/Provider.java b/util/fp/src/main/java/groowt/util/fp/provider/Provider.java new file mode 100644 index 0000000..dc9ec3a --- /dev/null +++ b/util/fp/src/main/java/groowt/util/fp/provider/Provider.java @@ -0,0 +1,26 @@ +package groowt.util.fp.provider; + +import java.util.function.Function; +import java.util.function.Supplier; + +public interface Provider { + + static Provider of(T t) { + return new SimpleProvider<>(t); + } + + static Provider ofLazy(Supplier tSupplier) { + return new LazyProvider<>(tSupplier); + } + + T get(); + + default Provider map(Function mapper) { + return new LazyProvider<>(() -> mapper.apply(this.get())); + } + + default Provider flatMap(Function> flatMapper) { + return new LazyProvider<>(() -> flatMapper.apply(this.get()).get()); + } + +} diff --git a/web-views/src/main/java/groowt/view/web/util/SimpleProvider.java b/util/fp/src/main/java/groowt/util/fp/provider/SimpleProvider.java similarity index 51% rename from web-views/src/main/java/groowt/view/web/util/SimpleProvider.java rename to util/fp/src/main/java/groowt/util/fp/provider/SimpleProvider.java index 9f13f5f..2220b1b 100644 --- a/web-views/src/main/java/groowt/view/web/util/SimpleProvider.java +++ b/util/fp/src/main/java/groowt/util/fp/provider/SimpleProvider.java @@ -1,18 +1,17 @@ -package groowt.view.web.util; +package groowt.util.fp.provider; + +import java.util.Objects; final class SimpleProvider implements Provider { private final T t; public SimpleProvider(T t) { - this.t = t; + this.t = Objects.requireNonNull(t); } @Override public T get() { - if (this.t == null) { - throw new NullPointerException("This Provider has a null value."); - } return t; } diff --git a/view-components/build.gradle b/view-components/build.gradle index 454bc74..294c107 100644 --- a/view-components/build.gradle +++ b/view-components/build.gradle @@ -1,5 +1,7 @@ plugins { - id 'java' + id 'groowt-conventions' + id 'groowt-testing' + id 'groowt-publish' id 'java-library' id 'groovy' } @@ -9,27 +11,17 @@ repositories { } dependencies { - api libs.groovy, libs.groovy.templates, libs.jetbrains.anotations, project(':views') + api libs.groovy + api libs.jetbrains.anotations + api project(':views') + implementation libs.slf4j.api - - testImplementation libs.junit.jupiter.api - testRuntimeOnly libs.log4j.slf4jBinding, libs.log4j.core } -java { - toolchain { - languageVersion = JavaLanguageVersion.of(21) - } -} - -test { - testLogging.showStandardStreams = true -} - -testing { - suites { - test { - useJUnitJupiter() +publishing { + publications { + create('viewComponents', MavenPublication) { + artifactId = 'groowt-view-components' } } } diff --git a/views/build.gradle b/views/build.gradle index a472e26..2d48ceb 100644 --- a/views/build.gradle +++ b/views/build.gradle @@ -1,5 +1,7 @@ plugins { - id 'java' + id 'groowt-conventions' + id 'groowt-testing' + id 'groowt-publish' id 'java-library' id 'groovy' } @@ -9,27 +11,21 @@ repositories { } dependencies { - api libs.groovy, libs.groovy.templates + api libs.groovy + api libs.groovy.templates + implementation libs.slf4j.api - - testImplementation libs.junit.jupiter.api - testRuntimeOnly libs.log4j.slf4jBinding, libs.log4j.core -} - -java { - toolchain { - languageVersion = JavaLanguageVersion.of(21) - } } test { testLogging.showStandardStreams = true } -testing { - suites { - test { - useJUnitJupiter() +publishing { + publications { + create('views', MavenPublication) { + artifactId = 'groowt-views' + from components.java } } } diff --git a/web-views/build.gradle b/web-views/build.gradle index 351d66c..04bf656 100644 --- a/web-views/build.gradle +++ b/web-views/build.gradle @@ -4,7 +4,8 @@ import groowt.gradle.antlr.GroowtAntlrExecTask plugins { id 'groowt-conventions' id 'groowt-antlr-plugin' - id 'groowt-logging' + id 'groowt-testing' + id 'groowt-publish' id 'java-library' id 'groovy' id 'org.jetbrains.kotlin.jvm' @@ -16,6 +17,9 @@ repositories { } configurations { + testFixturesApi { + extendsFrom configurations.testing + } groovyConsole toolsImplementation { extendsFrom(apiElements, runtimeElements) @@ -46,6 +50,7 @@ dependencies { libs.groovy, libs.groovy.templates, libs.antlr.runtime, + project(':fp'), project(':view-components'), project(':views') ) @@ -63,7 +68,7 @@ dependencies { runtimeOnly libs.log4j.slf4jBinding def testLibs = [ - libs.junit.jupiter.api, libs.mockito.core, libs.mockito.junit + libs.mockito.core, libs.mockito.junit ] testLibs.each { @@ -188,13 +193,13 @@ tasks.register('cleanBin', Delete) { test { jvmArgs '-XX:+EnableDynamicAgentLoading' // for mockito/bytebuddy - testLogging.showStandardStreams = true } -testing { - suites { - test { - useJUnitJupiter() +publishing { + publications { + create('webViews', MavenPublication) { + artifactId = 'groowt-web-views' + from components.java } } } diff --git a/web-views/src/main/java/groowt/view/web/transpile/DefaultComponentTranspiler.java b/web-views/src/main/java/groowt/view/web/transpile/DefaultComponentTranspiler.java index b05002c..9586359 100644 --- a/web-views/src/main/java/groowt/view/web/transpile/DefaultComponentTranspiler.java +++ b/web-views/src/main/java/groowt/view/web/transpile/DefaultComponentTranspiler.java @@ -1,5 +1,6 @@ package groowt.view.web.transpile; +import groowt.util.fp.provider.Provider; import groowt.view.component.context.ComponentResolveException; import groowt.view.component.runtime.ComponentCreateException; import groowt.view.web.WebViewComponentBugError; @@ -7,7 +8,6 @@ import groowt.view.web.ast.node.*; import groowt.view.web.transpile.groovy.GroovyUtil; import groowt.view.web.transpile.groovy.GroovyUtil.ConvertResult; import groowt.view.web.transpile.resolve.ComponentClassNodeResolver; -import groowt.view.web.util.Provider; import groowt.view.web.util.SourcePosition; import org.codehaus.groovy.ast.*; import org.codehaus.groovy.ast.expr.*; diff --git a/web-views/src/main/java/groowt/view/web/transpile/DefaultGStringTranspiler.java b/web-views/src/main/java/groowt/view/web/transpile/DefaultGStringTranspiler.java index 2e3449e..5a7c27a 100644 --- a/web-views/src/main/java/groowt/view/web/transpile/DefaultGStringTranspiler.java +++ b/web-views/src/main/java/groowt/view/web/transpile/DefaultGStringTranspiler.java @@ -1,5 +1,6 @@ package groowt.view.web.transpile; +import groowt.util.fp.option.Option; import groowt.view.web.antlr.MergedGroovyCodeToken; import groowt.view.web.antlr.WebViewComponentsLexer; import groowt.view.web.ast.extension.GStringNodeExtension; @@ -10,7 +11,6 @@ import groowt.view.web.ast.node.JStringBodyTextNode; import groowt.view.web.ast.node.Node; import groowt.view.web.transpile.groovy.GroovyUtil; import groowt.view.web.util.FilteringIterable; -import groowt.view.web.util.Option; import groowt.view.web.util.TokenRange; import org.antlr.v4.runtime.Token; import org.codehaus.groovy.ast.expr.*; diff --git a/web-views/src/main/java/groowt/view/web/transpile/DefaultTranspilerConfiguration.java b/web-views/src/main/java/groowt/view/web/transpile/DefaultTranspilerConfiguration.java index 16c55b7..130f0a4 100644 --- a/web-views/src/main/java/groowt/view/web/transpile/DefaultTranspilerConfiguration.java +++ b/web-views/src/main/java/groowt/view/web/transpile/DefaultTranspilerConfiguration.java @@ -1,7 +1,7 @@ package groowt.view.web.transpile; +import groowt.util.fp.provider.Provider; import groowt.view.web.transpile.resolve.ComponentClassNodeResolver; -import groowt.view.web.util.Provider; public class DefaultTranspilerConfiguration implements TranspilerConfiguration { diff --git a/web-views/src/main/java/groowt/view/web/transpile/resolve/CachingComponentClassNodeResolver.java b/web-views/src/main/java/groowt/view/web/transpile/resolve/CachingComponentClassNodeResolver.java index 6a7e013..9e3043f 100644 --- a/web-views/src/main/java/groowt/view/web/transpile/resolve/CachingComponentClassNodeResolver.java +++ b/web-views/src/main/java/groowt/view/web/transpile/resolve/CachingComponentClassNodeResolver.java @@ -1,8 +1,8 @@ package groowt.view.web.transpile.resolve; +import groowt.util.fp.either.Either; import groowt.view.web.WebViewComponent; import groowt.view.web.compiler.WebViewComponentTemplateCompileUnit; -import groowt.view.web.util.Either; import org.codehaus.groovy.ast.ClassHelper; import org.codehaus.groovy.ast.ClassNode; diff --git a/web-views/src/main/java/groowt/view/web/transpile/resolve/ClassLoaderComponentClassNodeResolver.java b/web-views/src/main/java/groowt/view/web/transpile/resolve/ClassLoaderComponentClassNodeResolver.java index 47f9c98..cfcfb74 100644 --- a/web-views/src/main/java/groowt/view/web/transpile/resolve/ClassLoaderComponentClassNodeResolver.java +++ b/web-views/src/main/java/groowt/view/web/transpile/resolve/ClassLoaderComponentClassNodeResolver.java @@ -1,7 +1,7 @@ package groowt.view.web.transpile.resolve; +import groowt.util.fp.either.Either; import groowt.view.web.compiler.WebViewComponentTemplateCompileUnit; -import groowt.view.web.util.Either; import org.codehaus.groovy.ast.ClassNode; import org.codehaus.groovy.ast.ModuleNode; import org.slf4j.Logger; diff --git a/web-views/src/main/java/groowt/view/web/transpile/resolve/ComponentClassNodeResolver.java b/web-views/src/main/java/groowt/view/web/transpile/resolve/ComponentClassNodeResolver.java index 853d3fb..c6e868e 100644 --- a/web-views/src/main/java/groowt/view/web/transpile/resolve/ComponentClassNodeResolver.java +++ b/web-views/src/main/java/groowt/view/web/transpile/resolve/ComponentClassNodeResolver.java @@ -1,8 +1,8 @@ package groowt.view.web.transpile.resolve; +import groowt.util.fp.either.Either; import groowt.view.web.compiler.WebViewComponentTemplateCompileException; import groowt.view.web.compiler.WebViewComponentTemplateCompileUnit; -import groowt.view.web.util.Either; import org.codehaus.groovy.ast.ClassNode; public interface ComponentClassNodeResolver { diff --git a/web-views/src/main/java/groowt/view/web/transpile/resolve/ModuleNodeComponentClassNodeResolver.java b/web-views/src/main/java/groowt/view/web/transpile/resolve/ModuleNodeComponentClassNodeResolver.java index 9105428..b68ada2 100644 --- a/web-views/src/main/java/groowt/view/web/transpile/resolve/ModuleNodeComponentClassNodeResolver.java +++ b/web-views/src/main/java/groowt/view/web/transpile/resolve/ModuleNodeComponentClassNodeResolver.java @@ -1,7 +1,7 @@ package groowt.view.web.transpile.resolve; +import groowt.util.fp.either.Either; import groowt.view.web.compiler.WebViewComponentTemplateCompileUnit; -import groowt.view.web.util.Either; import org.codehaus.groovy.ast.ClassNode; import org.codehaus.groovy.ast.ModuleNode; diff --git a/web-views/src/main/java/groowt/view/web/util/LazyProvider.java b/web-views/src/main/java/groowt/view/web/util/LazyProvider.java deleted file mode 100644 index 7db26c1..0000000 --- a/web-views/src/main/java/groowt/view/web/util/LazyProvider.java +++ /dev/null @@ -1,26 +0,0 @@ -package groowt.view.web.util; - -import org.jetbrains.annotations.Nullable; - -import java.util.function.Supplier; - -final class LazyProvider implements Provider { - - private final Provider lazy; - - public LazyProvider(Supplier supplier) { - this.lazy = () -> { - final @Nullable T t = supplier.get(); - if (t == null) { - throw new NullPointerException("This Provider has a null value."); - } - return t; - }; - } - - @Override - public T get() { - return this.lazy.get(); - } - -} diff --git a/web-views/src/main/java/groowt/view/web/util/Monoid.java b/web-views/src/main/java/groowt/view/web/util/Monoid.java deleted file mode 100644 index ae37bd2..0000000 --- a/web-views/src/main/java/groowt/view/web/util/Monoid.java +++ /dev/null @@ -1,21 +0,0 @@ -package groowt.view.web.util; - -public final class Monoid { - - private final SemiGroup semiGroup; - private final T empty; - - public Monoid(SemiGroup semiGroup, T empty) { - this.semiGroup = semiGroup; - this.empty = empty; - } - - public T concat(T left, T right) { - return this.semiGroup.concat(left, right); - } - - public T empty() { - return this.empty; - } - -} diff --git a/web-views/src/main/java/groowt/view/web/util/Property.java b/web-views/src/main/java/groowt/view/web/util/Property.java deleted file mode 100644 index 719a980..0000000 --- a/web-views/src/main/java/groowt/view/web/util/Property.java +++ /dev/null @@ -1,5 +0,0 @@ -package groowt.view.web.util; - -public interface Property extends Provider { - void set(T t); -} diff --git a/web-views/src/main/java/groowt/view/web/util/Provider.java b/web-views/src/main/java/groowt/view/web/util/Provider.java deleted file mode 100644 index aa4a4fe..0000000 --- a/web-views/src/main/java/groowt/view/web/util/Provider.java +++ /dev/null @@ -1,17 +0,0 @@ -package groowt.view.web.util; - -import java.util.function.Supplier; - -public interface Provider { - - static Provider of(T t) { - return new SimpleProvider<>(t); - } - - static Provider ofLazy(Supplier tSupplier) { - return new LazyProvider<>(tSupplier); - } - - T get(); - -}