blob: 4d5a5b44aff37e6f3d3541bbea736f24bb4475ba [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.adobe.ac.pmd.nodes;
import java.util.List;
import java.util.Map;
import com.adobe.ac.pmd.parser.IParserNode;
/**
* Node representing a Function It contains the function name, its parameters,
* its return type, its modifiers, its metadata
*/
public interface IFunction extends IVisible, IMetaDataListHolder, INamableNode, IAsDocHolder, ICommentHolder
{
/**
* Finds recursively a statement in the function body from a list of names
*
* @param primaryNames statement name
* @return corresponding node
*/
List< IParserNode > findPrimaryStatementInBody( final String[] primaryNames );
/**
* Finds recursively a statement in the function body from its name
*
* @param primaryName statement name
* @return corresponding node
*/
List< IParserNode > findPrimaryStatementsInBody( final String primaryName );
/**
* @return
*/
IParserNode getBody();
/**
* @return
*/
int getCyclomaticComplexity();
/**
* @return
*/
Map< String, IParserNode > getLocalVariables();
/**
* @return
*/
List< IParameter > getParameters();
/**
* @return
*/
IIdentifierNode getReturnType();
/**
* @return
*/
int getStatementNbInBody();
/**
* @return Extracts the super call node (if any) from the function content
* block
*/
IParserNode getSuperCall();
boolean isEventHandler();
/**
* @return
*/
boolean isGetter();
/**
* @return
*/
boolean isOverriden();
/**
* @return
*/
boolean isSetter();
}