Fix implementation flaw that called render() during tree construction
* Enables the new render capabilities also for content that was constructed with - TagCreator.each(Map, Function) and - TagCreator.each(Map, BiFunction) * Adds convenience method TagCreator.each(DomContent...)
This commit is contained in:
@@ -88,6 +88,17 @@ public class TagCreator {
|
|||||||
return DomContentJoiner.join(" ", true, stringOrDomObjects);
|
return DomContentJoiner.join(" ", true, stringOrDomObjects);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a group of DomContent objects (that may be used with {@link #iff(boolean, Object)} or returned from a
|
||||||
|
* method call).
|
||||||
|
*
|
||||||
|
* @param contents the DomContent elements
|
||||||
|
* @return DomContent containing the given elements
|
||||||
|
*/
|
||||||
|
public static DomContent each(DomContent... contents) {
|
||||||
|
return new ContainerTag<>(null).with(contents);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a DomContent object containing HTML elements from a stream.
|
* Creates a DomContent object containing HTML elements from a stream.
|
||||||
* Intended usage: {@literal each(numbers.stream().map(n -> li(n.toString())))}
|
* Intended usage: {@literal each(numbers.stream().map(n -> li(n.toString())))}
|
||||||
@@ -113,7 +124,7 @@ public class TagCreator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static <I, T> DomContent each(final Map<I, T> map, final Function<Entry<I, T>, DomContent> mapper) {
|
public static <I, T> DomContent each(final Map<I, T> map, final Function<Entry<I, T>, DomContent> mapper) {
|
||||||
return rawHtml(map.entrySet().stream().map(mapper.andThen(DomContent::render)).collect(Collectors.joining()));
|
return each(map.entrySet().stream().map(mapper));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -127,7 +138,7 @@ public class TagCreator {
|
|||||||
* @return DomContent containing mapped data {@literal (ex. docs: [li(1 Tom), li(2 Dick), li(3 Harry)])}
|
* @return DomContent containing mapped data {@literal (ex. docs: [li(1 Tom), li(2 Dick), li(3 Harry)])}
|
||||||
*/
|
*/
|
||||||
public static <I, T> DomContent each(final Map<I, T> map, final BiFunction<I, T, DomContent> mapper) {
|
public static <I, T> DomContent each(final Map<I, T> map, final BiFunction<I, T, DomContent> mapper) {
|
||||||
return rawHtml(map.entrySet().stream().map(entry -> mapper.andThen(DomContent::render).apply(entry.getKey(), entry.getValue())).collect(Collectors.joining()));
|
return each(map.entrySet().stream().map(entry -> mapper.apply(entry.getKey(), entry.getValue())));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user