/** * The AbstractDecoratedNodeState implementation returns a ReadOnlyBuilder, which * will fail for any mutable operation. * * This method can be overridden to return a different NodeBuilder implementation. * * @return a NodeBuilder instance corresponding to this NodeState. */ @Override @NotNull public NodeBuilder builder() { return new ReadOnlyBuilder(this); }
@NotNull @Override public NodeBuilder builder() { return new ReadOnlyBuilder(this); } }));
@NotNull @Override public NodeBuilder builder() { return new ReadOnlyBuilder(this); } }));
/** * The AbstractDecoratedNodeState implementation returns a ReadOnlyBuilder, which * will fail for any mutable operation. * * This method can be overridden to return a different NodeBuilder implementation. * * @return a NodeBuilder instance corresponding to this NodeState. */ @Override @NotNull public NodeBuilder builder() { return new ReadOnlyBuilder(this); }
/** * The AbstractDecoratedNodeState implementation returns a ReadOnlyBuilder, which * will fail for any mutable operation. * * This method can be overridden to return a different NodeBuilder implementation. * * @return a NodeBuilder instance corresponding to this NodeState. */ @Override @Nonnull public NodeBuilder builder() { return new ReadOnlyBuilder(this); }
public ImmutableTree(@NotNull ParentProvider parentProvider, @NotNull String name, @NotNull NodeState state) { this.nodeBuilder = new ReadOnlyBuilder(state); this.name = name; this.parentProvider = parentProvider; }
public ImmutableTree(@Nonnull ParentProvider parentProvider, @Nonnull String name, @Nonnull NodeState state) { this.nodeBuilder = new ReadOnlyBuilder(state); this.name = name; this.parentProvider = parentProvider; }
public ImmutableTree(@NotNull ParentProvider parentProvider, @NotNull String name, @NotNull NodeState state) { this.nodeBuilder = new ReadOnlyBuilder(state); this.name = name; this.parentProvider = parentProvider; }
@Override @NotNull public NodeBuilder getChildNode(@NotNull String name) { return new ReadOnlyBuilder(state.getChildNode(name)); }
@Override @Nonnull public NodeBuilder getChildNode(@Nonnull String name) { return new ReadOnlyBuilder(state.getChildNode(name)); }
private static boolean supportsNRTIndexing(NodeState defn) { return supportsIndexingMode(new ReadOnlyBuilder(defn), INDEXING_MODE_NRT); }
private static boolean supportsSyncIndexing(NodeState defn) { return supportsIndexingMode(new ReadOnlyBuilder(defn), INDEXING_MODE_SYNC); }
@NotNull @Override public ReadOnlyBuilder child(@NotNull String name) { NodeState child = state.getChildNode(name); if (child.exists()) { return new ReadOnlyBuilder(child); } else { throw unsupported(); } }
@Nonnull @Override public ReadOnlyBuilder child(@Nonnull String name) { NodeState child = state.getChildNode(name); if (child.exists()) { return new ReadOnlyBuilder(child); } else { throw unsupported(); } }
private void copyContent(NodeState idx, LuceneIndexDefinition defn, IndexMeta meta, File dir, String dirName, Closer closer) throws IOException { File idxDir = DirectoryUtils.createSubDir(dir, dirName); meta.addDirectoryMapping(dirName, idxDir.getName()); Directory sourceDir = new OakDirectory(new ReadOnlyBuilder(idx), dirName, defn, true); Directory targetDir = FSDirectory.open(idxDir); closer.register(sourceDir); closer.register(targetDir); for (String file : sourceDir.listAll()) { sourceDir.copy(targetDir, file, file, IOContext.DEFAULT); size += sourceDir.fileLength(file); } } }
@Override public CompositeNodeBuilder builder() { return new CompositeNodeBuilder(nodeStates.lazyApply((mns, n) -> { if (mns.getMount().isReadOnly()) { return new ReadOnlyBuilder(n); } else { return n.builder(); } }), ctx, path); }
private static void assertDirectoryEquals(LuceneIndexDefinition defn, NodeState expected, NodeState actual, String dirName) throws IOException { OakDirectory dir1 = new OakDirectory(new ReadOnlyBuilder(expected), dirName, defn, true); OakDirectory dir2 = new OakDirectory(new ReadOnlyBuilder(actual), dirName, defn, true); assertDirectoryEquals(dir1, dir2); dir1.close(); dir2.close(); }
private void computeSize(NodeState idxState, LuceneIndexInfo info) throws IOException { LuceneIndexDefinition defn = LuceneIndexDefinition.newBuilder(nodeStore.getRoot(), idxState, info.indexPath).build(); for (String dirName : idxState.getChildNodeNames()) { if (NodeStateUtils.isHidden(dirName) && MultiplexersLucene.isIndexDirName(dirName)) { try (Directory dir = new OakDirectory(new ReadOnlyBuilder(idxState), dirName, defn, true)) { info.numEntries += DirectoryUtils.getNumDocs(dir); info.size = DirectoryUtils.dirSize(dir); } } } }
private void computeSize(NodeState idxState, LuceneIndexInfo info) throws IOException { LuceneIndexDefinition defn = LuceneIndexDefinition.newBuilder(nodeStore.getRoot(), idxState, info.indexPath).build(); for (String dirName : idxState.getChildNodeNames()) { if (NodeStateUtils.isHidden(dirName) && MultiplexersLucene.isIndexDirName(dirName)) { try (Directory dir = new OakDirectory(new ReadOnlyBuilder(idxState), dirName, defn, true)) { info.numEntries += DirectoryUtils.getNumDocs(dir); info.size = DirectoryUtils.dirSize(dir); } } } }
@Test public void readOnlyDirectory() throws Exception{ Directory dir = getOakDirectoryBuilder(new ReadOnlyBuilder(builder.getNodeState()),"/foo") .setReadOnly(true).build(); assertEquals(0, dir.listAll().length); }