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