X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.db.common%2Fsrc%2Forg%2Fsimantics%2Fdb%2Fcommon%2Furi%2FResourceToURI.java;fp=bundles%2Forg.simantics.db.common%2Fsrc%2Forg%2Fsimantics%2Fdb%2Fcommon%2Furi%2FResourceToURI.java;h=0e9217283691e048cb8dd3bac66bfe7540106212;hb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;hp=c11429153007413e19326a0395f9627d25aab52b;hpb=24e2b34260f219f0d1644ca7a138894980e25b14;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.db.common/src/org/simantics/db/common/uri/ResourceToURI.java b/bundles/org.simantics.db.common/src/org/simantics/db/common/uri/ResourceToURI.java index c11429153..0e9217283 100644 --- a/bundles/org.simantics.db.common/src/org/simantics/db/common/uri/ResourceToURI.java +++ b/bundles/org.simantics.db.common/src/org/simantics/db/common/uri/ResourceToURI.java @@ -1,57 +1,57 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Association for Decentralized Information Management - * in Industry THTH ry. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * VTT Technical Research Centre of Finland - initial API and implementation - *******************************************************************************/ -package org.simantics.db.common.uri; - -import org.simantics.databoard.Bindings; -import org.simantics.databoard.util.URIStringUtils; -import org.simantics.db.ReadGraph; -import org.simantics.db.Resource; -import org.simantics.db.common.request.ResourceRead; -import org.simantics.db.exception.AssumptionException; -import org.simantics.db.exception.DatabaseException; -import org.simantics.layer0.Layer0; - -/** - * Tries to retrieve URIs for specified resources. Throws - * {@link AssumptionException} if URI is undefined. This query follows the - * semantics of {@link ReadGraph#getURI(Resource)}. - * - * @author Antti Villberg - */ -public class ResourceToURI extends ResourceRead { - - public ResourceToURI(Resource resource) { - super(resource); - } - - @Override - public String perform(ReadGraph graph) throws DatabaseException { - - if (resource.equals(graph.getRootLibrary())) return "http:/"; - - Layer0 L0 = Layer0.getInstance(graph); - String name = graph.getPossibleRelatedValue(resource, L0.HasName, Bindings.STRING); - if (name == null) throw new AssumptionException("resource " + resource + " does not have a name"); - - String escapedName = URIStringUtils.escape((String) name); - - Resource parent = graph.getPossibleObject(resource, L0.PartOf); - if(parent == null) throw new AssumptionException("resource " + resource + " does not have a parent"); - - String parentURI = graph.syncRequest(new ResourceToURI(parent)); - if(parentURI == null) throw new AssumptionException("parent resource " + parent + " has no URI"); - - return parentURI + "/" + escapedName; - - } - -} +/******************************************************************************* + * Copyright (c) 2007, 2010 Association for Decentralized Information Management + * in Industry THTH ry. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * VTT Technical Research Centre of Finland - initial API and implementation + *******************************************************************************/ +package org.simantics.db.common.uri; + +import org.simantics.databoard.Bindings; +import org.simantics.databoard.util.URIStringUtils; +import org.simantics.db.ReadGraph; +import org.simantics.db.Resource; +import org.simantics.db.common.request.ResourceRead; +import org.simantics.db.exception.AssumptionException; +import org.simantics.db.exception.DatabaseException; +import org.simantics.layer0.Layer0; + +/** + * Tries to retrieve URIs for specified resources. Throws + * {@link AssumptionException} if URI is undefined. This query follows the + * semantics of {@link ReadGraph#getURI(Resource)}. + * + * @author Antti Villberg + */ +public class ResourceToURI extends ResourceRead { + + public ResourceToURI(Resource resource) { + super(resource); + } + + @Override + public String perform(ReadGraph graph) throws DatabaseException { + + if (resource.equals(graph.getRootLibrary())) return "http:/"; + + Layer0 L0 = Layer0.getInstance(graph); + String name = graph.getPossibleRelatedValue(resource, L0.HasName, Bindings.STRING); + if (name == null) throw new AssumptionException("resource " + resource + " does not have a name"); + + String escapedName = URIStringUtils.escape((String) name); + + Resource parent = graph.getPossibleObject(resource, L0.PartOf); + if(parent == null) throw new AssumptionException("resource " + resource + " does not have a parent"); + + String parentURI = graph.syncRequest(new ResourceToURI(parent)); + if(parentURI == null) throw new AssumptionException("parent resource " + parent + " has no URI"); + + return parentURI + "/" + escapedName; + + } + +}