/* * Copyright (c) 2013 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.mdsal.binding.model.api; import java.util.List; import java.util.Optional; /** * Every Java interface has to be specified with: * * *

* By the definition of the interface constant, enum, enclosed types and method definitions MUST be public, so there is * no need to specify the scope of visibility. */ public interface GeneratedType extends Type, DocumentedType { /** * Returns comment string associated with Generated Type. * * @return comment string associated with Generated Type. */ TypeComment getComment(); /** * Returns List of annotation definitions associated with generated type. * * @return List of annotation definitions associated with generated type. */ List getAnnotations(); /** * Returns true if The Generated Type is defined as abstract. * * @return true if The Generated Type is defined as abstract. */ boolean isAbstract(); /** * Returns List of Types that Generated Type will implement. * * @return List of Types that Generated Type will implement. */ List getImplements(); /** * Returns List of enclosing Generated Types. * * @return List of enclosing Generated Types. */ List getEnclosedTypes(); /** * Returns List of all Enumerator definitions associated with Generated Type. * * @return List of all Enumerator definitions associated with Generated Type. */ List getEnumerations(); /** * Returns List of Constant definitions associated with Generated Type. * * @return List of Constant definitions associated with Generated Type. */ List getConstantDefinitions(); /** * Returns List of Method Definitions associated with Generated Type. The list does not contains getters and setters * for properties. * * @return List of Method Definitions associated with Generated Type. */ List getMethodDefinitions(); /** * Returns List of Properties that are declared for Generated Transfer Object. * * @return List of Properties that are declared for Generated Transfer Object. */ List getProperties(); /** * Returns the YANG definition of this type, if available. * * @return YANG source definition, or empty when unavailable. */ Optional getYangSourceDefinition(); }