Search in sources :

Example 6 with PackageInfo

use of org.ballerinalang.util.codegen.PackageInfo in project ballerina by ballerina-lang.

the class BLangVMErrors method getStackFrame.

public static BStruct getStackFrame(CallableUnitInfo callableUnitInfo, int ip) {
    if (callableUnitInfo == null) {
        return null;
    }
    ProgramFile progFile = callableUnitInfo.getPackageInfo().getProgramFile();
    PackageInfo runtimePackage = progFile.getPackageInfo(PACKAGE_RUNTIME);
    StructInfo callStackElement = runtimePackage.getStructInfo(STRUCT_CALL_STACK_ELEMENT);
    int currentIP = ip - 1;
    Object[] values;
    values = new Object[4];
    String parentScope = "";
    if (callableUnitInfo instanceof ResourceInfo) {
        parentScope = ((ResourceInfo) callableUnitInfo).getServiceInfo().getName() + ".";
    } else if (callableUnitInfo instanceof ActionInfo) {
        parentScope = ((ActionInfo) callableUnitInfo).getConnectorInfo().getName() + ".";
    }
    values[0] = parentScope + callableUnitInfo.getName();
    values[1] = callableUnitInfo.getPkgPath();
    if (callableUnitInfo.isNative()) {
        values[2] = "<native>";
        values[3] = 0;
    } else {
        LineNumberInfo lineNumberInfo = callableUnitInfo.getPackageInfo().getLineNumberInfo(currentIP);
        if (lineNumberInfo != null) {
            values[2] = lineNumberInfo.getFileName();
            values[3] = lineNumberInfo.getLineNumber();
        }
    }
    return BLangVMStructs.createBStruct(callStackElement, values);
}
Also used : ResourceInfo(org.ballerinalang.util.codegen.ResourceInfo) StructInfo(org.ballerinalang.util.codegen.StructInfo) PackageInfo(org.ballerinalang.util.codegen.PackageInfo) ActionInfo(org.ballerinalang.util.codegen.ActionInfo) LineNumberInfo(org.ballerinalang.util.codegen.LineNumberInfo) ProgramFile(org.ballerinalang.util.codegen.ProgramFile)

Example 7 with PackageInfo

use of org.ballerinalang.util.codegen.PackageInfo in project ballerina by ballerina-lang.

the class BLangVMErrors method createIllegalStateException.

public static BStruct createIllegalStateException(Context context, String msg) {
    PackageInfo errorPackageInfo = context.getProgramFile().getPackageInfo(PACKAGE_RUNTIME);
    StructInfo errorStructInfo = errorPackageInfo.getStructInfo(STRUCT_ILLEGAL_STATE_EXCEPTION);
    return createError(context, true, errorStructInfo, msg);
}
Also used : StructInfo(org.ballerinalang.util.codegen.StructInfo) PackageInfo(org.ballerinalang.util.codegen.PackageInfo)

Example 8 with PackageInfo

use of org.ballerinalang.util.codegen.PackageInfo in project ballerina by ballerina-lang.

the class BLangVMErrors method createNullRefException.

public static BStruct createNullRefException(CallableUnitInfo callableUnitInfo) {
    ProgramFile progFile = callableUnitInfo.getPackageInfo().getProgramFile();
    PackageInfo errorPackageInfo = progFile.getPackageInfo(PACKAGE_RUNTIME);
    StructInfo errorStructInfo = errorPackageInfo.getStructInfo(STRUCT_NULL_REF_EXCEPTION);
    return generateError(callableUnitInfo, true, errorStructInfo);
}
Also used : StructInfo(org.ballerinalang.util.codegen.StructInfo) PackageInfo(org.ballerinalang.util.codegen.PackageInfo) ProgramFile(org.ballerinalang.util.codegen.ProgramFile)

Example 9 with PackageInfo

use of org.ballerinalang.util.codegen.PackageInfo in project ballerina by ballerina-lang.

the class BLangVMErrors method createNullRefException.

public static BStruct createNullRefException(WorkerExecutionContext context) {
    PackageInfo errorPackageInfo = context.programFile.getPackageInfo(PACKAGE_RUNTIME);
    StructInfo errorStructInfo = errorPackageInfo.getStructInfo(STRUCT_NULL_REF_EXCEPTION);
    return generateError(context, true, errorStructInfo);
}
Also used : StructInfo(org.ballerinalang.util.codegen.StructInfo) PackageInfo(org.ballerinalang.util.codegen.PackageInfo)

Example 10 with PackageInfo

use of org.ballerinalang.util.codegen.PackageInfo in project ballerina by ballerina-lang.

the class ConnectorSPIModelHelper method getAnnotationVariable.

public static BMap getAnnotationVariable(String pkgPath, ProgramFile programFile) {
    PackageInfo packageInfo = programFile.getPackageInfo(pkgPath);
    PackageVarInfo annotationData = packageInfo.getPackageVarInfo(ANNOTATION_DATA);
    final LockableStructureType globalMemoryBlock = programFile.getGlobalMemoryBlock();
    return (BMap) globalMemoryBlock.getRefField(annotationData.getGlobalMemIndex());
}
Also used : BMap(org.ballerinalang.model.values.BMap) PackageInfo(org.ballerinalang.util.codegen.PackageInfo) PackageVarInfo(org.ballerinalang.util.codegen.PackageVarInfo) LockableStructureType(org.ballerinalang.model.values.LockableStructureType)

Aggregations

PackageInfo (org.ballerinalang.util.codegen.PackageInfo)48 StructInfo (org.ballerinalang.util.codegen.StructInfo)35 BStruct (org.ballerinalang.model.values.BStruct)17 ProgramFile (org.ballerinalang.util.codegen.ProgramFile)10 BValue (org.ballerinalang.model.values.BValue)6 BStructType (org.ballerinalang.model.types.BStructType)5 FunctionInfo (org.ballerinalang.util.codegen.FunctionInfo)5 Debugger (org.ballerinalang.util.debugger.Debugger)5 BallerinaException (org.ballerinalang.util.exceptions.BallerinaException)5 BInteger (org.ballerinalang.model.values.BInteger)2 BMap (org.ballerinalang.model.values.BMap)2 BString (org.ballerinalang.model.values.BString)2 SocketIOChannel (org.ballerinalang.nativeimpl.io.channels.SocketIOChannel)2 Channel (org.ballerinalang.nativeimpl.io.channels.base.Channel)2 TesterinaFunction (org.ballerinalang.testerina.core.entity.TesterinaFunction)2 Instruction (org.ballerinalang.util.codegen.Instruction)2 PackageVarInfo (org.ballerinalang.util.codegen.PackageVarInfo)2 BLangRuntimeException (org.ballerinalang.util.exceptions.BLangRuntimeException)2 Test (org.testng.annotations.Test)2 PrintStream (java.io.PrintStream)1