Package org.apache.jackrabbit.core.nodetype

Examples of org.apache.jackrabbit.core.nodetype.PropDef


                "25", getDefaultValue(def, 0));
    }

    /** Test for the <code>name</code> property definition type. */
    public void testNameProperty() {
        PropDef def = getProperty("propertyNodeType", "nameProperty");
        assertEquals("nameProperty requiredType",
                PropertyType.NAME, def.getRequiredType());
        assertEquals("nameProperty valueConstraints",
                1, def.getValueConstraints().length);
        assertEquals("nameProperty valueConstraints[0]",
                "test:testName",
                (def.getValueConstraints())[0].getDefinition());
        assertEquals("nameProperty defaultValues",
                1, def.getDefaultValues().length);
        assertEquals("nameProperty defaultValues[0]",
                "test:testName", getDefaultValue(def, 0));
    }
View Full Code Here


                "test:testName", getDefaultValue(def, 0));
    }

    /** Test for the <code>path</code> property definition type. */
    public void testPathProperty() {
        PropDef def = getProperty("propertyNodeType", "pathProperty");
        assertEquals("pathProperty requiredType",
                PropertyType.PATH, def.getRequiredType());
        assertEquals("pathProperty valueConstraints",
                1, def.getValueConstraints().length);
        assertEquals("pathProperty valueConstraints[0]",
                "/test:testPath",
                (def.getValueConstraints())[0].getDefinition());
        assertEquals("pathProperty defaultValues",
                0, def.getDefaultValues().length);
    }
View Full Code Here

                0, def.getDefaultValues().length);
    }

    /** Test for the <code>reference</code> property definition type. */
    public void testReferenceProperty() {
        PropDef def = getProperty("propertyNodeType", "referenceProperty");
        assertEquals("referenceProperty requiredType",
                PropertyType.REFERENCE, def.getRequiredType());
        assertEquals("referenceProperty valueConstraints",
                1, def.getValueConstraints().length);
        assertEquals("referenceProperty valueConstraints[0]",
                "nt:base",
                (def.getValueConstraints())[0].getDefinition());
        assertEquals("referenceProperty defaultValues",
                0, def.getDefaultValues().length);
    }
View Full Code Here

                0, def.getDefaultValues().length);
    }

    /** Test for the <code>string</code> property definition type. */
    public void testStringProperty() {
        PropDef def = getProperty("propertyNodeType", "stringProperty");
        assertEquals("stringProperty requiredType",
                PropertyType.STRING, def.getRequiredType());
        assertEquals("stringProperty valueConstraints",
                1, def.getValueConstraints().length);
        assertEquals("stringProperty valueConstraints[0]",
                "bananas?",
                (def.getValueConstraints())[0].getDefinition());
        assertEquals("stringProperty defaultValues",
                2, def.getDefaultValues().length);
        assertEquals("stringProperty defaultValues[0]",
                "banana", getDefaultValue(def, 0));
        assertEquals("stringProperty defaultValues[1]",
                "bananas", getDefaultValue(def, 1));
    }
View Full Code Here

                "bananas", getDefaultValue(def, 1));
    }

    /** Test for the <code>multiple</code> property definition attribute. */
    public void testMultipleProperty() {
        PropDef def = getProperty("propertyNodeType", "multipleProperty");
        assertEquals("multipleProperty multiple",
                true, def.isMultiple());
    }
