Changeset 6092 for SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/search/Result.java
- Timestamp:
- 03/10/15 14:16:28 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/search/Result.java
r5971 r6092 1 1 package eu.clarin.sru.fcs.aggregator.search; 2 2 3 import eu.clarin.sru.client.SRUClientException;4 3 import eu.clarin.sru.client.SRUDiagnostic; 5 4 import eu.clarin.sru.client.SRURecord; … … 19 18 import java.util.Collections; 20 19 import java.util.List; 20 import java.util.concurrent.atomic.AtomicBoolean; 21 import java.util.concurrent.atomic.AtomicInteger; 22 import java.util.concurrent.atomic.AtomicReference; 21 23 import org.w3c.dom.Node; 22 24 import org.slf4j.LoggerFactory; … … 34 36 private static final org.slf4j.Logger log = LoggerFactory.getLogger(Result.class); 35 37 36 private Request request; 37 private List<Kwic> kwics = new ArrayList<Kwic>(); 38 private JsonException exception; 39 private List<Diagnostic> diagnostics = new ArrayList<Diagnostic>(); 38 private final Corpus corpus; 39 private AtomicBoolean inProgress = new AtomicBoolean(true); 40 private AtomicInteger endpointReturnedRecords = new AtomicInteger(); 41 private AtomicReference<JsonException> exception = new AtomicReference<JsonException>(); 42 private List<Diagnostic> diagnostics = Collections.synchronizedList(new ArrayList<Diagnostic>()); 43 private List<Kwic> kwics = Collections.synchronizedList(new ArrayList<Kwic>()); 40 44 41 45 public List<Kwic> getKwics() { … … 43 47 } 44 48 45 public Result(Request request, SRUSearchRetrieveResponse response, 46 SRUClientException xc) { 47 this.request = request; 48 if (xc != null) { 49 exception = new JsonException(xc); 50 } 49 public Result(Corpus corpus) { 50 this.corpus = corpus; 51 } 52 53 public void setInProgress(boolean inProgress) { 54 this.inProgress.set(inProgress); 55 } 56 57 public boolean getInProgress() { 58 return inProgress.get(); 59 } 60 61 public void addResponse(SRUSearchRetrieveResponse response) { 51 62 if (response != null && response.hasRecords()) { 52 setResponse(response); 63 for (SRURecord record : response.getRecords()) { 64 addRecord(record); 65 } 53 66 } 54 67 if (response != null && response.hasDiagnostics()) { 55 setDiagnostics(response); 56 } 57 } 58 59 void setResponse(SRUSearchRetrieveResponse response) { 60 for (SRURecord record : response.getRecords()) { 61 if (record.isRecordSchema(ClarinFCSRecordData.RECORD_SCHEMA)) { 62 ClarinFCSRecordData rd = (ClarinFCSRecordData) record.getRecordData(); 63 Resource resource = rd.getResource(); 64 setClarinRecord(resource); 65 log.debug("Resource ref={0}, pid={1}, dataViews={2}", 66 new Object[]{resource.getRef(), resource.getPid(), resource.hasDataViews()}); 67 } else if (record.isRecordSchema(SRUSurrogateRecordData.RECORD_SCHEMA)) { 68 SRUSurrogateRecordData r = (SRUSurrogateRecordData) record.getRecordData(); 69 log.info("Surrogate diagnostic: uri={0}, message={1}, detail={2}", 70 new Object[]{r.getURI(), r.getMessage(), r.getDetails()}); 71 } else { 72 log.info("Unsupported schema: {0}", record.getRecordSchema()); 68 for (SRUDiagnostic d : response.getDiagnostics()) { 69 diagnostics.add(new Diagnostic(d.getURI(), d.getMessage(), d.getDetails())); 73 70 } 74 71 } 75 72 } 76 73 77 void setDiagnostics(SRUSearchRetrieveResponse response) { 78 for (SRUDiagnostic d : response.getDiagnostics()) { 79 SRUSearchRetrieveRequest srurequest = response.getRequest(); 80 diagnostics.add(new Diagnostic(d.getURI(), d.getMessage(), d.getDetails())); 74 void addRecord(SRURecord record) { 75 endpointReturnedRecords.getAndIncrement(); 76 if (record.isRecordSchema(ClarinFCSRecordData.RECORD_SCHEMA)) { 77 ClarinFCSRecordData rd = (ClarinFCSRecordData) record.getRecordData(); 78 Resource resource = rd.getResource(); 79 setClarinRecord(resource); 80 log.debug("Resource ref={0}, pid={1}, dataViews={2}", 81 new Object[]{resource.getRef(), resource.getPid(), resource.hasDataViews()}); 82 } else if (record.isRecordSchema(SRUSurrogateRecordData.RECORD_SCHEMA)) { 83 SRUSurrogateRecordData r = (SRUSurrogateRecordData) record.getRecordData(); 84 log.info("Surrogate diagnostic: uri={0}, message={1}, detail={2}", 85 new Object[]{r.getURI(), r.getMessage(), r.getDetails()}); 86 } else { 87 log.info("Unsupported schema: {0}", record.getRecordSchema()); 81 88 } 82 89 } … … 130 137 131 138 public JsonException getException() { 132 return exception ;139 return exception.get(); 133 140 } 134 141 135 public int getStartRecord() {136 return request.getStartRecord();142 public void setException(Exception xc) { 143 exception.set(new JsonException(xc)); 137 144 } 138 145 139 public int getEnd Record() {140 return request.getEndRecord();146 public int getEndpointReturnedRecords() { 147 return endpointReturnedRecords.get(); 141 148 } 142 149 143 150 public Corpus getCorpus() { 144 return request.getCorpus(); 145 } 146 147 public String getSearchString() { 148 return request.getSearchString(); 151 return corpus; 149 152 } 150 153 }
Note: See TracChangeset
for help on using the changeset viewer.