Fix minor bug in FRM proactive flow code path
[controller.git] / opendaylight / sal / yang-prototype / yang / yang-model-util / src / main / java / org / opendaylight / controller / yang / model / util / BaseTypes.java
1 /*\r
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
3  *\r
4  * This program and the accompanying materials are made available under the\r
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
6  * and is available at http://www.eclipse.org/legal/epl-v10.html\r
7  */\r
8 package org.opendaylight.controller.yang.model.util;\r
9 \r
10 import java.net.URI;\r
11 import java.util.ArrayList;\r
12 import java.util.Date;\r
13 import java.util.List;\r
14 \r
15 import org.opendaylight.controller.yang.common.QName;\r
16 import org.opendaylight.controller.yang.model.api.SchemaPath;\r
17 \r
18 public final class BaseTypes {\r
19 \r
20     private BaseTypes() {}\r
21 \r
22     public static final URI BaseTypesNamespace = URI\r
23             .create("urn:ietf:params:xml:ns:yang:1");\r
24 \r
25     /**\r
26      * Construct QName for Built-in base Yang type. The namespace for\r
27      * built-in base yang types is defined as: urn:ietf:params:xml:ns:yang:1\r
28      * \r
29      * @param typeName yang type name\r
30      * @return built-in base yang type QName.\r
31      */\r
32     public static final QName constructQName(final String typeName) {\r
33         return new QName(BaseTypesNamespace, typeName);\r
34     }\r
35 \r
36     /**\r
37      * Creates Schema Path from Qname.\r
38      * \r
39      * @param typeName yang type QName\r
40      * @return Schema Path from Qname.\r
41      */\r
42     public static final SchemaPath schemaPath(final QName typeName) {\r
43         final List<QName> pathList = new ArrayList<QName>();\r
44         pathList.add(typeName);\r
45         return new SchemaPath(pathList, true);\r
46     }\r
47     \r
48     /**\r
49      * Creates Schema Path from List of partial paths defined as Strings, module Namespace and\r
50      * module latest Revision Date.\r
51      * \r
52      * @param actualPath List of partial paths\r
53      * @param namespace Module Namespace\r
54      * @param revision Revision Date\r
55      * @return Schema Path\r
56      */\r
57     public static final SchemaPath schemaPath(final List<String> actualPath, final URI namespace, final Date revision) {\r
58         if (actualPath == null) {\r
59             throw new IllegalArgumentException("The actual path List MUST be specified.");\r
60         }\r
61         final List<QName> pathList = new ArrayList<QName>();\r
62         for (final String path : actualPath) {\r
63             final QName qname = new QName(namespace, revision, path);\r
64             if (qname != null) {\r
65                 pathList.add(qname);\r
66             }\r
67         }\r
68         return new SchemaPath(pathList, true);\r
69     }\r
70 }\r