Search in sources :

Example 11 with NamePathResolver

use of org.apache.jackrabbit.spi.commons.conversion.NamePathResolver in project jackrabbit by apache.

the class QueryImpl method storeAsNode.

/**
     * @see Query#storeAsNode(String)
     */
public Node storeAsNode(String absPath) throws ItemExistsException, PathNotFoundException, VersionException, ConstraintViolationException, LockException, UnsupportedRepositoryOperationException, RepositoryException {
    NamePathResolver resolver = mgrProvider.getNamePathResolver();
    try {
        Path p = resolver.getQPath(absPath).getNormalizedPath();
        if (!p.isAbsolute()) {
            throw new RepositoryException(absPath + " is not an absolute path");
        }
        String jcrParent = resolver.getJCRPath(p.getAncestor(1));
        if (!session.itemExists(jcrParent)) {
            throw new PathNotFoundException(jcrParent);
        }
        String relPath = resolver.getJCRPath(p).substring(1);
        String ntName = resolver.getJCRName(NameConstants.NT_QUERY);
        Node queryNode = session.getRootNode().addNode(relPath, ntName);
        // set properties
        queryNode.setProperty(resolver.getJCRName(NameConstants.JCR_LANGUAGE), getLanguage());
        queryNode.setProperty(resolver.getJCRName(NameConstants.JCR_STATEMENT), getStatement());
        node = queryNode;
        return node;
    } catch (NameException e) {
        throw new RepositoryException(e.getMessage(), e);
    }
}
Also used : Path(org.apache.jackrabbit.spi.Path) NamePathResolver(org.apache.jackrabbit.spi.commons.conversion.NamePathResolver) NameException(org.apache.jackrabbit.spi.commons.conversion.NameException) Node(javax.jcr.Node) RepositoryException(javax.jcr.RepositoryException) PathNotFoundException(javax.jcr.PathNotFoundException)

Example 12 with NamePathResolver

use of org.apache.jackrabbit.spi.commons.conversion.NamePathResolver in project jackrabbit by apache.

the class QueryManagerImpl method getQuery.

/**
     * @see QueryManager#getQuery(Node)
     */
public Query getQuery(Node node) throws InvalidQueryException, RepositoryException {
    checkIsAlive();
    NamePathResolver resolver = mgrProvider.getNamePathResolver();
    if (!node.isNodeType(resolver.getJCRName(NameConstants.NT_QUERY))) {
        throw new InvalidQueryException("Node is not of type nt:query");
    }
    if (node.getSession() != session) {
        throw new InvalidQueryException("Node belongs to a different session.");
    }
    String statement = node.getProperty(resolver.getJCRName(NameConstants.JCR_STATEMENT)).getString();
    String language = node.getProperty(resolver.getJCRName(NameConstants.JCR_LANGUAGE)).getString();
    if (Query.JCR_JQOM.equals(language)) {
        QueryObjectModelFactory qomFactory = new QOMFactory(node, resolver);
        QueryObjectModelBuilder builder = QueryObjectModelBuilderRegistry.getQueryObjectModelBuilder(language);
        return builder.createQueryObjectModel(statement, qomFactory, valueFactory);
    } else {
        return new QueryImpl(session, mgrProvider, itemMgr, wspManager, statement, language, node);
    }
}
Also used : NamePathResolver(org.apache.jackrabbit.spi.commons.conversion.NamePathResolver) QueryObjectModelBuilder(org.apache.jackrabbit.commons.query.QueryObjectModelBuilder) QueryObjectModelFactory(javax.jcr.query.qom.QueryObjectModelFactory) InvalidQueryException(javax.jcr.query.InvalidQueryException)

Example 13 with NamePathResolver

use of org.apache.jackrabbit.spi.commons.conversion.NamePathResolver in project jackrabbit by apache.

the class RepositoryServiceImpl method getRepositoryDescriptors.

/**
     * {@inheritDoc}
     */
public Map<String, QValue[]> getRepositoryDescriptors() throws RepositoryException {
    Map<String, QValue[]> descriptors = new HashMap<String, QValue[]>();
    for (String key : repository.getDescriptorKeys()) {
        if (key.equals(Repository.OPTION_TRANSACTIONS_SUPPORTED)) {
            descriptors.put(key, new QValue[] { qValueFactory.create(false) });
        } else {
            Value[] vs = repository.getDescriptorValues(key);
            QValue[] qvs = new QValue[vs.length];
            for (int i = 0; i < vs.length; i++) {
                // Name and path resolver that uses a dummy namespace resolver
                // as Name/Path values are not expected to occur in the
                // descriptors. TODO: check again.
                NamePathResolver resolver = new DefaultNamePathResolver(new NamespaceResolver() {

                    public String getURI(String prefix) {
                        return prefix;
                    }

                    public String getPrefix(String uri) {
                        return uri;
                    }
                });
                qvs[i] = ValueFormat.getQValue(vs[i], resolver, qValueFactory);
            }
            descriptors.put(key, qvs);
        }
    }
    return descriptors;
}
Also used : NamePathResolver(org.apache.jackrabbit.spi.commons.conversion.NamePathResolver) DefaultNamePathResolver(org.apache.jackrabbit.spi.commons.conversion.DefaultNamePathResolver) QValue(org.apache.jackrabbit.spi.QValue) HashMap(java.util.HashMap) QValue(org.apache.jackrabbit.spi.QValue) Value(javax.jcr.Value) NamespaceResolver(org.apache.jackrabbit.spi.commons.namespace.NamespaceResolver) DefaultNamePathResolver(org.apache.jackrabbit.spi.commons.conversion.DefaultNamePathResolver)

