package at.gv.egiz.asic.impl; import java.util.Collections; import java.util.Iterator; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import at.gv.egiz.asic.api.ASiCFormat; import at.gv.egiz.asic.impl.handler.HandlerSorter; import at.gv.egiz.asic.impl.handler.SimpleASiCCAdESHandler; import at.gv.egiz.asic.impl.handler.SimpleASiCXAdESHandler; import at.gv.egiz.asic.impl.handler.SimpleEvidenceERSRecordHandler; import at.gv.egiz.asic.impl.handler.SimpleEvidenceXMLRecordHandler; import at.gv.egovernment.moa.spss.MOAApplicationException; /** * Created by Andreas Fitzek on 6/15/16. */ public class ASiCSimpleFormatFactory extends ASiCBaseFormatFactory { private static final Logger logger = LoggerFactory.getLogger(ASiCSimpleFormatFactory.class); public ASiCSimpleFormatFactory() { super(); handlers.add(new SimpleASiCCAdESHandler()); handlers.add(new SimpleASiCXAdESHandler()); handlers.add(new SimpleEvidenceXMLRecordHandler()); handlers.add(new SimpleEvidenceERSRecordHandler()); Collections.sort(handlers, new HandlerSorter()); logger.debug("Handler ordering for ASiCSimpleFormatFactory"); final Iterator handlerIterator = this.handlers.iterator(); while (handlerIterator.hasNext()) { final EntryHandler entryHandler = handlerIterator.next(); logger.debug(" " + entryHandler.getPriority() + " " + entryHandler.getClass().getSimpleName()); } } @Override protected void validate() throws MOAApplicationException { if (this.dataEntries.size() != 1) { logger.warn("There can only be one data entry for ASiC signatures in simple format"); throw new MOAApplicationException("asic.0014", null); } if (this.signatureEntries.size() != 1) { logger.warn("There can only be one signature entry for ASiC signatures in simple format"); throw new MOAApplicationException("asic.0015", null); } } @Override public ASiCFormat factoryFormat() { return ASiCFormat.ASiCS; } }