private List<String> processPartitionValueListFilterOption(List<String> partitionValues,String partitionKey,int partitionColumnPosition,BusinessObjectFormatKey businessObjectFormatKey,Integer businessObjectDataVersion,List<String> storageNames,String storagePlatformType,String excludedStoragePlatformType){
  List<String> resultPartitionValues=new ArrayList<>();
  List<String> uniqueAndSortedPartitionValues=new ArrayList<>();
  uniqueAndSortedPartitionValues.addAll(new TreeSet<>(partitionValues));
  boolean partitionValueListUpdated=false;
  if (uniqueAndSortedPartitionValues.contains(BusinessObjectDataService.MAX_PARTITION_VALUE_TOKEN)) {
    String maxPartitionValue=businessObjectDataDao.getBusinessObjectDataMaxPartitionValue(partitionColumnPosition,businessObjectFormatKey,businessObjectDataVersion,BusinessObjectDataStatusEntity.VALID,storageNames,storagePlatformType,excludedStoragePlatformType,null,null);
    if (maxPartitionValue == null) {
      throw new ObjectNotFoundException(getPartitionValueNotFoundErrorMessage("maximum",partitionKey,businessObjectFormatKey,businessObjectDataVersion,storageNames));
    }
    uniqueAndSortedPartitionValues.remove(BusinessObjectDataService.MAX_PARTITION_VALUE_TOKEN);
    uniqueAndSortedPartitionValues.add(maxPartitionValue);
    partitionValueListUpdated=true;
  }
  if (uniqueAndSortedPartitionValues.contains(BusinessObjectDataService.MIN_PARTITION_VALUE_TOKEN)) {
    String minPartitionValue=businessObjectDataDao.getBusinessObjectDataMinPartitionValue(partitionColumnPosition,businessObjectFormatKey,businessObjectDataVersion,BusinessObjectDataStatusEntity.VALID,storageNames,storagePlatformType,excludedStoragePlatformType);
    if (minPartitionValue == null) {
      throw new ObjectNotFoundException(getPartitionValueNotFoundErrorMessage("minimum",partitionKey,businessObjectFormatKey,businessObjectDataVersion,storageNames));
    }
    uniqueAndSortedPartitionValues.remove(BusinessObjectDataService.MIN_PARTITION_VALUE_TOKEN);
    uniqueAndSortedPartitionValues.add(minPartitionValue);
    partitionValueListUpdated=true;
  }
  if (partitionValueListUpdated) {
    resultPartitionValues.addAll(new TreeSet<>(uniqueAndSortedPartitionValues));
  }
 else {
    resultPartitionValues.addAll(uniqueAndSortedPartitionValues);
  }
  return resultPartitionValues;
}

private List < String > processPartitionValueListFilterOption ( List < String > partitionValues , String partitionKey , int partitionColumnPosition , BusinessObjectFormatKey businessObjectFormatKey , Integer businessObjectDataVersion , List < String > storageNames , String storagePlatformType , String excludedStoragePlatformType ) { List < String > resultPartitionValues = new ArrayList < > ( ) ; List < String > uniqueAndSortedPartitionValues = new ArrayList < > ( ) ; uniqueAndSortedPartitionValues . addAll ( new TreeSet < > ( partitionValues ) ) ; boolean partitionValueListUpdated = false ; if ( uniqueAndSortedPartitionValues . contains ( BusinessObjectDataService . MAX_PARTITION_VALUE_TOKEN ) ) { String maxPartitionValue = businessObjectDataDao . getBusinessObjectDataMaxPartitionValue ( partitionColumnPosition , businessObjectFormatKey , businessObjectDataVersion , BusinessObjectDataStatusEntity . VALID , storageNames , storagePlatformType , excludedStoragePlatformType , null , null ) ; if ( maxPartitionValue == null ) { throw new ObjectNotFoundException ( getPartitionValueNotFoundErrorMessage ( "maximum" , partitionKey , businessObjectFormatKey , businessObjectDataVersion , storageNames ) ) ; } uniqueAndSortedPartitionValues . remove ( BusinessObjectDataService . MAX_PARTITION_VALUE_TOKEN ) ; uniqueAndSortedPartitionValues . add ( maxPartitionValue ) ; partitionValueListUpdated = true ; } if ( uniqueAndSortedPartitionValues . contains ( BusinessObjectDataService . MIN_PARTITION_VALUE_TOKEN ) ) { String minPartitionValue = businessObjectDataDao . getBusinessObjectDataMinPartitionValue ( partitionColumnPosition , businessObjectFormatKey , businessObjectDataVersion , BusinessObjectDataStatusEntity . VALID , storageNames , storagePlatformType , excludedStoragePlatformType ) ; if ( minPartitionValue == null ) { throw new ObjectNotFoundException ( getPartitionValueNotFoundErrorMessage ( "minimum" , partitionKey , businessObjectFormatKey , businessObjectDataVersion , storageNames ) ) ; } uniqueAndSortedPartitionValues . remove ( BusinessObjectDataService . MIN_PARTITION_VALUE_TOKEN ) ; uniqueAndSortedPartitionValues . add ( minPartitionValue ) ; partitionValueListUpdated = true ; } if ( partitionValueListUpdated ) { resultPartitionValues . addAll ( new TreeSet < > ( uniqueAndSortedPartitionValues ) ) ; } else { resultPartitionValues . addAll ( uniqueAndSortedPartitionValues ) ; } return resultPartitionValues ; }
builds a list of partition values from a " partition value list " partition value filter option . duplicates will be removed and the list will be ordered ascending .
