2 * Copyright (c) 2016 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.ConfigStatement;
21 abstract class EmptyConfigStatement implements ConfigStatement {
22 static final ConfigStatement FALSE = new EmptyConfigStatement() {
24 public boolean getValue() {
29 EffectiveStatement<Boolean, ConfigStatement> toEffective() {
30 return EmptyConfigEffectiveStatement.FALSE;
34 static final ConfigStatement TRUE = new EmptyConfigStatement() {
36 public boolean getValue() {
41 EffectiveStatement<Boolean, ConfigStatement> toEffective() {
42 return EmptyConfigEffectiveStatement.TRUE;
46 private EmptyConfigStatement() {
47 // Invisible on purpose
50 abstract EffectiveStatement<Boolean, ConfigStatement> toEffective();
54 public final Collection<? extends DeclaredStatement<?>> declaredSubstatements() {
55 return ImmutableList.of();
60 public final StatementDefinition statementDefinition() {
61 return YangStmtMapping.CONFIG;
65 public final String rawArgument() {
66 return Boolean.toString(getValue());
70 public final Boolean argument() {
71 return Boolean.valueOf(getValue());
76 public final StatementSource getStatementSource() {
77 return StatementSource.DECLARATION;
81 public final int hashCode() {
82 return Objects.hash(statementDefinition(), getStatementSource(), argument(),
83 rawArgument(), declaredSubstatements(), getValue());
87 public final boolean equals(final Object obj) {
91 if (!(obj instanceof ConfigStatement)) {
95 final ConfigStatement other = (ConfigStatement) obj;
97 return getValue() == other.getValue() && argument().equals(other.argument()) &&
98 rawArgument().equals(other.rawArgument()) &&
99 statementDefinition().equals(other.statementDefinition()) &&
100 getStatementSource().equals(other.getStatementSource()) &&
101 declaredSubstatements().equals(other.declaredSubstatements());