Package xyz.cofe.text
Class Template<V>
java.lang.Object
xyz.cofe.text.Template<V>
public class Template<V>
extends java.lang.Object
Простые текстовые шаблоны.
Шаблон задается в виде строки с переменными, пример: "hello ${text}"
В дальнейшем этот шаблон можно использовать, подставляя на место переменной реальные значения.
Пример:
public static class Item {
public final int a;
public final int b;
public Item(int a, int b) {
this.a = a;
this.b = b;
}
}
public void test03(){
var str = Template
.parse("a=${a} b=${b}",Item.class)
.bind("a", v->""+v.a )
.bind("b", v->""+v.b )
.eval(new Item(1,3));
System.out.println(str);
// будет выведено: a=1 b=3
}
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classTemplate.BindedCodeItem<V>Фрагмент шаблона - переменная которая уже связана с функцийstatic classTemplate.CodeItem<V>Фрагмент шаблона - переменная которая еще не связана с функцийstatic classTemplate.Item<V>Фрагмент шаблонаstatic classTemplate.TextItem<V>Фрагмент шаблона - обычный текст -
Field Summary
Fields Modifier and Type Field Description protected java.util.List<Template.Item<V>>itemsЭлементы шаблона -
Constructor Summary
Constructors Constructor Description Template(java.util.List<Template.Item<V>> items)Конструктор -
Method Summary
Modifier and Type Method Description Template<V>bind(java.lang.String code, java.util.function.Function<V,java.lang.String> evalFun)Клонирует и привязывает наименование переменной в шаблоне с функцией генератором значения.Template<V>binder(java.util.function.Function<java.lang.String,java.util.Optional<java.util.function.Function<V,java.lang.String>>> binder)Клонирует и привязывает наименование переменной в шаблоне с функцией генератором значения.java.lang.Stringeval(V value)Интерпретация шаблонаjava.util.List<Template.Item<V>>items()Возвращает элементы шаблонаstatic <V> Template<V>parse(java.lang.String template)Парсинг шаблонаstatic <V> Template<V>parse(java.lang.String template, java.lang.Class<V> valueType)Парсинг шаблонаstatic <A> java.util.List<A>parse(java.lang.String template, java.util.function.Function<java.lang.String,A> text, java.util.function.Function<java.lang.String,A> code)Парсинг шаблоновjava.lang.StringtoString()Возвращает текст шаблона
-
Field Details
-
items
Элементы шаблона
-
-
Constructor Details
-
Template
Конструктор- Parameters:
items- элементы шаблона
-
-
Method Details
-
parse
public static <A> java.util.List<A> parse(java.lang.String template, java.util.function.Function<java.lang.String,A> text, java.util.function.Function<java.lang.String,A> code)Парсинг шаблонов- Type Parameters:
A- тип результата интерпретации фрагмента- Parameters:
template- шаблонtext- функция интерпретации текстаcode- функция интерпретации переменной/кода- Returns:
- фрагменты
-
items
Возвращает элементы шаблона- Returns:
- Элементы шаблона
-
toString
public java.lang.String toString()Возвращает текст шаблона- Overrides:
toStringin classjava.lang.Object- Returns:
- текст шаблона
-
parse
Парсинг шаблона- Type Parameters:
V- тип значения- Parameters:
template- шаблонvalueType- тип значения- Returns:
- шаблон
-
parse
Парсинг шаблона- Type Parameters:
V- тип значения- Parameters:
template- шаблон- Returns:
- шаблон
-
binder
public Template<V> binder(java.util.function.Function<java.lang.String,java.util.Optional<java.util.function.Function<V,java.lang.String>>> binder)Клонирует и привязывает наименование переменной в шаблоне с функцией генератором значения.
Ранее связанные переменные не переопределяются.- Parameters:
binder- функция связывающая шаблон с значением- Returns:
- новый шаблон
-
bind
public Template<V> bind(java.lang.String code, java.util.function.Function<V,java.lang.String> evalFun)Клонирует и привязывает наименование переменной в шаблоне с функцией генератором значения.
Ранее связанные переменные не переопределяются.- Parameters:
code- наименование переменнойevalFun- функция связывающая шаблон с значением- Returns:
- новый шаблон
- See Also:
binder(Function)
-
eval
Интерпретация шаблона- Parameters:
value- значение подставляемое в шаблон- Returns:
- текстовое представление
-