Skip to content

Commit 4643160

Browse files
committed
validator-plugin-cnig - refactor code removing cnig_document_validator
1 parent 249d639 commit 4643160

File tree

46 files changed

+315
-645
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+315
-645
lines changed

validator-core/src/main/java/fr/ign/validator/process/MetadataPreProcess.java

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,25 @@ public void beforeMatching(Context context, Document document) throws Exception
4242
*/
4343
@Override
4444
public void beforeValidate(Context context, Document document) throws Exception {
45+
/*
46+
* Find first metadata file
47+
*/
48+
log.info(MARKER, "Locate metadata files...");
49+
List<DocumentFile> metadataFiles = document.getDocumentFiles(MetadataModel.class);
50+
if ( metadataFiles.isEmpty() ){
51+
// already reported if metadata is expected
52+
log.warn(MARKER, "Metadata file not found");
53+
return;
54+
}
55+
if ( metadataFiles.size() > 1 ){
56+
context
57+
.report(context.createError(CoreErrorCodes.METADATA_MULTIPLE_FILES)
58+
.setMessageParam("FILENAME_LIST", formatFiles(context,metadataFiles))
59+
);
60+
}
61+
File metadataFile = metadataFiles.get(0).getPath() ;
4562
log.info(MARKER, "Search data charset in metadata files...");
46-
Charset charset = readCharsetFromMetadata(context, document);
63+
Charset charset = readCharsetFromMetadata(context,metadataFile);
4764
if ( null == charset ){
4865
log.warn(MARKER, "Charset not found in metadata files!");
4966
}else{
@@ -58,18 +75,7 @@ public void beforeValidate(Context context, Document document) throws Exception
5875
* @param document
5976
* @return
6077
*/
61-
private Charset readCharsetFromMetadata(Context context, Document document) {
62-
List<DocumentFile> metadataFiles = document.getDocumentFiles(MetadataModel.class);
63-
if ( metadataFiles.isEmpty() ){
64-
return null;
65-
}
66-
if ( metadataFiles.size() > 1 ){
67-
context.report(context.createError(CoreErrorCodes.METADATA_MULTIPLE_FILES)
68-
.setMessageParam("FILENAME_LIST", formatFiles(context,metadataFiles))
69-
);
70-
}
71-
72-
File metadataFile = metadataFiles.get(0).getPath() ;
78+
private Charset readCharsetFromMetadata(Context context, File metadataFile) {
7379
try {
7480
Metadata reader = MetadataISO19115.readFile(metadataFile);
7581
CharacterSetCode characterSet = reader.getCharacterSet();

validator-plugin-cnig/src/main/java/fr/ign/validator/cnig/command/CnigDocumentValidatorCommand.java

Lines changed: 0 additions & 111 deletions
This file was deleted.

validator-plugin-cnig/src/main/java/fr/ign/validator/cnig/command/CnigExtractIdgestCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import org.apache.commons.io.FileUtils;
1010
import org.apache.commons.lang.StringUtils;
1111

12-
import fr.ign.validator.cnig.utils.IdgestExtractor;
12+
import fr.ign.validator.cnig.process.internal.IdgestExtractor;
1313
import fr.ign.validator.command.AbstractCommand;
1414

1515

validator-plugin-cnig/src/main/java/fr/ign/validator/cnig/idurba/IdurbaHelperFactory.java

Lines changed: 0 additions & 31 deletions
This file was deleted.

validator-plugin-cnig/src/main/java/fr/ign/validator/cnig/utils/DocumentModelNameUtils.java renamed to validator-plugin-cnig/src/main/java/fr/ign/validator/cnig/model/DocumentModelName.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package fr.ign.validator.cnig.utils;
1+
package fr.ign.validator.cnig.model;
22

33
/**
44
*
@@ -9,8 +9,10 @@
99
* @author MBorne
1010
*
1111
*/
12-
public class DocumentModelNameUtils {
12+
public class DocumentModelName {
1313

14+
private static final String REGEXP_YYYY = "[0-9]{4}";
15+
1416
/**
1517
* Test if document model is a CNIG standard
1618
* @param documentModelName
@@ -44,7 +46,7 @@ public static String getVersion(String documentModelName){
4446
}
4547
String[] parts = documentModelName.split("_");
4648
String candidate = parts[parts.length - 1];
47-
if ( ! candidate.matches("[0-9]{4}") ){
49+
if ( ! candidate.matches(REGEXP_YYYY) ){
4850
return null;
4951
}
5052
return candidate;
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package fr.ign.validator.cnig.utils;
1+
package fr.ign.validator.cnig.model;
22

33
/**
44
*
@@ -7,14 +7,14 @@
77
* @author MBorne
88
*
99
*/
10-
public class DocumentNameHelper {
10+
public class DocumentName {
1111

1212
public static final String REGEXP_YYYYMMDD = "[0-9]{8}" ;
1313

14-
public static final String REGEXP_DU_TERRITOIRE = "("+InseeUtils.REGEXP_COMMUNE+"|"+SirenUtils.REGEXP_SIREN+")" ;
14+
public static final String REGEXP_DU_TERRITOIRE = "("+MunicipalityCode.REGEXP+"|"+SirenCode.REGEXP+")" ;
1515
public static final String REGEXP_DU_TYPE = "(PLU|PLUi|POS|CC|PSMV)" ;
1616
public static final String REGEXP_DU_CODE = "[A-Z]";
1717

18-
public static final String REGEXP_DU = REGEXP_DU_TERRITOIRE + "_" + REGEXP_DU_TYPE + "_" + DocumentNameHelper.REGEXP_YYYYMMDD+ "(_"+REGEXP_DU_CODE+")?" ;
19-
18+
public static final String REGEXP_DU = REGEXP_DU_TERRITOIRE + "_" + REGEXP_DU_TYPE + "_" + DocumentName.REGEXP_YYYYMMDD+ "(_"+REGEXP_DU_CODE+")?" ;
19+
2020
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package fr.ign.validator.cnig.model;
2+
3+
public enum DocumentType {
4+
PLU,
5+
POS,
6+
CC,
7+
PLUi,
8+
PSMV,
9+
10+
SUP,
11+
12+
SCoT
13+
}

validator-plugin-cnig/src/main/java/fr/ign/validator/cnig/utils/SpecificationUtils.java renamed to validator-plugin-cnig/src/main/java/fr/ign/validator/cnig/model/MetadataSpecification.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package fr.ign.validator.cnig.utils;
1+
package fr.ign.validator.cnig.model;
22

33
import org.apache.commons.lang.StringUtils;
44

@@ -10,7 +10,7 @@
1010
* @author MBorne
1111
*
1212
*/
13-
public class SpecificationUtils {
13+
public class MetadataSpecification {
1414

1515
private static final String CNIG_SPECIFICATION_REGEXP = "(?i)CNIG\\s(CC|POS|PLU|PLUi|PSMV|SUP)\\sv\\d{4}";
1616

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package fr.ign.validator.cnig.model;
2+
3+
/**
4+
*
5+
* Validates insee codes
6+
*
7+
* @author MBorne
8+
*
9+
*/
10+
public class MunicipalityCode {
11+
public static final String REGEXP = "(2[AB][0-9]{3}|[0-9]{5})" ;
12+
13+
/**
14+
* Validates a municipality code
15+
*
16+
* @param insee
17+
* @return
18+
*/
19+
public static boolean isValidCommune(String insee){
20+
if ( null == insee ){
21+
return false ;
22+
}
23+
return insee.matches(REGEXP) ;
24+
}
25+
26+
}
27+
28+

validator-plugin-cnig/src/main/java/fr/ign/validator/cnig/utils/SirenUtils.java renamed to validator-plugin-cnig/src/main/java/fr/ign/validator/cnig/model/SirenCode.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package fr.ign.validator.cnig.utils;
1+
package fr.ign.validator.cnig.model;
22

33
/**
44
*
@@ -9,9 +9,9 @@
99
* @author MBorne
1010
*
1111
*/
12-
public class SirenUtils {
12+
public class SirenCode {
1313

14-
public static final String REGEXP_SIREN = "[0-9]{9}" ;
14+
public static final String REGEXP = "[0-9]{9}" ;
1515

1616
/**
1717
* Indicates if given parameter is a valid SIREN code
@@ -23,7 +23,7 @@ public static boolean isValid(String siren){
2323
if ( null == siren ){
2424
return false ;
2525
}
26-
return siren.matches(REGEXP_SIREN) ;
26+
return siren.matches(REGEXP) ;
2727
}
28-
28+
2929
}

0 commit comments

Comments
 (0)