1 package org.opendaylight.controller.sal.binding.dom.serializer.impl;
3 import java.lang.reflect.Field;
6 import org.opendaylight.controller.sal.binding.dom.serializer.api.InstanceIdentifierCodec;
7 import org.opendaylight.yangtools.yang.binding.BindingCodec;
8 import org.opendaylight.yangtools.yang.common.QName;
9 import org.opendaylight.yangtools.yang.data.api.CompositeNode;
11 public class CodecMapping {
13 public static final String INSTANCE_IDENTIFIER_CODEC = "INSTANCE_IDENTIFIER_CODEC";
14 public static final String CLASS_TO_CASE_MAP = "CLASS_TO_CASE";
15 public static final String COMPOSITE_TO_CASE = "COMPOSITE_TO_CASE";
16 public static final String AUGMENTATION_CODEC = "AUGMENTATION_CODEC";
18 public static void setIdentifierCodec(Class<?> obj,InstanceIdentifierCodec codec) {
19 Field instanceIdField;
21 instanceIdField = obj.getField(INSTANCE_IDENTIFIER_CODEC);
22 instanceIdField.set(null, codec);
23 } catch (NoSuchFieldException e) {
25 } catch (SecurityException e) {
27 } catch (IllegalAccessException e) {
32 public static void setClassToCaseMap(Class<? extends BindingCodec<?,?>> codec,
33 Map<Class<?>,BindingCodec<?,?>> classToCaseRawCodec) {
34 Field instanceIdField;
36 instanceIdField = codec.getField(CLASS_TO_CASE_MAP);
37 instanceIdField.set(null, classToCaseRawCodec);
38 } catch (NoSuchFieldException e) {
40 } catch (SecurityException e) {
42 } catch (IllegalAccessException e) {
49 public static void setCompositeNodeToCaseMap(Class<? extends BindingCodec<?,?>> codec,
50 Map<CompositeNode,BindingCodec<?,?>> compositeToCase) {
51 Field instanceIdField;
53 instanceIdField = codec.getField(COMPOSITE_TO_CASE);
54 instanceIdField.set(null, compositeToCase);
55 } catch (NoSuchFieldException e) {
57 } catch (SecurityException e) {
59 } catch (IllegalAccessException e) {
64 public static void setAugmentationCodec(Class<? extends BindingCodec<Map<QName, Object>, Object>> dataCodec,
65 BindingCodec<?,?> augmentableCodec) {
66 Field instanceIdField;
68 instanceIdField = dataCodec.getField(AUGMENTATION_CODEC);
69 instanceIdField.set(null, augmentableCodec);
70 } catch (NoSuchFieldException e) {
72 } catch (SecurityException e) {
74 } catch (IllegalAccessException e) {