Added generation of Transfer Objects from Type Definitions.
[controller.git] / opendaylight / sal / yang-prototype / code-generator / yang-model-parser-impl / src / test / java / org / opendaylight / controller / yang / model / parser / impl / TestUtils.java
1 /*
2  * Copyright (c) 2013 Cisco Systems, Inc. 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.controller.yang.model.parser.impl;
9
10 import java.io.File;
11 import java.net.URI;
12 import java.text.DateFormat;
13 import java.text.ParseException;
14 import java.text.SimpleDateFormat;
15 import java.util.ArrayList;
16 import java.util.Date;
17 import java.util.List;
18 import java.util.Set;
19
20 import org.opendaylight.controller.yang.common.QName;
21 import org.opendaylight.controller.yang.model.api.Module;
22 import org.opendaylight.controller.yang.model.api.ModuleImport;
23 import org.opendaylight.controller.yang.model.api.SchemaPath;
24 import org.opendaylight.controller.yang.model.api.TypeDefinition;
25 import org.opendaylight.controller.yang.model.parser.api.YangModelParser;
26
27 final class TestUtils {
28
29     private TestUtils() {
30     }
31
32     public static Set<Module> loadModules(String resourceDirectory) {
33         YangModelParser parser = new YangModelParserImpl();
34         final File testDir = new File(resourceDirectory);
35         final String[] fileList = testDir.list();
36         final List<File> testFiles = new ArrayList<File>();
37         for (int i = 0; i < fileList.length; i++) {
38             String fileName = fileList[i];
39             testFiles.add(new File(testDir, fileName));
40         }
41         return parser.parseYangModels(testFiles);
42     }
43
44     public static Module findModule(Set<Module> modules, String moduleName) {
45         Module result = null;
46         for (Module module : modules) {
47             if (module.getName().equals(moduleName)) {
48                 result = module;
49                 break;
50             }
51         }
52         return result;
53     }
54
55     public static ModuleImport findImport(Set<ModuleImport> imports,
56             String prefix) {
57         ModuleImport result = null;
58         for (ModuleImport moduleImport : imports) {
59             if (moduleImport.getPrefix().equals(prefix)) {
60                 result = moduleImport;
61                 break;
62             }
63         }
64         return result;
65     }
66
67     public static TypeDefinition<?> findTypedef(
68             Set<TypeDefinition<?>> typedefs, String name) {
69         TypeDefinition<?> result = null;
70         for (TypeDefinition<?> td : typedefs) {
71             if (td.getQName().getLocalName().equals(name)) {
72                 result = td;
73                 break;
74             }
75         }
76         return result;
77     }
78
79     public static SchemaPath createPath(boolean absolute, URI namespace,
80             Date revision, String prefix, String... names) {
81         List<QName> path = new ArrayList<QName>();
82         for (String name : names) {
83             path.add(new QName(namespace, revision, prefix, name));
84         }
85         return new SchemaPath(path, absolute);
86     }
87
88     public static Date createDate(String date) {
89         Date result;
90         final DateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
91         try {
92             result = simpleDateFormat.parse(date);
93         } catch (ParseException e) {
94             result = null;
95         }
96         return result;
97     }
98
99 }

©2013 OpenDaylight, A Linux Foundation Collaborative Project. All Rights Reserved.
OpenDaylight is a registered trademark of The OpenDaylight Project, Inc.
Linux Foundation and OpenDaylight are registered trademarks of the Linux Foundation.
Linux is a registered trademark of Linus Torvalds.