001package org.xbib.elasticsearch.river.jdbc.strategy.mock;
002
003import org.elasticsearch.common.logging.ESLogger;
004import org.elasticsearch.common.logging.ESLoggerFactory;
005import org.elasticsearch.common.settings.Settings;
006import org.xbib.elasticsearch.plugin.jdbc.client.Ingest;
007import org.xbib.elasticsearch.plugin.jdbc.client.IngestFactory;
008import org.xbib.elasticsearch.plugin.jdbc.util.IndexableObject;
009import org.xbib.elasticsearch.plugin.jdbc.client.Metric;
010import org.xbib.elasticsearch.river.jdbc.RiverMouth;
011
012import java.io.IOException;
013import java.util.Map;
014import java.util.TreeMap;
015
016public class MockRiverMouth implements RiverMouth<MockRiverContext> {
017
018    private final static ESLogger logger = ESLoggerFactory.getLogger(MockRiverMouth.class.getSimpleName());
019
020    private Map<IndexableObject, String> data;
021
022    private long counter;
023
024    @Override
025    public String strategy() {
026        return "mock";
027    }
028
029    @Override
030    public RiverMouth<MockRiverContext> newInstance() {
031        return new MockRiverMouth();
032    }
033
034    @Override
035    public void beforeFetch() throws Exception {
036    }
037
038    @Override
039    public void afterFetch() throws Exception {
040
041    }
042
043    public MockRiverMouth() {
044        data = new TreeMap<IndexableObject, String>();
045        counter = 0L;
046    }
047
048    @Override
049    public void index(IndexableObject object, boolean create) throws IOException {
050        logger.info("index {} = {}", object.toString(), object.build());
051        data.put(object, object.build());
052        counter++;
053        logger.info("size after insert {}", data.size());
054    }
055
056    @Override
057    public void delete(IndexableObject object) throws IOException {
058        logger.info("delete {}", object.toString());
059        data.remove(object);
060        counter--;
061        logger.info("size after delete {}", data.size());
062    }
063
064    public Map<IndexableObject, String> data() {
065        return data;
066    }
067
068    @Override
069    public MockRiverMouth setRiverContext(MockRiverContext context) {
070        return this;
071    }
072
073    @Override
074    public RiverMouth setIngestFactory(IngestFactory ingestFactory) {
075        return this;
076    }
077
078    @Override
079    public RiverMouth setIndex(String index) {
080        return this;
081    }
082
083    @Override
084    public String getIndex() {
085        return null;
086    }
087
088    @Override
089    public RiverMouth setIndexSettings(Settings indexSettings) {
090        return this;
091    }
092
093    @Override
094    public RiverMouth setTypeMapping(Map<String, String> typeMapping) {
095        return this;
096    }
097
098    @Override
099    public RiverMouth setType(String type) {
100        return this;
101    }
102
103    @Override
104    public String getType() {
105        return null;
106    }
107
108    @Override
109    public RiverMouth setId(String id) {
110        return this;
111    }
112
113    @Override
114    public String getId() {
115        return null;
116    }
117
118    @Override
119    public void flush() throws IOException {
120    }
121
122    @Override
123    public void shutdown() throws IOException {
124    }
125
126    @Override
127    public void suspend() throws Exception {
128    }
129
130    @Override
131    public void resume() throws Exception {
132    }
133
134    @Override
135    public Metric getMetric() {
136        return null;
137    }
138
139    public long getCounter() {
140        return counter;
141    }
142
143}