1 package org.opendaylight.yangtools.yang.data.impl.codec;
5 import org.opendaylight.yangtools.concepts.Identifiable;
6 import org.opendaylight.yangtools.yang.binding.Augmentation;
7 import org.opendaylight.yangtools.yang.binding.BaseIdentity;
8 import org.opendaylight.yangtools.yang.binding.DataContainer;
9 import org.opendaylight.yangtools.yang.binding.Identifier;
10 import org.opendaylight.yangtools.yang.common.QName;
13 public interface CodecRegistry {
15 InstanceIdentifierCodec getInstanceIdentifierCodec();
17 IdentitityCodec<?> getIdentityCodec();
19 <T extends DataContainer> DataContainerCodec<T> getCodecForDataObject(Class<T> object);
21 <T extends Identifiable<?>> IdentifierCodec<?> getIdentifierCodecForIdentifiable(Class<T> object);
23 <T extends Identifier<?>> IdentifierCodec<T> getCodecForIdentifier(Class<T> object);
25 <T extends Augmentation<?>> AugmentationCodec<T> getCodecForAugmentation(Class<T> object);
27 <T extends BaseIdentity> IdentitityCodec<T> getCodecForIdentity(Class<T> codec);
29 Class<?> getClassForPath(List<QName> names);
31 IdentifierCodec<?> getKeyCodecForPath(List<QName> names);
34 void bindingClassEncountered(Class<?> cls);
36 void putPathToClass(List<QName> names, Class<?> cls);
38 public abstract QName getQNameForAugmentation(Class<?> cls);