Package org.apache.hivemind.service

Examples of org.apache.hivemind.service.BodyBuilder


    private BodyBuilder constructorBuilder()
    {
        if (_constructorBuilder == null)
        {
            _constructorBuilder = new BodyBuilder();
            _constructorBuilder.begin();
        }

        return _constructorBuilder;
    }
View Full Code Here


        Iterator i = _incompleteMethods.entrySet().iterator();
        while(i.hasNext())
        {
            Map.Entry e = (Map.Entry) i.next();
            MethodSignature sig = (MethodSignature) e.getKey();
            BodyBuilder builder = (BodyBuilder) e.getValue();

            // Each BodyBuilder is created and given a begin(), this is
            // the matching end()

            builder.end();

            _classFab.addMethod(Modifier.PUBLIC, sig, builder.toString());
        }
    }
View Full Code Here

    public void extendMethodImplementation(Class interfaceClass,
            MethodSignature methodSignature, String code)
    {
        addInterfaceIfNeeded(interfaceClass);

        BodyBuilder builder = (BodyBuilder) _incompleteMethods
                .get(methodSignature);

        if (builder == null)
        {
            builder = createIncompleteMethod(methodSignature);

            _incompleteMethods.put(methodSignature, builder);
        }

        builder.addln(code);
    }
View Full Code Here

        return false;
    }

    private BodyBuilder createIncompleteMethod(MethodSignature sig)
    {
        BodyBuilder result = new BodyBuilder();

        // Matched inside finalizeIncompleteMethods()

        result.begin();

        if (existingImplementation(sig))
            result.addln("super.{0}($$);", sig.getName());

        return result;
    }
View Full Code Here

        String managerField = op.addInjectedField(
                "_$applicationStateManager",
                _applicationStateManager);

        BodyBuilder builder = new BodyBuilder();

        // Accessor

        builder.begin();
        builder.addln("if ({0} == null)", fieldName);
        builder.addln("  {0} = ({1}) {2}.get(\"{3}\");", new Object[]
        { fieldName, ClassFabUtils.getJavaClassName(propertyType), managerField, objectName });
        builder.addln("return {0};", fieldName);
        builder.end();

        String methodName = op.getAccessorMethodName(propertyName);

        MethodSignature sig = new MethodSignature(propertyType, methodName, null, null);

        op.addMethod(Modifier.PUBLIC, sig, builder.toString());

        // Mutator

        builder.clear();
        builder.begin();
        builder.addln("{0}.store(\"{1}\", $1);", managerField, objectName);
        builder.addln("{0} = $1;", fieldName);
        builder.end();

        sig = new MethodSignature(void.class, EnhanceUtils.createMutatorMethodName(propertyName),
                new Class[]
                { propertyType }, null);

        op.addMethod(Modifier.PUBLIC, sig, builder.toString());

        // Extend pageDetached() to clean out the cached field value.

        op.extendMethodImplementation(
                PageDetachListener.class,
View Full Code Here

    private BodyBuilder constructorBuilder()
    {
        if (_constructorBuilder == null)
        {
            _constructorBuilder = new BodyBuilder();
            _constructorBuilder.begin();
        }

        return _constructorBuilder;
    }
View Full Code Here

        Iterator i = _incompleteMethods.entrySet().iterator();
        while (i.hasNext())
        {
            Map.Entry e = (Map.Entry) i.next();
            MethodSignature sig = (MethodSignature) e.getKey();
            BodyBuilder builder = (BodyBuilder) e.getValue();

            // Each BodyBuilder is created and given a begin(), this is
            // the matching end()

            builder.end();

            _classFab.addMethod(Modifier.PUBLIC, sig, builder.toString());
        }
    }
View Full Code Here

    public void extendMethodImplementation(Class interfaceClass, MethodSignature methodSignature,
            String code)
    {
        addInterfaceIfNeeded(interfaceClass);

        BodyBuilder builder = (BodyBuilder) _incompleteMethods.get(methodSignature);

        if (builder == null)
        {
            builder = createIncompleteMethod(methodSignature);

            _incompleteMethods.put(methodSignature, builder);
        }

        builder.addln(code);
    }
View Full Code Here

        return false;
    }

    private BodyBuilder createIncompleteMethod(MethodSignature sig)
    {
        BodyBuilder result = new BodyBuilder();

        // Matched inside finalizeIncompleteMethods()

        result.begin();

        if (existingImplementation(sig))
            result.addln("super.{0}($$);", sig.getName());

        return result;
    }
View Full Code Here

    private void extendCleanupAfterRender(EnhancementOperation op, String parameterName,
            String propertyName, Class propertyType, String fieldName, String defaultFieldName,
            String cachedFieldName)
    {
        BodyBuilder cleanupBody = new BodyBuilder();

        // Cached is only set when the field is updated in the accessor or mutator.
        // After rendering, we want to clear the cached value and cached flag
        // unless the binding is invariant, in which case it can stick around
        // for some future render.

        String bindingName = propertyName + "Binding";

        addBindingReference(cleanupBody, bindingName, parameterName);

        cleanupBody.addln("if ({0} && ! {1}.isInvariant())", cachedFieldName, bindingName);
        cleanupBody.begin();
        cleanupBody.addln("{0} = false;", cachedFieldName);
        cleanupBody.addln("{0} = {1};", fieldName, defaultFieldName);
        cleanupBody.end();

        op.extendMethodImplementation(
                IComponent.class,
                EnhanceUtils.CLEANUP_AFTER_RENDER_SIGNATURE,
                cleanupBody.toString());
    }
View Full Code Here

TOP

Related Classes of org.apache.hivemind.service.BodyBuilder

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.