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.yang.data.impl.leafref;
10 import org.opendaylight.yangtools.yang.common.QName;
12 class QNamePredicateBuilder {
14 private QName identifier;
15 private LeafRefPath pathKeyExpression;
17 public QNamePredicateBuilder() {
20 public QNamePredicateBuilder(final QName identifier, final LeafRefPath pathKeyExpression) {
21 this.identifier = identifier;
22 this.pathKeyExpression = pathKeyExpression;
25 public QName getIdentifier() {
29 public void setIdentifier(final QName identifier) {
30 this.identifier = identifier;
33 public LeafRefPath getPathKeyExpression() {
34 return pathKeyExpression;
37 public void setPathKeyExpression(final LeafRefPath pathKeyExpression) {
38 this.pathKeyExpression = pathKeyExpression;
41 public QNamePredicate build() {
42 return new QNamePredicateImpl(identifier, pathKeyExpression);
46 public String toString() {
47 final StringBuilder sb = new StringBuilder();
50 sb.append(identifier);
51 sb.append("=current()");
53 final Iterable<QNameWithPredicate> pathFromRoot = pathKeyExpression
56 for (final QNameWithPredicate qName : pathFromRoot) {
57 sb.append('/').append(qName);