Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openjdk-multiarch-jdk8u
Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/src/share/classes/java/nio/file/attribute/DosFileAttributeView.java
38918 views
1
/*
2
* Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation. Oracle designates this
8
* particular file as subject to the "Classpath" exception as provided
9
* by Oracle in the LICENSE file that accompanied this code.
10
*
11
* This code is distributed in the hope that it will be useful, but WITHOUT
12
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14
* version 2 for more details (a copy is included in the LICENSE file that
15
* accompanied this code).
16
*
17
* You should have received a copy of the GNU General Public License version
18
* 2 along with this work; if not, write to the Free Software Foundation,
19
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20
*
21
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22
* or visit www.oracle.com if you need additional information or have any
23
* questions.
24
*/
25
26
package java.nio.file.attribute;
27
28
import java.io.IOException;
29
30
/**
31
* A file attribute view that provides a view of the legacy "DOS" file attributes.
32
* These attributes are supported by file systems such as the File Allocation
33
* Table (FAT) format commonly used in <em>consumer devices</em>.
34
*
35
* <p> A {@code DosFileAttributeView} is a {@link BasicFileAttributeView} that
36
* additionally supports access to the set of DOS attribute flags that are used
37
* to indicate if the file is read-only, hidden, a system file, or archived.
38
*
39
* <p> Where dynamic access to file attributes is required, the attributes
40
* supported by this attribute view are as defined by {@code
41
* BasicFileAttributeView}, and in addition, the following attributes are
42
* supported:
43
* <blockquote>
44
* <table border="1" cellpadding="8" summary="Supported attributes">
45
* <tr>
46
* <th> Name </th>
47
* <th> Type </th>
48
* </tr>
49
* <tr>
50
* <td> readonly </td>
51
* <td> {@link Boolean} </td>
52
* </tr>
53
* <tr>
54
* <td> hidden </td>
55
* <td> {@link Boolean} </td>
56
* </tr>
57
* <tr>
58
* <td> system </td>
59
* <td> {@link Boolean} </td>
60
* </tr>
61
* <tr>
62
* <td> archive </td>
63
* <td> {@link Boolean} </td>
64
* </tr>
65
* </table>
66
* </blockquote>
67
*
68
* <p> The {@link java.nio.file.Files#getAttribute getAttribute} method may
69
* be used to read any of these attributes, or any of the attributes defined by
70
* {@link BasicFileAttributeView} as if by invoking the {@link #readAttributes
71
* readAttributes()} method.
72
*
73
* <p> The {@link java.nio.file.Files#setAttribute setAttribute} method may
74
* be used to update the file's last modified time, last access time or create
75
* time attributes as defined by {@link BasicFileAttributeView}. It may also be
76
* used to update the DOS attributes as if by invoking the {@link #setReadOnly
77
* setReadOnly}, {@link #setHidden setHidden}, {@link #setSystem setSystem}, and
78
* {@link #setArchive setArchive} methods respectively.
79
*
80
* @since 1.7
81
*/
82
83
public interface DosFileAttributeView
84
extends BasicFileAttributeView
85
{
86
/**
87
* Returns the name of the attribute view. Attribute views of this type
88
* have the name {@code "dos"}.
89
*/
90
@Override
91
String name();
92
93
/**
94
* @throws IOException {@inheritDoc}
95
* @throws SecurityException {@inheritDoc}
96
*/
97
@Override
98
DosFileAttributes readAttributes() throws IOException;
99
100
/**
101
* Updates the value of the read-only attribute.
102
*
103
* <p> It is implementation specific if the attribute can be updated as an
104
* atomic operation with respect to other file system operations. An
105
* implementation may, for example, require to read the existing value of
106
* the DOS attribute in order to update this attribute.
107
*
108
* @param value
109
* the new value of the attribute
110
*
111
* @throws IOException
112
* if an I/O error occurs
113
* @throws SecurityException
114
* In the case of the default, and a security manager is installed,
115
* its {@link SecurityManager#checkWrite(String) checkWrite} method
116
* is invoked to check write access to the file
117
*/
118
void setReadOnly(boolean value) throws IOException;
119
120
/**
121
* Updates the value of the hidden attribute.
122
*
123
* <p> It is implementation specific if the attribute can be updated as an
124
* atomic operation with respect to other file system operations. An
125
* implementation may, for example, require to read the existing value of
126
* the DOS attribute in order to update this attribute.
127
*
128
* @param value
129
* the new value of the attribute
130
*
131
* @throws IOException
132
* if an I/O error occurs
133
* @throws SecurityException
134
* In the case of the default, and a security manager is installed,
135
* its {@link SecurityManager#checkWrite(String) checkWrite} method
136
* is invoked to check write access to the file
137
*/
138
void setHidden(boolean value) throws IOException;
139
140
/**
141
* Updates the value of the system attribute.
142
*
143
* <p> It is implementation specific if the attribute can be updated as an
144
* atomic operation with respect to other file system operations. An
145
* implementation may, for example, require to read the existing value of
146
* the DOS attribute in order to update this attribute.
147
*
148
* @param value
149
* the new value of the attribute
150
*
151
* @throws IOException
152
* if an I/O error occurs
153
* @throws SecurityException
154
* In the case of the default, and a security manager is installed,
155
* its {@link SecurityManager#checkWrite(String) checkWrite} method
156
* is invoked to check write access to the file
157
*/
158
void setSystem(boolean value) throws IOException;
159
160
/**
161
* Updates the value of the archive attribute.
162
*
163
* <p> It is implementation specific if the attribute can be updated as an
164
* atomic operation with respect to other file system operations. An
165
* implementation may, for example, require to read the existing value of
166
* the DOS attribute in order to update this attribute.
167
*
168
* @param value
169
* the new value of the attribute
170
*
171
* @throws IOException
172
* if an I/O error occurs
173
* @throws SecurityException
174
* In the case of the default, and a security manager is installed,
175
* its {@link SecurityManager#checkWrite(String) checkWrite} method
176
* is invoked to check write access to the file
177
*/
178
void setArchive(boolean value) throws IOException;
179
}
180
181