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:
Jonathan Leitschuh
2021-10-29 11:39:36 -04:00
parent a06642944f
commit 1ddf5fb133
10 changed files with 927 additions and 8 deletions

View File

@@ -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"
]
)
}
}

View File

@@ -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"
]
}
}