package fr.gouv.finances.dgfip.xemelios.controls.core;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.Hashtable;
import java.util.Stack;
import javax.xml.namespace.NamespaceContext;
+import nu.xom.Document;
+
import org.apache.log4j.Logger;
import org.xml.sax.Attributes;
import org.xml.sax.ContentHandler;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
+import fr.gouv.finances.cp.xemelios.controls.pesv2.ControlProvider;
import fr.gouv.finances.dgfip.utils.Pair;
import fr.gouv.finances.dgfip.utils.xml.XmlAttributesImpl;
import fr.gouv.finances.dgfip.xemelios.auth.UnauthorizedException;
public abstract class AbstractControlContentHandler extends DefaultHandler implements ContentHandler {
private static final Logger logger = Logger.getLogger(AbstractControlContentHandler.class);
+
+ private static final String ControlProviderId = "CTRLPROV";
protected Pair collectivite, budget;
public int MAX_ANOS = 300;
private ArrayList<AbstractUnitControl> controlsToCall;
+ private HashMap<String,AbstractUnitControl> controlsToCallById;
private DocumentControlModel docControlMod;
private String documentId;
private Hashtable<String, Object> hParams;
private String fileName;
private ControlProgressListener cpl;
ArrayList<AddOnModel> addOns = null;
+ private MessagesProvider messagesProvider = null;
+
- public void setControlProgressListener(ControlProgressListener cpl) {
+ public void setControlProgressListener(ControlProgressListener cpl) {
this.cpl = cpl;
}
vTotalAnomalies = new ArrayList<ControlReturn>();
stack = new Stack<String>();
controlsToCall = new ArrayList<AbstractUnitControl>();
+ controlsToCallById = new HashMap<String, AbstractUnitControl>();
+ messagesProvider = new MessagesProvider(docControlMod.getMessagesRessource());
hParams = parameters;
if (docCtrlMod.getEngine() != null) {
addOns = docCtrlMod.getEngine().getAddOns();
auc.setDocumentModel(docControlMod);
auc.setFileName(fileName);
controlsToCall.add(auc);
+ controlsToCallById.put(ctrlm.id, auc);
}
} catch (InstantiationException e) {
e.printStackTrace();
}
for (AbstractUnitControl auc : controlsToCall) {
try {
+ auc.setCch(this);
auc.startDocument();
} catch (SAXException saxEx) {
logger.debug("in startDocument cch !!!", saxEx);
public ControlProgressListener getControlProgressListener() {
return cpl;
}
+
+ /**
+ * @return the controlsToCall
+ */
+ public ArrayList<AbstractUnitControl> getControlsToCall() {
+ return controlsToCall;
+ }
+
+ public Document getTableReferenceResource(String ressourcePath){
+ return ((ControlProvider)controlsToCallById.get(ControlProviderId)).getTableReference(ressourcePath);
+ }
+
+ /**
+ * @return the messagesProvider
+ */
+ public MessagesProvider getMessagesProvider() {
+ return messagesProvider;
+ }
}