62 * <cite>The Java™ Language Specification</cite>,
63 * section 13.1 "The Form of a Binary".
64 * </p></blockquote>
65 *
66 * <p>The case of names is significant. All names should be treated
67 * as case-sensitive. For example, some file systems have
68 * case-insensitive, case-aware file names. File objects representing
69 * such files should take care to preserve case by using {@link
70 * java.io.File#getCanonicalFile} or similar means. If the system is
71 * not case-aware, file objects must use other means to preserve case.
72 *
73 * <p><em><a id="relative_name">Relative names</a>:</em> some
74 * methods in this interface use relative names. A relative name is a
75 * non-null, non-empty sequence of path segments separated by '/'.
76 * '.' or '..' are invalid path segments. A valid relative name must
77 * match the "path-rootless" rule of <a
78 * href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>,
79 * section 3.3. Informally, this should be true:
80 *
81 * <!-- URI.create(relativeName).normalize().getPath().equals(relativeName) -->
82 * <pre> URI.{@linkplain java.net.URI#create create}(relativeName).{@linkplain java.net.URI#normalize normalize}().{@linkplain java.net.URI#getPath getPath}().equals(relativeName)</pre>
83 *
84 * <p>All methods in this interface might throw a SecurityException.
85 *
86 * <p>An object of this interface is not required to support
87 * multi-threaded access, that is, be synchronized. However, it must
88 * support concurrent access to different file objects created by this
89 * object.
90 *
91 * <p><em>Implementation note:</em> a consequence of this requirement
92 * is that a trivial implementation of output to a {@linkplain
93 * java.util.jar.JarOutputStream} is not a sufficient implementation.
94 * That is, rather than creating a JavaFileObject that returns the
95 * JarOutputStream directly, the contents must be cached until closed
96 * and then written to the JarOutputStream.
97 *
98 * <p>Unless explicitly allowed, all methods in this interface might
99 * throw a NullPointerException if given a {@code null} argument.
100 *
101 * @author Peter von der Ahé
102 * @author Jonathan Gibbons
|
62 * <cite>The Java™ Language Specification</cite>,
63 * section 13.1 "The Form of a Binary".
64 * </p></blockquote>
65 *
66 * <p>The case of names is significant. All names should be treated
67 * as case-sensitive. For example, some file systems have
68 * case-insensitive, case-aware file names. File objects representing
69 * such files should take care to preserve case by using {@link
70 * java.io.File#getCanonicalFile} or similar means. If the system is
71 * not case-aware, file objects must use other means to preserve case.
72 *
73 * <p><em><a id="relative_name">Relative names</a>:</em> some
74 * methods in this interface use relative names. A relative name is a
75 * non-null, non-empty sequence of path segments separated by '/'.
76 * '.' or '..' are invalid path segments. A valid relative name must
77 * match the "path-rootless" rule of <a
78 * href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>,
79 * section 3.3. Informally, this should be true:
80 *
81 * <!-- URI.create(relativeName).normalize().getPath().equals(relativeName) -->
82 * <pre> URI.{@linkplain java.net.URI#create create}(relativeName).{@linkplain java.net.URI#normalize() normalize}().{@linkplain java.net.URI#getPath getPath}().equals(relativeName)</pre>
83 *
84 * <p>All methods in this interface might throw a SecurityException.
85 *
86 * <p>An object of this interface is not required to support
87 * multi-threaded access, that is, be synchronized. However, it must
88 * support concurrent access to different file objects created by this
89 * object.
90 *
91 * <p><em>Implementation note:</em> a consequence of this requirement
92 * is that a trivial implementation of output to a {@linkplain
93 * java.util.jar.JarOutputStream} is not a sufficient implementation.
94 * That is, rather than creating a JavaFileObject that returns the
95 * JarOutputStream directly, the contents must be cached until closed
96 * and then written to the JarOutputStream.
97 *
98 * <p>Unless explicitly allowed, all methods in this interface might
99 * throw a NullPointerException if given a {@code null} argument.
100 *
101 * @author Peter von der Ahé
102 * @author Jonathan Gibbons
|