Class EnhancedClassDataBase

    • Field Detail

      • util

        protected Util util
      • annotationNames

        protected final java.util.Set<java.lang.String> annotationNames
      • className

        protected java.lang.String className
      • annoNamesForClass

        protected final java.util.Set<java.lang.String> annoNamesForClass
      • annoToHolderName

        protected final java.util.Map<java.lang.String,​java.lang.String> annoToHolderName
      • methodNames

        protected final java.util.List<java.lang.String> methodNames
      • methodDescriptions

        protected final java.util.List<java.lang.String> methodDescriptions
      • methodTPNames

        protected final java.util.List<java.lang.String> methodTPNames
      • methodAnnoList

        protected final java.util.List<java.lang.String> methodAnnoList
      • infoMethodDescs

        protected final java.util.Set<java.lang.String> infoMethodDescs
      • mmMethodDescs

        protected final java.util.Set<java.lang.String> mmMethodDescs
      • methodToAnno

        protected final java.util.Map<java.lang.String,​java.lang.String> methodToAnno
    • Constructor Detail

      • EnhancedClassDataBase

        protected EnhancedClassDataBase​(Util util,
                                        java.util.Set<java.lang.String> annotationNames)
    • Method Detail

      • getClassName

        public java.lang.String getClassName()
        Description copied from interface: EnhancedClassData
        Return the internal name of the class.
        Specified by:
        getClassName in interface EnhancedClassData
        Returns:
        The class name.
      • getAnnotationToHolderName

        public java.util.Map<java.lang.String,​java.lang.String> getAnnotationToHolderName()
        Description copied from interface: EnhancedClassData
        Map from MM annotation name to the name of the holder field that contains the SynchronizedHolder for the corresponding MethodMonitor. The domain of this map is the set of MM annotations on this class.
        Specified by:
        getAnnotationToHolderName in interface EnhancedClassData
        Returns:
        Map from MM annotations defined on this class to the names of the holder fields.
      • getMethodNames

        public java.util.List<java.lang.String> getMethodNames()
        Description copied from interface: EnhancedClassData
        List of method names for all MM methods and info methods in the class. Order is significant, as the index of the method in the list is the ordinal used to represent it. This list is in sorted order.
        Specified by:
        getMethodNames in interface EnhancedClassData
        Returns:
        List of all method tracing names in sorted order.
      • getMethodIndex

        public int getMethodIndex​(java.lang.String methodName)
        Description copied from interface: EnhancedClassData
        Index of method name in the list of method names.
        Specified by:
        getMethodIndex in interface EnhancedClassData
        Parameters:
        methodName - The method name as defined for tracing.
        Returns:
        the method index
      • getHolderName

        public java.lang.String getHolderName​(java.lang.String fullMethodDescriptor)
        Description copied from interface: EnhancedClassData
        Name of the holder fields corresponding to a particular method. Note that the full descriptor (name + arg/return descriptor) is used to unambiguously identify the method in the class.
        Specified by:
        getHolderName in interface EnhancedClassData
        Parameters:
        fullMethodDescriptor - The full method descriptor of the method.
        Returns:
        The name of the holder field used for this method.
      • isTracedClass

        public boolean isTracedClass()
        Description copied from interface: EnhancedClassData
        Returns true iff this class is monitored.
        Specified by:
        isTracedClass in interface EnhancedClassData
        Returns:
        true iff this class has one or more MM annotations.
      • getDescriptions

        public java.util.List<java.lang.String> getDescriptions()
        List of descriptions of monitored methods and info methods. If no description was given in the annotations, the value is "".
        Specified by:
        getDescriptions in interface EnhancedClassData
        Returns:
        List of descriptions in the same order as in getMethodTracingNames.
      • getTimingPointTypes

        public java.util.List<TimingPointType> getTimingPointTypes()
        List of timing point types of monitored methods and info methods. The list contains BOTH for a monitored method. An info method that does not represent a timing point is represented by NONE.
        Specified by:
        getTimingPointTypes in interface EnhancedClassData
        Returns:
        List of TimingPointTypes in the same order as in getMethodTracingNames.
      • getTimingPointNames

        public java.util.List<java.lang.String> getTimingPointNames()
        Description copied from interface: EnhancedClassData
        List of timing point names corresponding to method names. For monitored methods, this is just the method name. For info methods whose tpType is not NONE, this is specified in tpName.
        Specified by:
        getTimingPointNames in interface EnhancedClassData
        Returns:
        List of timing point names, in the same order as in getMethodTracingNames.
      • getMethodMMAnnotationName

        public java.util.List<java.lang.String> getMethodMMAnnotationName()
        Description copied from interface: EnhancedClassData
        List of annotation names for each info method and monitored method. It is interpreted as follows:
        • If the entry in the list is not null, it is the only annotation applicable to this method. This is the case for monitored methods.
        • If the entry in the list is null, all annotations on the enclosing class apply to this method. This is the case for an InfoMethod, which can be called from any monitored method regardless of the annotation on the monitored method.
        Specified by:
        getMethodMMAnnotationName in interface EnhancedClassData
        Returns:
        List of annotation names for methods.