Class RenderUtils
java.lang.Object
ru.vyarus.dropwizard.guice.debug.util.RenderUtils
Helper utilities for diagnostic info rendering. Uses copy of logback's
TargetLengthBasedClassNameAbbreviator
to shrink full class name to predictable size.- Since:
- 14.07.2016
-
Method Summary
Modifier and TypeMethodDescriptionstatic Stringstatic StringgetClassName(Class<?> type) Should be used instead ofClass.getSimpleName()because for anonymous classes it leads to empty string.static StringgetFullClassName(Class<?> type) The same asgetClassName(Class)but for inner classes would preserve upper classes.static StringRenders markers as: *marker1,marker2..static StringrenderAnnotation(Annotation annotation) Render annotation.static StringrenderClass(Class<?> type) static StringrenderClassLine(Class<?> type) Shortcut forrenderClassLine(Class, List)to render without markers.static StringrenderClassLine(Class<?> type, int pos, List<String> markers) Renders scope as: class-simple-name#pos (class-package) *markers.static StringrenderClassLine(Class<?> type, List<String> markers) Renders class as: class-simple-name (class-package) *markers.static StringrenderDisabledClassLine(Class<?> type) Render disabled class as: -class-simple-name (class-package).static StringrenderDisabledClassLine(Class<?> type, int pos, List<String> markers) Render disabled class as: -class-simple-name#pos (class-package) *markers.static StringRenders disabled installer line.static StringrenderInstaller(Class<FeatureInstaller> type, List<String> markers) Render installer line.static StringrenderPackage(Class<?> type) If provided type is inner class then declaring class will be rendered instead of package.
-
Method Details
-
renderInstaller
Render installer line. Assuming installer class always ends with Installer and by removing this postfix and converting rest to lower case we can get human readable installer name. Result may be worse for multi-word cases, but anyway it's pretty readable.Format: human-readable-installer-name (installer-class) *markers.
- Parameters:
type- installer classmarkers- markers- Returns:
- rendered installer line
-
renderDisabledInstaller
Renders disabled installer line. The same as installer line, but with '-' before installer name and without markers.- Parameters:
type- disabled installer class- Returns:
- rendered disabled installer line
-
renderClassLine
Renders class as: class-simple-name (class-package) *markers. For anonymous class simple name will be Class$1.- Parameters:
type- classmarkers- markers- Returns:
- rendered class line
-
renderClassLine
Shortcut forrenderClassLine(Class, List)to render without markers.- Parameters:
type- class- Returns:
- rendered clas line
-
renderClassLine
Renders scope as: class-simple-name#pos (class-package) *markers. For position 1 position is not rendered.- Parameters:
type- instance classpos- instance position number (registration order) in scopemarkers- markers- Returns:
- rendered scope line
-
renderDisabledClassLine
Render disabled class as: -class-simple-name (class-package).- Parameters:
type- class- Returns:
- rendered disabled class line
-
renderDisabledClassLine
Render disabled class as: -class-simple-name#pos (class-package) *markers.- Parameters:
type- classpos- instance positionmarkers- markers (may be null)- Returns:
- rendered disabled class line
-
renderClass
- Parameters:
type- class to render- Returns:
- class rendered in abbreviated manner (to fit it into 36 chars)
- See Also:
-
renderPackage
If provided type is inner class then declaring class will be rendered instead of package.- Parameters:
type- class to render package- Returns:
- class package rendered in abbreviated manner (to fit nto 20 chars)
- See Also:
-
brackets
- Parameters:
string- string to apply brackets- Returns:
- provided string inside brackets
-
markers
Renders markers as: *marker1,marker2..- Parameters:
markers- markers to render (may be null)- Returns:
- rendered markers or empty string if no markers provided
-
getClassName
Should be used instead ofClass.getSimpleName()because for anonymous classes it leads to empty string.- Parameters:
type- type to get class name from- Returns:
- class name
-
getFullClassName
The same asgetClassName(Class)but for inner classes would preserve upper classes. For example, would printSomeClass$Innerinstead of justInnerfor inner class.- Parameters:
type- type to get class name from- Returns:
- full class name (including root classes for inner class declarations)
-
renderAnnotation
Render annotation. Supports only "value" annotation method - other possible methods simply ignored.- Parameters:
annotation- annotation to render- Returns:
- rendered annotation string
-