2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
\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
8 package org.opendaylight.controller.yang.model.util;
\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
15 import org.opendaylight.controller.yang.common.QName;
\r
16 import org.opendaylight.controller.yang.model.api.SchemaPath;
\r
18 public final class BaseTypes {
\r
20 private BaseTypes() {}
\r
22 public static final URI BaseTypesNamespace = URI
\r
23 .create("urn:ietf:params:xml:ns:yang:1");
\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
29 * @param typeName yang type name
\r
30 * @return built-in base yang type QName.
\r
32 public static final QName constructQName(final String typeName) {
\r
33 return new QName(BaseTypesNamespace, typeName);
\r
37 * Creates Schema Path from Qname.
\r
39 * @param typeName yang type QName
\r
40 * @return Schema Path from Qname.
\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
49 * Creates Schema Path from List of partial paths defined as Strings, module Namespace and
\r
50 * module latest Revision Date.
\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
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
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
68 return new SchemaPath(pathList, true);
\r