+++ /dev/null
-/*\r
- * To change this template, choose Tools | Templates\r
- * and open the template in the editor.\r
- */\r
-package com.axyus.signature.pes.verifier;\r
-\r
-import com.axyus.signature.pes.verifier.SimplePesInformation.BordereauInfo;\r
-import com.axyus.signature.pes.verifier.XMLDsigSignatureAndReferencesProcessor.XMLDsigReference;\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-import java.util.Map;\r
-import java.util.Map.Entry;\r
-import org.w3c.dom.Element;\r
-\r
-/**\r
- *\r
- * @author stephane.melois\r
- */\r
-public class SignatureTypeCalculator {\r
-\r
- private SimplePesInformation simplePesInformation;\r
- private Map<Element, SignatureVerifierResult> signatureVerifierResultMap;\r
- private boolean bordereauNonSigne = false;\r
- private boolean bordereauSigne = false;\r
- private List<String> listeBordereauxNonSignes;\r
- private boolean signatureGlobalePresente = false;\r
-\r
- public SignatureTypeCalculator(SimplePesInformation simplePesInformation, Map<Element, SignatureVerifierResult> signatureVerifierResultMap) {\r
- this.simplePesInformation = simplePesInformation;\r
- this.signatureVerifierResultMap = signatureVerifierResultMap;\r
- }\r
-\r
- public String process(Element signature) {\r
- GeneralSignaturePesData generalSignaturePesData = getSimplePesInformation().getEntetePesInfo().getGeneralSignaturePesData();\r
- List<BordereauInfo> bordereauxList = getSimplePesInformation().getBordereaux();\r
-\r
- SignatureVerifierResult signatureVerifierResult = getSignatureVerifierResultMap().get(signature);\r
- if(signatureVerifierResult.getUnverifiableSignatureException()!=null){\r
- return "Signature invalide";\r
- }\r
- for (XMLDsigReference reference : signatureVerifierResult.getSignatureAndRefsVerificationResult().getReferencesInfo()) {\r
- String uri = reference.getReference().getElement().getAttribute("URI");\r
- uri = (uri != null && !uri.equals("") && uri.startsWith("#") ? uri.substring(1) : uri);\r
- if ((generalSignaturePesData.getIdPesAller() != null && generalSignaturePesData.getIdPesAller().equals(uri)) || "".equals(uri)) {\r
- if (getSignatureVerifierResultMap().size() == 1) {\r
- if (generalSignaturePesData.isEnteteRecetteValue() || generalSignaturePesData.isEnteteDepenseValue()) {\r
- setSignatureGlobalePresente(true);\r
- return "Signature Métier Globale ";\r
- }\r
- if (generalSignaturePesData.isNotEnteteRecetteValue() || generalSignaturePesData.isNotEnteteDepenseValue()) {\r
- setSignatureGlobalePresente(true);\r
- return "Signature Technique Globale ";\r
- }\r
- } else {\r
- setSignatureGlobalePresente(true);\r
- return "Signature Technique Globale ";\r
- }\r
- }\r
- for (BordereauInfo bordereaux : bordereauxList) {\r
- if ((bordereaux.getXmlId() != null && !bordereaux.getXmlId().equals("") && bordereaux.getXmlId().equals(uri)) || (bordereaux.getBordereauXmlId() != null && !bordereaux.getBordereauXmlId().equals("") && bordereaux.getBordereauXmlId().equals(uri))) {\r
- if (generalSignaturePesData.isEnteteRecetteValue() || generalSignaturePesData.isEnteteDepenseValue()) {\r
- return new StringBuilder("Signature de Bordereaux ").append(bordereauSigne && bordereauNonSigne ? "(attention certains bordereaux ne sont pas signés) " : "").toString();\r
- }\r
- if (generalSignaturePesData.isNotEnteteRecetteValue()|| generalSignaturePesData.isNotEnteteDepenseValue()) {\r
- return new StringBuilder("Signature de Bordereaux (attention flag InfoDematerialisee = 0")\r
- .append(bordereauSigne && bordereauNonSigne ? "attention certains bordereaux ne sont pas signés) " : ")").toString();\r
- }\r
- break;\r
- }\r
- }\r
- }\r
- return "Signature de type indéfini";\r
- }\r
-\r
- public void verifAllBordereauxSigned() {\r
- GeneralSignaturePesData generalSignaturePesData = getSimplePesInformation().getEntetePesInfo().getGeneralSignaturePesData();\r
- List<BordereauInfo> bordereauxList = getSimplePesInformation().getBordereaux();\r
- Entry[] tab = new Entry[bordereauxList.size()];\r
- for (int i = 0; i < bordereauxList.size(); i++) {\r
- BordereauInfo bordereaux = bordereauxList.get(i);\r
- for (Entry<Element, SignatureVerifierResult> entry : getSignatureVerifierResultMap().entrySet()) {\r
- if(entry.getValue().getUnverifiableSignatureException() == null){\r
- for (XMLDsigReference reference : entry.getValue().getSignatureAndRefsVerificationResult().getReferencesInfo()) {\r
- String uri = reference.getReference().getElement().getAttribute("URI");\r
- uri = (uri != null && !uri.equals("") && uri.startsWith("#") ? uri.substring(1) : uri);\r
- if ((bordereaux.getXmlId() != null && !bordereaux.getXmlId().equals("") && bordereaux.getXmlId().equals(uri)) || (bordereaux.getBordereauXmlId() != null && !bordereaux.getBordereauXmlId().equals("") && bordereaux.getBordereauXmlId().equals(uri))) {\r
- tab[i] = entry;\r
- }\r
- }\r
- }\r
-\r
- }\r
- }\r
- for (int j = 0; j < tab.length; j++) {\r
- if (tab[j] == null) {\r
- if (getListeBordereauxNonSignes() == null) {\r
- listeBordereauxNonSignes = new ArrayList<String>();\r
- }\r
- String foundId = bordereauxList.get(j).getId();\r
- if (foundId == null || foundId.isEmpty()) {\r
- foundId = bordereauxList.get(j).getBordereauXmlId();\r
- }\r
- if (foundId == null || foundId.isEmpty()) {\r
- foundId = " en position " + (j + 1) + " (pas d'identifiant)";\r
- }\r
-\r
- getListeBordereauxNonSignes().add(foundId);\r
- bordereauNonSigne = true;\r
- } else {\r
- bordereauSigne = true;\r
- }\r
- }\r
- }\r
-\r
- /**\r
- * @return the listeBordereauxNonSignes\r
- */\r
- public List<String> getListeBordereauxNonSignes() {\r
- return listeBordereauxNonSignes;\r
- }\r
-\r
- /**\r
- * @return the signatureGlobalePresente\r
- */\r
- public boolean isSignatureGlobalePresente() {\r
- return signatureGlobalePresente;\r
- }\r
-\r
- /**\r
- * @param signatureGlobalePresente the signatureGlobalePresente to set\r
- */\r
- public void setSignatureGlobalePresente(boolean signatureGlobalePresente) {\r
- this.signatureGlobalePresente = signatureGlobalePresente;\r
- }\r
-\r
- public static class SignatureAnexInfo {\r
-\r
- private String typeSignature;\r
-\r
- public SignatureAnexInfo(String typeSignature) {\r
- this.typeSignature = typeSignature;\r
- }\r
-\r
- /**\r
- * @return the typeSignature\r
- */\r
- public String getTypeSignature() {\r
- return typeSignature;\r
- }\r
-\r
- /**\r
- * @param typeSignature the typeSignature to set\r
- */\r
- public void setTypeSignature(String typeSignature) {\r
- this.typeSignature = typeSignature;\r
- }\r
- }\r
-\r
- /**\r
- * @return the simplePesInformation\r
- */\r
- public SimplePesInformation getSimplePesInformation() {\r
- return simplePesInformation;\r
- }\r
-\r
- /**\r
- * @param simplePesInformation the simplePesInformation to set\r
- */\r
- public void setSimplePesInformation(SimplePesInformation simplePesInformation) {\r
- this.simplePesInformation = simplePesInformation;\r
- }\r
-\r
- /**\r
- * @return the signatureVerifierResultMap\r
- */\r
- public Map<Element, SignatureVerifierResult> getSignatureVerifierResultMap() {\r
- return signatureVerifierResultMap;\r
- }\r
-\r
- /**\r
- * @param signatureVerifierResultMap the signatureVerifierResultMap to set\r
- */\r
- public void setSignatureVerifierResultMap(Map<Element, SignatureVerifierResult> signatureVerifierResultMap) {\r
- this.signatureVerifierResultMap = signatureVerifierResultMap;\r
- }\r
-\r
- /**\r
- * @return the bordereauSigne\r
- */\r
- public boolean isBordereauSigne() {\r
- return bordereauSigne;\r
- }\r
-\r
- /**\r
- * @param bordereauSigne the bordereauSigne to set\r
- */\r
- public void setBordereauSigne(boolean bordereauSigne) {\r
- this.bordereauSigne = bordereauSigne;\r
- }\r
-\r
- /**\r
- * @return the bordereauNonSigne\r
- */\r
- public boolean isBordereauNonSigne() {\r
- return bordereauNonSigne;\r
- }\r
-\r
- /**\r
- * @param bordereauNonSigne the bordereauNonSigne to set\r
- */\r
- public void setBordereauNonSigne(boolean bordereauNonSigne) {\r
- this.bordereauNonSigne = bordereauNonSigne;\r
- }\r
-}\r