mirror of
https://github.com/github/codeql.git
synced 2026-04-30 19:26:02 +02:00
Java: Ratpack HTTP Framework Additional Modeling
Adds models for `ratpack.func.Pair`, and `ratpack.exec.Result`. Improve moels for `ratpack.exec.Promise`. Signed-off-by: Jonathan Leitschuh <Jonathan.Leitschuh@gmail.com>
This commit is contained in:
@@ -83,5 +83,51 @@ private class RatpackModel extends SummaryModelCsv {
|
||||
"MultiValueMap;true;asMultimap;;;MapKey of Argument[-1];MapKey of ReturnValue;value",
|
||||
"MultiValueMap;true;asMultimap;;;MapValue of Argument[-1];MapValue of ReturnValue;value"
|
||||
]
|
||||
or
|
||||
exists(string left, string right |
|
||||
left = "Field[ratpack.func.Pair.left]" and
|
||||
right = "Field[ratpack.func.Pair.right]"
|
||||
|
|
||||
row =
|
||||
["ratpack.util;", "ratpack.func;"] + "Pair;true;" +
|
||||
[
|
||||
"of;;;Argument[0];" + left + " of ReturnValue;value",
|
||||
"of;;;Argument[1];" + right + " of ReturnValue;value",
|
||||
"pair;;;Argument[0];" + left + " of ReturnValue;value",
|
||||
"pair;;;Argument[1];" + right + " of ReturnValue;value",
|
||||
"left;();;" + left + " of Argument[-1];ReturnValue;value",
|
||||
"right;();;" + right + " of Argument[-1];ReturnValue;value",
|
||||
"getLeft;;;" + left + " of Argument[-1];ReturnValue;value",
|
||||
"getRight;;;" + right + " of Argument[-1];ReturnValue;value",
|
||||
"left;(Object);;Argument[0];" + left + " of ReturnValue;value",
|
||||
"left;(Object);;" + right + " of Argument[-1];" + right + " of ReturnValue;value",
|
||||
"right;(Object);;Argument[0];" + right + " of ReturnValue;value",
|
||||
"right;(Object);;" + left + " of Argument[-1];" + left + " of ReturnValue;value",
|
||||
"pushLeft;(Object);;Argument[-1];" + right + " of ReturnValue;value",
|
||||
"pushRight;(Object);;Argument[-1];" + left + " of ReturnValue;value",
|
||||
"pushLeft;(Object);;Argument[0];" + left + " of ReturnValue;value",
|
||||
"pushRight;(Object);;Argument[0];" + right + " of ReturnValue;value",
|
||||
// `nestLeft` Pair<A, B>.nestLeft(C) -> Pair<Pair<C, A>, B>
|
||||
"nestLeft;(Object);;Argument[0];" + left + " of " + left + " of ReturnValue;value",
|
||||
"nestLeft;(Object);;" + left + " of Argument[-1];" + right + " of " + left +
|
||||
" of ReturnValue;value",
|
||||
"nestLeft;(Object);;" + right + " of Argument[-1];" + right + " of ReturnValue;value",
|
||||
// `nestRight` Pair<A, B>.nestRight(C) -> Pair<A, Pair<C, B>>
|
||||
"nestRight;(Object);;Argument[0];" + left + " of " + right + " of ReturnValue;value",
|
||||
"nestRight;(Object);;" + left + " of Argument[-1];" + left + " of ReturnValue;value",
|
||||
"nestRight;(Object);;" + right + " of Argument[-1];" + right + " of " + right +
|
||||
" of ReturnValue;value",
|
||||
// `mapLeft` & `mapRight` map over their respective fields
|
||||
"mapLeft;;;" + left + " of Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"mapLeft;;;" + right + " of Argument[-1];" + right + " of ReturnValue;value",
|
||||
"mapRight;;;" + right + " of Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"mapRight;;;" + left + " of Argument[-1];" + left + " of ReturnValue;value",
|
||||
"mapLeft;;;ReturnValue of Argument[0];" + left + " of ReturnValue;value",
|
||||
"mapRight;;;ReturnValue of Argument[0];" + right + " of ReturnValue;value",
|
||||
// `map` maps over the `Pair`
|
||||
"map;;;Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"map;;;ReturnValue of Argument[0];ReturnValue;value"
|
||||
]
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ private class RatpackExecModel extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
//"namespace;type;overrides;name;signature;ext;inputspec;outputspec;kind",
|
||||
row =
|
||||
["ratpack.exec;Promise;true;"] +
|
||||
"ratpack.exec;Promise;true;" +
|
||||
[
|
||||
// `Promise` creation methods
|
||||
"value;;;Argument[0];Element of ReturnValue;value",
|
||||
@@ -31,13 +31,16 @@ private class RatpackExecModel extends SummaryModelCsv {
|
||||
"apply;;;Element of ReturnValue of Argument[0];Element of ReturnValue;value",
|
||||
// `Promise` termination method
|
||||
"then;;;Element of Argument[-1];Parameter[0] of Argument[0];value",
|
||||
// 'next' accesses qualfier the 'Promise' value and also returns the qualifier
|
||||
// 'next' accesses qualifier the 'Promise' value and also returns the qualifier
|
||||
"next;;;Element of Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"next;;;Argument[-1];ReturnValue;value",
|
||||
// 'cacheIf' accesses qualfier the 'Promise' value and also returns the qualifier
|
||||
"nextOp;;;Element of Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"flatOp;;;Element of Argument[-1];Parameter[0] of Argument[0];value",
|
||||
// `nextOpIf` accesses qualifier the 'Promise' value and also returns the qualifier
|
||||
"nextOpIf;;;Element of Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"nextOpIf;;;Element of Argument[-1];Parameter[0] of Argument[1];value",
|
||||
// 'cacheIf' accesses qualifier the 'Promise' value and also returns the qualifier
|
||||
"cacheIf;;;Element of Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"cacheIf;;;Argument[-1];ReturnValue;value",
|
||||
// 'route' accesses qualfier the 'Promise' value, and conditionally returns the qualifier or
|
||||
// 'route' accesses qualifier the 'Promise' value, and conditionally returns the qualifier or
|
||||
// the result of the second argument
|
||||
"route;;;Element of Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"route;;;Element of Argument[-1];Parameter[0] of Argument[1];value",
|
||||
@@ -46,12 +49,57 @@ private class RatpackExecModel extends SummaryModelCsv {
|
||||
"flatMap;;;Element of Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"flatMap;;;Element of ReturnValue of Argument[0];Element of ReturnValue;value",
|
||||
"flatMapError;;;Element of ReturnValue of Argument[1];Element of ReturnValue;value",
|
||||
// `blockingOp` passes the value to the argument
|
||||
"blockingOp;;;Element of Argument[-1];Parameter[0] of Argument[0];value",
|
||||
// `replace` returns the passed `Promise`
|
||||
"replace;;;Element of Argument[0];Element of ReturnValue;value",
|
||||
// `mapIf` methods conditionally map their values, or return themselves
|
||||
"mapIf;;;Element of Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"mapIf;;;Element of Argument[-1];Parameter[0] of Argument[1];value",
|
||||
"mapIf;;;Element of Argument[-1];Parameter[0] of Argument[2];value",
|
||||
"mapIf;;;ReturnValue of Argument[1];Element of ReturnValue;value",
|
||||
"mapIf;;;ReturnValue of Argument[2];Element of ReturnValue;value"
|
||||
"mapIf;;;ReturnValue of Argument[2];Element of ReturnValue;value",
|
||||
// `wiretap` wraps the qualifier `Promise` value in a `Result` and passes it to the argument
|
||||
"wiretap;;;Element of Argument[-1];Element of Parameter[0] of Argument[0];value"
|
||||
]
|
||||
or
|
||||
exists(string left, string right |
|
||||
left = "Field[ratpack.func.Pair.left]" and
|
||||
right = "Field[ratpack.func.Pair.right]"
|
||||
|
|
||||
row =
|
||||
"ratpack.exec;Promise;true;" +
|
||||
[
|
||||
// `left`, `right`, `flatLeft`, `flatRight` all pass the qualifier `Promise` element as the other `Pair` field
|
||||
"left;;;Element of Argument[-1];" + right + " of Element of ReturnValue;value",
|
||||
"right;;;Element of Argument[-1];" + left + " of Element of ReturnValue;value",
|
||||
"flatLeft;;;Element of Argument[-1];" + right + " of Element of ReturnValue;value",
|
||||
"flatRight;;;Element of Argument[-1];" + left + " of Element of ReturnValue;value",
|
||||
// `left` and `right` taking a `Promise` create a `Promise` of the `Pair`
|
||||
"left;(Promise);;Element of Argument[0];" + left + " of Element of ReturnValue;value",
|
||||
"right;(Promise);;Element of Argument[0];" + right + " of Element of ReturnValue;value",
|
||||
// `left` and `right` taking a `Function` pass the qualifier element then create a `Pair` with the returned value
|
||||
"left;(Function);;Element of Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"flatLeft;(Function);;Element of Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"right;(Function);;Element of Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"flatRight;(Function);;Element of Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"left;(Function);;ReturnValue of Argument[0];" + left +
|
||||
" of Element of ReturnValue;value",
|
||||
"flatLeft;(Function);;Element of ReturnValue of Argument[0];" + left +
|
||||
" of Element of ReturnValue;value",
|
||||
"right;(Function);;ReturnValue of Argument[0];" + right +
|
||||
" of Element of ReturnValue;value",
|
||||
"flatRight;(Function);;Element of ReturnValue of Argument[0];" + right +
|
||||
" of Element of ReturnValue;value"
|
||||
]
|
||||
)
|
||||
or
|
||||
row =
|
||||
"ratpack.exec;Result;true;" +
|
||||
[
|
||||
"success;;;Argument[0];Element of ReturnValue;value",
|
||||
"getValue;;;Element of Argument[-1];ReturnValue;value",
|
||||
"getValueOrThrow;;;Element of Argument[-1];ReturnValue;value"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user