package at.gv.egiz.asic.impl; import at.gv.egiz.asic.api.ASiCFormat; import at.gv.egiz.asic.impl.handler.*; import at.gv.egovernment.moa.spss.MOAApplicationException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.Collections; import java.util.Iterator; /** * 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"); Iterator handlerIterator = this.handlers.iterator(); while(handlerIterator.hasNext()) { 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; } }