Class Location


  • public abstract class Location
    extends java.lang.Object
    Handles various forms of location from where classes can be imported in a consistent way. Any location will be treated like a URI, thus there will not be any platform dependent file separator problems.

    Examples for locations could be
    • file:///home/someuser/workspace/myproject/target/classes/myproject/Foo.class
    • jar:file:///home/someuser/.m2/repository/myproject/foolib.jar!/myproject/Foo.class
    • Method Detail

      • contains

        @PublicAPI(usage=ACCESS)
        public boolean contains​(java.lang.String part)
        Parameters:
        part - A part to check the respective location URI for
        Returns:
        true, if the respective URI contains the given part, false otherwise
      • matches

        @PublicAPI(usage=ACCESS)
        public boolean matches​(java.util.regex.Pattern pattern)
        Parameters:
        pattern - A pattern to compare the respective location URI against
        Returns:
        true, if the respective URI matches the given pattern, false otherwise
      • isArchive

        @PublicAPI(usage=ACCESS)
        public abstract boolean isArchive()
        This is a generalization of isJar(). Before JDK 9, the only archives were Jar files, starting with JDK 9, we also have JRTs (the JDK modules).
        Returns:
        true, if this location represents an archive, like a JAR or JRT, false otherwise
      • hashCode

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

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • toString

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