public List<T> resolveConflicts(List<T> items) { if(items.size() > 1) throw new InconsistentDataException("Conflict resolution failed.", items); else return items; }
protected Versioned<V> getItemOrThrow(K key, Versioned<V> defaultValue, List<Versioned<V>> items) { if(items.size() == 0) return defaultValue; else if(items.size() == 1) return items.get(0); else throw new InconsistentDataException("Unresolved versions returned from get(" + key + ") = " + items, items); }
protected Versioned<V> getItemOrThrow(K key, Versioned<V> defaultValue, List<Versioned<V>> items) { if(items.size() == 0) return defaultValue; else if(items.size() == 1) return items.get(0); else throw new InconsistentDataException("Unresolved versions returned from get(" + key + ") = " + items, items); }
@SuppressWarnings("unused") protected Version getVersion(K key) { List<Version> versions = getVersions(key); if(versions.size() == 0) return null; else if(versions.size() == 1) return versions.get(0); else throw new InconsistentDataException("Unresolved versions returned from get(" + key + ") = " + versions, versions); }
public Versioned<V> getSysStore(K key) { logger.debug("Invoking Get for key : " + key + " on store name : " + this.storeName); Versioned<V> versioned = null; try { List<Versioned<V>> items = this.sysStore.get(key, null); if(items.size() == 1) versioned = items.get(0); else if(items.size() > 1) throw new InconsistentDataException("Unresolved versions returned from get(" + key + ") = " + items, items); if(versioned != null) logger.debug("Value for key : " + key + " = " + versioned.getValue() + " on store name : " + this.storeName); else logger.debug("Got null value"); } catch(InvalidMetadataException e) { throw e; } catch(Exception e) { if(logger.isDebugEnabled()) { logger.debug("Exception caught during getSysStore: " + e); } } return versioned; }
public void testGetVersions() { List<?> versions = ImmutableList.of("version1", "version2"); InconsistentDataException exception = new InconsistentDataException("foo", versions); assertEquals(versions, exception.getVersions()); } }