+++ /dev/null
-/*
- * Copyright 2005-2011 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.wamblee.xmlrouter.impl;
-
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import javax.xml.transform.dom.DOMSource;
-
-import org.wamblee.xml.XMLDocument;
-import org.wamblee.xmlrouter.config.Transformation;
-
-/**
- * This class provides robustness towards externally provided transformations.
- *
- * @author Erik Brakkee
- *
- */
-public class RobustTransformation extends RobustIdentifiable<Transformation>
- implements Transformation {
-
- private static final Logger LOGGER = Logger
- .getLogger(RobustTransformation.class.getName());
-
- private Transformation transformation;
-
- /**
- * Constructs the wrapper.
- *
- * @param aId
- * Unique id.
- * @param aTransformation
- * Wrapped transformation.
- */
- public RobustTransformation(Transformation aTransformation) {
- super(aTransformation);
- transformation = aTransformation;
- }
-
- @Override
- public String getFromType() {
- try {
- String from = transformation.getFromType();
- if (from == null) {
- logTypeReturnedNull("from");
- return Constants.UNKNOWN_DOCUMENT_TYPE.toString();
- }
- return from;
- } catch (Exception e) {
- logTypeThrewException("from", e);
- return Constants.UNKNOWN_DOCUMENT_TYPE.toString();
- }
- }
-
- @Override
- public String getToType() {
- try {
- String to = transformation.getToType();
- if (to == null) {
- logTypeReturnedNull("to");
- return Constants.UNKNOWN_DOCUMENT_TYPE.toString();
- }
- return to;
- } catch (Exception e) {
- logTypeThrewException("to", e);
- return Constants.UNKNOWN_DOCUMENT_TYPE.toString();
- }
- }
-
- @Override
- public DOMSource transform(DOMSource aDocument) {
- try {
- DOMSource res = transformation.transform(aDocument);
- if (res == null) {
- logTransformationReturnedNull(aDocument);
- return null;
- }
- return res;
- } catch (Exception e) {
- logTranformationThrewException(aDocument, e);
- return null;
- }
- }
-
- private void logNameThrewException(Exception aE) {
- LOGGER.log(Level.WARNING, "getName" +
- " threw exception, returning default value " +
- Constants.UNKNOWN_NAME, aE);
- }
-
- private void logTypeThrewException(String aFromTo, Exception aE) {
- LOGGER.log(Level.WARNING, "get" + aFromTo +
- " threw exception, returning default value " +
- Constants.UNKNOWN_DOCUMENT_TYPE, aE);
- }
-
- private void logTypeReturnedNull(String aFromTo) {
- LOGGER.log(Level.WARNING, "get" + aFromTo +
- " returned null, returning default value " +
- Constants.UNKNOWN_DOCUMENT_TYPE);
- }
-
- private void logTranformationThrewException(DOMSource aEvent, Exception aE) {
- LOGGER.log(Level.WARNING,
- "transformation " + getId() + " threw exception for event " +
- new XMLDocument(aEvent).print(true), aE);
- }
-
- private void logTransformationReturnedNull(DOMSource aEvent) {
- LOGGER.log(Level.WARNING, "transformation " + getId() +
- " returned null for event " + new XMLDocument(aEvent).print(true));
- }
-
-}