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}