2 * Copyright (c) 2015 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.yang2sources.spi;
11 import java.io.IOException;
12 import java.util.Collection;
15 import org.opendaylight.yangtools.yang.model.api.Module;
16 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
19 * Maven 3.1.x and newer uses SLF4J internally, which means we do not need to pass
20 * a logger instance around.
22 public interface BasicCodeGenerator {
24 * Generate sources from provided {@link SchemaContext}
27 * parsed from YANG files
28 * @param outputBaseDir
29 * expected output directory for generated sources configured by
31 * @param currentModules
32 * YANG modules parsed from yangFilesRootDir
33 * @return collection of files that were generated from schema context
36 Collection<File> generateSources(SchemaContext context, File outputBaseDir, Set<Module> currentModules)
40 * Provided map contains all configuration that was set in pom for code
41 * generator in additionalConfiguration tag
43 * @param additionalConfiguration
45 void setAdditionalConfig(Map<String, String> additionalConfiguration);
48 * Provided folder is marked as resources and its content will be packaged
49 * in resulting jar. Feel free to add necessary resources
51 * @param resourceBaseDir
53 void setResourceBaseDir(File resourceBaseDir);