
org.opalj.br.reader.MethodParameters_attributeBinding.scala Maven / Gradle / Ivy
The newest version!
/* BSD 2-Clause License - see OPAL/LICENSE for details. */
package org.opalj
package br
package reader
import org.opalj.bi.reader.MethodParameters_attributeReader
import scala.reflect.ClassTag
/**
* Implements the factory methods to create method parameter tables and their entries.
*
* @author Michael Eichberg
*/
trait MethodParameters_attributeBinding
extends MethodParameters_attributeReader
with ConstantPoolBinding
with AttributeBinding {
type MethodParameter = br.MethodParameter
override implicit val methodParameterType: ClassTag[MethodParameter] = ClassTag(classOf[br.MethodParameter])
type MethodParameters_attribute = br.MethodParameterTable
override def MethodParameters_attribute(
cp: Constant_Pool,
ap_name_index: Constant_Pool_Index,
ap_descriptor_index: Constant_Pool_Index,
attribute_name_index: Constant_Pool_Index,
parameters: MethodParameters
): MethodParameters_attribute = {
new MethodParameterTable(parameters)
}
override def MethodParameter(
cp: Constant_Pool,
name_index: Constant_Pool_Index,
access_flags: Int
): MethodParameter = {
val parameterName =
if (name_index == 0)
None // it is a so-called formal parameter
else
Some(cp(name_index).asString)
new MethodParameter(parameterName, access_flags)
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy