Examples of QNodeTypeDefinitionBuilder


Examples of org.apache.jackrabbit.spi.commons.nodetype.QNodeTypeDefinitionBuilder

    }

    static QNodeTypeDefinition createQNodeTypeDefinition(Element ntdElement, NamePathResolver resolver,
                                                         QValueFactory qValueFactory)
            throws RepositoryException {
        QNodeTypeDefinitionBuilder builder = new QNodeTypeDefinitionBuilder();

        // TODO: webdav-server currently sends jcr-names -> conversion needed
        // NOTE: the server should send the namespace-mappings as addition ns-defininitions
        try {
            if (ntdElement.hasAttribute(NAME_ATTRIBUTE)) {
                builder.setName(resolver.getQName(ntdElement.getAttribute(NAME_ATTRIBUTE)));
            }

            if (ntdElement.hasAttribute(PRIMARYITEMNAME_ATTRIBUTE)) {
                builder.setPrimaryItemName(resolver.getQName(ntdElement.getAttribute(PRIMARYITEMNAME_ATTRIBUTE)));
            }

            Element child = DomUtil.getChildElement(ntdElement, SUPERTYPES_ELEMENT, null);
            if (child != null) {
                ElementIterator stIter = DomUtil.getChildren(child, SUPERTYPE_ELEMENT, null);
                List<Name> qNames = new ArrayList<Name>();
                while (stIter.hasNext()) {
                    Name st = resolver.getQName(DomUtil.getTextTrim(stIter.nextElement()));
                    qNames.add(st);
                }
                builder.setSupertypes(qNames.toArray(new Name[qNames.size()]));
            }
            if (ntdElement.hasAttribute(ISMIXIN_ATTRIBUTE)) {
                builder.setMixin(Boolean.valueOf(ntdElement.getAttribute(ISMIXIN_ATTRIBUTE)));
            }
            if (ntdElement.hasAttribute(HASORDERABLECHILDNODES_ATTRIBUTE)) {
                builder.setOrderableChildNodes(Boolean.valueOf(ntdElement.getAttribute(HASORDERABLECHILDNODES_ATTRIBUTE)));
            }
            if (ntdElement.hasAttribute(ISABSTRACT_ATTRIBUTE)) {
                builder.setAbstract(Boolean.valueOf(ntdElement.getAttribute(ISABSTRACT_ATTRIBUTE)));
            }
            if (ntdElement.hasAttribute(ISQUERYABLE_ATTRIBUTE)) {
                builder.setQueryable(Boolean.valueOf(ntdElement.getAttribute(ISQUERYABLE_ATTRIBUTE)));
            }

            // nodeDefinitions
            ElementIterator it = DomUtil.getChildren(ntdElement, CHILDNODEDEFINITION_ELEMENT, null);
            List<QNodeDefinition> nds = new ArrayList<QNodeDefinition>();
            while (it.hasNext()) {
                nds.add(createQNodeDefinition(builder.getName(), it.nextElement(), resolver));
            }
            builder.setChildNodeDefs(nds.toArray(new QNodeDefinition[nds.size()]));

            // propertyDefinitions
            it = DomUtil.getChildren(ntdElement, PROPERTYDEFINITION_ELEMENT, null);
            List<QPropertyDefinition> pds = new ArrayList<QPropertyDefinition>();
            while (it.hasNext()) {
                pds.add(createQPropertyDefinition(builder.getName(), it.nextElement(), resolver, qValueFactory));
            }
            builder.setPropertyDefs(pds.toArray(new QPropertyDefinition[pds.size()]));
        } catch (NameException e) {
            log.error(e.getMessage());
            throw new RepositoryException(e);
        }

        return builder.build();
    }
View Full Code Here

