package io.fathom.cloud.storage.state; import io.fathom.cloud.protobuf.FileModel.BucketData; import io.fathom.cloud.protobuf.FileModel.DirectoryData; import io.fathom.cloud.state.NamedItemCollection; import io.fathom.cloud.state.NumberedItemCollection; import io.fathom.cloud.state.RepositoryBase; import io.fathom.cloud.state.StateStore.StateNode; import javax.inject.Singleton; @Singleton public class FileStore extends RepositoryBase { public NamedItemCollection<BucketData> getBuckets(long projectId) { StateNode root = stateStore.getRoot("bucket"); StateNode node = root.child(Long.toHexString(projectId)); return new NamedItemCollection<BucketData>(node, BucketData.newBuilder(), BucketData.getDescriptor() .findFieldByNumber(BucketData.KEY_FIELD_NUMBER)); } public NumberedItemCollection<DirectoryData> getDirectories(long projectId) { StateNode root = stateStore.getRoot("dir"); StateNode node = root.child(Long.toHexString(projectId)); return new NumberedItemCollection<DirectoryData>(node, DirectoryData.newBuilder(), DirectoryData .getDescriptor().findFieldByNumber(DirectoryData.ID_FIELD_NUMBER)); } }