use of org.gluu.search.filter.Filter in project oxCore by GluuFederation.
the class MetricService method findMetricEntry.
public Map<MetricType, List<? extends MetricEntry>> findMetricEntry(ApplicationType applicationType, String applianceInum, List<MetricType> metricTypes, Date startDate, Date endDate, String... returnAttributes) {
prepareBranch(null, applicationType);
Map<MetricType, List<? extends MetricEntry>> result = new HashMap<MetricType, List<? extends MetricEntry>>();
if ((metricTypes == null) || (metricTypes.size() == 0)) {
return result;
}
// Prepare list of DNs
Set<String> metricDns = getBaseDnForPeriod(applicationType, applianceInum, startDate, endDate);
if (metricDns.size() == 0) {
return result;
}
for (MetricType metricType : metricTypes) {
List<MetricEntry> metricTypeResult = new LinkedList<MetricEntry>();
for (String metricDn : metricDns) {
List<Filter> metricTypeFilters = new ArrayList<Filter>();
Filter applicationTypeFilter = Filter.createEqualityFilter("oxApplicationType", applicationType.getValue());
Filter eventTypeTypeFilter = Filter.createEqualityFilter("oxMetricType", metricType.getValue());
Filter startDateFilter = Filter.createGreaterOrEqualFilter("oxStartDate", ldapEntryManager.encodeGeneralizedTime((startDate)));
Filter endDateFilter = Filter.createLessOrEqualFilter("oxEndDate", ldapEntryManager.encodeGeneralizedTime(endDate));
metricTypeFilters.add(applicationTypeFilter);
metricTypeFilters.add(eventTypeTypeFilter);
metricTypeFilters.add(startDateFilter);
metricTypeFilters.add(endDateFilter);
Filter filter = Filter.createANDFilter(metricTypeFilters);
List<? extends MetricEntry> metricTypeMonthResult = (List<? extends MetricEntry>) ldapEntryManager.findEntries(metricDn, metricType.getMetricEntryType(), filter, returnAttributes);
metricTypeResult.addAll(metricTypeMonthResult);
}
// Sort entries to avoid calculation errors
ldapEntryManager.sortListByProperties(MetricEntry.class, metricTypeResult, false, "creationDate");
result.put(metricType, metricTypeResult);
}
return result;
}
use of org.gluu.search.filter.Filter in project oxCore by GluuFederation.
the class MetricService method findAllPeriodBranches.
public List<SimpleBranch> findAllPeriodBranches(DefaultBatchOperation<SimpleBranch> batchOperation, ApplicationType applicationType, String applianceInum, int sizeLimit, int chunkSize) {
String baseDn = buildDn(null, null, applicationType, applianceInum);
Filter skipRootDnFilter = Filter.createNOTFilter(Filter.createEqualityFilter("ou", applicationType.getValue()));
return ldapEntryManager.findEntries(baseDn, SimpleBranch.class, skipRootDnFilter, SearchScope.SUB, new String[] { "ou" }, batchOperation, 0, sizeLimit, chunkSize);
}
use of org.gluu.search.filter.Filter in project oxCore by GluuFederation.
the class AbstractCustomScriptService method findCustomAuthScripts.
public List<CustomScript> findCustomAuthScripts(String pattern, int sizeLimit) {
String[] targetArray = new String[] { pattern };
Filter descriptionFilter = Filter.createSubstringFilter(OxConstants.DESCRIPTION, null, targetArray, null);
Filter scriptTypeFilter = Filter.createEqualityFilter(OxConstants.SCRIPT_TYPE, CustomScriptType.PERSON_AUTHENTICATION);
Filter displayNameFilter = Filter.createSubstringFilter(OxConstants.DISPLAY_NAME, null, targetArray, null);
Filter searchFilter = Filter.createORFilter(descriptionFilter, displayNameFilter);
return persistenceEntryManager.findEntries(baseDn(), CustomScript.class, Filter.createANDFilter(searchFilter, scriptTypeFilter), sizeLimit);
}
use of org.gluu.search.filter.Filter in project oxCore by GluuFederation.
the class AbstractCustomScriptService method getCustomScriptByINum.
public Optional<CustomScript> getCustomScriptByINum(String baseDn, String inum, String... returnAttributes) {
final List<Filter> customScriptTypeFilters = new ArrayList<Filter>();
final Filter customScriptTypeFilter = Filter.createEqualityFilter("inum", inum);
customScriptTypeFilters.add(customScriptTypeFilter);
final Filter filter = Filter.createORFilter(customScriptTypeFilters);
final List<CustomScript> result = persistenceEntryManager.findEntries(baseDn, CustomScript.class, filter, returnAttributes);
if (result.isEmpty()) {
return Optional.absent();
}
return Optional.of(result.get(0));
}
use of org.gluu.search.filter.Filter in project oxTrust by GluuFederation.
the class CacheRefreshTimer method updateTargetEntriesViaVDS.
private List<String> updateTargetEntriesViaVDS(CacheRefreshConfiguration cacheRefreshConfiguration, LdapServerConnection targetServerConnection, Set<String> changedInums) {
List<String> result = new ArrayList<String>();
PersistenceEntryManager targetPersistenceEntryManager = targetServerConnection.getPersistenceEntryManager();
Filter filter = cacheRefreshService.createObjectClassPresenceFilter();
for (String changedInum : changedInums) {
String baseDn = "action=synchronizecache," + personService.getDnForPerson(changedInum);
try {
targetPersistenceEntryManager.findEntries(baseDn, DummyEntry.class, filter, SearchScope.SUB, null, null, 0, 0, cacheRefreshConfiguration.getLdapSearchSizeLimit());
result.add(changedInum);
log.debug("Updated entry with inum {}", changedInum);
} catch (BasePersistenceException ex) {
log.error("Failed to update entry with inum '{}' using baseDN {}", changedInum, baseDn, ex);
}
}
return result;
}
Aggregations