1 /* 2 * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. 3 */ 4 /* 5 * Licensed to the Apache Software Foundation (ASF) under one or more 6 * contributor license agreements. See the NOTICE file distributed with 7 * this work for additional information regarding copyright ownership. 8 * The ASF licenses this file to You under the Apache License, Version 2.0 9 * (the "License"); you may not use this file except in compliance with 10 * the License. You may obtain a copy of the License at 11 * 12 * http://www.apache.org/licenses/LICENSE-2.0 13 * 14 * Unless required by applicable law or agreed to in writing, software 15 * distributed under the License is distributed on an "AS IS" BASIS, 16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 * See the License for the specific language governing permissions and 18 * limitations under the License. 19 */ 20 21 package com.sun.org.apache.xerces.internal.jaxp.validation; 22 23 import com.sun.org.apache.xerces.internal.xni.grammars.Grammar; 24 import com.sun.org.apache.xerces.internal.xni.grammars.XMLGrammarDescription; 25 import com.sun.org.apache.xerces.internal.xni.grammars.XMLGrammarPool; 26 27 /** 28 * <p>Implementation of Schema for W3C XML Schemas which 29 * contains schema components from one target namespace.</p> 30 * 31 * @author Michael Glavassevich, IBM 32 * @LastModified: Nov 2017 33 */ 34 final class SimpleXMLSchema extends AbstractXMLSchema implements XMLGrammarPool { 35 36 /** Zero length grammar array. */ 37 private static final Grammar [] ZERO_LENGTH_GRAMMAR_ARRAY = new Grammar [0]; 38 39 private Grammar fGrammar; 40 private Grammar[] fGrammars; 41 private XMLGrammarDescription fGrammarDescription; 42 43 public SimpleXMLSchema(Grammar grammar) { 44 fGrammar = grammar; 45 fGrammars = new Grammar[] {grammar}; 46 fGrammarDescription = grammar.getGrammarDescription(); 47 } 48 49 /* 50 * XMLGrammarPool methods 51 */ 52 53 public Grammar[] retrieveInitialGrammarSet(String grammarType) { 54 return XMLGrammarDescription.XML_SCHEMA.equals(grammarType) ? 55 fGrammars.clone() : ZERO_LENGTH_GRAMMAR_ARRAY; 56 } 57 58 public void cacheGrammars(String grammarType, Grammar[] grammars) {} 59 60 public Grammar retrieveGrammar(XMLGrammarDescription desc) { 61 return fGrammarDescription.equals(desc) ? fGrammar : null; 62 } 63 64 public void lockPool() {} 65 66 public void unlockPool() {} 67 68 public void clear() {} 69 70 /* 71 * XSGrammarPoolContainer methods 72 */ 73 74 public XMLGrammarPool getGrammarPool() { 75 return this; 76 } 77 78 public boolean isFullyComposed() { 79 return true; 80 } 81 82 } // SimpleXMLSchema