2 * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.yangtools.yang.data.codec.gson;
10 import com.google.common.base.Preconditions;
11 import org.opendaylight.yangtools.yang.data.impl.codec.DataStringCodec;
12 import org.opendaylight.yangtools.yang.data.impl.codec.TypeDefinitionAwareCodec;
15 * Abstract base implementation of {@link JSONCodec}, which wraps a {@link TypeDefinitionAwareCodec}.
17 * @param <T> Deserialized object type
19 abstract class AbstractJSONCodec<T> implements JSONCodec<T> {
20 private final DataStringCodec<T> codec;
22 AbstractJSONCodec(final DataStringCodec<T> codec) {
23 this.codec = Preconditions.checkNotNull(codec);
27 public final Class<T> getDataClass() {
28 return codec.getInputClass();
32 public final T deserializeString(final String input) {
33 return codec.deserialize(input);
36 final String serialize(final T input) {
37 return codec.serialize(input);