All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.arangodb.velocypack.module.jdk8.VPackJdk8Module Maven / Gradle / Ivy

/*
 * DISCLAIMER
 *
 * Copyright 2016 ArangoDB GmbH, Cologne, Germany
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * Copyright holder is ArangoDB GmbH, Cologne, Germany
 */

package com.arangodb.velocypack.module.jdk8;

import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.OffsetDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Optional;
import java.util.OptionalDouble;
import java.util.OptionalInt;
import java.util.OptionalLong;

import com.arangodb.velocypack.VPackModule;
import com.arangodb.velocypack.VPackSetupContext;
import com.arangodb.velocypack.module.jdk8.internal.VPackJdk8Deserializers;
import com.arangodb.velocypack.module.jdk8.internal.VPackJdk8Serializers;

/**
 * @author Mark Vollmary
 *
 */
public class VPackJdk8Module implements VPackModule {

	@Override
	public > void setup(final C context) {
		context.registerDeserializer(Instant.class, VPackJdk8Deserializers.INSTANT);
		context.registerDeserializer(LocalDate.class, VPackJdk8Deserializers.LOCAL_DATE);
		context.registerDeserializer(LocalDateTime.class, VPackJdk8Deserializers.LOCAL_DATE_TIME);
		context.registerDeserializer(ZonedDateTime.class, VPackJdk8Deserializers.ZONED_DATE_TIME);
		context.registerDeserializer(OffsetDateTime.class, VPackJdk8Deserializers.OFFSET_DATE_TIME);
		context.registerDeserializer(ZoneId.class, VPackJdk8Deserializers.ZONE_ID);
		context.registerDeserializer(Optional.class, VPackJdk8Deserializers.OPTIONAL, true);
		context.registerDeserializer(OptionalDouble.class, VPackJdk8Deserializers.OPTIONAL_DOUBLE, true);
		context.registerDeserializer(OptionalInt.class, VPackJdk8Deserializers.OPTIONAL_INT, true);
		context.registerDeserializer(OptionalLong.class, VPackJdk8Deserializers.OPTIONAL_LONG, true);

		context.registerSerializer(Instant.class, VPackJdk8Serializers.INSTANT);
		context.registerSerializer(LocalDate.class, VPackJdk8Serializers.LOCAL_DATE);
		context.registerSerializer(LocalDateTime.class, VPackJdk8Serializers.LOCAL_DATE_TIME);
		context.registerSerializer(ZonedDateTime.class, VPackJdk8Serializers.ZONED_DATE_TIME);
		context.registerSerializer(OffsetDateTime.class, VPackJdk8Serializers.OFFSET_DATE_TIME);
		context.registerSerializer(ZoneId.class, VPackJdk8Serializers.ZONE_ID);
		context.registerSerializer(Optional.class, VPackJdk8Serializers.OPTIONAL);
		context.registerSerializer(OptionalDouble.class, VPackJdk8Serializers.OPTIONAL_DOUBLE);
		context.registerSerializer(OptionalInt.class, VPackJdk8Serializers.OPTIONAL_INT);
		context.registerSerializer(OptionalLong.class, VPackJdk8Serializers.OPTIONAL_LONG);
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy