protected void bindReferencedSites(Site referencedSite){ log.debug(" ... binding ReferencedSite {}",referencedSite.getId()); referencedSites.add(referencedSite); idMap.put(referencedSite.getId(), referencedSite); addEntityPrefixes(referencedSite); } protected void unbindReferencedSites(Site referencedSite){
protected void bindReferencedSites(Site referencedSite){ log.debug(" ... binding ReferencedSite {}",referencedSite.getId()); referencedSites.add(referencedSite); idMap.put(referencedSite.getId(), referencedSite); addEntityPrefixes(referencedSite); } protected void unbindReferencedSites(Site referencedSite){
@Override protected String getSiteName(@PathParam(value = "site") String siteId) { return getSite(siteId).getId() + "Referenced Site"; } @Override
@Override public Representation get(String id,Set<String> includeFields) { if(id == null || id.isEmpty()){ return null; } Entity entity; Site site = getSearchService(); if(site == null){ throw new IllegalStateException("ReferencedSite "+siteId+" is currently not available"); } try { entity = site.getEntity(id); } catch (SiteException e) { throw new IllegalStateException("Exception while getting "+id+ " from the ReferencedSite "+site.getId(),e); } return entity == null ? null : entity.getRepresentation(); }
@Override public Entity getEntity(String entityId) { Collection<Site> sites = getSitesByEntityPrefix(entityId); if(sites.isEmpty()){ log.info("No Referenced Site registered for Entity {}",entityId); log.debug("Registered Prefixes {}",prefixList); return null; } for(Site site : sites){ Entity entity; try { entity = site.getEntity(entityId); if(entity != null){ log.debug("Return Representation of Site {} for Entity {}", site.getConfiguration().getName(),entityId); return entity; } } catch (SiteException e) { log.warn("Unable to access Site "+site.getConfiguration().getName()+ " (id = "+site.getId()+")",e); } } log.debug("Entity {} not found on any of the following Sites {}",entityId,sites); return null; }
@Override public Entity getEntity(String entityId) { Collection<Site> sites = getSitesByEntityPrefix(entityId); if(sites.isEmpty()){ log.info("No Referenced Site registered for Entity {}",entityId); log.debug("Registered Prefixes {}",prefixList); return null; } for(Site site : sites){ Entity entity; try { entity = site.getEntity(entityId); if(entity != null){ log.debug("Return Representation of Site {} for Entity {}", site.getConfiguration().getName(),entityId); return entity; } } catch (SiteException e) { log.warn("Unable to access Site "+site.getConfiguration().getName()+ " (id = "+site.getId()+")",e); } } log.debug("Entity {} not found on any of the following Sites {}",entityId,sites); return null; }
} catch (SiteException e) { String message = String.format("Unable to Query Site '%s' (message: %s)", site.getId(),e.getMessage()); log.error(message, e); return Response.status(Status.INTERNAL_SERVER_ERROR)
@Override public InputStream getContent(String entityId, String contentType) { Collection<Site> sites = getSitesByEntityPrefix(entityId); if(sites.isEmpty()){ log.info("No Referenced Site registered for Entity {}",entityId); log.debug("Registered Prefixes {}",prefixList); return null; } for(Site site : sites){ InputStream content; try { content = site.getContent(entityId, contentType); if(content != null){ log.debug("Return Content of type {} for Entity {} from referenced site {}", new Object[]{contentType,entityId,site.getConfiguration().getName()}); return content; } } catch (SiteException e) { log.warn("Unable to access Site "+site.getConfiguration().getName()+ " (id = "+site.getId()+")",e); } } log.debug("Entity {} not found on any of the following Sites {}",entityId,sites); return null; } @Override
@Override public InputStream getContent(String entityId, String contentType) { Collection<Site> sites = getSitesByEntityPrefix(entityId); if(sites.isEmpty()){ log.info("No Referenced Site registered for Entity {}",entityId); log.debug("Registered Prefixes {}",prefixList); return null; } for(Site site : sites){ InputStream content; try { content = site.getContent(entityId, contentType); if(content != null){ log.debug("Return Content of type {} for Entity {} from referenced site {}", new Object[]{contentType,entityId,site.getConfiguration().getName()}); return content; } } catch (SiteException e) { log.warn("Unable to access Site "+site.getConfiguration().getName()+ " (id = "+site.getId()+")",e); } } log.debug("Entity {} not found on any of the following Sites {}",entityId,sites); return null; } @Override
@Override public Entity get(IRI id,Set<IRI> fields, String ... languages) { if(id == null || id.getUnicodeString().isEmpty()){ return null; } org.apache.stanbol.entityhub.servicesapi.model.Entity entity; Site site = getSearchService(); if(site == null){ throw new IllegalStateException("ReferencedSite "+siteId+" is currently not available"); } try { entity = site.getEntity(id.getUnicodeString()); } catch (SiteException e) { throw new IllegalStateException("Exception while getting "+id+ " from the ReferencedSite "+site.getId(),e); } if(entity != null){ Set<String> languageSet; if(languages == null || languages.length < 1){ languageSet = null; } else if (languages.length == 1){ languageSet = Collections.singleton(languages[0]); } else { languageSet = new HashSet<String>(Arrays.asList(languages)); } return new EntityhubEntity(entity.getRepresentation(), fields, languageSet); } else { return null; } }
for(Site site : referencedSites){ if(site.supportsSearch()){ //do not search on sites that do not support it log.debug(" > query site {}",site.getId()); try { QueryResultList<Entity> results = site.findEntities(query); " (id = "+site.getId()+")",e); log.debug(" > Site {} does not support queries",site.getId());
for(Site site : referencedSites){ if(site.supportsSearch()){ //do not search on sites that do not support it log.debug(" > query site {}",site.getId()); try { QueryResultList<Entity> results = site.findEntities(query); " (id = "+site.getId()+")",e); log.debug(" > Site {} does not support queries",site.getId());
@Override public Collection<? extends Representation> lookup(String field, Set<String> includeFields, List<String> search, String... languages) throws IllegalStateException { //build the query and than return the result Site site = getSearchService(); if(site == null){ throw new IllegalStateException("ReferencedSite "+siteId+" is currently not available"); } FieldQuery query = EntitySearcherUtils.createFieldQuery(site.getQueryFactory(), field, includeFields, search, languages); if(limit != null){ query.setLimit(limit); } QueryResultList<Representation> results; try { results = site.find(query); } catch (SiteException e) { throw new IllegalStateException("Exception while searchign for "+ search+'@'+Arrays.toString(languages)+"in the ReferencedSite "+ site.getId(), e); } return results.results(); }
throw new IllegalStateException("Exception while searchign for "+ search+'@'+Arrays.toString(languages)+"in the ReferencedSite "+ site.getId(), e);