@startuml !include jb-plantuml-theme.puml :find-icon; note right Externally called method ""IconLoader.findIcon"" end note :find-icon-load; note right Internally called method ""CachedImageIcon.loadImage"". Called numerous times per ""CachedImageIcon"" instance — to compute a new scale. end note if (Is SVG) then (yes) :svg-load] else (no) :png-load] endif if (Is Cached) then (yes) else (no) if (Is resourceClass Provided) then (yes) :load-from-resource] if (Is prebuiltCacheId Provided) then (yes) :svg-prebuilt] :Return Image; detach; else if (Is Resource Exist) then (yes) else (no) ' That's why load-from-resource maybe not equal to sum of ""svg-load"" and ""png-load"" :Return ""null""; detach; endif endif else (no) :load-from-url] endif if (Is SVG) then (yes) :svg-cache-read] if (Is Cached) then (yes) else (no) :svg-decode] endif else (no) :png-decode] endif endif :Return Image; @enduml