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;
14 import java.util.Optional;
16 import java.util.function.Function;
17 import org.opendaylight.yangtools.yang.model.api.Module;
18 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
21 * Maven 3.1.x and newer uses SLF4J internally, which means we do not need to pass
22 * a logger instance around.
24 public interface BasicCodeGenerator {
26 * Generate sources from provided {@link SchemaContext}.
29 * parsed from YANG files
30 * @param outputBaseDir
31 * expected output directory for generated sources configured by
33 * @param currentModules
34 * YANG modules parsed from yangFilesRootDir
35 * @return collection of files that were generated from schema context
38 * @deprecated Implement {@link #generateSources(SchemaContext, File, Set, Function)} instead.
41 Collection<File> generateSources(SchemaContext context, File outputBaseDir, Set<Module> currentModules)
45 * Generate sources from provided {@link SchemaContext}.
48 * parsed from YANG files
49 * @param outputBaseDir
50 * expected output directory for generated sources configured by
52 * @param currentModules
53 * YANG modules parsed from yangFilesRootDir
54 * @param moduleResourcePathResolver
55 * Function converting a local module to the packaged resource path
56 * @return collection of files that were generated from schema context
58 default Collection<File> generateSources(final SchemaContext context, final File outputBaseDir,
59 final Set<Module> currentModules,
60 final Function<Module, Optional<String>> moduleResourcePathResolver) throws IOException {
61 return generateSources(context, outputBaseDir, currentModules);
65 * Provided map contains all configuration that was set in pom for code
66 * generator in additionalConfiguration tag.
68 void setAdditionalConfig(Map<String, String> additionalConfiguration);
71 * Provided folder is marked as resources and its content will be packaged
72 * in resulting jar. Feel free to add necessary resources.
74 void setResourceBaseDir(File resourceBaseDir);