Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /*
  * Copyright (C) 2015 The Pennsylvania State University and the University of Wisconsin
  * Systems and Internet Infrastructure Security Laboratory
  *
  * Author: Damien Octeau
  *
  * Licensed 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 edu.psu.cse.siis.coal.arguments;
A singleton manager for method return values.
public class MethodReturnValueManager {
      new HashMap<>();
  private static final MethodReturnValueManager instance = new MethodReturnValueManager();
  private MethodReturnValueManager() {
  }
  public static MethodReturnValueManager v() {
    return ;
  }

  
Registers a method return value analysis.

Parameters:
subSignature A method subsignature (name and argument types).
analysis A MethodReturnValueAnalysis.
  public void registerMethodReturnValueAnalysis(String subSignature,
      MethodReturnValueAnalysis analysis) {
    .put(subSignatureanalysis);
  }

  
Returns the possible return values for a given method call.

Parameters:
call A method call.
Returns:
The possible return values for the method call.
  public Set<ObjectgetMethodReturnValues(Call call) {
    Stmt stmt = call.stmt;
    if (!stmt.containsInvokeExpr()) {
      throw new RuntimeException("Statement does not contain invoke expression: " + stmt);
    }
    InvokeExpr invokeExpr = stmt.getInvokeExpr();
    // First consider the registered method return value analyses.
    MethodReturnValueAnalysis analysis =
    if (analysis != null) {
      return analysis.computeMethodReturnValues(call);
    } else if (Model.v().getArgumentsForSource(invokeExpr) != null) {
      // Then consider the declared COAL sources.
    }
    return null;
  }
New to GrepCode? Check out our FAQ X