com.raritantechnologies.xml.sax.filter.selectors
Class ElementAndSelector

java.lang.Object
  extended bycom.raritantechnologies.xml.sax.filter.ElementSelector
      extended bycom.raritantechnologies.xml.sax.filter.selectors.ElementAndSelector

public class ElementAndSelector
extends ElementSelector

Subclass of ElementSelector that can select an element if two contained ElementSelectors "agree". Used with SAXDeleteFilter.
Developed by Raritan Technologies Inc..

Author:
Ted Sullivan

Nested Class Summary
 
Nested classes inherited from class com.raritantechnologies.xml.sax.filter.ElementSelector
ElementSelector.ElementData
 
Constructor Summary
ElementAndSelector(ElementSelector selA, ElementSelector selB)
          Select only if two deleters agree.
 
Method Summary
 boolean couldSelectElement(java.lang.String path, int startIndex, java.lang.String uri, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes attrs)
          Signals that the element could be selected.
 int getEndMark(int startIndex)
           
 void processCharacters(java.lang.String path, char[] ch, int start, int length)
          sets the Element at path to be deleted if the data comparator matches input.
 void processChildElement(java.lang.String childPath, ElementSelector.ElementData parentElement, java.lang.String uri, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes attrs)
          subclasses can override this to select parent tag based on contents of child tags.
 void reset()
           
 void setEndMark(java.lang.String path, int endIndex)
          Called by SAXDeleteFilter to mark end of processed element.
 boolean shouldSelectElement(int startIndex)
          This method is called by SAXDeleteFilter to determine if this ElementSelector has any Elements that start at the given index and that should be selected.
 
Methods inherited from class com.raritantechnologies.xml.sax.filter.ElementSelector
initialize, processChildElement, selectElement, setSelecting
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ElementAndSelector

public ElementAndSelector(ElementSelector selA,
                          ElementSelector selB)
Select only if two deleters agree.

Method Detail

couldSelectElement

public boolean couldSelectElement(java.lang.String path,
                                  int startIndex,
                                  java.lang.String uri,
                                  java.lang.String localName,
                                  java.lang.String qName,
                                  org.xml.sax.Attributes attrs)
Description copied from class: ElementSelector
Signals that the element could be selected. Uses contained ElementComparator to check if the element is deletable by this ElementSelector.

Overrides:
couldSelectElement in class ElementSelector

setEndMark

public void setEndMark(java.lang.String path,
                       int endIndex)
Description copied from class: ElementSelector
Called by SAXDeleteFilter to mark end of processed element. If the element is going to be selected, we need to save it because a new sibling element could come along.

Overrides:
setEndMark in class ElementSelector

processChildElement

public void processChildElement(java.lang.String childPath,
                                ElementSelector.ElementData parentElement,
                                java.lang.String uri,
                                java.lang.String localName,
                                java.lang.String qName,
                                org.xml.sax.Attributes attrs)
Description copied from class: ElementSelector
subclasses can override this to select parent tag based on contents of child tags. using elementData.setSelecting( )

Overrides:
processChildElement in class ElementSelector

processCharacters

public void processCharacters(java.lang.String path,
                              char[] ch,
                              int start,
                              int length)
sets the Element at path to be deleted if the data comparator matches input.

Overrides:
processCharacters in class ElementSelector

shouldSelectElement

public boolean shouldSelectElement(int startIndex)
Description copied from class: ElementSelector
This method is called by SAXDeleteFilter to determine if this ElementSelector has any Elements that start at the given index and that should be selected. Either: we have an element at this index that shouldn't be selected, should be selected or we don't have an element at this index.

Overrides:
shouldSelectElement in class ElementSelector

getEndMark

public int getEndMark(int startIndex)
Overrides:
getEndMark in class ElementSelector

reset

public void reset()
Overrides:
reset in class ElementSelector