Organized view-components into subpackages.

This commit is contained in:
JesseBrault0709 2024-05-05 20:23:30 +02:00
parent 6788b10068
commit 3926be1443
40 changed files with 172 additions and 132 deletions

View File

@ -1,6 +1,9 @@
package groowt.view.component; package groowt.view.component;
import groovy.lang.Closure; import groovy.lang.Closure;
import groowt.view.component.compiler.ComponentTemplateCompiler;
import groowt.view.component.context.ComponentContext;
import groowt.view.component.factory.ComponentTemplateSource;
import java.io.IOException; import java.io.IOException;
import java.io.Writer; import java.io.Writer;
@ -26,12 +29,12 @@ public abstract class AbstractViewComponent implements ViewComponent {
} }
} }
protected AbstractViewComponent(TemplateSource source, Function<String, ComponentTemplateCompiler> getCompiler) { protected AbstractViewComponent(ComponentTemplateSource source, Function<String, ComponentTemplateCompiler> getCompiler) {
final Class<? extends AbstractViewComponent> selfClass = this.getSelfClass(); final Class<? extends AbstractViewComponent> selfClass = this.getSelfClass();
this.template = getCompiler.apply(selfClass.getPackageName()).compile(selfClass, source); this.template = getCompiler.apply(selfClass.getPackageName()).compile(selfClass, source);
} }
protected AbstractViewComponent(TemplateSource source, ComponentTemplateCompiler compiler) { protected AbstractViewComponent(ComponentTemplateSource source, ComponentTemplateCompiler compiler) {
this.template = compiler.compile(this.getSelfClass(), source); this.template = compiler.compile(this.getSelfClass(), source);
} }

View File

@ -1,5 +0,0 @@
package groowt.view.component;
public interface ComponentTemplateCompiler {
ComponentTemplate compile(Class<? extends ViewComponent> forClass, TemplateSource source);
}

View File

@ -1,55 +0,0 @@
package groowt.view.component;
import java.io.File;
import java.io.InputStream;
import java.io.Reader;
import java.net.URI;
import java.net.URL;
public sealed interface TemplateSource {
static TemplateSource of(String template) {
return new StringSource(template);
}
static TemplateSource of(File templateFile) {
return new FileSource(templateFile);
}
static TemplateSource of(URI templateURI) {
return new URISource(templateURI);
}
static TemplateSource of(URL url) {
return new URLSource(url);
}
static TemplateSource of(InputStream templateInputStream) {
return new InputStreamSource(templateInputStream);
}
static TemplateSource of(Reader templateReader) {
return new ReaderSource(templateReader);
}
/**
* @param resourceName An <strong>absolute</strong> path resource name.
* @return A template source
*/
static TemplateSource fromResource(String resourceName) {
return of(TemplateSource.class.getClassLoader().getResource(resourceName));
}
record StringSource(String template) implements TemplateSource {}
record FileSource(File templateFile) implements TemplateSource {}
record URISource(URI templateURI) implements TemplateSource {}
record URLSource(URL templateURL) implements TemplateSource {}
record InputStreamSource(InputStream templateInputStream) implements TemplateSource {}
record ReaderSource(Reader templateReader) implements TemplateSource {}
}

View File

