1 /*
2 * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
3 * @LastModified: Oct 2017
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
22 package com.sun.org.apache.xerces.internal.impl.xs;
23
24 import com.sun.org.apache.xerces.internal.xs.StringList;
25 import java.util.AbstractList;
26
27 /**
28 * StringList implementation for schema error codes and error messages.
29 *
30 * @xerces.internal
31 *
32 * @author Michael Glavassevich, IBM
33 *
34 */
35 final class PSVIErrorList extends AbstractList<String> implements StringList {
36
37 private final String[] fArray;
38 private final int fLength;
39 private final int fOffset;
40
41 public PSVIErrorList(String[] array, boolean even) {
42 fArray = array;
43 fLength = (fArray.length >> 1);
44 fOffset = even ? 0 : 1;
45 }
46
47 public boolean contains(String item) {
48 if (item == null) {
49 for (int i = 0; i < fLength; ++i) {
50 if (fArray[(i << 1) + fOffset] == null) {
51 return true;
52 }
53 }
54 }
55 else {
56 for (int i = 0; i < fLength; ++i) {
57 if (item.equals(fArray[(i << 1) + fOffset])) {
58 return true;
59 }
60 }
61 }
62 return false;
63 }
64
65 public int getLength() {
66 return fLength;
67 }
68
69 public String item(int index) {
70 if (index < 0 || index >= fLength) {
71 return null;
72 }
73 return fArray[(index << 1) + fOffset];
74 }
75
76 /*
77 * List methods
78 */
79
80 public String get(int index) {
81 if (index >= 0 && index < fLength) {
82 return fArray[(index << 1) + fOffset];
83 }
84 throw new IndexOutOfBoundsException("Index: " + index);
85 }
86
87 public int size() {
88 return getLength();
89 }
90
91 } // class PSVIErrorList
--- EOF ---