Initial draft of report and analysis results
This commit is contained in:
parent
38496e47a0
commit
bfdc3c43c3
4 changed files with 912 additions and 0 deletions
380
.gitignore
vendored
Normal file
380
.gitignore
vendored
Normal file
|
@ -0,0 +1,380 @@
|
||||||
|
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
|
||||||
|
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
||||||
|
|
||||||
|
# User-specific stuff
|
||||||
|
.idea/**/workspace.xml
|
||||||
|
.idea/**/tasks.xml
|
||||||
|
.idea/**/usage.statistics.xml
|
||||||
|
.idea/**/dictionaries
|
||||||
|
.idea/**/shelf
|
||||||
|
|
||||||
|
# AWS User-specific
|
||||||
|
.idea/**/aws.xml
|
||||||
|
|
||||||
|
# Generated files
|
||||||
|
.idea/**/contentModel.xml
|
||||||
|
|
||||||
|
# Sensitive or high-churn files
|
||||||
|
.idea/**/dataSources/
|
||||||
|
.idea/**/dataSources.ids
|
||||||
|
.idea/**/dataSources.local.xml
|
||||||
|
.idea/**/sqlDataSources.xml
|
||||||
|
.idea/**/dynamic.xml
|
||||||
|
.idea/**/uiDesigner.xml
|
||||||
|
.idea/**/dbnavigator.xml
|
||||||
|
|
||||||
|
# Gradle
|
||||||
|
.idea/**/gradle.xml
|
||||||
|
.idea/**/libraries
|
||||||
|
|
||||||
|
# Gradle and Maven with auto-import
|
||||||
|
# When using Gradle or Maven with auto-import, you should exclude module files,
|
||||||
|
# since they will be recreated, and may cause churn. Uncomment if using
|
||||||
|
# auto-import.
|
||||||
|
# .idea/artifacts
|
||||||
|
# .idea/compiler.xml
|
||||||
|
# .idea/jarRepositories.xml
|
||||||
|
# .idea/modules.xml
|
||||||
|
# .idea/*.iml
|
||||||
|
# .idea/modules
|
||||||
|
# *.iml
|
||||||
|
# *.ipr
|
||||||
|
|
||||||
|
# CMake
|
||||||
|
cmake-build-*/
|
||||||
|
|
||||||
|
# Mongo Explorer plugin
|
||||||
|
.idea/**/mongoSettings.xml
|
||||||
|
|
||||||
|
# File-based project format
|
||||||
|
*.iws
|
||||||
|
|
||||||
|
# IntelliJ
|
||||||
|
out/
|
||||||
|
|
||||||
|
# mpeltonen/sbt-idea plugin
|
||||||
|
.idea_modules/
|
||||||
|
|
||||||
|
# JIRA plugin
|
||||||
|
atlassian-ide-plugin.xml
|
||||||
|
|
||||||
|
# Cursive Clojure plugin
|
||||||
|
.idea/replstate.xml
|
||||||
|
|
||||||
|
# SonarLint plugin
|
||||||
|
.idea/sonarlint/
|
||||||
|
|
||||||
|
# Crashlytics plugin (for Android Studio and IntelliJ)
|
||||||
|
com_crashlytics_export_strings.xml
|
||||||
|
crashlytics.properties
|
||||||
|
crashlytics-build.properties
|
||||||
|
fabric.properties
|
||||||
|
|
||||||
|
# Editor-based Rest Client
|
||||||
|
.idea/httpRequests
|
||||||
|
|
||||||
|
# Android studio 3.1+ serialized cache file
|
||||||
|
.idea/caches/build_file_checksums.ser
|
||||||
|
|
||||||
|
## Core latex/pdflatex auxiliary files:
|
||||||
|
*.aux
|
||||||
|
*.lof
|
||||||
|
*.log
|
||||||
|
*.lot
|
||||||
|
*.fls
|
||||||
|
*.out
|
||||||
|
*.toc
|
||||||
|
*.fmt
|
||||||
|
*.fot
|
||||||
|
*.cb
|
||||||
|
*.cb2
|
||||||
|
.*.lb
|
||||||
|
|
||||||
|
## Intermediate documents:
|
||||||
|
*.dvi
|
||||||
|
*.xdv
|
||||||
|
*-converted-to.*
|
||||||
|
# these rules might exclude image files for figures etc.
|
||||||
|
# *.ps
|
||||||
|
# *.eps
|
||||||
|
# *.pdf
|
||||||
|
|
||||||
|
## Generated if empty string is given at "Please type another file name for output:"
|
||||||
|
.pdf
|
||||||
|
|
||||||
|
## Bibliography auxiliary files (bibtex/biblatex/biber):
|
||||||
|
*.bbl
|
||||||
|
*.bcf
|
||||||
|
*.blg
|
||||||
|
*-blx.aux
|
||||||
|
*-blx.bib
|
||||||
|
*.run.xml
|
||||||
|
|
||||||
|
## Build tool auxiliary files:
|
||||||
|
*.fdb_latexmk
|
||||||
|
*.synctex
|
||||||
|
*.synctex(busy)
|
||||||
|
*.synctex.gz
|
||||||
|
*.synctex.gz(busy)
|
||||||
|
*.pdfsync
|
||||||
|
|
||||||
|
## Build tool directories for auxiliary files
|
||||||
|
# latexrun
|
||||||
|
latex.out/
|
||||||
|
|
||||||
|
## Auxiliary and intermediate files from other packages:
|
||||||
|
# algorithms
|
||||||
|
*.alg
|
||||||
|
*.loa
|
||||||
|
|
||||||
|
# achemso
|
||||||
|
acs-*.bib
|
||||||
|
|
||||||
|
# amsthm
|
||||||
|
*.thm
|
||||||
|
|
||||||
|
# beamer
|
||||||
|
*.nav
|
||||||
|
*.pre
|
||||||
|
*.snm
|
||||||
|
*.vrb
|
||||||
|
|
||||||
|
# changes
|
||||||
|
*.soc
|
||||||
|
|
||||||
|
# comment
|
||||||
|
*.cut
|
||||||
|
|
||||||
|
# cprotect
|
||||||
|
*.cpt
|
||||||
|
|
||||||
|
# elsarticle (documentclass of Elsevier journals)
|
||||||
|
*.spl
|
||||||
|
|
||||||
|
# endnotes
|
||||||
|
*.ent
|
||||||
|
|
||||||
|
# fixme
|
||||||
|
*.lox
|
||||||
|
|
||||||
|
# feynmf/feynmp
|
||||||
|
*.mf
|
||||||
|
*.mp
|
||||||
|
*.t[1-9]
|
||||||
|
*.t[1-9][0-9]
|
||||||
|
*.tfm
|
||||||
|
|
||||||
|
#(r)(e)ledmac/(r)(e)ledpar
|
||||||
|
*.end
|
||||||
|
*.?end
|
||||||
|
*.[1-9]
|
||||||
|
*.[1-9][0-9]
|
||||||
|
*.[1-9][0-9][0-9]
|
||||||
|
*.[1-9]R
|
||||||
|
*.[1-9][0-9]R
|
||||||
|
*.[1-9][0-9][0-9]R
|
||||||
|
*.eledsec[1-9]
|
||||||
|
*.eledsec[1-9]R
|
||||||
|
*.eledsec[1-9][0-9]
|
||||||
|
*.eledsec[1-9][0-9]R
|
||||||
|
*.eledsec[1-9][0-9][0-9]
|
||||||
|
*.eledsec[1-9][0-9][0-9]R
|
||||||
|
|
||||||
|
# glossaries
|
||||||
|
*.acn
|
||||||
|
*.acr
|
||||||
|
*.glg
|
||||||
|
*.glo
|
||||||
|
*.gls
|
||||||
|
*.glsdefs
|
||||||
|
*.lzo
|
||||||
|
*.lzs
|
||||||
|
*.slg
|
||||||
|
*.slo
|
||||||
|
*.sls
|
||||||
|
|
||||||
|
# uncomment this for glossaries-extra (will ignore makeindex's style files!)
|
||||||
|
# *.ist
|
||||||
|
|
||||||
|
# gnuplot
|
||||||
|
*.gnuplot
|
||||||
|
*.table
|
||||||
|
|
||||||
|
# gnuplottex
|
||||||
|
*-gnuplottex-*
|
||||||
|
|
||||||
|
# gregoriotex
|
||||||
|
*.gaux
|
||||||
|
*.glog
|
||||||
|
*.gtex
|
||||||
|
|
||||||
|
# htlatex
|
||||||
|
*.4ct
|
||||||
|
*.4tc
|
||||||
|
*.idv
|
||||||
|
*.lg
|
||||||
|
*.trc
|
||||||
|
*.xref
|
||||||
|
|
||||||
|
# hyperref
|
||||||
|
*.brf
|
||||||
|
|
||||||
|
# knitr
|
||||||
|
*-concordance.tex
|
||||||
|
# TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files
|
||||||
|
# *.tikz
|
||||||
|
*-tikzDictionary
|
||||||
|
|
||||||
|
# listings
|
||||||
|
*.lol
|
||||||
|
|
||||||
|
# luatexja-ruby
|
||||||
|
*.ltjruby
|
||||||
|
|
||||||
|
# makeidx
|
||||||
|
*.idx
|
||||||
|
*.ilg
|
||||||
|
*.ind
|
||||||
|
|
||||||
|
# minitoc
|
||||||
|
*.maf
|
||||||
|
*.mlf
|
||||||
|
*.mlt
|
||||||
|
*.mtc[0-9]*
|
||||||
|
*.slf[0-9]*
|
||||||
|
*.slt[0-9]*
|
||||||
|
*.stc[0-9]*
|
||||||
|
|
||||||
|
# minted
|
||||||
|
_minted*
|
||||||
|
*.pyg
|
||||||
|
|
||||||
|
# morewrites
|
||||||
|
*.mw
|
||||||
|
|
||||||
|
# newpax
|
||||||
|
*.newpax
|
||||||
|
|
||||||
|
# nomencl
|
||||||
|
*.nlg
|
||||||
|
*.nlo
|
||||||
|
*.nls
|
||||||
|
|
||||||
|
# pax
|
||||||
|
*.pax
|
||||||
|
|
||||||
|
# pdfpcnotes
|
||||||
|
*.pdfpc
|
||||||
|
|
||||||
|
# sagetex
|
||||||
|
*.sagetex.sage
|
||||||
|
*.sagetex.py
|
||||||
|
*.sagetex.scmd
|
||||||
|
|
||||||
|
# scrwfile
|
||||||
|
*.wrt
|
||||||
|
|
||||||
|
# svg
|
||||||
|
svg-inkscape/
|
||||||
|
|
||||||
|
# sympy
|
||||||
|
*.sout
|
||||||
|
*.sympy
|
||||||
|
sympy-plots-for-*.tex/
|
||||||
|
|
||||||
|
# pdfcomment
|
||||||
|
*.upa
|
||||||
|
*.upb
|
||||||
|
|
||||||
|
# pythontex
|
||||||
|
*.pytxcode
|
||||||
|
pythontex-files-*/
|
||||||
|
|
||||||
|
# tcolorbox
|
||||||
|
*.listing
|
||||||
|
|
||||||
|
# thmtools
|
||||||
|
*.loe
|
||||||
|
|
||||||
|
# TikZ & PGF
|
||||||
|
*.dpth
|
||||||
|
*.md5
|
||||||
|
*.auxlock
|
||||||
|
|
||||||
|
# titletoc
|
||||||
|
*.ptc
|
||||||
|
|
||||||
|
# todonotes
|
||||||
|
*.tdo
|
||||||
|
|
||||||
|
# vhistory
|
||||||
|
*.hst
|
||||||
|
*.ver
|
||||||
|
|
||||||
|
# easy-todo
|
||||||
|
*.lod
|
||||||
|
|
||||||
|
# xcolor
|
||||||
|
*.xcp
|
||||||
|
|
||||||
|
# xmpincl
|
||||||
|
*.xmpi
|
||||||
|
|
||||||
|
# xindy
|
||||||
|
*.xdy
|
||||||
|
|
||||||
|
# xypic precompiled matrices and outlines
|
||||||
|
*.xyc
|
||||||
|
*.xyd
|
||||||
|
|
||||||
|
# endfloat
|
||||||
|
*.ttt
|
||||||
|
*.fff
|
||||||
|
|
||||||
|
# Latexian
|
||||||
|
TSWLatexianTemp*
|
||||||
|
|
||||||
|
## Editors:
|
||||||
|
# WinEdt
|
||||||
|
*.bak
|
||||||
|
*.sav
|
||||||
|
|
||||||
|
# Texpad
|
||||||
|
.texpadtmp
|
||||||
|
|
||||||
|
# LyX
|
||||||
|
*.lyx~
|
||||||
|
|
||||||
|
# Kile
|
||||||
|
*.backup
|
||||||
|
|
||||||
|
# gummi
|
||||||
|
.*.swp
|
||||||
|
|
||||||
|
# KBibTeX
|
||||||
|
*~[0-9]*
|
||||||
|
|
||||||
|
# TeXnicCenter
|
||||||
|
*.tps
|
||||||
|
|
||||||
|
# auto folder when using emacs and auctex
|
||||||
|
./auto/*
|
||||||
|
*.el
|
||||||
|
|
||||||
|
# expex forward references with \gathertags
|
||||||
|
*-tags.tex
|
||||||
|
|
||||||
|
# standalone packages
|
||||||
|
*.sta
|
||||||
|
|
||||||
|
# Makeindex log files
|
||||||
|
*.lpz
|
||||||
|
|
||||||
|
# xwatermark package
|
||||||
|
*.xwm
|
||||||
|
|
||||||
|
# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib
|
||||||
|
# option is specified. Footnotes are the stored in a file with suffix Notes.bib.
|
||||||
|
# Uncomment the next line to have this generated file ignored.
|
||||||
|
#*Notes.bib
|
||||||
|
|
462
analysis.xml
Normal file
462
analysis.xml
Normal file
|
@ -0,0 +1,462 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<system>
|
||||||
|
<pattern name="Factory Method">
|
||||||
|
<instance>
|
||||||
|
<role name="Creator" element="com.fasterxml.jackson.core.TokenStreamFactory" />
|
||||||
|
<role name="FactoryMethod()" element="com.fasterxml.jackson.core.TokenStreamFactory::createNonBlockingByteArrayParser():com.fasterxml.jackson.core.JsonParser" />
|
||||||
|
<role name="FactoryMethod()" element="com.fasterxml.jackson.core.TokenStreamFactory::createNonBlockingByteBufferParser():com.fasterxml.jackson.core.JsonParser" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="Creator" element="com.fasterxml.jackson.core.TSFBuilder" />
|
||||||
|
<role name="FactoryMethod()" element="com.fasterxml.jackson.core.TSFBuilder::build():com.fasterxml.jackson.core.JsonFactory" />
|
||||||
|
</instance>
|
||||||
|
</pattern>
|
||||||
|
<pattern name="Prototype" />
|
||||||
|
<pattern name="Singleton">
|
||||||
|
<instance>
|
||||||
|
<role name="Singleton" element="com.fasterxml.jackson.core.sym.Name1" />
|
||||||
|
<role name="uniqueInstance" element="com.fasterxml.jackson.core.sym.Name1::EMPTY:com.fasterxml.jackson.core.sym.Name1" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="Singleton" element="com.fasterxml.jackson.core.JsonpCharacterEscapes" />
|
||||||
|
<role name="uniqueInstance" element="com.fasterxml.jackson.core.JsonpCharacterEscapes::sInstance:com.fasterxml.jackson.core.JsonpCharacterEscapes" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="Singleton" element="com.fasterxml.jackson.core.JsonLocation" />
|
||||||
|
<role name="uniqueInstance" element="com.fasterxml.jackson.core.JsonLocation::NA:com.fasterxml.jackson.core.JsonLocation" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="Singleton" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter$NopIndenter" />
|
||||||
|
<role name="uniqueInstance" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter$NopIndenter::instance:com.fasterxml.jackson.core.util.DefaultPrettyPrinter$NopIndenter" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="Singleton" element="com.fasterxml.jackson.core.util.DefaultIndenter" />
|
||||||
|
<role name="uniqueInstance" element="com.fasterxml.jackson.core.util.DefaultIndenter::SYSTEM_LINEFEED_INSTANCE:com.fasterxml.jackson.core.util.DefaultIndenter" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="Singleton" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter$FixedSpaceIndenter" />
|
||||||
|
<role name="uniqueInstance" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter$FixedSpaceIndenter::instance:com.fasterxml.jackson.core.util.DefaultPrettyPrinter$FixedSpaceIndenter" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="Singleton" element="com.fasterxml.jackson.core.util.InternCache" />
|
||||||
|
<role name="uniqueInstance" element="com.fasterxml.jackson.core.util.InternCache::instance:com.fasterxml.jackson.core.util.InternCache" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="Singleton" element="com.fasterxml.jackson.core.Version" />
|
||||||
|
<role name="uniqueInstance" element="com.fasterxml.jackson.core.Version::UNKNOWN_VERSION:com.fasterxml.jackson.core.Version" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="Singleton" element="com.fasterxml.jackson.core.io.JsonStringEncoder" />
|
||||||
|
<role name="uniqueInstance" element="com.fasterxml.jackson.core.io.JsonStringEncoder::instance:com.fasterxml.jackson.core.io.JsonStringEncoder" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="Singleton" element="com.fasterxml.jackson.core.io.ContentReference" />
|
||||||
|
<role name="uniqueInstance" element="com.fasterxml.jackson.core.io.ContentReference::UNKNOWN_CONTENT:com.fasterxml.jackson.core.io.ContentReference" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="Singleton" element="com.fasterxml.jackson.core.io.CharTypes$AltEscapes" />
|
||||||
|
<role name="uniqueInstance" element="com.fasterxml.jackson.core.io.CharTypes$AltEscapes::instance:com.fasterxml.jackson.core.io.CharTypes$AltEscapes" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="Singleton" element="com.fasterxml.jackson.core.JsonPointer" />
|
||||||
|
<role name="uniqueInstance" element="com.fasterxml.jackson.core.JsonPointer::EMPTY:com.fasterxml.jackson.core.JsonPointer" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="Singleton" element="com.fasterxml.jackson.core.filter.TokenFilter" />
|
||||||
|
<role name="uniqueInstance" element="com.fasterxml.jackson.core.filter.TokenFilter::INCLUDE_ALL:com.fasterxml.jackson.core.filter.TokenFilter" />
|
||||||
|
</instance>
|
||||||
|
</pattern>
|
||||||
|
<pattern name="(Object)Adapter">
|
||||||
|
<instance>
|
||||||
|
<role name="Adapter" element="com.fasterxml.jackson.core.JsonFactory" />
|
||||||
|
<role name="Adaptee" element="com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer" />
|
||||||
|
<role name="adaptee" element="com.fasterxml.jackson.core.JsonFactory::_byteSymbolCanonicalizer:com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.JsonFactory::createNonBlockingByteArrayParser():com.fasterxml.jackson.core.JsonParser" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.JsonFactory::createNonBlockingByteBufferParser():com.fasterxml.jackson.core.JsonParser" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="Adapter" element="com.fasterxml.jackson.core.JsonFactory" />
|
||||||
|
<role name="Adaptee" element="com.fasterxml.jackson.core.io.InputDecorator" />
|
||||||
|
<role name="adaptee" element="com.fasterxml.jackson.core.JsonFactory::_inputDecorator:com.fasterxml.jackson.core.io.InputDecorator" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.JsonFactory::createParser(byte[]):com.fasterxml.jackson.core.JsonParser" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.JsonFactory::createParser(byte[], int, int):com.fasterxml.jackson.core.JsonParser" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="Adaptee" element="com.fasterxml.jackson.core.json.JsonReadContext" />
|
||||||
|
<role name="Adapter" element="com.fasterxml.jackson.core.base.ParserBase" />
|
||||||
|
<role name="adaptee" element="com.fasterxml.jackson.core.base.ParserBase::_parsingContext:com.fasterxml.jackson.core.json.JsonReadContext" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.base.ParserBase::getCurrentName():java.lang.String" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.base.ParserBase::overrideCurrentName(java.lang.String):void" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.base.ParserBase::_handleEOF():void" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="Adaptee" element="com.fasterxml.jackson.core.json.JsonWriteContext" />
|
||||||
|
<role name="Adapter" element="com.fasterxml.jackson.core.base.GeneratorBase" />
|
||||||
|
<role name="adaptee" element="com.fasterxml.jackson.core.base.GeneratorBase::_writeContext:com.fasterxml.jackson.core.json.JsonWriteContext" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.base.GeneratorBase::enable(com.fasterxml.jackson.core.JsonGenerator$Feature):com.fasterxml.jackson.core.JsonGenerator" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.base.GeneratorBase::disable(com.fasterxml.jackson.core.JsonGenerator$Feature):com.fasterxml.jackson.core.JsonGenerator" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="Adaptee" element="com.fasterxml.jackson.core.util.Separators" />
|
||||||
|
<role name="Adapter" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter" />
|
||||||
|
<role name="adaptee" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter::_separators:com.fasterxml.jackson.core.util.Separators" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter::writeObjectFieldValueSeparator(com.fasterxml.jackson.core.JsonGenerator):void" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter::writeObjectEntrySeparator(com.fasterxml.jackson.core.JsonGenerator):void" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter::writeArrayValueSeparator(com.fasterxml.jackson.core.JsonGenerator):void" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="Adaptee" element="com.fasterxml.jackson.core.util.Separators" />
|
||||||
|
<role name="Adapter" element="com.fasterxml.jackson.core.util.MinimalPrettyPrinter" />
|
||||||
|
<role name="adaptee" element="com.fasterxml.jackson.core.util.MinimalPrettyPrinter::_separators:com.fasterxml.jackson.core.util.Separators" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.util.MinimalPrettyPrinter::writeObjectFieldValueSeparator(com.fasterxml.jackson.core.JsonGenerator):void" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.util.MinimalPrettyPrinter::writeObjectEntrySeparator(com.fasterxml.jackson.core.JsonGenerator):void" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.util.MinimalPrettyPrinter::writeArrayValueSeparator(com.fasterxml.jackson.core.JsonGenerator):void" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="Adaptee" element="com.fasterxml.jackson.core.io.JsonStringEncoder" />
|
||||||
|
<role name="Adapter" element="com.fasterxml.jackson.core.io.SerializedString" />
|
||||||
|
<role name="adaptee" element="com.fasterxml.jackson.core.io.SerializedString::JSON_ENCODER:com.fasterxml.jackson.core.io.JsonStringEncoder" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.io.SerializedString::asQuotedChars():char[]" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.io.SerializedString::asQuotedUTF8():byte[]" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.io.SerializedString::asUnquotedUTF8():byte[]" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.io.SerializedString::appendQuoted(char[], int):int" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.io.SerializedString::appendQuotedUTF8(byte[], int):int" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.io.SerializedString::appendUnquotedUTF8(byte[], int):int" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.io.SerializedString::writeQuotedUTF8(java.io.OutputStream):int" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.io.SerializedString::writeUnquotedUTF8(java.io.OutputStream):int" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.io.SerializedString::putQuotedUTF8(java.nio.ByteBuffer):int" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.io.SerializedString::putUnquotedUTF8(java.nio.ByteBuffer):int" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="Adaptee" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter$Indenter" />
|
||||||
|
<role name="Adapter" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter" />
|
||||||
|
<role name="adaptee" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter::_objectIndenter:com.fasterxml.jackson.core.util.DefaultPrettyPrinter$Indenter" />
|
||||||
|
<role name="adaptee" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter::_arrayIndenter:com.fasterxml.jackson.core.util.DefaultPrettyPrinter$Indenter" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter::writeStartObject(com.fasterxml.jackson.core.JsonGenerator):void" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter::beforeObjectEntries(com.fasterxml.jackson.core.JsonGenerator):void" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter::writeObjectEntrySeparator(com.fasterxml.jackson.core.JsonGenerator):void" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter::writeEndObject(com.fasterxml.jackson.core.JsonGenerator, int):void" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter::writeStartArray(com.fasterxml.jackson.core.JsonGenerator):void" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter::beforeArrayValues(com.fasterxml.jackson.core.JsonGenerator):void" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter::writeArrayValueSeparator(com.fasterxml.jackson.core.JsonGenerator):void" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter::writeEndArray(com.fasterxml.jackson.core.JsonGenerator, int):void" />
|
||||||
|
</instance>
|
||||||
|
</pattern>
|
||||||
|
<pattern name="Command" />
|
||||||
|
<pattern name="Composite" />
|
||||||
|
<pattern name="Decorator">
|
||||||
|
<instance>
|
||||||
|
<role name="Component" element="com.fasterxml.jackson.core.JsonGenerator" />
|
||||||
|
<role name="Decorator" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate" />
|
||||||
|
<role name="component" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::delegate:com.fasterxml.jackson.core.JsonGenerator" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::getCodec():com.fasterxml.jackson.core.ObjectCodec" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::setCodec(com.fasterxml.jackson.core.ObjectCodec):com.fasterxml.jackson.core.JsonGenerator" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::version():com.fasterxml.jackson.core.Version" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::enable(com.fasterxml.jackson.core.JsonGenerator$Feature):com.fasterxml.jackson.core.JsonGenerator" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::disable(com.fasterxml.jackson.core.JsonGenerator$Feature):com.fasterxml.jackson.core.JsonGenerator" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::isEnabled(com.fasterxml.jackson.core.JsonGenerator$Feature):boolean" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::getFeatureMask():int" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::setFeatureMask(int):com.fasterxml.jackson.core.JsonGenerator" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::useDefaultPrettyPrinter():com.fasterxml.jackson.core.JsonGenerator" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::writeStartArray():void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::writeEndArray():void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::writeStartObject():void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::writeEndObject():void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::writeFieldName(java.lang.String):void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::writeFieldName(com.fasterxml.jackson.core.SerializableString):void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::writeString(java.lang.String):void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::writeString(char[], int, int):void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::writeString(com.fasterxml.jackson.core.SerializableString):void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::writeRawUTF8String(byte[], int, int):void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::writeUTF8String(byte[], int, int):void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::writeRaw(java.lang.String):void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::writeRaw(java.lang.String, int, int):void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::writeRaw(char[], int, int):void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::writeRaw(char):void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::writeRawValue(java.lang.String):void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::writeRawValue(java.lang.String, int, int):void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::writeRawValue(char[], int, int):void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::writeBinary(com.fasterxml.jackson.core.Base64Variant, byte[], int, int):void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::writeBinary(com.fasterxml.jackson.core.Base64Variant, java.io.InputStream, int):int" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::writeNumber(int):void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::writeNumber(long):void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::writeNumber(java.math.BigInteger):void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::writeNumber(double):void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::writeNumber(float):void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::writeNumber(java.math.BigDecimal):void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::writeNumber(java.lang.String):void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::writeBoolean(boolean):void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::writeNull():void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::writeObject(java.lang.Object):void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::writeTree(com.fasterxml.jackson.core.TreeNode):void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::getOutputContext():com.fasterxml.jackson.core.JsonStreamContext" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::flush():void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::close():void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonGeneratorDelegate::isClosed():boolean" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="Component" element="com.fasterxml.jackson.core.JsonParser" />
|
||||||
|
<role name="Decorator" element="com.fasterxml.jackson.core.util.JsonParserDelegate" />
|
||||||
|
<role name="component" element="com.fasterxml.jackson.core.util.JsonParserDelegate::delegate:com.fasterxml.jackson.core.JsonParser" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::setCodec(com.fasterxml.jackson.core.ObjectCodec):void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::getCodec():com.fasterxml.jackson.core.ObjectCodec" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::version():com.fasterxml.jackson.core.Version" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::close():void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::isClosed():boolean" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::clearCurrentToken():void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::getLastClearedToken():com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::overrideCurrentName(java.lang.String):void" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::getParsingContext():com.fasterxml.jackson.core.JsonStreamContext" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::getCurrentToken():com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::getCurrentTokenId():int" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::getCurrentName():java.lang.String" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::getCurrentLocation():com.fasterxml.jackson.core.JsonLocation" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::getTokenLocation():com.fasterxml.jackson.core.JsonLocation" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::hasCurrentToken():boolean" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::hasTokenId(int):boolean" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::hasToken(com.fasterxml.jackson.core.JsonToken):boolean" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::getText():java.lang.String" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::hasTextCharacters():boolean" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::getTextCharacters():char[]" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::getTextLength():int" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::getTextOffset():int" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::getBigIntegerValue():java.math.BigInteger" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::getDecimalValue():java.math.BigDecimal" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::getDoubleValue():double" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::getFloatValue():float" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::getIntValue():int" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::getLongValue():long" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::getNumberType():com.fasterxml.jackson.core.JsonParser$NumberType" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::getNumberValue():java.lang.Number" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::getValueAsString(java.lang.String):java.lang.String" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::getBinaryValue(com.fasterxml.jackson.core.Base64Variant):byte[]" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::nextToken():com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::nextValue():com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.util.JsonParserDelegate::skipChildren():com.fasterxml.jackson.core.JsonParser" />
|
||||||
|
</instance>
|
||||||
|
</pattern>
|
||||||
|
<pattern name="Observer" />
|
||||||
|
<pattern name="State">
|
||||||
|
<instance>
|
||||||
|
<role name="Context" element="com.fasterxml.jackson.core.JsonFactory" />
|
||||||
|
<role name="State" element="com.fasterxml.jackson.core.io.InputDecorator" />
|
||||||
|
<role name="state" element="com.fasterxml.jackson.core.JsonFactory::_inputDecorator:com.fasterxml.jackson.core.io.InputDecorator" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.JsonFactory::createParser(byte[]):com.fasterxml.jackson.core.JsonParser" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.JsonFactory::createParser(byte[], int, int):com.fasterxml.jackson.core.JsonParser" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.JsonFactory::_decorate(java.io.InputStream, com.fasterxml.jackson.core.io.IOContext):java.io.InputStream" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.JsonFactory::_decorate(java.io.Reader, com.fasterxml.jackson.core.io.IOContext):java.io.Reader" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="Context" element="com.fasterxml.jackson.core.JsonFactory" />
|
||||||
|
<role name="State" element="com.fasterxml.jackson.core.io.OutputDecorator" />
|
||||||
|
<role name="state" element="com.fasterxml.jackson.core.JsonFactory::_outputDecorator:com.fasterxml.jackson.core.io.OutputDecorator" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.JsonFactory::_decorate(java.io.OutputStream, com.fasterxml.jackson.core.io.IOContext):java.io.OutputStream" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.JsonFactory::_decorate(java.io.Writer, com.fasterxml.jackson.core.io.IOContext):java.io.Writer" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="Context" element="com.fasterxml.jackson.core.JsonFactory" />
|
||||||
|
<role name="State" element="com.fasterxml.jackson.core.SerializableString" />
|
||||||
|
<role name="state" element="com.fasterxml.jackson.core.JsonFactory::_rootValueSeparator:com.fasterxml.jackson.core.SerializableString" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.JsonFactory::getRootValueSeparator():java.lang.String" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="Context" element="com.fasterxml.jackson.core.json.WriterBasedJsonGenerator" />
|
||||||
|
<role name="State" element="com.fasterxml.jackson.core.SerializableString" />
|
||||||
|
<role name="state" element="com.fasterxml.jackson.core.json.WriterBasedJsonGenerator::_currentEscape:com.fasterxml.jackson.core.SerializableString" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.json.WriterBasedJsonGenerator::_prependOrWriteCharacterEscape(char, int):void" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.json.WriterBasedJsonGenerator::_prependOrWriteCharacterEscape(char[], int, int, char, int):int" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.json.WriterBasedJsonGenerator::_appendCharacterEscape(char, int):void" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="Context" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter" />
|
||||||
|
<role name="State" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter$Indenter" />
|
||||||
|
<role name="state" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter::_objectIndenter:com.fasterxml.jackson.core.util.DefaultPrettyPrinter$Indenter" />
|
||||||
|
<role name="state" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter::_arrayIndenter:com.fasterxml.jackson.core.util.DefaultPrettyPrinter$Indenter" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter::writeStartObject(com.fasterxml.jackson.core.JsonGenerator):void" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter::beforeObjectEntries(com.fasterxml.jackson.core.JsonGenerator):void" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter::writeObjectEntrySeparator(com.fasterxml.jackson.core.JsonGenerator):void" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter::writeEndObject(com.fasterxml.jackson.core.JsonGenerator, int):void" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter::writeStartArray(com.fasterxml.jackson.core.JsonGenerator):void" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter::beforeArrayValues(com.fasterxml.jackson.core.JsonGenerator):void" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter::writeArrayValueSeparator(com.fasterxml.jackson.core.JsonGenerator):void" />
|
||||||
|
<role name="Request()" element="com.fasterxml.jackson.core.util.DefaultPrettyPrinter::writeEndArray(com.fasterxml.jackson.core.JsonGenerator, int):void" />
|
||||||
|
</instance>
|
||||||
|
</pattern>
|
||||||
|
<pattern name="Strategy" />
|
||||||
|
<pattern name="Bridge">
|
||||||
|
<instance>
|
||||||
|
<role name="Implementor" element="com.fasterxml.jackson.core.io.CharacterEscapes" />
|
||||||
|
<role name="Abstraction" element="com.fasterxml.jackson.core.json.JsonGeneratorImpl" />
|
||||||
|
<role name="implementor" element="com.fasterxml.jackson.core.json.JsonGeneratorImpl::_characterEscapes:com.fasterxml.jackson.core.io.CharacterEscapes" />
|
||||||
|
<role name="Operation()" element="com.fasterxml.jackson.core.json.JsonGeneratorImpl::setCharacterEscapes(com.fasterxml.jackson.core.io.CharacterEscapes):com.fasterxml.jackson.core.JsonGenerator" />
|
||||||
|
</instance>
|
||||||
|
</pattern>
|
||||||
|
<pattern name="Template Method">
|
||||||
|
<instance>
|
||||||
|
<role name="AbstractClass" element="com.fasterxml.jackson.core.io.doubleparser.AbstractFloatingPointBitsFromCharSequence" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.io.doubleparser.AbstractFloatingPointBitsFromCharSequence::parseDecFloatLiteral(java.lang.CharSequence, int, int, int, boolean, boolean):long" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.io.doubleparser.AbstractFloatingPointBitsFromCharSequence::parseHexFloatLiteral(java.lang.CharSequence, int, int, int, boolean):long" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.io.doubleparser.AbstractFloatingPointBitsFromCharSequence::parseInfinity(java.lang.CharSequence, int, int, boolean):long" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.io.doubleparser.AbstractFloatingPointBitsFromCharSequence::parseNaN(java.lang.CharSequence, int, int):long" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="AbstractClass" element="com.fasterxml.jackson.core.io.doubleparser.AbstractFloatingPointBitsFromCharArray" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.io.doubleparser.AbstractFloatingPointBitsFromCharArray::parseDecFloatLiteral(char[], int, int, int, boolean, boolean):long" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.io.doubleparser.AbstractFloatingPointBitsFromCharArray::parseHexFloatLiteral(char[], int, int, int, boolean):long" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.io.doubleparser.AbstractFloatingPointBitsFromCharArray::parseInfinity(char[], int, int, boolean):long" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.io.doubleparser.AbstractFloatingPointBitsFromCharArray::parseNaN(char[], int, int):long" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="AbstractClass" element="com.fasterxml.jackson.core.JsonStreamContext" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonStreamContext::hasCurrentName():boolean" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonStreamContext::toString():java.lang.String" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="AbstractClass" element="com.fasterxml.jackson.core.JsonGenerator" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::getCurrentValue():java.lang.Object" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::setCurrentValue(java.lang.Object):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::configure(com.fasterxml.jackson.core.JsonGenerator$Feature, boolean):com.fasterxml.jackson.core.JsonGenerator" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::isEnabled(com.fasterxml.jackson.core.StreamWriteFeature):boolean" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::overrideStdFeatures(int, int):com.fasterxml.jackson.core.JsonGenerator" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writeStartArray(int):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writeStartArray(java.lang.Object):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writeStartObject(java.lang.Object):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writeFieldId(long):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writeArray(int[], int, int):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writeArray(long[], int, int):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writeArray(double[], int, int):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writeArray(java.lang.String[], int, int):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writeRaw(com.fasterxml.jackson.core.SerializableString):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writeRawValue(com.fasterxml.jackson.core.SerializableString):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writeBinary(byte[], int, int):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writeBinary(byte[]):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writeBinary(java.io.InputStream, int):int" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writeNumber(short):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writeNumber(char[], int, int):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writeEmbeddedObject(java.lang.Object):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writeTypePrefix(com.fasterxml.jackson.core.type.WritableTypeId):com.fasterxml.jackson.core.type.WritableTypeId" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writeTypeSuffix(com.fasterxml.jackson.core.type.WritableTypeId):com.fasterxml.jackson.core.type.WritableTypeId" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writePOJO(java.lang.Object):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writeBinaryField(java.lang.String, byte[]):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writeBooleanField(java.lang.String, boolean):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writeNullField(java.lang.String):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writeStringField(java.lang.String, java.lang.String):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writeNumberField(java.lang.String, short):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writeNumberField(java.lang.String, int):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writeNumberField(java.lang.String, long):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writeNumberField(java.lang.String, java.math.BigInteger):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writeNumberField(java.lang.String, float):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writeNumberField(java.lang.String, double):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writeNumberField(java.lang.String, java.math.BigDecimal):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writeArrayFieldStart(java.lang.String):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writeObjectFieldStart(java.lang.String):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::writeObjectField(java.lang.String, java.lang.Object):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::copyCurrentEvent(com.fasterxml.jackson.core.JsonParser):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::copyCurrentStructure(com.fasterxml.jackson.core.JsonParser):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::_copyCurrentContents(com.fasterxml.jackson.core.JsonParser):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonGenerator::_writeSimpleObject(java.lang.Object):void" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="AbstractClass" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::nextToken():com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_finishToken():com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_startDocument(int):com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_finishBOM(int):com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_startFieldNameAfterComma(int):com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_startValueExpectComma(int):com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_startValueExpectColon(int):com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_skipWS(int):int" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_startSlashComment(int):com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_finishHashComment(int):com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_finishCppComment(int):com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_finishCComment(int, boolean):com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_startAfterComment(int):com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_startFalseToken():com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_startTrueToken():com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_startNullToken():com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_finishKeywordToken(java.lang.String, int, com.fasterxml.jackson.core.JsonToken):com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_finishNonStdToken(int, int):com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_finishErrorToken():com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_startPositiveNumber(int):com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_startNegativeNumber():com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_startPositiveNumber():com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_startNumberLeadingZero():com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_finishNumberLeadingZeroes():com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_finishNumberLeadingPosNegZeroes(boolean):com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_finishNumberIntegralPart(char[], int):com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_startFloat(char[], int, int):com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_finishFloatFraction():com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_finishFloatExponent(boolean, int):com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_fastParseName():java.lang.String" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_parseMediumName(int, int):java.lang.String" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_parseMediumName2(int, int, int):java.lang.String" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_parseEscapedName(int, int, int):com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_finishUnquotedName(int, int, int):com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_finishAposName(int, int, int):com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_decodeSplitEscaped(int, int):int" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_startString():com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_finishRegularString():com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_startAposString():com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_finishAposString():com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_decodeSplitMultiByte(int, int, boolean):boolean" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_decodeSplitUTF8_3(int, int, int):boolean" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_decodeSplitUTF8_4(int, int, int):boolean" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase::_decodeFastCharEscape():int" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="AbstractClass" element="com.fasterxml.jackson.core.type.ResolvedType" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.type.ResolvedType::isReferenceType():boolean" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="AbstractClass" element="com.fasterxml.jackson.core.JsonParser" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonParser::currentLocation():com.fasterxml.jackson.core.JsonLocation" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonParser::currentTokenLocation():com.fasterxml.jackson.core.JsonLocation" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonParser::getCurrentValue():java.lang.Object" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonParser::setCurrentValue(java.lang.Object):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonParser::nextFieldName(com.fasterxml.jackson.core.SerializableString):boolean" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonParser::nextFieldName():java.lang.String" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonParser::nextTextValue():java.lang.String" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonParser::nextIntValue(int):int" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonParser::nextLongValue(long):long" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonParser::nextBooleanValue():java.lang.Boolean" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonParser::currentToken():com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonParser::currentTokenId():int" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonParser::currentName():java.lang.String" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonParser::getText(java.io.Writer):int" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonParser::getNumberValueExact():java.lang.Number" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonParser::getByteValue():byte" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonParser::getShortValue():short" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonParser::getBinaryValue():byte[]" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonParser::getValueAsString():java.lang.String" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.JsonParser::_codec():com.fasterxml.jackson.core.ObjectCodec" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="AbstractClass" element="com.fasterxml.jackson.core.base.ParserBase" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.base.ParserBase::close():void" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="AbstractClass" element="com.fasterxml.jackson.core.base.GeneratorBase" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.base.GeneratorBase::writeRawValue(java.lang.String):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.base.GeneratorBase::writeRawValue(java.lang.String, int, int):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.base.GeneratorBase::writeRawValue(char[], int, int):void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.base.GeneratorBase::writeRawValue(com.fasterxml.jackson.core.SerializableString):void" />
|
||||||
|
</instance>
|
||||||
|
<instance>
|
||||||
|
<role name="AbstractClass" element="com.fasterxml.jackson.core.base.ParserMinimalBase" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.base.ParserMinimalBase::nextValue():com.fasterxml.jackson.core.JsonToken" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.base.ParserMinimalBase::skipChildren():com.fasterxml.jackson.core.JsonParser" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.base.ParserMinimalBase::getValueAsBoolean(boolean):boolean" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.base.ParserMinimalBase::getValueAsInt(int):int" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.base.ParserMinimalBase::getValueAsLong(long):long" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.base.ParserMinimalBase::getValueAsDouble(double):double" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.base.ParserMinimalBase::getValueAsString(java.lang.String):java.lang.String" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.base.ParserMinimalBase::reportOverflowInt():void" />
|
||||||
|
<role name="TemplateMethod()" element="com.fasterxml.jackson.core.base.ParserMinimalBase::reportOverflowLong():void" />
|
||||||
|
</instance>
|
||||||
|
</pattern>
|
||||||
|
<pattern name="Visitor" />
|
||||||
|
<pattern name="Proxy" />
|
||||||
|
<pattern name="Proxy2" />
|
||||||
|
<pattern name="Chain of Responsibility" />
|
||||||
|
</system>
|
||||||
|
|
BIN
report.pdf
Normal file
BIN
report.pdf
Normal file
Binary file not shown.
70
report.tex
Normal file
70
report.tex
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
% vim: set ts=2 sw=2 et tw=80:
|
||||||
|
|
||||||
|
\documentclass[12pt,a4paper]{article}
|
||||||
|
\usepackage[utf8]{inputenc}
|
||||||
|
\usepackage[margin=2cm]{geometry}
|
||||||
|
\usepackage{hyperref}
|
||||||
|
|
||||||
|
\title{Assginment 1 -- Software Design and Modelling}
|
||||||
|
|
||||||
|
\author{Volodymyr Karpenko \and Claudio Maggioni}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
\maketitle
|
||||||
|
|
||||||
|
\section{Project selection process}
|
||||||
|
|
||||||
|
We need to find a project that is a single unit in terms of compilation
|
||||||
|
modules\footnote{A problem for Pattern4J as compiled \texttt{.class} files are
|
||||||
|
distributed across several directories and would have to be merged manually for
|
||||||
|
analyzing them}
|
||||||
|
self contained and with as little external dependencies as possible to ease the
|
||||||
|
analysis project. Additionally, it would be nice if we choose a project that we
|
||||||
|
already know as library clients.
|
||||||
|
|
||||||
|
\subsection {Projects Considered}
|
||||||
|
|
||||||
|
\begin{description}
|
||||||
|
\item[vavr-io/vavr] a Java library for functional programming, discarded as
|
||||||
|
the project is less than 20K LOC and doesn't meet the selection criteria;
|
||||||
|
\item[bitcoin4j/bitcoin4j] a Java implementation of the bitcoin protocol,
|
||||||
|
discarded as the project is distributed in several subprojects;
|
||||||
|
\item[FasterXML/jackson-core] a popular Java JSON serialization and
|
||||||
|
deserialization library. This repository contains the \textit{core}
|
||||||
|
component of the library, i.e. the library abstractions and interface to
|
||||||
|
support additional modules and the main JSON serialization and
|
||||||
|
deserialization capabilities. We chose this library because it meets the
|
||||||
|
selection criteria, it doesn't rely on external components for its
|
||||||
|
execution, and its project structure uses a single Maven module for its
|
||||||
|
sources and thus easy to analyze.
|
||||||
|
\end{description}
|
||||||
|
|
||||||
|
Therefore we chose \textbf{FasterXML/jackson-core}, specifically the sources
|
||||||
|
under the git tag \texttt{jackson-core-2.13.4}, the latest stable version of the
|
||||||
|
library at this time.
|
||||||
|
|
||||||
|
\section{Analysis}
|
||||||
|
|
||||||
|
We use
|
||||||
|
\href{https://users.encs.concordia.ca/~nikolaos/pattern\_detection.html}{\textit{Pattern4}}
|
||||||
|
as a pattern detection tool. This tool needs compiled \texttt{.class} files in
|
||||||
|
order to perform analysis. Therefore, as \texttt{jackson-core} is a standard
|
||||||
|
Maven project, we compile the sources using the command \texttt{mvn clean
|
||||||
|
compile}. The \texttt{pom.xml} of the library specifies Java 1.6 as a
|
||||||
|
compilation target, which is not supported by JDK 17 or above. We used JDK 11
|
||||||
|
instead, as it is the previous LTS version.
|
||||||
|
|
||||||
|
An XML dump of the \textit{Pattern4j} analysis results are included in the
|
||||||
|
submission as the file \texttt{analysis.xml}.
|
||||||
|
|
||||||
|
\subsection{Comments}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Lots of false positives for the Singleton pattern. Example,
|
||||||
|
com.fasterxml.jackson.core.sym.Name1 has a package private constructor and a
|
||||||
|
public static final instance of it, but reading the documentation the class
|
||||||
|
represents (short) JSON string literals and therefore is clearly
|
||||||
|
initialized by client code.
|
||||||
|
\item TBD
|
||||||
|
\end{itemize}
|
||||||
|
\end{document}
|
||||||
|
|
Reference in a new issue