edu.ksi.virtualclassroom.mappers.jaxb.xmlwrapper.impl.runtime
Class MSVValidator

java.lang.Object
  extended byedu.ksi.virtualclassroom.mappers.jaxb.xmlwrapper.impl.runtime.MSVValidator
All Implemented Interfaces:
com.sun.msv.grammar.IDContextProvider2, org.relaxng.datatype.ValidationContext, XMLSerializer

public class MSVValidator
extends java.lang.Object
implements XMLSerializer, com.sun.msv.grammar.IDContextProvider2

XMLSerializer that calls the native interface of MSV and performs validation. * Used in a pair with a ValidationContext. * * @author Kohsuke Kawaguchi * @version $Revision$


Field Summary
private  com.sun.msv.verifier.Acceptor acceptor
          Current acceptor in use.
private  java.lang.String attLocalName
          Field attLocalName
private  java.lang.String attNamespaceUri
          Field attNamespaceUri
private  java.lang.StringBuffer buf
          stores text reported by the text method.
private  ValidationContext context
          Context object that coordinates the entire validation effort.
private  java.lang.String currentElementLocalName
          Field currentElementLocalName
private  java.lang.String currentElementUri
          Field currentElementUri
static java.lang.String DUMMY_ELEMENT_NS
          namespace URI of dummy elements.
private static org.xml.sax.helpers.AttributesImpl emptyAttributes
          An empty Attributes object.
private  boolean insideAttribute
          Field insideAttribute
(package private)  DefaultJAXBContextImpl jaxbContext
           
private  com.sun.msv.util.LightStack stack
          Acceptor stack.
private  ValidatableObject target
          The object which we are validating.
 
Constructor Summary
private MSVValidator(DefaultJAXBContextImpl _jaxbCtx, ValidationContext _ctxt, ValidatableObject vo)
          To use this class, call the static validate method.
 
Method Summary
private  void _validate()
          performs the validation to the object specified in the constructor.
private  void childAsAttributeBody(ValidatableObject vo, java.lang.String fieldName)
          Method childAsAttributeBody
 void childAsAttributes(com.sun.xml.bind.JAXBObject o, java.lang.String fieldName)
          Method childAsAttributes
 void childAsBody(com.sun.xml.bind.JAXBObject o, java.lang.String fieldName)
          Method childAsBody
private  void childAsElementBody(java.lang.Object o, ValidatableObject vo)
          Method childAsElementBody
 void childAsURIs(com.sun.xml.bind.JAXBObject o, java.lang.String fieldName)
          Method childAsURIs
 void endAttribute()
          Method endAttribute
 void endAttributes()
          Method endAttributes
 void endElement()
          Method endElement
 void endNamespaceDecls()
          Method endNamespaceDecls
 java.lang.String getBaseUri()
          Method getBaseUri
 NamespaceContext2 getNamespaceContext()
          Method getNamespaceContext
 boolean isNotation(java.lang.String notation)
          Method isNotation
 boolean isUnparsedEntity(java.lang.String entityName)
          Method isUnparsedEntity
 void onID(org.relaxng.datatype.Datatype dt, com.sun.msv.verifier.regexp.StringToken s)
          Method onID
 java.lang.String onID(com.sun.xml.bind.marshaller.IdentifiableObject owner, java.lang.String value)
          Method onID
 java.lang.String onIDREF(com.sun.xml.bind.marshaller.IdentifiableObject value)
          Method onIDREF
 void reportError(javax.xml.bind.ValidationEvent e)
          Method reportError
 void reportMissingObjectError(java.lang.String fieldName)
          Method reportMissingObjectError
 java.lang.String resolveNamespacePrefix(java.lang.String prefix)
          Method resolveNamespacePrefix
 void startAttribute(java.lang.String uri, java.lang.String local)
          Method startAttribute
 void startElement(java.lang.String uri, java.lang.String local)
          Method startElement
 void text(java.lang.String text, java.lang.String fieldName)
          Method text
static void validate(DefaultJAXBContextImpl jaxbCtx, ValidationContext context, ValidatableObject vo)
          Validates the specified object and reports any error to the context.
private  void writePendingText()
          Method writePendingText
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

acceptor

private com.sun.msv.verifier.Acceptor acceptor
Current acceptor in use.


context

private final ValidationContext context
Context object that coordinates the entire validation effort.


target

private final ValidatableObject target
The object which we are validating.


jaxbContext

final DefaultJAXBContextImpl jaxbContext

stack

