fieldQuery.setConstraint(RdfResourceEnum.mappingSource.getUri(), new ReferenceConstraint(reference)); QueryResultList<Representation> resultList = entityhubYard.findRepresentation(fieldQuery); if(!resultList.isEmpty()){ Iterator<Representation> resultIterator = resultList.iterator(); Entity mapping = loadEntity(resultIterator.next());
@Override public final QueryResultList<Entity> findEntities(FieldQuery query) throws YardException{ QueryResultList<String> references = entityhubYard.findReferences(query); List<Entity> entities = new ArrayList<Entity>(references.size()); for(String reference : references){ Entity entity = lookupLocalEntity(reference); if(entity != null){ entities.add(entity); } else { log.warn("Unable to create Entity for Reference {} in the Yard " + "usd by the entity hub [id={}] -> ignore reference", reference,config.getEntityhubYardId()); } } return new QueryResultListImpl<Entity>(references.getQuery(), entities, Entity.class); }
private <T> JSONObject toJSON(QueryResultList<?> resultList, NamespacePrefixService nsPrefixService) throws JSONException{ JSONObject jResultList = new JSONObject(); if(resultList.getQuery() != null){ jResultList.put("query", FieldQueryToJsonUtils.toJSON(resultList.getQuery(),nsPrefixService)); } jResultList.put("results", convertResultsToJSON(resultList,resultList.getType())); return jResultList; }
if(list.isEmpty()){ //for empty lists } else if(Representation.class.isAssignableFrom(list.getType())){ nativeType = ((Representation)list.iterator().next()).getClass(); } else if(Entity.class.isAssignableFrom(list.getType())){ nativeType = ((Entity)list.iterator().next()).getRepresentation().getClass(); } else { //only a list of string ids nativeType = null; if(writer == null || selectedMediaType == null){ throw new WebApplicationException("Unable to serialize ResultList with " + list.getType()+" (nativeType: "+nativeType+") to "+mediaType);
log.debug(" - {} results returned by query {}", results.size(), results.getQuery()); if (results.isEmpty()) { // no results nothing to do return Collections.emptyList(); List<Suggestion> matches = new ArrayList<Suggestion>(numSuggestions); for (Iterator<Entity> guesses = results.iterator(); guesses.hasNext();) { Suggestion match = new Suggestion(guesses.next()); Representation rep = match.getEntity().getRepresentation();
if(results.isEmpty()){ references = Collections.emptySet(); } else if(results.size() == 1){ //assuming that a single result is a likely case references = Collections.singleton( (Object)getValueFactory().createReference(results.iterator().next())); } else { int offset = 0; references = new HashSet<Object>(results.size()); for(String result : results){ references.add(getValueFactory().createReference(result)); while(results.size() >= DEFAULT_MAX_SELECT && references.size() <= DEFAULT_MAX_RESULTS-DEFAULT_MAX_SELECT){ offset = offset + results.size(); query.setOffset(offset); try {
search+'@'+Arrays.toString(languages)+"in the Entityhub", e); if(!results.isEmpty()){ Set<String> languagesSet = new HashSet<String>(Arrays.asList(languages)); Collection<Entity> entities = new ArrayList<Entity>(results.size()); for(Representation result : results){ entities.add(new EntityhubEntity(result, null, languagesSet));
private void deleteEntities(Collection<String> ids) throws YardException { FieldQuery fieldQuery = getQueryFactory().createFieldQuery(); Collection<String> toDelete = new HashSet<String>(ids); for(String id : ids){ if(id != null && !id.isEmpty()){ fieldQuery.setConstraint(RdfResourceEnum.aboutRepresentation.getUri(), new ReferenceConstraint(id)); for(Iterator<String> it = entityhubYard.findReferences(fieldQuery).iterator();it.hasNext();){ toDelete.add(it.next()); } } } if(!toDelete.isEmpty()){ entityhubYard.remove(toDelete); } }
@Override public QueryResultList<Entity> findEntities(FieldQuery query) throws ManagedSiteException { QueryResultList<Representation> results; try { results = getYard().findRepresentation(query); } catch (YardException e) { throw new ManagedSiteException(e.getMessage(), e); } return new QueryResultListImpl<Entity>(results.getQuery(), new AdaptingIterator<Representation,Entity>( results.iterator(), new AdaptingIterator.Adapter<Representation,Entity>() { private final String siteId = config.getId(); @Override public Entity adapt(Representation value, Class<Entity> type) { Entity entity = new EntityImpl(siteId,value,null); SiteUtils.initEntityMetadata(entity, siteMetadata, null); return entity; } }, Entity.class),Entity.class); }
@Override public void write(QueryResultList<?> result, OutputStream out, MediaType mediaType) throws WebApplicationException, IOException { Model queryRdf = toRDF(result); //we need also to the JSON formatted FieldQuery as a literal to the //RDF data. FieldQuery query = result.getQuery(); if(query != null){ try { JSONObject fieldQueryJson = FieldQueryToJsonUtils.toJSON(query, nsPrefixService); if(fieldQueryJson != null){ //add the triple with the fieldQuery queryRdf.add(QUERY_RESULT_LIST, FIELD_QUERY, sesameFactory.createLiteral(fieldQueryJson.toString())); } } catch (JSONException e) { log.warn(String.format("Unable to serialize Fieldquery '%s' to JSON! " + "Query response will not contain the serialized query.", query),e); } } //now serialise the data writeRdf(queryRdf,out,mediaType); }
results = new ArrayList<Entity>(representations.size()); for (Representation result : representations) { Entity entity = new EntityImpl(getId(), result, null); siteConfiguration.getQueryUri(), siteConfiguration.getEntitySearcherType()), e); int numResults = entityIds.size(); List<Entity> entities = new ArrayList<Entity>(numResults); int errors = 0; log.warn(String.format("Unable to get Representation for Entity " + "%s. -> %d Error%s for %d Entities in QueryResult (Reason:%s)", id, errors, errors > 1 ? "s" : "", entityIds.size(), e.getMessage())); } else { log.warn(String.format("Unable to get %d/%d Represetnations for selected Entities.", errors, entityIds.size())); log.warn("Stack trace of the last Exception:", lastError);
private Graph toRDF(QueryResultList<?> resultList) { final Graph resultGraph; Class<?> type = resultList.getType(); if (String.class.isAssignableFrom(type)) { resultGraph = new IndexedGraph(); //create a new ImmutableGraph
private void deleteEntities(Collection<String> ids) throws YardException { FieldQuery fieldQuery = getQueryFactory().createFieldQuery(); Collection<String> toDelete = new HashSet<String>(ids); for(String id : ids){ if(id != null && !id.isEmpty()){ fieldQuery.setConstraint(RdfResourceEnum.aboutRepresentation.getUri(), new ReferenceConstraint(id)); for(Iterator<String> it = entityhubYard.findReferences(fieldQuery).iterator();it.hasNext();){ toDelete.add(it.next()); } } } if(!toDelete.isEmpty()){ entityhubYard.remove(toDelete); } }
@Override public void write(QueryResultList<?> result, OutputStream out, MediaType mediaType) throws WebApplicationException, IOException { Graph queryRdf = toRDF(result); //we need also to the JSON formatted FieldQuery as a literal to the //RDF data. FieldQuery query = result.getQuery(); if(query != null){ try { JSONObject fieldQueryJson = FieldQueryToJsonUtils.toJSON(query, nsPrefixService); if(fieldQueryJson != null){ //add the triple with the fieldQuery queryRdf.add(new TripleImpl(QUERY_RESULT_LIST, FIELD_QUERY, literalFactory.createTypedLiteral(fieldQueryJson.toString()))); } } catch (JSONException e) { log.warn(String.format("Unable to serialize Fieldquery '%s' to JSON! " + "Query response will not contain the serialized query.", query),e); } } //now serialise the data writeRdf(queryRdf,out,mediaType); }
results = new ArrayList<Entity>(representations.size()); for (Representation result : representations) { Entity entity = new EntityImpl(getId(), result, null); siteConfiguration.getQueryUri(), siteConfiguration.getEntitySearcherType()), e); int numResults = entityIds.size(); List<Entity> entities = new ArrayList<Entity>(numResults); int errors = 0; log.warn(String.format("Unable to get Representation for Entity " + "%s. -> %d Error%s for %d Entities in QueryResult (Reason:%s)", id, errors, errors > 1 ? "s" : "", entityIds.size(), e.getMessage())); } else { log.warn(String.format("Unable to get %d/%d Represetnations for selected Entities.", errors, entityIds.size())); log.warn("Stack trace of the last Exception:", lastError);
private Model toRDF(QueryResultList<?> resultList) { final Model resultGraph; Class<?> type = resultList.getType(); if (String.class.isAssignableFrom(type)) { resultGraph = new LinkedHashModel(); //create a new ImmutableGraph