b87033953be26b0dc7dead8febd499b666a54126Peter Major//
b87033953be26b0dc7dead8febd499b666a54126Peter Major// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v1.0.6-b27-fcs
b87033953be26b0dc7dead8febd499b666a54126Peter Major// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
b87033953be26b0dc7dead8febd499b666a54126Peter Major// Any modifications to this file will be lost upon recompilation of the source schema.
b87033953be26b0dc7dead8febd499b666a54126Peter Major// Generated on: 2012.09.08 at 08:59:44 DU CEST
b87033953be26b0dc7dead8febd499b666a54126Peter Major//
b87033953be26b0dc7dead8febd499b666a54126Peter Major
b87033953be26b0dc7dead8febd499b666a54126Peter Majorpackage com.sun.identity.diagnostic.base.core.jaxbgen.impl.runtime;
b87033953be26b0dc7dead8febd499b666a54126Peter Major
b87033953be26b0dc7dead8febd499b666a54126Peter Majorimport javax.xml.bind.ValidationEvent;
b87033953be26b0dc7dead8febd499b666a54126Peter Majorimport javax.xml.bind.helpers.PrintConversionEventImpl;
b87033953be26b0dc7dead8febd499b666a54126Peter Majorimport javax.xml.bind.helpers.ValidationEventImpl;
b87033953be26b0dc7dead8febd499b666a54126Peter Majorimport javax.xml.bind.helpers.ValidationEventLocatorImpl;
b87033953be26b0dc7dead8febd499b666a54126Peter Major
b87033953be26b0dc7dead8febd499b666a54126Peter Majorimport org.xml.sax.SAXException;
b87033953be26b0dc7dead8febd499b666a54126Peter Major
b87033953be26b0dc7dead8febd499b666a54126Peter Majorimport com.sun.xml.bind.Messages;
b87033953be26b0dc7dead8febd499b666a54126Peter Majorimport com.sun.xml.bind.serializer.AbortSerializationException;
b87033953be26b0dc7dead8febd499b666a54126Peter Majorimport com.sun.xml.bind.util.ValidationEventLocatorExImpl;
b87033953be26b0dc7dead8febd499b666a54126Peter Major
b87033953be26b0dc7dead8febd499b666a54126Peter Major/**
b87033953be26b0dc7dead8febd499b666a54126Peter Major *
b87033953be26b0dc7dead8febd499b666a54126Peter Major * @author
b87033953be26b0dc7dead8febd499b666a54126Peter Major * Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com)
b87033953be26b0dc7dead8febd499b666a54126Peter Major */
b87033953be26b0dc7dead8febd499b666a54126Peter Majorpublic class Util {
b87033953be26b0dc7dead8febd499b666a54126Peter Major /**
b87033953be26b0dc7dead8febd499b666a54126Peter Major * Reports a print conversion error while marshalling.
b87033953be26b0dc7dead8febd499b666a54126Peter Major */
b87033953be26b0dc7dead8febd499b666a54126Peter Major public static void handlePrintConversionException(
b87033953be26b0dc7dead8febd499b666a54126Peter Major Object caller, Exception e, XMLSerializer serializer ) throws SAXException {
b87033953be26b0dc7dead8febd499b666a54126Peter Major
b87033953be26b0dc7dead8febd499b666a54126Peter Major if( e instanceof SAXException )
b87033953be26b0dc7dead8febd499b666a54126Peter Major // assume this exception is not from application.
b87033953be26b0dc7dead8febd499b666a54126Peter Major // (e.g., when a marshaller aborts the processing, this exception
b87033953be26b0dc7dead8febd499b666a54126Peter Major // will be thrown)
b87033953be26b0dc7dead8febd499b666a54126Peter Major throw (SAXException)e;
b87033953be26b0dc7dead8febd499b666a54126Peter Major
b87033953be26b0dc7dead8febd499b666a54126Peter Major String message = e.getMessage();
b87033953be26b0dc7dead8febd499b666a54126Peter Major if(message==null) {
b87033953be26b0dc7dead8febd499b666a54126Peter Major message = e.toString();
b87033953be26b0dc7dead8febd499b666a54126Peter Major }
b87033953be26b0dc7dead8febd499b666a54126Peter Major
b87033953be26b0dc7dead8febd499b666a54126Peter Major ValidationEvent ve = new PrintConversionEventImpl(
b87033953be26b0dc7dead8febd499b666a54126Peter Major ValidationEvent.ERROR, message,
b87033953be26b0dc7dead8febd499b666a54126Peter Major new ValidationEventLocatorImpl(caller), e );
b87033953be26b0dc7dead8febd499b666a54126Peter Major serializer.reportError(ve);
b87033953be26b0dc7dead8febd499b666a54126Peter Major }
b87033953be26b0dc7dead8febd499b666a54126Peter Major
b87033953be26b0dc7dead8febd499b666a54126Peter Major /**
b87033953be26b0dc7dead8febd499b666a54126Peter Major * Reports that the type of an object in a property is unexpected.
b87033953be26b0dc7dead8febd499b666a54126Peter Major */
b87033953be26b0dc7dead8febd499b666a54126Peter Major public static void handleTypeMismatchError( XMLSerializer serializer,
b87033953be26b0dc7dead8febd499b666a54126Peter Major Object parentObject, String fieldName, Object childObject ) throws AbortSerializationException {
b87033953be26b0dc7dead8febd499b666a54126Peter Major
b87033953be26b0dc7dead8febd499b666a54126Peter Major ValidationEvent ve = new ValidationEventImpl(
b87033953be26b0dc7dead8febd499b666a54126Peter Major ValidationEvent.ERROR, // maybe it should be a fatal error.
b87033953be26b0dc7dead8febd499b666a54126Peter Major Messages.format(Messages.ERR_TYPE_MISMATCH,
b87033953be26b0dc7dead8febd499b666a54126Peter Major getUserFriendlyTypeName(parentObject),
b87033953be26b0dc7dead8febd499b666a54126Peter Major fieldName,
b87033953be26b0dc7dead8febd499b666a54126Peter Major getUserFriendlyTypeName(childObject) ),
b87033953be26b0dc7dead8febd499b666a54126Peter Major new ValidationEventLocatorExImpl(parentObject,fieldName) );
b87033953be26b0dc7dead8febd499b666a54126Peter Major
b87033953be26b0dc7dead8febd499b666a54126Peter Major serializer.reportError(ve);
b87033953be26b0dc7dead8febd499b666a54126Peter Major }
b87033953be26b0dc7dead8febd499b666a54126Peter Major
b87033953be26b0dc7dead8febd499b666a54126Peter Major private static String getUserFriendlyTypeName( Object o ) {
b87033953be26b0dc7dead8febd499b666a54126Peter Major if( o instanceof ValidatableObject )
b87033953be26b0dc7dead8febd499b666a54126Peter Major return ((ValidatableObject)o).getPrimaryInterface().getName();
b87033953be26b0dc7dead8febd499b666a54126Peter Major else
b87033953be26b0dc7dead8febd499b666a54126Peter Major return o.getClass().getName();
b87033953be26b0dc7dead8febd499b666a54126Peter Major }
b87033953be26b0dc7dead8febd499b666a54126Peter Major}