Methods Summary |
---|
public boolean | addMapping(java.lang.String prefix, java.lang.String uri, org.w3c.dom.Attr n)Adds the mapping for a prefix.
NameSpaceSymbEntry ob = symb.get(prefix);
if ((ob!=null) && uri.equals(ob.uri)) {
//If we have it previously defined. Don't keep working.
return false;
}
//Creates and entry in the table for this new definition.
NameSpaceSymbEntry ne=new NameSpaceSymbEntry(uri,n,false);
needsClone();
symb.put(prefix, ne);
if (ob != null) {
//We have a previous definition store it for the pop.
//Check if a previous definition(not the inmidiatly one) has been rendered.
ne.lastrendered=ob.lastrendered;
if ((ob.lastrendered!=null)&& (ob.lastrendered.equals(uri))) {
//Yes it is. Mark as rendered.
ne.rendered=true;
}
}
return true;
|
public org.w3c.dom.Node | addMappingAndRender(java.lang.String prefix, java.lang.String uri, org.w3c.dom.Attr n)Adds a definition and mark it as render.
For inclusive c14n.
NameSpaceSymbEntry ob = symb.get(prefix);
if ((ob!=null) && uri.equals(ob.uri)) {
if (!ob.rendered) {
ob=(NameSpaceSymbEntry) ob.clone();
needsClone();
symb.put(prefix,ob);
ob.lastrendered=uri;
ob.rendered=true;
return ob.n;
}
return null;
}
NameSpaceSymbEntry ne=new NameSpaceSymbEntry(uri,n,true);
ne.lastrendered=uri;
needsClone();
symb.put(prefix, ne);
if (ob != null) {
if ((ob.lastrendered!=null)&& (ob.lastrendered.equals(uri))) {
ne.rendered=true;
return null;
}
}
return ne.n;
|
public org.w3c.dom.Node | addMappingAndRenderXNodeSet(java.lang.String prefix, java.lang.String uri, org.w3c.dom.Attr n, boolean outputNode)Adds & gets(if needed) the attribute node that defines the binding for the prefix.
Take on account if the rules of rendering in the inclusive c14n.
For inclusive c14n.
NameSpaceSymbEntry ob = symb.get(prefix);
int visibleNameSpaces=nameSpaces;
if ((ob!=null) && uri.equals(ob.uri)) {
if (!ob.rendered) {
ob=(NameSpaceSymbEntry)ob.clone();
needsClone();
symb.put(prefix,ob);
ob.rendered=true;
ob.level=visibleNameSpaces;
return ob.n;
}
ob=(NameSpaceSymbEntry)ob.clone();
needsClone();
symb.put(prefix,ob);
if (outputNode && (((visibleNameSpaces-ob.level)<2) || XMLNS.equals(prefix)) ) {
ob.level=visibleNameSpaces;
return null; //Already rendered, just return nulll
}
ob.level=visibleNameSpaces;
return ob.n;
}
NameSpaceSymbEntry ne=new NameSpaceSymbEntry(uri,n,true);
ne.level=nameSpaces;
ne.rendered=true;
needsClone();
symb.put(prefix, ne);
if (ob != null) {
ne.lastrendered=ob.lastrendered;
if ((ob.lastrendered!=null)&& (ob.lastrendered.equals(uri))) {
ne.rendered=true;
}
}
return ne.n;
|
public org.w3c.dom.Attr | getMapping(java.lang.String prefix)Gets the attribute node that defines the binding for the prefix.
NameSpaceSymbEntry entry=symb.get(prefix);
if (entry==null) {
//There is no definition for the prefix(a bug?).
return null;
}
if (entry.rendered) {
//No need to render an entry already rendered.
return null;
}
// Mark this entry as render.
entry=(NameSpaceSymbEntry) entry.clone();
needsClone();
symb.put(prefix,entry);
entry.rendered=true;
entry.level=nameSpaces;
entry.lastrendered=entry.uri;
// Return the node for outputing.
return entry.n;
|
public org.w3c.dom.Attr | getMappingWithoutRendered(java.lang.String prefix)Gets a definition without mark it as render.
For render in exclusive c14n the namespaces in the include prefixes.
NameSpaceSymbEntry entry= symb.get(prefix);
if (entry==null) {
return null;
}
if (entry.rendered) {
return null;
}
return entry.n;
|
public void | getUnrenderedNodes(java.util.Collection result)Get all the unrendered nodes in the name space.
For Inclusive rendering
//List result=new ArrayList();
Iterator it=symb.entrySet().iterator();
while (it.hasNext()) {
NameSpaceSymbEntry n=(NameSpaceSymbEntry)(it.next());
//put them rendered?
if ((!n.rendered) && (n.n!=null)) {
result.add(n.n);
n.rendered=true;
}
}
|
final void | needsClone()
if (!cloned) {
level.remove(level.size()-1);
level.add(symb);
symb=(SymbMap) symb.clone();
cloned=true;
}
|
public void | outputNodePop()Pop a frame for visible namespace.
nameSpaces--;
pop();
|
public void | outputNodePush()Push a frame for visible namespace.
For Inclusive rendering.
nameSpaces++;
push();
|
public void | pop()Pop a frame.
Inclusive or Exclusive.
int size=level.size()-1;
Object ob= level.remove(size);
if (ob!=null) {
symb=(SymbMap)ob;
if (size==0) {
cloned=false;
} else
cloned=(level.get(size-1)!=symb);
} else {
cloned=false;
}
|
public void | push()Push a frame for a node.
Inclusive or Exclusive.
//Put the number of namespace definitions in the stack.
/**if (cloned) {
Object ob[]= {symb,cloned ? symb : null};
level.add(ob);
} **/
level.add(null);
cloned=false;
|