Seal SchemaSourceRepresentation hierarchy
[yangtools.git] / plugin / yang-maven-plugin-spi / src / test / java / org / opendaylight / yangtools / yang2sources / spi / TestFileGenerator.java
1 /*
2  * Copyright (c) 2020 PANTHEON.tech, s.r.o. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.yangtools.yang2sources.spi;
9
10 import com.google.common.collect.ImmutableTable;
11 import com.google.common.collect.Table;
12 import java.util.Set;
13 import org.eclipse.jdt.annotation.NonNullByDefault;
14 import org.opendaylight.yangtools.plugin.generator.api.FileGenerator;
15 import org.opendaylight.yangtools.plugin.generator.api.GeneratedFile;
16 import org.opendaylight.yangtools.plugin.generator.api.GeneratedFileLifecycle;
17 import org.opendaylight.yangtools.plugin.generator.api.GeneratedFilePath;
18 import org.opendaylight.yangtools.plugin.generator.api.GeneratedFileType;
19 import org.opendaylight.yangtools.plugin.generator.api.ModuleResourceResolver;
20 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
21 import org.opendaylight.yangtools.yang.model.api.Module;
22
23 @NonNullByDefault
24 final class TestFileGenerator implements FileGenerator {
25     private final String prefix;
26
27     TestFileGenerator(final String prefix) {
28         this.prefix = prefix;
29     }
30
31     @Override
32     public Table<GeneratedFileType, GeneratedFilePath, GeneratedFile> generateFiles(final EffectiveModelContext context,
33             final Set<Module> localModules, final ModuleResourceResolver moduleResourcePathResolver) {
34         if (prefix == null) {
35             return ImmutableTable.of();
36         }
37
38         return ImmutableTable.<GeneratedFileType, GeneratedFilePath, GeneratedFile>builder()
39             .put(GeneratedFileType.SOURCE, GeneratedFilePath.ofFilePath(prefix + "Source.test"),
40                 GeneratedFile.of(GeneratedFileLifecycle.PERSISTENT, "source"))
41             .put(GeneratedFileType.RESOURCE, GeneratedFilePath.ofFilePath(prefix + "-resource"),
42                 GeneratedFile.of(GeneratedFileLifecycle.PERSISTENT, "test-resource"))
43             .put(GeneratedFileType.SOURCE, GeneratedFilePath.ofFilePath(prefix + "GenSource.test"),
44                 GeneratedFile.of(GeneratedFileLifecycle.TRANSIENT, "source"))
45             .put(GeneratedFileType.RESOURCE, GeneratedFilePath.ofFilePath(prefix + "-gen-resource"),
46                 GeneratedFile.of(GeneratedFileLifecycle.TRANSIENT, "resource"))
47             .build();
48     }
49 }