private final com.sun.msv.util.LightStack stack
Acceptor stack. Whenever an element is found, the current acceptor is pushed to the stack and new one is created. LightStack is a light-weight stack implementation


buf

private java.lang.StringBuffer buf
stores text reported by the text method.


attNamespaceUri

private java.lang.String attNamespaceUri
Field attNamespaceUri


attLocalName

private java.lang.String attLocalName
Field attLocalName


insideAttribute

private boolean insideAttribute
Field insideAttribute


currentElementUri

private java.lang.String currentElementUri
Field currentElementUri


currentElementLocalName

private java.lang.String currentElementLocalName
Field currentElementLocalName


emptyAttributes

private static final org.xml.sax.helpers.AttributesImpl emptyAttributes
An empty Attributes object.


DUMMY_ELEMENT_NS

public static final java.lang.String DUMMY_ELEMENT_NS
namespace URI of dummy elements. TODO: allocate one namespace URI for this.

See Also:
Constant Field Values
Constructor Detail

MSVValidator

private MSVValidator(DefaultJAXBContextImpl _jaxbCtx,
                     ValidationContext _ctxt,
                     ValidatableObject vo)
To use this class, call the static validate method.

Parameters:
_jaxbCtx - DefaultJAXBContextImpl
_ctxt - ValidationContext
vo - ValidatableObject
Method Detail

getNamespaceContext

public NamespaceContext2 getNamespaceContext()
Method getNamespaceContext

Specified by:
getNamespaceContext in interface XMLSerializer
Returns:
NamespaceContext2
See Also:
XMLSerializer.getNamespaceContext()

validate

public static void validate(DefaultJAXBContextImpl jaxbCtx,
                            ValidationContext context,
                            ValidatableObject vo)
                     throws org.xml.sax.SAXException
Validates the specified object and reports any error to the context.

Parameters:
jaxbCtx - DefaultJAXBContextImpl
context - ValidationContext
vo - ValidatableObject
Throws:
org.xml.sax.SAXException

_validate

private void _validate()
                throws org.xml.sax.SAXException
performs the validation to the object specified in the constructor. * @throws SAXException

Throws:
org.xml.sax.SAXException

endNamespaceDecls

public void endNamespaceDecls()
                       throws org.xml.sax.SAXException
Method endNamespaceDecls

Specified by:
endNamespaceDecls in interface XMLSerializer
Throws:
org.xml.sax.SAXException
See Also:
XMLSerializer.endNamespaceDecls()

endAttributes

public void endAttributes()
                   throws org.xml.sax.SAXException
Method endAttributes

Specified by:
endAttributes in interface XMLSerializer
Throws:
org.xml.sax.SAXException
See Also:
XMLSerializer.endAttributes()

text

public final void text(java.lang.String text,
                       java.lang.String fieldName)
                throws org.xml.sax.SAXException
Method text

Specified by:
text in interface XMLSerializer
Parameters:
text - String
fieldName - String
Throws:
org.xml.sax.SAXException
See Also:
XMLSerializer.text(String, String)

reportMissingObjectError

public void reportMissingObjectError(java.lang.String fieldName)
                              throws org.xml.sax.SAXException
Method reportMissingObjectError

Parameters:
fieldName - String
Throws:
org.xml.sax.SAXException

startAttribute

public void startAttribute(java.lang.String uri,
                           java.lang.String local)
Method startAttribute

Specified by:
startAttribute in interface XMLSerializer
Parameters:
uri - String
local - String
See Also:
XMLSerializer.startAttribute(String, String)

endAttribute

public void endAttribute()
                  throws org.xml.sax.SAXException
Method endAttribute

Specified by:
endAttribute in interface XMLSerializer
Throws:
org.xml.sax.SAXException
See Also:
XMLSerializer.endAttribute()

writePendingText

private void writePendingText()
                       throws org.xml.sax.SAXException
Method writePendingText

Throws:
org.xml.sax.SAXException

startElement

public void startElement(java.lang.String uri,
                         java.lang.String local)
                  throws org.xml.sax.SAXException
Method startElement

Specified by:
startElement in interface XMLSerializer
Parameters:
uri - String
local - String
Throws:
org.xml.sax.SAXException
See Also:
XMLSerializer.startElement(String, String)

endElement

public void endElement()
                throws org.xml.sax.SAXException
Method endElement

Specified by:
endElement in interface XMLSerializer
Throws:
org.xml.sax.SAXException
See Also:
XMLSerializer.endElement()

childAsAttributes

