/*
* 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.wire;
import alluxio.annotation.PublicApi;
import alluxio.thrift.LoadMetadataTType;
import javax.annotation.concurrent.ThreadSafe;
/**
* Types for loading metadata.
*/
@PublicApi
@ThreadSafe
public enum LoadMetadataType {
/**
* Never loads metadata.
*/
Never(0),
/**
* Loads metadata only at the first time of listing status on a directory.
*/
Once(1),
/**
* Always load metadata when listing status on a directory.
*/
Always(2),
;
private final int mValue;
LoadMetadataType(int value) {
mValue = value;
}
/**
* @return the integer value of the LoadMetadataType
*/
public int getValue() {
return mValue;
}
/**
* @param loadMetadataType the {@link LoadMetadataType}
* @return the thrift representation of this enum
*/
public static LoadMetadataTType toThrift(LoadMetadataType loadMetadataType) {
return LoadMetadataTType.findByValue(loadMetadataType.getValue());
}
/**
* @param loadMetadataTType the thrift representation of loadMetadataType
* @return the {@link LoadMetadataType}
*/
public static LoadMetadataType fromThrift(LoadMetadataTType loadMetadataTType) {
switch (loadMetadataTType.getValue()) {
case 0:
return Never;
case 1:
return Once;
case 2:
return Always;
default:
return null;
}
}
}