2 * Copyright (c) 2013 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.parser.builder.impl;
10 import com.google.common.collect.ImmutableList;
11 import com.google.common.collect.ImmutableSet;
12 import java.util.List;
13 import java.util.Objects;
15 import org.opendaylight.yangtools.yang.common.QName;
16 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
17 import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
18 import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
19 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
20 import org.opendaylight.yangtools.yang.model.api.Status;
21 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
22 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
24 final class RpcDefinitionImpl implements RpcDefinition {
25 private final QName qname;
26 private final SchemaPath path;
30 private ContainerSchemaNode input;
31 private ContainerSchemaNode output;
32 ImmutableSet<TypeDefinition<?>> typeDefinitions;
33 ImmutableSet<GroupingDefinition> groupings;
34 ImmutableList<UnknownSchemaNode> unknownNodes;
36 RpcDefinitionImpl(final QName qname, final SchemaPath path) {
42 public QName getQName() {
47 public SchemaPath getPath() {
52 public String getDescription() {
57 public String getReference() {
62 public Status getStatus() {
67 public ContainerSchemaNode getInput() {
71 void setInput(final ContainerSchemaNode input) {
76 public ContainerSchemaNode getOutput() {
80 void setOutput(final ContainerSchemaNode output) {
85 public Set<TypeDefinition<?>> getTypeDefinitions() {
86 return typeDefinitions;
90 public Set<GroupingDefinition> getGroupings() {
95 public List<UnknownSchemaNode> getUnknownSchemaNodes() {
100 public int hashCode() {
101 final int prime = 31;
103 result = prime * result + Objects.hashCode(qname);
104 result = prime * result + Objects.hashCode(path);
109 public boolean equals(final Object obj) {
116 if (getClass() != obj.getClass()) {
119 final RpcDefinitionImpl other = (RpcDefinitionImpl) obj;
121 if (other.qname != null) {
124 } else if (!qname.equals(other.qname)) {
128 if (other.path != null) {
131 } else if (!path.equals(other.path)) {
138 public String toString() {
139 StringBuilder sb = new StringBuilder(RpcDefinitionImpl.class.getSimpleName());
143 sb.append(", path=");
145 sb.append(", input=");
147 sb.append(", output=");
150 return sb.toString();