public void childAsAttributes(com.sun.xml.bind.JAXBObject o,
                              java.lang.String fieldName)
                       throws org.xml.sax.SAXException
Method childAsAttributes

Specified by:
childAsAttributes in interface XMLSerializer
Parameters:
o - JAXBObject
fieldName - String
Throws:
org.xml.sax.SAXException
See Also:
XMLSerializer.childAsAttributes(JAXBObject, String)

childAsURIs

public void childAsURIs(com.sun.xml.bind.JAXBObject o,
                        java.lang.String fieldName)
                 throws org.xml.sax.SAXException
Method childAsURIs

Specified by:
childAsURIs in interface XMLSerializer
Parameters:
o - JAXBObject
fieldName - String
Throws:
org.xml.sax.SAXException
See Also:
XMLSerializer.childAsURIs(JAXBObject, String)

childAsBody

public void childAsBody(com.sun.xml.bind.JAXBObject o,
                        java.lang.String fieldName)
                 throws org.xml.sax.SAXException
Method childAsBody

Specified by:
childAsBody in interface XMLSerializer
Parameters:
o - JAXBObject
fieldName - String
Throws:
org.xml.sax.SAXException
See Also:
XMLSerializer.childAsBody(JAXBObject, String)

childAsElementBody

private void childAsElementBody(java.lang.Object o,
                                ValidatableObject vo)
                         throws org.xml.sax.SAXException
Method childAsElementBody

Parameters:
o - Object
vo - ValidatableObject
Throws:
org.xml.sax.SAXException

childAsAttributeBody

private void childAsAttributeBody(ValidatableObject vo,
                                  java.lang.String fieldName)
                           throws org.xml.sax.SAXException
Method childAsAttributeBody

Parameters:
vo - ValidatableObject
fieldName - String
Throws:
org.xml.sax.SAXException

reportError

public void reportError(javax.xml.bind.ValidationEvent e)
                 throws com.sun.xml.bind.serializer.AbortSerializationException
Method reportError

Specified by:
reportError in interface XMLSerializer
Parameters:
e - ValidationEvent
Throws:
com.sun.xml.bind.serializer.AbortSerializationException
See Also:
XMLSerializer.reportError(ValidationEvent)

onID

public java.lang.String onID(com.sun.xml.bind.marshaller.IdentifiableObject owner,
                             java.lang.String value)
                      throws org.xml.sax.SAXException
Method onID

Specified by:
onID in interface XMLSerializer
Parameters:
owner - IdentifiableObject
value - String
Returns:
String
Throws:
org.xml.sax.SAXException
See Also:
XMLSerializer.onID(IdentifiableObject, String)

onIDREF

public java.lang.String onIDREF(com.sun.xml.bind.marshaller.IdentifiableObject value)
                         throws org.xml.sax.SAXException
Method onIDREF

Specified by:
onIDREF in interface XMLSerializer
Parameters:
value - IdentifiableObject
Returns:
String
Throws:
org.xml.sax.SAXException
See Also:
XMLSerializer.onIDREF(IdentifiableObject)

getBaseUri

public java.lang.String getBaseUri()
Method getBaseUri

Specified by:
getBaseUri in interface org.relaxng.datatype.ValidationContext
Returns:
String
See Also:
ValidationContext.getBaseUri()

isUnparsedEntity

public boolean isUnparsedEntity(java.lang.String entityName)
Method isUnparsedEntity

Specified by:
isUnparsedEntity in interface org.relaxng.datatype.ValidationContext
Parameters:
entityName - String
Returns:
boolean
See Also:
ValidationContext.isUnparsedEntity(String)

isNotation

public boolean isNotation(java.lang.String notation)
Method isNotation

Specified by:
isNotation in interface org.relaxng.datatype.ValidationContext
Parameters:
notation - String
Returns:
boolean
See Also:
ValidationContext.isNotation(String)

onID

public void onID(org.relaxng.datatype.Datatype dt,
                 com.sun.msv.verifier.regexp.StringToken s)
Method onID

Specified by:
onID in interface com.sun.msv.grammar.IDContextProvider2
Parameters:
dt - Datatype
s - StringToken
See Also:
IDContextProvider2.onID(Datatype, StringToken)

resolveNamespacePrefix

public java.lang.String resolveNamespacePrefix(java.lang.String prefix)
Method resolveNamespacePrefix

Specified by:
resolveNamespacePrefix in interface org.relaxng.datatype.ValidationContext
Parameters:
prefix - String
Returns:
String
See Also:
ValidationContext.resolveNamespacePrefix(String)