@Override public void writeExternal(ObjectOutput out) throws IOException { FileSystemProto.Directory.Builder dirBuilder = FileSystemProto.Directory.newBuilder(); dirBuilder.setPath(getPath()); dirBuilder.setLastModified(getLastModified()); FileSystemProto.File.Builder fileBuilder = FileSystemProto.File.newBuilder(); for (CacheFileProto child : children) { fileBuilder.clear(); fileBuilder.setName(child.getShortName()); fileBuilder.setIsDirectory(child.isDirectory()); fileBuilder.setLastModified(child.getLastModified()); fileBuilder.setLength(child.getLength()); dirBuilder.addFiles(fileBuilder); } thredds.filesystem.FileSystemProto.Directory dirProto = dirBuilder.build(); byte[] b = dirProto.toByteArray(); out.writeInt(b.length); out.write(b); }