/* * 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.controller.sal.binding.model.api; import java.util.List; /** * The Method Signature interface contains simplified meta model for java * method definition. Each method MUST be defined by name, return type, * parameters and access modifier. *
* Additionally method MAY contain associated annotations and comment. By * contract if method does not contain any comments or annotation definitions * the {@link #getComment()} SHOULD rather return empty string and {@link * #getAnnotations()} SHOULD rather return empty list than null * values. *
* The defining Type contains the reference to Generated Type that declares * Method Signature. */ public interface MethodSignature extends TypeMember { /** * Returns true if the method signature is defined as abstract. *
* By default in java all method declarations in interface are defined as abstract, * but the user don't need necessary to declare abstract keyword in front of each method. *
* The abstract methods are allowed in Class definitions but only when the class is declared as abstract. * * @return true if the method signature is defined as abstract. */ public boolean isAbstract(); /** * Returns the List of parameters that method declare. If the method does * not contain any parameters, the method will return empty List. * * @return the List of parameters that method declare. */ public List getParameters(); /** * The Parameter interface is designed to hold the information of method * Parameter(s). The parameter is defined by his Name which MUST be * unique as java does not allow multiple parameters with same names for * one method and Type that is associated with parameter. */ interface Parameter { /** * Returns the parameter name. * * @return the parameter name. */ public String getName(); /** * Returns Type that is bounded to parameter name. * * @return Type that is bounded to parameter name. */ public Type getType(); } }