public List<ConcatData> make(List<ConcatUri> resourceUris, boolean isAdjacent) { List<ConcatData> concatUris = Lists.newArrayListWithCapacity(resourceUris.size()); if (resourceUris.isEmpty()) { return concatUris; } ConcatUri exemplar = resourceUris.get(0); String container = exemplar.getContainer(); List<String> versions = null; List<List<Uri>> batches = Lists.newArrayListWithCapacity(resourceUris.size()); for (ConcatUri ctx : resourceUris) { batches.add(ctx.getBatch()); } if (versioner != null) { versions = versioner.version(batches, container); } Iterator<String> versionIt = versions != null ? versions.iterator() : null; for (ConcatUri ctx : resourceUris) { String version = versionIt != null ? versionIt.next() : null; concatUris.add( makeConcatUri(ctx, isAdjacent, version)); } return concatUris; }
public List<ConcatData> make(List<ConcatUri> resourceUris, boolean isAdjacent) { List<ConcatData> concatUris = Lists.newArrayListWithCapacity(resourceUris.size()); if (resourceUris.isEmpty()) { return concatUris; } ConcatUri exemplar = resourceUris.get(0); String container = exemplar.getContainer(); List<String> versions = null; List<List<Uri>> batches = Lists.newArrayListWithCapacity(resourceUris.size()); for (ConcatUri ctx : resourceUris) { batches.add(ctx.getBatch()); } if (versioner != null) { versions = versioner.version(batches, container); } Iterator<String> versionIt = versions != null ? versions.iterator() : null; for (ConcatUri ctx : resourceUris) { String version = versionIt != null ? versionIt.next() : null; concatUris.add( makeConcatUri(ctx, isAdjacent, version)); } return concatUris; }
private void addVersionAndSplitParam(UriBuilder uriBuilder, String splitParam, boolean doSplit, List<Uri> batchUris, String container, Type type) { // HashCode is used to differentiate splitParam paramter across ConcatUris // within single page/url. This value is appended to the splitParam value which // is recieved from config container. int hashCode = uriBuilder.hashCode(); if (doSplit) { uriBuilder.addQueryParameter(Param.JSON.getKey(), (splitParam + String.valueOf(Math.abs(hashCode)))); } if (versioner != null) { List<List<Uri>> batches = Lists.newArrayList(); List<String> resourceTags = Lists.newArrayList(); batches.add(batchUris); resourceTags.add(type.getTagName().toLowerCase()); List<String> versions = versioner.version(batches, container, resourceTags); if (versions != null && versions.size() == 1) { String version = versions.get(0); if (version != null) { uriBuilder.addQueryParameter(Param.VERSION.getKey(), version); } } } }
@SuppressWarnings("unchecked") private ConcatUriManager.Versioner makeVersioner(UriStatus status, String... versions) { ConcatUriManager.Versioner versioner = createMock(ConcatUriManager.Versioner.class); expect(versioner.version(isA(List.class), eq(CONTAINER), isA(List.class))) .andReturn(ImmutableList.copyOf(versions)).anyTimes(); expect(versioner.validate(isA(List.class), eq(CONTAINER), isA(String.class))) .andReturn(status).anyTimes(); replay(versioner); return versioner; } }
@SuppressWarnings("unchecked") private ConcatUriManager.Versioner makeVersioner(UriStatus status, String... versions) { ConcatUriManager.Versioner versioner = createMock(ConcatUriManager.Versioner.class); expect(versioner.version(isA(List.class), eq(CONTAINER))) .andReturn(ImmutableList.copyOf(versions)).anyTimes(); expect(versioner.validate(isA(List.class), eq(CONTAINER), isA(String.class))) .andReturn(status).anyTimes(); replay(versioner); return versioner; } }
@SuppressWarnings("unchecked") private ConcatUriManager.Versioner makeVersioner(UriStatus status, String... versions) { ConcatUriManager.Versioner versioner = createMock(ConcatUriManager.Versioner.class); expect(versioner.version(isA(List.class), eq(CONTAINER), isA(List.class))) .andReturn(ImmutableList.copyOf(versions)).anyTimes(); expect(versioner.validate(isA(List.class), eq(CONTAINER), isA(String.class))) .andReturn(status).anyTimes(); replay(versioner); return versioner; } }