Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
   package org.apache.xerces.dom;
   
   import java.util.Enumeration;
   import java.util.Hashtable;
  import org.w3c.dom.Attr;
  import org.w3c.dom.Node;
  import org.w3c.dom.Text;
  
  public class CoreDocumentImpl extends ParentNode
    implements Document
  {
    static final long serialVersionUID = 0L;
    protected DocumentTypeImpl docType;
    protected ElementImpl docElement;
    transient NodeListCache fFreeNLCache;
    protected String encoding;
    protected String actualEncoding;
    protected String version;
    protected boolean standalone;
    protected String fDocumentURI;
    protected Hashtable userData;
    protected Hashtable identifiers;
    transient DOMNormalizer domNormalizer = null;
    transient DOMConfigurationImpl fConfiguration = null;
    transient Object fXPathEvaluator = null;
    private static final int[] kidOK = new int[13];
    protected int changes = 0;
    protected boolean allowGrammarAccess;
    protected boolean errorChecking = true;
    protected boolean xmlVersionChanged = false;
    private int documentNumber = 0;
    private int nodeCounter = 0;
    private Hashtable nodeTable;
    private boolean xml11Version = false;
  
    public CoreDocumentImpl()
    {
      this(false);
    }
  
    public CoreDocumentImpl(boolean paramBoolean)
    {
      super(null);
      this. = this;
      this. = paramBoolean;
    }
  
    public CoreDocumentImpl(DocumentType paramDocumentType)
    {
      this(paramDocumentTypefalse);
    }
  
    public CoreDocumentImpl(DocumentType paramDocumentTypeboolean paramBoolean)
    {
      this(paramBoolean);
      if (paramDocumentType != null)
      {
        DocumentTypeImpl localDocumentTypeImpl;
        try
        {
          localDocumentTypeImpl = (DocumentTypeImpl)paramDocumentType;
        }
        catch (ClassCastException localClassCastException)
        {
          String str = DOMMessageFormatter.formatMessage("http://www.w3.org/dom/DOMTR""WRONG_DOCUMENT_ERR"null);
          throw new DOMException(4, str);
        }
        localDocumentTypeImpl.ownerDocument = this;
        appendChild(paramDocumentType);
      }
    }
  
    public final Document getOwnerDocument()
   {
     return null;
   }
 
   public short getNodeType()
   {
     return 9;
   }
 
   public String getNodeName()
   {
     return "#document";
   }
 
   public Node cloneNode(boolean paramBoolean)
   {
     CoreDocumentImpl localCoreDocumentImpl = new CoreDocumentImpl();
     callUserDataHandlers(thislocalCoreDocumentImpl, 1);
     cloneNode(localCoreDocumentImplparamBoolean);
     return localCoreDocumentImpl;
   }
 
   protected void cloneNode(CoreDocumentImpl paramCoreDocumentImplboolean paramBoolean)
   {
     if (needsSyncChildren())
       synchronizeChildren();
     if (paramBoolean)
     {
       Hashtable localHashtable = null;
       if (this. != null)
       {
         localHashtable = new Hashtable();
         localObject1 = this..keys();
         while (((Enumeration)localObject1).hasMoreElements())
         {
           Object localObject2 = ((Enumeration)localObject1).nextElement();
           localHashtable.put(this..get(localObject2), localObject2);
         }
       }
       for (Object localObject1 = this.localObject1 != nulllocalObject1 = ((ChildNode)localObject1).)
         paramCoreDocumentImpl.appendChild(paramCoreDocumentImpl.importNode((Node)localObject1truetruelocalHashtable));
     }
     paramCoreDocumentImpl.allowGrammarAccess = this.;
     paramCoreDocumentImpl.errorChecking = this.;
   }
 
   public Node insertBefore(Node paramNode1Node paramNode2)
     throws DOMException
   {
     int i = paramNode1.getNodeType();
     if (this.)
     {
       if (needsSyncChildren())
         synchronizeChildren();
       if (((i == 1) && (this. != null)) || ((i == 10) && (this. != null)))
       {
         String str = DOMMessageFormatter.formatMessage("http://www.w3.org/dom/DOMTR""HIERARCHY_REQUEST_ERR"null);
         throw new DOMException(3, str);
       }
     }
     if ((paramNode1.getOwnerDocument() == null) && ((paramNode1 instanceof DocumentTypeImpl)))
       ((DocumentTypeImpl)paramNode1). = this;
     super.insertBefore(paramNode1paramNode2);
     if (i == 1)
       this. = ((ElementImpl)paramNode1);
     else if (i == 10)
       this. = ((DocumentTypeImpl)paramNode1);
     return paramNode1;
   }
 
   public Node removeChild(Node paramNode)
     throws DOMException
   {
     super.removeChild(paramNode);
     int i = paramNode.getNodeType();
     if (i == 1)
       this. = null;
     else if (i == 10)
       this. = null;
     return paramNode;
   }
 
   public Node replaceChild(Node paramNode1Node paramNode2)
     throws DOMException
   {
     if ((paramNode1.getOwnerDocument() == null) && ((paramNode1 instanceof DocumentTypeImpl)))
       ((DocumentTypeImpl)paramNode1). = this;
     if ((this.) && (((this. != null) && (paramNode2.getNodeType() != 10) && (paramNode1.getNodeType() == 10)) || ((this. != null) && (paramNode2.getNodeType() != 1) && (paramNode1.getNodeType() == 1))))
       throw new DOMException(3, DOMMessageFormatter.formatMessage("http://www.w3.org/dom/DOMTR""HIERARCHY_REQUEST_ERR"null));
     super.replaceChild(paramNode1paramNode2);
     int i = paramNode2.getNodeType();
     if (i == 1)
       this. = ((ElementImpl)paramNode1);
     else if (i == 10)
       this. = ((DocumentTypeImpl)paramNode1);
     return paramNode2;
   }
 
   public String getTextContent()
     throws DOMException
   {
     return null;
   }
 
   public void setTextContent(String paramString)
     throws DOMException
   {
   }
 
   public Object getFeature(String paramString1String paramString2)
   {
     int i = (paramString2 == null) || (paramString2.length() == 0) ? 1 : 0;
     if ((paramString1.equalsIgnoreCase("+XPath")) && ((i != 0) || (paramString2.equals("3.0"))))
     {
       if (this. != null)
         return this.;
       try
       {
         Class localClass = ObjectFactory.findProviderClass("org.apache.xpath.domapi.XPathEvaluatorImpl", ObjectFactory.findClassLoader(), true);
         Constructor localConstructor = localClass.getConstructor(new Class[] { Document.class });
         Class[] arrayOfClass = localClass.getInterfaces();
         for (int j = 0; j < arrayOfClass.lengthj++)
         {
           if (!arrayOfClass[j].getName().equals("org.w3c.dom.xpath.XPathEvaluator"))
             continue;
           this. = localConstructor.newInstance(new Object[] { this });
           return this.;
         }
         return null;
       }
       catch (Exception localException)
       {
         return null;
       }
     }
     return super.getFeature(paramString1paramString2);
   }
 
   public Attr createAttribute(String paramString)
     throws DOMException
   {
     if ((this.) && (!isXMLName(paramStringthis.)))
     {
       String str = DOMMessageFormatter.formatMessage("http://www.w3.org/dom/DOMTR""INVALID_CHARACTER_ERR"null);
       throw new DOMException(5, str);
     }
     return new AttrImpl(thisparamString);
   }
 
   public CDATASection createCDATASection(String paramString)
     throws DOMException
   {
     return new CDATASectionImpl(thisparamString);
   }
 
   public Comment createComment(String paramString)
   {
     return new CommentImpl(thisparamString);
   }
 
   {
     return new DocumentFragmentImpl(this);
   }
 
   public Element createElement(String paramString)
     throws DOMException
   {
     if ((this.) && (!isXMLName(paramStringthis.)))
     {
       String str = DOMMessageFormatter.formatMessage("http://www.w3.org/dom/DOMTR""INVALID_CHARACTER_ERR"null);
       throw new DOMException(5, str);
     }
     return new ElementImpl(thisparamString);
   }
 
   public EntityReference createEntityReference(String paramString)
     throws DOMException
   {
     if ((this.) && (!isXMLName(paramStringthis.)))
     {
       String str = DOMMessageFormatter.formatMessage("http://www.w3.org/dom/DOMTR""INVALID_CHARACTER_ERR"null);
       throw new DOMException(5, str);
     }
     return new EntityReferenceImpl(thisparamString);
   }
 
   public ProcessingInstruction createProcessingInstruction(String paramString1String paramString2)
     throws DOMException
   {
     if ((this.) && (!isXMLName(paramString1this.)))
     {
       String str = DOMMessageFormatter.formatMessage("http://www.w3.org/dom/DOMTR""INVALID_CHARACTER_ERR"null);
       throw new DOMException(5, str);
     }
     return new ProcessingInstructionImpl(thisparamString1paramString2);
   }
 
   public Text createTextNode(String paramString)
   {
     return new TextImpl(thisparamString);
   }
 
   public DocumentType getDoctype()
   {
     if (needsSyncChildren())
       synchronizeChildren();
     return this.;
   }
 
   {
     if (needsSyncChildren())
       synchronizeChildren();
     return this.;
   }
 
   public NodeList getElementsByTagName(String paramString)
   {
     return new DeepNodeListImpl(thisparamString);
   }
 
   {
     return CoreDOMImplementationImpl.getDOMImplementation();
   }
 
   public void setErrorChecking(boolean paramBoolean)
   {
     this. = paramBoolean;
   }
 
   public void setStrictErrorChecking(boolean paramBoolean)
   {
     this. = paramBoolean;
   }
 
   public boolean getErrorChecking()
   {
     return this.;
   }
 
   public boolean getStrictErrorChecking()
   {
     return this.;
   }
 
   public String getInputEncoding()
   {
     return this.;
   }
 
   public void setInputEncoding(String paramString)
   {
     this. = paramString;
   }
 
   public void setXmlEncoding(String paramString)
   {
     this. = paramString;
   }

  

Deprecated:
 
   public void setEncoding(String paramString)
   {
     setXmlEncoding(paramString);
   }
 
   public String getXmlEncoding()
   {
     return this.;
   }

  

Deprecated:
 
   public String getEncoding()
   {
     return getXmlEncoding();
   }
 
   public void setXmlVersion(String paramString)
   {
     if ((paramString.equals("1.0")) || (paramString.equals("1.1")))
     {
       if (!getXmlVersion().equals(paramString))
       {
         this. = true;
         isNormalized(false);
         this. = paramString;
       }
     }
     else
     {
       String str = DOMMessageFormatter.formatMessage("http://www.w3.org/dom/DOMTR""NOT_SUPPORTED_ERR"null);
       throw new DOMException(9, str);
     }
     if (getXmlVersion().equals("1.1"))
       this. = true;
     else
       this. = false;
   }

  

Deprecated:
 
   public void setVersion(String paramString)
   {
     setXmlVersion(paramString);
   }
 
   public String getXmlVersion()
   {
     return this. == null ? "1.0" : this.;
   }

  

Deprecated:
 
   public String getVersion()
   {
     return getXmlVersion();
   }
 
   public void setXmlStandalone(boolean paramBoolean)
     throws DOMException
   {
     this. = paramBoolean;
   }

  

Deprecated:
 
   public void setStandalone(boolean paramBoolean)
   {
     setXmlStandalone(paramBoolean);
   }
 
   public boolean getXmlStandalone()
   {
     return this.;
   }

  

Deprecated:
 
   public boolean getStandalone()
   {
     return getXmlStandalone();
   }
 
   public String getDocumentURI()
   {
     return this.;
   }
 
   public Node renameNode(Node paramNodeString paramString1String paramString2)
     throws DOMException
   {
     if ((this.) && (paramNode.getOwnerDocument() != this) && (paramNode != this))
     {
       localObject1 = DOMMessageFormatter.formatMessage("http://www.w3.org/dom/DOMTR""WRONG_DOCUMENT_ERR"null);
       throw new DOMException(4, (String)localObject1);
     }
     Object localObject3;
     Object localObject2;
     Object localObject4;
     Node localNode1;
     switch (paramNode.getNodeType())
     {
     case 1:
       localObject1 = (ElementImpl)paramNode;
       if ((localObject1 instanceof ElementNSImpl))
       {
         ((ElementNSImpl)localObject1).rename(paramString1paramString2);
         callUserDataHandlers((Node)localObject1, null, 4);
       }
       else if (paramString1 == null)
       {
         if (this.)
         {
           int i = paramString2.indexOf(':');
           if (i != -1)
           {
             localObject3 = DOMMessageFormatter.formatMessage("http://www.w3.org/dom/DOMTR""NAMESPACE_ERR"null);
             throw new DOMException(14, (String)localObject3);
           }
           if (!isXMLName(paramString2this.))
           {
             localObject3 = DOMMessageFormatter.formatMessage("http://www.w3.org/dom/DOMTR""INVALID_CHARACTER_ERR"null);
             throw new DOMException(5, (String)localObject3);
           }
         }
         ((ElementImpl)localObject1).rename(paramString2);
         callUserDataHandlers((Node)localObject1, null, 4);
       }
       else
       {
         localObject2 = new ElementNSImpl(thisparamString1paramString2);
         copyEventListeners((NodeImpl)localObject1, (NodeImpl)localObject2);
         localObject3 = removeUserDataTable((Node)localObject1);
         localObject4 = ((ChildNode)localObject1).getParentNode();
         localNode1 = ((ChildNode)localObject1).getNextSibling();
         if (localObject4 != null)
           ((Node)localObject4).removeChild((Node)localObject1);
         for (Node localNode2 = ((ParentNode)localObject1).getFirstChild(); localNode2 != nulllocalNode2 = ((ParentNode)localObject1).getFirstChild())
         {
           ((ParentNode)localObject1).removeChild(localNode2);
           ((NodeImpl)localObject2).appendChild(localNode2);
         }
         ((ElementImpl)localObject2).moveSpecifiedAttributes((ElementImpl)localObject1);
         setUserDataTable((Node)localObject2, (Hashtable)localObject3);
         callUserDataHandlers((Node)localObject1, (Node)localObject2, 4);
         if (localObject4 != null)
           ((Node)localObject4).insertBefore((Node)localObject2localNode1);
         localObject1 = localObject2;
       }
       renamedElement((Element)paramNode, (Element)localObject1);
       return localObject1;
     case 2:
       localObject1 = (AttrImpl)paramNode;
       localObject2 = ((AttrImpl)localObject1).getOwnerElement();
       if (localObject2 != null)
         ((Element)localObject2).removeAttributeNode((Attr)localObject1);
       if ((paramNode instanceof AttrNSImpl))
       {
         ((AttrNSImpl)localObject1).rename(paramString1paramString2);
         if (localObject2 != null)
           ((Element)localObject2).setAttributeNodeNS((Attr)localObject1);
         callUserDataHandlers((Node)localObject1, null, 4);
       }
       else if (paramString1 == null)
       {
         ((AttrImpl)localObject1).rename(paramString2);
         if (localObject2 != null)
           ((Element)localObject2).setAttributeNode((Attr)localObject1);
         callUserDataHandlers((Node)localObject1, null, 4);
       }
       else
       {
         localObject3 = new AttrNSImpl(thisparamString1paramString2);
         copyEventListeners((NodeImpl)localObject1, (NodeImpl)localObject3);
         localObject4 = removeUserDataTable((Node)localObject1);
         for (localNode1 = ((AttrImpl)localObject1).getFirstChild(); localNode1 != nulllocalNode1 = ((AttrImpl)localObject1).getFirstChild())
         {
           ((AttrImpl)localObject1).removeChild(localNode1);
           ((NodeImpl)localObject3).appendChild(localNode1);
         }
         setUserDataTable((Node)localObject3, (Hashtable)localObject4);
         callUserDataHandlers((Node)localObject1, (Node)localObject3, 4);
         if (localObject2 != null)
           ((Element)localObject2).setAttributeNode((Attr)localObject3);
         localObject1 = localObject3;
       }
       renamedAttrNode((Attr)paramNode, (Attr)localObject1);
       return localObject1;
     }
     Object localObject1 = DOMMessageFormatter.formatMessage("http://www.w3.org/dom/DOMTR""NOT_SUPPORTED_ERR"null);
     throw new DOMException(9, (String)localObject1);
   }
 
   public void normalizeDocument()
   {
     if ((isNormalized()) && (!isNormalizeDocRequired()))
       return;
     if (needsSyncChildren())
       synchronizeChildren();
     if (this. == null)
       this. = new DOMNormalizer();
     if (this. == null)
       this. = new DOMConfigurationImpl();
     else
       this..reset();
     isNormalized(true);
     this. = false;
   }
 
   {
     if (this. == null)
       this. = new DOMConfigurationImpl();
     return this.;
   }
 
   public String getBaseURI()
   {
     if ((this. != null) && (this..length() != 0))
       try
       {
         return new URI(this.).toString();
       }
       catch (URI.MalformedURIException localMalformedURIException)
       {
         return null;
       }
     return this.;
   }
 
   public void setDocumentURI(String paramString)
   {
     this. = paramString;
   }
 
   public boolean getAsync()
   {
     return false;
   }
 
   public void setAsync(boolean paramBoolean)
   {
     if (paramBoolean)
     {
       String str = DOMMessageFormatter.formatMessage("http://www.w3.org/dom/DOMTR""NOT_SUPPORTED_ERR"null);
       throw new DOMException(9, str);
     }
   }
 
   public void abort()
   {
   }
 
   public boolean load(String paramString)
   {
     return false;
   }
 
   public boolean loadXML(String paramString)
   {
     return false;
   }
 
   public String saveXML(Node paramNode)
     throws DOMException
   {
     if ((this.) && (paramNode != null) && (this != paramNode.getOwnerDocument()))
     {
       localObject = DOMMessageFormatter.formatMessage("http://www.w3.org/dom/DOMTR""WRONG_DOCUMENT_ERR"null);
       throw new DOMException(4, (String)localObject);
     }
     Object localObject = (DOMImplementationLS)DOMImplementationImpl.getDOMImplementation();
     LSSerializer localLSSerializer = ((DOMImplementationLS)localObject).createLSSerializer();
     if (paramNode == null)
       paramNode = this;
     return (String)localLSSerializer.writeToString(paramNode);
   }
 
   void setMutationEvents(boolean paramBoolean)
   {
   }
 
   boolean getMutationEvents()
   {
     return false;
   }
 
   public DocumentType createDocumentType(String paramString1String paramString2String paramString3)
     throws DOMException
   {
     return new DocumentTypeImpl(thisparamString1paramString2paramString3);
   }
 
   public Entity createEntity(String paramString)
     throws DOMException
   {
     if ((this.) && (!isXMLName(paramStringthis.)))
     {
       String str = DOMMessageFormatter.formatMessage("http://www.w3.org/dom/DOMTR""INVALID_CHARACTER_ERR"null);
       throw new DOMException(5, str);
     }
     return new EntityImpl(thisparamString);
   }
 
   public Notation createNotation(String paramString)
     throws DOMException
   {
     if ((this.) && (!isXMLName(paramStringthis.)))
     {
       String str = DOMMessageFormatter.formatMessage("http://www.w3.org/dom/DOMTR""INVALID_CHARACTER_ERR"null);
       throw new DOMException(5, str);
     }
     return new NotationImpl(thisparamString);
   }
 
     throws DOMException
   {
     if ((this.) && (!isXMLName(paramStringthis.)))
     {
       String str = DOMMessageFormatter.formatMessage("http://www.w3.org/dom/DOMTR""INVALID_CHARACTER_ERR"null);
       throw new DOMException(5, str);
     }
     return new ElementDefinitionImpl(thisparamString);
   }
 
   protected int getNodeNumber()
   {
     if (this. == 0)
     {
       CoreDOMImplementationImpl localCoreDOMImplementationImpl = (CoreDOMImplementationImpl)CoreDOMImplementationImpl.getDOMImplementation();
       this. = localCoreDOMImplementationImpl.assignDocumentNumber();
     }
     return this.;
   }
 
   protected int getNodeNumber(Node paramNode)
   {
     int i;
     if (this. == null)
     {
       this. = new Hashtable();
       i = --this.;
       this..put(paramNodenew Integer(i));
     }
     else
     {
       Integer localInteger = (Integer)this..get(paramNode);
       if (localInteger == null)
       {
         i = --this.;
         this..put(paramNodenew Integer(i));
       }
       else
       {
         i = localInteger.intValue();
       }
     }
     return i;
   }
 
   public Node importNode(Node paramNodeboolean paramBoolean)
     throws DOMException
   {
     return importNode(paramNodeparamBooleanfalsenull);
   }
 
   private Node importNode(Node paramNodeboolean paramBoolean1boolean paramBoolean2Hashtable paramHashtable)
     throws DOMException
   {
     Object localObject1 = null;
     Hashtable localHashtable = null;
     if ((paramNode instanceof NodeImpl))
       localHashtable = ((NodeImpl)paramNode).getUserDataRecord();
     int i = paramNode.getNodeType();
     Object localObject2;
     NamedNodeMap localNamedNodeMap;
     int k;
     Object localObject4;
     Object localObject3;
     switch (i)
     {
     case 1:
       boolean bool = paramNode.getOwnerDocument().getImplementation().hasFeature("XML""2.0");
       if ((!bool) || (paramNode.getLocalName() == null))
         localObject2 = createElement(paramNode.getNodeName());
       else
         localObject2 = createElementNS(paramNode.getNamespaceURI(), paramNode.getNodeName());
       localNamedNodeMap = paramNode.getAttributes();
       if (localNamedNodeMap != null)
       {
         int j = localNamedNodeMap.getLength();
         for (k = 0; k < jk++)
         {
           Attr localAttr1 = (Attr)localNamedNodeMap.item(k);
           if ((!localAttr1.getSpecified()) && (!paramBoolean2))
             continue;
           Attr localAttr2 = (Attr)importNode(localAttr1trueparamBoolean2paramHashtable);
           if ((!bool) || (localAttr1.getLocalName() == null))
             ((Element)localObject2).setAttributeNode(localAttr2);
           else
             ((Element)localObject2).setAttributeNodeNS(localAttr2);
         }
       }
       if (paramHashtable != null)
       {
         localObject4 = paramHashtable.get(paramNode);
         if (localObject4 != null)
         {
           if (this. == null)
             this. = new Hashtable();
           this..put(localObject4localObject2);
         }
       }
       localObject1 = localObject2;
       break;
     case 2:
       if (paramNode.getOwnerDocument().getImplementation().hasFeature("XML""2.0"))
       {
         if (paramNode.getLocalName() == null)
           localObject1 = createAttribute(paramNode.getNodeName());
         else
           localObject1 = createAttributeNS(paramNode.getNamespaceURI(), paramNode.getNodeName());
       }
       else
         localObject1 = createAttribute(paramNode.getNodeName());
       if ((paramNode instanceof AttrImpl))
       {
         localObject2 = (AttrImpl)paramNode;
         if (((NodeImpl)localObject2).hasStringValue())
         {
           localObject3 = (AttrImpl)localObject1;
           ((AttrImpl)localObject3).setValue(((AttrImpl)localObject2).getValue());
           paramBoolean1 = false;
         }
         else
         {
           paramBoolean1 = true;
         }
       }
       else if (paramNode.getFirstChild() == null)
       {
         ((Node)localObject1).setNodeValue(paramNode.getNodeValue());
         paramBoolean1 = false;
       }
       else
       {
         paramBoolean1 = true;
       }
       break;
     case 3:
       localObject1 = createTextNode(paramNode.getNodeValue());
       break;
     case 4:
       localObject1 = createCDATASection(paramNode.getNodeValue());
       break;
     case 5:
       localObject1 = createEntityReference(paramNode.getNodeName());
       paramBoolean1 = false;
       break;
     case 6:
       localObject2 = (Entity)paramNode;
       localObject3 = (EntityImpl)createEntity(paramNode.getNodeName());
       ((EntityImpl)localObject3).setPublicId(((Entity)localObject2).getPublicId());
       ((EntityImpl)localObject3).setSystemId(((Entity)localObject2).getSystemId());
       ((EntityImpl)localObject3).setNotationName(((Entity)localObject2).getNotationName());
       ((NodeImpl)localObject3).isReadOnly(false);
       localObject1 = localObject3;
       break;
     case 7:
       localObject1 = createProcessingInstruction(paramNode.getNodeName(), paramNode.getNodeValue());
       break;
     case 8:
       localObject1 = createComment(paramNode.getNodeValue());
       break;
     case 10:
       if (!paramBoolean2)
       {
         localObject2 = DOMMessageFormatter.formatMessage("http://www.w3.org/dom/DOMTR""NOT_SUPPORTED_ERR"null);
         throw new DOMException(9, (String)localObject2);
       }
       localObject2 = (DocumentType)paramNode;
       localObject3 = (DocumentTypeImpl)createDocumentType(((Node)localObject2).getNodeName(), ((DocumentType)localObject2).getPublicId(), ((DocumentType)localObject2).getSystemId());
       ((DocumentTypeImpl)localObject3).setInternalSubset(((DocumentType)localObject2).getInternalSubset());
       localNamedNodeMap = ((DocumentType)localObject2).getEntities();
       localObject4 = ((DocumentTypeImpl)localObject3).getEntities();
       if (localNamedNodeMap != null)
         for (k = 0; k < localNamedNodeMap.getLength(); k++)
           ((NamedNodeMap)localObject4).setNamedItem(importNode(localNamedNodeMap.item(k), truetrueparamHashtable));
       localNamedNodeMap = ((DocumentType)localObject2).getNotations();
       localObject4 = ((DocumentTypeImpl)localObject3).getNotations();
       if (localNamedNodeMap != null)
         for (k = 0; k < localNamedNodeMap.getLength(); k++)
           ((NamedNodeMap)localObject4).setNamedItem(importNode(localNamedNodeMap.item(k), truetrueparamHashtable));
       localObject1 = localObject3;
       break;
     case 11:
       localObject1 = createDocumentFragment();
       break;
     case 12:
       localObject2 = (Notation)paramNode;
       localObject3 = (NotationImpl)createNotation(paramNode.getNodeName());
       ((NotationImpl)localObject3).setPublicId(((Notation)localObject2).getPublicId());
       ((NotationImpl)localObject3).setSystemId(((Notation)localObject2).getSystemId());
       localObject1 = localObject3;
       break;
     case 9:
     default:
       localObject2 = DOMMessageFormatter.formatMessage("http://www.w3.org/dom/DOMTR""NOT_SUPPORTED_ERR"null);
       throw new DOMException(9, (String)localObject2);
     }
     if (localHashtable != null)
       callUserDataHandlers(paramNode, (Node)localObject1, 2, localHashtable);
     if (paramBoolean1)
       for (localObject2 = paramNode.getFirstChild(); localObject2 != nulllocalObject2 = ((Node)localObject2).getNextSibling())
         ((Node)localObject1).appendChild(importNode((Node)localObject2trueparamBoolean2paramHashtable));
     if (((Node)localObject1).getNodeType() == 6)
       ((NodeImpl)localObject1).setReadOnly(truetrue);
     return (Node)(Node)(Node)(Node)localObject1;
   }
 
   public Node adoptNode(Node paramNode)
   {
     Hashtable localHashtable = null;
     NodeImpl localNodeImpl;
     try
     {
       localNodeImpl = (NodeImpl)paramNode;
     }
     catch (ClassCastException localClassCastException)
     {
       return null;
     }
     if (paramNode == null)
       return null;
     Object localObject1;
     Object localObject2;
     if ((paramNode != null) && (paramNode.getOwnerDocument() != null))
     {
       localObject1 = getImplementation();
       localObject2 = paramNode.getOwnerDocument().getImplementation();
       if (localObject1 != localObject2)
         if (((localObject1 instanceof DOMImplementationImpl)) && ((localObject2 instanceof DeferredDOMImplementationImpl)))
           undeferChildren(localNodeImpl);
         else if ((!(localObject1 instanceof DeferredDOMImplementationImpl)) || (!(localObject2 instanceof DOMImplementationImpl)))
           return null;
     }
     switch (localNodeImpl.getNodeType())
     {
     case 2:
       localObject1 = (AttrImpl)localNodeImpl;
       if (((AttrImpl)localObject1).getOwnerElement() != null)
         ((AttrImpl)localObject1).getOwnerElement().removeAttributeNode((Attr)localObject1);
       ((NodeImpl)localObject1).isSpecified(true);
       localHashtable = localNodeImpl.getUserDataRecord();
       ((AttrImpl)localObject1).setOwnerDocument(this);
       if (localHashtable == null)
         break;
       setUserDataTable(localNodeImpllocalHashtable);
       break;
     case 6:
     case 12:
       localObject1 = DOMMessageFormatter.formatMessage("http://www.w3.org/dom/DOMTR""NO_MODIFICATION_ALLOWED_ERR"null);
       throw new DOMException(7, (String)localObject1);
     case 9:
     case 10:
       localObject1 = DOMMessageFormatter.formatMessage("http://www.w3.org/dom/DOMTR""NOT_SUPPORTED_ERR"null);
       throw new DOMException(9, (String)localObject1);
     case 5:
       localHashtable = localNodeImpl.getUserDataRecord();
       localObject1 = localNodeImpl.getParentNode();
       if (localObject1 != null)
         ((Node)localObject1).removeChild(paramNode);
       while ((localObject2 = localNodeImpl.getFirstChild()) != null)
         localNodeImpl.removeChild((Node)localObject2);
       localNodeImpl.setOwnerDocument(this);
       if (localHashtable != null)
         setUserDataTable(localNodeImpllocalHashtable);
       if (this. == null)
         break;
       NamedNodeMap localNamedNodeMap = this..getEntities();
       Node localNode1 = localNamedNodeMap.getNamedItem(localNodeImpl.getNodeName());
       if (localNode1 == null)
         break;
       for (localObject2 = localNode1.getFirstChild(); localObject2 != nulllocalObject2 = ((Node)localObject2).getNextSibling())
       {
         Node localNode2 = ((Node)localObject2).cloneNode(true);
         localNodeImpl.appendChild(localNode2);
       }
       break;
     case 1:
       localHashtable = localNodeImpl.getUserDataRecord();
       localObject1 = localNodeImpl.getParentNode();
       if (localObject1 != null)
         ((Node)localObject1).removeChild(paramNode);
       localNodeImpl.setOwnerDocument(this);
       if (localHashtable != null)
         setUserDataTable(localNodeImpllocalHashtable);
       ((ElementImpl)localNodeImpl).reconcileDefaultAttributes();
       break;
     case 3:
     case 4:
     case 7:
     case 8:
     case 11:
     default:
       localHashtable = localNodeImpl.getUserDataRecord();
       localObject1 = localNodeImpl.getParentNode();
       if (localObject1 != null)
         ((Node)localObject1).removeChild(paramNode);
       localNodeImpl.setOwnerDocument(this);
       if (localHashtable == null)
         break;
       setUserDataTable(localNodeImpllocalHashtable);
     }
     if (localHashtable != null)
       callUserDataHandlers(paramNodenull, 5, localHashtable);
     return (Node)(Node)localNodeImpl;
   }
 
   protected void undeferChildren(Node paramNode)
   {
     Node localNode1 = paramNode;
     while (null != paramNode)
     {
       if (((NodeImpl)paramNode).needsSyncData())
         ((NodeImpl)paramNode).synchronizeData();
       NamedNodeMap localNamedNodeMap = paramNode.getAttributes();
       if (localNamedNodeMap != null)
       {
         int i = localNamedNodeMap.getLength();
         for (int j = 0; j < ij++)
           undeferChildren(localNamedNodeMap.item(j));
       }
       Node localNode2 = null;
       localNode2 = paramNode.getFirstChild();
       while (null == localNode2)
       {
         if (localNode1.equals(paramNode))
           break;
         localNode2 = paramNode.getNextSibling();
        if (null != localNode2)
          continue;
        paramNode = paramNode.getParentNode();
        if ((null != paramNode) && (!localNode1.equals(paramNode)))
          continue;
        localNode2 = null;
        break;
      }
      paramNode = localNode2;
    }
  }
  public Element getElementById(String paramString)
  {
    return getIdentifier(paramString);
  }
  protected final void clearIdentifiers()
  {
    if (this. != null)
      this..clear();
  }
  public void putIdentifier(String paramStringElement paramElement)
  {
    if (paramElement == null)
    {
      removeIdentifier(paramString);
      return;
    }
    if (needsSyncData())
      synchronizeData();
    if (this. == null)
      this. = new Hashtable();
    this..put(paramStringparamElement);
  }
  public Element getIdentifier(String paramString)
  {
    if (needsSyncData())
      synchronizeData();
    if (this. == null)
      return null;
    Element localElement = (Element)this..get(paramString);
    if (localElement != null)
      for (Node localNode = localElement.getParentNode(); localNode != nulllocalNode = localNode.getParentNode())
        if (localNode == this)
          return localElement;
    return null;
  }
  public void removeIdentifier(String paramString)
  {
    if (needsSyncData())
      synchronizeData();
    if (this. == null)
      return;
    this..remove(paramString);
  }
  {
    if (needsSyncData())
      synchronizeData();