Package commonj.sdo.helper

Examples of commonj.sdo.helper.HelperContext


    public DataObject transform(Node source, TransformationContext context) {
        if (source == null) {
            return null;
        }
        try {
            HelperContext helperContext = SDOContextHelper.getHelperContext(context, false);
            XMLHelper xmlHelper = helperContext.getXMLHelper();
            Document doc = helper.promote(source);
            DOMSource domSource = new DOMSource(doc);
            XMLDocument xmlDoc = xmlHelper.load(domSource, doc.getDocumentURI(), null);
            return xmlDoc.getRootObject();
        } catch (Exception e) {
View Full Code Here


    @Override
    public boolean introspect(DataType dataType, final Operation operation) {
        Class javaType = dataType.getPhysical();
        // Allow privileged access to read system properties. Requires PropertyPermission
        // java.specification.version read in security policy.
        final HelperContext context = AccessController.doPrivileged(new PrivilegedAction<HelperContext>() {
            public HelperContext run() {
                return SDOContextHelper.getHelperContext(operation);
            }
        });

        final Type type = context.getTypeHelper().getType(javaType);
        if (type == null) {
            // FIXME: Need a better to test dynamic SDO
            // TUSCANY-3298: get underlying element type for collections
            boolean isMany = false;
            if (Collection.class.isAssignableFrom(javaType)) {
                java.lang.reflect.Type genericType = dataType.getGenericType();
                if (genericType instanceof ParameterizedType) {
                    java.lang.reflect.Type actualType = ((ParameterizedType)genericType).getActualTypeArguments()[0];
                    if (actualType instanceof Class) {
                        javaType = (Class)actualType;
                        isMany = true;
                    }
                }
            }           
            if (DataObject.class.isAssignableFrom(javaType)) {
                // Dynamic SDO
                dataType.setDataBinding(getName());
                // TUSCANY-3298: use XMLType many value to indicate a collection
                Object logical = dataType.getLogical();
                if (logical == null) {
                    if (!isMany) {
                        dataType.setLogical(XMLType.UNKNOWN);
                    } else {
                        XMLType xmlType = new XMLType(null, null);
                        xmlType.setMany(true);
                        dataType.setLogical(xmlType);
                    }
                } else if (logical instanceof XMLType && isMany) {
                    ((XMLType)logical).setMany(true);
                }
                return true;
            }
            return false;
        }
        if (type.isDataType()) {
            // FIXME: Ignore simple types?
            return false;
        }

        // Found a SDO type, replace the default context with a private one
        AccessController.doPrivileged(new PrivilegedAction<Object>() {
            public Object run() {
                if (context == SDOContextHelper.getDefaultHelperContext()) {
                    HelperContext newContext = SDOUtil.createHelperContext();
                    SDOContextHelper.register(newContext, type);
                    if (operation != null) {
                        operation.getInputType().setMetaData(HelperContext.class, newContext);
                    }
                } else {
View Full Code Here

        return xmlTypeHelper;
    }

    @Override
    public Object copy(Object arg, DataType dataType, DataType targetDataType, Operation operation, Operation targetOperation) {
        HelperContext context = SDOContextHelper.getHelperContext(operation);
        CopyHelper copyHelper = context.getCopyHelper();
        if (arg instanceof XMLDocument) {
            XMLDocument document = (XMLDocument)arg;
            DataObject dataObject = copyHelper.copy(document.getRootObject());
            return context.getXMLHelper().createDocument(dataObject,
                                                         document.getRootElementURI(),
                                                         document.getRootElementName());
        } else if (arg instanceof DataObject) {
            return context.getCopyHelper().copy((DataObject)arg);
        } else {
            return super.copy(arg, dataType, targetDataType, operation, targetOperation);
        }
    }
View Full Code Here

    public String transform(DataObject source, TransformationContext context) {
        if (source == null) {
            return null;
        }           
        try {
            HelperContext helperContext = SDOContextHelper.getHelperContext(context, true);
            XMLHelper xmlHelper = helperContext.getXMLHelper();
            QName elementName = SDOContextHelper.getElement(context);
            return xmlHelper.save(source, elementName.getNamespaceURI(), elementName.getLocalPart());
        } catch (Exception e) {
            throw new TransformationException(e);
        }
View Full Code Here

    public DataObject transform(XMLStreamReader source, TransformationContext context) {
        if (source == null) {
            return null;
        }
        try {
            HelperContext helperContext = SDOContextHelper.getHelperContext(context, false);
            XMLStreamHelper streamHelper = SDOUtil.createXMLStreamHelper(helperContext);
            // The XMLStreamHelper requires that the reader is positioned at
            // START_ELEMENT
            while (source.getEventType() != XMLStreamConstants.START_ELEMENT && source.hasNext()) {
                source.next();
View Full Code Here

    public static HelperContext getHelperContext(TransformationContext context, boolean source) {
        if (context == null) {
            return getDefaultHelperContext();
        }

        HelperContext helperContext = null;
        Operation op = source ? context.getSourceOperation() : context.getTargetOperation();
        if (op == null) {
            DataType<?> dt = source ? context.getSourceDataType() : context.getTargetDataType();

            helperContext = dt.getMetaData(HelperContext.class);
View Full Code Here

    public static HelperContext getHelperContext(Operation op) {
        if (op == null) {
            return getDefaultHelperContext();
        }

        HelperContext helperContext = op.getInputType().getMetaData(HelperContext.class);

        if (helperContext != null) {
            return helperContext;
        }
View Full Code Here

    public Node transform(DataObject source, TransformationContext context) {
        if (source == null) {
            return null;
        }
        try {
            HelperContext helperContext = SDOContextHelper.getHelperContext(context, true);
            XMLHelper xmlHelper = helperContext.getXMLHelper();
            QName elementName = SDOContextHelper.getElement(context);
            Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
            DOMResult result = new DOMResult(doc);
            XMLDocument xmlDoc = xmlHelper.createDocument(source, elementName.getNamespaceURI(), elementName.getLocalPart());
            xmlHelper.save(xmlDoc, result, null);
View Full Code Here

    public XMLDocument transform(XMLStreamReader source, TransformationContext context) {
        if (source == null) {
            return null;
        }
        try {
            HelperContext helperContext = SDOContextHelper.getHelperContext(context, false);
            XMLStreamHelper streamHelper = SDOUtil.createXMLStreamHelper(helperContext);
            XMLDocument target = streamHelper.load(source);
            source.close();
            return target;
        } catch (Exception e) {
View Full Code Here

    public String transform(XMLDocument source, TransformationContext context) {
        if (source == null) {
            return null;
        }
        try {
            HelperContext helperContext = SDOContextHelper.getHelperContext(context, true);
            XMLHelper xmlHelper = helperContext.getXMLHelper();
            StringWriter writer = new StringWriter();
            xmlHelper.save(source, writer, null);
            return writer.toString();
        } catch (Exception e) {
            throw new TransformationException(e);
View Full Code Here

TOP

Related Classes of commonj.sdo.helper.HelperContext

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.