package com.thinkbiganalytics.datalake.authorization.rest.model;
/*-
* #%L
* thinkbig-ranger-rest-client
* %%
* Copyright (C) 2017 ThinkBig Analytics
* %%
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* #L%
*/
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*/
public class RangerPolicies {
private int id;
private int startIndex;
private int pageSize;
private int totalCount;
private int resultSize;
private String policyName;
private List<String> columns;
private List<String> columnFamilies;
private List<String> tables;
private List<String> udfs;
private List<String> databases;
private String groupName;
private String repositoryType;
private Boolean isRecursive;
private String repositoryName;
private String username;
private Boolean isEnabled;
private List<RangerPolicy> vXPolicies;
public String getPolicyName() {
return policyName;
}
public void setPolicyName(String policyName) {
this.policyName = policyName;
}
public List<String> getColumns() {
return columns;
}
public void setColumns(List<String> columns) {
this.columns = columns;
}
public List<String> getColumnFamilies() {
return columnFamilies;
}
public void setColumnFamilies(List<String> columnFamilies) {
this.columnFamilies = columnFamilies;
}
public List<String> getTables() {
return tables;
}
public void setTables(List<String> tables) {
this.tables = tables;
}
public List<String> getUdfs() {
return udfs;
}
public void setUdfs(List<String> udfs) {
this.udfs = udfs;
}
public List<String> getDatabases() {
return databases;
}
public void setDatabases(List<String> databases) {
this.databases = databases;
}
public String getGroupName() {
return groupName;
}
public void setGroupName(String groupName) {
this.groupName = groupName;
}
public String getRepositoryType() {
return repositoryType;
}
public void setRepositoryType(String repositoryType) {
this.repositoryType = repositoryType;
}
public Boolean getIsRecursive() {
return isRecursive;
}
public void setIsRecursive(Boolean isRecursive) {
this.isRecursive = isRecursive;
}
public String getRepositoryName() {
return repositoryName;
}
public void setRepositoryName(String repositoryName) {
this.repositoryName = repositoryName;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Boolean getIsEnabled() {
return isEnabled;
}
public void setIsEnabled(Boolean isEnabled) {
this.isEnabled = isEnabled;
}
public int getStartIndex() {
return startIndex;
}
public void setStartIndex(int startIndex) {
this.startIndex = startIndex;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotalCount() {
return totalCount;
}
public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
}
public int getResultSize() {
return resultSize;
}
public void setResultSize(int resultSize) {
this.resultSize = resultSize;
}
public List<RangerPolicy> getvXPolicies() {
return vXPolicies;
}
public void setvXPolicies(List<RangerPolicy> vXPolicies) {
this.vXPolicies = vXPolicies;
}
/***
* SearchCriteria function for building search query with passed passed search parameters
*
* @return Map object with search parameters
*/
public Map<String, Object> searchCriteria()
{
Map<String, Object> searchParams = new HashMap<>();
ArrayList<String> columns = new ArrayList<>();
ArrayList<String> columnFamilies = new ArrayList<>();
ArrayList<String> tables = new ArrayList<>();
ArrayList<String> udfs = new ArrayList<>();
if (!columns.isEmpty()) {
for (int colCnt = 0; colCnt < columns.size(); colCnt++) {
columns.add(getColumns().get(colCnt));
}
searchParams.put("columns", columns);
}
if (!columnFamilies.isEmpty()) {
for (int colFamilyCnt = 0; colFamilyCnt < getColumnFamilies().size(); colFamilyCnt++) {
columnFamilies.add(getColumnFamilies().get(colFamilyCnt));
}
searchParams.put("columnFamilies", columnFamilies);
}
//Add tables
if (!tables.isEmpty()) {
for (int tableCnt = 0; tableCnt < getTables().size(); tableCnt++) {
tables.add(getTables().get(tableCnt));
}
searchParams.put("tables", tables);
}
//Add udf names to list
if (!udfs.isEmpty()) {
for (int udfCnt = 0; udfCnt < getUdfs().size(); udfCnt++) {
tables.add(getUdfs().get(udfCnt));
}
searchParams.put("udfs", udfs);
}
searchParams.put("pageSize", getPageSize());
searchParams.put("startIndex", getStartIndex());
searchParams.put("policyName", getPolicyName());
searchParams.put("groupName", getGroupName());
searchParams.put("repositoryType", getRepositoryType());
searchParams.put("isRecursive", getIsRecursive());
searchParams.put("repositoryName", getRepositoryName());
searchParams.put("userName", getUsername());
searchParams.put("isEnabled", getIsEnabled());
return searchParams;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}