*/
package fr.gouv.finances.dgfip.xemelios.controls.core;
-import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Hashtable;
import fr.gouv.finances.dgfip.xemelios.controls.core.models.DocumentControlModel;
/**
- * public Anomalie(String idAnomalie,String controleID,String
- * controleLibelle,String docID,String etatID,String elementID,String
- * elementLibelle,String message,String regle,String severity,XPath
- * xPathNameSpacise,Vector<String> xslParams)
+ * public Anomalie(String idAnomalie,String controleID,String controleLibelle,String docID,String etatID,String elementID,String elementLibelle,String
+ * message,String regle,String severity,XPath xPathNameSpacise,Vector<String> xslParams)
*
* @param idObject
* @param controleID
*/
public class Anomalie extends ControlReturn implements Comparable<Anomalie> {
- public static final String ANOMALY_NS_URI = "http://projets.admisource.gouv.fr/xemelios/namespaces#anomally";
- private final static Logger logger = Logger.getLogger(Anomalie.class);
- private String controleID, // id du controle
- controleLibelle, // libelle du controle (dans le fichier de config).A recuperer par l'intermediaire du DocumentControlModel
- documentID, // id du document importé. A recuperer par l'intermediaire du DocumentControlModel
- etatID, // id de l'etat sur lequel porte l'anomalie.
- elementImportable, // balise (element importable)
- idElementImportable,// numéro de l'element importable sur lequel l'anomalie porte (obligatoire)
- elementEnAnomalie, // le localName (nom de la balise xml au moment de la creation de l'ano) du startElement
- libelleLien, // libelle du lien afficher pour l'anomalie dans l'affichage du rapport
- message, // message du controle.A recuperer par l'intermediaire du DocumentControlModel
- idMessage,
- regle, // règle du controle.A recuperer par l'intermediaire du DocumentControlModel
- severity, // severity du controle.A recuperer par l'intermediaire du DocumentControlModel
- severityHelios, // severity du message
- xPath; // xpath car une fois importer il faut pointer sur les éléments
- private Hashtable<String, Object> xslParams; // Hashtable< id du paramètre , valeur du paramètre >
- private ArrayList<Node> nodes;
- private boolean visible = true;
- private String tableReferenceUrl = null;
- private String tableReferenceResource = null;
- private String documentationControle = null;
-
- public Anomalie(String idAnomalie, String controleID,
- String controleLibelle, String docID, String etatID,
- String elementImportable, String idElementImportable,
- String elementEnAnomalie, String libelleLien, String message,
- String regle, String severity, String xPath,
- Hashtable<String, Object> xslParams) {
- setIdObject(idAnomalie);
- this.controleID = controleID;
- this.controleLibelle = controleLibelle;
- this.documentID = docID;
- this.etatID = etatID;
- this.elementImportable = elementImportable;
- this.idElementImportable = idElementImportable;
- this.elementEnAnomalie = elementEnAnomalie;
- this.libelleLien = libelleLien;
- this.message = message;
- this.regle = regle;
- this.severity = severity;
- this.xPath = xPath;
- this.xslParams = xslParams;
- this.nodes = new ArrayList<Node>();
- }
-
- /**
- *
- * @param idAnomalie
- * @param ctrl
- * @param docID
- * @param etatID
- * @param elementImportable
- * @param idElementImportable
- * @param elementEnAnomalie
- * @param libelleLien
- * @param message
- * @param regle
- * @param severity
- * @param xPath
- * @param xslParams
- */
- public Anomalie(String idAnomalie, ControlModel ctrl, String docID,
- String etatID, String elementImportable,
- String idElementImportable, String elementEnAnomalie,
- String libelleLien, String message, String regle, String severity,
- String xPath, Hashtable<String, Object> xslParams) {
- setIdObject(idAnomalie);
- this.controleID = ctrl.getId();
- this.controleLibelle = ctrl.getLibelle();
- this.documentID = docID;
- this.etatID = etatID;
- this.elementImportable = elementImportable;
- this.idElementImportable = idElementImportable;
- this.elementEnAnomalie = elementEnAnomalie;
- this.libelleLien = libelleLien;
- this.message = message;
- this.regle = regle;
- this.severity = severity;
- this.xPath = xPath;
- this.xslParams = xslParams;
- this.nodes = new ArrayList<Node>();
- }
-
- public Anomalie(DocumentControlModel documentControleModel, String ctrlId) {
- setIdObject(IdGenerator.nextId());
- this.controleID = documentControleModel.getControlById(ctrlId).getId();
- this.controleLibelle = documentControleModel.getControlById(ctrlId).getLibelle();
- this.documentID = documentControleModel.getDocumentId();
- if (documentControleModel.getControlById(ctrlId).getRegle() != null){
- this.regle = documentControleModel.getControlById(ctrlId).getRegle().getHtmlContent();
- }
- else {
- this.regle = "";
- }
- this.severity = documentControleModel.getControlById(ctrlId).getSeverity();
- this.nodes = new ArrayList<Node>();
- this.tableReferenceUrl = documentControleModel.getControlById(ctrlId).getTableReferenceUrl();
- this.tableReferenceResource = documentControleModel.getControlById(ctrlId).getTableReferenceResource();
- this.documentationControle = documentControleModel.getControlById(ctrlId).getUrlDocumentation();
- }
-
- private String setTableReference(DocumentControlModel dcm, String ctrlId) {
- return dcm.getControlById(ctrlId).getTableReferenceUrl();
- }
-
- private String setDocumentationControle(DocumentControlModel dcm, String ctrlId) {
- return dcm.getControlById(ctrlId).getUrlDocumentation();
- }
-
- public void addNode(Node node) {
- if (node.getId() == null) {
- throw (new RuntimeException("Identifiant du noeud de l'anomalie à null " + this.controleID + " " + this.getIdMessage()));
- } else {
- nodes.add(node);
- }
- }
-
- public void addNode(String nodeId) {
- nodes.add(new Node(nodeId));
- }
-
- public void addNode(String nodeId, String tag) {
- nodes.add(new Node(nodeId, tag));
- }
-
- public void addAll(Collection<Node> node) {
- this.nodes.addAll(node);
- }
-
- @Override
- public String getSeverity() {
- return severity;
- }
-
- public String getSeverityHelios() {
- return severityHelios;
- }
-
- @Override
- public ArrayList<Node> getNodes() {
- return nodes;
- }
-
- @Override
- public String getControleID() {
- return controleID;
- }
-
- public void setControleID(String controleID) {
- this.controleID = controleID;
- }
-
- @Override
- public String getControleLibelle() {
- return controleLibelle;
- }
-
- public void setControleLibelle(String controleLibelle) {
- this.controleLibelle = controleLibelle;
- }
-
- public String getDocumentID() {
- return documentID;
- }
-
- public void setDocumentID(String documentID) {
- this.documentID = documentID;
- }
-
- public String getelementImportable() {
- return elementImportable;
- }
-
- private String getTableReferenceUrl() {
- return this.tableReferenceUrl;
- }
-
- private String getTableReferenceResource() {
- return this.tableReferenceResource;
- }
-
- private String getDocumentationControle() {
- return this.documentationControle;
- }
-
- public void setelementImportable(String elementImportable) {
- this.elementImportable = elementImportable;
- }
-
- public String getelementEnAnomalie() {
- return elementEnAnomalie;
- }
-
- public void setelementEnAnomalie(String elementEnAnomalie) {
- this.elementEnAnomalie = elementEnAnomalie;
- }
-
- public String getEtatID() {
- return etatID;
- }
-
- public void setEtatID(String etatID) {
- this.etatID = etatID;
- }
-
- @Override
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-
-
- public String getIdMessage() {
- return idMessage;
- }
-
- public void setIdMessage(String idMessage) {
+ public static final String ANOMALY_NS_URI = "http://projets.admisource.gouv.fr/xemelios/namespaces#anomally";
+ private final static Logger logger = Logger.getLogger(Anomalie.class);
+ private String controleID, // id du controle
+ controleLibelle, // libelle du controle (dans le fichier de config).A recuperer par l'intermediaire du DocumentControlModel
+ documentID, // id du document importé. A recuperer par l'intermediaire du DocumentControlModel
+ etatID, // id de l'etat sur lequel porte l'anomalie.
+ elementImportable, // balise (element importable)
+ idElementImportable,// numéro de l'element importable sur lequel l'anomalie porte (obligatoire)
+ elementEnAnomalie, // le localName (nom de la balise xml au moment de la creation de l'ano) du startElement
+ libelleLien, // libelle du lien afficher pour l'anomalie dans l'affichage du rapport
+ message, // message du controle.A recuperer par l'intermediaire du DocumentControlModel
+ idMessage, regle, // règle du controle.A recuperer par l'intermediaire du DocumentControlModel
+ severity, // severity du controle.A recuperer par l'intermediaire du DocumentControlModel
+ severityHelios, // severity du message
+ xPath; // xpath car une fois importer il faut pointer sur les éléments
+ private Hashtable<String, Object> xslParams; // Hashtable< id du paramètre , valeur du paramètre >
+ private ArrayList<Node> nodes;
+ private boolean visible = true;
+ private String tableReferenceUrl = null;
+ private String tableReferenceResource = null;
+ private String documentationControle = null;
+
+ public Anomalie(final String idAnomalie, final String controleID, final String controleLibelle, final String docID, final String etatID, final String elementImportable, final String idElementImportable, final String elementEnAnomalie, final String libelleLien, final String message,
+ final String regle, final String severity, final String xPath, final Hashtable<String, Object> xslParams) {
+ this.setIdObject(idAnomalie);
+ this.controleID = controleID;
+ this.controleLibelle = controleLibelle;
+ this.documentID = docID;
+ this.etatID = etatID;
+ this.elementImportable = elementImportable;
+ this.idElementImportable = idElementImportable;
+ this.elementEnAnomalie = elementEnAnomalie;
+ this.libelleLien = libelleLien;
+ this.message = message;
+ this.regle = regle;
+ this.severity = severity;
+ this.xPath = xPath;
+ this.xslParams = xslParams;
+ this.nodes = new ArrayList<Node>();
+ }
+
+ /**
+ *
+ * @param idAnomalie
+ * @param ctrl
+ * @param docID
+ * @param etatID
+ * @param elementImportable
+ * @param idElementImportable
+ * @param elementEnAnomalie
+ * @param libelleLien
+ * @param message
+ * @param regle
+ * @param severity
+ * @param xPath
+ * @param xslParams
+ */
+ public Anomalie(final String idAnomalie, final ControlModel ctrl, final String docID, final String etatID, final String elementImportable, final String idElementImportable, final String elementEnAnomalie, final String libelleLien, final String message, final String regle, final String severity,
+ final String xPath, final Hashtable<String, Object> xslParams) {
+ this.setIdObject(idAnomalie);
+ this.controleID = ctrl.getId();
+ this.controleLibelle = ctrl.getLibelle();
+ this.documentID = docID;
+ this.etatID = etatID;
+ this.elementImportable = elementImportable;
+ this.idElementImportable = idElementImportable;
+ this.elementEnAnomalie = elementEnAnomalie;
+ this.libelleLien = libelleLien;
+ this.message = message;
+ this.regle = regle;
+ this.severity = severity;
+ this.xPath = xPath;
+ this.xslParams = xslParams;
+ this.nodes = new ArrayList<Node>();
+ }
+
+ public Anomalie(final DocumentControlModel documentControleModel, final String ctrlId) {
+ this.setIdObject(IdGenerator.nextId());
+ this.controleID = documentControleModel.getControlById(ctrlId).getId();
+ this.controleLibelle = documentControleModel.getControlById(ctrlId).getLibelle();
+ this.documentID = documentControleModel.getDocumentId();
+ if (documentControleModel.getControlById(ctrlId).getRegle() != null) {
+ this.regle = documentControleModel.getControlById(ctrlId).getRegle().getHtmlContent();
+ } else {
+ this.regle = "";
+ }
+ this.severity = documentControleModel.getControlById(ctrlId).getSeverity();
+ this.nodes = new ArrayList<Node>();
+ this.tableReferenceUrl = documentControleModel.getControlById(ctrlId).getTableReferenceUrl();
+ this.tableReferenceResource = documentControleModel.getControlById(ctrlId).getTableReferenceResource();
+ this.documentationControle = documentControleModel.getControlById(ctrlId).getUrlDocumentation();
+ }
+
+ private String setTableReference(final DocumentControlModel dcm, final String ctrlId) {
+ return dcm.getControlById(ctrlId).getTableReferenceUrl();
+ }
+
+ private String setDocumentationControle(final DocumentControlModel dcm, final String ctrlId) {
+ return dcm.getControlById(ctrlId).getUrlDocumentation();
+ }
+
+ public void addNode(final Node node) {
+ if (node.getId() == null) {
+ throw (new RuntimeException("Identifiant du noeud de l'anomalie à null " + this.controleID + " " + this.getIdMessage()));
+ } else {
+ this.nodes.add(node);
+ }
+ }
+
+ public void addNode(final String nodeId) {
+ this.nodes.add(new Node(nodeId));
+ }
+
+ public void addNode(final String nodeId, final String tag) {
+ this.nodes.add(new Node(nodeId, tag));
+ }
+
+ public void addAll(final Collection<Node> node) {
+ this.nodes.addAll(node);
+ }
+
+ @Override
+ public String getSeverity() {
+ return this.severity;
+ }
+
+ public String getSeverityHelios() {
+ return this.severityHelios;
+ }
+
+ @Override
+ public ArrayList<Node> getNodes() {
+ return this.nodes;
+ }
+
+ @Override
+ public String getControleID() {
+ return this.controleID;
+ }
+
+ public void setControleID(final String controleID) {
+ this.controleID = controleID;
+ }
+
+ @Override
+ public String getControleLibelle() {
+ return this.controleLibelle;
+ }
+
+ public void setControleLibelle(final String controleLibelle) {
+ this.controleLibelle = controleLibelle;
+ }
+
+ public String getDocumentID() {
+ return this.documentID;
+ }
+
+ public void setDocumentID(final String documentID) {
+ this.documentID = documentID;
+ }
+
+ public String getelementImportable() {
+ return this.elementImportable;
+ }
+
+ private String getTableReferenceUrl() {
+ return this.tableReferenceUrl;
+ }
+
+ private String getTableReferenceResource() {
+ return this.tableReferenceResource;
+ }
+
+ private String getDocumentationControle() {
+ return this.documentationControle;
+ }
+
+ public void setelementImportable(final String elementImportable) {
+ this.elementImportable = elementImportable;
+ }
+
+ public String getelementEnAnomalie() {
+ return this.elementEnAnomalie;
+ }
+
+ public void setelementEnAnomalie(final String elementEnAnomalie) {
+ this.elementEnAnomalie = elementEnAnomalie;
+ }
+
+ public String getEtatID() {
+ return this.etatID;
+ }
+
+ public void setEtatID(final String etatID) {
+ this.etatID = etatID;
+ }
+
+ @Override
+ public String getMessage() {
+ return this.message;
+ }
+
+ public void setMessage(final String message) {
+ this.message = message;
+ }
+
+ public String getIdMessage() {
+ return this.idMessage;
+ }
+
+ public void setIdMessage(final String idMessage) {
this.idMessage = idMessage;
}
- public void setFormatedMessage(String message, Object... args) {
- setMessage(String.format(message, args));
- }
-
- @Override
- public String getRegle() {
- if(regle!=null) {
- return regle;
- }
- return "Règle non définie";
- }
-
- public void setRegle(String regle) {
- this.regle = regle;
- }
-
- public String getXPath() {
- return xPath;
- }
-
- public void setxPath(String pathNameSpacise) {
- xPath = pathNameSpacise;
- }
-
- public Hashtable<String, Object> getXslParams() {
- return xslParams;
- }
-
- public void setXslParams(Hashtable<String, Object> xslParams) {
- this.xslParams = xslParams;
- }
-
- public void setSeverity(String severity) {
- this.severity = severity;
- }
-
- public void setSeverityHelios(String severity) {
- this.severityHelios = severity;
- }
-
- public String getElementEnAnomalie() {
- return elementEnAnomalie;
- }
-
- public void setElementEnAnomalie(String elementEnAnomalie) {
- this.elementEnAnomalie = elementEnAnomalie;
- }
-
- public String getElementImportable() {
- return elementImportable;
- }
-
- public void setElementImportable(String elementImportable) {
- this.elementImportable = elementImportable;
- }
-
- public String getIdElementImportable() {
- return idElementImportable;
- }
-
- public void setIdElementImportable(String idElementImportable) {
- this.idElementImportable = idElementImportable;
- }
-
- public String getLibelleLien() {
- return libelleLien;
- }
-
- public void setLibelleLien(String libelleLien) {
- this.libelleLien = libelleLien;
- }
-
- /**
- * @param other
- * other doit être de type Anomalie !
- */
- @Override
- public int compareTo(Anomalie other) {
- String id1 = ((Anomalie) other).getControleID();
- String id2 = this.getControleID();
-
- return id1.compareTo(id2);
- }
-
- @Override
- public boolean isVisible() {
- return visible;
- }
-
- public void setVisible(boolean visible) {
- this.visible = visible;
- }
-
- @Override
- public void marshall(RapportWriter writer) {
- writer.openElement("Anomalie");
- writer.writeElement("Id", new Pair("V", getIdObject()));
- writer.writeElement("Visibility", new Pair("V", isVisible() ? "visible"
- : "hidden"));
- writer.writeElement("IdCtrl", new Pair("V", getControleID()));
- writer.writeElement("LibelleCtrl", new Pair("V", getControleLibelle()));
- writer.writeElement("EtatId", new Pair("V", getEtatID()));
- writer.writeElement("ElementImportable", new Pair("V",
- getelementImportable()));
- writer.writeElement("IdElementImportable", new Pair("V",
- getIdElementImportable()));
- writer.writeElement("ElementEnAnomalie", new Pair("V",
- getelementEnAnomalie()));
- writer.writeElement("LibelleLien", new Pair("V", getLibelleLien()));
-
- if (getIdMessage()!=null){
- writer.openElement("IdMessage");
- writer.writeData("<![CDATA[");
- try {
- writer.getWriter().getWriter().write(getIdMessage());
- } catch (IOException ioEx) {
- logger.error("ecriture de l'id du message", ioEx);
- }
- writer.writeData("]]>");
- writer.closeElement("IdMessage");
- }
-
- writer.openElement("Message");
- writer.writeData("<![CDATA[");
- try {
- writer.getWriter().getWriter().write(getMessage());
- } catch (IOException ioEx) {
- logger.error("ecriture du message", ioEx);
- }
- writer.writeData("]]>");
- writer.closeElement("Message");
-
- writer.openElement("Regle");
- writer.writeData("<![CDATA[");
- try {
- writer.getWriter().getWriter().write(getRegle());
- } catch (Exception ioEx) {
- logger.error("ecriture de la règle", ioEx);
- }
- writer.writeData("]]>");
- writer.closeElement("Regle");
-
- writer.writeElement("Severity", new Pair("V", getSeverity()));
- if (getXPath() != null) {
- writer.writeElement("XPath", new Pair("V", getXPath()));
- }
- if (getXslParams() != null && getXslParams().size() > 0) {
- for (String key : getXslParams().keySet()) {
- String value = getXslParams().get(key).toString();
- writer.openElement("XslParam");
- writer.writeElement("Key", new Pair("V", key));
- writer.writeElement("Value", new Pair("V", value));
- writer.closeElement("XslParam");
- }
- }
- writer.closeElement("Anomalie");
- }
+ public void setFormatedMessage(final String message, final Object... args) {
+ this.setMessage(String.format(message, args));
+ }
+
+ @Override
+ public String getRegle() {
+ if (this.regle != null) {
+ return this.regle;
+ }
+ return "Règle non définie";
+ }
+
+ public void setRegle(final String regle) {
+ this.regle = regle;
+ }
+
+ public String getXPath() {
+ return this.xPath;
+ }
+
+ public void setxPath(final String pathNameSpacise) {
+ this.xPath = pathNameSpacise;
+ }
+
+ public Hashtable<String, Object> getXslParams() {
+ return this.xslParams;
+ }
+
+ public void setXslParams(final Hashtable<String, Object> xslParams) {
+ this.xslParams = xslParams;
+ }
+
+ public void setSeverity(final String severity) {
+ this.severity = severity;
+ }
+
+ public void setSeverityHelios(final String severity) {
+ this.severityHelios = severity;
+ }
+
+ public String getElementEnAnomalie() {
+ return this.elementEnAnomalie;
+ }
+
+ public void setElementEnAnomalie(final String elementEnAnomalie) {
+ this.elementEnAnomalie = elementEnAnomalie;
+ }
+
+ public String getElementImportable() {
+ return this.elementImportable;
+ }
+
+ public void setElementImportable(final String elementImportable) {
+ this.elementImportable = elementImportable;
+ }
+
+ public String getIdElementImportable() {
+ return this.idElementImportable;
+ }
+
+ public void setIdElementImportable(final String idElementImportable) {
+ this.idElementImportable = idElementImportable;
+ }
+
+ public String getLibelleLien() {
+ return this.libelleLien;
+ }
+
+ public void setLibelleLien(final String libelleLien) {
+ this.libelleLien = libelleLien;
+ }
+
+ /**
+ * @param other
+ * other doit être de type Anomalie !
+ */
+ @Override
+ public int compareTo(final Anomalie other) {
+ final String id1 = other.getControleID();
+ final String id2 = this.getControleID();
+
+ return id1.compareTo(id2);
+ }
+
+ @Override
+ public boolean isVisible() {
+ return this.visible;
+ }
+
+ public void setVisible(final boolean visible) {
+ this.visible = visible;
+ }
+
+ @Override
+ public void marshall(final RapportWriter writer) {
+ writer.openElement("Anomalie");
+ writer.writeElement("Id", new Pair("V", this.getIdObject()));
+ writer.writeElement("Visibility", new Pair("V", this.isVisible() ? "visible" : "hidden"));
+ writer.writeElement("IdCtrl", new Pair("V", this.getControleID()));
+ writer.writeElement("LibelleCtrl", new Pair("V", this.getControleLibelle()));
+ writer.writeElement("EtatId", new Pair("V", this.getEtatID()));
+ writer.writeElement("ElementImportable", new Pair("V", this.getelementImportable()));
+ writer.writeElement("IdElementImportable", new Pair("V", this.getIdElementImportable()));
+ writer.writeElement("ElementEnAnomalie", new Pair("V", this.getelementEnAnomalie()));
+ writer.writeElement("LibelleLien", new Pair("V", this.getLibelleLien()));
+
+ if (this.getIdMessage() != null) {
+ writer.openElement("IdMessage");
+ writer.writeCData(this.getIdMessage());
+ writer.closeElement("IdMessage");
+ }
+
+ writer.openElement("Message");
+ writer.writeCData(this.getMessage());
+ writer.closeElement("Message");
+
+ writer.openElement("Regle");
+ writer.writeCData(this.getRegle());
+ writer.closeElement("Regle");
+
+ writer.writeElement("Severity", new Pair("V", this.getSeverity()));
+ if (this.getXPath() != null) {
+ writer.writeElement("XPath", new Pair("V", this.getXPath()));
+ }
+ if ((this.getXslParams() != null) && (this.getXslParams().size() > 0)) {
+ for (final String key : this.getXslParams().keySet()) {
+ final String value = this.getXslParams().get(key).toString();
+ writer.openElement("XslParam");
+ writer.writeElement("Key", new Pair("V", key));
+ writer.writeElement("Value", new Pair("V", value));
+ writer.closeElement("XslParam");
+ }
+ }
+ writer.closeElement("Anomalie");
+ }
}