1 /*
2  * reserved comment block
3  * DO NOT REMOVE OR ALTER!
4  */
5 /*
6  * Copyright 2004 The Apache Software Foundation.
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * 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 package com.sun.org.apache.xerces.internal.impl.xs.traversers;
21 
22 import org.w3c.dom.Element;
23 import com.sun.org.apache.xerces.internal.impl.xs.opti.ElementImpl;
24 
25 /**
26  * Objects of this class contain the textual representation of
27  * an XML schema annotation as well as information on the location
28  * of the annotation in the document it originated from.
29  *
30  * @xerces.internal
31  *
32  * @author Michael Glavassevich, IBM
33  */
34 final class XSAnnotationInfo {
35 
36     /** Textual representation of annotation. **/
37     String fAnnotation;
38 
39     /** Line number of <annotation> element. **/
40     int fLine;
41 
42     /** Column number of <annotation> element. **/
43     int fColumn;
44 
45     /** Character offset of <annotation> element. **/
46     int fCharOffset;
47 
48     /** Next annotation. **/
49     XSAnnotationInfo next;
50 
XSAnnotationInfo(String annotation, int line, int column, int charOffset)51     XSAnnotationInfo(String annotation, int line, int column, int charOffset) {
52         fAnnotation = annotation;
53         fLine = line;
54         fColumn = column;
55         fCharOffset = charOffset;
56     }
57 
XSAnnotationInfo(String annotation, Element annotationDecl)58     XSAnnotationInfo(String annotation, Element annotationDecl) {
59         fAnnotation = annotation;
60         if (annotationDecl instanceof ElementImpl) {
61             final ElementImpl annotationDeclImpl = (ElementImpl) annotationDecl;
62             fLine = annotationDeclImpl.getLineNumber();
63             fColumn = annotationDeclImpl.getColumnNumber();
64             fCharOffset = annotationDeclImpl.getCharacterOffset();
65         }
66         else {
67             fLine = -1;
68             fColumn = -1;
69             fCharOffset = -1;
70         }
71     }
72 } // XSAnnotationInfo
73