Skip to content

Commit

Permalink
Added streamSlice method for skip and limit
Browse files Browse the repository at this point in the history
Also renamed Cache.get to stream
  • Loading branch information
Asgeir Nilsen committed Apr 15, 2020
1 parent 3e0828d commit 5758119
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 13 deletions.
4 changes: 2 additions & 2 deletions src/main/java/no/fint/cache/Cache.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ public interface Cache<T extends Serializable> {

void flush();

Stream<CacheObject<T>> get();
Stream<CacheObject<T>> stream();

Stream<CacheObject<T>> getSince(long timestamp);
Stream<CacheObject<T>> streamSince(long timestamp);

long getLastUpdated();

Expand Down
13 changes: 11 additions & 2 deletions src/main/java/no/fint/cache/CacheService.java
Original file line number Diff line number Diff line change
Expand Up @@ -82,15 +82,24 @@ public List<T> getAll(String orgId) {
}

public Stream<T> streamAll(String orgId) {
return getCache(orgId).orElseThrow(() -> new CacheNotFoundException(orgId)).get().map(CacheObject::getObject);
return getCache(orgId).orElseThrow(() -> new CacheNotFoundException(orgId)).stream().map(CacheObject::getObject);
}

public Stream<T> streamSlice(String orgId, int skip, int limit) {
return getCache(orgId)
.orElseThrow(() -> new CacheNotFoundException(orgId))
.stream()
.skip(skip)
.limit(limit)
.map(CacheObject::getObject);
}

public List<T> getAll(String orgId, long sinceTimestamp) {
return streamSince(orgId, sinceTimestamp).collect(Collectors.toList());
}

public Stream<T> streamSince(String orgId, long sinceTimestamp) {
return getCache(orgId).orElseThrow(() -> new CacheNotFoundException(orgId)).getSince(sinceTimestamp).map(CacheObject::getObject);
return getCache(orgId).orElseThrow(() -> new CacheNotFoundException(orgId)).streamSince(sinceTimestamp).map(CacheObject::getObject);
}

public Optional<T> getOne(String orgId, Predicate<T> idFunction) {
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/no/fint/cache/FintCache.java
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ public void flush() {
}

@Override
public Stream<CacheObject<T>> get() {
public Stream<CacheObject<T>> stream() {
return cacheObjects.stream();
}

Expand All @@ -109,7 +109,7 @@ public List<T> getSourceList() {
}

@Override
public Stream<CacheObject<T>> getSince(long timestamp) {
public Stream<CacheObject<T>> streamSince(long timestamp) {
return cacheObjects.stream().filter(cacheObject -> (cacheObject.getLastUpdated() > timestamp));
}

Expand Down
8 changes: 4 additions & 4 deletions src/main/java/no/fint/cache/HazelcastCache.java
Original file line number Diff line number Diff line change
Expand Up @@ -55,13 +55,13 @@ public void flush() {
}

@Override
public Stream<CacheObject<T>> get() {
return manager.getCacheInternal(key).get();
public Stream<CacheObject<T>> stream() {
return manager.getCacheInternal(key).stream();
}

@Override
public Stream<CacheObject<T>> getSince(long timestamp) {
return manager.getCacheInternal(key).getSince(timestamp);
public Stream<CacheObject<T>> streamSince(long timestamp) {
return manager.getCacheInternal(key).streamSince(timestamp);
}

@Override
Expand Down
6 changes: 3 additions & 3 deletions src/test/groovy/no/fint/cache/FintCacheSpec.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ class FintCacheSpec extends Specification {
defaultCache.update(values)

when:
def updatedSince = defaultCache.getSince(System.currentTimeMillis() - 15000)
def updatedSince = defaultCache.streamSince(System.currentTimeMillis() - 15000)

then:
updatedSince.count() == 1
Expand All @@ -141,7 +141,7 @@ class FintCacheSpec extends Specification {
defaultCache.update(values)

when:
def updatedSince = defaultCache.getSince(System.currentTimeMillis() + 15000)
def updatedSince = defaultCache.streamSince(System.currentTimeMillis() + 15000)

then:
updatedSince.count() == 0
Expand All @@ -155,7 +155,7 @@ class FintCacheSpec extends Specification {
defaultCache.update(values)

when:
def cachedValues = defaultCache.get()
def cachedValues = defaultCache.stream()

then:
cachedValues.findAny().get().getObject() == values.get(0)
Expand Down

0 comments on commit 5758119

Please sign in to comment.