Package org.apache.hivemind.service

Examples of org.apache.hivemind.service.BodyBuilder


        op.addMethod(
                Modifier.PUBLIC,
                new MethodSignature(String.class, "getBarney", null, null),
                "return _$barney;");

        BodyBuilder b = new BodyBuilder();
        b.begin();
        b.addln("org.apache.tapestry.Tapestry#fireObservedChange(this, \"barney\", ($w) $1);");
        b.addln("_$barney = $1;");
        b.end();

        op.addMethod(Modifier.PUBLIC, new MethodSignature(void.class, "setBarney", new Class[]
        { String.class }, null), b.toString());

        op.addField("_$barney$default", String.class);

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


        op.claimProperty(w.MESSAGES_PROPERTY);
        op.addInjectedField("_$componentMessagesSource", source);
        control.setReturnValue("fred");

        BodyBuilder builder = new BodyBuilder();
        builder.begin();
        builder.addln("if (_$messages == null)");
        builder.addln("  _$messages = fred.getMessages(this);");
        builder.addln("return _$messages;");
        builder.end();

        op.addField("_$messages", Messages.class);
        op.addMethod(Modifier.PUBLIC, w.METHOD_SIGNATURE, builder.toString());

        replayControls();

        w.setComponentMessagesSource(source);
View Full Code Here

        op.addField("_$fred$Cached", boolean.class);

        op.getClassReference(String.class);
        opc.setReturnValue("_class$String");

        BodyBuilder builder = new BodyBuilder();
        builder.begin();
        builder.addln("if (_$fred$Cached) return _$fred;");
        builder.addln("org.apache.tapestry.IBinding binding = getBinding(\"fred\");");
        builder.addln("if (binding == null) return _$fred$Default;");
        builder.add("java.lang.String result = ");
        builder.addln("(java.lang.String) binding.getObject(_class$String);");
        builder.addln("if (isRendering() || binding.isInvariant())");
        builder.begin();
        builder.addln("_$fred = result;");
        builder.addln("_$fred$Cached = true;");
        builder.end();
        builder.addln("return result;");
        builder.end();

        op.getAccessorMethodName("fred");
        opc.setReturnValue("getFred");

        op.addMethod(
                Modifier.PUBLIC,
                new MethodSignature(String.class, "getFred", null, null),
                builder.toString());

        builder.clear();

        builder.begin();
        builder.addln("if (! isInActiveState())");
        builder.begin();
        builder.addln("_$fred$Default = $1;");
        builder.addln("return;");
        builder.end();

        builder.addln("org.apache.tapestry.IBinding binding = getBinding(\"fred\");");

        builder.addln("if (binding == null)");
        builder
                .addln("  throw new org.apache.hivemind.ApplicationRuntimeException(\"Parameter 'fred' is not bound and can not be updated.\");");

        builder.addln("binding.setObject(($w) $1);");

        builder.addln("if (isRendering())");
        builder.begin();
        builder.addln("_$fred = $1;");
        builder.addln("_$fred$Cached = true;");
        builder.end();
        builder.end();

        op.addMethod(Modifier.PUBLIC, new MethodSignature(void.class, "setFred", new Class[]
        { String.class }, null), builder.toString());

        BodyBuilder expectedCleanup = new BodyBuilder();

        expectedCleanup.addln("org.apache.tapestry.IBinding fredBinding = getBinding(\"fred\");");
        expectedCleanup.addln("if (_$fred$Cached && ! fredBinding.isInvariant())");
        expectedCleanup.begin();
        expectedCleanup.addln("_$fred$Cached = false;");
        expectedCleanup.addln("_$fred = _$fred$Default;");
        expectedCleanup.end();

        op.extendMethodImplementation(
                IComponent.class,
                EnhanceUtils.CLEANUP_AFTER_RENDER_SIGNATURE,
                expectedCleanup.toString());

        replayControls();

        ParameterPropertyWorker w = new ParameterPropertyWorker();
