Package com.strobel.reflection

Examples of com.strobel.reflection.TypeList


            p3
        );

        final MethodInfo invokeMethod = Expression.getInvokeMethod(e);
        final Type<?> returnType = invokeMethod.getReturnType();
        final TypeList parameterTypes = invokeMethod.getParameters().getParameterTypes();
        final Type delegateType = invokeMethod.getDeclaringType();

        assertTrue(delegateType.isGenericType());
        assertEquals(Types.String, delegateType.getTypeArguments().get(0));

        assertEquals(PrimitiveTypes.Boolean, returnType);
        assertEquals(PrimitiveTypes.Integer, parameterTypes.get(0));
        assertEquals(PrimitiveTypes.Long, parameterTypes.get(1));
        assertEquals(Types.String, parameterTypes.get(2));

        final Delegate<?> delegate = e.compileDelegate();
        final boolean result = (boolean) delegate.getMethodHandle().invokeExact(2, 3L, "moo");

        assertTrue(result);
View Full Code Here


        _dataBuffer.reset(DATA_BUFFER_SIZE);
        _poolBuffer.reset(POOL_BUFFER_SIZE);
        _signatureBuffer.reset();

        final Type<?> baseType = t.getBaseType();
        final TypeList interfaceTypes = t.getInterfaces();

        int flags = t.getModifiers();

        if ((flags & PROTECTED) != 0) {
            flags |= PUBLIC;
        }

        flags = flags & ClassFlags & ~STRICTFP;

        if ((flags & INTERFACE) == 0) {
            flags |= ACC_SUPER;
        }

        if (t.isNested() && StringUtilities.isNullOrEmpty(t.getName())) {
            flags &= ~FINAL;
        }

        _dataBuffer.putShort(flags);
        _dataBuffer.putShort(t.getTypeToken(t));

        if (baseType != null && baseType.isClass()) {
            _dataBuffer.putShort(t.getTypeToken(baseType));
        }
        else {
            _dataBuffer.putShort(t.getTypeToken(Types.Object));
        }

        _dataBuffer.putShort(interfaceTypes.size());

        for (final Type interfaceType : interfaceTypes) {
            _dataBuffer.putShort(t.getTypeToken(interfaceType));
        }
View Full Code Here

            writeBody(method);
            endAttribute(attributeLengthIndex);
            attributeCount++;
        }

        final TypeList exceptions = method.getThrownTypes();

        if (!exceptions.isEmpty()) {
            final int attributeLengthIndex = writeAttribute("Exceptions");

            _dataBuffer.putShort(exceptions.size());

            for (final Type exceptionType : exceptions) {
                _dataBuffer.putShort(t.getTypeToken(exceptionType));
            }
View Full Code Here

        final int methodToken = methodBuilder.getDeclaringType().getMethodToken(method);

        emit(opCode, (short)methodToken);

        final TypeList parameterTypes;

        int formalParametersSize = 0;

        if (method instanceof MethodBuilder) {
            parameterTypes = ((MethodBuilder)method).getParameterTypes();
View Full Code Here

        if (methodBuilder == null) {
            throw Error.bytecodeGeneratorNotOwnedByMethodBuilder();
        }

        final TypeList parameterTypes = methodBuilder.getParameterTypes();

        if (index < 0 || index >= parameterTypes.size()) {
            throw Error.argumentIndexOutOfRange(methodBuilder, index);
        }

        final int absoluteIndex = translateParameter(index);

        final OpCode opCode = getLocalLoadOpCode(
            parameterTypes.get(index),
            absoluteIndex
        );

        internalEmit(opCode);
View Full Code Here

        if (methodBuilder == null) {
            throw Error.bytecodeGeneratorNotOwnedByMethodBuilder();
        }

        final TypeList parameterTypes = methodBuilder.getParameterTypes();

        if (index < 0 || index >= parameterTypes.size()) {
            throw Error.argumentIndexOutOfRange(methodBuilder, index);
        }

        final int absoluteIndex = translateParameter(index);

        final OpCode opCode = getLocalStoreOpCode(
            parameterTypes.get(index),
            absoluteIndex
        );

        internalEmit(opCode);
View Full Code Here

        if (methodBuilder != null) {
            if (!methodBuilder.isStatic()) {
                ++index;
            }

            final TypeList parameterTypes = methodBuilder.getParameterTypes();
           
            for (int i = 0, n = parameterTypes.size(); i < localIndex && i < n; i++) {
                final TypeKind kind = parameterTypes.get(i).getKind();
                if (kind == TypeKind.LONG || kind == TypeKind.DOUBLE) {
                    ++index;
                }
            }
        }
View Full Code Here

            exceptions[least] = temp;
        }
    }

    private void registerCheckedExceptions(final MethodBase method) {
        final TypeList thrownTypes = method.getThrownTypes();

        if (thrownTypes == null || thrownTypes.isEmpty()) {
            return;
        }

        for (int i = 0, n = thrownTypes.size(); i < n; i++) {
            final Type<?> thrownType = thrownTypes.get(i);

            if (Types.RuntimeException.isAssignableFrom(thrownType)) {
                continue;
            }
View Full Code Here

        if (!delegateType.isGenericTypeDefinition()) {
            return delegateType;
        }
       
        final TypeList genericParameters = delegateType.getGenericTypeParameters();
        final Type<?>[] typeArguments = new Type<?>[genericParameters.size()];

        int t = 0;

        if (!returnType.isPrimitive()) {
            typeArguments[t++] = returnType;
View Full Code Here

                );
            }
        }

        final Type<?> genericReturnType;
        final TypeList genericParameterTypes;

        if (t == 0) {
            genericReturnType = returnType;
            genericParameterTypes = parameterTypes;
        }
View Full Code Here

TOP

Related Classes of com.strobel.reflection.TypeList

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.