Révision 2430

tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/Partition.java (revision 2430)
120 120
	
121 121
	
122 122
	/**
123
	 * Instantiates a new partition.
123
	 * Computes the Partition using a list of queries.
124 124
	 *
125 125
	 * @param corpus the corpus
126 126
	 * @param name the name
......
137 137
		Log.fine(NLS.bind(SearchEngineCoreMessages.info_creatingNewPartition, this.getParent(), this.userName));
138 138
		long start = System.currentTimeMillis();
139 139
		
140
		if (monitor != null) monitor.beginTask("Building parts...", pQueries.size());
140
		this.beginTask("Building parts...", pQueries.size());
141 141
		
142 142
		for (int i = 0; i < pQueries.size(); i++) {
143 143
			String queryS = pQueries.get(i);
......
150 150
				partName = "-"; //$NON-NLS-1$
151 151
			}
152 152
			new Part(this, partName, queryS);
153
			if (monitor != null) monitor.worked(1);
153
			
154
			this.worked(1);
154 155
		}
155 156
		long end = System.currentTimeMillis();
156 157
		Log.fine(NLS.bind(SearchEngineCoreMessages.info_partitionCreatedInXMs, this.userName, (end - start)));
......
253 254
	@Override
254 255
	protected boolean _compute() throws Exception {
255 256
		
256
		// Parts already created
257
		// Parts already created but not computed
258
		// This case happens at TXM start, when Parts have not been yet computed
259
		// FIXME: SJ: problem, this code is executed and THEN Partition.compute() calls again Part.compute() of all its children
260
		// FIXME: SJ: need to remove this code, the compute of children should not be done here
257 261
		if (this.getParts().size() > 0) {
258 262
			
259
			if (monitor != null) monitor.beginTask("Building parts...", this.getParts().size());
263
			this.beginTask("Building partition parts...", this.getParts().size());
264
			Log.info("Building partition parts...");
265
			
260 266
			// FIXME: temporary fix, compute all the children parts
261 267
			List<Part> parts = (List<Part>) getChildren(Part.class);
262 268
			for (int i = 0; i < parts.size(); i++) {
269
				this.worked(1);
263 270
				parts.get(i).compute();
264
				if (monitor != null) monitor.worked(1);
265 271
			}
266 272
		}
267 273
		else {
......
274 280
				_compute_with_lists();
275 281
			}
276 282
		}
277
		totalsize = -1; // refresh total size at next call of getTotalSize
283
		this.totalsize = -1; // refresh total size at next call of getTotalSize
278 284
		return true;
279 285
	}
280 286
	
281
	/*
282
	 * (non-Javadoc)
283
	 * @see org.txm.objects.TxmObject#load()
284
	 */
285
	protected boolean _load(Element e) {
286
		
287
		// partition already computed
288
		if (this.hasBeenComputedOnce) {
289
			return true;
290
		}
291
		
292
		if (e != null && this.getParent() != null) {
293
			NodeList partList = e.getChildNodes();
294
			for (int i = 0; i < partList.getLength(); i++) {
295
				if (partList.item(i).getNodeType() == 1) {
296
					Element c = (Element) partList.item(i);
297
					if (c.getNodeName().equals("part")) { //$NON-NLS-1$
298
						String pname = c.getAttribute("name"); //$NON-NLS-1$
299
						String pshortname = c.getAttribute("shortname"); //$NON-NLS-1$
300
						String pquery = c.getAttribute("query"); //$NON-NLS-1$
301
						for (Part part : getParts()) {
302
							if (part.getName().equals(pname)) {
303
								part.setName(pname);
304
								part.setQuery(new CQLQuery(pquery));
305
							}
306
						}
307
					}
308
				}
309
			}
310
			// this.loadMetadata();
311
			return true;
312
		}
313
		
314
		return false;
315
	}
316 287
	
317 288
	@Override
318 289
	public boolean canCompute() {
......
378 349
	// }
379 350
	
380 351
	
352
	/*
353
	 * (non-Javadoc)
354
	 * @see org.txm.objects.TxmObject#load()
355
	 */
356
	protected boolean _load(Element e) {
357
		
358
		// partition already computed
359
		if (this.hasBeenComputedOnce) {
360
			return true;
361
		}
362
		
363
		if (e != null && this.getParent() != null) {
364
			NodeList partList = e.getChildNodes();
365
			for (int i = 0; i < partList.getLength(); i++) {
366
				if (partList.item(i).getNodeType() == 1) {
367
					Element c = (Element) partList.item(i);
368
					if (c.getNodeName().equals("part")) { //$NON-NLS-1$
369
						String pname = c.getAttribute("name"); //$NON-NLS-1$
370
						String pshortname = c.getAttribute("shortname"); //$NON-NLS-1$
371
						String pquery = c.getAttribute("query"); //$NON-NLS-1$
372
						for (Part part : getParts()) {
373
							if (part.getName().equals(pname)) {
374
								part.setName(pname);
375
								part.setQuery(new CQLQuery(pquery));
376
							}
377
						}
378
					}
379
				}
380
			}
381
			// this.loadMetadata();
382
			return true;
383
		}
384
		
385
		return false;
386
	}
387
	
388
	
381 389
	@Override
382 390
	public String getDetails() {
383 391
		return this.getName();

Formats disponibles : Unified diff