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