Java 类net.sf.ehcache.search.Result 实例源码

项目:FinanceAnalytics    文件:AbstractEHCachingMaster.java   
private void cleanCaches(ObjectId objectId, Instant fromVersion, Instant toVersion) {

    Results results = getUidToDocumentCache().createQuery().includeKeys()
        .includeAttribute(getUidToDocumentCache().getSearchAttribute("ObjectId"))
        .includeAttribute(getUidToDocumentCache().getSearchAttribute("VersionFromInstant"))
        .includeAttribute(getUidToDocumentCache().getSearchAttribute("VersionToInstant"))
        .addCriteria(getUidToDocumentCache().getSearchAttribute("ObjectId")
                         .eq(objectId.toString()))
        .addCriteria(getUidToDocumentCache().getSearchAttribute("VersionFromInstant")
                         .le((fromVersion != null ? fromVersion : InstantExtractor.MIN_INSTANT).toString()))
        .addCriteria(getUidToDocumentCache().getSearchAttribute("VersionToInstant")
                         .ge((toVersion != null ? toVersion : InstantExtractor.MAX_INSTANT).toString()))
        .execute();

    for (Result result : results.all()) {
      getUidToDocumentCache().remove(result.getKey());
    }
  }
项目:ehcache-extensions    文件:CacheFailoverDecorator.java   
private List searchPartitionKeys(final Query query) {
    LinkedList<Object> keys = new LinkedList<Object>();
    System.out.println("Starting search...");
    long startTime = System.currentTimeMillis();
    Results results = query.execute();
    if(log.isDebugEnabled())
        log.debug(String.format("Search time: %d ms", System.currentTimeMillis() - startTime));

    // perform the refresh
    for (Result result : results.all()) {
        keys.add(result.getKey());
    }

    results.discard();

    return keys;
}
项目:ehcache-extensions    文件:CachePartitionDecorator.java   
private List searchPartitionKeys(final Query query) {
    LinkedList<Object> keys = new LinkedList<Object>();
    System.out.println("Starting search...");
    long startTime = System.currentTimeMillis();
    Results results = query.execute();
    if(log.isDebugEnabled())
        log.debug(String.format("Search time: %d ms", System.currentTimeMillis() - startTime));

    // perform the refresh
    for (Result result : results.all()) {
        keys.add(result.getKey());
    }

    results.discard();

    return keys;
}
项目:modinvreg    文件:SearchableEhcache.java   
public Collection<T> fetchByCriteria( Criteria criteria ) {
    net.sf.ehcache.search.Query query = this.cache.createQuery();
    query.includeValues();
    query.addCriteria( criteria );
    Results results = null;
    try {
        results = query.execute();
    } catch ( Exception e ) {
        throw new SearchException( "Query error" );
    }

    if ( results == null ) {
        return null;
    }

    Collection<T> genes = new HashSet<T>( results.size() );

    for ( Result result : results.all() ) {
        genes.add( ( T ) result.getValue() );
    }

    return genes;
}
项目:joynr    文件:DomainAccessControlStoreEhCache.java   
private <T extends ControlEntry> List<T> getAces(String uid, CacheId cacheId) {
    Cache cache = getCache(cacheId);
    List<T> aces = new ArrayList<T>();
    // here search on uid take place
    Attribute<String> uidAttribute = cache.getSearchAttribute(UserDomainInterfaceOperationKey.USER_ID);
    // query is the fastest if you search for keys and if you need value then call Cache.get(key)
    Query queryRequestedUid = cache.createQuery().addCriteria(uidAttribute.eq(uid).or(uidAttribute.eq(WILDCARD)))
    // have specific user ids appear before wildcards
                                   .addOrderBy(uidAttribute, Direction.DESCENDING)
                                   .includeKeys()
                                   .end();
    Results results = queryRequestedUid.execute();
    for (Result result : results.all()) {
        aces.add(DomainAccessControlStoreEhCache.<T> getElementValue(cache.get(result.getKey())));
    }

    return aces;
}
项目:joynr    文件:DomainAccessControlStoreEhCache.java   
private <T extends ControlEntry> List<T> getAces(String domain, String interfaceName, CacheId cacheId) {
    Cache cache = getCache(cacheId);
    List<T> aces = new ArrayList<T>();
    // here search on domain and interface take place
    Attribute<String> domainAttribute = cache.getSearchAttribute(UserDomainInterfaceOperationKey.DOMAIN);
    Attribute<String> interfaceAttribute = cache.getSearchAttribute(UserDomainInterfaceOperationKey.INTERFACE);
    // query is the fastest if you search for keys and if you need value then call Cache.get(key)
    Query queryDomainInterface = cache.createQuery()
                                      .addCriteria(domainAttribute.eq(domain)
                                                                  .and(interfaceAttribute.eq(interfaceName)))
                                      .includeKeys()
                                      .end();
    Results results = queryDomainInterface.execute();
    for (Result result : results.all()) {
        T ace = DomainAccessControlStoreEhCache.<T> getElementValue(cache.get(result.getKey()));
        aces.add(ace);
    }

    return aces;
}
项目:c2mon    文件:AlarmCacheImpl.java   
@Override
public Collection<Long> findAlarm(AlarmQuery query) {

  Ehcache ehcache = getCache();
  ArrayList<Long> result = new ArrayList<Long>();

  Query cacheQuery = ehcache.createQuery();

  if (query.getFaultCode() != 0) {
      Attribute<Integer> fc = ehcache.getSearchAttribute("faultCode");
      cacheQuery.addCriteria(fc.eq(query.getFaultCode()));
  }
  if (query.getFaultFamily() != null && !"".equals(query.getFaultFamily())) {
      Attribute<String> ff = ehcache.getSearchAttribute("faultFamily");
      cacheQuery.addCriteria(ff.ilike(query.getFaultFamily()));
  }
  if (query.getFaultMember() != null && !"".equals(query.getFaultMember())) {
      Attribute<String> fm = ehcache.getSearchAttribute("faultMember");
      cacheQuery.addCriteria(fm.ilike(query.getFaultMember()));
  }
  if (query.getPriority() != 0) {
      Attribute<Integer> prio = ehcache.getSearchAttribute("priority");
      cacheQuery.addCriteria(prio.eq(query.getPriority()));
  }
  if (query.getActive() != null) {
    Attribute<Boolean> active = ehcache.getSearchAttribute("isActive");
    cacheQuery.addCriteria(active.eq(query.getActive()));
  }

  for (Result res: cacheQuery.maxResults(query.getMaxResultSize()).includeKeys().execute().all()) {
      result.add((Long) res.getKey());
  }

  return result;
}
项目:directory-fortress-core    文件:SDUtil.java   
/**
 * Given DSD entry name, clear its corresponding object values from the cache.
 *
 * @param name contains the name of object to be cleared.
 * @param contextId maps to sub-tree in DIT, e.g. ou=contextId, dc=example, dc=com.     *
 * @throws SecurityException in the event of system or rule violation.
 */
