diff options
Diffstat (limited to 'moaSig/moa-asic/src/main/java/at/gv/egiz/asic/impl/ASiCSimpleFormatFactory.java')
-rw-r--r-- | moaSig/moa-asic/src/main/java/at/gv/egiz/asic/impl/ASiCSimpleFormatFactory.java | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/moaSig/moa-asic/src/main/java/at/gv/egiz/asic/impl/ASiCSimpleFormatFactory.java b/moaSig/moa-asic/src/main/java/at/gv/egiz/asic/impl/ASiCSimpleFormatFactory.java new file mode 100644 index 0000000..90b3081 --- /dev/null +++ b/moaSig/moa-asic/src/main/java/at/gv/egiz/asic/impl/ASiCSimpleFormatFactory.java @@ -0,0 +1,54 @@ +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<EntryHandler> 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; + } +} |