Revision 1267 org.gvsig.scripting/trunk/org.gvsig.scripting/org.gvsig.scripting.lib/org.gvsig.scripting.lib.impl/src/main/java/org/gvsig/scripting/impl/DefaultScriptingManager.java
DefaultScriptingManager.java | ||
---|---|---|
10 | 10 |
import java.util.List; |
11 | 11 |
import java.util.Map; |
12 | 12 |
import java.util.Set; |
13 |
import java.util.logging.Level; |
|
13 | 14 |
import java.util.regex.Matcher; |
14 | 15 |
import java.util.regex.Pattern; |
15 | 16 |
|
... | ... | |
22 | 23 |
import org.apache.commons.io.IOUtils; |
23 | 24 |
|
24 | 25 |
import org.apache.commons.lang3.StringUtils; |
26 |
import org.apache.tika.Tika; |
|
27 |
import org.apache.tika.metadata.Metadata; |
|
28 |
import org.apache.tika.mime.MediaType; |
|
25 | 29 |
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator; |
26 | 30 |
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager; |
27 | 31 |
import org.gvsig.scripting.DataFolderFound; |
... | ... | |
362 | 366 |
} |
363 | 367 |
return unit; |
364 | 368 |
} |
365 |
|
|
369 |
|
|
370 |
private Tika tika; |
|
371 |
|
|
372 |
private Tika getTika() { |
|
373 |
if( this.tika == null ) { |
|
374 |
this.tika = new Tika(); |
|
375 |
} |
|
376 |
return this.tika; |
|
377 |
} |
|
378 |
|
|
379 |
private String getMimeType(String id) { |
|
380 |
try { |
|
381 |
Metadata m = new Metadata(); |
|
382 |
m.set(Metadata.RESOURCE_NAME_KEY,id); |
|
383 |
MediaType type = this.getTika().getDetector().detect(null, m); |
|
384 |
if( type == null ) { |
|
385 |
return null; |
|
386 |
} |
|
387 |
return type.getType(); |
|
388 |
} catch (IOException ex) { |
|
389 |
return null; |
|
390 |
} |
|
391 |
} |
|
392 |
|
|
366 | 393 |
public ScriptingExternalFile createExternalFile(ScriptingFolder folder, String id) { |
367 |
DefaultScriptingExternalFile unit = new DefaultScriptingExternalFile(folder, this, id); |
|
394 |
DefaultScriptingExternalFile unit; |
|
395 |
if( StringUtils.equalsIgnoreCase("text", getMimeType(id)) ) { |
|
396 |
unit = new DefaultScriptingExternalTextFile(folder, this, id); |
|
397 |
} else { |
|
398 |
unit = new DefaultScriptingExternalFile(folder, this, id); |
|
399 |
} |
|
368 | 400 |
if( unit.getExternalFile()!=null && !unit.getExternalFile().exists() ) { |
369 | 401 |
unit.create(folder, id); |
370 | 402 |
} |
Also available in: Unified diff