Examples of org.apache.jackrabbit.spi.commons.nodetype.QNodeTypeDefinitionBuilder

    /**
     * Tests, if it is possible to register node types with simple
     * cyclic dependencies.
     */
    public void testRegisterCyclicChildNodeTypes() {
        /**
         * Constructs node types with the following structure:
         * [foo]
         * + myBarInFoo (bar)
         *
         * [bar]
         * + myFooInBar (foo)
         */
        final QNodeTypeDefinitionBuilder foo = new QNodeTypeDefinitionBuilder();
        foo.setName(nameFactory.create("", "foo"));
        foo.setSupertypes(new Name[]{NameConstants.NT_BASE});

        final QNodeTypeDefinitionBuilder bar = new QNodeTypeDefinitionBuilder();
        bar.setName(nameFactory.create("", "bar"));
        bar.setSupertypes(new Name[]{NameConstants.NT_BASE});

        QNodeDefinitionBuilder myBarInFoo = new QNodeDefinitionBuilder();
        myBarInFoo.setRequiredPrimaryTypes(new Name[]{bar.getName()});
        myBarInFoo.setName(nameFactory.create("", "myBarInFoo"));
        myBarInFoo.setDeclaringNodeType(foo.getName());

        QNodeDefinitionBuilder myFooInBar = new QNodeDefinitionBuilder();
        myFooInBar.setRequiredPrimaryTypes(new Name[]{foo.getName()});
        myFooInBar.setName(nameFactory.create("", "myFooInBar"));
        myFooInBar.setDeclaringNodeType(bar.getName());

        foo.setChildNodeDefs(new QNodeDefinition[]{myBarInFoo.build()});
        bar.setChildNodeDefs(new QNodeDefinition[]{myFooInBar.build()});
        ntDefCollection = new LinkedList<QNodeTypeDefinition>();
        ntDefCollection.add(foo.build());
        ntDefCollection.add(bar.build());

        try {
            ntreg.registerNodeTypes(ntDefCollection);
        } catch (InvalidNodeTypeDefException e) {
            assertFalse(e.getMessage(), true);
            e.printStackTrace();
        } catch (RepositoryException e) {
            assertFalse(e.getMessage(), true);
            e.printStackTrace();
        }
        boolean allNTsAreRegistered = ntreg.isRegistered(foo.getName()) && ntreg.isRegistered(bar.getName());
        assertTrue(allNTsAreRegistered);

    }
View Full Code Here

