* 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 javax.xml.transform.dom.DOMSource;
import org.wamblee.xml.XMLDocument;
-import org.wamblee.xmlrouter.common.Id;
import org.wamblee.xmlrouter.config.Transformation;
-public class RobustTransformation implements 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 Id<Transformation> id;
private Transformation transformation;
- public RobustTransformation(Id<Transformation> aId,
- Transformation aTransformation) {
- id = aId;
+ /**
+ * Constructs the wrapper.
+ *
+ * @param aId
+ * Unique id.
+ * @param aTransformation
+ * Wrapped transformation.
+ */
+ public RobustTransformation(String aPrefix, Transformation aTransformation) {
+ super(aPrefix, aTransformation);
transformation = aTransformation;
}
-
- @Override
- public String getName() {
- try {
- String name = transformation.getName();
- if (name == null) {
- logTypeReturnedNull("from");
- return Constants.UNKNOWN_DOCUMENT_TYPE.toString();
- }
- return name;
- } catch (Exception e) {
- logNameThrewException(e);
- return Constants.UNKNOWN_DOCUMENT_TYPE.toString();
- }
- }
@Override
public String getFromType() {
private void logTranformationThrewException(DOMSource aEvent, Exception aE) {
LOGGER.log(Level.WARNING,
- "transformation " + id + " threw exception for event " +
+ "transformation " + getId() + " threw exception for event " +
new XMLDocument(aEvent).print(true), aE);
}
private void logTransformationReturnedNull(DOMSource aEvent) {
- LOGGER.log(Level.WARNING, "transformation " + id +
+ LOGGER.log(Level.WARNING, "transformation " + getId() +
" returned null for event " + new XMLDocument(aEvent).print(true));
}