1/* 2 * reserved comment block 3 * DO NOT REMOVE OR ALTER! 4 */ 5/* 6 * Licensed to the Apache Software Foundation (ASF) under one or more 7 * contributor license agreements. See the NOTICE file distributed with 8 * this work for additional information regarding copyright ownership. 9 * The ASF licenses this file to You under the Apache License, Version 2.0 10 * (the "License"); you may not use this file except in compliance with 11 * the License. You may obtain a copy of the License at 12 * 13 * http://www.apache.org/licenses/LICENSE-2.0 14 * 15 * Unless required by applicable law or agreed to in writing, software 16 * distributed under the License is distributed on an "AS IS" BASIS, 17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 * See the License for the specific language governing permissions and 19 * limitations under the License. 20 */ 21 22package com.sun.org.apache.xerces.internal.impl.validation; 23 24import java.util.Iterator; 25 26/** 27 * <p>An extension of ValidationState which can be configured to turn 28 * off checking for ID/IDREF errors and unparsed entity errors.</p> 29 * 30 * @xerces.internal 31 * 32 * @author Peter McCracken, IBM 33 */ 34public final class ConfigurableValidationState extends ValidationState { 35 36 /** 37 * Whether to check for ID/IDREF errors 38 */ 39 private boolean fIdIdrefChecking; 40 41 /** 42 * Whether to check for unparsed entity errors 43 */ 44 private boolean fUnparsedEntityChecking; 45 46 /** 47 * Creates a new ConfigurableValidationState. 48 * By default, error checking for both ID/IDREFs 49 * and unparsed entities are turned on. 50 */ 51 public ConfigurableValidationState() { 52 super(); 53 fIdIdrefChecking = true; 54 fUnparsedEntityChecking = true; 55 } 56 57 /** 58 * Turns checking for ID/IDREF errors on and off. 59 * @param setting true to turn on error checking, 60 * false to turn off error checking 61 */ 62 public void setIdIdrefChecking(boolean setting) { 63 fIdIdrefChecking = setting; 64 } 65 66 /** 67 * Turns checking for unparsed entity errors on and off. 68 * @param setting true to turn on error checking, 69 * false to turn off error checking 70 */ 71 public void setUnparsedEntityChecking(boolean setting) { 72 fUnparsedEntityChecking = setting; 73 } 74 75 /** 76 * Checks if all IDREFs have a corresponding ID. 77 * @return null, if ID/IDREF checking is turned off 78 * otherwise, returns the value of the super implementation 79 */ 80 public Iterator checkIDRefID() { 81 return (fIdIdrefChecking) ? super.checkIDRefID() : null; 82 } 83 84 /** 85 * Checks if an ID has already been declared. 86 * @return false, if ID/IDREF checking is turned off 87 * otherwise, returns the value of the super implementation 88 */ 89 public boolean isIdDeclared(String name) { 90 return (fIdIdrefChecking) ? super.isIdDeclared(name) : false; 91 } 92 93 /** 94 * Checks if an entity is declared. 95 * @return true, if unparsed entity checking is turned off 96 * otherwise, returns the value of the super implementation 97 */ 98 public boolean isEntityDeclared(String name) { 99 return (fUnparsedEntityChecking) ? super.isEntityDeclared(name) : true; 100 } 101 102 /** 103 * Checks if an entity is unparsed. 104 * @return true, if unparsed entity checking is turned off 105 * otherwise, returns the value of the super implementation 106 */ 107 public boolean isEntityUnparsed(String name) { 108 return (fUnparsedEntityChecking) ? super.isEntityUnparsed(name) : true; 109 } 110 111 /** 112 * Adds the ID, if ID/IDREF checking is enabled. 113 * @param name the ID to add 114 */ 115 public void addId(String name) { 116 if (fIdIdrefChecking) { 117 super.addId(name); 118 } 119 } 120 121 /** 122 * Adds the IDREF, if ID/IDREF checking is enabled. 123 * @param name the IDREF to add 124 */ 125 public void addIdRef(String name) { 126 if (fIdIdrefChecking) { 127 super.addIdRef(name); 128 } 129 } 130} 131