Class Clazz

  • All Implemented Interfaces:
    java.lang.Comparable<Clazz>

    public final class Clazz
    extends java.lang.Object
    implements java.lang.Comparable<Clazz>
    A `Clazz` represents the single class identifier inside a classpath. There is only one `Clazz` per classname. It has incoming and outgoing edges defining references and dependencies. If there are different versions found, it collects their sources as ClazzpathUnits.
    • Field Detail

      • dependencies

        private final java.util.Set<Clazz> dependencies
      • references

        private final java.util.Set<Clazz> references
      • units

        private final java.util.Map<ClazzpathUnit,​java.lang.String> units
      • classFilenames

        private final java.util.Map<java.lang.String,​Clazz.ClazzFile> classFilenames
      • name

        private final java.lang.String name
      • EXTRACT_MULTI_RELEASE_JAVA_VERSION

        private static final java.util.regex.Pattern EXTRACT_MULTI_RELEASE_JAVA_VERSION
    • Constructor Detail

      • Clazz

        public Clazz​(java.lang.String pName)
    • Method Detail

      • parseClassFileName

        public static Clazz.ParsedFileName parseClassFileName​(java.lang.String pFileName)
        Determine the class name for the provided filename.
        Parameters:
        pFileName - The filename
        Returns:
        the class name for the provided filename OR null if it is not a .class file.
      • isMultiReleaseClassFile

        public static boolean isMultiReleaseClassFile​(java.lang.String pFileName)
        Determine if the provided filename is the name of a class that is specific for a java version.
        Parameters:
        pFileName - The filename to be evaluated
        Returns:
        true if this is a filename for a specific java version, false if it is not
      • addMultiReleaseFile

        public void addMultiReleaseFile​(ClazzpathUnit pUnit,
                                        java.lang.String pForJava,
                                        java.lang.String pFileName)
        Record that this class name can be found at:
        Parameters:
        pUnit - The unit in which the class can be found
        pForJava - For which Java version
        pFileName - Under which filename in the jar.
      • getName

        public java.lang.String getName()
      • getFileNames

        public java.util.Map<java.lang.String,​Clazz.ClazzFile> getFileNames()
      • addClazzpathUnit

        public void addClazzpathUnit​(ClazzpathUnit pUnit,
                                     java.lang.String pDigest)
      • removeClazzpathUnit

        public void removeClazzpathUnit​(ClazzpathUnit pUnit)
      • getClazzpathUnits

        public java.util.Set<ClazzpathUnit> getClazzpathUnits()
      • getVersions

        public java.util.Set<java.lang.String> getVersions()
      • addDependency

        public void addDependency​(Clazz pClazz)
      • removeDependency

        public void removeDependency​(Clazz pClazz)
      • getDependencies

        public java.util.Set<Clazz> getDependencies()
      • getReferences

        public java.util.Set<Clazz> getReferences()
      • getTransitiveDependencies

        public java.util.Set<Clazz> getTransitiveDependencies()
      • findTransitiveDependencies

        void findTransitiveDependencies​(java.util.Set<? super Clazz> pAll)
      • equals

        public boolean equals​(java.lang.Object pO)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • compareTo

        public int compareTo​(Clazz pO)
        Specified by:
        compareTo in interface java.lang.Comparable<Clazz>
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object