Skip to content

Commit

Permalink
#4634 - Pull document file storage code out of document service into …
Browse files Browse the repository at this point in the history
…a new service

- Move the code out
  • Loading branch information
reckart committed Mar 16, 2024
1 parent fea7951 commit a5f4b47
Show file tree
Hide file tree
Showing 18 changed files with 384 additions and 191 deletions.
4 changes: 4 additions & 0 deletions inception/inception-documents-api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,10 @@
<groupId>org.apache.wicket</groupId>
<artifactId>wicket-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.wicket</groupId>
<artifactId>wicket-util</artifactId>
</dependency>

<!-- Spring dependencies -->

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
*/
package de.tudarmstadt.ukp.inception.documents.api;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
Expand Down Expand Up @@ -47,15 +46,6 @@

public interface DocumentService
{
/**
* The Directory where the {@link SourceDocument}s and {@link AnnotationDocument}s stored
*
* @return the directory.
* @deprecated Use {@link RepositoryProperties#getPath()} instead.
*/
@Deprecated
File getDir();

// --------------------------------------------------------------------------------------------
// Methods related to SourceDocuments
// --------------------------------------------------------------------------------------------
Expand Down Expand Up @@ -117,13 +107,6 @@ public interface DocumentService
*/
SourceDocument getSourceDocument(long projectId, long documentId);

/**
* @param document
* The {@link SourceDocument} to be examined
* @return the originally imported source document file.
*/
File getSourceDocumentFile(SourceDocument document);

/**
* List all source documents in a project. The source documents are the original TCF documents
* imported.
Expand Down Expand Up @@ -661,8 +644,10 @@ List<AnnotationDocument> listAnnotationDocumentsWithStateForUser(Project aProjec
*
* @param annotationDocument
* the {@link AnnotationDocument} to be removed
* @throws IOException
* if there was a problem deleting
*/
void removeAnnotationDocument(AnnotationDocument annotationDocument);
void removeAnnotationDocument(AnnotationDocument annotationDocument) throws IOException;

AnnotationDocument createOrGetAnnotationDocument(SourceDocument aDocument, User aUser);

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
/*
* Licensed to the Technische Universität Darmstadt under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The Technische Universität Darmstadt
* licenses this file to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License.
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package de.tudarmstadt.ukp.inception.documents.api;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;

import org.apache.wicket.util.resource.IResourceStream;

import de.tudarmstadt.ukp.clarin.webanno.model.SourceDocument;

public interface DocumentStorageService
{
/**
* @return a stream to the source document file.
*
* @param document
* the source document.
* @throws IOException
* if there was an IO-level problem.
*/
InputStream openSourceDocumentFile(SourceDocument document) throws IOException;

/**
* Write the data from the given input stream to the source document file.
*
* @param inputStream
* the source document data.
* @param document
* the source document.
* @throws IOException
* if there was an IO-level problem.
*/
void writeSourceDocumentFile(SourceDocument document, InputStream inputStream)
throws IOException;

/**
* Copy the source document file to the given directory.
*
* @param document
* the source document.
* @param targetDir
* the target directory.
* @throws IOException
* if there was an IO-level problem.
*/
void copySourceDocumentFile(SourceDocument document, File targetDir) throws IOException;

/**
* @param document
* the source document.
* @return the size of the source document file.
*/
long getSourceDocumentFileSize(SourceDocument document);

File getSourceDocumentFile(SourceDocument aDocument);

IResourceStream getSourceDocumentResourceStream(SourceDocument aDocument);

IResourceStream getSourceDocumentResourceStream(SourceDocument aDocument, String aContentType);

void removeSourceDocumentFile(SourceDocument aDocument) throws IOException;

boolean existsSourceDocumentFile(SourceDocument aDocument) throws IOException;
}
4 changes: 4 additions & 0 deletions inception/inception-documents/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,10 @@
<groupId>org.apache.wicket</groupId>
<artifactId>wicket-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.wicket</groupId>
<artifactId>wicket-util</artifactId>
</dependency>

<!-- Spring dependencies -->

Expand Down
Loading

0 comments on commit a5f4b47

Please sign in to comment.