Skip to content

Commit 4ad41f9

Browse files
committed
Added doc(x) and xls(x) validators
1 parent aa84794 commit 4ad41f9

File tree

9 files changed

+208
-0
lines changed

9 files changed

+208
-0
lines changed

fj-doc-val/pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,12 @@
4747
<artifactId>poi-ooxml</artifactId>
4848
</dependency>
4949

50+
<dependency>
51+
<groupId>org.apache.poi</groupId>
52+
<artifactId>poi-scratchpad</artifactId>
53+
<version>${poi-version}</version>
54+
</dependency>
55+
5056
</dependencies>
5157

5258
<organization>
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package org.fugerit.java.doc.val.poi;
2+
3+
import java.io.InputStream;
4+
5+
import org.apache.poi.hwpf.HWPFDocument;
6+
import org.fugerit.java.doc.val.core.DocTypeValidationResult;
7+
import org.fugerit.java.doc.val.core.DocTypeValidator;
8+
import org.fugerit.java.doc.val.core.basic.AbstractDocTypeValidator;
9+
import org.slf4j.Logger;
10+
import org.slf4j.LoggerFactory;
11+
12+
public class DocValidator extends AbstractDocTypeValidator {
13+
14+
private static final Logger logger = LoggerFactory.getLogger( DocValidator.class );
15+
16+
public static final String EXTENSION = "DOC";
17+
18+
public static final String MIME_TYPE = "application/msword";
19+
20+
public static final DocTypeValidator DEFAULT = new DocValidator();
21+
22+
public DocValidator() {
23+
super( MIME_TYPE, EXTENSION );
24+
}
25+
26+
@Override
27+
public DocTypeValidationResult validate(InputStream is) {
28+
DocTypeValidationResult result = DocTypeValidationResult.newFail();
29+
try ( HWPFDocument workbook = new HWPFDocument( is ) ) {
30+
result = DocTypeValidationResult.newOk();
31+
} catch (Exception e) {
32+
logger.warn( "Failed check on pdf : "+e );
33+
}
34+
return result;
35+
}
36+
37+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package org.fugerit.java.doc.val.poi;
2+
3+
import java.io.InputStream;
4+
5+
import org.apache.poi.xwpf.usermodel.XWPFDocument;
6+
import org.fugerit.java.doc.val.core.DocTypeValidationResult;
7+
import org.fugerit.java.doc.val.core.DocTypeValidator;
8+
import org.fugerit.java.doc.val.core.basic.AbstractDocTypeValidator;
9+
import org.slf4j.Logger;
10+
import org.slf4j.LoggerFactory;
11+
12+
public class DocxValidator extends AbstractDocTypeValidator {
13+
14+
private static final Logger logger = LoggerFactory.getLogger( DocxValidator.class );
15+
16+
public static final String EXTENSION = "DOCX";
17+
18+
public static final String MIME_TYPE = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
19+
20+
public static final DocTypeValidator DEFAULT = new DocxValidator();
21+
22+
public DocxValidator() {
23+
super( MIME_TYPE, EXTENSION );
24+
}
25+
26+
@Override
27+
public DocTypeValidationResult validate(InputStream is) {
28+
DocTypeValidationResult result = DocTypeValidationResult.newFail();
29+
try ( XWPFDocument workbook = new XWPFDocument( is ) ) {
30+
result = DocTypeValidationResult.newOk();
31+
} catch (Exception e) {
32+
logger.warn( "Failed check on pdf : "+e );
33+
}
34+
return result;
35+
}
36+
37+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package org.fugerit.java.doc.val.poi;
2+
3+
import java.io.InputStream;
4+
5+
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
6+
import org.fugerit.java.doc.val.core.DocTypeValidationResult;
7+
import org.fugerit.java.doc.val.core.DocTypeValidator;
8+
import org.fugerit.java.doc.val.core.basic.AbstractDocTypeValidator;
9+
import org.slf4j.Logger;
10+
import org.slf4j.LoggerFactory;
11+
12+
public class XlsValidator extends AbstractDocTypeValidator {
13+
14+
private static final Logger logger = LoggerFactory.getLogger( XlsValidator.class );
15+
16+
public static final String EXTENSION = "XLS";
17+
18+
public static final String MIME_TYPE = "application/vnd.ms-excel";
19+
20+
public static final DocTypeValidator DEFAULT = new XlsValidator();
21+
22+
public XlsValidator() {
23+
super( MIME_TYPE, EXTENSION );
24+
}
25+
26+
@Override
27+
public DocTypeValidationResult validate(InputStream is) {
28+
DocTypeValidationResult result = DocTypeValidationResult.newFail();
29+
try ( HSSFWorkbook workbook = new HSSFWorkbook( is ) ) {
30+
result = DocTypeValidationResult.newOk();
31+
} catch (Exception e) {
32+
logger.warn( "Failed check on pdf : "+e );
33+
}
34+
return result;
35+
}
36+
37+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package org.fugerit.java.doc.val.poi;
2+
3+
import java.io.InputStream;
4+
5+
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
6+
import org.fugerit.java.doc.val.core.DocTypeValidationResult;
7+
import org.fugerit.java.doc.val.core.DocTypeValidator;
8+
import org.fugerit.java.doc.val.core.basic.AbstractDocTypeValidator;
9+
import org.slf4j.Logger;
10+
import org.slf4j.LoggerFactory;
11+
12+
public class XlsxValidator extends AbstractDocTypeValidator {
13+
14+
private static final Logger logger = LoggerFactory.getLogger( XlsxValidator.class );
15+
16+
public static final String EXTENSION = "XLSX";
17+
18+
public static final String MIME_TYPE = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
19+
20+
public static final DocTypeValidator DEFAULT = new XlsxValidator();
21+
22+
public XlsxValidator() {
23+
super( MIME_TYPE, EXTENSION );
24+
}
25+
26+
@Override
27+
public DocTypeValidationResult validate(InputStream is) {
28+
DocTypeValidationResult result = DocTypeValidationResult.newFail();
29+
try ( XSSFWorkbook workbook = new XSSFWorkbook( is ) ) {
30+
result = DocTypeValidationResult.newOk();
31+
} catch (Exception e) {
32+
logger.warn( "Failed check on pdf : "+e );
33+
}
34+
return result;
35+
}
36+
37+
}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package test.org.fugerit.java.doc.val;
2+
3+
import org.fugerit.java.doc.val.core.DocValidatorFacade;
4+
import org.fugerit.java.doc.val.poi.DocValidator;
5+
import org.fugerit.java.doc.val.poi.DocxValidator;
6+
import org.fugerit.java.doc.val.poi.XlsValidator;
7+
import org.fugerit.java.doc.val.poi.XlsxValidator;
8+
import org.junit.Test;
9+
10+
public class TestPoiValidator extends TestDocValidatorFacade {
11+
12+
private static final DocValidatorFacade FACADE = DocValidatorFacade.newFacadeStrict(
13+
DocxValidator.DEFAULT,
14+
DocValidator.DEFAULT,
15+
XlsxValidator.DEFAULT,
16+
XlsValidator.DEFAULT
17+
);
18+
19+
@Test
20+
public void testDocAsDoc() {
21+
this.worker(FACADE, "doc_as_doc.doc", true );
22+
}
23+
24+
@Test
25+
public void testDocxAsDocx() {
26+
this.worker(FACADE, "docx_as_docx.docx", true );
27+
}
28+
29+
@Test
30+
public void testXlsAsXls() {
31+
this.worker(FACADE, "xls_as_xls.xls", true );
32+
}
33+
34+
@Test
35+
public void testXlsxAsXlsx() {
36+
this.worker(FACADE, "xlsx_as_xlsx.xlsx", true );
37+
}
38+
39+
@Test
40+
public void testDocxAsDoc() {
41+
this.worker(FACADE, "docx_as_doc.doc", false );
42+
}
43+
44+
@Test
45+
public void testJpgAsXlsx() {
46+
this.worker(FACADE, "jpg_as_xlsx.xlsx", false );
47+
}
48+
49+
@Test
50+
public void testXlsxAsXls() {
51+
this.worker(FACADE, "xlsx_as_xls.xls", false );
52+
}
53+
54+
}
11.5 KB
Binary file not shown.
6.88 KB
Binary file not shown.
7.91 KB
Binary file not shown.

0 commit comments

Comments
 (0)