/*
* Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
package org.opendaylight.mdsal.binding.generator.impl;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkState;
import java.util.IdentityHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.opendaylight.mdsal.binding.generator.api.BindingGenerator;
import org.opendaylight.mdsal.binding.generator.api.BindingRuntimeGenerator;
import org.opendaylight.mdsal.binding.generator.api.BindingRuntimeTypes;
import org.opendaylight.mdsal.binding.model.api.JavaTypeName;
import org.opendaylight.mdsal.binding.model.api.Type;
import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode;
import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
import org.opendaylight.yangtools.yang.model.api.SchemaNode;
import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class BindingGeneratorImpl implements BindingGenerator, BindingRuntimeGenerator {
private static final Logger LOG = LoggerFactory.getLogger(BindingGeneratorImpl.class);
/**
* Resolves generated types from context
schema nodes only for modules specified
* in modules
. Generated types are created for modules, groupings, types, containers, lists, choices,
* augments, rpcs, notification, identities.
*
* @param context schema context which contains data about all schema nodes saved in modules
* @param modules set of modules for which schema nodes should be generated types
* @return list of types (usually GeneratedType
or
* GeneratedTransferObject
) which:
*
context
schema nodes andmodules
* set.context
is null ormodules
is nullcontext
contain no modules
*/
@Override
public List