Project

General

Profile

1
package eu.dnetlib.dli.resolver.model.serializer;
2

    
3
import java.io.ByteArrayOutputStream;
4
import java.io.StringWriter;
5
import java.time.LocalDateTime;
6

    
7
import com.ximpleware.AutoPilot;
8
import com.ximpleware.VTDGen;
9
import com.ximpleware.VTDNav;
10
import com.ximpleware.XMLModifier;
11
import eu.dnetlib.dli.resolver.model.DLIResolvedObject;
12

    
13
import eu.dnetlib.pid.resolver.mdstore.plugin.AbstractResolverSerializer;
14
import eu.dnetlib.pid.resolver.mdstore.plugin.ResolverSerializer;
15
import eu.dnetlib.pid.resolver.model.ObjectType;
16
import eu.dnetlib.pid.resolver.model.ResolvedObject;
17
import org.antlr.stringtemplate.NoIndentWriter;
18
import org.antlr.stringtemplate.StringTemplate;
19
import org.apache.commons.logging.Log;
20
import org.apache.commons.logging.LogFactory;
21
import org.springframework.beans.factory.annotation.Required;
22

    
23
/**
24
 * Created by sandro on 9/21/16.
25
 */
26
public class DLIResolverSerializer extends AbstractResolverSerializer {
27

    
28
    private static final Log log = LogFactory.getLog(DLIResolverSerializer.class);
29

    
30
    private StringTemplate dmfTemplate;
31

    
32
    private StringTemplate pmfTemplate;
33

    
34
    private StringTemplate scholixTemplate;
35

    
36

    
37
    @Override
38
    public String serializeToXML(final ResolvedObject object) {
39
        StringWriter writer = new StringWriter(16);
40
        NoIndentWriter out = new NoIndentWriter(writer);
41

    
42
        if (object.getType() == null)
43
            object.setType(ObjectType.unknown);
44

    
45
        switch (object.getType()) {
46
            case publication: {
47
                return serialize(pmfTemplate, object, writer, out);
48
            }
49
            case dataset: {
50
                return serialize(dmfTemplate, object, writer, out);
51
            }
52
            case unknown: {
53
                return serialize(scholixTemplate, object, writer, out);
54
            }
55
        }
56
        return null;
57
    }
58

    
59

    
60
    public StringTemplate getDmfTemplate() {
61
        return dmfTemplate;
62
    }
63

    
64
    @Required
65
    public void setDmfTemplate(final StringTemplate dmfTemplate) {
66
        this.dmfTemplate = dmfTemplate;
67
    }
68

    
69
    public StringTemplate getPmfTemplate() {
70
        return pmfTemplate;
71
    }
72

    
73
    @Required
74
    public void setPmfTemplate(final StringTemplate pmfTemplate) {
75
        this.pmfTemplate = pmfTemplate;
76
    }
77

    
78
    public StringTemplate getScholixTemplate() {
79
        return scholixTemplate;
80
    }
81

    
82
    @Required
83
    public void setScholixTemplate(final StringTemplate scholixTemplate) {
84
        this.scholixTemplate = scholixTemplate;
85
    }
86
}
    (1-1/1)