mirror of
https://github.com/github/codeql.git
synced 2025-12-24 04:36:35 +01:00
Merge pull request #10352 from atorralba/atorralba/promote-template-injection
Java: Promote Server-side template injection from experimental
This commit is contained in:
@@ -117,6 +117,7 @@ private module Frameworks {
|
|||||||
private import semmle.code.java.frameworks.Retrofit
|
private import semmle.code.java.frameworks.Retrofit
|
||||||
private import semmle.code.java.frameworks.Stream
|
private import semmle.code.java.frameworks.Stream
|
||||||
private import semmle.code.java.frameworks.Strings
|
private import semmle.code.java.frameworks.Strings
|
||||||
|
private import semmle.code.java.frameworks.Thymeleaf
|
||||||
private import semmle.code.java.frameworks.ratpack.Ratpack
|
private import semmle.code.java.frameworks.ratpack.Ratpack
|
||||||
private import semmle.code.java.frameworks.ratpack.RatpackExec
|
private import semmle.code.java.frameworks.ratpack.RatpackExec
|
||||||
private import semmle.code.java.frameworks.spring.SpringCache
|
private import semmle.code.java.frameworks.spring.SpringCache
|
||||||
@@ -141,6 +142,7 @@ private module Frameworks {
|
|||||||
private import semmle.code.java.security.LdapInjection
|
private import semmle.code.java.security.LdapInjection
|
||||||
private import semmle.code.java.security.MvelInjection
|
private import semmle.code.java.security.MvelInjection
|
||||||
private import semmle.code.java.security.OgnlInjection
|
private import semmle.code.java.security.OgnlInjection
|
||||||
|
private import semmle.code.java.security.TemplateInjection
|
||||||
private import semmle.code.java.security.XPath
|
private import semmle.code.java.security.XPath
|
||||||
private import semmle.code.java.security.XsltInjection
|
private import semmle.code.java.security.XsltInjection
|
||||||
private import semmle.code.java.frameworks.Jdbc
|
private import semmle.code.java.frameworks.Jdbc
|
||||||
@@ -625,7 +627,7 @@ module CsvValidation {
|
|||||||
"open-url", "jndi-injection", "ldap", "sql", "jdbc-url", "logging", "mvel", "xpath",
|
"open-url", "jndi-injection", "ldap", "sql", "jdbc-url", "logging", "mvel", "xpath",
|
||||||
"groovy", "xss", "ognl-injection", "intent-start", "pending-intent-sent",
|
"groovy", "xss", "ognl-injection", "intent-start", "pending-intent-sent",
|
||||||
"url-open-stream", "url-redirect", "create-file", "write-file", "set-hostname-verifier",
|
"url-open-stream", "url-redirect", "create-file", "write-file", "set-hostname-verifier",
|
||||||
"header-splitting", "information-leak", "xslt", "jexl", "bean-validation"
|
"header-splitting", "information-leak", "xslt", "jexl", "bean-validation", "ssti"
|
||||||
] and
|
] and
|
||||||
not kind.matches("regex-use%") and
|
not kind.matches("regex-use%") and
|
||||||
not kind.matches("qltest%") and
|
not kind.matches("qltest%") and
|
||||||
|
|||||||
16
java/ql/lib/semmle/code/java/frameworks/Thymeleaf.qll
Normal file
16
java/ql/lib/semmle/code/java/frameworks/Thymeleaf.qll
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
/**
|
||||||
|
* Provides classes and predicates for working with the Thymeleaf template engine.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import java
|
||||||
|
private import semmle.code.java.dataflow.ExternalFlow
|
||||||
|
|
||||||
|
private class ThymeleafSummaryModels extends SummaryModelCsv {
|
||||||
|
override predicate row(string row) {
|
||||||
|
row =
|
||||||
|
[
|
||||||
|
"org.thymeleaf;TemplateSpec;false;TemplateSpec;;;Argument[0];Argument[-1];taint;manual",
|
||||||
|
"org.thymeleaf;TemplateSpec;false;getTemplate;;;Argument[-1];ReturnValue;taint;manual",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
108
java/ql/lib/semmle/code/java/security/TemplateInjection.qll
Normal file
108
java/ql/lib/semmle/code/java/security/TemplateInjection.qll
Normal file
@@ -0,0 +1,108 @@
|
|||||||
|
/** Definitions related to the server-side template injection (SST) query. */
|
||||||
|
|
||||||
|
import java
|
||||||
|
private import semmle.code.java.dataflow.FlowSources
|
||||||
|
private import semmle.code.java.dataflow.ExternalFlow
|
||||||
|
private import semmle.code.java.dataflow.TaintTracking
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A source for server-side template injection (SST) vulnerabilities.
|
||||||
|
*/
|
||||||
|
abstract class TemplateInjectionSource extends DataFlow::Node {
|
||||||
|
/** Holds if this source has the specified `state`. */
|
||||||
|
predicate hasState(DataFlow::FlowState state) { state instanceof DataFlow::FlowStateEmpty }
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A sink for server-side template injection (SST) vulnerabilities.
|
||||||
|
*/
|
||||||
|
abstract class TemplateInjectionSink extends DataFlow::Node {
|
||||||
|
/** Holds if this sink has the specified `state`. */
|
||||||
|
predicate hasState(DataFlow::FlowState state) { state instanceof DataFlow::FlowStateEmpty }
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A unit class for adding additional taint steps.
|
||||||
|
*
|
||||||
|
* Extend this class to add additional taint steps that should apply to flows related to
|
||||||
|
* server-side template injection (SST) vulnerabilities.
|
||||||
|
*/
|
||||||
|
class TemplateInjectionAdditionalTaintStep extends Unit {
|
||||||
|
/**
|
||||||
|
* Holds if the step from `node1` to `node2` should be considered a taint
|
||||||
|
* step for flows related to server-side template injection (SST) vulnerabilities.
|
||||||
|
*/
|
||||||
|
predicate isAdditionalTaintStep(DataFlow::Node node1, DataFlow::Node node2) { none() }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holds if the step from `node1` to `node2` should be considered a taint
|
||||||
|
* step for flows related toserver-side template injection (SST) vulnerabilities.
|
||||||
|
* This step is only applicable in `state1` and updates the flow state to `state2`.
|
||||||
|
*/
|
||||||
|
predicate isAdditionalTaintStep(
|
||||||
|
DataFlow::Node node1, DataFlow::FlowState state1, DataFlow::Node node2,
|
||||||
|
DataFlow::FlowState state2
|
||||||
|
) {
|
||||||
|
none()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A sanitizer for server-side template injection (SST) vulnerabilities.
|
||||||
|
*/
|
||||||
|
abstract class TemplateInjectionSanitizer extends DataFlow::Node { }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A sanitizer for server-side template injection (SST) vulnerabilities.
|
||||||
|
* This sanitizer is only applicable when `TemplateInjectionSanitizerWithState::hasState`
|
||||||
|
* holds for the flow state.
|
||||||
|
*/
|
||||||
|
abstract class TemplateInjectionSanitizerWithState extends DataFlow::Node {
|
||||||
|
/** Holds if this sanitizer has the specified `state`. */
|
||||||
|
abstract predicate hasState(DataFlow::FlowState state);
|
||||||
|
}
|
||||||
|
|
||||||
|
private class DefaultTemplateInjectionSource extends TemplateInjectionSource instanceof RemoteFlowSource {
|
||||||
|
}
|
||||||
|
|
||||||
|
private class DefaultTemplateInjectionSink extends TemplateInjectionSink {
|
||||||
|
DefaultTemplateInjectionSink() { sinkNode(this, "ssti") }
|
||||||
|
}
|
||||||
|
|
||||||
|
private class DefaultTemplateInjectionSanitizer extends TemplateInjectionSanitizer {
|
||||||
|
DefaultTemplateInjectionSanitizer() {
|
||||||
|
this.getType() instanceof PrimitiveType or
|
||||||
|
this.getType() instanceof BoxedType or
|
||||||
|
this.getType() instanceof NumericType
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private class TemplateInjectionSinkModels extends SinkModelCsv {
|
||||||
|
override predicate row(string row) {
|
||||||
|
row =
|
||||||
|
[
|
||||||
|
"freemarker.template;Template;true;Template;(String,Reader);;Argument[1];ssti;manual",
|
||||||
|
"freemarker.template;Template;true;Template;(String,Reader,Configuration);;Argument[1];ssti;manual",
|
||||||
|
"freemarker.template;Template;true;Template;(String,Reader,Configuration,String);;Argument[1];ssti;manual",
|
||||||
|
"freemarker.template;Template;true;Template;(String,String,Reader,Configuration);;Argument[2];ssti;manual",
|
||||||
|
"freemarker.template;Template;true;Template;(String,String,Reader,Configuration,String);;Argument[2];ssti;manual",
|
||||||
|
"freemarker.template;Template;true;Template;(String,String,Reader,Configuration,ParserConfiguration,String);;Argument[2];ssti;manual",
|
||||||
|
"freemarker.template;Template;true;Template;(String,String,Configuration);;Argument[1];ssti;manual",
|
||||||
|
"freemarker.cache;StringTemplateLoader;true;putTemplate;;;Argument[1];ssti;manual",
|
||||||
|
"com.mitchellbosecke.pebble;PebbleEngine;true;getTemplate;;;Argument[0];ssti;manual",
|
||||||
|
"com.mitchellbosecke.pebble;PebbleEngine;true;getLiteralTemplate;;;Argument[0];ssti;manual",
|
||||||
|
"com.hubspot.jinjava;Jinjava;true;renderForResult;;;Argument[0];ssti;manual",
|
||||||
|
"com.hubspot.jinjava;Jinjava;true;render;;;Argument[0];ssti;manual",
|
||||||
|
"org.thymeleaf;ITemplateEngine;true;process;;;Argument[0];ssti;manual",
|
||||||
|
"org.thymeleaf;ITemplateEngine;true;processThrottled;;;Argument[0];ssti;manual",
|
||||||
|
"org.apache.velocity.app;Velocity;true;evaluate;;;Argument[3];ssti;manual",
|
||||||
|
"org.apache.velocity.app;Velocity;true;mergeTemplate;;;Argument[2];ssti;manual",
|
||||||
|
"org.apache.velocity.app;VelocityEngine;true;evaluate;;;Argument[3];ssti;manual",
|
||||||
|
"org.apache.velocity.app;VelocityEngine;true;mergeTemplate;;;Argument[2];ssti;manual",
|
||||||
|
"org.apache.velocity.runtime.resource.util;StringResourceRepository;true;putStringResource;;;Argument[1];ssti;manual",
|
||||||
|
"org.apache.velocity.runtime;RuntimeServices;true;evaluate;;;Argument[3];ssti;manual",
|
||||||
|
"org.apache.velocity.runtime;RuntimeServices;true;parse;;;Argument[0];ssti;manual",
|
||||||
|
"org.apache.velocity.runtime;RuntimeSingleton;true;parse;;;Argument[0];ssti;manual"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/** Provides a taint tracking configuration for server-side template injection (SST) vulnerabilities */
|
||||||
|
|
||||||
|
import java
|
||||||
|
import semmle.code.java.dataflow.TaintTracking
|
||||||
|
import semmle.code.java.dataflow.FlowSources
|
||||||
|
import semmle.code.java.security.TemplateInjection
|
||||||
|
|
||||||
|
/** A taint tracking configuration to reason about server-side template injection (SST) vulnerabilities */
|
||||||
|
class TemplateInjectionFlowConfig extends TaintTracking::Configuration {
|
||||||
|
TemplateInjectionFlowConfig() { this = "TemplateInjectionFlowConfig" }
|
||||||
|
|
||||||
|
override predicate isSource(DataFlow::Node source, DataFlow::FlowState state) {
|
||||||
|
source.(TemplateInjectionSource).hasState(state)
|
||||||
|
}
|
||||||
|
|
||||||
|
override predicate isSink(DataFlow::Node sink, DataFlow::FlowState state) {
|
||||||
|
sink.(TemplateInjectionSink).hasState(state)
|
||||||
|
}
|
||||||
|
|
||||||
|
override predicate isSanitizer(DataFlow::Node sanitizer) {
|
||||||
|
sanitizer instanceof TemplateInjectionSanitizer
|
||||||
|
}
|
||||||
|
|
||||||
|
override predicate isSanitizer(DataFlow::Node sanitizer, DataFlow::FlowState state) {
|
||||||
|
sanitizer.(TemplateInjectionSanitizerWithState).hasState(state)
|
||||||
|
}
|
||||||
|
|
||||||
|
override predicate isAdditionalTaintStep(DataFlow::Node node1, DataFlow::Node node2) {
|
||||||
|
any(TemplateInjectionAdditionalTaintStep a).isAdditionalTaintStep(node1, node2)
|
||||||
|
}
|
||||||
|
|
||||||
|
override predicate isAdditionalTaintStep(
|
||||||
|
DataFlow::Node node1, DataFlow::FlowState state1, DataFlow::Node node2,
|
||||||
|
DataFlow::FlowState state2
|
||||||
|
) {
|
||||||
|
any(TemplateInjectionAdditionalTaintStep a).isAdditionalTaintStep(node1, state1, node2, state2)
|
||||||
|
}
|
||||||
|
}
|
||||||
32
java/ql/src/Security/CWE/CWE-094/TemplateInjection.qhelp
Normal file
32
java/ql/src/Security/CWE/CWE-094/TemplateInjection.qhelp
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
<!DOCTYPE qhelp PUBLIC "-//Semmle//qhelp//EN" "qhelp.dtd">
|
||||||
|
<qhelp>
|
||||||
|
<overview>
|
||||||
|
<p>
|
||||||
|
Template injection occurs when user input is embedded in a template's code in an unsafe manner.
|
||||||
|
An attacker can use native template syntax to inject a malicious payload into a template, which is then executed server-side.
|
||||||
|
This permits the attacker to run arbitrary code in the server's context.
|
||||||
|
</p>
|
||||||
|
</overview>
|
||||||
|
<recommendation>
|
||||||
|
<p>
|
||||||
|
To fix this, ensure that untrusted input is not used as part of a template's code. If the application requirements do not allow this,
|
||||||
|
use a sandboxed environment where access to unsafe attributes and methods is prohibited.
|
||||||
|
</p>
|
||||||
|
</recommendation>
|
||||||
|
<example>
|
||||||
|
<p>
|
||||||
|
In the example given below, an untrusted HTTP parameter <code>code</code> is used as a Velocity template string.
|
||||||
|
This can lead to remote code execution.
|
||||||
|
</p>
|
||||||
|
<sample src="SSTIBad.java" />
|
||||||
|
|
||||||
|
<p>
|
||||||
|
In the next example, the problem is avoided by using a fixed template string <code>s</code>.
|
||||||
|
Since the template's code is not attacker-controlled in this case, this solution prevents the execution of untrusted code.
|
||||||
|
</p>
|
||||||
|
<sample src="SSTIGood.java" />
|
||||||
|
</example>
|
||||||
|
<references>
|
||||||
|
<li>Portswigger: <a href="https://portswigger.net/web-security/server-side-template-injection">Server Side Template Injection</a>.</li>
|
||||||
|
</references>
|
||||||
|
</qhelp>
|
||||||
@@ -1,16 +1,18 @@
|
|||||||
/**
|
/**
|
||||||
* @name Server Side Template Injection
|
* @name Server-side template injection
|
||||||
* @description Untrusted input used as a template parameter can lead to remote code execution.
|
* @description Untrusted input interpreted as a template can lead to remote code execution.
|
||||||
* @kind path-problem
|
* @kind path-problem
|
||||||
* @problem.severity error
|
* @problem.severity error
|
||||||
|
* @security-severity 9.3
|
||||||
* @precision high
|
* @precision high
|
||||||
* @id java/server-side-template-injection
|
* @id java/server-side-template-injection
|
||||||
* @tags security
|
* @tags security
|
||||||
|
* external/cwe/cwe-1336
|
||||||
* external/cwe/cwe-094
|
* external/cwe/cwe-094
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import java
|
import java
|
||||||
import TemplateInjection
|
import semmle.code.java.security.TemplateInjectionQuery
|
||||||
import DataFlow::PathGraph
|
import DataFlow::PathGraph
|
||||||
|
|
||||||
from TemplateInjectionFlowConfig config, DataFlow::PathNode source, DataFlow::PathNode sink
|
from TemplateInjectionFlowConfig config, DataFlow::PathNode source, DataFlow::PathNode sink
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
category: newQuery
|
||||||
|
---
|
||||||
|
* The query "Server-side template injection" (`java/server-side-template-injection`) has been promoted from experimental to the main query pack. This query was originally [submitted as an experimental query by @porcupineyhairs](https://github.com/github/codeql/pull/5935).
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
<!DOCTYPE qhelp PUBLIC "-//Semmle//qhelp//EN" "qhelp.dtd">
|
|
||||||
<qhelp>
|
|
||||||
<overview>
|
|
||||||
<p>
|
|
||||||
Template Injection occurs when user input is embedded in a template in an unsafe manner.
|
|
||||||
An attacker can use native template syntax to inject a malicious payload into a template, which is then executed server-side. This permits the attacker to run arbitrary code in the server's context.</p>
|
|
||||||
</overview>
|
|
||||||
<recommendation>
|
|
||||||
<p>
|
|
||||||
To fix this, ensure that an untrusted value is not used as a template. If the application requirements do not allow this, use a sandboxed environment where access to unsafe attributes and methods is prohibited.
|
|
||||||
</p>
|
|
||||||
</recommendation>
|
|
||||||
<example>
|
|
||||||
<p>
|
|
||||||
In the example given below, an untrusted HTTP parameter
|
|
||||||
<code>code</code>
|
|
||||||
is used as a Velocity template string. This can lead to remote code execution.
|
|
||||||
</p>
|
|
||||||
<sample src="SSTIBad.java" />
|
|
||||||
|
|
||||||
<p>
|
|
||||||
In the next example the problem is avoided by using a fixed template string
|
|
||||||
<code>s</code>
|
|
||||||
. Since, the template is not attacker controlled in this case, we prevent untrusted code execution.
|
|
||||||
</p>
|
|
||||||
<sample src="SSTIGood.java" />
|
|
||||||
</example>
|
|
||||||
<references>
|
|
||||||
<li>Portswigger : [Server Side Template Injection](https://portswigger.net/web-security/server-side-template-injection)</li>
|
|
||||||
</references>
|
|
||||||
</qhelp>
|
|
||||||
@@ -1,209 +0,0 @@
|
|||||||
/** Definitions related to the Server Side Template Injection (SSTI) query. */
|
|
||||||
|
|
||||||
import java
|
|
||||||
import semmle.code.java.dataflow.TaintTracking
|
|
||||||
import semmle.code.java.dataflow.FlowSources
|
|
||||||
import experimental.semmle.code.java.frameworks.FreeMarker
|
|
||||||
import experimental.semmle.code.java.frameworks.Velocity
|
|
||||||
import experimental.semmle.code.java.frameworks.JinJava
|
|
||||||
import experimental.semmle.code.java.frameworks.Pebble
|
|
||||||
import experimental.semmle.code.java.frameworks.Thymeleaf
|
|
||||||
|
|
||||||
/** A taint tracking configuration to reason about Server Side Template Injection (SSTI) vulnerabilities */
|
|
||||||
class TemplateInjectionFlowConfig extends TaintTracking::Configuration {
|
|
||||||
TemplateInjectionFlowConfig() { this = "TemplateInjectionFlowConfig" }
|
|
||||||
|
|
||||||
override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource }
|
|
||||||
|
|
||||||
override predicate isSink(DataFlow::Node sink) { sink instanceof Sink }
|
|
||||||
|
|
||||||
override predicate isSanitizer(DataFlow::Node node) {
|
|
||||||
node.getType() instanceof PrimitiveType or node.getType() instanceof BoxedType
|
|
||||||
}
|
|
||||||
|
|
||||||
override predicate isAdditionalTaintStep(DataFlow::Node prev, DataFlow::Node succ) {
|
|
||||||
exists(AdditionalFlowStep a | a.isAdditionalTaintStep(prev, succ))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A data flow sink for Server Side Template Injection (SSTI) vulnerabilities
|
|
||||||
*/
|
|
||||||
abstract private class Sink extends DataFlow::ExprNode { }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A data flow step for Server Side Template Injection (SSTI) vulnerabilities
|
|
||||||
*/
|
|
||||||
private class AdditionalFlowStep extends Unit {
|
|
||||||
abstract predicate isAdditionalTaintStep(DataFlow::Node prev, DataFlow::Node succ);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* An argument to FreeMarker template engine's `process` method call.
|
|
||||||
*/
|
|
||||||
private class FreeMarkerProcessSink extends Sink {
|
|
||||||
FreeMarkerProcessSink() {
|
|
||||||
exists(MethodAccess m |
|
|
||||||
m.getCallee() instanceof MethodFreeMarkerTemplateProcess and
|
|
||||||
m.getArgument(0) = this.getExpr()
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* An reader passed an argument to FreeMarker template engine's `Template`
|
|
||||||
* construtor call.
|
|
||||||
*/
|
|
||||||
private class FreeMarkerConstructorSink extends Sink {
|
|
||||||
FreeMarkerConstructorSink() {
|
|
||||||
// Template(java.lang.String name, java.io.Reader reader)
|
|
||||||
// Template(java.lang.String name, java.io.Reader reader, Configuration cfg)
|
|
||||||
// Template(java.lang.String name, java.io.Reader reader, Configuration cfg, java.lang.String encoding)
|
|
||||||
// Template(java.lang.String name, java.lang.String sourceName, java.io.Reader reader, Configuration cfg)
|
|
||||||
// Template(java.lang.String name, java.lang.String sourceName, java.io.Reader reader, Configuration cfg, ParserConfiguration customParserConfiguration, java.lang.String encoding)
|
|
||||||
// Template(java.lang.String name, java.lang.String sourceName, java.io.Reader reader, Configuration cfg, java.lang.String encoding)
|
|
||||||
exists(ConstructorCall cc, Expr e |
|
|
||||||
cc.getConstructor().getDeclaringType() instanceof TypeFreeMarkerTemplate and
|
|
||||||
e = cc.getAnArgument() and
|
|
||||||
(
|
|
||||||
e.getType().(RefType).hasQualifiedName("java.io", "Reader") and
|
|
||||||
this.asExpr() = e
|
|
||||||
)
|
|
||||||
)
|
|
||||||
or
|
|
||||||
exists(ConstructorCall cc |
|
|
||||||
cc.getConstructor().getDeclaringType() instanceof TypeFreeMarkerTemplate and
|
|
||||||
// Template(java.lang.String name, java.lang.String sourceCode, Configuration cfg)
|
|
||||||
cc.getNumArgument() = 3 and
|
|
||||||
cc.getArgument(1).getType() instanceof TypeString and
|
|
||||||
this.asExpr() = cc.getArgument(1)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* An argument to FreeMarker template engine's `putTemplate` method call.
|
|
||||||
*/
|
|
||||||
private class FreeMarkerStringTemplateLoaderPutTemplateSink extends Sink {
|
|
||||||
FreeMarkerStringTemplateLoaderPutTemplateSink() {
|
|
||||||
exists(MethodAccess ma |
|
|
||||||
this.asExpr() = ma.getArgument(1) and
|
|
||||||
ma.getMethod() instanceof MethodFreeMarkerStringTemplateLoaderPutTemplate
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* An argument to Pebble template engine's `getLiteralTemplate` or `getTemplate` method call.
|
|
||||||
*/
|
|
||||||
private class PebbleGetTemplateSinkTemplateSink extends Sink {
|
|
||||||
PebbleGetTemplateSinkTemplateSink() {
|
|
||||||
exists(MethodAccess ma |
|
|
||||||
this.asExpr() = ma.getArgument(0) and
|
|
||||||
ma.getMethod() instanceof MethodPebbleGetTemplate
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* An argument to JinJava template engine's `render` or `renderForResult` method call.
|
|
||||||
*/
|
|
||||||
private class JinjavaRenderSink extends Sink {
|
|
||||||
JinjavaRenderSink() {
|
|
||||||
exists(MethodAccess ma |
|
|
||||||
this.asExpr() = ma.getArgument(0) and
|
|
||||||
(
|
|
||||||
ma.getMethod() instanceof MethodJinjavaRenderForResult
|
|
||||||
or
|
|
||||||
ma.getMethod() instanceof MethodJinjavaRender
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* An argument to ThymeLeaf template engine's `process` method call.
|
|
||||||
*/
|
|
||||||
private class ThymeLeafRenderSink extends Sink {
|
|
||||||
ThymeLeafRenderSink() {
|
|
||||||
exists(MethodAccess ma |
|
|
||||||
this.asExpr() = ma.getArgument(0) and
|
|
||||||
ma.getMethod() instanceof MethodThymeleafProcess
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Tainted data flowing into a Velocity Context through `put` method taints the context.
|
|
||||||
*/
|
|
||||||
private class VelocityContextFlow extends AdditionalFlowStep {
|
|
||||||
override predicate isAdditionalTaintStep(DataFlow::Node prev, DataFlow::Node succ) {
|
|
||||||
exists(MethodAccess m | m.getMethod() instanceof MethodVelocityContextPut |
|
|
||||||
m.getArgument(1) = prev.asExpr() and
|
|
||||||
succ.asExpr() = m.getQualifier()
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* An argument to Velocity template engine's `mergeTemplate` method call.
|
|
||||||
*/
|
|
||||||
private class VelocityMergeTempSink extends Sink {
|
|
||||||
VelocityMergeTempSink() {
|
|
||||||
exists(MethodAccess m |
|
|
||||||
// static boolean mergeTemplate(String templateName, String encoding, Context context, Writer writer)
|
|
||||||
m.getCallee() instanceof MethodVelocityMergeTemplate and
|
|
||||||
m.getArgument(2) = this.getExpr()
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* An argument to Velocity template engine's `mergeTemplate` method call.
|
|
||||||
*/
|
|
||||||
private class VelocityMergeSink extends Sink {
|
|
||||||
VelocityMergeSink() {
|
|
||||||
exists(MethodAccess m |
|
|
||||||
m.getCallee() instanceof MethodVelocityMerge and
|
|
||||||
// public void merge(Context context, Writer writer)
|
|
||||||
// public void merge(Context context, Writer writer, List<String> macroLibraries)
|
|
||||||
m.getArgument(0) = this.getExpr()
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* An argument to Velocity template engine's `evaluate` method call.
|
|
||||||
*/
|
|
||||||
private class VelocityEvaluateSink extends Sink {
|
|
||||||
VelocityEvaluateSink() {
|
|
||||||
exists(MethodAccess m |
|
|
||||||
m.getCallee() instanceof MethodVelocityEvaluate and
|
|
||||||
m.getArgument([0, 3]) = this.getExpr()
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* An argument to Velocity template engine's `parse` method call.
|
|
||||||
*/
|
|
||||||
private class VelocityParseSink extends Sink {
|
|
||||||
VelocityParseSink() {
|
|
||||||
exists(MethodAccess ma |
|
|
||||||
this.asExpr() = ma.getArgument(0) and
|
|
||||||
ma.getMethod() instanceof MethodVelocityParse
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* An argument to Velocity template engine's `putStringResource` method call.
|
|
||||||
*/
|
|
||||||
private class VelocityPutStringResSink extends Sink {
|
|
||||||
VelocityPutStringResSink() {
|
|
||||||
exists(MethodAccess ma |
|
|
||||||
this.asExpr() = ma.getArgument(1) and
|
|
||||||
ma.getMethod() instanceof MethodVelocityPutStringResource
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
/** Definitions related to the FreeMarker Templating library. */
|
|
||||||
|
|
||||||
import java
|
|
||||||
|
|
||||||
/** The `Template` class of the FreeMarker Template Engine */
|
|
||||||
class TypeFreeMarkerTemplate extends Class {
|
|
||||||
TypeFreeMarkerTemplate() { this.hasQualifiedName("freemarker.template", "Template") }
|
|
||||||
}
|
|
||||||
|
|
||||||
/** The `process` method of the FreeMarker Template Engine's `Template` class */
|
|
||||||
class MethodFreeMarkerTemplateProcess extends Method {
|
|
||||||
MethodFreeMarkerTemplateProcess() {
|
|
||||||
this.getDeclaringType() instanceof TypeFreeMarkerTemplate and
|
|
||||||
this.hasName("process")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** The `StringTemplateLoader` class of the FreeMarker Template Engine */
|
|
||||||
class TypeFreeMarkerStringLoader extends Class {
|
|
||||||
TypeFreeMarkerStringLoader() { this.hasQualifiedName("freemarker.cache", "StringTemplateLoader") }
|
|
||||||
}
|
|
||||||
|
|
||||||
/** The `process` method of the FreeMarker Template Engine's `StringTemplateLoader` class */
|
|
||||||
class MethodFreeMarkerStringTemplateLoaderPutTemplate extends Method {
|
|
||||||
MethodFreeMarkerStringTemplateLoaderPutTemplate() {
|
|
||||||
this.getDeclaringType() instanceof TypeFreeMarkerStringLoader and
|
|
||||||
this.hasName("putTemplate")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
/** Definitions related to the Jinjava Templating library. */
|
|
||||||
|
|
||||||
import java
|
|
||||||
|
|
||||||
/** The `Jinjava` class of the Jinjava Templating Engine. */
|
|
||||||
class TypeJinjava extends Class {
|
|
||||||
TypeJinjava() { this.hasQualifiedName("com.hubspot.jinjava", "Jinjava") }
|
|
||||||
}
|
|
||||||
|
|
||||||
/** The `render` method of the Jinjava Templating Engine. */
|
|
||||||
class MethodJinjavaRender extends Method {
|
|
||||||
MethodJinjavaRender() {
|
|
||||||
this.getDeclaringType() instanceof TypeJinjava and
|
|
||||||
this.hasName("render")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** The `render` method of the Jinjava Templating Engine. */
|
|
||||||
class MethodJinjavaRenderForResult extends Method {
|
|
||||||
MethodJinjavaRenderForResult() {
|
|
||||||
this.getDeclaringType() instanceof TypeJinjava and
|
|
||||||
this.hasName("renderForResult")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
/** Definitions related to the Pebble Templating library. */
|
|
||||||
|
|
||||||
import java
|
|
||||||
|
|
||||||
/** The `PebbleEngine` class of the Pebble Templating Engine. */
|
|
||||||
class TypePebbleEngine extends Class {
|
|
||||||
TypePebbleEngine() { this.hasQualifiedName("com.mitchellbosecke.pebble", "PebbleEngine") }
|
|
||||||
}
|
|
||||||
|
|
||||||
/** The `getTemplate` method of the Pebble Templating Engine. */
|
|
||||||
class MethodPebbleGetTemplate extends Method {
|
|
||||||
MethodPebbleGetTemplate() {
|
|
||||||
this.getDeclaringType() instanceof TypePebbleEngine and
|
|
||||||
this.hasName(["getTemplate", "getLiteralTemplate"])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
/** Definitions related to the Thymeleaf Templating library. */
|
|
||||||
|
|
||||||
import java
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A class implementing the `ITemplateEngine` interface of the Thymeleaf
|
|
||||||
* Templating Engine such as the `TemplateEngine` class.
|
|
||||||
*/
|
|
||||||
class TypeThymeleafTemplateEngine extends Class {
|
|
||||||
TypeThymeleafTemplateEngine() {
|
|
||||||
this.hasQualifiedName("org.thymeleaf", "TemplateEngine")
|
|
||||||
or
|
|
||||||
exists(Type t | this.getASupertype*().extendsOrImplements(t) |
|
|
||||||
t.hasName("org.thymeleaf.ITemplateEngine")
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** The `process` or `processThrottled` method of the Thymeleaf Templating Engine. */
|
|
||||||
class MethodThymeleafProcess extends Method {
|
|
||||||
MethodThymeleafProcess() {
|
|
||||||
this.getDeclaringType() instanceof TypeThymeleafTemplateEngine and
|
|
||||||
this.hasName(["process", "processThrottled"])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,119 +0,0 @@
|
|||||||
/** Definitions related to the Apache Velocity Templating library. */
|
|
||||||
|
|
||||||
import java
|
|
||||||
|
|
||||||
/** The `org.apache.velocity.context.AbstractContext` class of the Velocity Templating Engine. */
|
|
||||||
class TypeVelocityAbstractContext extends Class {
|
|
||||||
TypeVelocityAbstractContext() {
|
|
||||||
this.hasQualifiedName("org.apache.velocity.context", "AbstractContext")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** The `org.apache.velocity.runtime.RuntimeServices` class of the Velocity Templating Engine. */
|
|
||||||
class TypeVelocityRuntimeRuntimeServices extends Class {
|
|
||||||
TypeVelocityRuntimeRuntimeServices() {
|
|
||||||
this.hasQualifiedName("org.apache.velocity.runtime", "RuntimeServices")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** The `org.apache.velocity.Template` class of the Velocity Templating Engine. */
|
|
||||||
class TypeVelocityTemplate extends Class {
|
|
||||||
TypeVelocityTemplate() { this.hasQualifiedName("org.apache.velocity", "Template") }
|
|
||||||
}
|
|
||||||
|
|
||||||
/** The `org.apache.velocity.runtime.RuntimeSingleton` classTemplating Engine. */
|
|
||||||
class TypeVelocityRuntimeRuntimeSingleton extends Class {
|
|
||||||
TypeVelocityRuntimeRuntimeSingleton() {
|
|
||||||
this.hasQualifiedName("org.apache.velocity.runtime", "RuntimeSingleton")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** The `org.apache.velocity.VelocityEngine` class of the Velocity Templating Engine. */
|
|
||||||
class TypeVelocityVelocityEngine extends Class {
|
|
||||||
TypeVelocityVelocityEngine() { this.hasQualifiedName("org.apache.velocity", "VelocityEngine") }
|
|
||||||
}
|
|
||||||
|
|
||||||
/** The `org.apache.velocity.app.VelocityEngine` class of the Velocity Templating Engine. */
|
|
||||||
class TypeVelocityAppVelocityEngine extends RefType {
|
|
||||||
TypeVelocityAppVelocityEngine() {
|
|
||||||
this.hasQualifiedName("org.apache.velocity.app", "VelocityEngine")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** The `org.apache.velocity.app.Velocity` class of the Velocity Templating Engine. */
|
|
||||||
class TypeVelocityAppVelocity extends RefType {
|
|
||||||
TypeVelocityAppVelocity() { this.hasQualifiedName("org.apache.velocity.app", "Velocity") }
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The `org.apache.velocity.runtime.resource.util.StringResourceRepository` interface
|
|
||||||
* of the Velocity Templating Engine.
|
|
||||||
*/
|
|
||||||
class TypeVelocityStringResourceRepo extends RefType {
|
|
||||||
TypeVelocityStringResourceRepo() {
|
|
||||||
this.hasQualifiedName("org.apache.velocity.runtime.resource.util", "StringResourceRepository")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** The `internalPut` and `put` methods of the Velocity Templating Engine. */
|
|
||||||
class MethodVelocityContextPut extends Method {
|
|
||||||
MethodVelocityContextPut() {
|
|
||||||
this.getDeclaringType().getASupertype*() instanceof TypeVelocityAbstractContext and
|
|
||||||
this.hasName(["put", "internalPut"])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** The `evaluate` method of the Velocity Templating Engine. */
|
|
||||||
class MethodVelocityEvaluate extends Method {
|
|
||||||
MethodVelocityEvaluate() {
|
|
||||||
// static boolean evaluate(Context context, Writer out, String logTag, String instring)
|
|
||||||
// static boolean evaluate(Context context, Writer writer, String logTag, Reader reader)
|
|
||||||
(
|
|
||||||
this.getDeclaringType() instanceof TypeVelocityAppVelocity or
|
|
||||||
this.getDeclaringType() instanceof TypeVelocityAppVelocityEngine or
|
|
||||||
this.getDeclaringType().getASupertype*() instanceof TypeVelocityRuntimeRuntimeServices
|
|
||||||
) and
|
|
||||||
this.hasName("evaluate")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** The `mergeTemplate` method of the Velocity Templating Engine. */
|
|
||||||
class MethodVelocityMergeTemplate extends Method {
|
|
||||||
MethodVelocityMergeTemplate() {
|
|
||||||
// static boolean mergeTemplate(String templateName, String encoding, Context context, Writer writer)
|
|
||||||
(
|
|
||||||
this.getDeclaringType() instanceof TypeVelocityAppVelocity or
|
|
||||||
this.getDeclaringType() instanceof TypeVelocityAppVelocityEngine
|
|
||||||
) and
|
|
||||||
this.hasName("mergeTemplate")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** The `merge` method of the Velocity Templating Engine. */
|
|
||||||
class MethodVelocityMerge extends Method {
|
|
||||||
MethodVelocityMerge() {
|
|
||||||
// void merge(Context context, Writer writer)
|
|
||||||
// void merge(Context context, Writer writer, List<String> macroLibraries)
|
|
||||||
this.getDeclaringType() instanceof TypeVelocityTemplate and
|
|
||||||
this.hasName("merge")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** The `parse` method of the Velocity Templating Engine. */
|
|
||||||
class MethodVelocityParse extends Method {
|
|
||||||
MethodVelocityParse() {
|
|
||||||
(
|
|
||||||
this.getDeclaringType().getASupertype*() instanceof TypeVelocityRuntimeRuntimeSingleton or
|
|
||||||
this.getDeclaringType().getASupertype*() instanceof TypeVelocityRuntimeRuntimeServices
|
|
||||||
) and
|
|
||||||
this.hasName("parse")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** The `putStringResource` method of the Velocity Templating Engine. */
|
|
||||||
class MethodVelocityPutStringResource extends Method {
|
|
||||||
MethodVelocityPutStringResource() {
|
|
||||||
this.getDeclaringType().getASupertype*() instanceof TypeVelocityStringResourceRepo and
|
|
||||||
this.hasName("putStringResource")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,136 +0,0 @@
|
|||||||
edges
|
|
||||||
| FreemarkerSSTI.java:23:17:23:44 | getParameter(...) : String | FreemarkerSSTI.java:24:36:24:39 | code : String |
|
|
||||||
| FreemarkerSSTI.java:24:19:24:40 | new StringReader(...) : StringReader | FreemarkerSSTI.java:27:35:27:40 | reader |
|
|
||||||
| FreemarkerSSTI.java:24:36:24:39 | code : String | FreemarkerSSTI.java:24:19:24:40 | new StringReader(...) : StringReader |
|
|
||||||
| FreemarkerSSTI.java:33:17:33:44 | getParameter(...) : String | FreemarkerSSTI.java:34:36:34:39 | code : String |
|
|
||||||
| FreemarkerSSTI.java:34:19:34:40 | new StringReader(...) : StringReader | FreemarkerSSTI.java:38:35:38:40 | reader |
|
|
||||||
| FreemarkerSSTI.java:34:36:34:39 | code : String | FreemarkerSSTI.java:34:19:34:40 | new StringReader(...) : StringReader |
|
|
||||||
| FreemarkerSSTI.java:44:17:44:44 | getParameter(...) : String | FreemarkerSSTI.java:45:36:45:39 | code : String |
|
|
||||||
| FreemarkerSSTI.java:45:19:45:40 | new StringReader(...) : StringReader | FreemarkerSSTI.java:50:35:50:40 | reader |
|
|
||||||
| FreemarkerSSTI.java:45:36:45:39 | code : String | FreemarkerSSTI.java:45:19:45:40 | new StringReader(...) : StringReader |
|
|
||||||
| FreemarkerSSTI.java:56:23:56:56 | getParameter(...) : String | FreemarkerSSTI.java:61:35:61:44 | sourceCode |
|
|
||||||
| FreemarkerSSTI.java:67:17:67:44 | getParameter(...) : String | FreemarkerSSTI.java:69:36:69:39 | code : String |
|
|
||||||
| FreemarkerSSTI.java:69:19:69:40 | new StringReader(...) : StringReader | FreemarkerSSTI.java:73:47:73:52 | reader |
|
|
||||||
| FreemarkerSSTI.java:69:36:69:39 | code : String | FreemarkerSSTI.java:69:19:69:40 | new StringReader(...) : StringReader |
|
|
||||||
| FreemarkerSSTI.java:79:17:79:44 | getParameter(...) : String | FreemarkerSSTI.java:82:36:82:39 | code : String |
|
|
||||||
| FreemarkerSSTI.java:82:19:82:40 | new StringReader(...) : StringReader | FreemarkerSSTI.java:87:47:87:52 | reader |
|
|
||||||
| FreemarkerSSTI.java:82:36:82:39 | code : String | FreemarkerSSTI.java:82:19:82:40 | new StringReader(...) : StringReader |
|
|
||||||
| FreemarkerSSTI.java:93:17:93:44 | getParameter(...) : String | FreemarkerSSTI.java:96:36:96:39 | code : String |
|
|
||||||
| FreemarkerSSTI.java:96:19:96:40 | new StringReader(...) : StringReader | FreemarkerSSTI.java:100:47:100:52 | reader |
|
|
||||||
| FreemarkerSSTI.java:96:36:96:39 | code : String | FreemarkerSSTI.java:96:19:96:40 | new StringReader(...) : StringReader |
|
|
||||||
| FreemarkerSSTI.java:105:17:105:44 | getParameter(...) : String | FreemarkerSSTI.java:109:42:109:45 | code |
|
|
||||||
| FreemarkerSSTI.java:114:17:114:44 | getParameter(...) : String | FreemarkerSSTI.java:119:42:119:45 | code |
|
|
||||||
| FreemarkerSSTI.java:125:17:125:44 | getParameter(...) : String | FreemarkerSSTI.java:126:26:126:29 | code : String |
|
|
||||||
| FreemarkerSSTI.java:126:9:126:12 | root [post update] [<map.value>] : String | FreemarkerSSTI.java:130:22:130:25 | root |
|
|
||||||
| FreemarkerSSTI.java:126:26:126:29 | code : String | FreemarkerSSTI.java:126:9:126:12 | root [post update] [<map.value>] : String |
|
|
||||||
| JinJavaSSTI.java:21:21:21:52 | getParameter(...) : String | JinJavaSSTI.java:25:44:25:51 | template |
|
|
||||||
| JinJavaSSTI.java:30:21:30:52 | getParameter(...) : String | JinJavaSSTI.java:34:55:34:62 | template |
|
|
||||||
| JinJavaSSTI.java:39:21:39:52 | getParameter(...) : String | JinJavaSSTI.java:46:55:46:62 | template |
|
|
||||||
| PebbleSSTI.java:18:17:18:44 | getParameter(...) : String | PebbleSSTI.java:21:56:21:59 | code |
|
|
||||||
| PebbleSSTI.java:25:17:25:44 | getParameter(...) : String | PebbleSSTI.java:28:63:28:66 | code |
|
|
||||||
| ThymeleafSSTI.java:22:17:22:44 | getParameter(...) : String | ThymeleafSSTI.java:27:27:27:30 | code |
|
|
||||||
| VelocitySSTI.java:31:17:31:44 | getParameter(...) : String | VelocitySSTI.java:38:45:38:48 | code |
|
|
||||||
| VelocitySSTI.java:44:17:44:44 | getParameter(...) : String | VelocitySSTI.java:50:42:50:45 | code : String |
|
|
||||||
| VelocitySSTI.java:50:25:50:46 | new StringReader(...) : StringReader | VelocitySSTI.java:53:45:53:50 | reader |
|
|
||||||
| VelocitySSTI.java:50:42:50:45 | code : String | VelocitySSTI.java:50:25:50:46 | new StringReader(...) : StringReader |
|
|
||||||
| VelocitySSTI.java:59:17:59:44 | getParameter(...) : String | VelocitySSTI.java:62:42:62:45 | code : String |
|
|
||||||
| VelocitySSTI.java:62:25:62:46 | new StringReader(...) : StringReader | VelocitySSTI.java:63:25:63:30 | reader |
|
|
||||||
| VelocitySSTI.java:62:42:62:45 | code : String | VelocitySSTI.java:62:25:62:46 | new StringReader(...) : StringReader |
|
|
||||||
| VelocitySSTI.java:69:17:69:44 | getParameter(...) : String | VelocitySSTI.java:77:21:77:27 | context |
|
|
||||||
| VelocitySSTI.java:83:17:83:44 | getParameter(...) : String | VelocitySSTI.java:89:60:89:66 | context |
|
|
||||||
| VelocitySSTI.java:95:17:95:44 | getParameter(...) : String | VelocitySSTI.java:102:11:102:17 | context |
|
|
||||||
| VelocitySSTI.java:108:17:108:44 | getParameter(...) : String | VelocitySSTI.java:115:11:115:17 | context |
|
|
||||||
| VelocitySSTI.java:120:17:120:44 | getParameter(...) : String | VelocitySSTI.java:123:37:123:40 | code |
|
|
||||||
nodes
|
|
||||||
| FreemarkerSSTI.java:23:17:23:44 | getParameter(...) : String | semmle.label | getParameter(...) : String |
|
|
||||||
| FreemarkerSSTI.java:24:19:24:40 | new StringReader(...) : StringReader | semmle.label | new StringReader(...) : StringReader |
|
|
||||||
| FreemarkerSSTI.java:24:36:24:39 | code : String | semmle.label | code : String |
|
|
||||||
| FreemarkerSSTI.java:27:35:27:40 | reader | semmle.label | reader |
|
|
||||||
| FreemarkerSSTI.java:33:17:33:44 | getParameter(...) : String | semmle.label | getParameter(...) : String |
|
|
||||||
| FreemarkerSSTI.java:34:19:34:40 | new StringReader(...) : StringReader | semmle.label | new StringReader(...) : StringReader |
|
|
||||||
| FreemarkerSSTI.java:34:36:34:39 | code : String | semmle.label | code : String |
|
|
||||||
| FreemarkerSSTI.java:38:35:38:40 | reader | semmle.label | reader |
|
|
||||||
| FreemarkerSSTI.java:44:17:44:44 | getParameter(...) : String | semmle.label | getParameter(...) : String |
|
|
||||||
| FreemarkerSSTI.java:45:19:45:40 | new StringReader(...) : StringReader | semmle.label | new StringReader(...) : StringReader |
|
|
||||||
| FreemarkerSSTI.java:45:36:45:39 | code : String | semmle.label | code : String |
|
|
||||||
| FreemarkerSSTI.java:50:35:50:40 | reader | semmle.label | reader |
|
|
||||||
| FreemarkerSSTI.java:56:23:56:56 | getParameter(...) : String | semmle.label | getParameter(...) : String |
|
|
||||||
| FreemarkerSSTI.java:61:35:61:44 | sourceCode | semmle.label | sourceCode |
|
|
||||||
| FreemarkerSSTI.java:67:17:67:44 | getParameter(...) : String | semmle.label | getParameter(...) : String |
|
|
||||||
| FreemarkerSSTI.java:69:19:69:40 | new StringReader(...) : StringReader | semmle.label | new StringReader(...) : StringReader |
|
|
||||||
| FreemarkerSSTI.java:69:36:69:39 | code : String | semmle.label | code : String |
|
|
||||||
| FreemarkerSSTI.java:73:47:73:52 | reader | semmle.label | reader |
|
|
||||||
| FreemarkerSSTI.java:79:17:79:44 | getParameter(...) : String | semmle.label | getParameter(...) : String |
|
|
||||||
| FreemarkerSSTI.java:82:19:82:40 | new StringReader(...) : StringReader | semmle.label | new StringReader(...) : StringReader |
|
|
||||||
| FreemarkerSSTI.java:82:36:82:39 | code : String | semmle.label | code : String |
|
|
||||||
| FreemarkerSSTI.java:87:47:87:52 | reader | semmle.label | reader |
|
|
||||||
| FreemarkerSSTI.java:93:17:93:44 | getParameter(...) : String | semmle.label | getParameter(...) : String |
|
|
||||||
| FreemarkerSSTI.java:96:19:96:40 | new StringReader(...) : StringReader | semmle.label | new StringReader(...) : StringReader |
|
|
||||||
| FreemarkerSSTI.java:96:36:96:39 | code : String | semmle.label | code : String |
|
|
||||||
| FreemarkerSSTI.java:100:47:100:52 | reader | semmle.label | reader |
|
|
||||||
| FreemarkerSSTI.java:105:17:105:44 | getParameter(...) : String | semmle.label | getParameter(...) : String |
|
|
||||||
| FreemarkerSSTI.java:109:42:109:45 | code | semmle.label | code |
|
|
||||||
| FreemarkerSSTI.java:114:17:114:44 | getParameter(...) : String | semmle.label | getParameter(...) : String |
|
|
||||||
| FreemarkerSSTI.java:119:42:119:45 | code | semmle.label | code |
|
|
||||||
| FreemarkerSSTI.java:125:17:125:44 | getParameter(...) : String | semmle.label | getParameter(...) : String |
|
|
||||||
| FreemarkerSSTI.java:126:9:126:12 | root [post update] [<map.value>] : String | semmle.label | root [post update] [<map.value>] : String |
|
|
||||||
| FreemarkerSSTI.java:126:26:126:29 | code : String | semmle.label | code : String |
|
|
||||||
| FreemarkerSSTI.java:130:22:130:25 | root | semmle.label | root |
|
|
||||||
| JinJavaSSTI.java:21:21:21:52 | getParameter(...) : String | semmle.label | getParameter(...) : String |
|
|
||||||
| JinJavaSSTI.java:25:44:25:51 | template | semmle.label | template |
|
|
||||||
| JinJavaSSTI.java:30:21:30:52 | getParameter(...) : String | semmle.label | getParameter(...) : String |
|
|
||||||
| JinJavaSSTI.java:34:55:34:62 | template | semmle.label | template |
|
|
||||||
| JinJavaSSTI.java:39:21:39:52 | getParameter(...) : String | semmle.label | getParameter(...) : String |
|
|
||||||
| JinJavaSSTI.java:46:55:46:62 | template | semmle.label | template |
|
|
||||||
| PebbleSSTI.java:18:17:18:44 | getParameter(...) : String | semmle.label | getParameter(...) : String |
|
|
||||||
| PebbleSSTI.java:21:56:21:59 | code | semmle.label | code |
|
|
||||||
| PebbleSSTI.java:25:17:25:44 | getParameter(...) : String | semmle.label | getParameter(...) : String |
|
|
||||||
| PebbleSSTI.java:28:63:28:66 | code | semmle.label | code |
|
|
||||||
| ThymeleafSSTI.java:22:17:22:44 | getParameter(...) : String | semmle.label | getParameter(...) : String |
|
|
||||||
| ThymeleafSSTI.java:27:27:27:30 | code | semmle.label | code |
|
|
||||||
| VelocitySSTI.java:31:17:31:44 | getParameter(...) : String | semmle.label | getParameter(...) : String |
|
|
||||||
| VelocitySSTI.java:38:45:38:48 | code | semmle.label | code |
|
|
||||||
| VelocitySSTI.java:44:17:44:44 | getParameter(...) : String | semmle.label | getParameter(...) : String |
|
|
||||||
| VelocitySSTI.java:50:25:50:46 | new StringReader(...) : StringReader | semmle.label | new StringReader(...) : StringReader |
|
|
||||||
| VelocitySSTI.java:50:42:50:45 | code : String | semmle.label | code : String |
|
|
||||||
| VelocitySSTI.java:53:45:53:50 | reader | semmle.label | reader |
|
|
||||||
| VelocitySSTI.java:59:17:59:44 | getParameter(...) : String | semmle.label | getParameter(...) : String |
|
|
||||||
| VelocitySSTI.java:62:25:62:46 | new StringReader(...) : StringReader | semmle.label | new StringReader(...) : StringReader |
|
|
||||||
| VelocitySSTI.java:62:42:62:45 | code : String | semmle.label | code : String |
|
|
||||||
| VelocitySSTI.java:63:25:63:30 | reader | semmle.label | reader |
|
|
||||||
| VelocitySSTI.java:69:17:69:44 | getParameter(...) : String | semmle.label | getParameter(...) : String |
|
|
||||||
| VelocitySSTI.java:77:21:77:27 | context | semmle.label | context |
|
|
||||||
| VelocitySSTI.java:83:17:83:44 | getParameter(...) : String | semmle.label | getParameter(...) : String |
|
|
||||||
| VelocitySSTI.java:89:60:89:66 | context | semmle.label | context |
|
|
||||||
| VelocitySSTI.java:95:17:95:44 | getParameter(...) : String | semmle.label | getParameter(...) : String |
|
|
||||||
| VelocitySSTI.java:102:11:102:17 | context | semmle.label | context |
|
|
||||||
| VelocitySSTI.java:108:17:108:44 | getParameter(...) : String | semmle.label | getParameter(...) : String |
|
|
||||||
| VelocitySSTI.java:115:11:115:17 | context | semmle.label | context |
|
|
||||||
| VelocitySSTI.java:120:17:120:44 | getParameter(...) : String | semmle.label | getParameter(...) : String |
|
|
||||||
| VelocitySSTI.java:123:37:123:40 | code | semmle.label | code |
|
|
||||||
subpaths
|
|
||||||
#select
|
|
||||||
| FreemarkerSSTI.java:27:35:27:40 | reader | FreemarkerSSTI.java:23:17:23:44 | getParameter(...) : String | FreemarkerSSTI.java:27:35:27:40 | reader | Potential arbitrary code execution due to $@. | FreemarkerSSTI.java:23:17:23:44 | getParameter(...) | a template value loaded from a remote source. |
|
|
||||||
| FreemarkerSSTI.java:38:35:38:40 | reader | FreemarkerSSTI.java:33:17:33:44 | getParameter(...) : String | FreemarkerSSTI.java:38:35:38:40 | reader | Potential arbitrary code execution due to $@. | FreemarkerSSTI.java:33:17:33:44 | getParameter(...) | a template value loaded from a remote source. |
|
|
||||||
| FreemarkerSSTI.java:50:35:50:40 | reader | FreemarkerSSTI.java:44:17:44:44 | getParameter(...) : String | FreemarkerSSTI.java:50:35:50:40 | reader | Potential arbitrary code execution due to $@. | FreemarkerSSTI.java:44:17:44:44 | getParameter(...) | a template value loaded from a remote source. |
|
|
||||||
| FreemarkerSSTI.java:61:35:61:44 | sourceCode | FreemarkerSSTI.java:56:23:56:56 | getParameter(...) : String | FreemarkerSSTI.java:61:35:61:44 | sourceCode | Potential arbitrary code execution due to $@. | FreemarkerSSTI.java:56:23:56:56 | getParameter(...) | a template value loaded from a remote source. |
|
|
||||||
| FreemarkerSSTI.java:73:47:73:52 | reader | FreemarkerSSTI.java:67:17:67:44 | getParameter(...) : String | FreemarkerSSTI.java:73:47:73:52 | reader | Potential arbitrary code execution due to $@. | FreemarkerSSTI.java:67:17:67:44 | getParameter(...) | a template value loaded from a remote source. |
|
|
||||||
| FreemarkerSSTI.java:87:47:87:52 | reader | FreemarkerSSTI.java:79:17:79:44 | getParameter(...) : String | FreemarkerSSTI.java:87:47:87:52 | reader | Potential arbitrary code execution due to $@. | FreemarkerSSTI.java:79:17:79:44 | getParameter(...) | a template value loaded from a remote source. |
|
|
||||||
| FreemarkerSSTI.java:100:47:100:52 | reader | FreemarkerSSTI.java:93:17:93:44 | getParameter(...) : String | FreemarkerSSTI.java:100:47:100:52 | reader | Potential arbitrary code execution due to $@. | FreemarkerSSTI.java:93:17:93:44 | getParameter(...) | a template value loaded from a remote source. |
|
|
||||||
| FreemarkerSSTI.java:109:42:109:45 | code | FreemarkerSSTI.java:105:17:105:44 | getParameter(...) : String | FreemarkerSSTI.java:109:42:109:45 | code | Potential arbitrary code execution due to $@. | FreemarkerSSTI.java:105:17:105:44 | getParameter(...) | a template value loaded from a remote source. |
|
|
||||||
| FreemarkerSSTI.java:119:42:119:45 | code | FreemarkerSSTI.java:114:17:114:44 | getParameter(...) : String | FreemarkerSSTI.java:119:42:119:45 | code | Potential arbitrary code execution due to $@. | FreemarkerSSTI.java:114:17:114:44 | getParameter(...) | a template value loaded from a remote source. |
|
|
||||||
| FreemarkerSSTI.java:130:22:130:25 | root | FreemarkerSSTI.java:125:17:125:44 | getParameter(...) : String | FreemarkerSSTI.java:130:22:130:25 | root | Potential arbitrary code execution due to $@. | FreemarkerSSTI.java:125:17:125:44 | getParameter(...) | a template value loaded from a remote source. |
|
|
||||||
| JinJavaSSTI.java:25:44:25:51 | template | JinJavaSSTI.java:21:21:21:52 | getParameter(...) : String | JinJavaSSTI.java:25:44:25:51 | template | Potential arbitrary code execution due to $@. | JinJavaSSTI.java:21:21:21:52 | getParameter(...) | a template value loaded from a remote source. |
|
|
||||||
| JinJavaSSTI.java:34:55:34:62 | template | JinJavaSSTI.java:30:21:30:52 | getParameter(...) : String | JinJavaSSTI.java:34:55:34:62 | template | Potential arbitrary code execution due to $@. | JinJavaSSTI.java:30:21:30:52 | getParameter(...) | a template value loaded from a remote source. |
|
|
||||||
| JinJavaSSTI.java:46:55:46:62 | template | JinJavaSSTI.java:39:21:39:52 | getParameter(...) : String | JinJavaSSTI.java:46:55:46:62 | template | Potential arbitrary code execution due to $@. | JinJavaSSTI.java:39:21:39:52 | getParameter(...) | a template value loaded from a remote source. |
|
|
||||||
| PebbleSSTI.java:21:56:21:59 | code | PebbleSSTI.java:18:17:18:44 | getParameter(...) : String | PebbleSSTI.java:21:56:21:59 | code | Potential arbitrary code execution due to $@. | PebbleSSTI.java:18:17:18:44 | getParameter(...) | a template value loaded from a remote source. |
|
|
||||||
| PebbleSSTI.java:28:63:28:66 | code | PebbleSSTI.java:25:17:25:44 | getParameter(...) : String | PebbleSSTI.java:28:63:28:66 | code | Potential arbitrary code execution due to $@. | PebbleSSTI.java:25:17:25:44 | getParameter(...) | a template value loaded from a remote source. |
|
|
||||||
| ThymeleafSSTI.java:27:27:27:30 | code | ThymeleafSSTI.java:22:17:22:44 | getParameter(...) : String | ThymeleafSSTI.java:27:27:27:30 | code | Potential arbitrary code execution due to $@. | ThymeleafSSTI.java:22:17:22:44 | getParameter(...) | a template value loaded from a remote source. |
|
|
||||||
| VelocitySSTI.java:38:45:38:48 | code | VelocitySSTI.java:31:17:31:44 | getParameter(...) : String | VelocitySSTI.java:38:45:38:48 | code | Potential arbitrary code execution due to $@. | VelocitySSTI.java:31:17:31:44 | getParameter(...) | a template value loaded from a remote source. |
|
|
||||||
| VelocitySSTI.java:53:45:53:50 | reader | VelocitySSTI.java:44:17:44:44 | getParameter(...) : String | VelocitySSTI.java:53:45:53:50 | reader | Potential arbitrary code execution due to $@. | VelocitySSTI.java:44:17:44:44 | getParameter(...) | a template value loaded from a remote source. |
|
|
||||||
| VelocitySSTI.java:63:25:63:30 | reader | VelocitySSTI.java:59:17:59:44 | getParameter(...) : String | VelocitySSTI.java:63:25:63:30 | reader | Potential arbitrary code execution due to $@. | VelocitySSTI.java:59:17:59:44 | getParameter(...) | a template value loaded from a remote source. |
|
|
||||||
| VelocitySSTI.java:77:21:77:27 | context | VelocitySSTI.java:69:17:69:44 | getParameter(...) : String | VelocitySSTI.java:77:21:77:27 | context | Potential arbitrary code execution due to $@. | VelocitySSTI.java:69:17:69:44 | getParameter(...) | a template value loaded from a remote source. |
|
|
||||||
| VelocitySSTI.java:89:60:89:66 | context | VelocitySSTI.java:83:17:83:44 | getParameter(...) : String | VelocitySSTI.java:89:60:89:66 | context | Potential arbitrary code execution due to $@. | VelocitySSTI.java:83:17:83:44 | getParameter(...) | a template value loaded from a remote source. |
|
|
||||||
| VelocitySSTI.java:102:11:102:17 | context | VelocitySSTI.java:95:17:95:44 | getParameter(...) : String | VelocitySSTI.java:102:11:102:17 | context | Potential arbitrary code execution due to $@. | VelocitySSTI.java:95:17:95:44 | getParameter(...) | a template value loaded from a remote source. |
|
|
||||||
| VelocitySSTI.java:115:11:115:17 | context | VelocitySSTI.java:108:17:108:44 | getParameter(...) : String | VelocitySSTI.java:115:11:115:17 | context | Potential arbitrary code execution due to $@. | VelocitySSTI.java:108:17:108:44 | getParameter(...) | a template value loaded from a remote source. |
|
|
||||||
| VelocitySSTI.java:123:37:123:40 | code | VelocitySSTI.java:120:17:120:44 | getParameter(...) : String | VelocitySSTI.java:123:37:123:40 | code | Potential arbitrary code execution due to $@. | VelocitySSTI.java:120:17:120:44 | getParameter(...) | a template value loaded from a remote source. |
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
experimental/Security/CWE/CWE-094/TemplateInjection.ql
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
import javax.imageio.stream.FileImageInputStream;
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import org.springframework.stereotype.Controller;
|
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
|
||||||
|
|
||||||
import java.lang.String;
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.FileWriter;
|
|
||||||
import java.io.Reader;
|
|
||||||
import java.io.StringReader;
|
|
||||||
import java.io.Writer;
|
|
||||||
|
|
||||||
import org.thymeleaf.*;
|
|
||||||
import org.thymeleaf.context.Context;
|
|
||||||
|
|
||||||
@Controller
|
|
||||||
public class ThymeleafSSTI {
|
|
||||||
String sourceName = "sourceName";
|
|
||||||
|
|
||||||
@GetMapping(value = "bad1")
|
|
||||||
public void bad1(HttpServletRequest request) {
|
|
||||||
String code = request.getParameter("code");
|
|
||||||
Context ctx = new Context();
|
|
||||||
try {
|
|
||||||
FileWriter fw = new FileWriter(new File("as"));
|
|
||||||
TemplateEngine templateEngine = new TemplateEngine();
|
|
||||||
templateEngine.process(code, ctx, fw);
|
|
||||||
} catch (Exception e) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
61
java/ql/test/library-tests/frameworks/thymeleaf/Test.java
Normal file
61
java/ql/test/library-tests/frameworks/thymeleaf/Test.java
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
package generatedtest;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
import org.thymeleaf.TemplateSpec;
|
||||||
|
import org.thymeleaf.templatemode.TemplateMode;
|
||||||
|
|
||||||
|
// Test case generated by GenerateFlowTestCase.ql
|
||||||
|
public class Test {
|
||||||
|
|
||||||
|
Object source() { return null; }
|
||||||
|
void sink(Object o) { }
|
||||||
|
|
||||||
|
public void test() throws Exception {
|
||||||
|
|
||||||
|
{
|
||||||
|
// "org.thymeleaf;TemplateSpec;false;TemplateSpec;;;Argument[0];Argument[-1];taint;manual"
|
||||||
|
TemplateSpec out = null;
|
||||||
|
String in = (String)source();
|
||||||
|
out = new TemplateSpec(in, (Map)null);
|
||||||
|
sink(out); // $ hasTaintFlow
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// "org.thymeleaf;TemplateSpec;false;TemplateSpec;;;Argument[0];Argument[-1];taint;manual"
|
||||||
|
TemplateSpec out = null;
|
||||||
|
String in = (String)source();
|
||||||
|
out = new TemplateSpec(in, (Set)null, (String)null, (Map)null);
|
||||||
|
sink(out); // $ hasTaintFlow
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// "org.thymeleaf;TemplateSpec;false;TemplateSpec;;;Argument[0];Argument[-1];taint;manual"
|
||||||
|
TemplateSpec out = null;
|
||||||
|
String in = (String)source();
|
||||||
|
out = new TemplateSpec(in, (Set)null, (TemplateMode)null, (Map)null);
|
||||||
|
sink(out); // $ hasTaintFlow
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// "org.thymeleaf;TemplateSpec;false;TemplateSpec;;;Argument[0];Argument[-1];taint;manual"
|
||||||
|
TemplateSpec out = null;
|
||||||
|
String in = (String)source();
|
||||||
|
out = new TemplateSpec(in, (String)null);
|
||||||
|
sink(out); // $ hasTaintFlow
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// "org.thymeleaf;TemplateSpec;false;TemplateSpec;;;Argument[0];Argument[-1];taint;manual"
|
||||||
|
TemplateSpec out = null;
|
||||||
|
String in = (String)source();
|
||||||
|
out = new TemplateSpec(in, (TemplateMode)null);
|
||||||
|
sink(out); // $ hasTaintFlow
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// "org.thymeleaf;TemplateSpec;false;getTemplate;;;Argument[-1];ReturnValue;taint;manual"
|
||||||
|
String out = null;
|
||||||
|
TemplateSpec in = (TemplateSpec)source();
|
||||||
|
out = in.getTemplate();
|
||||||
|
sink(out); // $ hasTaintFlow
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
1
java/ql/test/library-tests/frameworks/thymeleaf/options
Normal file
1
java/ql/test/library-tests/frameworks/thymeleaf/options
Normal file
@@ -0,0 +1 @@
|
|||||||
|
//semmle-extractor-options: --javac-args -cp ${testdir}/../../../stubs/thymeleaf-3.0.14
|
||||||
2
java/ql/test/library-tests/frameworks/thymeleaf/test.ql
Normal file
2
java/ql/test/library-tests/frameworks/thymeleaf/test.ql
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
import java
|
||||||
|
import TestUtilities.InlineFlowTest
|
||||||
@@ -11,7 +11,7 @@ import java.util.HashMap;
|
|||||||
import freemarker.template.Template;
|
import freemarker.template.Template;
|
||||||
import freemarker.template.Configuration;
|
import freemarker.template.Configuration;
|
||||||
import freemarker.cache.StringTemplateLoader;
|
import freemarker.cache.StringTemplateLoader;
|
||||||
import freemarker.template.ParserConfiguration;
|
import freemarker.core.ParserConfiguration;
|
||||||
|
|
||||||
@Controller
|
@Controller
|
||||||
public class FreemarkerSSTI {
|
public class FreemarkerSSTI {
|
||||||
@@ -23,8 +23,7 @@ public class FreemarkerSSTI {
|
|||||||
String code = request.getParameter("code");
|
String code = request.getParameter("code");
|
||||||
Reader reader = new StringReader(code);
|
Reader reader = new StringReader(code);
|
||||||
|
|
||||||
// Template(java.lang.String name, java.io.Reader reader)
|
Template t = new Template(name, reader); // $hasTemplateInjection
|
||||||
Template t = new Template(name, reader);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = "bad2")
|
@GetMapping(value = "bad2")
|
||||||
@@ -33,9 +32,8 @@ public class FreemarkerSSTI {
|
|||||||
String code = request.getParameter("code");
|
String code = request.getParameter("code");
|
||||||
Reader reader = new StringReader(code);
|
Reader reader = new StringReader(code);
|
||||||
Configuration cfg = new Configuration();
|
Configuration cfg = new Configuration();
|
||||||
|
|
||||||
// Template(java.lang.String name, java.io.Reader reader, Configuration cfg)
|
Template t = new Template(name, reader, cfg); // $hasTemplateInjection
|
||||||
Template t = new Template(name, reader, cfg);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = "bad3")
|
@GetMapping(value = "bad3")
|
||||||
@@ -45,9 +43,7 @@ public class FreemarkerSSTI {
|
|||||||
Reader reader = new StringReader(code);
|
Reader reader = new StringReader(code);
|
||||||
Configuration cfg = new Configuration();
|
Configuration cfg = new Configuration();
|
||||||
|
|
||||||
// Template(java.lang.String name, java.io.Reader reader, Configuration cfg,
|
Template t = new Template(name, reader, cfg, "UTF-8"); // $hasTemplateInjection
|
||||||
// java.lang.String encoding)
|
|
||||||
Template t = new Template(name, reader, cfg, "UTF-8");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = "bad4")
|
@GetMapping(value = "bad4")
|
||||||
@@ -56,9 +52,7 @@ public class FreemarkerSSTI {
|
|||||||
String sourceCode = request.getParameter("sourceCode");
|
String sourceCode = request.getParameter("sourceCode");
|
||||||
Configuration cfg = new Configuration();
|
Configuration cfg = new Configuration();
|
||||||
|
|
||||||
// Template(java.lang.String name, java.lang.String sourceCode, Configuration
|
Template t = new Template(name, sourceCode, cfg); // $hasTemplateInjection
|
||||||
// cfg)
|
|
||||||
Template t = new Template(name, sourceCode, cfg);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = "bad5")
|
@GetMapping(value = "bad5")
|
||||||
@@ -68,9 +62,7 @@ public class FreemarkerSSTI {
|
|||||||
Configuration cfg = new Configuration();
|
Configuration cfg = new Configuration();
|
||||||
Reader reader = new StringReader(code);
|
Reader reader = new StringReader(code);
|
||||||
|
|
||||||
// Template(java.lang.String name, java.lang.String sourceName, java.io.Reader
|
Template t = new Template(name, sourceName, reader, cfg); // $hasTemplateInjection
|
||||||
// reader, Configuration cfg)
|
|
||||||
Template t = new Template(name, sourceName, reader, cfg);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = "bad6")
|
@GetMapping(value = "bad6")
|
||||||
@@ -81,10 +73,8 @@ public class FreemarkerSSTI {
|
|||||||
ParserConfiguration customParserConfiguration = new Configuration();
|
ParserConfiguration customParserConfiguration = new Configuration();
|
||||||
Reader reader = new StringReader(code);
|
Reader reader = new StringReader(code);
|
||||||
|
|
||||||
// Template(java.lang.String name, java.lang.String sourceName, java.io.Reader
|
Template t =
|
||||||
// reader, Configuration cfg, ParserConfiguration customParserConfiguration,
|
new Template(name, sourceName, reader, cfg, customParserConfiguration, "UTF-8"); // $hasTemplateInjection
|
||||||
// java.lang.String encoding)
|
|
||||||
Template t = new Template(name, sourceName, reader, cfg, customParserConfiguration, "UTF-8");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = "bad7")
|
@GetMapping(value = "bad7")
|
||||||
@@ -95,9 +85,7 @@ public class FreemarkerSSTI {
|
|||||||
ParserConfiguration customParserConfiguration = new Configuration();
|
ParserConfiguration customParserConfiguration = new Configuration();
|
||||||
Reader reader = new StringReader(code);
|
Reader reader = new StringReader(code);
|
||||||
|
|
||||||
// Template(java.lang.String name, java.lang.String sourceName, java.io.Reader
|
Template t = new Template(name, sourceName, reader, cfg, "UTF-8"); // $hasTemplateInjection
|
||||||
// reader, Configuration cfg, java.lang.String encoding)
|
|
||||||
Template t = new Template(name, sourceName, reader, cfg, "UTF-8");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = "bad8")
|
@GetMapping(value = "bad8")
|
||||||
@@ -105,28 +93,25 @@ public class FreemarkerSSTI {
|
|||||||
String code = request.getParameter("code");
|
String code = request.getParameter("code");
|
||||||
StringTemplateLoader stringLoader = new StringTemplateLoader();
|
StringTemplateLoader stringLoader = new StringTemplateLoader();
|
||||||
|
|
||||||
// void putTemplate(java.lang.String name, java.lang.String templateContent)
|
stringLoader.putTemplate("myTemplate", code); // $hasTemplateInjection
|
||||||
stringLoader.putTemplate("myTemplate", code);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = "bad9")
|
@GetMapping(value = "bad9")
|
||||||
public void bad9(HttpServletRequest request) {
|
public void bad9(HttpServletRequest request) {
|
||||||
String code = request.getParameter("code");
|
String code = request.getParameter("code");
|
||||||
StringTemplateLoader stringLoader = new StringTemplateLoader();
|
StringTemplateLoader stringLoader = new StringTemplateLoader();
|
||||||
|
|
||||||
// void putTemplate(java.lang.String name, java.lang.String templateContent,
|
stringLoader.putTemplate("myTemplate", code, 0); // $hasTemplateInjection
|
||||||
// long lastModified)
|
|
||||||
stringLoader.putTemplate("myTemplate", code, 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = "bad10")
|
@GetMapping(value = "good1")
|
||||||
public void bad10(HttpServletRequest request) {
|
public void good1(HttpServletRequest request) {
|
||||||
HashMap root = new HashMap();
|
HashMap<Object, Object> root = new HashMap();
|
||||||
String code = request.getParameter("code");
|
String code = request.getParameter("code");
|
||||||
root.put("code", code);
|
root.put("code", code);
|
||||||
Configuration cfg = new Configuration();
|
Configuration cfg = new Configuration();
|
||||||
Template temp = cfg.getTemplate("test.ftlh");
|
Template temp = cfg.getTemplate("test.ftlh");
|
||||||
OutputStreamWriter out = new OutputStreamWriter(System.out);
|
OutputStreamWriter out = new OutputStreamWriter(System.out);
|
||||||
temp.process(root, out);
|
temp.process(root, out); // Safe
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -21,8 +21,7 @@ public class JinJavaSSTI {
|
|||||||
String template = request.getParameter("template");
|
String template = request.getParameter("template");
|
||||||
Jinjava jinjava = new Jinjava();
|
Jinjava jinjava = new Jinjava();
|
||||||
Map<String, Object> context = new HashMap<>();
|
Map<String, Object> context = new HashMap<>();
|
||||||
// String render(String template, Map<String, ?> bindings)
|
String renderedTemplate = jinjava.render(template, context); // $hasTemplateInjection
|
||||||
String renderedTemplate = jinjava.render(template, context);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = "bad2")
|
@GetMapping(value = "bad2")
|
||||||
@@ -30,8 +29,7 @@ public class JinJavaSSTI {
|
|||||||
String template = request.getParameter("template");
|
String template = request.getParameter("template");
|
||||||
Jinjava jinjava = new Jinjava();
|
Jinjava jinjava = new Jinjava();
|
||||||
Map<String, Object> bindings = new HashMap<>();
|
Map<String, Object> bindings = new HashMap<>();
|
||||||
// RenderResult renderForResult (String template, Map<String, ?> bindings)
|
RenderResult renderResult = jinjava.renderForResult(template, bindings); // $hasTemplateInjection
|
||||||
RenderResult renderResult = jinjava.renderForResult(template, bindings);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = "bad3")
|
@GetMapping(value = "bad3")
|
||||||
@@ -41,8 +39,6 @@ public class JinJavaSSTI {
|
|||||||
Map<String, Object> bindings = new HashMap<>();
|
Map<String, Object> bindings = new HashMap<>();
|
||||||
JinjavaConfig renderConfig = new JinjavaConfig();
|
JinjavaConfig renderConfig = new JinjavaConfig();
|
||||||
|
|
||||||
// RenderResult renderForResult (String template, Map<String, ?> bindings,
|
RenderResult renderResult = jinjava.renderForResult(template, bindings, renderConfig); // $hasTemplateInjection
|
||||||
// JinjavaConfig renderConfig)
|
|
||||||
RenderResult renderResult = jinjava.renderForResult(template, bindings, renderConfig);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -15,16 +15,15 @@ public class PebbleSSTI {
|
|||||||
|
|
||||||
@GetMapping(value = "bad1")
|
@GetMapping(value = "bad1")
|
||||||
public void bad1(HttpServletRequest request) {
|
public void bad1(HttpServletRequest request) {
|
||||||
String code = request.getParameter("code");
|
String templateName = request.getParameter("templateName");
|
||||||
PebbleEngine engine = new PebbleEngine.Builder().build();
|
PebbleEngine engine = new PebbleEngine.Builder().build();
|
||||||
// public PebbleTemplate getTemplate(String templateName)
|
PebbleTemplate compiledTemplate = engine.getTemplate(templateName); // $hasTemplateInjection
|
||||||
PebbleTemplate compiledTemplate = engine.getTemplate(code);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = "bad2")
|
@GetMapping(value = "bad2")
|
||||||
public void bad2(HttpServletRequest request) {
|
public void bad2(HttpServletRequest request) {
|
||||||
String code = request.getParameter("code");
|
String templateName = request.getParameter("templateName");
|
||||||
PebbleEngine engine = new PebbleEngine.Builder().build();
|
PebbleEngine engine = new PebbleEngine.Builder().build();
|
||||||
// public PebbleTemplate getLiteralTemplate(String templateName)
|
PebbleTemplate compiledTemplate = engine.getLiteralTemplate(templateName); // $hasTemplateInjection
|
||||||
PebbleTemplate compiledTemplate = engine.getLiteralTemplate(code);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
import java
|
||||||
|
import semmle.code.java.security.TemplateInjectionQuery
|
||||||
|
import TestUtilities.InlineExpectationsTest
|
||||||
|
|
||||||
|
class TemplateInjectionTest extends InlineExpectationsTest {
|
||||||
|
TemplateInjectionTest() { this = "TemplateInjectionTest" }
|
||||||
|
|
||||||
|
override string getARelevantTag() { result = "hasTemplateInjection" }
|
||||||
|
|
||||||
|
override predicate hasActualResult(Location location, string element, string tag, string value) {
|
||||||
|
tag = "hasTemplateInjection" and
|
||||||
|
exists(DataFlow::Node src, DataFlow::Node sink, TemplateInjectionFlowConfig conf |
|
||||||
|
conf.hasFlow(src, sink)
|
||||||
|
|
|
||||||
|
sink.getLocation() = location and
|
||||||
|
element = sink.toString() and
|
||||||
|
value = ""
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
38
java/ql/test/query-tests/security/CWE-094/ThymeleafSSTI.java
Normal file
38
java/ql/test/query-tests/security/CWE-094/ThymeleafSSTI.java
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
import javax.imageio.stream.FileImageInputStream;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
|
||||||
|
import java.lang.String;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileWriter;
|
||||||
|
import java.io.Reader;
|
||||||
|
import java.io.StringReader;
|
||||||
|
import java.io.Writer;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.thymeleaf.*;
|
||||||
|
import org.thymeleaf.context.Context;
|
||||||
|
|
||||||
|
@Controller
|
||||||
|
public class ThymeleafSSTI {
|
||||||
|
@GetMapping(value = "bad1")
|
||||||
|
public void bad1(HttpServletRequest request) {
|
||||||
|
String code = request.getParameter("code");
|
||||||
|
try {
|
||||||
|
TemplateEngine templateEngine = new TemplateEngine();
|
||||||
|
templateEngine.process(code, (Set<String>) null, (Context) null); // $hasTemplateInjection
|
||||||
|
templateEngine.process(code, (Set<String>) null, (Context) null, (Writer) null); // $hasTemplateInjection
|
||||||
|
templateEngine.process(code, (Context) null); // $hasTemplateInjection
|
||||||
|
templateEngine.process(code, (Context) null, (Writer) null); // $hasTemplateInjection
|
||||||
|
templateEngine.processThrottled(code, (Set<String>) null, (Context) null); // $hasTemplateInjection
|
||||||
|
templateEngine.processThrottled(code, (Context) null); // $hasTemplateInjection
|
||||||
|
|
||||||
|
TemplateSpec spec = new TemplateSpec(code, "");
|
||||||
|
templateEngine.process(spec, (Context) null); // $hasTemplateInjection
|
||||||
|
templateEngine.process(spec, (Context) null, (Writer) null); // $hasTemplateInjection
|
||||||
|
templateEngine.processThrottled(spec, (Context) null); // $hasTemplateInjection
|
||||||
|
} catch (Exception e) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -34,8 +34,7 @@ public class VelocitySSTI {
|
|||||||
|
|
||||||
String s = "We are using $project $name to render this.";
|
String s = "We are using $project $name to render this.";
|
||||||
StringWriter w = new StringWriter();
|
StringWriter w = new StringWriter();
|
||||||
// evaluate( Context context, Writer out, String logTag, String instring )
|
Velocity.evaluate(context, w, "mystring", code); // $hasTemplateInjection
|
||||||
Velocity.evaluate(context, w, "mystring", code);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = "bad2")
|
@GetMapping(value = "bad2")
|
||||||
@@ -49,8 +48,7 @@ public class VelocitySSTI {
|
|||||||
StringWriter w = new StringWriter();
|
StringWriter w = new StringWriter();
|
||||||
StringReader reader = new StringReader(code);
|
StringReader reader = new StringReader(code);
|
||||||
|
|
||||||
// evaluate(Context context, Writer writer, String logTag, Reader reader)
|
Velocity.evaluate(context, w, "mystring", reader); // $hasTemplateInjection
|
||||||
Velocity.evaluate(context, w, "mystring", reader);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = "bad3")
|
@GetMapping(value = "bad3")
|
||||||
@@ -58,13 +56,13 @@ public class VelocitySSTI {
|
|||||||
String name = "ttemplate";
|
String name = "ttemplate";
|
||||||
String code = request.getParameter("code");
|
String code = request.getParameter("code");
|
||||||
|
|
||||||
RuntimeServices runtimeServices = new RuntimeServices();
|
RuntimeServices runtimeServices = null;
|
||||||
StringReader reader = new StringReader(code);
|
StringReader reader = new StringReader(code);
|
||||||
runtimeServices.parse(reader, new Template());
|
runtimeServices.parse(reader, new Template()); // $hasTemplateInjection
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = "bad4")
|
@GetMapping(value = "good1")
|
||||||
public void bad4(HttpServletRequest request) {
|
public void good1(HttpServletRequest request) {
|
||||||
String name = "ttemplate";
|
String name = "ttemplate";
|
||||||
String code = request.getParameter("code");
|
String code = request.getParameter("code");
|
||||||
|
|
||||||
@@ -74,7 +72,7 @@ public class VelocitySSTI {
|
|||||||
StringWriter w = new StringWriter();
|
StringWriter w = new StringWriter();
|
||||||
StringReader reader = new StringReader("test");
|
StringReader reader = new StringReader("test");
|
||||||
|
|
||||||
Velocity.evaluate(context, w, "mystring", reader);
|
Velocity.evaluate(context, w, "mystring", reader); // Safe
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = "bad5")
|
@GetMapping(value = "bad5")
|
||||||
@@ -86,41 +84,37 @@ public class VelocitySSTI {
|
|||||||
context.put("code", code);
|
context.put("code", code);
|
||||||
|
|
||||||
StringWriter w = new StringWriter();
|
StringWriter w = new StringWriter();
|
||||||
VelocityEngine.mergeTemplate("testtemplate.vm", "UTF-8", context, w);
|
VelocityEngine engine = null;
|
||||||
|
engine.mergeTemplate("testtemplate.vm", "UTF-8", context, w); // Safe
|
||||||
|
AbstractContext ctx = null;
|
||||||
|
ctx.put("key", code);
|
||||||
|
engine.evaluate(ctx, null, null, (String) null); // Safe
|
||||||
|
engine.evaluate(ctx, null, null, (Reader) null); // Safe
|
||||||
|
engine.evaluate(null, null, null, code); // $hasTemplateInjection
|
||||||
|
engine.evaluate(null, null, null, new StringReader(code)); // $hasTemplateInjection
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping(value = "good2")
|
||||||
|
public void good2(HttpServletRequest request) {
|
||||||
|
String name = "ttemplate";
|
||||||
|
String code = request.getParameter("code");
|
||||||
|
|
||||||
|
VelocityContext context = new VelocityContext();
|
||||||
|
context.put("code", code);
|
||||||
|
|
||||||
|
StringWriter w = new StringWriter();
|
||||||
|
Template t = new Template();
|
||||||
|
t.merge(context, w); // Safe
|
||||||
|
t.merge(context, w, new LinkedList<String>()); // Safe
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = "bad6")
|
@GetMapping(value = "bad6")
|
||||||
public void bad6(HttpServletRequest request) {
|
public void bad6(HttpServletRequest request) {
|
||||||
String name = "ttemplate";
|
|
||||||
String code = request.getParameter("code");
|
|
||||||
|
|
||||||
VelocityContext context = new VelocityContext();
|
|
||||||
context.put("code", code);
|
|
||||||
|
|
||||||
StringWriter w = new StringWriter();
|
|
||||||
Template t = new Template();
|
|
||||||
t.merge(context, w);
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping(value = "bad7")
|
|
||||||
public void bad7(HttpServletRequest request) {
|
|
||||||
String name = "ttemplate";
|
|
||||||
String code = request.getParameter("code");
|
|
||||||
|
|
||||||
VelocityContext context = new VelocityContext();
|
|
||||||
context.put("code", code);
|
|
||||||
|
|
||||||
StringWriter w = new StringWriter();
|
|
||||||
Template t = new Template();
|
|
||||||
t.merge(context, w, new LinkedList<String>());
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping(value = "bad8")
|
|
||||||
public void bad8(HttpServletRequest request) {
|
|
||||||
String code = request.getParameter("code");
|
String code = request.getParameter("code");
|
||||||
|
|
||||||
StringResourceRepository repo = new StringResourceRepositoryImpl();
|
StringResourceRepository repo = new StringResourceRepositoryImpl();
|
||||||
repo.putStringResource("woogie2", code);
|
repo.putStringResource("woogie2", code); // $hasTemplateInjection
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1 +1 @@
|
|||||||
//semmle-extractor-options: --javac-args -cp ${testdir}/../../../stubs/validation-api-2.0.1.Final:${testdir}/../../../stubs/springframework-5.3.8:${testdir}/../../../stubs/apache-commons-jexl-2.1.1:${testdir}/../../../stubs/apache-commons-jexl-3.1:${testdir}/../../../stubs/apache-commons-logging-1.2:${testdir}/../../../stubs/mvel2-2.4.7:${testdir}/../../../stubs/groovy-all-3.0.7:${testdir}/../../../stubs/servlet-api-2.4:${testdir}/../../../stubs/scriptengine:${testdir}/../../../stubs/jsr223-api
|
//semmle-extractor-options: --javac-args -cp ${testdir}/../../../stubs/validation-api-2.0.1.Final:${testdir}/../../../stubs/springframework-5.3.8:${testdir}/../../../stubs/apache-commons-jexl-2.1.1:${testdir}/../../../stubs/apache-commons-jexl-3.1:${testdir}/../../../stubs/apache-commons-logging-1.2:${testdir}/../../../stubs/mvel2-2.4.7:${testdir}/../../../stubs/groovy-all-3.0.7:${testdir}/../../../stubs/servlet-api-2.4:${testdir}/../../../stubs/scriptengine:${testdir}/../../../stubs/jsr223-api:${testdir}/../../../stubs/apache-freemarker-2.3.31:${testdir}/../../../stubs/jinjava-2.6.0:${testdir}/../../../stubs/pebble-3.1.5:${testdir}/../../../stubs/thymeleaf-3.0.14:${testdir}/../../../stubs/apache-velocity-2.3
|
||||||
|
|||||||
12
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/cache/CacheStorage.java
generated
vendored
Normal file
12
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/cache/CacheStorage.java
generated
vendored
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
// Generated automatically from freemarker.cache.CacheStorage for testing purposes
|
||||||
|
|
||||||
|
package freemarker.cache;
|
||||||
|
|
||||||
|
|
||||||
|
public interface CacheStorage
|
||||||
|
{
|
||||||
|
Object get(Object p0);
|
||||||
|
void clear();
|
||||||
|
void put(Object p0, Object p1);
|
||||||
|
void remove(Object p0);
|
||||||
|
}
|
||||||
19
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/cache/StringTemplateLoader.java
generated
vendored
Normal file
19
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/cache/StringTemplateLoader.java
generated
vendored
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
// Generated automatically from freemarker.cache.StringTemplateLoader for testing purposes
|
||||||
|
|
||||||
|
package freemarker.cache;
|
||||||
|
|
||||||
|
import freemarker.cache.TemplateLoader;
|
||||||
|
import java.io.Reader;
|
||||||
|
|
||||||
|
public class StringTemplateLoader implements TemplateLoader
|
||||||
|
{
|
||||||
|
public Object findTemplateSource(String p0){ return null; }
|
||||||
|
public Reader getReader(Object p0, String p1){ return null; }
|
||||||
|
public String toString(){ return null; }
|
||||||
|
public StringTemplateLoader(){}
|
||||||
|
public boolean removeTemplate(String p0){ return false; }
|
||||||
|
public long getLastModified(Object p0){ return 0; }
|
||||||
|
public void closeTemplateSource(Object p0){}
|
||||||
|
public void putTemplate(String p0, String p1){}
|
||||||
|
public void putTemplate(String p0, String p1, long p2){}
|
||||||
|
}
|
||||||
15
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/cache/TemplateConfigurationFactory.java
generated
vendored
Normal file
15
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/cache/TemplateConfigurationFactory.java
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
// Generated automatically from freemarker.cache.TemplateConfigurationFactory for testing purposes
|
||||||
|
|
||||||
|
package freemarker.cache;
|
||||||
|
|
||||||
|
import freemarker.core.TemplateConfiguration;
|
||||||
|
import freemarker.template.Configuration;
|
||||||
|
|
||||||
|
abstract public class TemplateConfigurationFactory
|
||||||
|
{
|
||||||
|
protected abstract void setConfigurationOfChildren(Configuration p0);
|
||||||
|
public Configuration getConfiguration(){ return null; }
|
||||||
|
public TemplateConfigurationFactory(){}
|
||||||
|
public abstract TemplateConfiguration get(String p0, Object p1);
|
||||||
|
public final void setConfiguration(Configuration p0){}
|
||||||
|
}
|
||||||
13
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/cache/TemplateLoader.java
generated
vendored
Normal file
13
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/cache/TemplateLoader.java
generated
vendored
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
// Generated automatically from freemarker.cache.TemplateLoader for testing purposes
|
||||||
|
|
||||||
|
package freemarker.cache;
|
||||||
|
|
||||||
|
import java.io.Reader;
|
||||||
|
|
||||||
|
public interface TemplateLoader
|
||||||
|
{
|
||||||
|
Object findTemplateSource(String p0);
|
||||||
|
Reader getReader(Object p0, String p1);
|
||||||
|
long getLastModified(Object p0);
|
||||||
|
void closeTemplateSource(Object p0);
|
||||||
|
}
|
||||||
17
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/cache/TemplateLookupContext.java
generated
vendored
Normal file
17
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/cache/TemplateLookupContext.java
generated
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
// Generated automatically from freemarker.cache.TemplateLookupContext for testing purposes
|
||||||
|
|
||||||
|
package freemarker.cache;
|
||||||
|
|
||||||
|
import freemarker.cache.TemplateLookupResult;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
|
abstract public class TemplateLookupContext
|
||||||
|
{
|
||||||
|
protected TemplateLookupContext() {}
|
||||||
|
public Locale getTemplateLocale(){ return null; }
|
||||||
|
public Object getCustomLookupCondition(){ return null; }
|
||||||
|
public String getTemplateName(){ return null; }
|
||||||
|
public TemplateLookupResult createNegativeLookupResult(){ return null; }
|
||||||
|
public abstract TemplateLookupResult lookupWithAcquisitionStrategy(String p0);
|
||||||
|
public abstract TemplateLookupResult lookupWithLocalizedThenAcquisitionStrategy(String p0, Locale p1);
|
||||||
|
}
|
||||||
11
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/cache/TemplateLookupResult.java
generated
vendored
Normal file
11
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/cache/TemplateLookupResult.java
generated
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
// Generated automatically from freemarker.cache.TemplateLookupResult for testing purposes
|
||||||
|
|
||||||
|
package freemarker.cache;
|
||||||
|
|
||||||
|
|
||||||
|
abstract public class TemplateLookupResult
|
||||||
|
{
|
||||||
|
protected TemplateLookupResult() {}
|
||||||
|
public abstract String getTemplateSourceName();
|
||||||
|
public abstract boolean isPositive();
|
||||||
|
}
|
||||||
13
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/cache/TemplateLookupStrategy.java
generated
vendored
Normal file
13
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/cache/TemplateLookupStrategy.java
generated
vendored
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
// Generated automatically from freemarker.cache.TemplateLookupStrategy for testing purposes
|
||||||
|
|
||||||
|
package freemarker.cache;
|
||||||
|
|
||||||
|
import freemarker.cache.TemplateLookupContext;
|
||||||
|
import freemarker.cache.TemplateLookupResult;
|
||||||
|
|
||||||
|
abstract public class TemplateLookupStrategy
|
||||||
|
{
|
||||||
|
public TemplateLookupStrategy(){}
|
||||||
|
public abstract TemplateLookupResult lookup(TemplateLookupContext p0);
|
||||||
|
public static TemplateLookupStrategy DEFAULT_2_3_0 = null;
|
||||||
|
}
|
||||||
11
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/cache/TemplateNameFormat.java
generated
vendored
Normal file
11
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/cache/TemplateNameFormat.java
generated
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
// Generated automatically from freemarker.cache.TemplateNameFormat for testing purposes
|
||||||
|
|
||||||
|
package freemarker.cache;
|
||||||
|
|
||||||
|
|
||||||
|
abstract public class TemplateNameFormat
|
||||||
|
{
|
||||||
|
protected TemplateNameFormat() {}
|
||||||
|
public static TemplateNameFormat DEFAULT_2_3_0 = null;
|
||||||
|
public static TemplateNameFormat DEFAULT_2_4_0 = null;
|
||||||
|
}
|
||||||
46
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/ArithmeticEngine.java
generated
Normal file
46
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/ArithmeticEngine.java
generated
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
// Generated automatically from freemarker.core.ArithmeticEngine for testing purposes
|
||||||
|
|
||||||
|
package freemarker.core;
|
||||||
|
|
||||||
|
|
||||||
|
abstract public class ArithmeticEngine
|
||||||
|
{
|
||||||
|
protected int maxScale = 0;
|
||||||
|
protected int minScale = 0;
|
||||||
|
protected int roundingPolicy = 0;
|
||||||
|
public ArithmeticEngine(){}
|
||||||
|
public abstract Number add(Number p0, Number p1);
|
||||||
|
public abstract Number divide(Number p0, Number p1);
|
||||||
|
public abstract Number modulus(Number p0, Number p1);
|
||||||
|
public abstract Number multiply(Number p0, Number p1);
|
||||||
|
public abstract Number subtract(Number p0, Number p1);
|
||||||
|
public abstract Number toNumber(String p0);
|
||||||
|
public abstract int compareNumbers(Number p0, Number p1);
|
||||||
|
public static ArithmeticEngine.BigDecimalEngine BIGDECIMAL_ENGINE = null;
|
||||||
|
public static ArithmeticEngine.ConservativeEngine CONSERVATIVE_ENGINE = null;
|
||||||
|
public void setMaxScale(int p0){}
|
||||||
|
public void setMinScale(int p0){}
|
||||||
|
public void setRoundingPolicy(int p0){}
|
||||||
|
static public class BigDecimalEngine extends ArithmeticEngine
|
||||||
|
{
|
||||||
|
public BigDecimalEngine(){}
|
||||||
|
public Number add(Number p0, Number p1){ return null; }
|
||||||
|
public Number divide(Number p0, Number p1){ return null; }
|
||||||
|
public Number modulus(Number p0, Number p1){ return null; }
|
||||||
|
public Number multiply(Number p0, Number p1){ return null; }
|
||||||
|
public Number subtract(Number p0, Number p1){ return null; }
|
||||||
|
public Number toNumber(String p0){ return null; }
|
||||||
|
public int compareNumbers(Number p0, Number p1){ return 0; }
|
||||||
|
}
|
||||||
|
static public class ConservativeEngine extends ArithmeticEngine
|
||||||
|
{
|
||||||
|
public ConservativeEngine(){}
|
||||||
|
public Number add(Number p0, Number p1){ return null; }
|
||||||
|
public Number divide(Number p0, Number p1){ return null; }
|
||||||
|
public Number modulus(Number p0, Number p1){ return null; }
|
||||||
|
public Number multiply(Number p0, Number p1){ return null; }
|
||||||
|
public Number subtract(Number p0, Number p1){ return null; }
|
||||||
|
public Number toNumber(String p0){ return null; }
|
||||||
|
public int compareNumbers(Number p0, Number p1){ return 0; }
|
||||||
|
}
|
||||||
|
}
|
||||||
238
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/Configurable.java
generated
Normal file
238
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/Configurable.java
generated
Normal file
@@ -0,0 +1,238 @@
|
|||||||
|
// Generated automatically from freemarker.core.Configurable for testing purposes
|
||||||
|
|
||||||
|
package freemarker.core;
|
||||||
|
|
||||||
|
import freemarker.core.ArithmeticEngine;
|
||||||
|
import freemarker.core.Environment;
|
||||||
|
import freemarker.core.TemplateClassResolver;
|
||||||
|
import freemarker.core.TemplateDateFormatFactory;
|
||||||
|
import freemarker.core.TemplateNumberFormatFactory;
|
||||||
|
import freemarker.core.TruncateBuiltinAlgorithm;
|
||||||
|
import freemarker.template.AttemptExceptionReporter;
|
||||||
|
import freemarker.template.ObjectWrapper;
|
||||||
|
import freemarker.template.TemplateException;
|
||||||
|
import freemarker.template.TemplateExceptionHandler;
|
||||||
|
import freemarker.template.Version;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Properties;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.TimeZone;
|
||||||
|
|
||||||
|
public class Configurable
|
||||||
|
{
|
||||||
|
protected ArrayList parseAsList(String p0){ return null; }
|
||||||
|
protected ArrayList parseAsSegmentedList(String p0){ return null; }
|
||||||
|
protected Configurable(Version p0){}
|
||||||
|
protected Environment getEnvironment(){ return null; }
|
||||||
|
protected HashMap parseAsImportList(String p0){ return null; }
|
||||||
|
protected Object clone(){ return null; }
|
||||||
|
protected String getCorrectedNameForUnknownSetting(String p0){ return null; }
|
||||||
|
protected TemplateException invalidSettingValueException(String p0, String p1){ return null; }
|
||||||
|
protected TemplateException settingValueAssignmentException(String p0, String p1, Throwable p2){ return null; }
|
||||||
|
protected TemplateException unknownSettingException(String p0){ return null; }
|
||||||
|
protected void doAutoImportsAndIncludes(Environment p0){}
|
||||||
|
public ArithmeticEngine getArithmeticEngine(){ return null; }
|
||||||
|
public AttemptExceptionReporter getAttemptExceptionReporter(){ return null; }
|
||||||
|
public Boolean getLazyAutoImports(){ return null; }
|
||||||
|
public Configurable(){}
|
||||||
|
public Configurable(Configurable p0){}
|
||||||
|
public List<String> getAutoIncludes(){ return null; }
|
||||||
|
public List<String> getAutoIncludesWithoutFallback(){ return null; }
|
||||||
|
public Locale getLocale(){ return null; }
|
||||||
|
public Map getSettings(){ return null; }
|
||||||
|
public Map<String, ? extends TemplateDateFormatFactory> getCustomDateFormats(){ return null; }
|
||||||
|
public Map<String, ? extends TemplateDateFormatFactory> getCustomDateFormatsWithoutFallback(){ return null; }
|
||||||
|
public Map<String, ? extends TemplateNumberFormatFactory> getCustomNumberFormats(){ return null; }
|
||||||
|
public Map<String, ? extends TemplateNumberFormatFactory> getCustomNumberFormatsWithoutFallback(){ return null; }
|
||||||
|
public Map<String, String> getAutoImports(){ return null; }
|
||||||
|
public Map<String, String> getAutoImportsWithoutFallback(){ return null; }
|
||||||
|
public Object getCustomAttribute(String p0){ return null; }
|
||||||
|
public ObjectWrapper getObjectWrapper(){ return null; }
|
||||||
|
public Set<String> getSettingNames(boolean p0){ return null; }
|
||||||
|
public String getBooleanFormat(){ return null; }
|
||||||
|
public String getDateFormat(){ return null; }
|
||||||
|
public String getDateTimeFormat(){ return null; }
|
||||||
|
public String getNumberFormat(){ return null; }
|
||||||
|
public String getOutputEncoding(){ return null; }
|
||||||
|
public String getSetting(String p0){ return null; }
|
||||||
|
public String getTimeFormat(){ return null; }
|
||||||
|
public String getURLEscapingCharset(){ return null; }
|
||||||
|
public String[] getCustomAttributeNames(){ return null; }
|
||||||
|
public TemplateClassResolver getNewBuiltinClassResolver(){ return null; }
|
||||||
|
public TemplateDateFormatFactory getCustomDateFormat(String p0){ return null; }
|
||||||
|
public TemplateExceptionHandler getTemplateExceptionHandler(){ return null; }
|
||||||
|
public TemplateNumberFormatFactory getCustomNumberFormat(String p0){ return null; }
|
||||||
|
public TimeZone getSQLDateAndTimeTimeZone(){ return null; }
|
||||||
|
public TimeZone getTimeZone(){ return null; }
|
||||||
|
public TruncateBuiltinAlgorithm getTruncateBuiltinAlgorithm(){ return null; }
|
||||||
|
public boolean getAutoFlush(){ return false; }
|
||||||
|
public boolean getLazyImports(){ return false; }
|
||||||
|
public boolean getLogTemplateExceptions(){ return false; }
|
||||||
|
public boolean getShowErrorTips(){ return false; }
|
||||||
|
public boolean getWrapUncheckedExceptions(){ return false; }
|
||||||
|
public boolean hasCustomFormats(){ return false; }
|
||||||
|
public boolean isAPIBuiltinEnabled(){ return false; }
|
||||||
|
public boolean isAPIBuiltinEnabledSet(){ return false; }
|
||||||
|
public boolean isArithmeticEngineSet(){ return false; }
|
||||||
|
public boolean isAttemptExceptionReporterSet(){ return false; }
|
||||||
|
public boolean isAutoFlushSet(){ return false; }
|
||||||
|
public boolean isAutoImportsSet(){ return false; }
|
||||||
|
public boolean isAutoIncludesSet(){ return false; }
|
||||||
|
public boolean isBooleanFormatSet(){ return false; }
|
||||||
|
public boolean isClassicCompatible(){ return false; }
|
||||||
|
public boolean isClassicCompatibleSet(){ return false; }
|
||||||
|
public boolean isCustomDateFormatsSet(){ return false; }
|
||||||
|
public boolean isCustomNumberFormatsSet(){ return false; }
|
||||||
|
public boolean isDateFormatSet(){ return false; }
|
||||||
|
public boolean isDateTimeFormatSet(){ return false; }
|
||||||
|
public boolean isLazyAutoImportsSet(){ return false; }
|
||||||
|
public boolean isLazyImportsSet(){ return false; }
|
||||||
|
public boolean isLocaleSet(){ return false; }
|
||||||
|
public boolean isLogTemplateExceptionsSet(){ return false; }
|
||||||
|
public boolean isNewBuiltinClassResolverSet(){ return false; }
|
||||||
|
public boolean isNumberFormatSet(){ return false; }
|
||||||
|
public boolean isObjectWrapperSet(){ return false; }
|
||||||
|
public boolean isOutputEncodingSet(){ return false; }
|
||||||
|
public boolean isSQLDateAndTimeTimeZoneSet(){ return false; }
|
||||||
|
public boolean isShowErrorTipsSet(){ return false; }
|
||||||
|
public boolean isTemplateExceptionHandlerSet(){ return false; }
|
||||||
|
public boolean isTimeFormatSet(){ return false; }
|
||||||
|
public boolean isTimeZoneSet(){ return false; }
|
||||||
|
public boolean isTruncateBuiltinAlgorithmSet(){ return false; }
|
||||||
|
public boolean isURLEscapingCharsetSet(){ return false; }
|
||||||
|
public boolean isWrapUncheckedExceptionsSet(){ return false; }
|
||||||
|
public final Configurable getParent(){ return null; }
|
||||||
|
public int getClassicCompatibleAsInt(){ return 0; }
|
||||||
|
public static String API_BUILTIN_ENABLED_KEY = null;
|
||||||
|
public static String API_BUILTIN_ENABLED_KEY_CAMEL_CASE = null;
|
||||||
|
public static String API_BUILTIN_ENABLED_KEY_SNAKE_CASE = null;
|
||||||
|
public static String ARITHMETIC_ENGINE_KEY = null;
|
||||||
|
public static String ARITHMETIC_ENGINE_KEY_CAMEL_CASE = null;
|
||||||
|
public static String ARITHMETIC_ENGINE_KEY_SNAKE_CASE = null;
|
||||||
|
public static String ATTEMPT_EXCEPTION_REPORTER_KEY = null;
|
||||||
|
public static String ATTEMPT_EXCEPTION_REPORTER_KEY_CAMEL_CASE = null;
|
||||||
|
public static String ATTEMPT_EXCEPTION_REPORTER_KEY_SNAKE_CASE = null;
|
||||||
|
public static String AUTO_FLUSH_KEY = null;
|
||||||
|
public static String AUTO_FLUSH_KEY_CAMEL_CASE = null;
|
||||||
|
public static String AUTO_FLUSH_KEY_SNAKE_CASE = null;
|
||||||
|
public static String AUTO_IMPORT_KEY = null;
|
||||||
|
public static String AUTO_IMPORT_KEY_CAMEL_CASE = null;
|
||||||
|
public static String AUTO_IMPORT_KEY_SNAKE_CASE = null;
|
||||||
|
public static String AUTO_INCLUDE_KEY = null;
|
||||||
|
public static String AUTO_INCLUDE_KEY_CAMEL_CASE = null;
|
||||||
|
public static String AUTO_INCLUDE_KEY_SNAKE_CASE = null;
|
||||||
|
public static String BOOLEAN_FORMAT_KEY = null;
|
||||||
|
public static String BOOLEAN_FORMAT_KEY_CAMEL_CASE = null;
|
||||||
|
public static String BOOLEAN_FORMAT_KEY_SNAKE_CASE = null;
|
||||||
|
public static String CLASSIC_COMPATIBLE_KEY = null;
|
||||||
|
public static String CLASSIC_COMPATIBLE_KEY_CAMEL_CASE = null;
|
||||||
|
public static String CLASSIC_COMPATIBLE_KEY_SNAKE_CASE = null;
|
||||||
|
public static String CUSTOM_DATE_FORMATS_KEY = null;
|
||||||
|
public static String CUSTOM_DATE_FORMATS_KEY_CAMEL_CASE = null;
|
||||||
|
public static String CUSTOM_DATE_FORMATS_KEY_SNAKE_CASE = null;
|
||||||
|
public static String CUSTOM_NUMBER_FORMATS_KEY = null;
|
||||||
|
public static String CUSTOM_NUMBER_FORMATS_KEY_CAMEL_CASE = null;
|
||||||
|
public static String CUSTOM_NUMBER_FORMATS_KEY_SNAKE_CASE = null;
|
||||||
|
public static String DATETIME_FORMAT_KEY = null;
|
||||||
|
public static String DATETIME_FORMAT_KEY_CAMEL_CASE = null;
|
||||||
|
public static String DATETIME_FORMAT_KEY_SNAKE_CASE = null;
|
||||||
|
public static String DATE_FORMAT_KEY = null;
|
||||||
|
public static String DATE_FORMAT_KEY_CAMEL_CASE = null;
|
||||||
|
public static String DATE_FORMAT_KEY_SNAKE_CASE = null;
|
||||||
|
public static String LAZY_AUTO_IMPORTS_KEY = null;
|
||||||
|
public static String LAZY_AUTO_IMPORTS_KEY_CAMEL_CASE = null;
|
||||||
|
public static String LAZY_AUTO_IMPORTS_KEY_SNAKE_CASE = null;
|
||||||
|
public static String LAZY_IMPORTS_KEY = null;
|
||||||
|
public static String LAZY_IMPORTS_KEY_CAMEL_CASE = null;
|
||||||
|
public static String LAZY_IMPORTS_KEY_SNAKE_CASE = null;
|
||||||
|
public static String LOCALE_KEY = null;
|
||||||
|
public static String LOCALE_KEY_CAMEL_CASE = null;
|
||||||
|
public static String LOCALE_KEY_SNAKE_CASE = null;
|
||||||
|
public static String LOG_TEMPLATE_EXCEPTIONS_KEY = null;
|
||||||
|
public static String LOG_TEMPLATE_EXCEPTIONS_KEY_CAMEL_CASE = null;
|
||||||
|
public static String LOG_TEMPLATE_EXCEPTIONS_KEY_SNAKE_CASE = null;
|
||||||
|
public static String NEW_BUILTIN_CLASS_RESOLVER_KEY = null;
|
||||||
|
public static String NEW_BUILTIN_CLASS_RESOLVER_KEY_CAMEL_CASE = null;
|
||||||
|
public static String NEW_BUILTIN_CLASS_RESOLVER_KEY_SNAKE_CASE = null;
|
||||||
|
public static String NUMBER_FORMAT_KEY = null;
|
||||||
|
public static String NUMBER_FORMAT_KEY_CAMEL_CASE = null;
|
||||||
|
public static String NUMBER_FORMAT_KEY_SNAKE_CASE = null;
|
||||||
|
public static String OBJECT_WRAPPER_KEY = null;
|
||||||
|
public static String OBJECT_WRAPPER_KEY_CAMEL_CASE = null;
|
||||||
|
public static String OBJECT_WRAPPER_KEY_SNAKE_CASE = null;
|
||||||
|
public static String OUTPUT_ENCODING_KEY = null;
|
||||||
|
public static String OUTPUT_ENCODING_KEY_CAMEL_CASE = null;
|
||||||
|
public static String OUTPUT_ENCODING_KEY_SNAKE_CASE = null;
|
||||||
|
public static String SHOW_ERROR_TIPS_KEY = null;
|
||||||
|
public static String SHOW_ERROR_TIPS_KEY_CAMEL_CASE = null;
|
||||||
|
public static String SHOW_ERROR_TIPS_KEY_SNAKE_CASE = null;
|
||||||
|
public static String SQL_DATE_AND_TIME_TIME_ZONE_KEY = null;
|
||||||
|
public static String SQL_DATE_AND_TIME_TIME_ZONE_KEY_CAMEL_CASE = null;
|
||||||
|
public static String SQL_DATE_AND_TIME_TIME_ZONE_KEY_SNAKE_CASE = null;
|
||||||
|
public static String STRICT_BEAN_MODELS = null;
|
||||||
|
public static String STRICT_BEAN_MODELS_KEY = null;
|
||||||
|
public static String STRICT_BEAN_MODELS_KEY_CAMEL_CASE = null;
|
||||||
|
public static String STRICT_BEAN_MODELS_KEY_SNAKE_CASE = null;
|
||||||
|
public static String TEMPLATE_EXCEPTION_HANDLER_KEY = null;
|
||||||
|
public static String TEMPLATE_EXCEPTION_HANDLER_KEY_CAMEL_CASE = null;
|
||||||
|
public static String TEMPLATE_EXCEPTION_HANDLER_KEY_SNAKE_CASE = null;
|
||||||
|
public static String TIME_FORMAT_KEY = null;
|
||||||
|
public static String TIME_FORMAT_KEY_CAMEL_CASE = null;
|
||||||
|
public static String TIME_FORMAT_KEY_SNAKE_CASE = null;
|
||||||
|
public static String TIME_ZONE_KEY = null;
|
||||||
|
public static String TIME_ZONE_KEY_CAMEL_CASE = null;
|
||||||
|
public static String TIME_ZONE_KEY_SNAKE_CASE = null;
|
||||||
|
public static String TRUNCATE_BUILTIN_ALGORITHM_KEY = null;
|
||||||
|
public static String TRUNCATE_BUILTIN_ALGORITHM_KEY_CAMEL_CASE = null;
|
||||||
|
public static String TRUNCATE_BUILTIN_ALGORITHM_KEY_SNAKE_CASE = null;
|
||||||
|
public static String URL_ESCAPING_CHARSET_KEY = null;
|
||||||
|
public static String URL_ESCAPING_CHARSET_KEY_CAMEL_CASE = null;
|
||||||
|
public static String URL_ESCAPING_CHARSET_KEY_SNAKE_CASE = null;
|
||||||
|
public static String WRAP_UNCHECKED_EXCEPTIONS_KEY = null;
|
||||||
|
public static String WRAP_UNCHECKED_EXCEPTIONS_KEY_CAMEL_CASE = null;
|
||||||
|
public static String WRAP_UNCHECKED_EXCEPTIONS_KEY_SNAKE_CASE = null;
|
||||||
|
public void addAutoImport(String p0, String p1){}
|
||||||
|
public void addAutoInclude(String p0){}
|
||||||
|
public void removeAutoImport(String p0){}
|
||||||
|
public void removeAutoInclude(String p0){}
|
||||||
|
public void removeCustomAttribute(String p0){}
|
||||||
|
public void setAPIBuiltinEnabled(boolean p0){}
|
||||||
|
public void setArithmeticEngine(ArithmeticEngine p0){}
|
||||||
|
public void setAttemptExceptionReporter(AttemptExceptionReporter p0){}
|
||||||
|
public void setAutoFlush(boolean p0){}
|
||||||
|
public void setAutoImports(Map p0){}
|
||||||
|
public void setAutoIncludes(List p0){}
|
||||||
|
public void setBooleanFormat(String p0){}
|
||||||
|
public void setClassicCompatible(boolean p0){}
|
||||||
|
public void setClassicCompatibleAsInt(int p0){}
|
||||||
|
public void setCustomAttribute(String p0, Object p1){}
|
||||||
|
public void setCustomDateFormats(Map<String, ? extends TemplateDateFormatFactory> p0){}
|
||||||
|
public void setCustomNumberFormats(Map<String, ? extends TemplateNumberFormatFactory> p0){}
|
||||||
|
public void setDateFormat(String p0){}
|
||||||
|
public void setDateTimeFormat(String p0){}
|
||||||
|
public void setLazyAutoImports(Boolean p0){}
|
||||||
|
public void setLazyImports(boolean p0){}
|
||||||
|
public void setLocale(Locale p0){}
|
||||||
|
public void setLogTemplateExceptions(boolean p0){}
|
||||||
|
public void setNewBuiltinClassResolver(TemplateClassResolver p0){}
|
||||||
|
public void setNumberFormat(String p0){}
|
||||||
|
public void setObjectWrapper(ObjectWrapper p0){}
|
||||||
|
public void setOutputEncoding(String p0){}
|
||||||
|
public void setSQLDateAndTimeTimeZone(TimeZone p0){}
|
||||||
|
public void setSetting(String p0, String p1){}
|
||||||
|
public void setSettings(InputStream p0){}
|
||||||
|
public void setSettings(Properties p0){}
|
||||||
|
public void setShowErrorTips(boolean p0){}
|
||||||
|
public void setStrictBeanModels(boolean p0){}
|
||||||
|
public void setTemplateExceptionHandler(TemplateExceptionHandler p0){}
|
||||||
|
public void setTimeFormat(String p0){}
|
||||||
|
public void setTimeZone(TimeZone p0){}
|
||||||
|
public void setTruncateBuiltinAlgorithm(TruncateBuiltinAlgorithm p0){}
|
||||||
|
public void setURLEscapingCharset(String p0){}
|
||||||
|
public void setWrapUncheckedExceptions(boolean p0){}
|
||||||
|
}
|
||||||
17
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/DirectiveCallPlace.java
generated
Normal file
17
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/DirectiveCallPlace.java
generated
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
// Generated automatically from freemarker.core.DirectiveCallPlace for testing purposes
|
||||||
|
|
||||||
|
package freemarker.core;
|
||||||
|
|
||||||
|
import freemarker.template.Template;
|
||||||
|
import freemarker.template.utility.ObjectFactory;
|
||||||
|
|
||||||
|
public interface DirectiveCallPlace
|
||||||
|
{
|
||||||
|
Object getOrCreateCustomData(Object p0, ObjectFactory p1);
|
||||||
|
Template getTemplate();
|
||||||
|
boolean isNestedOutputCacheable();
|
||||||
|
int getBeginColumn();
|
||||||
|
int getBeginLine();
|
||||||
|
int getEndColumn();
|
||||||
|
int getEndLine();
|
||||||
|
}
|
||||||
106
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/Environment.java
generated
Normal file
106
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/Environment.java
generated
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
// Generated automatically from freemarker.core.Environment for testing purposes
|
||||||
|
|
||||||
|
package freemarker.core;
|
||||||
|
|
||||||
|
import freemarker.core.Configurable;
|
||||||
|
import freemarker.core.DirectiveCallPlace;
|
||||||
|
import freemarker.core.TemplateDateFormat;
|
||||||
|
import freemarker.core.TemplateElement;
|
||||||
|
import freemarker.core.TemplateNumberFormat;
|
||||||
|
import freemarker.template.Configuration;
|
||||||
|
import freemarker.template.SimpleHash;
|
||||||
|
import freemarker.template.Template;
|
||||||
|
import freemarker.template.TemplateDirectiveModel;
|
||||||
|
import freemarker.template.TemplateExceptionHandler;
|
||||||
|
import freemarker.template.TemplateHashModel;
|
||||||
|
import freemarker.template.TemplateModel;
|
||||||
|
import freemarker.template.TemplateNodeModel;
|
||||||
|
import java.io.PrintWriter;
|
||||||
|
import java.io.Writer;
|
||||||
|
import java.text.NumberFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.TimeZone;
|
||||||
|
|
||||||
|
public class Environment extends Configurable
|
||||||
|
{
|
||||||
|
protected Environment() {}
|
||||||
|
public Configuration getConfiguration(){ return null; }
|
||||||
|
public DirectiveCallPlace getCurrentDirectiveCallPlace(){ return null; }
|
||||||
|
public Environment(Template p0, TemplateHashModel p1, Writer p2){}
|
||||||
|
public Environment.Namespace getCurrentNamespace(){ return null; }
|
||||||
|
public Environment.Namespace getGlobalNamespace(){ return null; }
|
||||||
|
public Environment.Namespace getMainNamespace(){ return null; }
|
||||||
|
public Environment.Namespace getNamespace(String p0){ return null; }
|
||||||
|
public Environment.Namespace importLib(String p0, String p1){ return null; }
|
||||||
|
public Environment.Namespace importLib(String p0, String p1, boolean p2){ return null; }
|
||||||
|
public Environment.Namespace importLib(Template p0, String p1){ return null; }
|
||||||
|
public NumberFormat getCNumberFormat(){ return null; }
|
||||||
|
public Object __getitem__(String p0){ return null; }
|
||||||
|
public Object getCustomState(Object p0){ return null; }
|
||||||
|
public Object setCustomState(Object p0, Object p1){ return null; }
|
||||||
|
public Set getKnownVariableNames(){ return null; }
|
||||||
|
public String getDefaultNS(){ return null; }
|
||||||
|
public String getNamespaceForPrefix(String p0){ return null; }
|
||||||
|
public String getPrefixForNamespace(String p0){ return null; }
|
||||||
|
public String rootBasedToAbsoluteTemplateName(String p0){ return null; }
|
||||||
|
public String toFullTemplateName(String p0, String p1){ return null; }
|
||||||
|
public Template getCurrentTemplate(){ return null; }
|
||||||
|
public Template getMainTemplate(){ return null; }
|
||||||
|
public Template getTemplate(){ return null; }
|
||||||
|
public Template getTemplateForImporting(String p0){ return null; }
|
||||||
|
public Template getTemplateForInclusion(String p0, String p1, boolean p2){ return null; }
|
||||||
|
public Template getTemplateForInclusion(String p0, String p1, boolean p2, boolean p3){ return null; }
|
||||||
|
public TemplateDateFormat getTemplateDateFormat(String p0, int p1, Class<? extends Date> p2){ return null; }
|
||||||
|
public TemplateDateFormat getTemplateDateFormat(String p0, int p1, Class<? extends Date> p2, Locale p3){ return null; }
|
||||||
|
public TemplateDateFormat getTemplateDateFormat(String p0, int p1, Class<? extends Date> p2, Locale p3, TimeZone p4, TimeZone p5){ return null; }
|
||||||
|
public TemplateDateFormat getTemplateDateFormat(String p0, int p1, Locale p2, TimeZone p3, boolean p4){ return null; }
|
||||||
|
public TemplateDateFormat getTemplateDateFormat(int p0, Class<? extends Date> p1){ return null; }
|
||||||
|
public TemplateHashModel getDataModel(){ return null; }
|
||||||
|
public TemplateHashModel getGlobalVariables(){ return null; }
|
||||||
|
public TemplateModel getDataModelOrSharedVariable(String p0){ return null; }
|
||||||
|
public TemplateModel getGlobalVariable(String p0){ return null; }
|
||||||
|
public TemplateModel getLocalVariable(String p0){ return null; }
|
||||||
|
public TemplateModel getVariable(String p0){ return null; }
|
||||||
|
public TemplateNodeModel getCurrentVisitorNode(){ return null; }
|
||||||
|
public TemplateNumberFormat getTemplateNumberFormat(){ return null; }
|
||||||
|
public TemplateNumberFormat getTemplateNumberFormat(String p0){ return null; }
|
||||||
|
public TemplateNumberFormat getTemplateNumberFormat(String p0, Locale p1){ return null; }
|
||||||
|
public Writer getOut(){ return null; }
|
||||||
|
public boolean applyEqualsOperator(TemplateModel p0, TemplateModel p1){ return false; }
|
||||||
|
public boolean applyEqualsOperatorLenient(TemplateModel p0, TemplateModel p1){ return false; }
|
||||||
|
public boolean applyGreaterThanOperator(TemplateModel p0, TemplateModel p1){ return false; }
|
||||||
|
public boolean applyLessThanOperator(TemplateModel p0, TemplateModel p1){ return false; }
|
||||||
|
public boolean applyLessThanOrEqualsOperator(TemplateModel p0, TemplateModel p1){ return false; }
|
||||||
|
public boolean applyWithGreaterThanOrEqualsOperator(TemplateModel p0, TemplateModel p1){ return false; }
|
||||||
|
public boolean isInAttemptBlock(){ return false; }
|
||||||
|
public class Namespace extends SimpleHash
|
||||||
|
{
|
||||||
|
public Template getTemplate(){ return null; }
|
||||||
|
}
|
||||||
|
public static Environment getCurrentEnvironment(){ return null; }
|
||||||
|
public void __setitem__(String p0, Object p1){}
|
||||||
|
public void include(String p0, String p1, boolean p2){}
|
||||||
|
public void include(Template p0){}
|
||||||
|
public void outputInstructionStack(PrintWriter p0){}
|
||||||
|
public void process(){}
|
||||||
|
public void setCurrentVisitorNode(TemplateNodeModel p0){}
|
||||||
|
public void setDateFormat(String p0){}
|
||||||
|
public void setDateTimeFormat(String p0){}
|
||||||
|
public void setGlobalVariable(String p0, TemplateModel p1){}
|
||||||
|
public void setLocalVariable(String p0, TemplateModel p1){}
|
||||||
|
public void setLocale(Locale p0){}
|
||||||
|
public void setNumberFormat(String p0){}
|
||||||
|
public void setOut(Writer p0){}
|
||||||
|
public void setOutputEncoding(String p0){}
|
||||||
|
public void setSQLDateAndTimeTimeZone(TimeZone p0){}
|
||||||
|
public void setTemplateExceptionHandler(TemplateExceptionHandler p0){}
|
||||||
|
public void setTimeFormat(String p0){}
|
||||||
|
public void setTimeZone(TimeZone p0){}
|
||||||
|
public void setURLEscapingCharset(String p0){}
|
||||||
|
public void setVariable(String p0, TemplateModel p1){}
|
||||||
|
public void visit(TemplateElement p0, TemplateDirectiveModel p1, Map p2, List p3){}
|
||||||
|
}
|
||||||
21
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/Expression.java
generated
Normal file
21
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/Expression.java
generated
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
// Generated automatically from freemarker.core.Expression for testing purposes
|
||||||
|
|
||||||
|
package freemarker.core;
|
||||||
|
|
||||||
|
import freemarker.core.Environment;
|
||||||
|
import freemarker.core.TemplateObject;
|
||||||
|
import freemarker.template.TemplateModel;
|
||||||
|
|
||||||
|
abstract public class Expression extends TemplateObject {
|
||||||
|
protected abstract Expression deepCloneWithIdentifierReplaced_inner(String p0, Expression p1,
|
||||||
|
Expression.ReplacemenetState p2);
|
||||||
|
|
||||||
|
public Expression() {}
|
||||||
|
|
||||||
|
public final TemplateModel getAsTemplateModel(Environment p0) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
class ReplacemenetState {
|
||||||
|
}
|
||||||
|
}
|
||||||
12
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/LibraryLoad.java
generated
Normal file
12
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/LibraryLoad.java
generated
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
// Generated automatically from freemarker.core.LibraryLoad for testing purposes
|
||||||
|
|
||||||
|
package freemarker.core;
|
||||||
|
|
||||||
|
import freemarker.core.TemplateElement;
|
||||||
|
|
||||||
|
public class LibraryLoad extends TemplateElement
|
||||||
|
{
|
||||||
|
protected LibraryLoad() {}
|
||||||
|
protected String dump(boolean p0){ return null; }
|
||||||
|
public String getTemplateName(){ return null; }
|
||||||
|
}
|
||||||
12
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/LocalContext.java
generated
Normal file
12
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/LocalContext.java
generated
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
// Generated automatically from freemarker.core.LocalContext for testing purposes
|
||||||
|
|
||||||
|
package freemarker.core;
|
||||||
|
|
||||||
|
import freemarker.template.TemplateModel;
|
||||||
|
import java.util.Collection;
|
||||||
|
|
||||||
|
public interface LocalContext
|
||||||
|
{
|
||||||
|
Collection getLocalVariableNames();
|
||||||
|
TemplateModel getLocalVariable(String p0);
|
||||||
|
}
|
||||||
49
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/Macro.java
generated
Normal file
49
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/Macro.java
generated
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
// Generated automatically from freemarker.core.Macro for testing purposes
|
||||||
|
|
||||||
|
package freemarker.core;
|
||||||
|
|
||||||
|
import freemarker.core.LocalContext;
|
||||||
|
import freemarker.core.TemplateElement;
|
||||||
|
import freemarker.template.TemplateHashModelEx;
|
||||||
|
import freemarker.template.TemplateModel;
|
||||||
|
import freemarker.template.TemplateSequenceModel;
|
||||||
|
import java.util.Collection;
|
||||||
|
|
||||||
|
public class Macro extends TemplateElement implements TemplateModel {
|
||||||
|
protected Macro() {}
|
||||||
|
|
||||||
|
protected String dump(boolean p0) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Macro.WithArgs getWithArgs() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getNamespaceLookupKey() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCatchAll() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String[] getArgumentNames() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasArgNamed(String p0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isFunction() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
class WithArgs {
|
||||||
|
}
|
||||||
|
}
|
||||||
14
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/OutputFormat.java
generated
Normal file
14
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/OutputFormat.java
generated
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
// Generated automatically from freemarker.core.OutputFormat for testing purposes
|
||||||
|
|
||||||
|
package freemarker.core;
|
||||||
|
|
||||||
|
|
||||||
|
abstract public class OutputFormat
|
||||||
|
{
|
||||||
|
protected String toStringExtraProperties(){ return null; }
|
||||||
|
public OutputFormat(){}
|
||||||
|
public abstract String getMimeType();
|
||||||
|
public abstract String getName();
|
||||||
|
public abstract boolean isOutputFormatMixingAllowed();
|
||||||
|
public final String toString(){ return null; }
|
||||||
|
}
|
||||||
22
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/ParserConfiguration.java
generated
Normal file
22
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/ParserConfiguration.java
generated
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
// Generated automatically from freemarker.core.ParserConfiguration for testing purposes
|
||||||
|
|
||||||
|
package freemarker.core;
|
||||||
|
|
||||||
|
import freemarker.core.ArithmeticEngine;
|
||||||
|
import freemarker.core.OutputFormat;
|
||||||
|
import freemarker.template.Version;
|
||||||
|
|
||||||
|
public interface ParserConfiguration
|
||||||
|
{
|
||||||
|
ArithmeticEngine getArithmeticEngine();
|
||||||
|
OutputFormat getOutputFormat();
|
||||||
|
Version getIncompatibleImprovements();
|
||||||
|
boolean getRecognizeStandardFileExtensions();
|
||||||
|
boolean getStrictSyntaxMode();
|
||||||
|
boolean getWhitespaceStripping();
|
||||||
|
int getAutoEscapingPolicy();
|
||||||
|
int getInterpolationSyntax();
|
||||||
|
int getNamingConvention();
|
||||||
|
int getTabSize();
|
||||||
|
int getTagSyntax();
|
||||||
|
}
|
||||||
14
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/TemplateClassResolver.java
generated
Normal file
14
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/TemplateClassResolver.java
generated
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
// Generated automatically from freemarker.core.TemplateClassResolver for testing purposes
|
||||||
|
|
||||||
|
package freemarker.core;
|
||||||
|
|
||||||
|
import freemarker.core.Environment;
|
||||||
|
import freemarker.template.Template;
|
||||||
|
|
||||||
|
public interface TemplateClassResolver
|
||||||
|
{
|
||||||
|
Class resolve(String p0, Environment p1, Template p2);
|
||||||
|
static TemplateClassResolver ALLOWS_NOTHING_RESOLVER = null;
|
||||||
|
static TemplateClassResolver SAFER_RESOLVER = null;
|
||||||
|
static TemplateClassResolver UNRESTRICTED_RESOLVER = null;
|
||||||
|
}
|
||||||
51
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/TemplateConfiguration.java
generated
Normal file
51
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/TemplateConfiguration.java
generated
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
// Generated automatically from freemarker.core.TemplateConfiguration for testing purposes
|
||||||
|
|
||||||
|
package freemarker.core;
|
||||||
|
|
||||||
|
import freemarker.core.Configurable;
|
||||||
|
import freemarker.core.OutputFormat;
|
||||||
|
import freemarker.core.ParserConfiguration;
|
||||||
|
import freemarker.template.Configuration;
|
||||||
|
import freemarker.template.Template;
|
||||||
|
import freemarker.template.Version;
|
||||||
|
|
||||||
|
public class TemplateConfiguration extends Configurable implements ParserConfiguration
|
||||||
|
{
|
||||||
|
public Configuration getParentConfiguration(){ return null; }
|
||||||
|
public OutputFormat getOutputFormat(){ return null; }
|
||||||
|
public String getEncoding(){ return null; }
|
||||||
|
public TemplateConfiguration(){}
|
||||||
|
public Version getIncompatibleImprovements(){ return null; }
|
||||||
|
public boolean getRecognizeStandardFileExtensions(){ return false; }
|
||||||
|
public boolean getStrictSyntaxMode(){ return false; }
|
||||||
|
public boolean getWhitespaceStripping(){ return false; }
|
||||||
|
public boolean isAutoEscapingPolicySet(){ return false; }
|
||||||
|
public boolean isEncodingSet(){ return false; }
|
||||||
|
public boolean isInterpolationSyntaxSet(){ return false; }
|
||||||
|
public boolean isNamingConventionSet(){ return false; }
|
||||||
|
public boolean isOutputFormatSet(){ return false; }
|
||||||
|
public boolean isRecognizeStandardFileExtensionsSet(){ return false; }
|
||||||
|
public boolean isStrictSyntaxModeSet(){ return false; }
|
||||||
|
public boolean isTabSizeSet(){ return false; }
|
||||||
|
public boolean isTagSyntaxSet(){ return false; }
|
||||||
|
public boolean isWhitespaceStrippingSet(){ return false; }
|
||||||
|
public int getAutoEscapingPolicy(){ return 0; }
|
||||||
|
public int getInterpolationSyntax(){ return 0; }
|
||||||
|
public int getNamingConvention(){ return 0; }
|
||||||
|
public int getTabSize(){ return 0; }
|
||||||
|
public int getTagSyntax(){ return 0; }
|
||||||
|
public void apply(Template p0){}
|
||||||
|
public void merge(TemplateConfiguration p0){}
|
||||||
|
public void setAutoEscapingPolicy(int p0){}
|
||||||
|
public void setEncoding(String p0){}
|
||||||
|
public void setInterpolationSyntax(int p0){}
|
||||||
|
public void setNamingConvention(int p0){}
|
||||||
|
public void setOutputFormat(OutputFormat p0){}
|
||||||
|
public void setParentConfiguration(Configuration p0){}
|
||||||
|
public void setRecognizeStandardFileExtensions(boolean p0){}
|
||||||
|
public void setStrictBeanModels(boolean p0){}
|
||||||
|
public void setStrictSyntaxMode(boolean p0){}
|
||||||
|
public void setTabSize(int p0){}
|
||||||
|
public void setTagSyntax(int p0){}
|
||||||
|
public void setWhitespaceStripping(boolean p0){}
|
||||||
|
}
|
||||||
16
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/TemplateDateFormat.java
generated
Normal file
16
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/TemplateDateFormat.java
generated
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
// Generated automatically from freemarker.core.TemplateDateFormat for testing purposes
|
||||||
|
|
||||||
|
package freemarker.core;
|
||||||
|
|
||||||
|
import freemarker.core.TemplateValueFormat;
|
||||||
|
import freemarker.template.TemplateDateModel;
|
||||||
|
|
||||||
|
abstract public class TemplateDateFormat extends TemplateValueFormat
|
||||||
|
{
|
||||||
|
public Object format(TemplateDateModel p0){ return null; }
|
||||||
|
public TemplateDateFormat(){}
|
||||||
|
public abstract Object parse(String p0, int p1);
|
||||||
|
public abstract String formatToPlainText(TemplateDateModel p0);
|
||||||
|
public abstract boolean isLocaleBound();
|
||||||
|
public abstract boolean isTimeZoneBound();
|
||||||
|
}
|
||||||
15
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/TemplateDateFormatFactory.java
generated
Normal file
15
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/TemplateDateFormatFactory.java
generated
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
// Generated automatically from freemarker.core.TemplateDateFormatFactory for testing purposes
|
||||||
|
|
||||||
|
package freemarker.core;
|
||||||
|
|
||||||
|
import freemarker.core.Environment;
|
||||||
|
import freemarker.core.TemplateDateFormat;
|
||||||
|
import freemarker.core.TemplateValueFormatFactory;
|
||||||
|
import java.util.Locale;
|
||||||
|
import java.util.TimeZone;
|
||||||
|
|
||||||
|
abstract public class TemplateDateFormatFactory extends TemplateValueFormatFactory
|
||||||
|
{
|
||||||
|
public TemplateDateFormatFactory(){}
|
||||||
|
public abstract TemplateDateFormat get(String p0, int p1, Locale p2, TimeZone p3, boolean p4, Environment p5);
|
||||||
|
}
|
||||||
30
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/TemplateElement.java
generated
Normal file
30
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/TemplateElement.java
generated
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
// Generated automatically from freemarker.core.TemplateElement for testing purposes
|
||||||
|
|
||||||
|
package freemarker.core;
|
||||||
|
|
||||||
|
import freemarker.core.TemplateObject;
|
||||||
|
import freemarker.template.TemplateNodeModel;
|
||||||
|
import freemarker.template.TemplateSequenceModel;
|
||||||
|
import java.util.Enumeration;
|
||||||
|
import javax.swing.tree.TreeNode;
|
||||||
|
|
||||||
|
abstract public class TemplateElement extends TemplateObject implements TreeNode
|
||||||
|
{
|
||||||
|
protected abstract String dump(boolean p0);
|
||||||
|
public Enumeration children(){ return null; }
|
||||||
|
public String getNodeName(){ return null; }
|
||||||
|
public String getNodeNamespace(){ return null; }
|
||||||
|
public String getNodeType(){ return null; }
|
||||||
|
public TemplateElement(){}
|
||||||
|
public TemplateNodeModel getParentNode(){ return null; }
|
||||||
|
public TemplateSequenceModel getChildNodes(){ return null; }
|
||||||
|
public TreeNode getChildAt(int p0){ return null; }
|
||||||
|
public TreeNode getParent(){ return null; }
|
||||||
|
public boolean getAllowsChildren(){ return false; }
|
||||||
|
public boolean isLeaf(){ return false; }
|
||||||
|
public final String getCanonicalForm(){ return null; }
|
||||||
|
public final String getDescription(){ return null; }
|
||||||
|
public int getChildCount(){ return 0; }
|
||||||
|
public int getIndex(TreeNode p0){ return 0; }
|
||||||
|
public void setChildAt(int p0, TemplateElement p1){}
|
||||||
|
}
|
||||||
15
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/TemplateNumberFormat.java
generated
Normal file
15
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/TemplateNumberFormat.java
generated
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
// Generated automatically from freemarker.core.TemplateNumberFormat for testing purposes
|
||||||
|
|
||||||
|
package freemarker.core;
|
||||||
|
|
||||||
|
import freemarker.core.TemplateValueFormat;
|
||||||
|
import freemarker.template.TemplateNumberModel;
|
||||||
|
|
||||||
|
abstract public class TemplateNumberFormat extends TemplateValueFormat
|
||||||
|
{
|
||||||
|
public Object format(TemplateNumberModel p0){ return null; }
|
||||||
|
public TemplateNumberFormat(){}
|
||||||
|
public abstract String formatToPlainText(TemplateNumberModel p0);
|
||||||
|
public abstract boolean isLocaleBound();
|
||||||
|
public final Object parse(String p0){ return null; }
|
||||||
|
}
|
||||||
14
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/TemplateNumberFormatFactory.java
generated
Normal file
14
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/TemplateNumberFormatFactory.java
generated
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
// Generated automatically from freemarker.core.TemplateNumberFormatFactory for testing purposes
|
||||||
|
|
||||||
|
package freemarker.core;
|
||||||
|
|
||||||
|
import freemarker.core.Environment;
|
||||||
|
import freemarker.core.TemplateNumberFormat;
|
||||||
|
import freemarker.core.TemplateValueFormatFactory;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
|
abstract public class TemplateNumberFormatFactory extends TemplateValueFormatFactory
|
||||||
|
{
|
||||||
|
public TemplateNumberFormatFactory(){}
|
||||||
|
public abstract TemplateNumberFormat get(String p0, Locale p1, Environment p2);
|
||||||
|
}
|
||||||
23
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/TemplateObject.java
generated
Normal file
23
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/TemplateObject.java
generated
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
// Generated automatically from freemarker.core.TemplateObject for testing purposes
|
||||||
|
|
||||||
|
package freemarker.core;
|
||||||
|
|
||||||
|
import freemarker.template.Template;
|
||||||
|
|
||||||
|
abstract public class TemplateObject
|
||||||
|
{
|
||||||
|
public String getEndLocation(){ return null; }
|
||||||
|
public String getEndLocationQuoted(){ return null; }
|
||||||
|
public String getStartLocation(){ return null; }
|
||||||
|
public String getStartLocationQuoted(){ return null; }
|
||||||
|
public String toString(){ return null; }
|
||||||
|
public Template getTemplate(){ return null; }
|
||||||
|
public TemplateObject(){}
|
||||||
|
public abstract String getCanonicalForm();
|
||||||
|
public boolean contains(int p0, int p1){ return false; }
|
||||||
|
public final String getSource(){ return null; }
|
||||||
|
public final int getBeginColumn(){ return 0; }
|
||||||
|
public final int getBeginLine(){ return 0; }
|
||||||
|
public final int getEndColumn(){ return 0; }
|
||||||
|
public final int getEndLine(){ return 0; }
|
||||||
|
}
|
||||||
10
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/TemplateValueFormat.java
generated
Normal file
10
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/TemplateValueFormat.java
generated
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
// Generated automatically from freemarker.core.TemplateValueFormat for testing purposes
|
||||||
|
|
||||||
|
package freemarker.core;
|
||||||
|
|
||||||
|
|
||||||
|
abstract public class TemplateValueFormat
|
||||||
|
{
|
||||||
|
public TemplateValueFormat(){}
|
||||||
|
public abstract String getDescription();
|
||||||
|
}
|
||||||
9
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/TemplateValueFormatFactory.java
generated
Normal file
9
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/TemplateValueFormatFactory.java
generated
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
// Generated automatically from freemarker.core.TemplateValueFormatFactory for testing purposes
|
||||||
|
|
||||||
|
package freemarker.core;
|
||||||
|
|
||||||
|
|
||||||
|
abstract public class TemplateValueFormatFactory
|
||||||
|
{
|
||||||
|
public TemplateValueFormatFactory(){}
|
||||||
|
}
|
||||||
18
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/TruncateBuiltinAlgorithm.java
generated
Normal file
18
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/TruncateBuiltinAlgorithm.java
generated
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
// Generated automatically from freemarker.core.TruncateBuiltinAlgorithm for testing purposes
|
||||||
|
|
||||||
|
package freemarker.core;
|
||||||
|
|
||||||
|
import freemarker.core.Environment;
|
||||||
|
import freemarker.template.TemplateModel;
|
||||||
|
import freemarker.template.TemplateScalarModel;
|
||||||
|
|
||||||
|
abstract public class TruncateBuiltinAlgorithm
|
||||||
|
{
|
||||||
|
public TruncateBuiltinAlgorithm(){}
|
||||||
|
public abstract TemplateModel truncateCM(String p0, int p1, TemplateModel p2, Integer p3, Environment p4);
|
||||||
|
public abstract TemplateModel truncateM(String p0, int p1, TemplateModel p2, Integer p3, Environment p4);
|
||||||
|
public abstract TemplateModel truncateWM(String p0, int p1, TemplateModel p2, Integer p3, Environment p4);
|
||||||
|
public abstract TemplateScalarModel truncate(String p0, int p1, TemplateScalarModel p2, Integer p3, Environment p4);
|
||||||
|
public abstract TemplateScalarModel truncateC(String p0, int p1, TemplateScalarModel p2, Integer p3, Environment p4);
|
||||||
|
public abstract TemplateScalarModel truncateW(String p0, int p1, TemplateScalarModel p2, Integer p3, Environment p4);
|
||||||
|
}
|
||||||
24
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/_ErrorDescriptionBuilder.java
generated
Normal file
24
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/core/_ErrorDescriptionBuilder.java
generated
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
// Generated automatically from freemarker.core._ErrorDescriptionBuilder for testing purposes
|
||||||
|
|
||||||
|
package freemarker.core;
|
||||||
|
|
||||||
|
import freemarker.core.Expression;
|
||||||
|
import freemarker.core.TemplateElement;
|
||||||
|
import freemarker.template.Template;
|
||||||
|
|
||||||
|
public class _ErrorDescriptionBuilder
|
||||||
|
{
|
||||||
|
protected _ErrorDescriptionBuilder() {}
|
||||||
|
public String toString(){ return null; }
|
||||||
|
public String toString(TemplateElement p0, boolean p1){ return null; }
|
||||||
|
public _ErrorDescriptionBuilder blame(Expression p0){ return null; }
|
||||||
|
public _ErrorDescriptionBuilder showBlamer(boolean p0){ return null; }
|
||||||
|
public _ErrorDescriptionBuilder template(Template p0){ return null; }
|
||||||
|
public _ErrorDescriptionBuilder tip(Object... p0){ return null; }
|
||||||
|
public _ErrorDescriptionBuilder tip(String p0){ return null; }
|
||||||
|
public _ErrorDescriptionBuilder tips(Object... p0){ return null; }
|
||||||
|
public _ErrorDescriptionBuilder(Object... p0){}
|
||||||
|
public _ErrorDescriptionBuilder(String p0){}
|
||||||
|
public static String toString(Object p0){ return null; }
|
||||||
|
public static String tryToString(Object p0){ return null; }
|
||||||
|
}
|
||||||
13
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/AttemptExceptionReporter.java
generated
Normal file
13
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/AttemptExceptionReporter.java
generated
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
// Generated automatically from freemarker.template.AttemptExceptionReporter for testing purposes
|
||||||
|
|
||||||
|
package freemarker.template;
|
||||||
|
|
||||||
|
import freemarker.core.Environment;
|
||||||
|
import freemarker.template.TemplateException;
|
||||||
|
|
||||||
|
public interface AttemptExceptionReporter
|
||||||
|
{
|
||||||
|
static AttemptExceptionReporter LOG_ERROR_REPORTER = null;
|
||||||
|
static AttemptExceptionReporter LOG_WARN_REPORTER = null;
|
||||||
|
void report(TemplateException p0, Environment p1);
|
||||||
|
}
|
||||||
253
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/Configuration.java
generated
Normal file
253
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/Configuration.java
generated
Normal file
@@ -0,0 +1,253 @@
|
|||||||
|
// Generated automatically from freemarker.template.Configuration for testing purposes
|
||||||
|
|
||||||
|
package freemarker.template;
|
||||||
|
|
||||||
|
import freemarker.cache.CacheStorage;
|
||||||
|
import freemarker.cache.TemplateConfigurationFactory;
|
||||||
|
import freemarker.cache.TemplateLoader;
|
||||||
|
import freemarker.cache.TemplateLookupStrategy;
|
||||||
|
import freemarker.cache.TemplateNameFormat;
|
||||||
|
import freemarker.core.Configurable;
|
||||||
|
import freemarker.core.Environment;
|
||||||
|
import freemarker.core.OutputFormat;
|
||||||
|
import freemarker.core.ParserConfiguration;
|
||||||
|
import freemarker.template.AttemptExceptionReporter;
|
||||||
|
import freemarker.template.ObjectWrapper;
|
||||||
|
import freemarker.template.Template;
|
||||||
|
import freemarker.template.TemplateExceptionHandler;
|
||||||
|
import freemarker.template.TemplateHashModelEx;
|
||||||
|
import freemarker.template.TemplateModel;
|
||||||
|
import freemarker.template.Version;
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.Locale;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.TimeZone;
|
||||||
|
|
||||||
|
public class Configuration extends Configurable implements Cloneable, ParserConfiguration
|
||||||
|
{
|
||||||
|
protected String getCorrectedNameForUnknownSetting(String p0){ return null; }
|
||||||
|
protected void doAutoImportsAndIncludes(Environment p0){}
|
||||||
|
public CacheStorage getCacheStorage(){ return null; }
|
||||||
|
public Collection<? extends OutputFormat> getRegisteredCustomOutputFormats(){ return null; }
|
||||||
|
public Configuration(){}
|
||||||
|
public Configuration(Version p0){}
|
||||||
|
public Object clone(){ return null; }
|
||||||
|
public OutputFormat getOutputFormat(){ return null; }
|
||||||
|
public OutputFormat getOutputFormat(String p0){ return null; }
|
||||||
|
public Set getSharedVariableNames(){ return null; }
|
||||||
|
public Set getSupportedBuiltInDirectiveNames(){ return null; }
|
||||||
|
public Set getSupportedBuiltInNames(){ return null; }
|
||||||
|
public Set<String> getSettingNames(boolean p0){ return null; }
|
||||||
|
public Set<String> getSupportedBuiltInDirectiveNames(int p0){ return null; }
|
||||||
|
public Set<String> getSupportedBuiltInNames(int p0){ return null; }
|
||||||
|
public String getDefaultEncoding(){ return null; }
|
||||||
|
public String getEncoding(Locale p0){ return null; }
|
||||||
|
public String getIncompatibleEnhancements(){ return null; }
|
||||||
|
public Template getTemplate(String p0){ return null; }
|
||||||
|
public Template getTemplate(String p0, Locale p1){ return null; }
|
||||||
|
public Template getTemplate(String p0, Locale p1, Object p2, String p3, boolean p4, boolean p5){ return null; }
|
||||||
|
public Template getTemplate(String p0, Locale p1, String p2){ return null; }
|
||||||
|
public Template getTemplate(String p0, Locale p1, String p2, boolean p3){ return null; }
|
||||||
|
public Template getTemplate(String p0, Locale p1, String p2, boolean p3, boolean p4){ return null; }
|
||||||
|
public Template getTemplate(String p0, String p1){ return null; }
|
||||||
|
public TemplateConfigurationFactory getTemplateConfigurations(){ return null; }
|
||||||
|
public TemplateLoader getTemplateLoader(){ return null; }
|
||||||
|
public TemplateLookupStrategy getTemplateLookupStrategy(){ return null; }
|
||||||
|
public TemplateModel getSharedVariable(String p0){ return null; }
|
||||||
|
public TemplateNameFormat getTemplateNameFormat(){ return null; }
|
||||||
|
public Version getIncompatibleImprovements(){ return null; }
|
||||||
|
public boolean getFallbackOnNullLoopVariable(){ return false; }
|
||||||
|
public boolean getLocalizedLookup(){ return false; }
|
||||||
|
public boolean getRecognizeStandardFileExtensions(){ return false; }
|
||||||
|
public boolean getStrictSyntaxMode(){ return false; }
|
||||||
|
public boolean getWhitespaceStripping(){ return false; }
|
||||||
|
public boolean isAttemptExceptionReporterExplicitlySet(){ return false; }
|
||||||
|
public boolean isCacheStorageExplicitlySet(){ return false; }
|
||||||
|
public boolean isDefaultEncodingExplicitlySet(){ return false; }
|
||||||
|
public boolean isLocaleExplicitlySet(){ return false; }
|
||||||
|
public boolean isLogTemplateExceptionsExplicitlySet(){ return false; }
|
||||||
|
public boolean isObjectWrapperExplicitlySet(){ return false; }
|
||||||
|
public boolean isOutputFormatExplicitlySet(){ return false; }
|
||||||
|
public boolean isRecognizeStandardFileExtensionsExplicitlySet(){ return false; }
|
||||||
|
public boolean isTemplateExceptionHandlerExplicitlySet(){ return false; }
|
||||||
|
public boolean isTemplateLoaderExplicitlySet(){ return false; }
|
||||||
|
public boolean isTemplateLookupStrategyExplicitlySet(){ return false; }
|
||||||
|
public boolean isTemplateNameFormatExplicitlySet(){ return false; }
|
||||||
|
public boolean isTimeZoneExplicitlySet(){ return false; }
|
||||||
|
public boolean isWrapUncheckedExceptionsExplicitlySet(){ return false; }
|
||||||
|
public int getAutoEscapingPolicy(){ return 0; }
|
||||||
|
public int getInterpolationSyntax(){ return 0; }
|
||||||
|
public int getNamingConvention(){ return 0; }
|
||||||
|
public int getParsedIncompatibleEnhancements(){ return 0; }
|
||||||
|
public int getTabSize(){ return 0; }
|
||||||
|
public int getTagSyntax(){ return 0; }
|
||||||
|
public long getTemplateUpdateDelayMilliseconds(){ return 0; }
|
||||||
|
public static Configuration getDefaultConfiguration(){ return null; }
|
||||||
|
public static ObjectWrapper getDefaultObjectWrapper(Version p0){ return null; }
|
||||||
|
public static String AUTO_ESCAPING_POLICY_KEY = null;
|
||||||
|
public static String AUTO_ESCAPING_POLICY_KEY_CAMEL_CASE = null;
|
||||||
|
public static String AUTO_ESCAPING_POLICY_KEY_SNAKE_CASE = null;
|
||||||
|
public static String AUTO_IMPORT_KEY = null;
|
||||||
|
public static String AUTO_IMPORT_KEY_CAMEL_CASE = null;
|
||||||
|
public static String AUTO_IMPORT_KEY_SNAKE_CASE = null;
|
||||||
|
public static String AUTO_INCLUDE_KEY = null;
|
||||||
|
public static String AUTO_INCLUDE_KEY_CAMEL_CASE = null;
|
||||||
|
public static String AUTO_INCLUDE_KEY_SNAKE_CASE = null;
|
||||||
|
public static String CACHE_STORAGE_KEY = null;
|
||||||
|
public static String CACHE_STORAGE_KEY_CAMEL_CASE = null;
|
||||||
|
public static String CACHE_STORAGE_KEY_SNAKE_CASE = null;
|
||||||
|
public static String DEFAULT_ENCODING_KEY = null;
|
||||||
|
public static String DEFAULT_ENCODING_KEY_CAMEL_CASE = null;
|
||||||
|
public static String DEFAULT_ENCODING_KEY_SNAKE_CASE = null;
|
||||||
|
public static String DEFAULT_INCOMPATIBLE_ENHANCEMENTS = null;
|
||||||
|
public static String FALLBACK_ON_NULL_LOOP_VARIABLE_KEY = null;
|
||||||
|
public static String FALLBACK_ON_NULL_LOOP_VARIABLE_KEY_CAMEL_CASE = null;
|
||||||
|
public static String FALLBACK_ON_NULL_LOOP_VARIABLE_KEY_SNAKE_CASE = null;
|
||||||
|
public static String INCOMPATIBLE_ENHANCEMENTS = null;
|
||||||
|
public static String INCOMPATIBLE_IMPROVEMENTS = null;
|
||||||
|
public static String INCOMPATIBLE_IMPROVEMENTS_KEY = null;
|
||||||
|
public static String INCOMPATIBLE_IMPROVEMENTS_KEY_CAMEL_CASE = null;
|
||||||
|
public static String INCOMPATIBLE_IMPROVEMENTS_KEY_SNAKE_CASE = null;
|
||||||
|
public static String INTERPOLATION_SYNTAX_KEY = null;
|
||||||
|
public static String INTERPOLATION_SYNTAX_KEY_CAMEL_CASE = null;
|
||||||
|
public static String INTERPOLATION_SYNTAX_KEY_SNAKE_CASE = null;
|
||||||
|
public static String LOCALIZED_LOOKUP_KEY = null;
|
||||||
|
public static String LOCALIZED_LOOKUP_KEY_CAMEL_CASE = null;
|
||||||
|
public static String LOCALIZED_LOOKUP_KEY_SNAKE_CASE = null;
|
||||||
|
public static String NAMING_CONVENTION_KEY = null;
|
||||||
|
public static String NAMING_CONVENTION_KEY_CAMEL_CASE = null;
|
||||||
|
public static String NAMING_CONVENTION_KEY_SNAKE_CASE = null;
|
||||||
|
public static String OUTPUT_FORMAT_KEY = null;
|
||||||
|
public static String OUTPUT_FORMAT_KEY_CAMEL_CASE = null;
|
||||||
|
public static String OUTPUT_FORMAT_KEY_SNAKE_CASE = null;
|
||||||
|
public static String RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY = null;
|
||||||
|
public static String RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY_CAMEL_CASE = null;
|
||||||
|
public static String RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY_SNAKE_CASE = null;
|
||||||
|
public static String REGISTERED_CUSTOM_OUTPUT_FORMATS_KEY = null;
|
||||||
|
public static String REGISTERED_CUSTOM_OUTPUT_FORMATS_KEY_CAMEL_CASE = null;
|
||||||
|
public static String REGISTERED_CUSTOM_OUTPUT_FORMATS_KEY_SNAKE_CASE = null;
|
||||||
|
public static String STRICT_SYNTAX_KEY = null;
|
||||||
|
public static String STRICT_SYNTAX_KEY_CAMEL_CASE = null;
|
||||||
|
public static String STRICT_SYNTAX_KEY_SNAKE_CASE = null;
|
||||||
|
public static String TAB_SIZE_KEY = null;
|
||||||
|
public static String TAB_SIZE_KEY_CAMEL_CASE = null;
|
||||||
|
public static String TAB_SIZE_KEY_SNAKE_CASE = null;
|
||||||
|
public static String TAG_SYNTAX_KEY = null;
|
||||||
|
public static String TAG_SYNTAX_KEY_CAMEL_CASE = null;
|
||||||
|
public static String TAG_SYNTAX_KEY_SNAKE_CASE = null;
|
||||||
|
public static String TEMPLATE_CONFIGURATIONS_KEY = null;
|
||||||
|
public static String TEMPLATE_CONFIGURATIONS_KEY_CAMEL_CASE = null;
|
||||||
|
public static String TEMPLATE_CONFIGURATIONS_KEY_SNAKE_CASE = null;
|
||||||
|
public static String TEMPLATE_LOADER_KEY = null;
|
||||||
|
public static String TEMPLATE_LOADER_KEY_CAMEL_CASE = null;
|
||||||
|
public static String TEMPLATE_LOADER_KEY_SNAKE_CASE = null;
|
||||||
|
public static String TEMPLATE_LOOKUP_STRATEGY_KEY = null;
|
||||||
|
public static String TEMPLATE_LOOKUP_STRATEGY_KEY_CAMEL_CASE = null;
|
||||||
|
public static String TEMPLATE_LOOKUP_STRATEGY_KEY_SNAKE_CASE = null;
|
||||||
|
public static String TEMPLATE_NAME_FORMAT_KEY = null;
|
||||||
|
public static String TEMPLATE_NAME_FORMAT_KEY_CAMEL_CASE = null;
|
||||||
|
public static String TEMPLATE_NAME_FORMAT_KEY_SNAKE_CASE = null;
|
||||||
|
public static String TEMPLATE_UPDATE_DELAY_KEY = null;
|
||||||
|
public static String TEMPLATE_UPDATE_DELAY_KEY_CAMEL_CASE = null;
|
||||||
|
public static String TEMPLATE_UPDATE_DELAY_KEY_SNAKE_CASE = null;
|
||||||
|
public static String WHITESPACE_STRIPPING_KEY = null;
|
||||||
|
public static String WHITESPACE_STRIPPING_KEY_CAMEL_CASE = null;
|
||||||
|
public static String WHITESPACE_STRIPPING_KEY_SNAKE_CASE = null;
|
||||||
|
public static String getVersionNumber(){ return null; }
|
||||||
|
public static Version DEFAULT_INCOMPATIBLE_IMPROVEMENTS = null;
|
||||||
|
public static Version VERSION_2_3_0 = null;
|
||||||
|
public static Version VERSION_2_3_19 = null;
|
||||||
|
public static Version VERSION_2_3_20 = null;
|
||||||
|
public static Version VERSION_2_3_21 = null;
|
||||||
|
public static Version VERSION_2_3_22 = null;
|
||||||
|
public static Version VERSION_2_3_23 = null;
|
||||||
|
public static Version VERSION_2_3_24 = null;
|
||||||
|
public static Version VERSION_2_3_25 = null;
|
||||||
|
public static Version VERSION_2_3_26 = null;
|
||||||
|
public static Version VERSION_2_3_27 = null;
|
||||||
|
public static Version VERSION_2_3_28 = null;
|
||||||
|
public static Version VERSION_2_3_29 = null;
|
||||||
|
public static Version VERSION_2_3_30 = null;
|
||||||
|
public static Version VERSION_2_3_31 = null;
|
||||||
|
public static Version getVersion(){ return null; }
|
||||||
|
public static int ANGLE_BRACKET_TAG_SYNTAX = 0;
|
||||||
|
public static int AUTO_DETECT_NAMING_CONVENTION = 0;
|
||||||
|
public static int AUTO_DETECT_TAG_SYNTAX = 0;
|
||||||
|
public static int CAMEL_CASE_NAMING_CONVENTION = 0;
|
||||||
|
public static int DISABLE_AUTO_ESCAPING_POLICY = 0;
|
||||||
|
public static int DOLLAR_INTERPOLATION_SYNTAX = 0;
|
||||||
|
public static int ENABLE_IF_DEFAULT_AUTO_ESCAPING_POLICY = 0;
|
||||||
|
public static int ENABLE_IF_SUPPORTED_AUTO_ESCAPING_POLICY = 0;
|
||||||
|
public static int LEGACY_INTERPOLATION_SYNTAX = 0;
|
||||||
|
public static int LEGACY_NAMING_CONVENTION = 0;
|
||||||
|
public static int PARSED_DEFAULT_INCOMPATIBLE_ENHANCEMENTS = 0;
|
||||||
|
public static int SQUARE_BRACKET_INTERPOLATION_SYNTAX = 0;
|
||||||
|
public static int SQUARE_BRACKET_TAG_SYNTAX = 0;
|
||||||
|
public static void setDefaultConfiguration(Configuration p0){}
|
||||||
|
public void clearEncodingMap(){}
|
||||||
|
public void clearSharedVariables(){}
|
||||||
|
public void clearTemplateCache(){}
|
||||||
|
public void loadBuiltInEncodingMap(){}
|
||||||
|
public void removeTemplateFromCache(String p0){}
|
||||||
|
public void removeTemplateFromCache(String p0, Locale p1){}
|
||||||
|
public void removeTemplateFromCache(String p0, Locale p1, Object p2, String p3, boolean p4){}
|
||||||
|
public void removeTemplateFromCache(String p0, Locale p1, String p2){}
|
||||||
|
public void removeTemplateFromCache(String p0, Locale p1, String p2, boolean p3){}
|
||||||
|
public void removeTemplateFromCache(String p0, String p1){}
|
||||||
|
public void setAllSharedVariables(TemplateHashModelEx p0){}
|
||||||
|
public void setAttemptExceptionReporter(AttemptExceptionReporter p0){}
|
||||||
|
public void setAutoEscapingPolicy(int p0){}
|
||||||
|
public void setCacheStorage(CacheStorage p0){}
|
||||||
|
public void setClassForTemplateLoading(Class p0, String p1){}
|
||||||
|
public void setClassLoaderForTemplateLoading(ClassLoader p0, String p1){}
|
||||||
|
public void setDefaultEncoding(String p0){}
|
||||||
|
public void setDirectoryForTemplateLoading(File p0){}
|
||||||
|
public void setEncoding(Locale p0, String p1){}
|
||||||
|
public void setFallbackOnNullLoopVariable(boolean p0){}
|
||||||
|
public void setIncompatibleEnhancements(String p0){}
|
||||||
|
public void setIncompatibleImprovements(Version p0){}
|
||||||
|
public void setInterpolationSyntax(int p0){}
|
||||||
|
public void setLocale(Locale p0){}
|
||||||
|
public void setLocalizedLookup(boolean p0){}
|
||||||
|
public void setLogTemplateExceptions(boolean p0){}
|
||||||
|
public void setNamingConvention(int p0){}
|
||||||
|
public void setObjectWrapper(ObjectWrapper p0){}
|
||||||
|
public void setOutputFormat(OutputFormat p0){}
|
||||||
|
public void setRecognizeStandardFileExtensions(boolean p0){}
|
||||||
|
public void setRegisteredCustomOutputFormats(Collection<? extends OutputFormat> p0){}
|
||||||
|
public void setServletContextForTemplateLoading(Object p0, String p1){}
|
||||||
|
public void setSetting(String p0, String p1){}
|
||||||
|
public void setSharedVariable(String p0, Object p1){}
|
||||||
|
public void setSharedVariable(String p0, TemplateModel p1){}
|
||||||
|
public void setSharedVariables(Map<String, ? extends Object> p0){}
|
||||||
|
public void setSharedVaribles(Map p0){}
|
||||||
|
public void setStrictSyntaxMode(boolean p0){}
|
||||||
|
public void setTabSize(int p0){}
|
||||||
|
public void setTagSyntax(int p0){}
|
||||||
|
public void setTemplateConfigurations(TemplateConfigurationFactory p0){}
|
||||||
|
public void setTemplateExceptionHandler(TemplateExceptionHandler p0){}
|
||||||
|
public void setTemplateLoader(TemplateLoader p0){}
|
||||||
|
public void setTemplateLookupStrategy(TemplateLookupStrategy p0){}
|
||||||
|
public void setTemplateNameFormat(TemplateNameFormat p0){}
|
||||||
|
public void setTemplateUpdateDelay(int p0){}
|
||||||
|
public void setTemplateUpdateDelayMilliseconds(long p0){}
|
||||||
|
public void setTimeZone(TimeZone p0){}
|
||||||
|
public void setWhitespaceStripping(boolean p0){}
|
||||||
|
public void setWrapUncheckedExceptions(boolean p0){}
|
||||||
|
public void unsetAttemptExceptionReporter(){}
|
||||||
|
public void unsetCacheStorage(){}
|
||||||
|
public void unsetDefaultEncoding(){}
|
||||||
|
public void unsetLocale(){}
|
||||||
|
public void unsetLogTemplateExceptions(){}
|
||||||
|
public void unsetObjectWrapper(){}
|
||||||
|
public void unsetOutputFormat(){}
|
||||||
|
public void unsetRecognizeStandardFileExtensions(){}
|
||||||
|
public void unsetTemplateExceptionHandler(){}
|
||||||
|
public void unsetTemplateLoader(){}
|
||||||
|
public void unsetTemplateLookupStrategy(){}
|
||||||
|
public void unsetTemplateNameFormat(){}
|
||||||
|
public void unsetTimeZone(){}
|
||||||
|
public void unsetWrapUncheckedExceptions(){}
|
||||||
|
}
|
||||||
13
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/ObjectWrapper.java
generated
Normal file
13
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/ObjectWrapper.java
generated
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
// Generated automatically from freemarker.template.ObjectWrapper for testing purposes
|
||||||
|
|
||||||
|
package freemarker.template;
|
||||||
|
|
||||||
|
import freemarker.template.TemplateModel;
|
||||||
|
|
||||||
|
public interface ObjectWrapper
|
||||||
|
{
|
||||||
|
TemplateModel wrap(Object p0);
|
||||||
|
static ObjectWrapper BEANS_WRAPPER = null;
|
||||||
|
static ObjectWrapper DEFAULT_WRAPPER = null;
|
||||||
|
static ObjectWrapper SIMPLE_WRAPPER = null;
|
||||||
|
}
|
||||||
35
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/SimpleHash.java
generated
Normal file
35
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/SimpleHash.java
generated
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
// Generated automatically from freemarker.template.SimpleHash for testing purposes
|
||||||
|
|
||||||
|
package freemarker.template;
|
||||||
|
|
||||||
|
import freemarker.template.ObjectWrapper;
|
||||||
|
import freemarker.template.TemplateCollectionModel;
|
||||||
|
import freemarker.template.TemplateHashModelEx2;
|
||||||
|
import freemarker.template.TemplateModel;
|
||||||
|
import freemarker.template.WrappingTemplateModel;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class SimpleHash extends WrappingTemplateModel implements Serializable, TemplateHashModelEx2
|
||||||
|
{
|
||||||
|
protected Map copyMap(Map p0){ return null; }
|
||||||
|
public Map toMap(){ return null; }
|
||||||
|
public SimpleHash synchronizedWrapper(){ return null; }
|
||||||
|
public SimpleHash(){}
|
||||||
|
public SimpleHash(Map p0){}
|
||||||
|
public SimpleHash(Map p0, ObjectWrapper p1){}
|
||||||
|
public SimpleHash(Map<String, Object> p0, ObjectWrapper p1, int p2){}
|
||||||
|
public SimpleHash(ObjectWrapper p0){}
|
||||||
|
public String toString(){ return null; }
|
||||||
|
public TemplateCollectionModel keys(){ return null; }
|
||||||
|
public TemplateCollectionModel values(){ return null; }
|
||||||
|
public TemplateHashModelEx2.KeyValuePairIterator keyValuePairIterator(){ return null; }
|
||||||
|
public TemplateModel get(String p0){ return null; }
|
||||||
|
public boolean containsKey(String p0){ return false; }
|
||||||
|
public boolean isEmpty(){ return false; }
|
||||||
|
public int size(){ return 0; }
|
||||||
|
public void put(String p0, Object p1){}
|
||||||
|
public void put(String p0, boolean p1){}
|
||||||
|
public void putAll(Map p0){}
|
||||||
|
public void remove(String p0){}
|
||||||
|
}
|
||||||
69
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/Template.java
generated
Normal file
69
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/Template.java
generated
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
// Generated automatically from freemarker.template.Template for testing purposes
|
||||||
|
|
||||||
|
package freemarker.template;
|
||||||
|
|
||||||
|
import freemarker.core.Configurable;
|
||||||
|
import freemarker.core.Environment;
|
||||||
|
import freemarker.core.LibraryLoad;
|
||||||
|
import freemarker.core.Macro;
|
||||||
|
import freemarker.core.OutputFormat;
|
||||||
|
import freemarker.core.ParserConfiguration;
|
||||||
|
import freemarker.core.TemplateElement;
|
||||||
|
import freemarker.template.Configuration;
|
||||||
|
import freemarker.template.ObjectWrapper;
|
||||||
|
import freemarker.template.TemplateNodeModel;
|
||||||
|
import java.io.PrintStream;
|
||||||
|
import java.io.Reader;
|
||||||
|
import java.io.Writer;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import javax.swing.tree.TreePath;
|
||||||
|
|
||||||
|
public class Template extends Configurable
|
||||||
|
{
|
||||||
|
protected Template() {}
|
||||||
|
public Configuration getConfiguration(){ return null; }
|
||||||
|
public Environment createProcessingEnvironment(Object p0, Writer p1){ return null; }
|
||||||
|
public Environment createProcessingEnvironment(Object p0, Writer p1, ObjectWrapper p2){ return null; }
|
||||||
|
public List getImports(){ return null; }
|
||||||
|
public Map getMacros(){ return null; }
|
||||||
|
public Object getCustomLookupCondition(){ return null; }
|
||||||
|
public OutputFormat getOutputFormat(){ return null; }
|
||||||
|
public ParserConfiguration getParserConfiguration(){ return null; }
|
||||||
|
public String getDefaultNS(){ return null; }
|
||||||
|
public String getEncoding(){ return null; }
|
||||||
|
public String getName(){ return null; }
|
||||||
|
public String getNamespaceForPrefix(String p0){ return null; }
|
||||||
|
public String getPrefixForNamespace(String p0){ return null; }
|
||||||
|
public String getPrefixedName(String p0, String p1){ return null; }
|
||||||
|
public String getSource(int p0, int p1, int p2, int p3){ return null; }
|
||||||
|
public String getSourceName(){ return null; }
|
||||||
|
public String toString(){ return null; }
|
||||||
|
public Template(String p0, Reader p1){}
|
||||||
|
public Template(String p0, Reader p1, Configuration p2){}
|
||||||
|
public Template(String p0, Reader p1, Configuration p2, String p3){}
|
||||||
|
public Template(String p0, String p1, Configuration p2){}
|
||||||
|
public Template(String p0, String p1, Reader p2, Configuration p3){}
|
||||||
|
public Template(String p0, String p1, Reader p2, Configuration p3, ParserConfiguration p4, String p5){}
|
||||||
|
public Template(String p0, String p1, Reader p2, Configuration p3, String p4){}
|
||||||
|
public TemplateElement getRootTreeNode(){ return null; }
|
||||||
|
public TreePath containingElements(int p0, int p1){ return null; }
|
||||||
|
public boolean getAutoEscaping(){ return false; }
|
||||||
|
public int getActualNamingConvention(){ return 0; }
|
||||||
|
public int getActualTagSyntax(){ return 0; }
|
||||||
|
public int getInterpolationSyntax(){ return 0; }
|
||||||
|
public static String DEFAULT_NAMESPACE_PREFIX = null;
|
||||||
|
public static String NO_NS_PREFIX = null;
|
||||||
|
public static Template getPlainTextTemplate(String p0, String p1, Configuration p2){ return null; }
|
||||||
|
public static Template getPlainTextTemplate(String p0, String p1, String p2, Configuration p3){ return null; }
|
||||||
|
public void addImport(LibraryLoad p0){}
|
||||||
|
public void addMacro(Macro p0){}
|
||||||
|
public void addPrefixNSMapping(String p0, String p1){}
|
||||||
|
public void dump(PrintStream p0){}
|
||||||
|
public void dump(Writer p0){}
|
||||||
|
public void process(Object p0, Writer p1){}
|
||||||
|
public void process(Object p0, Writer p1, ObjectWrapper p2){}
|
||||||
|
public void process(Object p0, Writer p1, ObjectWrapper p2, TemplateNodeModel p3){}
|
||||||
|
public void setCustomLookupCondition(Object p0){}
|
||||||
|
public void setEncoding(String p0){}
|
||||||
|
}
|
||||||
11
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/TemplateCollectionModel.java
generated
Normal file
11
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/TemplateCollectionModel.java
generated
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
// Generated automatically from freemarker.template.TemplateCollectionModel for testing purposes
|
||||||
|
|
||||||
|
package freemarker.template;
|
||||||
|
|
||||||
|
import freemarker.template.TemplateModel;
|
||||||
|
import freemarker.template.TemplateModelIterator;
|
||||||
|
|
||||||
|
public interface TemplateCollectionModel extends TemplateModel
|
||||||
|
{
|
||||||
|
TemplateModelIterator iterator();
|
||||||
|
}
|
||||||
18
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/TemplateDateModel.java
generated
Normal file
18
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/TemplateDateModel.java
generated
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
// Generated automatically from freemarker.template.TemplateDateModel for testing purposes
|
||||||
|
|
||||||
|
package freemarker.template;
|
||||||
|
|
||||||
|
import freemarker.template.TemplateModel;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface TemplateDateModel extends TemplateModel
|
||||||
|
{
|
||||||
|
Date getAsDate();
|
||||||
|
int getDateType();
|
||||||
|
static List TYPE_NAMES = null;
|
||||||
|
static int DATE = 0;
|
||||||
|
static int DATETIME = 0;
|
||||||
|
static int TIME = 0;
|
||||||
|
static int UNKNOWN = 0;
|
||||||
|
}
|
||||||
10
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/TemplateDirectiveBody.java
generated
Normal file
10
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/TemplateDirectiveBody.java
generated
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
// Generated automatically from freemarker.template.TemplateDirectiveBody for testing purposes
|
||||||
|
|
||||||
|
package freemarker.template;
|
||||||
|
|
||||||
|
import java.io.Writer;
|
||||||
|
|
||||||
|
public interface TemplateDirectiveBody
|
||||||
|
{
|
||||||
|
void render(Writer p0);
|
||||||
|
}
|
||||||
13
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/TemplateDirectiveModel.java
generated
Normal file
13
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/TemplateDirectiveModel.java
generated
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
// Generated automatically from freemarker.template.TemplateDirectiveModel for testing purposes
|
||||||
|
|
||||||
|
package freemarker.template;
|
||||||
|
|
||||||
|
import freemarker.core.Environment;
|
||||||
|
import freemarker.template.TemplateDirectiveBody;
|
||||||
|
import freemarker.template.TemplateModel;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public interface TemplateDirectiveModel extends TemplateModel
|
||||||
|
{
|
||||||
|
void execute(Environment p0, Map p1, TemplateModel[] p2, TemplateDirectiveBody p3);
|
||||||
|
}
|
||||||
39
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/TemplateException.java
generated
Normal file
39
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/TemplateException.java
generated
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
// Generated automatically from freemarker.template.TemplateException for testing purposes
|
||||||
|
|
||||||
|
package freemarker.template;
|
||||||
|
|
||||||
|
import freemarker.core.Environment;
|
||||||
|
import freemarker.core.Expression;
|
||||||
|
import freemarker.core._ErrorDescriptionBuilder;
|
||||||
|
import java.io.PrintStream;
|
||||||
|
import java.io.PrintWriter;
|
||||||
|
|
||||||
|
public class TemplateException extends Exception
|
||||||
|
{
|
||||||
|
protected TemplateException() {}
|
||||||
|
protected TemplateException(Throwable p0, Environment p1, Expression p2, _ErrorDescriptionBuilder p3){}
|
||||||
|
public Environment getEnvironment(){ return null; }
|
||||||
|
public Exception getCauseException(){ return null; }
|
||||||
|
public Integer getColumnNumber(){ return null; }
|
||||||
|
public Integer getEndColumnNumber(){ return null; }
|
||||||
|
public Integer getEndLineNumber(){ return null; }
|
||||||
|
public Integer getLineNumber(){ return null; }
|
||||||
|
public String getBlamedExpressionString(){ return null; }
|
||||||
|
public String getFTLInstructionStack(){ return null; }
|
||||||
|
public String getMessage(){ return null; }
|
||||||
|
public String getMessageWithoutStackTop(){ return null; }
|
||||||
|
public String getTemplateName(){ return null; }
|
||||||
|
public String getTemplateSourceName(){ return null; }
|
||||||
|
public TemplateException(Environment p0){}
|
||||||
|
public TemplateException(Exception p0, Environment p1){}
|
||||||
|
public TemplateException(String p0, Environment p1){}
|
||||||
|
public TemplateException(String p0, Exception p1, Environment p2){}
|
||||||
|
public TemplateException(String p0, Throwable p1, Environment p2){}
|
||||||
|
public TemplateException(Throwable p0, Environment p1){}
|
||||||
|
public void printStackTrace(PrintStream p0){}
|
||||||
|
public void printStackTrace(PrintStream p0, boolean p1, boolean p2, boolean p3){}
|
||||||
|
public void printStackTrace(PrintWriter p0){}
|
||||||
|
public void printStackTrace(PrintWriter p0, boolean p1, boolean p2, boolean p3){}
|
||||||
|
public void printStandardStackTrace(PrintStream p0){}
|
||||||
|
public void printStandardStackTrace(PrintWriter p0){}
|
||||||
|
}
|
||||||
16
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/TemplateExceptionHandler.java
generated
Normal file
16
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/TemplateExceptionHandler.java
generated
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
// Generated automatically from freemarker.template.TemplateExceptionHandler for testing purposes
|
||||||
|
|
||||||
|
package freemarker.template;
|
||||||
|
|
||||||
|
import freemarker.core.Environment;
|
||||||
|
import freemarker.template.TemplateException;
|
||||||
|
import java.io.Writer;
|
||||||
|
|
||||||
|
public interface TemplateExceptionHandler
|
||||||
|
{
|
||||||
|
static TemplateExceptionHandler DEBUG_HANDLER = null;
|
||||||
|
static TemplateExceptionHandler HTML_DEBUG_HANDLER = null;
|
||||||
|
static TemplateExceptionHandler IGNORE_HANDLER = null;
|
||||||
|
static TemplateExceptionHandler RETHROW_HANDLER = null;
|
||||||
|
void handleTemplateException(TemplateException p0, Environment p1, Writer p2);
|
||||||
|
}
|
||||||
11
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/TemplateHashModel.java
generated
Normal file
11
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/TemplateHashModel.java
generated
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
// Generated automatically from freemarker.template.TemplateHashModel for testing purposes
|
||||||
|
|
||||||
|
package freemarker.template;
|
||||||
|
|
||||||
|
import freemarker.template.TemplateModel;
|
||||||
|
|
||||||
|
public interface TemplateHashModel extends TemplateModel
|
||||||
|
{
|
||||||
|
TemplateModel get(String p0);
|
||||||
|
boolean isEmpty();
|
||||||
|
}
|
||||||
13
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/TemplateHashModelEx.java
generated
Normal file
13
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/TemplateHashModelEx.java
generated
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
// Generated automatically from freemarker.template.TemplateHashModelEx for testing purposes
|
||||||
|
|
||||||
|
package freemarker.template;
|
||||||
|
|
||||||
|
import freemarker.template.TemplateCollectionModel;
|
||||||
|
import freemarker.template.TemplateHashModel;
|
||||||
|
|
||||||
|
public interface TemplateHashModelEx extends TemplateHashModel
|
||||||
|
{
|
||||||
|
TemplateCollectionModel keys();
|
||||||
|
TemplateCollectionModel values();
|
||||||
|
int size();
|
||||||
|
}
|
||||||
21
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/TemplateHashModelEx2.java
generated
Normal file
21
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/TemplateHashModelEx2.java
generated
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
// Generated automatically from freemarker.template.TemplateHashModelEx2 for testing purposes
|
||||||
|
|
||||||
|
package freemarker.template;
|
||||||
|
|
||||||
|
import freemarker.template.TemplateHashModelEx;
|
||||||
|
import freemarker.template.TemplateModel;
|
||||||
|
|
||||||
|
public interface TemplateHashModelEx2 extends TemplateHashModelEx
|
||||||
|
{
|
||||||
|
TemplateHashModelEx2.KeyValuePairIterator keyValuePairIterator();
|
||||||
|
static public interface KeyValuePair
|
||||||
|
{
|
||||||
|
TemplateModel getKey();
|
||||||
|
TemplateModel getValue();
|
||||||
|
}
|
||||||
|
static public interface KeyValuePairIterator
|
||||||
|
{
|
||||||
|
TemplateHashModelEx2.KeyValuePair next();
|
||||||
|
boolean hasNext();
|
||||||
|
}
|
||||||
|
}
|
||||||
9
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/TemplateModel.java
generated
Normal file
9
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/TemplateModel.java
generated
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
// Generated automatically from freemarker.template.TemplateModel for testing purposes
|
||||||
|
|
||||||
|
package freemarker.template;
|
||||||
|
|
||||||
|
|
||||||
|
public interface TemplateModel
|
||||||
|
{
|
||||||
|
static TemplateModel NOTHING = null;
|
||||||
|
}
|
||||||
11
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/TemplateModelIterator.java
generated
Normal file
11
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/TemplateModelIterator.java
generated
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
// Generated automatically from freemarker.template.TemplateModelIterator for testing purposes
|
||||||
|
|
||||||
|
package freemarker.template;
|
||||||
|
|
||||||
|
import freemarker.template.TemplateModel;
|
||||||
|
|
||||||
|
public interface TemplateModelIterator
|
||||||
|
{
|
||||||
|
TemplateModel next();
|
||||||
|
boolean hasNext();
|
||||||
|
}
|
||||||
15
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/TemplateNodeModel.java
generated
Normal file
15
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/TemplateNodeModel.java
generated
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
// Generated automatically from freemarker.template.TemplateNodeModel for testing purposes
|
||||||
|
|
||||||
|
package freemarker.template;
|
||||||
|
|
||||||
|
import freemarker.template.TemplateModel;
|
||||||
|
import freemarker.template.TemplateSequenceModel;
|
||||||
|
|
||||||
|
public interface TemplateNodeModel extends TemplateModel
|
||||||
|
{
|
||||||
|
String getNodeName();
|
||||||
|
String getNodeNamespace();
|
||||||
|
String getNodeType();
|
||||||
|
TemplateNodeModel getParentNode();
|
||||||
|
TemplateSequenceModel getChildNodes();
|
||||||
|
}
|
||||||
10
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/TemplateNumberModel.java
generated
Normal file
10
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/TemplateNumberModel.java
generated
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
// Generated automatically from freemarker.template.TemplateNumberModel for testing purposes
|
||||||
|
|
||||||
|
package freemarker.template;
|
||||||
|
|
||||||
|
import freemarker.template.TemplateModel;
|
||||||
|
|
||||||
|
public interface TemplateNumberModel extends TemplateModel
|
||||||
|
{
|
||||||
|
Number getAsNumber();
|
||||||
|
}
|
||||||
11
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/TemplateScalarModel.java
generated
Normal file
11
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/TemplateScalarModel.java
generated
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
// Generated automatically from freemarker.template.TemplateScalarModel for testing purposes
|
||||||
|
|
||||||
|
package freemarker.template;
|
||||||
|
|
||||||
|
import freemarker.template.TemplateModel;
|
||||||
|
|
||||||
|
public interface TemplateScalarModel extends TemplateModel
|
||||||
|
{
|
||||||
|
String getAsString();
|
||||||
|
static TemplateModel EMPTY_STRING = null;
|
||||||
|
}
|
||||||
11
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/TemplateSequenceModel.java
generated
Normal file
11
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/TemplateSequenceModel.java
generated
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
// Generated automatically from freemarker.template.TemplateSequenceModel for testing purposes
|
||||||
|
|
||||||
|
package freemarker.template;
|
||||||
|
|
||||||
|
import freemarker.template.TemplateModel;
|
||||||
|
|
||||||
|
public interface TemplateSequenceModel extends TemplateModel
|
||||||
|
{
|
||||||
|
TemplateModel get(int p0);
|
||||||
|
int size();
|
||||||
|
}
|
||||||
27
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/Version.java
generated
Normal file
27
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/Version.java
generated
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
// Generated automatically from freemarker.template.Version for testing purposes
|
||||||
|
|
||||||
|
package freemarker.template;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
public class Version implements Serializable
|
||||||
|
{
|
||||||
|
protected Version() {}
|
||||||
|
public Boolean isGAECompliant(){ return null; }
|
||||||
|
public Date getBuildDate(){ return null; }
|
||||||
|
public String getExtraInfo(){ return null; }
|
||||||
|
public String toString(){ return null; }
|
||||||
|
public Version(String p0){}
|
||||||
|
public Version(String p0, Boolean p1, Date p2){}
|
||||||
|
public Version(int p0){}
|
||||||
|
public Version(int p0, int p1, int p2){}
|
||||||
|
public Version(int p0, int p1, int p2, String p3, Boolean p4, Date p5){}
|
||||||
|
public boolean equals(Object p0){ return false; }
|
||||||
|
public int getMajor(){ return 0; }
|
||||||
|
public int getMicro(){ return 0; }
|
||||||
|
public int getMinor(){ return 0; }
|
||||||
|
public int hashCode(){ return 0; }
|
||||||
|
public int intValue(){ return 0; }
|
||||||
|
public static int intValueFor(int p0, int p1, int p2){ return 0; }
|
||||||
|
}
|
||||||
17
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/WrappingTemplateModel.java
generated
Normal file
17
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/WrappingTemplateModel.java
generated
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
// Generated automatically from freemarker.template.WrappingTemplateModel for testing purposes
|
||||||
|
|
||||||
|
package freemarker.template;
|
||||||
|
|
||||||
|
import freemarker.template.ObjectWrapper;
|
||||||
|
import freemarker.template.TemplateModel;
|
||||||
|
|
||||||
|
abstract public class WrappingTemplateModel
|
||||||
|
{
|
||||||
|
protected WrappingTemplateModel(){}
|
||||||
|
protected WrappingTemplateModel(ObjectWrapper p0){}
|
||||||
|
protected final TemplateModel wrap(Object p0){ return null; }
|
||||||
|
public ObjectWrapper getObjectWrapper(){ return null; }
|
||||||
|
public static ObjectWrapper getDefaultObjectWrapper(){ return null; }
|
||||||
|
public static void setDefaultObjectWrapper(ObjectWrapper p0){}
|
||||||
|
public void setObjectWrapper(ObjectWrapper p0){}
|
||||||
|
}
|
||||||
9
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/utility/ObjectFactory.java
generated
Normal file
9
java/ql/test/stubs/apache-freemarker-2.3.31/freemarker/template/utility/ObjectFactory.java
generated
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
// Generated automatically from freemarker.template.utility.ObjectFactory for testing purposes
|
||||||
|
|
||||||
|
package freemarker.template.utility;
|
||||||
|
|
||||||
|
|
||||||
|
public interface ObjectFactory<T>
|
||||||
|
{
|
||||||
|
T createObject();
|
||||||
|
}
|
||||||
19
java/ql/test/stubs/apache-velocity-2.3/org/apache/velocity/Template.java
generated
Normal file
19
java/ql/test/stubs/apache-velocity-2.3/org/apache/velocity/Template.java
generated
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
// Generated automatically from org.apache.velocity.Template for testing purposes
|
||||||
|
|
||||||
|
package org.apache.velocity;
|
||||||
|
|
||||||
|
import java.io.Writer;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import org.apache.velocity.context.Context;
|
||||||
|
import org.apache.velocity.runtime.resource.Resource;
|
||||||
|
|
||||||
|
public class Template extends Resource
|
||||||
|
{
|
||||||
|
public Map<String, Object> getMacros(){ return null; }
|
||||||
|
public Template(){}
|
||||||
|
public boolean process(){ return false; }
|
||||||
|
public void initDocument(){}
|
||||||
|
public void merge(Context p0, Writer p1){}
|
||||||
|
public void merge(Context p0, Writer p1, List<String> p2){}
|
||||||
|
}
|
||||||
22
java/ql/test/stubs/apache-velocity-2.3/org/apache/velocity/VelocityContext.java
generated
Normal file
22
java/ql/test/stubs/apache-velocity-2.3/org/apache/velocity/VelocityContext.java
generated
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
// Generated automatically from org.apache.velocity.VelocityContext for testing purposes
|
||||||
|
|
||||||
|
package org.apache.velocity;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Map;
|
||||||
|
import org.apache.velocity.context.AbstractContext;
|
||||||
|
import org.apache.velocity.context.Context;
|
||||||
|
|
||||||
|
public class VelocityContext extends AbstractContext implements Cloneable, Serializable
|
||||||
|
{
|
||||||
|
public Object clone(){ return null; }
|
||||||
|
public Object internalGet(String p0){ return null; }
|
||||||
|
public Object internalPut(String p0, Object p1){ return null; }
|
||||||
|
public Object internalRemove(String p0){ return null; }
|
||||||
|
public String[] internalGetKeys(){ return null; }
|
||||||
|
public VelocityContext(){}
|
||||||
|
public VelocityContext(Context p0){}
|
||||||
|
public VelocityContext(Map<String, Object> p0){}
|
||||||
|
public VelocityContext(Map<String, Object> p0, Context p1){}
|
||||||
|
public boolean internalContainsKey(String p0){ return false; }
|
||||||
|
}
|
||||||
36
java/ql/test/stubs/apache-velocity-2.3/org/apache/velocity/app/Velocity.java
generated
Normal file
36
java/ql/test/stubs/apache-velocity-2.3/org/apache/velocity/app/Velocity.java
generated
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
// Generated automatically from org.apache.velocity.app.Velocity for testing purposes
|
||||||
|
|
||||||
|
package org.apache.velocity.app;
|
||||||
|
|
||||||
|
import java.io.Reader;
|
||||||
|
import java.io.Writer;
|
||||||
|
import java.util.Properties;
|
||||||
|
import org.apache.velocity.Template;
|
||||||
|
import org.apache.velocity.context.Context;
|
||||||
|
import org.apache.velocity.runtime.RuntimeConstants;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
|
||||||
|
public class Velocity implements RuntimeConstants
|
||||||
|
{
|
||||||
|
public Velocity(){}
|
||||||
|
public static Logger getLog(){ return null; }
|
||||||
|
public static Object getProperty(String p0){ return null; }
|
||||||
|
public static Template getTemplate(String p0){ return null; }
|
||||||
|
public static Template getTemplate(String p0, String p1){ return null; }
|
||||||
|
public static boolean evaluate(Context p0, Writer p1, String p2, Reader p3){ return false; }
|
||||||
|
public static boolean evaluate(Context p0, Writer p1, String p2, String p3){ return false; }
|
||||||
|
public static boolean invokeVelocimacro(String p0, String p1, String[] p2, Context p3, Writer p4){ return false; }
|
||||||
|
public static boolean mergeTemplate(String p0, String p1, Context p2, Writer p3){ return false; }
|
||||||
|
public static boolean resourceExists(String p0){ return false; }
|
||||||
|
public static void addProperty(String p0, Object p1){}
|
||||||
|
public static void clearProperty(String p0){}
|
||||||
|
public static void init(){}
|
||||||
|
public static void init(Properties p0){}
|
||||||
|
public static void init(String p0){}
|
||||||
|
public static void reset(){}
|
||||||
|
public static void setApplicationAttribute(Object p0, Object p1){}
|
||||||
|
public static void setProperties(Properties p0){}
|
||||||
|
public static void setProperty(String p0, Object p1){}
|
||||||
|
public void loadDirective(String p0){}
|
||||||
|
public void removeDirective(String p0){}
|
||||||
|
}
|
||||||
40
java/ql/test/stubs/apache-velocity-2.3/org/apache/velocity/app/VelocityEngine.java
generated
Normal file
40
java/ql/test/stubs/apache-velocity-2.3/org/apache/velocity/app/VelocityEngine.java
generated
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
// Generated automatically from org.apache.velocity.app.VelocityEngine for testing purposes
|
||||||
|
|
||||||
|
package org.apache.velocity.app;
|
||||||
|
|
||||||
|
import java.io.Reader;
|
||||||
|
import java.io.Writer;
|
||||||
|
import java.util.Properties;
|
||||||
|
import org.apache.velocity.Template;
|
||||||
|
import org.apache.velocity.context.Context;
|
||||||
|
import org.apache.velocity.runtime.RuntimeConstants;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
|
||||||
|
public class VelocityEngine implements RuntimeConstants
|
||||||
|
{
|
||||||
|
public Logger getLog(){ return null; }
|
||||||
|
public Object getApplicationAttribute(Object p0){ return null; }
|
||||||
|
public Object getProperty(String p0){ return null; }
|
||||||
|
public Template getTemplate(String p0){ return null; }
|
||||||
|
public Template getTemplate(String p0, String p1){ return null; }
|
||||||
|
public VelocityEngine(){}
|
||||||
|
public VelocityEngine(Properties p0){}
|
||||||
|
public VelocityEngine(String p0){}
|
||||||
|
public boolean evaluate(Context p0, Writer p1, String p2, Reader p3){ return false; }
|
||||||
|
public boolean evaluate(Context p0, Writer p1, String p2, String p3){ return false; }
|
||||||
|
public boolean invokeVelocimacro(String p0, String p1, String[] p2, Context p3, Writer p4){ return false; }
|
||||||
|
public boolean mergeTemplate(String p0, String p1, Context p2, Writer p3){ return false; }
|
||||||
|
public boolean resourceExists(String p0){ return false; }
|
||||||
|
public void addProperty(String p0, Object p1){}
|
||||||
|
public void clearProperty(String p0){}
|
||||||
|
public void init(){}
|
||||||
|
public void init(Properties p0){}
|
||||||
|
public void init(String p0){}
|
||||||
|
public void loadDirective(String p0){}
|
||||||
|
public void removeDirective(String p0){}
|
||||||
|
public void reset(){}
|
||||||
|
public void setApplicationAttribute(Object p0, Object p1){}
|
||||||
|
public void setProperties(Properties p0){}
|
||||||
|
public void setProperties(String p0){}
|
||||||
|
public void setProperty(String p0, Object p1){}
|
||||||
|
}
|
||||||
35
java/ql/test/stubs/apache-velocity-2.3/org/apache/velocity/app/event/EventCartridge.java
generated
Normal file
35
java/ql/test/stubs/apache-velocity-2.3/org/apache/velocity/app/event/EventCartridge.java
generated
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
// Generated automatically from org.apache.velocity.app.event.EventCartridge for testing purposes
|
||||||
|
|
||||||
|
package org.apache.velocity.app.event;
|
||||||
|
|
||||||
|
import org.apache.velocity.app.event.EventHandler;
|
||||||
|
import org.apache.velocity.app.event.IncludeEventHandler;
|
||||||
|
import org.apache.velocity.app.event.InvalidReferenceEventHandler;
|
||||||
|
import org.apache.velocity.app.event.MethodExceptionEventHandler;
|
||||||
|
import org.apache.velocity.app.event.ReferenceInsertionEventHandler;
|
||||||
|
import org.apache.velocity.context.Context;
|
||||||
|
import org.apache.velocity.context.InternalContextAdapter;
|
||||||
|
import org.apache.velocity.runtime.RuntimeServices;
|
||||||
|
import org.apache.velocity.util.introspection.Info;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
|
||||||
|
public class EventCartridge
|
||||||
|
{
|
||||||
|
protected Logger getLog(){ return null; }
|
||||||
|
protected RuntimeServices rsvc = null;
|
||||||
|
public EventCartridge(){}
|
||||||
|
public Object invalidGetMethod(Context p0, String p1, Object p2, String p3, Info p4){ return null; }
|
||||||
|
public Object invalidMethod(Context p0, String p1, Object p2, String p3, Info p4){ return null; }
|
||||||
|
public Object methodException(Context p0, Class<? extends Object> p1, String p2, Exception p3, Info p4){ return null; }
|
||||||
|
public Object referenceInsert(InternalContextAdapter p0, String p1, Object p2){ return null; }
|
||||||
|
public String includeEvent(Context p0, String p1, String p2, String p3){ return null; }
|
||||||
|
public boolean addEventHandler(EventHandler p0){ return false; }
|
||||||
|
public boolean invalidSetMethod(Context p0, String p1, String p2, Info p3){ return false; }
|
||||||
|
public boolean removeEventHandler(EventHandler p0){ return false; }
|
||||||
|
public final boolean attachToContext(Context p0){ return false; }
|
||||||
|
public void addIncludeEventHandler(IncludeEventHandler p0){}
|
||||||
|
public void addInvalidReferenceEventHandler(InvalidReferenceEventHandler p0){}
|
||||||
|
public void addMethodExceptionHandler(MethodExceptionEventHandler p0){}
|
||||||
|
public void addReferenceInsertionEventHandler(ReferenceInsertionEventHandler p0){}
|
||||||
|
public void setRuntimeServices(RuntimeServices p0){}
|
||||||
|
}
|
||||||
8
java/ql/test/stubs/apache-velocity-2.3/org/apache/velocity/app/event/EventHandler.java
generated
Normal file
8
java/ql/test/stubs/apache-velocity-2.3/org/apache/velocity/app/event/EventHandler.java
generated
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
// Generated automatically from org.apache.velocity.app.event.EventHandler for testing purposes
|
||||||
|
|
||||||
|
package org.apache.velocity.app.event;
|
||||||
|
|
||||||
|
|
||||||
|
public interface EventHandler
|
||||||
|
{
|
||||||
|
}
|
||||||
11
java/ql/test/stubs/apache-velocity-2.3/org/apache/velocity/app/event/IncludeEventHandler.java
generated
Normal file
11
java/ql/test/stubs/apache-velocity-2.3/org/apache/velocity/app/event/IncludeEventHandler.java
generated
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
// Generated automatically from org.apache.velocity.app.event.IncludeEventHandler for testing purposes
|
||||||
|
|
||||||
|
package org.apache.velocity.app.event;
|
||||||
|
|
||||||
|
import org.apache.velocity.app.event.EventHandler;
|
||||||
|
import org.apache.velocity.context.Context;
|
||||||
|
|
||||||
|
public interface IncludeEventHandler extends EventHandler
|
||||||
|
{
|
||||||
|
String includeEvent(Context p0, String p1, String p2, String p3);
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
// Generated automatically from org.apache.velocity.app.event.InvalidReferenceEventHandler for testing purposes
|
||||||
|
|
||||||
|
package org.apache.velocity.app.event;
|
||||||
|
|
||||||
|
import org.apache.velocity.app.event.EventHandler;
|
||||||
|
import org.apache.velocity.context.Context;
|
||||||
|
import org.apache.velocity.util.introspection.Info;
|
||||||
|
|
||||||
|
public interface InvalidReferenceEventHandler extends EventHandler
|
||||||
|
{
|
||||||
|
Object invalidGetMethod(Context p0, String p1, Object p2, String p3, Info p4);
|
||||||
|
Object invalidMethod(Context p0, String p1, Object p2, String p3, Info p4);
|
||||||
|
boolean invalidSetMethod(Context p0, String p1, String p2, Info p3);
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
// Generated automatically from org.apache.velocity.app.event.MethodExceptionEventHandler for testing purposes
|
||||||
|
|
||||||
|
package org.apache.velocity.app.event;
|
||||||
|
|
||||||
|
import org.apache.velocity.app.event.EventHandler;
|
||||||
|
import org.apache.velocity.context.Context;
|
||||||
|
import org.apache.velocity.util.introspection.Info;
|
||||||
|
|
||||||
|
public interface MethodExceptionEventHandler extends EventHandler
|
||||||
|
{
|
||||||
|
Object methodException(Context p0, Class<? extends Object> p1, String p2, Exception p3, Info p4);
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
// Generated automatically from org.apache.velocity.app.event.ReferenceInsertionEventHandler for testing purposes
|
||||||
|
|
||||||
|
package org.apache.velocity.app.event;
|
||||||
|
|
||||||
|
import org.apache.velocity.app.event.EventHandler;
|
||||||
|
import org.apache.velocity.context.Context;
|
||||||
|
|
||||||
|
public interface ReferenceInsertionEventHandler extends EventHandler
|
||||||
|
{
|
||||||
|
Object referenceInsert(Context p0, String p1, Object p2);
|
||||||
|
}
|
||||||
23
java/ql/test/stubs/apache-velocity-2.3/org/apache/velocity/context/AbstractContext.java
generated
Normal file
23
java/ql/test/stubs/apache-velocity-2.3/org/apache/velocity/context/AbstractContext.java
generated
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
// Generated automatically from org.apache.velocity.context.AbstractContext for testing purposes
|
||||||
|
|
||||||
|
package org.apache.velocity.context;
|
||||||
|
|
||||||
|
import org.apache.velocity.context.Context;
|
||||||
|
import org.apache.velocity.context.InternalContextBase;
|
||||||
|
|
||||||
|
abstract public class AbstractContext extends InternalContextBase implements Context
|
||||||
|
{
|
||||||
|
public AbstractContext(){}
|
||||||
|
public AbstractContext(Context p0){}
|
||||||
|
public Context getChainedContext(){ return null; }
|
||||||
|
public Object get(String p0){ return null; }
|
||||||
|
public Object put(String p0, Object p1){ return null; }
|
||||||
|
public Object remove(String p0){ return null; }
|
||||||
|
public String[] getKeys(){ return null; }
|
||||||
|
public abstract Object internalGet(String p0);
|
||||||
|
public abstract Object internalPut(String p0, Object p1);
|
||||||
|
public abstract Object internalRemove(String p0);
|
||||||
|
public abstract String[] internalGetKeys();
|
||||||
|
public abstract boolean internalContainsKey(String p0);
|
||||||
|
public boolean containsKey(String p0){ return false; }
|
||||||
|
}
|
||||||
13
java/ql/test/stubs/apache-velocity-2.3/org/apache/velocity/context/Context.java
generated
Normal file
13
java/ql/test/stubs/apache-velocity-2.3/org/apache/velocity/context/Context.java
generated
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
// Generated automatically from org.apache.velocity.context.Context for testing purposes
|
||||||
|
|
||||||
|
package org.apache.velocity.context;
|
||||||
|
|
||||||
|
|
||||||
|
public interface Context
|
||||||
|
{
|
||||||
|
Object get(String p0);
|
||||||
|
Object put(String p0, Object p1);
|
||||||
|
Object remove(String p0);
|
||||||
|
String[] getKeys();
|
||||||
|
boolean containsKey(String p0);
|
||||||
|
}
|
||||||
12
java/ql/test/stubs/apache-velocity-2.3/org/apache/velocity/context/InternalContextAdapter.java
generated
Normal file
12
java/ql/test/stubs/apache-velocity-2.3/org/apache/velocity/context/InternalContextAdapter.java
generated
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
// Generated automatically from org.apache.velocity.context.InternalContextAdapter for testing purposes
|
||||||
|
|
||||||
|
package org.apache.velocity.context;
|
||||||
|
|
||||||
|
import org.apache.velocity.context.Context;
|
||||||
|
import org.apache.velocity.context.InternalEventContext;
|
||||||
|
import org.apache.velocity.context.InternalHousekeepingContext;
|
||||||
|
import org.apache.velocity.context.InternalWrapperContext;
|
||||||
|
|
||||||
|
public interface InternalContextAdapter extends Context, InternalEventContext, InternalHousekeepingContext, InternalWrapperContext
|
||||||
|
{
|
||||||
|
}
|
||||||
32
java/ql/test/stubs/apache-velocity-2.3/org/apache/velocity/context/InternalContextBase.java
generated
Normal file
32
java/ql/test/stubs/apache-velocity-2.3/org/apache/velocity/context/InternalContextBase.java
generated
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
// Generated automatically from org.apache.velocity.context.InternalContextBase for testing purposes
|
||||||
|
|
||||||
|
package org.apache.velocity.context;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import org.apache.velocity.Template;
|
||||||
|
import org.apache.velocity.app.event.EventCartridge;
|
||||||
|
import org.apache.velocity.context.InternalEventContext;
|
||||||
|
import org.apache.velocity.context.InternalHousekeepingContext;
|
||||||
|
import org.apache.velocity.runtime.resource.Resource;
|
||||||
|
import org.apache.velocity.util.introspection.IntrospectionCacheData;
|
||||||
|
|
||||||
|
class InternalContextBase implements InternalEventContext, InternalHousekeepingContext
|
||||||
|
{
|
||||||
|
public EventCartridge attachEventCartridge(EventCartridge p0){ return null; }
|
||||||
|
public EventCartridge getEventCartridge(){ return null; }
|
||||||
|
public IntrospectionCacheData icacheGet(Object p0){ return null; }
|
||||||
|
public List<Template> getMacroLibraries(){ return null; }
|
||||||
|
public Resource getCurrentResource(){ return null; }
|
||||||
|
public String getCurrentMacroName(){ return null; }
|
||||||
|
public String getCurrentTemplateName(){ return null; }
|
||||||
|
public String[] getMacroNameStack(){ return null; }
|
||||||
|
public String[] getTemplateNameStack(){ return null; }
|
||||||
|
public int getCurrentMacroCallDepth(){ return 0; }
|
||||||
|
public void icachePut(Object p0, IntrospectionCacheData p1){}
|
||||||
|
public void popCurrentMacroName(){}
|
||||||
|
public void popCurrentTemplateName(){}
|
||||||
|
public void pushCurrentMacroName(String p0){}
|
||||||
|
public void pushCurrentTemplateName(String p0){}
|
||||||
|
public void setCurrentResource(Resource p0){}
|
||||||
|
public void setMacroLibraries(List<Template> p0){}
|
||||||
|
}
|
||||||
11
java/ql/test/stubs/apache-velocity-2.3/org/apache/velocity/context/InternalEventContext.java
generated
Normal file
11
java/ql/test/stubs/apache-velocity-2.3/org/apache/velocity/context/InternalEventContext.java
generated
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
// Generated automatically from org.apache.velocity.context.InternalEventContext for testing purposes
|
||||||
|
|
||||||
|
package org.apache.velocity.context;
|
||||||
|
|
||||||
|
import org.apache.velocity.app.event.EventCartridge;
|
||||||
|
|
||||||
|
public interface InternalEventContext
|
||||||
|
{
|
||||||
|
EventCartridge attachEventCartridge(EventCartridge p0);
|
||||||
|
EventCartridge getEventCartridge();
|
||||||
|
}
|
||||||
27
java/ql/test/stubs/apache-velocity-2.3/org/apache/velocity/context/InternalHousekeepingContext.java
generated
Normal file
27
java/ql/test/stubs/apache-velocity-2.3/org/apache/velocity/context/InternalHousekeepingContext.java
generated
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
// Generated automatically from org.apache.velocity.context.InternalHousekeepingContext for testing purposes
|
||||||
|
|
||||||
|
package org.apache.velocity.context;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import org.apache.velocity.Template;
|
||||||
|
import org.apache.velocity.runtime.resource.Resource;
|
||||||
|
import org.apache.velocity.util.introspection.IntrospectionCacheData;
|
||||||
|
|
||||||
|
interface InternalHousekeepingContext
|
||||||
|
{
|
||||||
|
IntrospectionCacheData icacheGet(Object p0);
|
||||||
|
List<Template> getMacroLibraries();
|
||||||
|
Resource getCurrentResource();
|
||||||
|
String getCurrentMacroName();
|
||||||
|
String getCurrentTemplateName();
|
||||||
|
String[] getMacroNameStack();
|
||||||
|
String[] getTemplateNameStack();
|
||||||
|
int getCurrentMacroCallDepth();
|
||||||
|
void icachePut(Object p0, IntrospectionCacheData p1);
|
||||||
|
void popCurrentMacroName();
|
||||||
|
void popCurrentTemplateName();
|
||||||
|
void pushCurrentMacroName(String p0);
|
||||||
|
void pushCurrentTemplateName(String p0);
|
||||||
|
void setCurrentResource(Resource p0);
|
||||||
|
void setMacroLibraries(List<Template> p0);
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user