View Full Code Here

        op.addField("_$fred$Cached", boolean.class);

        op.getClassReference(String.class);
        opc.setReturnValue("_class$String");

        BodyBuilder builder = new BodyBuilder();
        builder.begin();
        builder.addln("if (_$fred$Cached) return _$fred;");
        builder.addln("org.apache.tapestry.IBinding binding = getBinding(\"barney\");");
        builder.addln("if (binding == null) return _$fred$Default;");
        builder.add("java.lang.String result = ");
        builder.addln("(java.lang.String) binding.getObject(_class$String);");
        builder.addln("if (isRendering() || binding.isInvariant())");
        builder.begin();
        builder.addln("_$fred = result;");
        builder.addln("_$fred$Cached = true;");
        builder.end();
        builder.addln("return result;");
        builder.end();

        op.getAccessorMethodName("fred");
        opc.setReturnValue("getFred");

        op.addMethod(
                Modifier.PUBLIC,
                new MethodSignature(String.class, "getFred", null, null),
                builder.toString());

        builder.clear();

        builder.begin();
        builder.addln("if (! isInActiveState())");
        builder.begin();
        builder.addln("_$fred$Default = $1;");
        builder.addln("return;");
        builder.end();

        builder.addln("org.apache.tapestry.IBinding binding = getBinding(\"barney\");");

        builder.addln("if (binding == null)");
        builder
                .addln("  throw new org.apache.hivemind.ApplicationRuntimeException(\"Parameter 'barney' is not bound and can not be updated.\");");

        builder.addln("binding.setObject(($w) $1);");

        builder.addln("if (isRendering())");
        builder.begin();
        builder.addln("_$fred = $1;");
        builder.addln("_$fred$Cached = true;");
        builder.end();
        builder.end();

        op.addMethod(Modifier.PUBLIC, new MethodSignature(void.class, "setFred", new Class[]
        { String.class }, null), builder.toString());

        BodyBuilder expectedCleanup = new BodyBuilder();

        expectedCleanup.addln("org.apache.tapestry.IBinding fredBinding = getBinding(\"barney\");");
        expectedCleanup.addln("if (_$fred$Cached && ! fredBinding.isInvariant())");
        expectedCleanup.begin();
        expectedCleanup.addln("_$fred$Cached = false;");
        expectedCleanup.addln("_$fred = _$fred$Default;");
        expectedCleanup.end();

        op.extendMethodImplementation(
                IComponent.class,
                EnhanceUtils.CLEANUP_AFTER_RENDER_SIGNATURE,
                expectedCleanup.toString());

        replayControls();

        ParameterPropertyWorker w = new ParameterPropertyWorker();
View Full Code Here

    public void testPrimitiveType()
    {
        MockControl opc = newControl(EnhancementOperation.class);
        EnhancementOperation op = (EnhancementOperation) opc.getMock();

        BodyBuilder builder = new BodyBuilder();
        builder.begin();
        builder.addln("if (_$fred$Cached) return _$fred;");
        builder.addln("org.apache.tapestry.IBinding binding = getBinding(\"barney\");");
        builder.addln("if (binding == null) return _$fred$Default;");
        builder.add("boolean result = ");
        builder.addln(EnhanceUtils.class.getName() + ".toBoolean(binding);");
        builder.addln("if (isRendering() || binding.isInvariant())");
        builder.begin();
        builder.addln("_$fred = result;");
        builder.addln("_$fred$Cached = true;");
        builder.end();
        builder.addln("return result;");
        builder.end();

        op.getAccessorMethodName("fred");
        opc.setReturnValue("isFred");

        op.addMethod(
                Modifier.PUBLIC,
                new MethodSignature(boolean.class, "isFred", null, null),
                builder.toString());

        replayControls();

        new ParameterPropertyWorker().buildAccessor(
                op,
View Full Code Here

        assertEquals("fred$0", eo.addInjectedField("fred", map));

        verifyControls();

        BodyBuilder body = new BodyBuilder();
        body.begin();
        body.addln("fred = $1;");
        body.addln("fred$0 = $2;");
        body.end();

        fab.addConstructor(new Class[]
        { String.class, HashMap.class }, null, body.toString());
        fabc.setMatcher(new ArrayMatcher());

        replayControls();

        eo.finalizeEnhancedClass();
View Full Code Here

        op.addField(creatorField, InitialValueBindingCreator.class, creator);

        String bindingField = fieldName + "$initialValueBinding";
        op.addField(bindingField, IBinding.class);

        BodyBuilder builder = new BodyBuilder();

        builder.addln("{0} = {1}.createBinding(this);", bindingField, creatorField);

        op.extendMethodImplementation(IComponent.class, EnhanceUtils.FINISH_LOAD_SIGNATURE, builder
                .toString());

        builder.clear();

        builder.addln("{0} = {1};", fieldName, EnhanceUtils.createUnwrapExpression(
                op,
                bindingField,
                propertyType));

        String code = builder.toString();

        // In finishLoad() and pageDetach(), de-reference the binding to get the value
        // for the property.

        op.extendMethodImplementation(IComponent.class, EnhanceUtils.FINISH_LOAD_SIGNATURE, code);
View Full Code Here

    private void addMutator(EnhancementOperation op, String propertyName, Class propertyType,
            String fieldName, boolean persistent)
    {
        String methodName = EnhanceUtils.createMutatorMethodName(propertyName);

        BodyBuilder body = new BodyBuilder();

        body.begin();

        if (persistent)
        {
            body.add("org.apache.tapestry.Tapestry#fireObservedChange(this, ");
            body.addQuoted(propertyName);
            body.addln(", ($w) $1);");
        }

        body.addln(fieldName + " = $1;");

        body.end();

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

        op.addMethod(Modifier.PUBLIC, sig, body.toString());
    }
View Full Code Here

        op.claimProperty(propertyName);

        op.addField(fieldName, propertyType);

        BodyBuilder builder = new BodyBuilder();

        // Accessor

        builder.begin();
        builder.addln("if ({0} == null)", fieldName);
        builder.addln(
                "  {0} = ({1}) _$applicationStateManager.get(\"{2}\");",
                fieldName,
                ClassFabUtils.getJavaClassName(propertyType),
                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("_$applicationStateManager.store(\"{0}\", $1);", 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

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.