package org.dcache.srm.handler;
import org.dcache.srm.v2_2.TPermissionMode;
public class PermissionMaskToTPermissionMode{
public static TPermissionMode maskToTPermissionMode(int permMask) {
switch(permMask) {
case 0: return TPermissionMode.NONE;
case 1: return TPermissionMode.X;
case 2: return TPermissionMode.W;
case 3: return TPermissionMode.WX;
case 4: return TPermissionMode.R;
case 5: return TPermissionMode.RX;
case 6: return TPermissionMode.RW;
case 7: return TPermissionMode.RWX;
default:
throw new IllegalArgumentException("illegal perm mask: "+permMask);
}
}
public static int permissionModetoMask(TPermissionMode mode) {
if (mode.getValue().equalsIgnoreCase(TPermissionMode.NONE.getValue())) {
return 0;
}
else if ( mode.getValue().equalsIgnoreCase(TPermissionMode.X.getValue())) {
return 1;
}
else if ( mode.getValue().equalsIgnoreCase(TPermissionMode.W.getValue())) {
return 2;
}
else if ( mode.getValue().equalsIgnoreCase(TPermissionMode.WX.getValue())) {
return 3;
}
else if ( mode.getValue().equalsIgnoreCase(TPermissionMode.R.getValue())) {
return 4;
}
else if ( mode.getValue().equalsIgnoreCase(TPermissionMode.RX.getValue())) {
return 5;
}
else if ( mode.getValue().equalsIgnoreCase(TPermissionMode.RW.getValue())) {
return 6;
}
else if ( mode.getValue().equalsIgnoreCase(TPermissionMode.RWX.getValue())) {
return 7;
}
else {
return 0;
}
}
}