All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.opalj.br.cp.Constant_Pool_Entry.scala Maven / Gradle / Ivy

The newest version!
/* BSD 2-Clause License - see OPAL/LICENSE for details. */
package org.opalj
package br
package cp

import org.opalj.bi.AttributeParent
import org.opalj.bytecode.BytecodeProcessingFailedException

/**
 * Represents a constant pool entry.
 *
 * @author Michael Eichberg
 * @author Andre Pacak
 */
trait Constant_Pool_Entry extends bi.reader.ConstantPoolEntry {

    def tag: Int = throw new UnknownError("tag not available")

    def asString: String = {
        throw new BytecodeProcessingFailedException(s"$this cannot be converted to string")
    }

    def asFieldType: FieldType = {
        throw new BytecodeProcessingFailedException("conversion to field type is not supported")
    }

    def asMethodDescriptor: MethodDescriptor =
        throw new BytecodeProcessingFailedException(
            "conversion to method descriptor is not supported"
        )

    def asFieldTypeSignature: FieldTypeSignature =
        throw new BytecodeProcessingFailedException(
            "conversion to field type signature is not supported"
        )

    def asSignature(ap: AttributeParent): Signature =
        throw new BytecodeProcessingFailedException(
            "conversion to signature attribute is not supported"
        )

    def asConstantValue(cp: Constant_Pool): ConstantValue[_] =
        throw new BytecodeProcessingFailedException(
            "conversion of "+this.getClass.getSimpleName+" to constant value is not supported"
        )

    def asConstantFieldValue(cp: Constant_Pool): ConstantFieldValue[_] =
        throw new BytecodeProcessingFailedException(
            "conversion of "+this.getClass.getSimpleName+" to constant field value is not supported"
        )

    def asFieldref(cp: Constant_Pool): (ObjectType, String, FieldType) =
        throw new BytecodeProcessingFailedException("conversion to field ref is not supported")

    def asMethodref(
        cp: Constant_Pool
    ): (ReferenceType, Boolean /*InterfaceMethodRef*/ , String, MethodDescriptor) =
        throw new BytecodeProcessingFailedException("conversion to method ref is not supported")

    def asObjectType(cp: Constant_Pool): ObjectType =
        throw new BytecodeProcessingFailedException("conversion to object type is not supported")

    def asReferenceType(cp: Constant_Pool): ReferenceType = {
        val message = "conversion to reference type is not supported"
        throw new BytecodeProcessingFailedException(message)
    }

    def asBootstrapArgument(cp: Constant_Pool): BootstrapArgument = {
        val message = "conversion to bootstrap argument is not supported"
        throw new BytecodeProcessingFailedException(message)
    }

    def asMethodHandle(cp: Constant_Pool): MethodHandle = {
        val message = "conversion to method handle is not supported"
        throw new BytecodeProcessingFailedException(message)
    }

    def asNameAndType: CONSTANT_NameAndType_info = {
        val message = "conversion to name and type info is not supported"
        throw new BytecodeProcessingFailedException(message)
    }

    def asInvokeDynamic: CONSTANT_InvokeDynamic_info = {
        val message = "conversion to invoke dynamic info is not supported"
        throw new BytecodeProcessingFailedException(message)
    }

    def asModuleIdentifier(cp: Constant_Pool): String = {
        val message = "conversion to reference type is not supported"
        throw new BytecodeProcessingFailedException(message)
    }

    def asPackageIdentifier(cp: Constant_Pool): String = {
        val message = "conversion to reference type is not supported"
        throw new BytecodeProcessingFailedException(message)
    }

    def isDynamic = false

    def asDynamic: CONSTANT_Dynamic_info = {
        val message = "conversion to dynamic info is not supported"
        throw new BytecodeProcessingFailedException(message)
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy