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.parser.stmt.rfc6020;
10 import com.google.common.collect.ImmutableList;
11 import java.util.Collection;
12 import java.util.Objects;
13 import javax.annotation.Nonnull;
14 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
15 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
16 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
17 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
18 import org.opendaylight.yangtools.yang.model.api.meta.StatementSource;
19 import org.opendaylight.yangtools.yang.model.api.stmt.MandatoryStatement;
21 abstract class EmptyMandatoryStatement implements MandatoryStatement {
22 static final MandatoryStatement FALSE = new EmptyMandatoryStatement() {
25 public Boolean getValue() {
30 EffectiveStatement<Boolean, MandatoryStatement> toEffective() {
31 return EmptyMandatoryEffectiveStatement.FALSE;
35 static final MandatoryStatement TRUE = new EmptyMandatoryStatement() {
38 public Boolean getValue() {
43 EffectiveStatement<Boolean, MandatoryStatement> toEffective() {
44 return EmptyMandatoryEffectiveStatement.TRUE;
48 abstract EffectiveStatement<Boolean, MandatoryStatement> toEffective();
52 public final Collection<? extends DeclaredStatement<?>> declaredSubstatements() {
53 return ImmutableList.of();
58 public final StatementDefinition statementDefinition() {
59 return YangStmtMapping.MANDATORY;
63 public final String rawArgument() {
64 return getValue().toString();
68 public final Boolean argument() {
74 public final StatementSource getStatementSource() {
75 return StatementSource.DECLARATION;
79 public final int hashCode() {
80 return Objects.hash(statementDefinition(), getStatementSource(), argument(),
81 rawArgument(), declaredSubstatements(), getValue());
85 public final boolean equals(final Object obj) {
89 if (!(obj instanceof MandatoryStatement)) {
93 final MandatoryStatement other = (MandatoryStatement) obj;
94 return argument().equals(other.argument())
95 && rawArgument().equals(other.rawArgument())
96 && getValue().equals(other.getValue())
97 && statementDefinition().equals(other.statementDefinition())
98 && getStatementSource().equals(other.getStatementSource())
99 && declaredSubstatements().equals(other.declaredSubstatements());