Package org.apache.xerces.parsers

Source Code of org.apache.xerces.parsers.DOMASBuilderImpl

package org.apache.xerces.parsers;

import java.util.Vector;
import org.apache.xerces.dom.ASModelImpl;
import org.apache.xerces.dom3.as.ASModel;
import org.apache.xerces.dom3.as.DOMASBuilder;
import org.apache.xerces.dom3.as.DOMASException;
import org.apache.xerces.impl.xs.SchemaGrammar;
import org.apache.xerces.impl.xs.XSGrammarBucket;
import org.apache.xerces.util.SymbolTable;
import org.apache.xerces.util.XMLGrammarPoolImpl;
import org.apache.xerces.xni.XNIException;
import org.apache.xerces.xni.grammars.Grammar;
import org.apache.xerces.xni.grammars.XMLGrammarDescription;
import org.apache.xerces.xni.grammars.XMLGrammarPool;
import org.apache.xerces.xni.parser.XMLInputSource;
import org.apache.xerces.xni.parser.XMLParserConfiguration;
import org.w3c.dom.ls.LSInput;

/** @deprecated */
public class DOMASBuilderImpl extends DOMParserImpl
  implements DOMASBuilder
{
  protected static final String SCHEMA_FULL_CHECKING = "http://apache.org/xml/features/validation/schema-full-checking";
  protected static final String ERROR_REPORTER = "http://apache.org/xml/properties/internal/error-reporter";
  protected static final String SYMBOL_TABLE = "http://apache.org/xml/properties/internal/symbol-table";
  protected static final String ENTITY_MANAGER = "http://apache.org/xml/properties/internal/entity-manager";
  protected XSGrammarBucket fGrammarBucket;
  protected ASModelImpl fAbstractSchema;

  public DOMASBuilderImpl()
  {
    super(new XMLGrammarCachingConfiguration());
  }

  public DOMASBuilderImpl(XMLGrammarCachingConfiguration paramXMLGrammarCachingConfiguration)
  {
    super(paramXMLGrammarCachingConfiguration);
  }

  public DOMASBuilderImpl(SymbolTable paramSymbolTable)
  {
    super(new XMLGrammarCachingConfiguration(paramSymbolTable));
  }

  public DOMASBuilderImpl(SymbolTable paramSymbolTable, XMLGrammarPool paramXMLGrammarPool)
  {
    super(new XMLGrammarCachingConfiguration(paramSymbolTable, paramXMLGrammarPool));
  }

  public ASModel getAbstractSchema()
  {
    return this.fAbstractSchema;
  }

  public void setAbstractSchema(ASModel paramASModel)
  {
    this.fAbstractSchema = ((ASModelImpl)paramASModel);
    Object localObject = (XMLGrammarPool)this.fConfiguration.getProperty("http://apache.org/xml/properties/internal/grammar-pool");
    if (localObject == null)
    {
      localObject = new XMLGrammarPoolImpl();
      this.fConfiguration.setProperty("http://apache.org/xml/properties/internal/grammar-pool", localObject);
    }
    if (this.fAbstractSchema != null)
      initGrammarPool(this.fAbstractSchema, (XMLGrammarPool)localObject);
  }

  public ASModel parseASURI(String paramString)
    throws DOMASException, Exception
  {
    XMLInputSource localXMLInputSource = new XMLInputSource(null, paramString, null);
    return parseASInputSource(localXMLInputSource);
  }

  public ASModel parseASInputSource(LSInput paramLSInput)
    throws DOMASException, Exception
  {
    XMLInputSource localXMLInputSource = dom2xmlInputSource(paramLSInput);
    Exception localException;
    try
    {
      return parseASInputSource(localXMLInputSource);
    }
    catch (XNIException localXNIException)
    {
      localException = localXNIException.getException();
    }
    throw localException;
  }

  ASModel parseASInputSource(XMLInputSource paramXMLInputSource)
    throws Exception
  {
    if (this.fGrammarBucket == null)
      this.fGrammarBucket = new XSGrammarBucket();
    initGrammarBucket();
    XMLGrammarCachingConfiguration localXMLGrammarCachingConfiguration = (XMLGrammarCachingConfiguration)this.fConfiguration;
    localXMLGrammarCachingConfiguration.lockGrammarPool();
    SchemaGrammar localSchemaGrammar = localXMLGrammarCachingConfiguration.parseXMLSchema(paramXMLInputSource);
    localXMLGrammarCachingConfiguration.unlockGrammarPool();
    ASModelImpl localASModelImpl = null;
    if (localSchemaGrammar != null)
    {
      localASModelImpl = new ASModelImpl();
      this.fGrammarBucket.putGrammar(localSchemaGrammar, true);
      addGrammars(localASModelImpl, this.fGrammarBucket);
    }
    return localASModelImpl;
  }

  private void initGrammarBucket()
  {
    this.fGrammarBucket.reset();
    if (this.fAbstractSchema != null)
      initGrammarBucketRecurse(this.fAbstractSchema);
  }

  private void initGrammarBucketRecurse(ASModelImpl paramASModelImpl)
  {
    if (paramASModelImpl.getGrammar() != null)
      this.fGrammarBucket.putGrammar(paramASModelImpl.getGrammar());
    for (int i = 0; i < paramASModelImpl.getInternalASModels().size(); i++)
    {
      ASModelImpl localASModelImpl = (ASModelImpl)paramASModelImpl.getInternalASModels().elementAt(i);
      initGrammarBucketRecurse(localASModelImpl);
    }
  }

  private void addGrammars(ASModelImpl paramASModelImpl, XSGrammarBucket paramXSGrammarBucket)
  {
    SchemaGrammar[] arrayOfSchemaGrammar = paramXSGrammarBucket.getGrammars();
    for (int i = 0; i < arrayOfSchemaGrammar.length; i++)
    {
      ASModelImpl localASModelImpl = new ASModelImpl();
      localASModelImpl.setGrammar(arrayOfSchemaGrammar[i]);
      paramASModelImpl.addASModel(localASModelImpl);
    }
  }

  private void initGrammarPool(ASModelImpl paramASModelImpl, XMLGrammarPool paramXMLGrammarPool)
  {
    Grammar[] arrayOfGrammar = new Grammar[1];
    if ((arrayOfGrammar[0] =  = paramASModelImpl.getGrammar()) != null)
      paramXMLGrammarPool.cacheGrammars(arrayOfGrammar[0].getGrammarDescription().getGrammarType(), arrayOfGrammar);
    Vector localVector = paramASModelImpl.getInternalASModels();
    for (int i = 0; i < localVector.size(); i++)
      initGrammarPool((ASModelImpl)localVector.elementAt(i), paramXMLGrammarPool);
  }
}

/* Location:           /home/mnovotny/projects/EMBEDDED_JBOSS_BETA3_COMMUNITY/embedded/output/lib/embedded-jboss/lib/thirdparty-all.jar
* Qualified Name:     org.apache.xerces.parsers.DOMASBuilderImpl
* JD-Core Version:    0.6.0
*/
TOP

Related Classes of org.apache.xerces.parsers.DOMASBuilderImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.