void clearDsdCacheEntry(String name, String contextId)
{
    Attribute<String> context = m_dsdCache.getSearchAttribute(CONTEXT_ID);
    Attribute<String> dsdName = m_dsdCache.getSearchAttribute(DSD_NAME);
    Query query = m_dsdCache.createQuery();
    query.includeKeys();
    query.includeValues();
    query.addCriteria(dsdName.eq(name).and(context.eq(contextId)));
    Results results = query.execute();
    for (Result result : results.all())
    {
        m_dsdCache.clear(result.getKey());
    }
}
项目:directory-fortress-core    文件:SDUtil.java   
/**
 * Given a role name, return the set of DSD's that have a matching member.
 *
 * @param name contains name of authorized Role used to search the cache.
 * @param contextId maps to sub-tree in DIT, e.g. ou=contextId, dc=example, dc=com.
 * @return un-ordered set of matching DSD's.
 * @throws SecurityException in the event of system or rule violation.
 */
private Set<SDSet> getDsdCache(String name, String contextId)
    throws SecurityException
{
    contextId = getContextId(contextId);
    Set<SDSet> finalSet = new HashSet<>();
    Attribute<String> context = m_dsdCache.getSearchAttribute(CONTEXT_ID);
    Attribute<String> member = m_dsdCache.getSearchAttribute(SchemaConstants.MEMBER_AT);
    Query query = m_dsdCache.createQuery();
    query.includeKeys();
    query.includeValues();
    query.addCriteria(member.eq(name).and(context.eq(contextId)));
    Results results = query.execute();
    boolean empty = false;
    for (Result result : results.all())
    {
        DsdCacheEntry entry = (DsdCacheEntry) result.getValue();
        if (!entry.isEmpty())
        {
            finalSet.add(entry.getSdSet());
            finalSet = putDsdCache(name, contextId);
        }
        else
        {
            empty = true;
        }
        finalSet.add(entry.getSdSet());
    }
    // If nothing was found in the cache, determine if it needs to be seeded:
    if (finalSet.size() == 0 && !empty)
    {
        finalSet = putDsdCache(name, contextId);
    }
    return finalSet;
}
项目:directory-fortress-core    文件:CacheSample.java   
void runTests()
{
    loadCache();
    Attribute<String> member = cache.getSearchAttribute( "member" );
    Query query = cache.createQuery();
    query.includeKeys();
    query.includeValues();
    Set<String> roles = new HashSet<>();
    roles.add( "oamt17dsd1" );
    roles.add( "oamt17dsd4" );
    roles.add( "oamT13DSD6" );
    roles.add( "oamT16SDR7" );
    query.addCriteria( member.in( roles ) );
    Results results = query.execute();
    System.out.println( " Size: " + results.size() );
    System.out.println( "----Results-----\n" );
    Set<SDSet> resultSet = new HashSet<>();

    for ( Result result : results.all() )
    {
        DsdCacheEntry entry = ( DsdCacheEntry ) result.getValue();
        resultSet.add( entry.getSdSet() );
    }

    for ( SDSet sdSet : resultSet )
    {
        LOG.info( "Found SDSet: " + sdSet.getName() );
    }
}
项目:joynr    文件:DomainAccessControlStoreEhCache.java   
@Override
public List<DomainRoleEntry> getDomainRoles(String uid) {
    Cache cache = getCache(CacheId.DOMAIN_ROLES);
    List<DomainRoleEntry> domainRoles = new ArrayList<DomainRoleEntry>();
    Attribute<String> uidAttribute = cache.getSearchAttribute(UserRoleKey.USER_ID);
    // query is the fastest if you search for keys and if you need value then call Cache.get(key)
    Query queryRequestedUid = cache.createQuery().addCriteria(uidAttribute.eq(uid)).includeKeys().end();
    Results results = queryRequestedUid.execute();
    for (Result result : results.all()) {
        domainRoles.add(DomainAccessControlStoreEhCache.<DomainRoleEntry> getElementValue(cache.get(result.getKey())));
    }

    return domainRoles;
}
项目:joynr    文件:DomainAccessControlStoreEhCache.java   
private <T extends ControlEntry> List<T> getAces(CacheId cacheId, String uid, String domain, String interfaceName) {
    Cache cache = getCache(cacheId);
    Attribute<String> uidAttribute = cache.getSearchAttribute(UserDomainInterfaceOperationKey.USER_ID);
    Attribute<String> domainAttribute = cache.getSearchAttribute(UserDomainInterfaceOperationKey.DOMAIN);
    Attribute<String> interfaceAttribute = cache.getSearchAttribute(UserDomainInterfaceOperationKey.INTERFACE);
    Query queryAllOperations = cache.createQuery()
                                    .addCriteria(uidAttribute.eq(uid).or(uidAttribute.eq(WILDCARD)))
                                    .addCriteria(domainAttribute.eq(domain))
                                    .addCriteria(interfaceAttribute.eq(interfaceName))
                                    // have specific user ids appear before wildcards
                                    .addOrderBy(uidAttribute, Direction.DESCENDING)
                                    .includeKeys()
                                    .end();
    Results results = queryAllOperations.execute();
    List<T> aces = new ArrayList<T>();
    String currentUid = null;
    for (Result result : results.all()) {
        T ace = DomainAccessControlStoreEhCache.<T> getElementValue(cache.get(result.getKey()));

        // Don't add uid wildcards if a specific uid has been added to the results
        if (currentUid == null) {
            currentUid = ace.getUid();
        } else if (!currentUid.equals(ace.getUid())) {
            break;
        }

        aces.add(ace);
    }

    return aces;
}
项目:joynr    文件:DomainAccessControlStoreEhCache.java   
private <T extends ControlEntry> List<T> getEditableAces(String uid, CacheId cacheId, Role role) {
    List<T> aces = new ArrayList<T>();
    // find out first on which domains uid has specified role
    Cache drtCache = getCache(CacheId.DOMAIN_ROLES);
    UserRoleKey dreKey = new UserRoleKey(uid, role);
    String[] uidDomains = null;
    // read domains from DRE
    if (drtCache.isKeyInCache(dreKey)) {
        DomainRoleEntry dre = DomainAccessControlStoreEhCache.<DomainRoleEntry> getElementValue(drtCache.get(dreKey));
        uidDomains = dre.getDomains();
    }
    // if uid has no domains with specified role return empty list
    if (uidDomains == null || uidDomains.length == 0) {
        return aces;
    }

    Cache cache = getCache(cacheId);
    // here should search on uid and domain take place
    Attribute<String> uidAttribute = cache.getSearchAttribute(UserDomainInterfaceOperationKey.USER_ID);
    Attribute<String> domainAttribute = cache.getSearchAttribute(UserDomainInterfaceOperationKey.DOMAIN);
    for (String domain : uidDomains) {
        Query query = cache.createQuery()
                           .addCriteria(uidAttribute.eq(uid).and(domainAttribute.eq(domain)))
                           .includeKeys()
                           .end();
        Results results = query.execute();
        for (Result result : results.all()) {
            aces.add(DomainAccessControlStoreEhCache.<T> getElementValue(cache.get(result.getKey())));
        }

    }

    return aces;
}
项目:directory-fortress-core    文件:SDUtil.java   
/**
 * Given a Set of authorized Roles, return the set of DSD's that have matching members.
 *
 * @param authorizedRoleSet contains an un-order Set of authorized Roles.
 * @param contextId maps to sub-tree in DIT, e.g. ou=contextId, dc=example, dc=com.
 * @return un-ordered set of matching DSD's.
 * @throws SecurityException in the event of system or rule violation.
 */
