private static QueryParamBuilder toQueryParam(MSentryGMPrivilege privilege) {
QueryParamBuilder paramBuilder = QueryParamBuilder.newQueryParamBuilder();
paramBuilder.add(SERVICE_NAME, SentryStore.toNULLCol(privilege.getServiceName()), true)
.add(COMPONENT_NAME, SentryStore.toNULLCol(privilege.getComponentName()), true)
.add(SCOPE, SentryStore.toNULLCol(privilege.getScope()), true)
.add(ACTION, SentryStore.toNULLCol(privilege.getAction()), true);
Boolean grantOption = privilege.getGrantOption();
paramBuilder.addObject(SentryConstants.GRANT_OPTION, grantOption);
List<? extends Authorizable> authorizables = privilege.getAuthorizables();
int nAuthorizables = authorizables.size();
for (int i = 0; i < MSentryGMPrivilege.AUTHORIZABLE_LEVEL; i++) {
String resourceName = MSentryGMPrivilege.PREFIX_RESOURCE_NAME + String.valueOf(i);
String resourceType = MSentryGMPrivilege.PREFIX_RESOURCE_TYPE + String.valueOf(i);
if (i >= nAuthorizables) {
paramBuilder.addNull(resourceName);
paramBuilder.addNull(resourceType);
} else {
paramBuilder.add(resourceName, authorizables.get(i).getName(), true);
paramBuilder.add(resourceType, authorizables.get(i).getTypeName(), true);
}
}
return paramBuilder;
}