src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/FileAccess.java
author egahlin
Fri, 09 Aug 2019 01:18:18 +0200
branchJEP-349-branch
changeset 57690 9316d02dd4a5
child 57717 4ce66d271065
permissions -rw-r--r--
Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
57690
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
     1
package jdk.jfr.internal.consumer;
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
     2
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
     3
import java.io.File;
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
     4
import java.io.FileNotFoundException;
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
     5
import java.io.IOException;
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
     6
import java.io.RandomAccessFile;
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
     7
import java.nio.file.DirectoryStream;
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
     8
import java.nio.file.Files;
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
     9
import java.nio.file.Path;
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    10
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    11
// Protected by modular boundaries.
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    12
public abstract class FileAccess {
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    13
    public final static FileAccess PRIVILIGED = new UnPriviliged();
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    14
    // TODO: Should be changed Priviliged class
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    15
    public final static FileAccess UNPRIVILIGED = new UnPriviliged();
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    16
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    17
    abstract RandomAccessFile openRAF(File f, String mode) throws FileNotFoundException;
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    18
    abstract DirectoryStream<Path> newDirectoryStream(Path repository) throws IOException;
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    19
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    20
    static class Priviliged extends FileAccess {
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    21
        @Override
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    22
        RandomAccessFile openRAF(File f, String mode) {
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    23
            // TDOO: Implement
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    24
            return null;
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    25
        }
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    26
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    27
        @Override
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    28
        protected DirectoryStream<Path> newDirectoryStream(Path repository) {
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    29
            // TDOO: Implement
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    30
            return null;
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    31
        }
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    32
    }
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    33
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    34
    static class UnPriviliged extends FileAccess {
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    35
        @Override
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    36
        RandomAccessFile openRAF(File f, String mode) throws FileNotFoundException {
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    37
            return new RandomAccessFile(f, mode);
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    38
        }
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    39
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    40
        @Override
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    41
        DirectoryStream<Path> newDirectoryStream(Path dir) throws IOException {
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    42
            return Files.newDirectoryStream(dir);
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    43
        }
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    44
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    45
    }
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    46
}