Examples of org.apache.jackrabbit.spi.commons.nodetype.QNodeTypeDefinitionBuilder

    /**
     * A simple check, if a missing node type is found
     */
    public void testRegisterSimpleMissingNodeTypes() {
        /**
         * Constructs node types with the following structure:
         * [foo]
         * + myNTInFoo (I_am_an_invalid_required_primary_type)
         *
         */
        final QNodeTypeDefinitionBuilder foo = new QNodeTypeDefinitionBuilder();
        foo.setName(nameFactory.create("", "foo"));
        foo.setSupertypes(new Name[]{NameConstants.NT_BASE});


        QNodeDefinitionBuilder myBarInFoo = new QNodeDefinitionBuilder();
        myBarInFoo.setRequiredPrimaryTypes(new Name[]{nameFactory.create("", "I_am_an_invalid_required_primary_type")});
        myBarInFoo.setName(nameFactory.create("", "myNTInFoo"));
        myBarInFoo.setDeclaringNodeType(foo.getName());

        foo.setChildNodeDefs(new QNodeDefinition[]{myBarInFoo.build()});
        ntDefCollection = new LinkedList<QNodeTypeDefinition>();
        ntDefCollection.add(foo.build());

        try {
            ntreg.registerNodeTypes(ntDefCollection);
            assertFalse("Missing node type not found", true);
        } catch (InvalidNodeTypeDefException e) {
View Full Code Here

Examples of org.apache.jackrabbit.spi.commons.nodetype.QNodeTypeDefinitionBuilder

    /**
     * Basically a test of a Graffito use case.
     */
    public void testRegisterCyclicChildNodeTypesAndSupertypes() {
        /**
         * Constructs node types with the following structure:
         * [Folder] > CmsObject
         * + folders (Folder)
         * + documents (Document)
         *
         * [CmsObject]
         * + parentFolder (Folder)
         *
         * [Document] > CmsObject
         * - size (long)
         *
         */

        final QNodeTypeDefinitionBuilder folder = new QNodeTypeDefinitionBuilder();
        folder.setName(nameFactory.create("", "Folder"));

        final QNodeTypeDefinitionBuilder cmsObject = new QNodeTypeDefinitionBuilder();
        cmsObject.setName(nameFactory.create("", "CmsObject"));
        cmsObject.setSupertypes(new Name[]{NameConstants.NT_BASE});

        QNodeDefinitionBuilder parentFolder = new QNodeDefinitionBuilder();
        parentFolder.setRequiredPrimaryTypes(new Name[]{folder.getName()});
        parentFolder.setName(nameFactory.create("", "parentFolder"));
        parentFolder.setDeclaringNodeType(cmsObject.getName());
        cmsObject.setChildNodeDefs(new QNodeDefinition[]{parentFolder.build()});


        final QNodeTypeDefinitionBuilder document = new QNodeTypeDefinitionBuilder();
        document.setName(nameFactory.create("", "Document"));
        document.setSupertypes(new Name[]{cmsObject.getName()});
        QPropertyDefinitionBuilder sizeProp = new QPropertyDefinitionBuilder();
        sizeProp.setName(nameFactory.create("", "size"));
        sizeProp.setRequiredType(PropertyType.LONG);
        sizeProp.setDeclaringNodeType(document.getName());
        document.setPropertyDefs(new QPropertyDefinition[]{sizeProp.build()});


        folder.setSupertypes(new Name[]{cmsObject.getName()});

        QNodeDefinitionBuilder folders = new QNodeDefinitionBuilder();
        folders.setRequiredPrimaryTypes(new Name[]{folder.getName()});
        folders.setName(nameFactory.create("", "folders"));
        folders.setDeclaringNodeType(folder.getName());

        QNodeDefinitionBuilder documents = new QNodeDefinitionBuilder();
        documents.setRequiredPrimaryTypes(new Name[]{document.getName()});
        documents.setName(nameFactory.create("", "documents"));
        documents.setDeclaringNodeType(folder.getName());

        folder.setChildNodeDefs(new QNodeDefinition[]{
                folders.build(), documents.build()});
        ntDefCollection = new LinkedList<QNodeTypeDefinition>();
        ntDefCollection.add(folder.build());
        ntDefCollection.add(document.build());
        ntDefCollection.add(cmsObject.build());

        try {
            ntreg.registerNodeTypes(ntDefCollection);
        } catch (InvalidNodeTypeDefException e) {
            assertFalse(e.getMessage(), true);
            e.printStackTrace();
        } catch (RepositoryException e) {
            assertFalse(e.getMessage(), true);
            e.printStackTrace();
        }
        boolean allNTsAreRegistered = ntreg.isRegistered(folder.getName()) && ntreg.isRegistered(document.getName()) && ntreg.isRegistered(cmsObject.getName());
        assertTrue(allNTsAreRegistered);
    }
View Full Code Here

Examples of org.apache.jackrabbit.spi.commons.nodetype.QNodeTypeDefinitionBuilder

    /**
     * Test producing and consuming a node type registration.
     * @throws Exception
     */
    public void testNodeTypeRegistration() throws Exception {
        QNodeTypeDefinitionBuilder ntd = new QNodeTypeDefinitionBuilder();
        ntd.setName(NameFactoryImpl.getInstance().create("", "test"));
        ntd.setSupertypes(new Name[]{NameConstants.NT_BASE});

        ArrayList<QNodeTypeDefinition> list = new ArrayList<QNodeTypeDefinition>();
        list.add(ntd.build());

        NodeTypeEvent event = new NodeTypeEvent(NodeTypeEvent.REGISTER, list);
        master.registered(event.getCollection());

        SimpleEventListener listener = new SimpleEventListener();
View Full Code Here

Examples of org.apache.jackrabbit.spi.commons.nodetype.QNodeTypeDefinitionBuilder

    /**
     * Test producing and consuming a node type reregistration.
     * @throws Exception
     */
    public void testNodeTypeReregistration() throws Exception {
        QNodeTypeDefinitionBuilder ntd = new QNodeTypeDefinitionBuilder();
        ntd.setName(NameFactoryImpl.getInstance().create("", "test"));
        ntd.setSupertypes(new Name[]{NameConstants.NT_BASE});

        ArrayList<QNodeTypeDefinition> list = new ArrayList<QNodeTypeDefinition>();
        list.add(ntd.build());

        NodeTypeEvent event = new NodeTypeEvent(NodeTypeEvent.REREGISTER, list);
        master.reregistered(ntd.build());

        SimpleEventListener listener = new SimpleEventListener();
        slave.setListener((NodeTypeEventListener) listener);
        slave.sync();

View Full Code Here

Examples of org.apache.jackrabbit.spi.commons.nodetype.QNodeTypeDefinitionBuilder

    }

    static QNodeTypeDefinition createQNodeTypeDefinition(Element ntdElement, NamePathResolver resolver,
                                                         QValueFactory qValueFactory)
            throws RepositoryException {
        QNodeTypeDefinitionBuilder builder = new QNodeTypeDefinitionBuilder();

        // TODO: webdav-server currently sends jcr-names -> conversion needed
        // NOTE: the server should send the namespace-mappings as addition ns-defininitions
        try {
            if (ntdElement.hasAttribute(NAME_ATTRIBUTE)) {
                builder.setName(resolver.getQName(ntdElement.getAttribute(NAME_ATTRIBUTE)));
            }

            if (ntdElement.hasAttribute(PRIMARYITEMNAME_ATTRIBUTE)) {
                builder.setPrimaryItemName(resolver.getQName(ntdElement.getAttribute(PRIMARYITEMNAME_ATTRIBUTE)));
            }

            Element child = DomUtil.getChildElement(ntdElement, SUPERTYPES_ELEMENT, null);
            if (child != null) {
                ElementIterator stIter = DomUtil.getChildren(child, SUPERTYPE_ELEMENT, null);
                List<Name> qNames = new ArrayList<Name>();
                while (stIter.hasNext()) {
                    Name st = resolver.getQName(DomUtil.getTextTrim(stIter.nextElement()));
                    qNames.add(st);
                }
                builder.setSupertypes(qNames.toArray(new Name[qNames.size()]));
            }
            if (ntdElement.hasAttribute(ISMIXIN_ATTRIBUTE)) {
                builder.setMixin(Boolean.valueOf(ntdElement.getAttribute(ISMIXIN_ATTRIBUTE)));
            }
            if (ntdElement.hasAttribute(HASORDERABLECHILDNODES_ATTRIBUTE)) {
                builder.setOrderableChildNodes(Boolean.valueOf(ntdElement.getAttribute(HASORDERABLECHILDNODES_ATTRIBUTE)));
            }
            if (ntdElement.hasAttribute(ISABSTRACT_ATTRIBUTE)) {
                builder.setAbstract(Boolean.valueOf(ntdElement.getAttribute(ISABSTRACT_ATTRIBUTE)));
            }
            if (ntdElement.hasAttribute(ISQUERYABLE_ATTRIBUTE)) {
                builder.setQueryable(Boolean.valueOf(ntdElement.getAttribute(ISQUERYABLE_ATTRIBUTE)));
            }

            // nodeDefinitions
            ElementIterator it = DomUtil.getChildren(ntdElement, CHILDNODEDEFINITION_ELEMENT, null);
            List<QNodeDefinition> nds = new ArrayList<QNodeDefinition>();
            while (it.hasNext()) {
                nds.add(createQNodeDefinition(builder.getName(), it.nextElement(), resolver));
            }
            builder.setChildNodeDefs(nds.toArray(new QNodeDefinition[nds.size()]));

            // propertyDefinitions
            it = DomUtil.getChildren(ntdElement, PROPERTYDEFINITION_ELEMENT, null);
            List<QPropertyDefinition> pds = new ArrayList<QPropertyDefinition>();
            while (it.hasNext()) {
                pds.add(createQPropertyDefinition(builder.getName(), it.nextElement(), resolver, qValueFactory));
            }
            builder.setPropertyDefs(pds.toArray(new QPropertyDefinition[pds.size()]));
        } catch (NameException e) {
            log.error(e.getMessage());
            throw new RepositoryException(e);
        }

        return builder.build();
    }
View Full Code Here

Examples of org.apache.jackrabbit.spi.commons.nodetype.QNodeTypeDefinitionBuilder

    /**
     * Test producing and consuming a node type registration.
     * @throws Exception
     */
    public void testNodeTypeRegistration() throws Exception {
        QNodeTypeDefinitionBuilder ntd = new QNodeTypeDefinitionBuilder();
        ntd.setName(NameFactoryImpl.getInstance().create("", "test"));
        ntd.setSupertypes(new Name[]{NameConstants.NT_BASE});

        ArrayList<QNodeTypeDefinition> list = new ArrayList<QNodeTypeDefinition>();
        list.add(ntd.build());

        NodeTypeEvent event = new NodeTypeEvent(NodeTypeEvent.REGISTER, list);
        master.registered(event.getCollection());

        SimpleEventListener listener = new SimpleEventListener();
View Full Code Here

Examples of org.apache.jackrabbit.spi.commons.nodetype.QNodeTypeDefinitionBuilder

    /**
     * Test producing and consuming a node type reregistration.
     * @throws Exception
     */
    public void testNodeTypeReregistration() throws Exception {
        QNodeTypeDefinitionBuilder ntd = new QNodeTypeDefinitionBuilder();
        ntd.setName(NameFactoryImpl.getInstance().create("", "test"));
        ntd.setSupertypes(new Name[]{NameConstants.NT_BASE});

        ArrayList<QNodeTypeDefinition> list = new ArrayList<QNodeTypeDefinition>();
        list.add(ntd.build());

        NodeTypeEvent event = new NodeTypeEvent(NodeTypeEvent.REREGISTER, list);
        master.reregistered(ntd.build());

        SimpleEventListener listener = new SimpleEventListener();
        slave.setListener((NodeTypeEventListener) listener);
        slave.sync();

View Full Code Here

Examples of org.apache.jackrabbit.spi.commons.nodetype.QNodeTypeDefinitionBuilder

     *                                     illegal name
     * @throws NamespaceException if a namespace is not defined
     */
    private QNodeTypeDefinition getNodeTypeDef()
            throws InvalidNodeTypeDefException, NameException, NamespaceException {
        QNodeTypeDefinitionBuilder type = new QNodeTypeDefinitionBuilder();

        type.setName(resolver.getQName(
                walker.getAttribute(Constants.NAME_ATTRIBUTE)));
        type.setMixin(Boolean.valueOf(
                walker.getAttribute(Constants.ISMIXIN_ATTRIBUTE)));
        type.setOrderableChildNodes(Boolean.valueOf(
                walker.getAttribute(Constants.HASORDERABLECHILDNODES_ATTRIBUTE)));
        type.setAbstract(Boolean.valueOf(
                walker.getAttribute(Constants.ISABSTRACT_ATTRIBUTE)));
        if (walker.getAttribute(Constants.ISQUERYABLE_ATTRIBUTE) != null) {
            type.setQueryable(Boolean.valueOf(
                    walker.getAttribute(Constants.ISQUERYABLE_ATTRIBUTE)));
        }
        String primaryItemName =
            walker.getAttribute(Constants.PRIMARYITEMNAME_ATTRIBUTE);
        if (primaryItemName != null && primaryItemName.length() > 0) {
            type.setPrimaryItemName(
                    resolver.getQName(primaryItemName));
        }

        // supertype declarations
        if (walker.enterElement(Constants.SUPERTYPES_ELEMENT)) {
            List<Name> supertypes = new ArrayList<Name>();
            while (walker.iterateElements(Constants.SUPERTYPE_ELEMENT)) {
                supertypes.add(
                        resolver.getQName(walker.getContent()));
            }
            type.setSupertypes(supertypes.toArray(new Name[supertypes.size()]));
            walker.leaveElement();
        }

        // property definitions
        List<QPropertyDefinition> properties = new ArrayList<QPropertyDefinition>();
        while (walker.iterateElements(Constants.PROPERTYDEFINITION_ELEMENT)) {
            QPropertyDefinitionBuilder def = getPropDef();
            def.setDeclaringNodeType(type.getName());
            properties.add(def.build());
        }
        type.setPropertyDefs(properties.toArray(new QPropertyDefinition[properties.size()]));

        // child node definitions
        List<QNodeDefinition> nodes = new ArrayList<QNodeDefinition>();
        while (walker.iterateElements(Constants.CHILDNODEDEFINITION_ELEMENT)) {
            QNodeDefinitionBuilder def = getChildNodeDef();
            def.setDeclaringNodeType(type.getName());
            nodes.add(def.build());
        }
        type.setChildNodeDefs(nodes.toArray(new QNodeDefinition[nodes.size()]));

        return type.build();
    }
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.