@VisibleForTesting void addUserMetadataTo(HttpResponse from, MutableContainerPropertiesWithMetadata metadata) { for (Entry<String, String> header : from.getHeaders().entries()) { if (header.getKey() != null && header.getKey().startsWith(metadataPrefix)) metadata .getMetadata() .put( (header.getKey().substring(metadataPrefix.length())).toLowerCase(), header.getValue()); } }
@Override public Container apply(HttpResponse from) { String bytesUsed = from.getFirstHeaderOrNull(CONTAINER_BYTES_USED); String objectCount = from.getFirstHeaderOrNull(CONTAINER_OBJECT_COUNT); Container c = Container.builder() .name(name) .bytesUsed(bytesUsed != null ? Long.valueOf(bytesUsed) : null) .objectCount(objectCount != null ? Long.valueOf(objectCount) : null) .anybodyRead( CONTAINER_ACL_ANYBODY_READ.equals(from.getFirstHeaderOrNull(CONTAINER_READ))) .metadata(EntriesWithoutMetaPrefix.INSTANCE.apply(from.getHeaders())) .build(); return c; }
@Override public B2Object apply(HttpResponse from) { Payload payload = from.getPayload(); MutableContentMetadata contentMeta = payload.getContentMetadata(); String fileId = from.getFirstHeaderOrNull(B2Headers.FILE_ID); String fileName; try { fileName = URLDecoder.decode(from.getFirstHeaderOrNull(B2Headers.FILE_NAME), "UTF-8"); } catch (UnsupportedEncodingException uee) { throw Throwables.propagate(uee); } String contentSha1 = from.getFirstHeaderOrNull(B2Headers.CONTENT_SHA1); ImmutableMap.Builder<String, String> fileInfo = ImmutableMap.builder(); for (Map.Entry<String, String> entry : from.getHeaders().entries()) { if (entry .getKey() .regionMatches( true, 0, B2Headers.FILE_INFO_PREFIX, 0, B2Headers.FILE_INFO_PREFIX.length())) { String value; try { value = URLDecoder.decode(entry.getValue(), "UTF-8"); } catch (UnsupportedEncodingException uee) { throw Throwables.propagate(uee); } fileInfo.put(entry.getKey().substring(B2Headers.FILE_INFO_PREFIX.length()), value); } } Date uploadTimestamp = new Date(Long.parseLong(from.getFirstHeaderOrNull(B2Headers.UPLOAD_TIMESTAMP))); String contentRange = from.getFirstHeaderOrNull(HttpHeaders.CONTENT_RANGE); return B2Object.create( fileId, fileName, null, null, contentMeta.getContentLength(), contentSha1, contentMeta.getContentType(), fileInfo.build(), null, uploadTimestamp.getTime(), contentRange, payload); }
public Boolean apply(HttpResponse from) { checkNotNull(from, "http response"); return from.getHeaders().containsEntry("x-emc-groupacl", "other=READ"); }