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 @ 952

History | View | Annotate | Download (2.88 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) {
37
        File file = this.externFile;
38
        try {
39
            file.createNewFile();
40
        } catch (IOException e) {
41
            logger.warn("Can't create inf file in '" + file.getAbsolutePath() + "'.", e);
42
        }        
43
    }
44
    
45
    @Override
46
    public void create(ScriptingFolder folder, String id, String language) {
47
        this.create(folder, id);
48
    }
49

    
50
    @Override
51
    public boolean remove() {
52
        return this.externFile.delete();
53
    }
54

    
55
    @Override
56
    public boolean move(ScriptingFolder target) {
57
        return false;
58
    }
59

    
60
    @Override
61
    public String[] getIconNames() {
62
        return new String[]{
63
            "scripting_externalfile",
64
            "scripting_externalfile_open"
65
        };
66
    }
67
    
68
    public File getExternalFile() {
69
        return this.externFile;
70
    }
71
    
72
    @Override
73
    public List<File> getFiles() {
74
        List<File> l=new ArrayList<>();
75
        l.add(this.externFile);
76
        return l;
77
    }
78

    
79

    
80
    @Override
81
    public String getMimeType() {
82
        if( this.mimeType != null ) {
83
            return this.mimeType;
84
        }
85
        if( tika == null ) {
86
            tika = new Tika();
87
        }
88
        try {
89
            this.mimeType = tika.detect(externFile);
90
        } catch (IOException ex) {
91
            return "application/octet-stream";
92
        }
93
        return this.mimeType;
94
    }
95

    
96
    @Override
97
    public void setContents(String text) {
98
        try {
99
            FileUtils.write(externFile, text);
100
        } catch (IOException ex) {
101
            throw new RuntimeException(ex);
102
        }
103
    }
104

    
105
    @Override
106
    public String getContentsAsText() {
107
        try {
108
            return FileUtils.readFileToString(externFile);
109
        } catch (IOException ex) {
110
            throw new RuntimeException(ex);
111
        }
112
    }
113

    
114
}