validParent = true;
}
}
if ( !validParent )
{
throw new SAXParseException( "<" + localName + "> has an invalid parent element",
getLocator( ) );
}
}
// check valid peers
// null peer means localname is rule-set
Object peer = this.peer;
Object allowedPeer;
Iterator it = validPeers.iterator( );
while ( !validPeer && it.hasNext( ) )
{
allowedPeer = it.next( );
if ( peer == null && allowedPeer == null )
{
validPeer = true;
}
else if ( allowedPeer != null && ((Class) allowedPeer).isInstance( peer ) )
{
validPeer = true;
}
}
if ( !validPeer )
{
throw new SAXParseException( "<" + localName + "> is after an invalid element",
getLocator( ) );
}
if ( !allowNesting )
{
it = this.parents.iterator( );
while ( !invalidNesting && it.hasNext( ) )
{
if ( nodeClass.isInstance( it.next( ) ) )
{
invalidNesting = true;
}
}
}
if ( invalidNesting )
{
throw new SAXParseException( "<" + localName + "> may not be nested",
getLocator( ) );
}
}