aboutsummaryrefslogtreecommitdiff
path: root/spss.server/src/at/gv/egovernment/moa/spss/server/invoke/IaikExceptionMapper.java
diff options
context:
space:
mode:
Diffstat (limited to 'spss.server/src/at/gv/egovernment/moa/spss/server/invoke/IaikExceptionMapper.java')
-rw-r--r--spss.server/src/at/gv/egovernment/moa/spss/server/invoke/IaikExceptionMapper.java267
1 files changed, 0 insertions, 267 deletions
diff --git a/spss.server/src/at/gv/egovernment/moa/spss/server/invoke/IaikExceptionMapper.java b/spss.server/src/at/gv/egovernment/moa/spss/server/invoke/IaikExceptionMapper.java
deleted file mode 100644
index 60f573e5a..000000000
--- a/spss.server/src/at/gv/egovernment/moa/spss/server/invoke/IaikExceptionMapper.java
+++ /dev/null
@@ -1,267 +0,0 @@
-package at.gv.egovernment.moa.spss.server.invoke;
-
-import java.lang.reflect.Constructor;
-import java.util.HashMap;
-import java.util.Map;
-
-import iaik.IAIKException;
-import iaik.IAIKRuntimeException;
-
-import at.gv.egovernment.moa.spss.MOAApplicationException;
-import at.gv.egovernment.moa.spss.MOAException;
-import at.gv.egovernment.moa.spss.MOASystemException;
-
-
-/**
- * Map an exception from the <code>iaik</code> namespace to a
- * <code>MOAException</code>.
- *
- * @author Patrick Peck
- * @version $Id$
- */
-public class IaikExceptionMapper {
-
- /** The argument classes for <code>MOAException</code>s. */
- private static final Class[] CONSTRUCTOR_ARGS =
- new Class[] { String.class, Object[].class, Throwable.class };
- /** The exception mapping, as an array. */
- private static final Object[][] MESSAGES =
- {
- { iaik.IAIKException.class, "9900", MOASystemException.class },
- { iaik.IAIKRuntimeException.class, "9901", MOASystemException.class },
- { iaik.server.modules.xmlsign.XMLSignatureCreationException.class, "2220", MOAApplicationException.class },
- { iaik.server.modules.xmlsign.XMLSignatureCreationRuntimeException.class, "2220", MOAApplicationException.class },
- { iaik.server.modules.xmlsign.InvalidKeyException.class, "2221", MOAApplicationException.class },
- { iaik.server.modules.xmlsign.ManifestException.class, "2222", MOAApplicationException.class },
- { iaik.server.modules.xmlsign.ReferenceException.class, "2223", MOAApplicationException.class },
- { iaik.server.modules.xmlsign.HashUnavailableException.class, "2224", MOAApplicationException.class },
- { iaik.server.modules.xmlsign.SignatureAlgorithmException.class, "2225", MOAApplicationException.class },
- { iaik.server.modules.xmlsign.SignatureEmbeddingException.class, "2226", MOAApplicationException.class },
- { iaik.server.modules.xmlsign.SignatureValueException.class, "2227", MOAApplicationException.class },
- { iaik.server.modules.xmlsign.SignedPropertyException.class, "2228", MOAApplicationException.class },
- { iaik.server.modules.xmlsign.SignerCertificateUnavailableException.class, "2229", MOAApplicationException.class },
- { iaik.server.modules.xmlsign.SupplementException.class, "2230", MOAApplicationException.class },
- { iaik.server.modules.xmlsign.TransformationException.class, "2233", MOAApplicationException.class },
- { iaik.server.modules.cmsverify.CMSSignatureVerificationException.class, "2240", MOAApplicationException.class },
- { iaik.server.modules.cmsverify.CMSSignatureVerificationRuntimeException.class, "2240", MOAApplicationException.class },
- { iaik.server.modules.cmsverify.AlgorithmNotSupportedException.class, "2241", MOAApplicationException.class },
- { iaik.server.modules.cmsverify.CMSSignatureParsingException.class, "2242", MOAApplicationException.class },
- { iaik.server.modules.cmsverify.SignerCertificateUnavailableException.class, "2243", MOAApplicationException.class },
- { iaik.server.modules.cmsverify.CMSSignatureVerificationRuntimeException.class, "2247", MOAApplicationException.class },
- { iaik.server.modules.cmsverify.InitException.class, "2248", MOAApplicationException.class },
- { iaik.server.modules.xmlverify.XMLSignatureVerificationException.class, "2240", MOAApplicationException.class },
- { iaik.server.modules.xmlverify.XMLSignatureVerificationRuntimeException.class, "2240", MOAApplicationException.class },
- { iaik.server.modules.xmlverify.AlgorithmNotSupportedException.class, "2241", MOAApplicationException.class },
- { iaik.server.modules.xmlverify.ManifestException.class, "2262", MOAApplicationException.class },
- { iaik.server.modules.xmlverify.PropertiesException.class, "2263", MOAApplicationException.class },
- { iaik.server.modules.xmlverify.ReferenceException.class, "2264", MOAApplicationException.class },
- { iaik.server.modules.xmlverify.HashUnavailableException.class, "2224", MOAApplicationException.class },
- { iaik.server.modules.xmlverify.SignerCertificateUnavailableException.class, "2243", MOAApplicationException.class },
- { iaik.server.modules.xmlverify.SupplementException.class, "2230", MOAApplicationException.class },
- { iaik.server.modules.xmlverify.TransformationException.class, "2265", MOAApplicationException.class },
- { iaik.server.modules.xmlverify.TransformationParsingException.class, "2269", MOAApplicationException.class }
- };
-
- /** The single instance of this class. */
- private static IaikExceptionMapper instance;
- /** The exception mapping, as a <code>Map</code> for fast lookup. */
- private Map messages = new HashMap();
-
- /**
- * Get the single instance of this class.
- *
- * @return The single instance of this class.
- */
- public static synchronized IaikExceptionMapper getInstance() {
- if (instance == null) {
- instance = new IaikExceptionMapper();
- }
- return instance;
- }
-
- /**
- * Create a new <code>IaikExceptionMapper</code>.
- *
- * Protected to disallow multple instances.
- */
- protected IaikExceptionMapper() {
- registerMessages();
- }
-
- /**
- * Build the complete <code>IAIKException</code> to message code mapping.
- */
- protected void registerMessages() {
- int i;
-
- for (i = 0; i < MESSAGES.length; i++) {
- registerMessage(
- (Class) MESSAGES[i][0],
- (String) MESSAGES[i][1],
- (Class) MESSAGES[i][2]);
- }
- }
-
- /**
- * Register a single <code>IAIKException</code> to message mapping.
- *
- * @param iaikExceptionClass An exception from the <code>iaik</code> package.
- * @param messageId The corresponding error message id.
- * @param moaExceptionClass The type of <code>MOAException</code> that the
- * <code>IAIKException</code> is mapped to (usually
- * <code>MOAApplicationException</code> or <code>MOASystemException</code>).
- */
- protected void registerMessage(
- Class iaikExceptionClass,
- String messageId,
- Class moaExceptionClass) {
-
- messages.put(
- iaikExceptionClass,
- new ExceptionMappingInfo(messageId, moaExceptionClass));
- }
-
- /**
- * Map an <code>IAIKException</code> to a <code>MOAException</code>.
- *
- * @param iaikException The <code>IAIKException</code> to map.
- * @return A <code>MOAException</code> containing the message for the
- * given <code>IAIKException</code>.
- */
- public MOAException map(IAIKException iaikException) {
- return mapImpl(iaikException);
- }
-
- /**
- * Map an <code>IAIKRuntimeException</code> to a <code>MOAException</code>.
- *
- * @param iaikException The <code>IAIKException</code> to map.
- * @return A <code>MOAException</code> containing the message for the
- * given <code>IAIKRuntimeException</code>.
- */
- public MOAException map(IAIKRuntimeException iaikException) {
- return mapImpl(iaikException);
- }
-
- /**
- * Map an <code>IAIKException</code> or <code>IAIKRuntimeException</code> to a
- * <code>MOAException</code>.
- *
- * @param iaikException The <code>IAIKException</code> or
- * <code>IAIKRuntimeException</code> to map.
- * @return A <code>MOAException</code> containing the message for the
- * given <code>IAIKRuntimeException</code>.
- */
- private MOAException mapImpl(Exception iaikException) {
- MOAException moaException = createMoaException(iaikException);
-
- if (moaException == null) {
- return new MOASystemException("9999", null, iaikException);
- }
- return moaException;
- }
-
- /**
- * Create a <code>MOAException</code> from a given <code>IAIKException</code>
- * by looking it up in the mapping.
- *
- * @param iaikException The <code>IAIKException</code> to map.
- * @return A <code>MOAException</code> with an error code corresponding to
- * the given <code>IAIKException</code>. Returns <code>null</code>, if no
- * mapping could be found.
- */
- protected MOAException createMoaException(Exception iaikException) {
- ExceptionMappingInfo info = lookupMessage(iaikException.getClass());
- Constructor constructor;
-
- if (info == null) {
- return null;
- }
-
- // instantiate the proper MOAException and return it
- try {
- constructor =
- info.getMoaExceptionClass().getConstructor(CONSTRUCTOR_ARGS);
- return (MOAException) constructor.newInstance(
- new Object[] {
- info.getMessageId(),
- new Object[] { iaikException.getMessage()},
- iaikException });
- } catch (Exception e) {
- return null;
- }
- }
-
- /**
- * Recursively look up the message associated with an
- * <code>IAIKException</code>.
- *
- * This method walks up the exception inheritance hierarchy until it finds a
- * mapping.
- *
- * @param iaikExceptionClass The <code>IAIKException</code> to look up.
- * @return Information about the message id and
- * <code>MOAException</code> class that the <code>iaikExceptionClass</code>
- * maps to. If no mapping could be found, <code>null</code> is returned.
- */
- protected ExceptionMappingInfo lookupMessage(Class iaikExceptionClass) {
- ExceptionMappingInfo info;
-
- // break if
- if (iaikExceptionClass.equals(Exception.class)) {
- return null;
- }
-
- // look up the exception class
- info = (ExceptionMappingInfo) messages.get(iaikExceptionClass);
- if (info == null) {
- return lookupMessage(iaikExceptionClass.getSuperclass());
- }
- return info;
- }
-
-}
-
-/**
- * A class containing a mapping from an error message ID to a
- * <code>MOAException</code> class.
- *
- * @author Patrick Peck
- * @version $Id$
- */
-class ExceptionMappingInfo {
- /** The message ID. */
- private String messageId;
- /** The <code>MOAException</code> class. */
- private Class moaExceptionClass;
-
- /**
- * Create a new <code>ExceptionMappingInfo</code>.
- *
- * @param messageId The message ID.
- * @param moaExceptionClass The <code>MOAException</code> class.
- */
- public ExceptionMappingInfo(String messageId, Class moaExceptionClass) {
- this.messageId = messageId;
- this.moaExceptionClass = moaExceptionClass;
- }
-
- /**
- * Return the message ID.
- *
- * @return The message ID.
- */
- public String getMessageId() {
- return messageId;
- }
-
- /**
- * Returns the <code>MOAException</code> class that the message ID maps to.
- *
- * @return The <code>MOAException</code> class.
- */
- public Class getMoaExceptionClass() {
- return moaExceptionClass;
- }
-
-}