• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mybatis / thymeleaf-scripting / #1164

pending completion
#1164

Pull #189

github

web-flow
Merge e930cb29c into 34bbfca66
Pull Request #189: Update dependency org.mybatis:mybatis-parent to v38

611 of 621 relevant lines covered (98.39%)

0.98 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

88.89
/src/main/java/org/mybatis/scripting/thymeleaf/processor/BindVariableRender.java
1
/*
2
 *    Copyright 2018-2022 the original author or authors.
3
 *
4
 *    Licensed under the Apache License, Version 2.0 (the "License");
5
 *    you may not use this file except in compliance with the License.
6
 *    You may obtain a copy of the License at
7
 *
8
 *       https://www.apache.org/licenses/LICENSE-2.0
9
 *
10
 *    Unless required by applicable law or agreed to in writing, software
11
 *    distributed under the License is distributed on an "AS IS" BASIS,
12
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
 *    See the License for the specific language governing permissions and
14
 *    limitations under the License.
15
 */
16
package org.mybatis.scripting.thymeleaf.processor;
17

18
import java.util.function.UnaryOperator;
19

20
import org.mybatis.scripting.thymeleaf.support.spring.SpringNamedParameterBindVariableRender;
21

22
/**
23
 * The interface for rendering a bind variable. <br>
24
 * If you want to customize a default {@code BindVariableRender}, you implements class of this interface and you need to
25
 * specify the 'dialect.bind-variable-render' property of mybatis-thymeleaf.properties. <br>
26
 * <br>
27
 * e.g.) Implementation class:
28
 *
29
 * <pre>
30
 * package com.example;
31
 *
32
 * // ...
33
 * public class R2dbcMySQLBindVariableRender extends EnclosingBasedBindVariableRender {
34
 *   public R2dbcMySQLBindVariableRender() {
35
 *     super("?", ""); // Render '?...' (e.g. ?id)
36
 *   }
37
 * }
38
 * </pre>
39
 *
40
 * <br>
41
 * e.g.) Configuration file (mybatis-thymeleaf.properties):
42
 *
43
 * <pre>
44
 * dialect.bind-variable-render = com.example.MyBindVariableRender
45
 * </pre>
46
 *
47
 * @author Kazuki Shimizu
48
 *
49
 * @version 1.0.2
50
 */
51
@FunctionalInterface
52
public interface BindVariableRender extends UnaryOperator<String> {
53

54
  /**
55
   * {@inheritDoc}
56
   *
57
   * @see #render(String)
58
   */
59
  @Override
60
  default String apply(String name) {
61
    return render(name);
1✔
62
  }
63

64
  /**
65
   * Render a bind variable.
66
   *
67
   * @param name
68
   *          a bind variable name
69
   *
70
   * @return a bind variable
71
   */
72
  String render(String name);
73

74
  /**
75
   * The built-in bind variable renders.
76
   */
77
  enum BuiltIn implements BindVariableRender {
1✔
78

79
    /**
80
     * The render for MyBatis core named parameter format(.e.g {@literal #{id}}).
81
     * <p>
82
     * This is default.
83
     * </p>
84
     */
85
    MYBATIS(name -> "#{" + name + "}"),
1✔
86
    /**
87
     * The render for Spring JDBC named parameter format(.e.g {@literal :id}).
88
     */
89
    SPRING_NAMED_PARAMETER(new SpringNamedParameterBindVariableRender());
1✔
90

91
    private final BindVariableRender delegate;
92

93
    BuiltIn(BindVariableRender delegate) {
1✔
94
      this.delegate = delegate;
1✔
95
    }
1✔
96

97
    /**
98
     * {@inheritDoc}
99
     */
100
    @Override
101
    public String render(String name) {
102
      return delegate.render(name);
1✔
103
    }
104

105
    /**
106
     * Get a type of the actual {@link BindVariableRender}.
107
     *
108
     * @return a type of delegating {@link BindVariableRender}
109
     */
110
    public Class<? extends BindVariableRender> getType() {
111
      return delegate.getClass();
×
112
    }
113

114
  }
115

116
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc