All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.kestra.storage.local.LocalFileAttributes Maven / Gradle / Ivy

There is a newer version: 0.18.8
Show newest version
package io.kestra.storage.local;

import com.fasterxml.jackson.annotation.JsonIgnore;
import io.kestra.core.storages.FileAttributes;
import lombok.Builder;
import lombok.Value;

import javax.naming.directory.InvalidAttributesException;
import java.nio.file.attribute.BasicFileAttributes;

import static io.kestra.core.storages.FileAttributes.FileType.*;

@Value
@Builder
public class LocalFileAttributes implements FileAttributes {
    String fileName;

    BasicFileAttributes basicFileAttributes;

    @Override
    public long getLastModifiedTime() {
        return basicFileAttributes.lastModifiedTime().toMillis();
    }

    @Override
    public long getCreationTime() {
        return basicFileAttributes.creationTime().toMillis();
    }

    @Override
    public FileType getType() {
        if (basicFileAttributes.isRegularFile()) {
            return File;
        } else if (basicFileAttributes.isDirectory()) {
            return Directory;
        } else {
            throw new RuntimeException("Unknown type for file %s".formatted(fileName));
        }
    }

    @Override
    public long getSize() {
        return basicFileAttributes.size();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy