Class ResourceLocator
java.lang.Object
it.uniroma2.art.semanticturkey.data.access.ResourceLocator
This class is used to locate a resource either as belonging to a currently open project or to a remote
dataset.
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionlistResourceLocations
(Project project, org.eclipse.rdf4j.repository.Repository projectRepository, org.eclipse.rdf4j.model.Resource resource) An overload oflistResourceLocations(Project, Repository, Resource)
, with the last two parameters set toProjectACL.AccessLevel.R
andProjectACL.LockLevel.NO
, respectively.listResourceLocations
(Project project, org.eclipse.rdf4j.repository.Repository projectRepository, org.eclipse.rdf4j.model.Resource resource, ProjectACL.AccessLevel requestedAccessLevel, ProjectACL.LockLevel requestedLockLevel) Locate a resource.locateResource
(Project project, org.eclipse.rdf4j.repository.Repository projectRepository, org.eclipse.rdf4j.model.Resource resource) An overload oflocateResource(Project, Repository, Resource)
, with the last two parameters set toProjectACL.AccessLevel.R
andProjectACL.LockLevel.NO
, respectively.locateResource
(Project project, org.eclipse.rdf4j.repository.Repository projectRepository, org.eclipse.rdf4j.model.Resource resource, ProjectACL.AccessLevel requestedAccessLevel, ProjectACL.LockLevel requestedLockLevel) Locate a resource.
-
Field Details
-
UNKNOWN_RESOURCE_POSITION
-
-
Constructor Details
-
ResourceLocator
public ResourceLocator()
-
-
Method Details
-
locateResource
public ResourcePosition locateResource(Project project, org.eclipse.rdf4j.repository.Repository projectRepository, org.eclipse.rdf4j.model.Resource resource, ProjectACL.AccessLevel requestedAccessLevel, ProjectACL.LockLevel requestedLockLevel) throws ProjectAccessException Locate a resource. The locator implements the following algorithm:- if
resource
is a bnode (ARTNode#isBlank()
returnstrue
), then assumes it belongs to the provided project - otherwise;
resource
is a uri, then do the following- if the namespace of
resource
is equal to the default namespace ofproject
orresource
is defined in any graph ofproject
(seeRDFModel#isLocallyDefined(ARTResource, ARTResource...)
, then assumes thatresource
belongs toproject
- for each open and accessible project
p
, if the namespace ofresource
is equal to the default namespace ofp
, then assumes that
resource
belongs top
- if the namespace of
- attempt to locate
resource
in a remote dataset (seeDatasetMetadataRepositoryImpl#findDatasetForResource(IRI)
- otherwise; states that the position is unknown
- Parameters:
project
- the current projectprojectRepository
- the repository holding the data inside the projectresource
- the resource to be locatedrequestedAccessLevel
-requestedLockLevel
-- Returns:
- Throws:
ModelAccessException
ProjectAccessException
- if
-
locateResource
public ResourcePosition locateResource(Project project, org.eclipse.rdf4j.repository.Repository projectRepository, org.eclipse.rdf4j.model.Resource resource) throws ProjectAccessException An overload oflocateResource(Project, Repository, Resource)
, with the last two parameters set toProjectACL.AccessLevel.R
andProjectACL.LockLevel.NO
, respectively.- Parameters:
project
-projectRepository
-resource
-- Returns:
- Throws:
ProjectAccessException
ModelAccessException
-
listResourceLocations
public List<ResourcePosition> listResourceLocations(Project project, org.eclipse.rdf4j.repository.Repository projectRepository, org.eclipse.rdf4j.model.Resource resource, ProjectACL.AccessLevel requestedAccessLevel, ProjectACL.LockLevel requestedLockLevel) throws ProjectAccessException Locate a resource. The locator implements the following algorithm:- if
resource
is a bnode (ARTNode#isBlank()
returnstrue
), then assumes it belongs to the provided project - otherwise;
resource
is a uri, then do the following- if the namespace of
resource
is equal to the default namespace ofproject
orresource
is defined in any graph ofproject
(seeRDFModel#isLocallyDefined(ARTResource, ARTResource...)
, then assumes thatresource
belongs toproject
- for each open and accessible project
p
, if the namespace ofresource
is equal to the default namespace ofp
, then assumes that
resource
belongs top
- if the namespace of
- attempt to locate
resource
in a remote dataset (seeDatasetMetadataRepositoryImpl#findDatasetForResource(IRI)
- otherwise; states that the position is unknown
- Parameters:
project
- the current projectprojectRepository
- the repository holding the data inside the projectresource
- the resource to be locatedrequestedAccessLevel
-requestedLockLevel
-- Returns:
- Throws:
ModelAccessException
ProjectAccessException
- if
-
listResourceLocations
public List<ResourcePosition> listResourceLocations(Project project, org.eclipse.rdf4j.repository.Repository projectRepository, org.eclipse.rdf4j.model.Resource resource) throws ProjectAccessException An overload oflistResourceLocations(Project, Repository, Resource)
, with the last two parameters set toProjectACL.AccessLevel.R
andProjectACL.LockLevel.NO
, respectively.- Parameters:
project
-projectRepository
-resource
-- Returns:
- Throws:
ProjectAccessException
ModelAccessException
-