Examples of BCClass


Examples of serp.bytecode.BCClass

                continue;
            }

            meth = (Method) fmds[i].getBackingMember();
            // ##### this will fail if we override and don't call super.
            BCClass declaringType = _managedType.getProject()
                .loadClass(fmds[i].getDeclaringType());
            getter = declaringType.getDeclaredMethod(meth.getName(),
                meth.getParameterTypes());
            if (getter == null) {
                addViolation("property-no-getter", new Object[]{ fmds[i] },
                    true);
                continue;
            }
            returned = getReturnedField(getter);
            if (returned != null)
                registerBackingFieldInfo(fmds[i], getter, returned);

            setter = declaringType.getDeclaredMethod(getSetterName(fmds[i]),
                new Class[]{ fmds[i].getDeclaredType() });
            if (setter == null) {
                if (returned == null) {
                    addViolation("property-no-setter",
                        new Object[]{ fmds[i] }, true);
View Full Code Here

Examples of serp.bytecode.BCClass

            for (int i = 0; i < args.length; i++)
                classes.addAll(Arrays.asList(cap.parseTypes(args[i])));
        }

        Project project = new Project();
        BCClass bc;
        PCEnhancer enhancer;
        int status;
        for (Iterator itr = classes.iterator(); itr.hasNext();) {
            Object o = itr.next();
            if (log.isTraceEnabled())
View Full Code Here

Examples of serp.bytecode.BCClass

            return Class.forName(name, false, loader);
        } catch (Throwable t) {
        }

        // create class
        BCClass oid = bc.getProject().loadClass(name, null);
        oid.addDefaultConstructor();
        return Class.forName(name, false, bc);
    }
View Full Code Here

Examples of serp.bytecode.BCClass

    /**
     * Generate a new class with the given name. If a non-null parent class
     * is given, it will be set as the superclass.
     */
    public Class generateClass(String name, Class parent) {
        BCClass bc = _project.loadClass(name, null);
        if (parent != null)
            bc.setSuperclass(parent);
        bc.addDefaultConstructor();

        try {
            return Class.forName(name, false, _loader);
        } catch (ClassNotFoundException cnfe) {
            throw new InternalException(cnfe.toString(), cnfe);
View Full Code Here

Examples of serp.bytecode.BCClass

                continue;
            }

            meth = (Method) fmds[i].getBackingMember();
            // ##### this will fail if we override and don't call super.
            BCClass declaringType = _managedType.getProject()
                .loadClass(fmds[i].getDeclaringType());
            getter = declaringType.getDeclaredMethod(meth.getName(),
                meth.getParameterTypes());
            if (getter == null) {
                addViolation("property-no-getter", new Object[]{ fmds[i] },
                    true);
                continue;
            }
            returned = getReturnedField(getter);
            if (returned != null)
                registerBackingFieldInfo(fmds[i], getter, returned);

            setter = declaringType.getDeclaredMethod(getSetterName(fmds[i]),
                new Class[]{ fmds[i].getDeclaredType() });
            if (setter == null) {
                if (returned == null) {
                    addViolation("property-no-setter",
                        new Object[]{ fmds[i] }, true);
View Full Code Here

Examples of serp.bytecode.BCClass

            for (int i = 0; i < args.length; i++)
                classes.addAll(Arrays.asList(cap.parseTypes(args[i])));
        }
       
        Project project = new Project();
        BCClass bc;
        PCEnhancer enhancer;
        int status;
        for (Iterator itr = classes.iterator(); itr.hasNext();) {
            Object o = itr.next();
            if (log.isTraceEnabled())
View Full Code Here

Examples of serp.bytecode.BCClass

            .doPrivileged(J2DoPrivHelper.newBCClassLoaderAction(_project,
                parentLoader));
        BCClassLoader enhLoader = (BCClassLoader) AccessController
            .doPrivileged(J2DoPrivHelper.newBCClassLoaderAction(_enhProject,
                parentLoader));
        BCClass bc = _project.loadClass(getClassName(meta));
        bc.declareInterface(iface);
        ClassMetaData sup = meta.getPCSuperclassMetaData();
        if (sup != null) {
            bc.setSuperclass(sup.getInterfaceImpl());
            enhLoader = (BCClassLoader) AccessController
                .doPrivileged(J2DoPrivHelper.newBCClassLoaderAction(
                    _enhProject, (ClassLoader) AccessController
                        .doPrivileged(J2DoPrivHelper.getClassLoaderAction(sup
                            .getInterfaceImpl()))));
        }

        FieldMetaData[] fields = meta.getDeclaredFields();
        Set methods = new HashSet();
        for (int i = 0; i < fields.length; i++)
            addField(bc, iface, fields[i], methods);
        invalidateNonBeanMethods(bc, iface, methods);

        // first load the base class as the enhancer requires the class
        // to be available
        try {
            meta.setInterfaceImpl(Class.forName(bc.getName(), true, loader));
        } catch (Throwable t) {
            throw new InternalException(_loc.get("interface-load", iface,
                loader), t).setFatal(true);
        }
        // copy the BCClass into the enhancer project.
        bc = _enhProject.loadClass(new ByteArrayInputStream(bc.toByteArray()),
            loader);
        PCEnhancer enhancer = new PCEnhancer(_repos.getConfiguration(), bc,
            meta);

        int result = enhancer.run();
        if (result != PCEnhancer.ENHANCE_PC)
            throw new InternalException(_loc.get("interface-badenhance",
                iface)).setFatal(true);
        try{
            // load the class for real.
            impl = Class.forName(bc.getName(), true, enhLoader);
        } catch (Throwable t) {
            throw new InternalException(_loc.get("interface-load2", iface,
                enhLoader), t).setFatal(true);
        }
        // cache the generated impl.
View Full Code Here

Examples of serp.bytecode.BCClass

                getClass().getClassLoader()));
        Project project = new Project();

        String className =
            "org.apache.openjpa.enhance.UnenhancedBootstrapInstance";
        BCClass bc = assertNotPC(loader, project, className);

        PCEnhancer enhancer = new PCEnhancer(conf, bc, repos, loader);

        assertEquals(PCEnhancer.ENHANCE_PC, enhancer.run());
        assertTrue(Arrays.asList(bc.getInterfaceNames()).contains(
            PersistenceCapable.class.getName()));
    }
View Full Code Here

Examples of serp.bytecode.BCClass

            PersistenceCapable.class.getName()));
    }

    private BCClass assertNotPC(ClassLoader loader, Project project,
        String className) {
        BCClass bc = project.loadClass(className, loader);
        assertFalse(className + " must not be enhanced already; it was.",
            Arrays.asList(bc.getInterfaceNames()).contains(
                PersistenceCapable.class.getName()));
        return bc;
    }
View Full Code Here

Examples of serp.bytecode.BCClass

        Project project = new Project();

        // make sure that the class is not already enhanced for some reason
        String className =
            "org.apache.openjpa.enhance.UnenhancedBootstrapInstance";
        BCClass bc = assertNotPC(loader, project, className);

        // build up a writer that just stores to a list so that we don't
        // mutate the disk.
        final List<String> written = new ArrayList<String>();
        BytecodeWriter writer = new BytecodeWriter() {
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.