// Path: src/main/java/technology/tabula/tabula_web/extractor/PagesInfoExtractor.java
// public class PagesInfoExtractor {
// 
// 	@SuppressWarnings("Convert2Diamond")
//     public static List<DocumentPage> pagesInfo(String pdfPath) throws IOException {
// 		PDDocument document = Utils.openPDF(pdfPath);
// 		ObjectExtractor extractor = new ObjectExtractor(document);
// 		
// 		ArrayList<DocumentPage> rv = new ArrayList<DocumentPage>(); 
// 		
// 		PageIterator it = extractor.extract();
// 		Page p;
// 		while (it.hasNext()) {
// 			p = it.next();
// 			rv.add(new DocumentPage(p.getWidth(), p.getHeight(), p.getPageNumber(), p.getRotation(), p.hasText()));
// 		}
// 
// 		extractor.close();
// 		
// 		return rv;
// 	}
// }
// 
// Path: src/main/java/technology/tabula/tabula_web/workspace/DocumentPage.java
// public class DocumentPage {
// 
// 	public double width;
// 	public double height;
// 	public int number;
// 	public int rotation;
// 	public boolean hasText;
// 	
// 	public DocumentPage(double width, double height, int number, int rotation, boolean hasText) {
// 		this.width = width;
// 		this.height = height;
// 		this.number = number;
// 		this.rotation = rotation;
// 		this.hasText = hasText;
// 	}
// }
// 
// Path: src/main/java/technology/tabula/tabula_web/workspace/WorkspaceDAO.java
// public interface WorkspaceDAO {
// 	
// 	Workspace getWorkspace() throws WorkspaceException;
// 
// 	void addDocument(WorkspaceDocument we, List<DocumentPage> pages) throws WorkspaceException;
// 
// 	void deleteDocument(String documentId) throws WorkspaceException;
// 
// 	WorkspaceDocument getDocumentMetadata(String documentId) throws WorkspaceException;
// 
// 	List<DocumentPage> getDocumentPages(String documentId) throws WorkspaceException;
// 
// 	String getDocumentPath(String documentId);
// 	
// 	String getDocumentDir(String documentId);
// 
// 	String getDataDir();
// 	
// 	void addFile(InputStream stream, String documentId, String filename) throws WorkspaceException;
// 
// }
// 
// Path: src/main/java/technology/tabula/tabula_web/workspace/WorkspaceDocument.java
// public class WorkspaceDocument {
// 	  public String original_filename;
// 	  public String id;
// 	  public String time;
// 	  public int page_count;
// 	  public long size;
// 	  public int[] thumbnail_sizes;
// 	
// 	  
// 	  public WorkspaceDocument(String original_filename, String id, String time, int page_count, long size,
// 							   int[] thumbnail_sizes) {
// 		this.original_filename = original_filename;
// 		this.id = id;
// 		this.time = time;
// 		this.page_count = page_count;
// 		this.size = size;
// 		this.thumbnail_sizes = thumbnail_sizes.clone();
// 	}
// 	  
// 	  
// 	  
// }


import java.io.File;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.List;
import java.util.UUID;
import technology.tabula.tabula_web.extractor.PagesInfoExtractor;
import technology.tabula.tabula_web.workspace.DocumentPage;
import technology.tabula.tabula_web.workspace.WorkspaceDAO;
import technology.tabula.tabula_web.workspace.WorkspaceDocument;
package technology.tabula.tabula_web.background.job;



public class GenerateDocumentData extends Job {

	String filePath; 
	String originalFilename; 
	String id; 
	int[] thumbnailSizes;

// Path: src/main/java/technology/tabula/tabula_web/extractor/PagesInfoExtractor.java
// public class PagesInfoExtractor {
// 
// 	@SuppressWarnings("Convert2Diamond")
//     public static List<DocumentPage> pagesInfo(String pdfPath) throws IOException {
// 		PDDocument document = Utils.openPDF(pdfPath);
// 		ObjectExtractor extractor = new ObjectExtractor(document);
// 		
// 		ArrayList<DocumentPage> rv = new ArrayList<DocumentPage>(); 
// 		
// 		PageIterator it = extractor.extract();
// 		Page p;
// 		while (it.hasNext()) {
// 			p = it.next();
// 			rv.add(new DocumentPage(p.getWidth(), p.getHeight(), p.getPageNumber(), p.getRotation(), p.hasText()));
// 		}
// 
// 		extractor.close();
// 		
// 		return rv;
// 	}
// }
// 
// Path: src/main/java/technology/tabula/tabula_web/workspace/DocumentPage.java
// public class DocumentPage {
// 
// 	public double width;
// 	public double height;
// 	public int number;
// 	public int rotation;
// 	public boolean hasText;
// 	
// 	public DocumentPage(double width, double height, int number, int rotation, boolean hasText) {
// 		this.width = width;
// 		this.height = height;
// 		this.number = number;
// 		this.rotation = rotation;
// 		this.hasText = hasText;
// 	}
// }
// 
// Path: src/main/java/technology/tabula/tabula_web/workspace/WorkspaceDAO.java
// public interface WorkspaceDAO {
// 	
// 	Workspace getWorkspace() throws WorkspaceException;
// 
// 	void addDocument(WorkspaceDocument we, List<DocumentPage> pages) throws WorkspaceException;
// 
// 	void deleteDocument(String documentId) throws WorkspaceException;
// 
// 	WorkspaceDocument getDocumentMetadata(String documentId) throws WorkspaceException;
// 
// 	List<DocumentPage> getDocumentPages(String documentId) throws WorkspaceException;
// 
// 	String getDocumentPath(String documentId);
// 	
// 	String getDocumentDir(String documentId);
// 
// 	String getDataDir();
// 	
// 	void addFile(InputStream stream, String documentId, String filename) throws WorkspaceException;
// 
// }
// 
// Path: src/main/java/technology/tabula/tabula_web/workspace/WorkspaceDocument.java
// public class WorkspaceDocument {
// 	  public String original_filename;
// 	  public String id;
// 	  public String time;
// 	  public int page_count;
// 	  public long size;
// 	  public int[] thumbnail_sizes;
// 	
// 	  
// 	  public WorkspaceDocument(String original_filename, String id, String time, int page_count, long size,
// 							   int[] thumbnail_sizes) {
// 		this.original_filename = original_filename;
// 		this.id = id;
// 		this.time = time;
// 		this.page_count = page_count;
// 		this.size = size;
// 		this.thumbnail_sizes = thumbnail_sizes.clone();
// 	}
// 	  
// 	  
// 	  
// }


// Path: src/main/java/technology/tabula/tabula_web/background/job/GenerateDocumentData.java
import java.io.File;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.List;
import java.util.UUID;
import technology.tabula.tabula_web.extractor.PagesInfoExtractor;
import technology.tabula.tabula_web.workspace.DocumentPage;
import technology.tabula.tabula_web.workspace.WorkspaceDAO;
import technology.tabula.tabula_web.workspace.WorkspaceDocument;

package technology.tabula.tabula_web.background.job;



public class GenerateDocumentData extends Job {

	String filePath; 
	String originalFilename; 
	String id; 
	int[] thumbnailSizes;

	private WorkspaceDAO workspaceDAO;