Refine search
/** * Returns the CRC32C checksum of blob's data as described in <a * href="http://tools.ietf.org/html/rfc4960#appendix-B">RFC 4960, Appendix B;</a> encoded in * base64 in big-endian order. * * @see <a href="https://cloud.google.com/storage/docs/hashes-etags#_JSONAPI">Hashes and ETags: * Best Practices</a> */ public String getCrc32c() { return Data.isNull(crc32c) ? null : crc32c; }
@Override public Builder setContentEncoding(String contentEncoding) { this.contentEncoding = firstNonNull(contentEncoding, Data.<String>nullOf(String.class)); return this; }
if (metadata != null && !Data.isNull(metadata)) { pbMetadata = Maps.newHashMapWithExpectedSize(metadata.size()); for (Map.Entry<String, String> entry : metadata.entrySet()) { pbMetadata.put( entry.getKey(), firstNonNull(entry.getValue(), Data.<String>nullOf(String.class)));
@Test public void testFromToPb() { assertThat(Labels.fromPb(null).toPb()).isNull(); HashMap<String, String> pb = new HashMap<>(); assertThat(Labels.fromPb(pb).toPb()).isNull(); pb.put("a", "b"); assertThat(Labels.fromPb(pb).toPb()).isEqualTo(pb); pb.put("c", Data.NULL_STRING); assertThat(Labels.fromPb(pb).toPb()).isEqualTo(pb); Map<String, String> jsonNullMap = Data.nullOf(HashMap.class); assertThat(Data.isNull(Labels.fromPb(jsonNullMap).toPb())).isTrue(); }
@Override public Builder setDefaultKmsKeyName(String defaultKmsKeyName) { this.defaultKmsKeyName = defaultKmsKeyName != null ? defaultKmsKeyName : Data.<String>nullOf(String.class); return this; }
ElementSerializer(Object elementValue, boolean errorOnUnknown) { this.errorOnUnknown = errorOnUnknown; Class<?> valueClass = elementValue.getClass(); if (Data.isPrimitive(valueClass) && !Data.isNull(elementValue)) { textValue = elementValue; } else if (valueClass.isEnum() && !Data.isNull(elementValue)){ textValue = elementValue; } else { for (Map.Entry<String, Object> entry : Data.mapOf(elementValue).entrySet()) { Object fieldValue = entry.getValue(); if (fieldValue != null && !Data.isNull(fieldValue)) { String fieldName = entry.getKey(); if (Xml.TEXT_CONTENT.equals(fieldName)) { textValue = fieldValue; } else if (fieldName.charAt(0) == '@') { attributeNames.add(fieldName.substring(1)); attributeValues.add(fieldValue); } else { subElementNames.add(fieldName); subElementValues.add(fieldValue); } } } } }
private void computeAliases(Object element, SortedSet<String> aliases) { for (Map.Entry<String, Object> entry : Data.mapOf(element).entrySet()) { Object value = entry.getValue(); if (value != null) { String name = entry.getKey(); if (!Xml.TEXT_CONTENT.equals(name)) { int colon = name.indexOf(':'); boolean isAttribute = name.charAt(0) == '@'; if (colon != -1 || !isAttribute) { String alias = colon == -1 ? "" : name.substring(name.charAt(0) == '@' ? 1 : 0, colon); aliases.add(alias); } Class<?> valueClass = value.getClass(); if (!isAttribute && !Data.isPrimitive(valueClass) && !valueClass.isEnum() ) { if (value instanceof Iterable<?> || valueClass.isArray()) { for (Object subValue : Types.iterableOf(value)) { computeAliases(subValue, aliases); } } else { computeAliases(value, aliases); } } } } } }
private String extractPayload(HttpHeaders headers, @Nullable HttpContent content) { StringBuilder messageBuilder = new StringBuilder(); if (headers != null) { appendMapAsString(messageBuilder, headers); } if (content != null) { messageBuilder.append(String.format("%nContent:%n")); if (content instanceof UrlEncodedContent) { UrlEncodedContent encodedContent = (UrlEncodedContent) content; appendMapAsString(messageBuilder, Data.mapOf(encodedContent.getData())); } else if (content != null) { ByteArrayOutputStream byteStream = new ByteArrayOutputStream(); try { content.writeTo(byteStream); messageBuilder.append(byteStream.toString(StandardCharsets.UTF_8.name())); } catch (IOException e) { messageBuilder.append("Unable to read request content due to exception: " + e); } } } return messageBuilder.toString(); }
fieldType = Data.resolveWildcardTypeOrTypeVariable(context, fieldType); if (ignore || Data.isPrimitive(fieldType) || isEnum) { int level = 1; while (level != 0) { Map<String, Object> mapValue = Data.newMapInstance(fieldClass); int contextSize = context.size(); if (fieldType != null) { subValueType = Data.resolveWildcardTypeOrTypeVariable(context, subValueType); isStopped = parseElementInternal(parser, context, Class<?> rawArrayComponentType = Types.getRawArrayComponentType(context, subFieldType); subFieldType = Data.resolveWildcardTypeOrTypeVariable(context, subFieldType); Class<?> subFieldClass = subFieldType instanceof Class<?> ? (Class<?>) subFieldType : null; if (Data.isPrimitive(subFieldType) || isSubEnum) { elementValue = parseTextContentForElement(parser, context, false, subFieldType); } else if (subFieldType == null || subFieldClass != null && Types.isAssignableToOrFrom(subFieldClass, Map.class)) { elementValue = Data.newMapInstance(subFieldClass); int contextSize = context.size(); if (subFieldType != null) { && Map.class.isAssignableFrom(subFieldClass) ? Types.getMapValueParameter(
@Override public Builder setMetadata(Map<String, String> metadata) { this.metadata = metadata != null ? new HashMap<>(metadata) : Data.<Map<String, String>>nullOf(ImmutableEmptyMap.class); return this; }
private static ArrayMap<String, Object> computePatchInternal( FieldsMask fieldsMask, Object patchedObject, Object originalObject) { ArrayMap<String, Object> result = ArrayMap.create(); Map<String, Object> patchedMap = Data.mapOf(patchedObject); Map<String, Object> originalMap = Data.mapOf(originalObject); TreeSet<String> fieldNames = new TreeSet<String>(); fieldNames.addAll(patchedMap.keySet()); if (Data.isPrimitive(type)) { if (originalValue != null && originalValue.equals(patchedValue)) { continue; if (originalValue == null) { // TODO(yanivi): test fieldsMask.append(name); result.add(name, Data.mapOf(patchedValue)); } else if (patchedValue == null) { // TODO(yanivi): test fieldsMask.append(name);
private String extractPayload(HttpHeaders headers, @Nullable HttpContent content) { StringBuilder messageBuilder = new StringBuilder(); if (headers != null) { appendMapAsString(messageBuilder, headers); } if (content != null) { messageBuilder.append(String.format("%nContent:%n")); if (content instanceof UrlEncodedContent) { UrlEncodedContent encodedContent = (UrlEncodedContent) content; appendMapAsString(messageBuilder, Data.mapOf(encodedContent.getData())); } else if (content != null) { ByteArrayOutputStream byteStream = new ByteArrayOutputStream(); try { content.writeTo(byteStream); messageBuilder.append(byteStream.toString(StandardCharsets.UTF_8.name())); } catch (IOException e) { messageBuilder.append("Unable to read request content due to exception: " + e); } } } return messageBuilder.toString(); }
@Override public Builder setMd5(String md5) { this.md5 = firstNonNull(md5, Data.<String>nullOf(String.class)); return this; }
/** * Returns the blob's data cache control. * * @see <a href="https://tools.ietf.org/html/rfc7234#section-5.2">Cache-Control</a> */ public String getCacheControl() { return Data.isNull(cacheControl) ? null : cacheControl; }
/** Sets the mode of the field. When not specified {@link Mode#NULLABLE} is used. */ public Builder setMode(Mode mode) { this.mode = mode != null ? mode.name() : Data.<String>nullOf(String.class); return this; }
/** * Construct a GoogleUrl from a server, template and a parameter block. * * @param encodedServerUrl encoded URL of the server * @param pathTemplate path template * @param parameters an object with parameters designated by Key annotations. If the template has * no variable references, parameters may be {@code null}. * @throws IllegalArgumentException if a requested element in the pathTemplate is not in the * parameters * * @since 1.3 */ public static GoogleUrl create(String encodedServerUrl, String pathTemplate, Object parameters) throws IllegalArgumentException { GoogleUrl url = new GoogleUrl(encodedServerUrl); HashMap<String, Object> requestMap = new HashMap<String, Object>(); for (Map.Entry<String, Object> entry : Data.mapOf(parameters).entrySet()) { Object value = entry.getValue(); if (value != null) { requestMap.put(entry.getKey(), value); } } url.appendRawPath(expandUriTemplates(pathTemplate, requestMap)); // all other parameters are assumed to be query parameters url.putAll(requestMap); return url; }
@Override public Builder setRequesterPays(Boolean enable) { this.requesterPays = firstNonNull(enable, Data.<Boolean>nullOf(Boolean.class)); return this; }
/** * Returns the blob's data content type. * * @see <a href="https://tools.ietf.org/html/rfc2616#section-14.17">Content-Type</a> */ public String getContentType() { return Data.isNull(contentType) ? null : contentType; }
@Memoized @Nullable Map<String, String> toPb() { Map<String, String> userMap = userMap(); if (userMap == null) { // converted to JSON null return Data.nullOf(HashMap.class); } if (userMap.isEmpty()) { // dropped from JSON return null; } HashMap<String, String> pbMap = new HashMap<>(); for (Map.Entry<String, String> entry : userMap.entrySet()) { String key = entry.getKey(); String val = entry.getValue(); if (val == null) { val = Data.NULL_STRING; } pbMap.put(key, val); } return Collections.unmodifiableMap(pbMap); }