@ -1,7 +1,7 @@
package groowt.view.component; package groowt.view.component;
import groowt.view.View; import groowt.view.View;
import org.jetbrains.annotations.ApiStatus; import groowt.view.component.context.ComponentContext;
public interface ViewComponent extends View { public interface ViewComponent extends View {

View File

@ -1,6 +1,9 @@
package groowt.view.component; package groowt.view.component.compiler;
import groowt.view.component.TemplateSource.*; import groowt.view.component.ComponentTemplate;
import groowt.view.component.ViewComponent;
import groowt.view.component.factory.ComponentTemplateSource;
import groowt.view.component.factory.ComponentTemplateSource.*;
import java.io.*; import java.io.*;
import java.net.URI; import java.net.URI;
@ -9,13 +12,13 @@ import java.net.URL;
public abstract class AbstractComponentTemplateCompiler implements ComponentTemplateCompiler { public abstract class AbstractComponentTemplateCompiler implements ComponentTemplateCompiler {
protected abstract ComponentTemplate compile( protected abstract ComponentTemplate compile(
TemplateSource templateSource, ComponentTemplateSource componentTemplateSource,
Class<? extends ViewComponent> forClass, Class<? extends ViewComponent> forClass,
Reader actualSource Reader actualSource
); );
@Override @Override
public ComponentTemplate compile(Class<? extends ViewComponent> forClass, TemplateSource source) { public ComponentTemplate compile(Class<? extends ViewComponent> forClass, ComponentTemplateSource source) {
return switch (source) { return switch (source) {
case FileSource(File file) -> { case FileSource(File file) -> {
try { try {

View File

@ -1,4 +1,8 @@
package groowt.view.component; package groowt.view.component.compiler;
import groowt.view.component.ComponentTemplate;
import groowt.view.component.ViewComponent;
import groowt.view.component.factory.ComponentTemplateSource;
import java.io.Reader; import java.io.Reader;
import java.util.HashMap; import java.util.HashMap;
@ -10,7 +14,7 @@ public abstract class CachingComponentTemplateCompiler extends AbstractComponent
@Override @Override
protected final ComponentTemplate compile( protected final ComponentTemplate compile(
TemplateSource source, ComponentTemplateSource source,
Class<? extends ViewComponent> forClass, Class<? extends ViewComponent> forClass,
Reader sourceReader Reader sourceReader
) { ) {
@ -18,7 +22,7 @@ public abstract class CachingComponentTemplateCompiler extends AbstractComponent
} }
protected abstract ComponentTemplate doCompile( protected abstract ComponentTemplate doCompile(
TemplateSource source, ComponentTemplateSource source,
Class<? extends ViewComponent> forClass, Class<? extends ViewComponent> forClass,
Reader sourceReader Reader sourceReader
); );

View File

@ -1,16 +1,16 @@
package groowt.view.component; package groowt.view.component.compiler;
import java.io.Reader; import groowt.view.component.ViewComponent;
/** /**
* Represents an exception thrown while attempting to instantiate a ComponentTemplate during compilation. * Represents an exception thrown while attempting to instantiate a ComponentTemplate during compilation.
*/ */
public class ComponentTemplateCreateException extends RuntimeException { public class ComponentTemplateCompileException extends RuntimeException {
private final Class<? extends ViewComponent> forClass; private final Class<? extends ViewComponent> forClass;
private final Object templateSource; private final Object templateSource;
public ComponentTemplateCreateException( public ComponentTemplateCompileException(
String message, String message,
Class<? extends ViewComponent> forClass, Class<? extends ViewComponent> forClass,
Object templateSource Object templateSource
@ -20,7 +20,7 @@ public class ComponentTemplateCreateException extends RuntimeException {
this.templateSource = templateSource; this.templateSource = templateSource;
} }
public ComponentTemplateCreateException( public ComponentTemplateCompileException(
String message, String message,
Throwable cause, Throwable cause,
Class<? extends ViewComponent> forClass, Class<? extends ViewComponent> forClass,
@ -31,7 +31,7 @@ public class ComponentTemplateCreateException extends RuntimeException {
this.templateSource = templateSource; this.templateSource = templateSource;
} }
public ComponentTemplateCreateException( public ComponentTemplateCompileException(
Throwable cause, Throwable cause,
Class<? extends ViewComponent> forClass, Class<? extends ViewComponent> forClass,
Object templateSource Object templateSource

View File

@ -0,0 +1,9 @@
package groowt.view.component.compiler;
import groowt.view.component.ComponentTemplate;
import groowt.view.component.ViewComponent;
import groowt.view.component.factory.ComponentTemplateSource;
public interface ComponentTemplateCompiler {
ComponentTemplate compile(Class<? extends ViewComponent> forClass, ComponentTemplateSource source);
}

View File

@ -1,5 +1,7 @@
package groowt.view.component; package groowt.view.component.context;
import groowt.view.component.ViewComponent;
import groowt.view.component.factory.ComponentFactory;
import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;

View File

@ -1,4 +1,6 @@
package groowt.view.component; package groowt.view.component.context;
import groowt.view.component.ComponentTemplate;
/** /**
* An exception which signals that a component of the given type * An exception which signals that a component of the given type

View File

@ -1,6 +1,8 @@
package groowt.view.component; package groowt.view.component.context;
import groovy.lang.Closure; import groovy.lang.Closure;
import groowt.view.component.ViewComponent;
import groowt.view.component.factory.ComponentFactory;
public interface ComponentScope { public interface ComponentScope {

View File

@ -1,5 +1,7 @@
package groowt.view.component; package groowt.view.component.context;
import groowt.view.component.ViewComponent;
import groowt.view.component.factory.ComponentFactory;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.ArrayList; import java.util.ArrayList;

View File

@ -1,4 +1,6 @@
package groowt.view.component; package groowt.view.component.context;
import groowt.view.component.factory.ComponentFactory;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;

View File

@ -1,4 +1,6 @@
package groowt.view.component; package groowt.view.component.context;
import groowt.view.component.ComponentTemplate;
public class MissingClassTypeException extends MissingComponentException { public class MissingClassTypeException extends MissingComponentException {

View File

@ -1,4 +1,7 @@
package groowt.view.component; package groowt.view.component.context;
import groowt.view.component.ComponentTemplate;
import groowt.view.component.context.ComponentContext;
/** /**
* An exception which represents that a component type could not be * An exception which represents that a component type could not be
@ -21,7 +24,8 @@ public abstract class MissingComponentException extends RuntimeException {
@Override @Override
public String getMessage() { public String getMessage() {
return "Missing " + this.getMissingKeyName() + " on line " + this.line + ", column " + this.col + "."; return "In " + this.template + " missing " + this.getMissingKeyName()
+ " on line " + this.line + ", column " + this.col + ".";
} }
} }

View File

@ -1,4 +1,6 @@
package groowt.view.component; package groowt.view.component.context;
import groowt.view.component.ComponentTemplate;
public class MissingFragmentTypeException extends MissingComponentException { public class MissingFragmentTypeException extends MissingComponentException {

View File

@ -1,4 +1,6 @@
package groowt.view.component; package groowt.view.component.context;
import groowt.view.component.ComponentTemplate;
public abstract class MissingStringTypeException extends MissingComponentException { public abstract class MissingStringTypeException extends MissingComponentException {

View File

@ -1,4 +1,4 @@
package groowt.view.component; package groowt.view.component.context;
public class NoFactoryMissingException extends UnsupportedOperationException { public class NoFactoryMissingException extends UnsupportedOperationException {

View File

@ -1,8 +1,10 @@
package groowt.view.component; package groowt.view.component.factory;
import groovy.lang.Closure; import groovy.lang.Closure;
import groowt.view.component.context.ComponentContext;
import groowt.view.component.ViewComponent;
import static groowt.view.component.ComponentFactoryUtil.flatten; import static groowt.view.component.factory.ComponentFactoryUtil.flatten;
final class ClosureComponentFactory<T extends ViewComponent> implements ComponentFactory<T> { final class ClosureComponentFactory<T extends ViewComponent> implements ComponentFactory<T> {

View File

@ -1,6 +1,8 @@
package groowt.view.component; package groowt.view.component.factory;
import groovy.lang.Closure; import groovy.lang.Closure;
import groowt.view.component.context.ComponentContext;
import groowt.view.component.ViewComponent;
import java.util.function.Supplier; import java.util.function.Supplier;

View File

@ -1,9 +1,11 @@
package groowt.view.component; package groowt.view.component.factory;
import groovy.lang.GroovyObjectSupport; import groovy.lang.GroovyObjectSupport;
import groovy.lang.MetaClass; import groovy.lang.MetaClass;
import groovy.lang.MetaMethod; import groovy.lang.MetaMethod;
import groovy.lang.MissingMethodException; import groovy.lang.MissingMethodException;
import groowt.view.component.context.ComponentContext;
import groowt.view.component.ViewComponent;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;

View File

@ -1,9 +1,4 @@
package groowt.view.component; package groowt.view.component.factory;
import groovy.lang.GroovyObject;
import groovy.lang.MetaClass;
import groovy.lang.MetaMethod;
import org.jetbrains.annotations.Nullable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;

View File

@ -0,0 +1,55 @@
package groowt.view.component.factory;
import java.io.File;
import java.io.InputStream;
import java.io.Reader;
import java.net.URI;
import java.net.URL;
public sealed interface ComponentTemplateSource {
static ComponentTemplateSource of(String template) {
return new StringSource(template);
}
static ComponentTemplateSource of(File templateFile) {
return new FileSource(templateFile);
}
static ComponentTemplateSource of(URI templateURI) {
return new URISource(templateURI);
}
static ComponentTemplateSource of(URL url) {
return new URLSource(url);
}
static ComponentTemplateSource of(InputStream templateInputStream) {
return new InputStreamSource(templateInputStream);
}
static ComponentTemplateSource of(Reader templateReader) {
return new ReaderSource(templateReader);
}
/**
* @param resourceName An <strong>absolute</strong> path resource name.
* @return A template source
*/
static ComponentTemplateSource fromResource(String resourceName) {
return of(ComponentTemplateSource.class.getClassLoader().getResource(resourceName));
}
record StringSource(String template) implements ComponentTemplateSource {}
record FileSource(File templateFile) implements ComponentTemplateSource {}
record URISource(URI templateURI) implements ComponentTemplateSource {}
record URLSource(URL templateURL) implements ComponentTemplateSource {}
record InputStreamSource(InputStream templateInputStream) implements ComponentTemplateSource {}
record ReaderSource(Reader templateReader) implements ComponentTemplateSource {}
}

View File

@ -1,4 +1,7 @@
package groowt.view.component; package groowt.view.component.factory;
import groowt.view.component.context.ComponentContext;
import groowt.view.component.ViewComponent;
import java.util.function.Supplier; import java.util.function.Supplier;

View File

@ -2,7 +2,7 @@ package groowt.view.web
import groowt.view.component.AbstractViewComponent import groowt.view.component.AbstractViewComponent
import groowt.view.component.ComponentTemplate import groowt.view.component.ComponentTemplate
import groowt.view.component.TemplateSource import groowt.view.component.factory.ComponentTemplateSource
class DefaultWebViewComponent extends AbstractWebViewComponent { class DefaultWebViewComponent extends AbstractWebViewComponent {
@ -16,26 +16,26 @@ class DefaultWebViewComponent extends AbstractWebViewComponent {
super(templateType) super(templateType)
} }
DefaultWebViewComponent(TemplateSource source) { DefaultWebViewComponent(ComponentTemplateSource source) {
super(source) super(source)
} }
DefaultWebViewComponent(TemplateSource source, WebViewComponentTemplateCompiler compiler) { DefaultWebViewComponent(ComponentTemplateSource source, WebViewComponentTemplateCompiler compiler) {
super(source, compiler) super(source, compiler)
} }
/** /**
* A convenience constructor which creates a {@link TemplateSource} * A convenience constructor which creates a {@link ComponentTemplateSource}
* from the given {@code source} parameter and passes it to super. See * from the given {@code source} parameter and passes it to super. See
* {@link TemplateSource} for possible types. * {@link ComponentTemplateSource} for possible types.
* *
* @param source the object passed to {@link TemplateSource#of} * @param source the object passed to {@link ComponentTemplateSource#of}
* *
* @see TemplateSource * @see ComponentTemplateSource
*/ */
@SuppressWarnings('GroovyAssignabilityCheck') @SuppressWarnings('GroovyAssignabilityCheck')
DefaultWebViewComponent(Object source) { DefaultWebViewComponent(Object source) {
super(TemplateSource.of(source)) super(ComponentTemplateSource.of(source))
} }
@Override @Override

View File

@ -1,7 +1,7 @@
package groowt.view.web package groowt.view.web
import groowt.view.component.ComponentScope import groowt.view.component.context.ComponentScope
import groowt.view.component.DefaultComponentContext import groowt.view.component.context.DefaultComponentContext
import groowt.view.component.ViewComponent import groowt.view.component.ViewComponent
import groowt.view.web.lib.Fragment import groowt.view.web.lib.Fragment
import groowt.view.web.runtime.DefaultWebViewComponentChildCollection import groowt.view.web.runtime.DefaultWebViewComponentChildCollection

View File

@ -2,7 +2,7 @@ package groowt.view.web
import groovy.transform.stc.ClosureParams import groovy.transform.stc.ClosureParams
import groovy.transform.stc.FromString import groovy.transform.stc.FromString
import groowt.view.component.ComponentFactory import groowt.view.component.factory.ComponentFactory
import java.util.function.Function import java.util.function.Function

View File

@ -1,9 +1,8 @@
package groowt.view.web package groowt.view.web
import groowt.view.component.ComponentFactory import groowt.view.component.factory.ComponentFactory
import groowt.view.component.DefaultComponentScope import groowt.view.component.context.DefaultComponentScope
import groowt.view.web.lib.Echo import groowt.view.web.lib.Echo
import groowt.view.web.lib.Echo.EchoFactory
class WebViewScope extends DefaultComponentScope { class WebViewScope extends DefaultComponentScope {

View File

@ -1,8 +1,8 @@
package groowt.view.web.lib package groowt.view.web.lib
import groowt.view.View import groowt.view.View
import groowt.view.component.ComponentContext import groowt.view.component.context.ComponentContext
import groowt.view.component.ComponentFactory import groowt.view.component.factory.ComponentFactory
import groowt.view.component.ComponentRenderException import groowt.view.component.ComponentRenderException
import groowt.view.web.WebViewChildComponentRenderer import groowt.view.web.WebViewChildComponentRenderer

View File

@ -3,7 +3,7 @@ package groowt.view.web;
import groovy.lang.Closure; import groovy.lang.Closure;
import groowt.view.component.AbstractViewComponent; import groowt.view.component.AbstractViewComponent;
import groowt.view.component.ComponentTemplate; import groowt.view.component.ComponentTemplate;
import groowt.view.component.TemplateSource; import groowt.view.component.factory.ComponentTemplateSource;
import groowt.view.web.runtime.DefaultWebViewComponentWriter; import groowt.view.web.runtime.DefaultWebViewComponentWriter;
import groowt.view.web.runtime.WebViewComponentWriter; import groowt.view.web.runtime.WebViewComponentWriter;
import org.codehaus.groovy.control.CompilerConfiguration; import org.codehaus.groovy.control.CompilerConfiguration;
@ -27,14 +27,14 @@ public abstract class AbstractWebViewComponent extends AbstractViewComponent imp
super(templateClass); super(templateClass);
} }
protected AbstractWebViewComponent(TemplateSource source) { protected AbstractWebViewComponent(ComponentTemplateSource source) {
super(source, packageName -> new DefaultWebViewComponentTemplateCompiler( super(source, packageName -> new DefaultWebViewComponentTemplateCompiler(
CompilerConfiguration.DEFAULT, CompilerConfiguration.DEFAULT,
packageName packageName
)); ));
} }
protected AbstractWebViewComponent(TemplateSource source, WebViewComponentTemplateCompiler compiler) { protected AbstractWebViewComponent(ComponentTemplateSource source, WebViewComponentTemplateCompiler compiler) {
super(source, compiler); super(source, compiler);
} }

View File

@ -2,6 +2,9 @@ package groowt.view.web;
import groovy.lang.GroovyClassLoader; import groovy.lang.GroovyClassLoader;
import groowt.view.component.*; import groowt.view.component.*;
import groowt.view.component.compiler.CachingComponentTemplateCompiler;
import groowt.view.component.compiler.ComponentTemplateCompileException;
import groowt.view.component.factory.ComponentTemplateSource;
import groowt.view.web.antlr.CompilationUnitParseResult; import groowt.view.web.antlr.CompilationUnitParseResult;
import groowt.view.web.antlr.ParserUtil; import groowt.view.web.antlr.ParserUtil;
import groowt.view.web.antlr.TokenList; import groowt.view.web.antlr.TokenList;
@ -65,13 +68,13 @@ public class DefaultWebViewComponentTemplateCompiler extends CachingComponentTem
@Override @Override
protected ComponentTemplate doCompile( protected ComponentTemplate doCompile(
@Nullable TemplateSource source, @Nullable ComponentTemplateSource source,
@Nullable Class<? extends ViewComponent> forClass, @Nullable Class<? extends ViewComponent> forClass,
Reader sourceReader Reader sourceReader
) { ) {
if (source instanceof TemplateSource.URISource uriSource) { if (source instanceof ComponentTemplateSource.URISource uriSource) {
return this.doCompile(forClass, sourceReader, uriSource.templateURI()); return this.doCompile(forClass, sourceReader, uriSource.templateURI());
} else if (source instanceof TemplateSource.URLSource urlSource) { } else if (source instanceof ComponentTemplateSource.URLSource urlSource) {
try { try {
return this.doCompile(forClass, sourceReader, urlSource.templateURL().toURI()); return this.doCompile(forClass, sourceReader, urlSource.templateURL().toURI());
} catch (URISyntaxException e) { } catch (URISyntaxException e) {
@ -160,7 +163,7 @@ public class DefaultWebViewComponentTemplateCompiler extends CachingComponentTem
try { try {
return (ComponentTemplate) templateClass.getConstructor().newInstance(); return (ComponentTemplate) templateClass.getConstructor().newInstance();
} catch (Exception e) { } catch (Exception e) {
throw new ComponentTemplateCreateException(e, forClass, reader); throw new ComponentTemplateCompileException(e, forClass, reader);
} }
} }

View File

@ -1,7 +1,7 @@
package groowt.view.web; package groowt.view.web;
import groovy.lang.Closure; import groovy.lang.Closure;
import groowt.view.component.ComponentContext; import groowt.view.component.context.ComponentContext;
import groowt.view.component.ViewComponent; import groowt.view.component.ViewComponent;
import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.ApiStatus;

View File

@ -1,7 +1,7 @@
package groowt.view.web; package groowt.view.web;
import groowt.view.component.ComponentTemplate; import groowt.view.component.ComponentTemplate;
import groowt.view.component.ComponentTemplateCompiler; import groowt.view.component.compiler.ComponentTemplateCompiler;
import java.io.Reader; import java.io.Reader;

View File

@ -2,6 +2,7 @@ package groowt.view.web.transpile;
import groovy.lang.Tuple2; import groovy.lang.Tuple2;
import groowt.view.component.*; import groowt.view.component.*;
import groowt.view.component.context.*;
import groowt.view.web.ast.node.*; import groowt.view.web.ast.node.*;
import groowt.view.web.runtime.WebViewComponentChildCollection; import groowt.view.web.runtime.WebViewComponentChildCollection;
import groowt.view.web.transpile.util.GroovyUtil; import groowt.view.web.transpile.util.GroovyUtil;

View File

@ -2,7 +2,7 @@ package groowt.view.web.transpile;
import groovy.lang.Tuple2; import groovy.lang.Tuple2;
import groovy.transform.Field; import groovy.transform.Field;
import groowt.view.component.ComponentContext; import groowt.view.component.context.ComponentContext;
import groowt.view.component.ComponentTemplate; import groowt.view.component.ComponentTemplate;
import groowt.view.web.runtime.WebViewComponentWriter; import groowt.view.web.runtime.WebViewComponentWriter;
import groowt.view.web.util.SourcePosition; import groowt.view.web.util.SourcePosition;

View File

@ -1,6 +1,6 @@
package groowt.view.web package groowt.view.web
import groowt.view.component.ComponentFactoryBase import groowt.view.component.factory.ComponentFactoryBase
import groowt.view.web.lib.WithContext import groowt.view.web.lib.WithContext
import org.junit.jupiter.api.Test import org.junit.jupiter.api.Test

View File

@ -1,10 +1,9 @@
package groowt.view.web.lib package groowt.view.web.lib
import groowt.view.component.ComponentContext import groowt.view.component.context.ComponentContext
import groowt.view.component.ComponentFactory
import groowt.view.web.DefaultWebViewComponent import groowt.view.web.DefaultWebViewComponent
import groowt.view.web.DefaultWebViewComponentContext import groowt.view.web.DefaultWebViewComponentContext
import groowt.view.component.TemplateSource import groowt.view.component.factory.ComponentTemplateSource
import org.junit.jupiter.api.Test import org.junit.jupiter.api.Test
import static groowt.view.web.WebViewComponentFactories.withAttr import static groowt.view.web.WebViewComponentFactories.withAttr
@ -16,7 +15,7 @@ class FragmentTests extends AbstractWebViewComponentTests {
String greeting String greeting
Greeter(Map<String, Object> attr) { Greeter(Map<String, Object> attr) {
super(TemplateSource.of('$greeting')) super(ComponentTemplateSource.of('$greeting'))
greeting = attr.greeting greeting = attr.greeting
} }

View File

@ -1,7 +1,7 @@
package groowt.view.web.lib package groowt.view.web.lib
import groowt.view.component.ComponentContext import groowt.view.component.context.ComponentContext
import groowt.view.web.DefaultWebViewComponentTemplateCompiler import groowt.view.web.DefaultWebViewComponentTemplateCompiler
import groowt.view.web.WebViewComponentTemplateCompiler import groowt.view.web.WebViewComponentTemplateCompiler
import groowt.view.web.runtime.DefaultWebViewComponentWriter import groowt.view.web.runtime.DefaultWebViewComponentWriter

View File

@ -1,7 +1,7 @@
package groowt.view.web.transpiler; package groowt.view.web.transpiler;
import groovy.lang.Tuple2; import groovy.lang.Tuple2;
import groowt.view.component.ComponentContext; import groowt.view.component.context.ComponentContext;
import groowt.view.web.antlr.ParserUtil; import groowt.view.web.antlr.ParserUtil;
import groowt.view.web.antlr.TokenList; import groowt.view.web.antlr.TokenList;
import groowt.view.web.ast.DefaultAstBuilder; import groowt.view.web.ast.DefaultAstBuilder;

View File

@ -1,6 +1,6 @@
package groowt.view.web.tools package groowt.view.web.tools
import groowt.view.component.DefaultComponentContext import groowt.view.component.context.DefaultComponentContext
import groowt.view.web.DefaultWebViewComponent import groowt.view.web.DefaultWebViewComponent
import picocli.CommandLine import picocli.CommandLine
import picocli.CommandLine.Command import picocli.CommandLine.Command