View Full Code Here

        } else {
            PropertyState propState = stateMgr.createNew(name, nodeState.getNodeId());
            propState.setType(type);
            propState.setMultiValued(multiValued);

            PropDef pd = getEffectiveNodeType().getApplicablePropertyDef(name, type, multiValued);
            propState.setDefinitionId(pd.getId());

            // need to store nodestate
            nodeState.addPropertyName(name);
            if (nodeState.getStatus() == ItemState.STATUS_EXISTING) {
                nodeState.setStatus(ItemState.STATUS_EXISTING_MODIFIED);
View Full Code Here

    private void conditionalAddProperty(
            NodeState node, Name name, int type, boolean multiple,
            InternalValue value)
            throws RepositoryException {
        if (!node.hasPropertyName(name)) {
            PropDef def = itemOps.findApplicablePropertyDefinition(
                    name, type, multiple, node);
            PropertyState prop = itemOps.createPropertyState(
                    node, name, type, def);
            prop.setValues(new InternalValue[] { value });
        }
View Full Code Here

    public void apply(
            NodeImpl node, NamePathResolver resolver,
            ReferenceChangeTracker refTracker) throws RepositoryException {
        // find applicable definition
        PropDef def = getApplicablePropertyDef(node.getEffectiveNodeType());
        if (def.isProtected()) {
            // skip protected property
            log.debug("skipping protected property " + name);
            return;
        }

        // convert serialized values to Value objects
        Value[] va = new Value[values.length];
        int targetType = getTargetType(def);
        for (int i = 0; i < values.length; i++) {
            va[i] = values[i].getValue(targetType, resolver);
        }

        // multi- or single-valued property?
        if (va.length == 1 && !def.isMultiple()) {
            Exception e = null;
            try {
                // set single-value
                node.setProperty(name, va[0]);
            } catch (ValueFormatException vfe) {
View Full Code Here

    public void apply(
            NodeState node, BatchedItemOperations itemOps,
            NodeTypeRegistry ntReg, ReferenceChangeTracker refTracker)
            throws RepositoryException {
        PropertyState prop = null;
        PropDef def = null;

        if (node.hasPropertyName(name)) {
            // a property with that name already exists...
            PropertyId idExisting = new PropertyId(node.getNodeId(), name);
            prop = (PropertyState) itemOps.getItemState(idExisting);
            def = ntReg.getPropDef(prop.getDefinitionId());
            if (def.isProtected()) {
                // skip protected property
                log.debug("skipping protected property "
                        + itemOps.safeGetJCRPath(idExisting));
                return;
            }
            if (!def.isAutoCreated()
                    || (prop.getType() != type && type != PropertyType.UNDEFINED)
                    || def.isMultiple() != prop.isMultiValued()) {
                throw new ItemExistsException(itemOps.safeGetJCRPath(prop.getPropertyId()));
            }
        } else {
            // there's no property with that name,
            // find applicable definition
            def = getApplicablePropertyDef(itemOps.getEffectiveNodeType(node));
            if (def.isProtected()) {
                // skip protected property
                log.debug("skipping protected property " + name);
                return;
            }

            // create new property
            prop = itemOps.createPropertyState(node, name, type, def);
        }

        // check multi-valued characteristic
        if (values.length != 1 && !def.isMultiple()) {
            throw new ConstraintViolationException(itemOps.safeGetJCRPath(prop.getPropertyId())
                    + " is not multi-valued");
        }

        // convert serialized values to InternalValue objects
View Full Code Here

                }

                // mandatory child properties
                PropDef[] pda = ent.getMandatoryPropDefs();
                for (int i = 0; i < pda.length; i++) {
                    PropDef pd = pda[i];
                    if (pd.getDeclaringNodeType().equals(NameConstants.MIX_VERSIONABLE)
                            || pd.getDeclaringNodeType().equals(NameConstants.MIX_SIMPLE_VERSIONABLE)) {
                        /**
                         * todo FIXME workaround for mix:versionable:
                         * the mandatory properties are initialized at a
                         * later stage and might not exist yet
                         */
                        continue;
                    }
                    if (!nodeState.hasPropertyName(pd.getName())) {
                        String msg = itemMgr.safeGetJCRPath(id)
                                + ": mandatory property " + pd.getName()
                                + " does not exist";
                        log.debug(msg);
                        throw new ConstraintViolationException(msg);
                    }
                }
View Full Code Here

TOP

Related Classes of org.apache.jackrabbit.core.nodetype.PropDef

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.