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

com.jelastic.api.system.persistence.FilePermissions Maven / Gradle / Ivy

There is a newer version: 8.12-1
Show newest version
/*Server class MD5: b92481757beed62fea62fab691e6756d*/
package com.jelastic.api.system.persistence;

import java.util.HashSet;
import java.util.Set;
import com.jelastic.api.common.Constants;
import com.jelastic.api.core.orm.dao.AbstractEntity;
import com.jelastic.api.core.utils.StringUtils;
import com.jelastic.api.data.SourceAddressType;
import com.jelastic.api.data.MountProtocol;

/**
 * @name Jelastic API Client
 * @version 8.11.2
 * @copyright Jelastic, Inc.
 */
public class FilePermissions extends AbstractEntity {

    public static final String ID = "id";

    public static final String FILE_PERMISSIONS_COLUMN = "filePermissions";

    public static final String STORAGE = "storage";

    public static final String PROTOCOL = "protocol";

    private String keyword;

    private String filePath;

    private String srcHost;

    private String srcPath;

    private Boolean isFuse;

    private MountProtocol protocol;

    private String permissions;

    private SoftwareNode softNode;

    private FilePermissionCreator creator;

    private Set filters = new HashSet<>();

    private String user;

    private SoftwareNode storage;

    private boolean isDir;

    public SoftwareNode getSoftNode() {
        return softNode;
    }

    public void setSoftNode(SoftwareNode softNode) {
        this.softNode = softNode;
    }

    private SoftwareNode volumeFromNode;

    private SourceAddressType srcAddressType = SourceAddressType.DOMAIN;

    public String getPermissions() {
        return permissions;
    }

    public void setPermissions(String permissions) {
        this.permissions = permissions;
    }

    public String getKeyword() {
        return keyword;
    }

    public void setKeyword(String keyword) {
        this.keyword = keyword;
    }

    public String getFilePath() {
        return filePath;
    }

    public void setFilePath(String filePath) {
        this.filePath = filePath;
    }

    public Set getFilters() {
        return filters;
    }

    public void setFilters(Set filters) {
        this.filters = filters;
    }

    public String getUser() {
        return user;
    }

    public void setUser(String user) {
        this.user = user;
    }

    public String getSrcPath() {
        return srcPath;
    }

    public boolean isMounted() {
        return this.srcPath != null;
    }

    public void setSrcPath(String srcPath) {
        this.srcPath = srcPath;
    }

    public SoftwareNode getStorage() {
        return storage;
    }

    public void setStorage(SoftwareNode storage) {
        this.storage = storage;
    }

    public String getSrcHost() {
        return srcHost;
    }

    public void setSrcHost(String srcHost) {
        this.srcHost = srcHost;
    }

    public MountProtocol getProtocol() {
        return protocol;
    }

    public void setProtocol(MountProtocol protocol) {
        this.protocol = protocol;
    }

    public boolean isExternalMount() {
        return this.storage == null;
    }

    public boolean isReadOnlyPermission() {
        return "r".equals(permissions);
    }

    public FilePermissionCreator getCreator() {
        return creator;
    }

    public void setCreator(FilePermissionCreator creator) {
        this.creator = creator;
    }

    public boolean isDir() {
        return isDir;
    }

    public void setDir(boolean isDir) {
        this.isDir = isDir;
    }

    public SoftwareNode getVolumeFromNode() {
        return volumeFromNode;
    }

    public void setVolumeFromNode(SoftwareNode volumeFromNode) {
        this.volumeFromNode = volumeFromNode;
    }

    public SourceAddressType getSrcAddressType() {
        return srcAddressType != null ? srcAddressType : SourceAddressType.DOMAIN;
    }

    public void setSrcAddressType(SourceAddressType srcAddressType) {
        this.srcAddressType = srcAddressType;
    }

    public Boolean getFuse() {
        return isFuse;
    }

    public void setFuse(Boolean fuse) {
        isFuse = fuse;
    }

    public FilePermissions cloneTo(FilePermissions cloned) {
        cloned.setFilePath(this.filePath);
        cloned.setSrcPath(this.srcPath);
        cloned.setSrcHost(this.srcHost);
        cloned.setProtocol(this.protocol);
        cloned.setPermissions(this.permissions);
        cloned.setKeyword(this.keyword);
        cloned.setUser(this.user);
        cloned.setStorage(this.storage);
        cloned.setCreator(this.creator);
        cloned.setDir(this.isDir);
        cloned.setVolumeFromNode(this.volumeFromNode);
        cloned.setSrcAddressType(this.srcAddressType);
        cloned.setFuse(this.isFuse);
        return cloned;
    }

    public void copyMountedInfo(FilePermissions from) {
        this.srcHost = from.getSrcHost();
        this.srcPath = from.getSrcPath();
    }

    @Override
    public FilePermissions clone() {
        FilePermissions cloned = new FilePermissions();
        return cloneTo(cloned);
    }

    public boolean isEqualsMount(FilePermissions compared) {
        if (!StringUtils.equals(this.filePath, compared.filePath)) {
            return false;
        }
        if (!StringUtils.equals(this.srcPath, compared.srcPath)) {
            return false;
        }
        if (!StringUtils.equals(this.filePath, compared.filePath)) {
            return false;
        }
        if (!StringUtils.equals(this.srcHost, compared.srcHost)) {
            return false;
        }
        if (this.protocol != compared.protocol) {
            return false;
        }
        if (!StringUtils.equals(this.permissions, compared.permissions)) {
            return false;
        }
        if (!StringUtils.equals(this.user, compared.user)) {
            return false;
        }
        if (this.creator != compared.creator) {
            return false;
        }
        if ((this.storage == null && compared.storage != null) || (this.storage != null && compared.storage == null)) {
            return false;
        }
        if (this.storage != null && (this.storage.getId() != compared.storage.getId())) {
            return false;
        }
        return true;
    }

    public static FilePermissions createMountedFilePermission(SoftwareNode storageSoftNode, String sourcePath, String sourceHost, String path, MountProtocol protocol, String name, FilePermissionCreator filePermissionCreator, boolean readOnly, SoftwareNode volumesFromSoftNode, SourceAddressType sourceAddressType) {
        FilePermissions filePermissions = new FilePermissions();
        filePermissions.setSrcPath(sourcePath);
        filePermissions.setFilePath(path);
        filePermissions.setProtocol(protocol);
        filePermissions.setKeyword(name);
        filePermissions.setPermissions(readOnly ? Constants.FILE_READ_ONLY_PERMISSIONS : Constants.FILE_RWD_PERMISSIONS);
        filePermissions.setCreator(filePermissionCreator);
        filePermissions.setDir(true);
        filePermissions.setVolumeFromNode(volumesFromSoftNode);
        filePermissions.setSrcAddressType(sourceAddressType);
        if (storageSoftNode == null) {
            filePermissions.setSrcHost(sourceHost);
        } else {
            filePermissions.setSrcHost(sourceHost);
            filePermissions.setStorage(storageSoftNode);
        }
        return filePermissions;
    }

    public static FilePermissions createMountedFilePermission(SoftwareNode storageSoftNode, String sourcePath, String sourceHost, String path, MountProtocol protocol, String name, FilePermissionCreator filePermissionCreator, boolean readOnly, SoftwareNode volumesFromSoftNode, SourceAddressType sourceAddressType, Boolean isFuse) {
        FilePermissions filePermissions = createMountedFilePermission(storageSoftNode, sourcePath, sourceHost, path, protocol, name, filePermissionCreator, readOnly, volumesFromSoftNode, sourceAddressType);
        filePermissions.setFuse(isFuse);
        return filePermissions;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy