alluxio.util.UnixMountInfo Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of alluxio-core-common Show documentation
Show all versions of alluxio-core-common Show documentation
Common utilities shared in Alluxio core modules
/*
* The Alluxio Open Foundation licenses this work under the Apache License, version 2.0
* (the "License"). You may not use this work except in compliance with the License, which is
* available at www.apache.org/licenses/LICENSE-2.0
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied, as more fully set forth in the License.
*
* See the NOTICE file distributed with this work for information regarding copyright ownership.
*/
package alluxio.util;
import com.google.common.base.MoreObjects;
import com.google.common.base.Objects;
import com.google.common.base.Optional;
/**
* Class representing an entry in a Unix /etc/fstab file.
*/
public final class UnixMountInfo {
private final Optional mDeviceSpec;
private final Optional mMountPoint;
private final Optional mFsType;
private final Options mMountOptions;
private UnixMountInfo(String deviceSpec, String mountPoint, String fsType, Options options) {
mDeviceSpec = Optional.fromNullable(deviceSpec);
mMountPoint = Optional.fromNullable(mountPoint);
mFsType = Optional.fromNullable(fsType);
mMountOptions = options == null ? new Options.Builder().build() : options;
}
/**
* @return the device spec
*/
public Optional getDeviceSpec() {
return mDeviceSpec;
}
/**
* @return the mount point
*/
public Optional getMountPoint() {
return mMountPoint;
}
/**
* @return the filesystem type
*/
public Optional getFsType() {
return mFsType;
}
/**
* @return the mount options
*/
public Options getOptions() {
return mMountOptions;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof UnixMountInfo)) {
return false;
}
UnixMountInfo that = (UnixMountInfo) o;
return Objects.equal(mDeviceSpec, that.mDeviceSpec)
&& Objects.equal(mMountPoint, that.mMountPoint)
&& Objects.equal(mFsType, that.mFsType)
&& Objects.equal(mMountOptions, that.mMountOptions);
}
@Override
public int hashCode() {
return Objects.hashCode(mDeviceSpec, mMountPoint, mFsType, mMountOptions);
}
@Override
public String toString() {
return MoreObjects.toStringHelper(this)
.add("deviceSpec", mDeviceSpec)
.add("mountPoint", mMountPoint)
.add("fsType", mFsType)
.add("options", mMountOptions)
.toString();
}
/** Builder for {@link UnixMountInfo}. */
public static class Builder {
private String mDeviceSpec;
private String mMountPoint;
private String mFsType;
private Options mOptions;
/** Constructs a new Unix mount info builder. */
public Builder() {}
/**
* @param deviceSpec the device spec to set
* @return the builder
*/
public Builder setDeviceSpec(String deviceSpec) {
mDeviceSpec = deviceSpec;
return this;
}
/**
* @param mountPoint the mount point to set
* @return the builder
*/
public Builder setMountPoint(String mountPoint) {
mMountPoint = mountPoint;
return this;
}
/**
* @param fsType the fs type to set
* @return the builder
*/
public Builder setFsType(String fsType) {
mFsType = fsType;
return this;
}
/**
* @param options the mount info options to set
* @return the builder
*/
public Builder setOptions(Options options) {
mOptions = options;
return this;
}
/**
* @return the built Unix mount info
*/
public UnixMountInfo build() {
return new UnixMountInfo(mDeviceSpec, mMountPoint, mFsType, mOptions);
}
}
/** Unix mount info options. */
public static final class Options {
private final Optional mSize;
private Options(Long size) {
mSize = Optional.fromNullable(size);
}
/**
* @return the mount point size
*/
public Optional getSize() {
return mSize;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof Options)) {
return false;
}
Options that = (Options) o;
return Objects.equal(mSize, that.mSize);
}
@Override
public int hashCode() {
return Objects.hashCode(mSize);
}
@Override
public String toString() {
return MoreObjects.toStringHelper(this)
.add("size", mSize)
.toString();
}
/** Builder for Unix mount info options. */
public static class Builder {
private Long mSize;
/** Constructs a new unix mount info options builder. */
public Builder() {}
/**
* @param size the mount size to set
* @return the builder
*/
public Builder setSize(Long size) {
mSize = size;
return this;
}
/**
* @return the built Unix mount info options
*/
public Options build() {
return new Options(mSize);
}
}
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy