/** * Get the FijiColumnName from the given meta table key. If the key component cannot be translated * to a FijiColumnName, the meta table key will be removed and this method will return null. * * @param metaTableKey key from which to exact the column name. * @return FijiColumnName stored in the given meta table key or null if the column name cannot be * translated. * @throws IOException in case of an error removing a defunct key. */ private FijiColumnName columnFromMetaTableKey( final String metaTableKey ) throws IOException { try { return columnFromMetaTableKey(mTable, metaTableKey); } catch (NoSuchColumnException e) { removeKV(metaTableKey); return null; } }
/** {@inheritDoc} */ @Override public void removeTableAnnotation( final String exactKey ) throws IOException { requireState(State.OPEN, "remove annotation"); removeKV(getMetaTableKey(exactKey)); }
/** {@inheritDoc} */ @Override public void removeColumnAnnotation( final FijiColumnName column, final String exactKey ) throws IOException { requireState(State.OPEN, "remove annotation"); removeKV(getMetaTableKey(mTable, column, exactKey)); }
/** {@inheritDoc} */ @Override public Set<String> removeAllTableAnnotations() throws IOException { requireState(State.OPEN, "remove annotation"); final Set<String> removedAnnotationKeys = Sets.newHashSet(); for (String metaTableKey : keySet()) { if (isKCATableMetaTableKey(metaTableKey)) { removedAnnotationKeys.add(keyFromMetaTableKey(metaTableKey)); removeKV(metaTableKey); } } return removedAnnotationKeys; }
/** {@inheritDoc} */ @Override public Set<String> removeTableAnnotationsContaining( final String substring ) throws IOException { requireState(State.OPEN, "remove annotation"); final Set<String> removedAnnotationKeys = Sets.newHashSet(); for (String metaTableKey : keySet()) { if (isKCATableMetaTableKey(metaTableKey)) { final String annotationKey = keyFromMetaTableKey(metaTableKey); if (annotationKey.contains(substring)) { removedAnnotationKeys.add(annotationKey); removeKV(metaTableKey); } } } return removedAnnotationKeys; }
/** {@inheritDoc} */ @Override public Set<String> removeAllColumnAnnotations( final FijiColumnName column ) throws IOException { requireState(State.OPEN, "remove annotation"); final Set<String> removedAnnotationKeys = Sets.newHashSet(); for (String metaTableKey : keySet()) { if (isKCAColumnMetaTableKey(metaTableKey) && Objects.equal(column, columnFromMetaTableKey(metaTableKey))) { removedAnnotationKeys.add(keyFromMetaTableKey(metaTableKey)); removeKV(metaTableKey); } } return removedAnnotationKeys; }
/** {@inheritDoc} */ @Override public Set<String> removeTableAnnotationsStartingWith( final String prefix ) throws IOException { requireState(State.OPEN, "remove annotation"); final Set<String> removedAnnotationKeys = Sets.newHashSet(); for (String metaTableKey : keySet()) { if (isKCATableMetaTableKey(metaTableKey)) { final String annotationKey = keyFromMetaTableKey(metaTableKey); if (annotationKey.startsWith(prefix)) { removedAnnotationKeys.add(annotationKey); removeKV(metaTableKey); } } } return removedAnnotationKeys; }
/** {@inheritDoc} */ @Override public Set<String> removeTableAnnotationsMatching( final String pattern ) throws IOException { requireState(State.OPEN, "remove annotation"); final Set<String> removedAnnotationKeys = Sets.newHashSet(); for (String metaTableKey : keySet()) { if (isKCATableMetaTableKey(metaTableKey)) { final String annotationKey = keyFromMetaTableKey(metaTableKey); if (annotationKey.matches(pattern)) { removedAnnotationKeys.add(annotationKey); removeKV(metaTableKey); } } } return removedAnnotationKeys; }
/** {@inheritDoc} */ @Override public Map<FijiColumnName, Set<String>> removeColumnAnnotationsInFamilyStartingWith( final String family, final String prefix ) throws IOException { requireState(State.OPEN, "remove annotation"); final Map<FijiColumnName, Set<String>> removedAnnotationKeys = Maps.newHashMap(); for (String metaTableKey : keySet()) { if (isKCAColumnMetaTableKey(metaTableKey)) { final FijiColumnName column = columnFromMetaTableKey(metaTableKey); if (null != column && Objects.equal(family, column.getFamily())) { final String annotationKey = keyFromMetaTableKey(metaTableKey); if (annotationKey.startsWith(prefix)) { final Set<String> removedKeysInColumn = removedAnnotationKeys.get(column); if (null != removedKeysInColumn) { removedKeysInColumn.add(annotationKey); } else { removedAnnotationKeys.put(column, Sets.newHashSet(annotationKey)); } removeKV(metaTableKey); } } } } return removedAnnotationKeys; }
/** {@inheritDoc} */ @Override public Map<FijiColumnName, Set<String>> removeColumnAnnotationsInFamilyMatching( final String family, final String pattern ) throws IOException { requireState(State.OPEN, "remove annotation"); final Map<FijiColumnName, Set<String>> removedAnnotationKeys = Maps.newHashMap(); for (String metaTableKey : keySet()) { if (isKCAColumnMetaTableKey(metaTableKey)) { final FijiColumnName column = columnFromMetaTableKey(metaTableKey); if (null != column && Objects.equal(family, column.getFamily())) { final String annotationKey = keyFromMetaTableKey(metaTableKey); if (annotationKey.matches(pattern)) { final Set<String> removedKeysInColumn = removedAnnotationKeys.get(column); if (null != removedKeysInColumn) { removedKeysInColumn.add(annotationKey); } else { removedAnnotationKeys.put(column, Sets.newHashSet(annotationKey)); } removeKV(metaTableKey); } } } } return removedAnnotationKeys; }
/** {@inheritDoc} */ @Override public Map<FijiColumnName, Set<String>> removeColumnAnnotationsInFamilyContaining( final String family, final String substring ) throws IOException { requireState(State.OPEN, "remove annotation"); final Map<FijiColumnName, Set<String>> removedAnnotationKeys = Maps.newHashMap(); for (String metaTableKey : keySet()) { if (isKCAColumnMetaTableKey(metaTableKey)) { final FijiColumnName column = columnFromMetaTableKey(metaTableKey); if (null != column && Objects.equal(family, column.getFamily())) { final String annotationKey = keyFromMetaTableKey(metaTableKey); if (annotationKey.contains(substring)) { final Set<String> removedKeysInColumn = removedAnnotationKeys.get(column); if (null != removedKeysInColumn) { removedKeysInColumn.add(annotationKey); } else { removedAnnotationKeys.put(column, Sets.newHashSet(annotationKey)); } removeKV(metaTableKey); } } } } return removedAnnotationKeys; }
/** {@inheritDoc} */ @Override public Map<FijiColumnName, Set<String>> removeAllColumnAnnotations() throws IOException { requireState(State.OPEN, "remove annotation"); final Map<FijiColumnName, Set<String>> removedAnnotationKeys = Maps.newHashMap(); for (String metaTableKey : keySet()) { if (isKCAColumnMetaTableKey(metaTableKey)) { final FijiColumnName column = columnFromMetaTableKey(metaTableKey); if (null != column) { final Set<String> removedKeysInColumn = removedAnnotationKeys.get(column); if (null != removedKeysInColumn) { removedKeysInColumn.add(keyFromMetaTableKey(metaTableKey)); } else { removedAnnotationKeys.put(column, Sets.newHashSet(keyFromMetaTableKey(metaTableKey))); } removeKV(metaTableKey); } } } return removedAnnotationKeys; }
/** {@inheritDoc} */ @Override public Set<String> removeColumnAnnotationsStartingWith( final FijiColumnName column, final String prefix ) throws IOException { requireState(State.OPEN, "remove annotation"); final Set<String> removedAnnotationKeys = Sets.newHashSet(); for (String metaTableKey : keySet()) { if (isKCAColumnMetaTableKey(metaTableKey) && Objects.equal(column, columnFromMetaTableKey(metaTableKey))) { final String annotationKey = keyFromMetaTableKey(metaTableKey); if (annotationKey.startsWith(prefix)) { removedAnnotationKeys.add(annotationKey); removeKV(metaTableKey); } } } return removedAnnotationKeys; }
/** {@inheritDoc} */ @Override public Set<String> removeColumnAnnotationsContaining( final FijiColumnName column, final String substring ) throws IOException { requireState(State.OPEN, "remove annotation"); final Set<String> removedAnnotationKeys = Sets.newHashSet(); for (String metaTableKey : keySet()) { if (isKCAColumnMetaTableKey(metaTableKey) && Objects.equal(column, columnFromMetaTableKey(metaTableKey))) { final String annotationKey = keyFromMetaTableKey(metaTableKey); if (annotationKey.contains(substring)) { removedAnnotationKeys.add(annotationKey); removeKV(metaTableKey); } } } return removedAnnotationKeys; }
/** {@inheritDoc} */ @Override public Set<String> removeColumnAnnotationsMatching( final FijiColumnName column, final String pattern ) throws IOException { requireState(State.OPEN, "remove annotation"); final Set<String> removedAnnotationKeys = Sets.newHashSet(); for (String metaTableKey : keySet()) { if (isKCAColumnMetaTableKey(metaTableKey) && Objects.equal(column, columnFromMetaTableKey(metaTableKey))) { final String annotationKey = keyFromMetaTableKey(metaTableKey); if (annotationKey.matches(pattern)) { removedAnnotationKeys.add(annotationKey); removeKV(metaTableKey); } } } return removedAnnotationKeys; }
/** {@inheritDoc} */ @Override public Set<FijiColumnName> removeColumnAnnotationsInFamily( final String family, final String exactKey ) throws IOException { requireState(State.OPEN, "remove annotation"); final Set<FijiColumnName> removedColumns = Sets.newHashSet(); for (String metaTableKey : keySet()) { if (isKCAColumnMetaTableKey(metaTableKey) && Objects.equal(exactKey, keyFromMetaTableKey(metaTableKey))) { final FijiColumnName column = columnFromMetaTableKey(metaTableKey); if (null != column && Objects.equal(family, column.getFamily())) { removedColumns.add(column); removeKV(metaTableKey); } } } return removedColumns; }
/** {@inheritDoc} */ @Override public Map<FijiColumnName, Set<String>> removeAllColumnAnnotationsInFamily( final String family ) throws IOException { requireState(State.OPEN, "remove annotation"); final Map<FijiColumnName, Set<String>> removedAnnotationKeys = Maps.newHashMap(); for (String metaTableKey : keySet()) { if (isKCAColumnMetaTableKey(metaTableKey)) { final FijiColumnName column = columnFromMetaTableKey(metaTableKey); if (null != column && Objects.equal(family, column.getFamily())) { final Set<String> removedKeysInColumn = removedAnnotationKeys.get(column); if (null != removedKeysInColumn) { removedKeysInColumn.add(keyFromMetaTableKey(metaTableKey)); } else { removedAnnotationKeys.put(column, Sets.newHashSet(keyFromMetaTableKey(metaTableKey))); } removeKV(metaTableKey); } } } return removedAnnotationKeys; }