comparison backend/src/main/java/org/dive4elements/river/importer/common/AbstractSeriesImport.java @ 9650:a2a42a6bac6b

Importer (s/u-info) extensions: outer try/catch for parse and log of line no, catching parsing exception if not enough value fields, parsing error and warning log messages with line number, detecting and rejecting duplicate data series, better differentiation between error and warning log messages
author mschaefer
date Mon, 23 Mar 2020 14:57:03 +0100
parents 4c5eeaff554c
children
comparison
equal deleted inserted replaced
9649:295b3cb5ebc8 9650:a2a42a6bac6b
97 97
98 public int getValueCount() { 98 public int getValueCount() {
99 return this.values.size(); 99 return this.values.size();
100 } 100 }
101 101
102 public void addValue(final KMLINE value) { 102 public boolean addValue(final KMLINE value) {
103 this.values.add(value); 103 this.values.add(value);
104 return true;
104 } 105 }
105 106
106 public int getValueStoreCount(final StoreMode mode) { 107 public int getValueStoreCount(final StoreMode mode) {
107 return this.valueStoreCount.get(mode).intValue(); 108 return this.valueStoreCount.get(mode).intValue();
108 } 109 }
142 */ 143 */
143 protected SERIES getPeer(final River river) { 144 protected SERIES getPeer(final River river) {
144 if (this.peer != null) 145 if (this.peer != null)
145 return this.peer; 146 return this.peer;
146 final Session session = ImporterSession.getInstance().getDatabaseSession(); 147 final Session session = ImporterSession.getInstance().getDatabaseSession();
147 final List<SERIES> rows = querySeriesItem(session, river); 148 final List<SERIES> rows = querySeriesItem(session, river, false);
148 if (rows.isEmpty()) { 149 if (rows.isEmpty()) {
149 getLog().info("Create new database instance"); 150 getLog().info("Create new database instance");
150 this.peer = createSeriesItem(river); 151 this.peer = createSeriesItem(river);
151 session.save(this.peer); 152 session.save(this.peer);
152 this.storeMode = StoreMode.INSERT; 153 this.storeMode = StoreMode.INSERT;
156 } 157 }
157 return this.peer; 158 return this.peer;
158 } 159 }
159 160
160 /** 161 /**
161 * Queries the series item(s) from the database 162 * Queries the series item(s) from the database<br>
163 * if specified and necessary, the parent is also queried by properties instead of using its getPeer method
162 */ 164 */
163 public abstract List<SERIES> querySeriesItem(final Session session, final River river); 165 public abstract List<SERIES> querySeriesItem(final Session session, final River river, final boolean doQueryParent);
164 166
165 /** 167 /**
166 * Creates a new value item 168 * Creates a new value item
167 */ 169 */
168 public abstract SERIES createSeriesItem(final River river); 170 public abstract SERIES createSeriesItem(final River river);

http://dive4elements.wald.intevation.org