2 * Copyright (c) 2013 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.controller.config.yangjmxgenerator;
10 import org.opendaylight.yangtools.sal.binding.generator.spi.TypeProvider;
11 import org.opendaylight.yangtools.sal.binding.model.api.Type;
12 import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode;
13 import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
14 import org.opendaylight.yangtools.yang.model.api.SchemaNode;
15 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
17 public class TypeProviderWrapper {
18 private final TypeProvider typeProvider;
20 public TypeProviderWrapper(TypeProvider typeProvider) {
21 this.typeProvider = typeProvider;
24 public Type getType(LeafSchemaNode leaf) {
25 TypeDefinition<?> type = leaf.getType();
26 return getType(leaf, type);
29 public Type getType(SchemaNode leaf, TypeDefinition<?> type) {
32 javaType = typeProvider.javaTypeForSchemaDefinitionType(
35 throw new IllegalArgumentException("Unknown type received for "
37 } catch (IllegalArgumentException e) {
38 throw new IllegalArgumentException("Error while resolving type of "
44 // there is no getType in common interface
45 public Type getType(LeafListSchemaNode leaf) {
48 javaType = typeProvider.javaTypeForSchemaDefinitionType(
49 leaf.getType(), leaf);
51 throw new IllegalArgumentException(
52 "Unknown type received for " + leaf.toString());
53 } catch (IllegalArgumentException e) {
54 throw new IllegalArgumentException("Error while resolving type of "
60 public String getJMXParamForBaseType(TypeDefinition<?> baseType) {
61 return typeProvider.getConstructorPropertyName(baseType);