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

View differences:

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