Package com.envoisolutions.sxc.builder.impl

Examples of com.envoisolutions.sxc.builder.impl.JBlankLine


                                toSet = coerce(builder, xsrVar, value, toClass(mapping.getComponentType()));
                            } else {
                                // adapted type
                                JVar adapterVar = builder.getAdapter(property.getAdapterType());
                   
                                block.add(new JBlankLine());

                                // convert raw value into bound type
                                Class targetType = toClass(mapping.getComponentType());
                                JVar valueVar = block.decl(context.toJClass(targetType), propertyName);
                                JTryBlock tryBlock = block._try();
                                tryBlock.body().assign(valueVar, adapterVar.invoke("unmarshal").arg(value));

                                JCatchBlock catchException = tryBlock._catch(context.toJClass(Exception.class));
                                JBlock catchBody = catchException.body();
                                catchBody.invoke(builder.getReadContextVar(), "xmlAdapterError")
                                        .arg(xsrVar)
                                        .arg(context.dotclass(property.getAdapterType()))
                                        .arg(context.dotclass(targetType))
                                        .arg(context.dotclass(targetType))
                                        .arg(catchException.param("e"));
                                catchBody._continue();

                                block.add(new JBlankLine());

                                toSet = valueVar;
                            }

                            // JaxB refs need to be wrapped with a JAXBElement
                            if (toClass(property.getComponentType()).equals(JAXBElement.class)) {
                                toSet = newJaxBElement(xsrVar, toClass(mapping.getComponentType()), toSet);
                            }

                            doSet(builder, block, property, parentVar, toSet, collectionVar);
                        }

                    }

                    if (property.isXmlAny()) {
                        // create element block
                        JBlock block = elementBuilder.expectAnyElement();

                        // add comment for readability
                        block.add(new JLineComment(property.getXmlStyle() + ": " + property.getName()));

                        // read and set
                        JInvocation toSet = builder.getReadContextVar().invoke("readXmlAny")
                                .arg(builder.getChildElementVar())
                                .arg(context.dotclass(property.getComponentType()))
                                .arg(property.isLax() ? JExpr.TRUE : JExpr.FALSE);
                        doSet(builder, block, property, parentVar, toSet, collectionVar);
                    }

                    if (property.isMixed()) {
                        // create element block
                        JBlock block = elementBuilder.expectMixedElement();

                        // add comment for readability
                        block.add(new JLineComment(property.getXmlStyle() + " (Mixed): " + property.getName()));

                        // read and set
                        JInvocation toSet = builder.getChildElementVar().invoke("getText");
                        doSet(builder, block, property, parentVar, toSet, collectionVar);
                    }
                }
                break;

                case VALUE: {
                    // value is read in class block
                    JBlock block = builder.expectValue();

                    // add comment for readability
                    block.add(new JBlankLine());
                    block.add(new JLineComment(property.getXmlStyle() + ": " + property.getName()));

                    // read and set value
                    handleValue(builder, builder.getXSR(), block, property, beanVar);
                }
