Statistics
| Revision:

gvsig-scripting / org.gvsig.scripting / trunk / org.gvsig.scripting / org.gvsig.scripting.lib / org.gvsig.scripting.lib.impl / src / main / java / org / gvsig / scripting / impl / DefaultScriptingExternalFile.java @ 718

History | View | Annotate | Download (2.68 KB)

1

    
2
package org.gvsig.scripting.impl;
3

    
4
import java.io.File;
5
import java.io.IOException;
6
import java.util.ArrayList;
7
import java.util.List;
8
import org.apache.commons.io.FileUtils;
9
import org.apache.tika.Tika;
10
import org.gvsig.scripting.ScriptingExternalFile;
11
import org.gvsig.scripting.ScriptingFolder;
12
import org.gvsig.scripting.ScriptingManager;
13

    
14

    
15
public class DefaultScriptingExternalFile extends AbstractUnit implements ScriptingExternalFile  {
16
    private File externFile = null;
17
    private String mimeType = null;
18
    
19
    private static Tika tika = null;
20
    
21
    public DefaultScriptingExternalFile(ScriptingFolder parent, ScriptingManager manager, String id) {
22
        super(parent, ScriptingManager.UNIT_EXTERNALFILE, manager, id);
23
        this.externFile = new File(parent.getFile(),id);
24
    }
25

    
26
    @Override
27
    public void load(ScriptingFolder folder, String id) {
28
    }
29

    
30
    @Override
31
    public boolean rename(String newId) {
32
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
33
    }
34

    
35
    @Override
36
    public void create(ScriptingFolder folder, String id, String language) {
37
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
38
    }
39

    
40
    @Override
41
    public boolean remove() {
42
        return this.externFile.delete();
43
    }
44

    
45
    @Override
46
    public boolean move(ScriptingFolder target) {
47
        return false;
48
    }
49

    
50
    @Override
51
    public String[] getIconNames() {
52
        return new String[]{
53
            "scripting_externalfile",
54
            "scripting_externalfile_open"
55
        };
56
    }
57
    
58
    public File getExternalFile() {
59
        return this.externFile;
60
    }
61
    
62
    @Override
63
    public List<File> getFiles() {
64
        List<File> l=new ArrayList<>();
65
        l.add(this.externFile);
66
        return l;
67
    }
68

    
69

    
70
    @Override
71
    public String getMimeType() {
72
        if( this.mimeType != null ) {
73
            return this.mimeType;
74
        }
75
        if( tika == null ) {
76
            tika = new Tika();
77
        }
78
        try {
79
            this.mimeType = tika.detect(externFile);
80
        } catch (IOException ex) {
81
            return "application/octet-stream";
82
        }
83
        return this.mimeType;
84
    }
85

    
86
    @Override
87
    public void setContents(String text) {
88
        try {
89
            FileUtils.write(externFile, text);
90
        } catch (IOException ex) {
91
            throw new RuntimeException(ex);
92
        }
93
    }
94

    
95
    @Override
96
    public String getContentsAsText() {
97
        try {
98
            return FileUtils.readFileToString(externFile);
99
        } catch (IOException ex) {
100
            throw new RuntimeException(ex);
101
        }
102
    }
103

    
104
}