Set<SDSet> getDsdCache(Set<String> authorizedRoleSet, String contextId)
    throws SecurityException
{
    contextId = getContextId(contextId);
    Set<SDSet> dsdRetSets = new HashSet<>();
    // Need to proceed?
    if (!CollectionUtils.isNotEmpty( authorizedRoleSet ))
    {
        return dsdRetSets;
    }
    // Was the DSD Cache switched off?
    boolean isCacheDisabled = Config.getInstance().getBoolean(IS_DSD_CACHE_DISABLED_PARM, false);
    // If so, get DSD's from LDAP:
    if (isCacheDisabled)
    {
        SDSet sdSet = new SDSet();
        sdSet.setType(SDSet.SDType.DYNAMIC);
        sdSet.setContextId(contextId);
        dsdRetSets = sp.search(authorizedRoleSet, sdSet);
    }
    // Search the DSD cache for matching Role members:
    else
    {
        // Search on roleName attribute which maps to 'member' attr on the cache record:
        Attribute<String> member = m_dsdCache.getSearchAttribute(SchemaConstants.MEMBER_AT);
        Attribute<String> context = m_dsdCache.getSearchAttribute(CONTEXT_ID);
        Query query = m_dsdCache.createQuery();
        query.includeKeys();
        query.includeValues();
        // Add the passed in authorized Role names to this cache query:
        Set<String> roles = new HashSet<>(authorizedRoleSet);
        query.addCriteria(member.in(roles).and(context.eq(contextId)));
        // Return all DSD cache entries that match roleName to the 'member' attribute in cache entry:
        Results results = query.execute();
        for (Result result : results.all())
        {
            DsdCacheEntry entry = (DsdCacheEntry) result.getValue();
            // Do not add dummy DSD sets to the final list:
            if (!entry.isEmpty())
            {
                dsdRetSets.add(entry.getSdSet());
            }
            // Remove role member from authorizedRoleSet to preclude from upcoming DSD search:
            //authorizedRoleSet.remove(entry.getMember());
        }
        // Authorized roles remaining in this set correspond to missed cache hits from above:
        if (authorizedRoleSet.size() > 0)
        {
            dsdRetSets = putDsdCache(authorizedRoleSet, contextId);
        }
    }
    return dsdRetSets;
}