View Full Code Here


            // adapted type
            JVar adapterVar = builder.getAdapter(property.getAdapterType());

            // read the raw value
            JVar xmlValueVar = readElement(builder, xsrVar, block, nillable, builder.getReadVariableManager().createId(propertyName + "Raw"), property.getComponentAdaptedType());
            block.add(new JBlankLine());

            // convert raw value into bound type
            Class targetType = toClass(componentType);
            JVar valueVar = block.decl(context.toJClass(targetType), propertyName);
            JTryBlock tryBlock = block._try();
            tryBlock.body().assign(valueVar, adapterVar.invoke("unmarshal").arg(xmlValueVar));

            JCatchBlock catchException = tryBlock._catch(context.toJClass(Exception.class));
            JBlock catchBody = catchException.body();
            catchBody.invoke(builder.getReadContextVar(), "xmlAdapterError")
                    .arg(xsrVar)
                    .arg(context.dotclass(property.getAdapterType()))
                    .arg(context.dotclass(targetType))
                    .arg(context.dotclass(targetType))
                    .arg(catchException.param("e"));
            catchBody._continue();

            block.add(new JBlankLine());

            toSet = valueVar;
        } else {
            // plain old element type
            toSet = readElement(builder,  xsrVar, block, nillable, propertyName, toClass(componentType));
View Full Code Here

        JExpression toSet;
        if (property.getAdapterType() != null) {
            JVar adapterVar = builder.getAdapter(property.getAdapterType());

            JVar xmlValueVar = block.decl(context.toJClass(String.class), builder.getReadVariableManager().createId(propertyName + "Raw"), value);
            block.add(new JBlankLine());

            JVar valueVar = block.decl(context.toJClass(targetType), propertyName, JExpr._null());
            JVar isConvertedVar = block.decl(context.toJType(boolean.class), builder.getReadVariableManager().createId(propertyName + "Converted"));

            JTryBlock tryBlock = block._try();
            tryBlock.body().assign(valueVar, adapterVar.invoke("unmarshal").arg(xmlValueVar));
            tryBlock.body().assign(isConvertedVar, JExpr.TRUE);

            JCatchBlock catchException = tryBlock._catch(context.toJClass(Exception.class));
            JBlock catchBody = catchException.body();
            catchBody.invoke(builder.getReadContextVar(), "xmlAdapterError")
                    .arg(xsrVar)
                    .arg(context.dotclass(property.getAdapterType()))
                    .arg(context.dotclass(targetType)) // currently we only support conversion between same type
                    .arg(context.dotclass(targetType))
                    .arg(catchException.param("e"));
            catchBody.assign(isConvertedVar, JExpr.FALSE);

            block.add(new JBlankLine());

            toSet = valueVar;
            block = block._if(isConvertedVar)._then();
        } else if (!property.isCollection() && (targetType.equals(Byte.class) || targetType.equals(byte.class))) {
            // todo why the special read method for byte?
View Full Code Here

        // if the class isn't exactally this bean's type, then we have an unexpceted subclass
        JBlock unknownSubclassBlock = ifElseBlock.addCondition(context.dotclass(builder.getType()).ne(builder.getWriteObject().invoke("getClass")));
        unknownSubclassBlock.add(unexpectedSubclass);
        unknownSubclassBlock._return();

        block.add(new JBlankLine());

        // add beforeMarshal
        JExpression lifecycleCallbackRef = builder.getLifecycleCallbackVar();
        if (builder.getWriteVariableManager().containsId(builder.getLifecycleCallbackVar().name())) {
            lifecycleCallbackRef = builder.getJAXBObjectClass().staticRef(builder.getLifecycleCallbackVar().name());
        }
        block.invoke(builder.getWriteContextVar(), "beforeMarshal").arg(builder.getWriteObject()).arg(lifecycleCallbackRef);

        block.add(new JBlankLine());


        writeProperties(builder, bean);
    }
View Full Code Here

        }

        for (Property property : bean.getProperties()) {
            if (property.getXmlStyle() == Property.XmlStyle.ATTRIBUTE) {
                JBlock block = builder.getWriteMethod().body();
                block.add(new JBlankLine());
                block.add(new JLineComment(property.getXmlStyle() + ": " + property.getName()));

                JExpression propertyVar = getValue(builder, property, block);

                if (!property.isXmlAny()) {
View Full Code Here

        }

        for (Property property : bean.getProperties()) {
            if (property.getXmlStyle() == Property.XmlStyle.ATTRIBUTE) continue;

            builder.getWriteMethod().body().add(new JBlankLine());
            builder.getWriteMethod().body().add(new JLineComment(property.getXmlStyle() + ": " + property.getName()));

            JVar propertyVar = getValue(builder, property, builder.getWriteMethod().body());

            switch (property.getXmlStyle()) {
View Full Code Here

                    invocation.arg(JExpr._new(builderContext.toJClass(QName.class)).arg(expectedElement.getNamespaceURI()).arg(expectedElement.getLocalPart()));
                }
            }

            // add afterUnmarshal
            getReadTailBlock().add(new JBlankLine());
            JExpression lifecycleCallbackRef = lifecycleCallbackVar;
            if (parserBuilder.getVariableManager().containsId(lifecycleCallbackVar.name())) {
                lifecycleCallbackRef = jaxbObjectClass.staticRef(lifecycleCallbackVar.name());
            }
            getReadTailBlock().invoke(getReadContextVar(), "afterUnmarshal").arg(readObject).arg(lifecycleCallbackRef);
        }

        JBlock block = new JBlock();
        parserBuilder.setUnexpectedXsiTypeBlock(null, block);
        block._return(parserBuilder.getContextVar().invoke("unexpectedXsiType").arg(getXSR()).arg(JExpr.dotclass(builderContext.toJClass(type))));

        parserBuilder.write();

        getWriterBuilder();
        if (!Modifier.isAbstract(type.getModifiers())) {
            // add afterMarshal
            getWriteMethod().body().add(new JBlankLine());
            JExpression lifecycleCallbackRef = lifecycleCallbackVar;
            if (writerBuilder.getVariableManager().containsId(lifecycleCallbackVar.name())) {
                lifecycleCallbackRef = jaxbObjectClass.staticRef(lifecycleCallbackVar.name());
            }
            getWriteMethod().body().invoke(getReadContextVar(), "afterMarshal").arg(getWriteObject()).arg(lifecycleCallbackRef);
View Full Code Here

            parserBuilder.getReaderClass().annotate(SuppressWarnings.class).paramArray("value").param("StringEquality");

            if (!type.isEnum()) {
                // if isXsiNil return null;
                JBlock body = parserBuilder.getMethod().body();
                body.add(new JBlankLine());
                body.add(new JLineComment("Check for xsi:nil"));
                body._if(parserBuilder.getXSR().invoke("isXsiNil"))._then()._return(JExpr._null());

                // if context is null, initialize context
                body.add(new JBlankLine());
                JBlock contextNullBlock = body._if(parserBuilder.getContextVar().eq(JExpr._null()))._then();
                contextNullBlock.assign(parserBuilder.getContextVar(), JExpr._new(builderContext.toJClass(RuntimeContext.class)));
                body.add(new JBlankLine());

                if (!Modifier.isAbstract(type.getModifiers())) {
                    // create bean instance
                    String varName = decapitalize(type.getSimpleName());
                    varName = parserBuilder.getVariableManager().createId(varName);
                    JType beanType = builderContext.getCodeModel()._ref(type);
                    readObject = body.decl(beanType, decapitalize(varName), JExpr._new(beanType));

                    // add beforeUnmarshal
                    JExpression lifecycleCallbackRef = lifecycleCallbackVar;
                    if (parserBuilder.getVariableManager().containsId(lifecycleCallbackVar.name())) {
                        lifecycleCallbackRef = jaxbObjectClass.staticRef(lifecycleCallbackVar.name());
                    }
                    body.invoke(getReadContextVar(), "beforeUnmarshal").arg(readObject).arg(lifecycleCallbackRef);
                    body.add(new JBlankLine());
                   
                    // return the bean
                    parserBuilder.getBody()._return(readObject);
                } else {
                    parserBuilder.getTailBlock()._throw(JExpr._new(builderContext.toJClass(JAXBException.class)).arg(""));
View Full Code Here

                // check for null
                JBlock nullBlock = body._if(getWriteObject().eq(JExpr._null()))._then();
                nullBlock.invoke(getXSW(), "writeXsiNil");
                nullBlock._return();
                body.add(new JBlankLine());

                // if context is null, initialize context
                JBlock contextNullBlock = body._if(writerBuilder.getContextVar().eq(JExpr._null()))._then();
                contextNullBlock.assign(writerBuilder.getContextVar(), JExpr._new(builderContext.toJClass(RuntimeContext.class)));
                body.add(new JBlankLine());
            }

        }
        return writerBuilder;
    }
View Full Code Here

TOP

Related Classes of com.envoisolutions.sxc.builder.impl.JBlankLine

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.