Example 14 with NamePathResolver

use of org.apache.jackrabbit.spi.commons.conversion.NamePathResolver in project jackrabbit by apache.

the class RepositoryServiceImpl method getSupportedPrivileges.

public PrivilegeDefinition[] getSupportedPrivileges(SessionInfo sessionInfo, NodeId nodeId) throws RepositoryException {
    SessionInfoImpl sInfo = getSessionInfoImpl(sessionInfo);
    String path = (nodeId == null) ? null : pathForId(nodeId, sInfo);
    Privilege[] privs = sInfo.getSession().getAccessControlManager().getSupportedPrivileges(path);
    PrivilegeDefinition[] pDefs = new PrivilegeDefinition[privs.length];
    NamePathResolver npResolver = sInfo.getNamePathResolver();
    for (int i = 0; i < privs.length; i++) {
        Set<Name> aggrnames = null;
        if (privs[i].isAggregate()) {
            aggrnames = new HashSet<Name>();
            for (Privilege dap : privs[i].getDeclaredAggregatePrivileges()) {
                aggrnames.add(npResolver.getQName(dap.getName()));
            }
        }
        PrivilegeDefinition def = new PrivilegeDefinitionImpl(npResolver.getQName(privs[i].getName()), privs[i].isAbstract(), aggrnames);
        pDefs[i] = def;
    }
    return pDefs;
}
Also used : NamePathResolver(org.apache.jackrabbit.spi.commons.conversion.NamePathResolver) DefaultNamePathResolver(org.apache.jackrabbit.spi.commons.conversion.DefaultNamePathResolver) PrivilegeDefinitionImpl(org.apache.jackrabbit.spi.commons.privilege.PrivilegeDefinitionImpl) PrivilegeDefinition(org.apache.jackrabbit.spi.PrivilegeDefinition) Privilege(javax.jcr.security.Privilege) Name(org.apache.jackrabbit.spi.Name)

Example 15 with NamePathResolver

use of org.apache.jackrabbit.spi.commons.conversion.NamePathResolver in project jackrabbit by apache.

the class TestAll method getDefaultValue.

/**
     * Returns the string value of the identified property default value.
     *
     * @param def property definition
     * @param index default value index
     * @return default value
     */
private String getDefaultValue(QPropertyDefinition def, int index) {
    try {
        QValue[] values = def.getDefaultValues();
        NamespaceResolver nsResolver = new AdditionalNamespaceResolver(registry);
        NamePathResolver resolver = new DefaultNamePathResolver(nsResolver);
        ValueFactoryQImpl factory = new ValueFactoryQImpl(InternalValueFactory.getInstance(), resolver);
        return factory.createValue(values[index]).getString();
    } catch (RepositoryException e) {
        throw new AssertionFailedError(e.getMessage());
    }
}
Also used : NamePathResolver(org.apache.jackrabbit.spi.commons.conversion.NamePathResolver) DefaultNamePathResolver(org.apache.jackrabbit.spi.commons.conversion.DefaultNamePathResolver) QValue(org.apache.jackrabbit.spi.QValue) NamespaceResolver(org.apache.jackrabbit.spi.commons.namespace.NamespaceResolver) DefaultNamePathResolver(org.apache.jackrabbit.spi.commons.conversion.DefaultNamePathResolver) RepositoryException(javax.jcr.RepositoryException) ValueFactoryQImpl(org.apache.jackrabbit.spi.commons.value.ValueFactoryQImpl) AssertionFailedError(junit.framework.AssertionFailedError)

Aggregations

NamePathResolver (org.apache.jackrabbit.spi.commons.conversion.NamePathResolver)27 DefaultNamePathResolver (org.apache.jackrabbit.spi.commons.conversion.DefaultNamePathResolver)13 RepositoryException (javax.jcr.RepositoryException)10 IOException (java.io.IOException)7 HttpResponse (org.apache.http.HttpResponse)7 DavException (org.apache.jackrabbit.webdav.DavException)7 Name (org.apache.jackrabbit.spi.Name)5 ArrayList (java.util.ArrayList)4 ItemNotFoundException (javax.jcr.ItemNotFoundException)4 HttpEntity (org.apache.http.HttpEntity)4 Path (org.apache.jackrabbit.spi.Path)4 QValue (org.apache.jackrabbit.spi.QValue)4 NameException (org.apache.jackrabbit.spi.commons.conversion.NameException)4 Value (javax.jcr.Value)3 Privilege (javax.jcr.security.Privilege)3 DummyNamespaceResolver (org.apache.jackrabbit.spi.commons.conversion.DummyNamespaceResolver)3 InputStreamReader (java.io.InputStreamReader)2 Reader (java.io.Reader)2 Session (javax.jcr.Session)2 UrlEncodedFormEntity (org.apache.http.client.entity.UrlEncodedFormEntity)2