/* * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ package org.opendaylight.yangtools.yang.model.api.stmt; import java.util.Collection; import javax.annotation.Nonnull; import javax.annotation.Nullable; import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; @Rfc6020AbnfRule("type-stmt") public interface TypeStatement extends DeclaredStatement { @Nonnull String getName(); @Rfc6020AbnfRule("numerical-restrictions") interface NumericalRestrictions extends TypeStatement { @Nonnull RangeStatement getRange(); } @Rfc6020AbnfRule("decimal64-specification") interface Decimal64Specification extends TypeStatement { @Nonnull FractionDigitsStatement getFractionDigits(); @Nullable RangeStatement getRange(); } @Rfc6020AbnfRule("string-restrictions") interface StringRestrictions extends TypeStatement { @Nullable LengthStatement getLength(); @Nonnull Collection getPatterns(); } @Rfc6020AbnfRule("enum-specification") interface EnumSpecification extends TypeStatement { @Nonnull Collection getEnums(); } @Rfc6020AbnfRule("leafref-specification") interface LeafrefSpecification extends TypeStatement { @Nullable PathStatement getPath(); } interface InstanceIdentifierSpecification extends TypeStatement { @Nullable RequireInstanceStatement getRequireInstance(); } interface IdentityRefSpecification extends TypeStatement { } interface BitsSpecification extends TypeStatement { @Nonnull Collection getBits(); } interface UnionSpecification extends TypeStatement { @Nonnull Collection getTypes(); } }