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
   6  * or more contributor license agreements. See the NOTICE file
   7  * distributed with this work for additional information
   8  * regarding copyright ownership. The ASF licenses this file
   9  * to you under the Apache License, Version 2.0 (the  "License");
  10  * you may not use this file except in compliance with the License.
  11  * 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.xml.internal.serializer.dom3;
  23 
  24 //import org.apache.xerces.dom3.DOMStringList;
  25 import java.util.ArrayList;
  26 import java.util.List;
  27 import org.w3c.dom.DOMStringList;
  28 
  29 /**
  30  * This class implemets the DOM Level 3 Core interface DOMStringList.
  31  *
  32  * @xsl.usage internal
  33  * @LastModified: Oct 2017
  34  */
  35 final class DOMStringListImpl implements DOMStringList {
  36 
  37     //A collection of DOMString values
  38     private List<String> fStrings;
  39 
  40     /**
  41      * Construct an empty list of DOMStringListImpl
  42      */
  43     DOMStringListImpl() {
  44         fStrings = new ArrayList<>();
  45     }
  46 
  47     /**
  48      * Construct an empty list of DOMStringListImpl
  49      */
  50     DOMStringListImpl(List<String> params) {
  51         fStrings = params;
  52     }
  53 
  54     /**
  55      * Construct an empty list of DOMStringListImpl
  56      */
  57     DOMStringListImpl(String[] params ) {
  58         fStrings = new ArrayList<>();
  59         if (params != null) {
  60             for (int i=0; i < params.length; i++) {
  61                 fStrings.add(params[i]);
  62             }
  63         }
  64     }
  65 
  66     /**
  67      * @see org.apache.xerces.dom3.DOMStringList#item(int)
  68      */
  69     public String item(int index) {
  70         try {
  71             return fStrings.get(index);
  72         } catch (IndexOutOfBoundsException e) {
  73             return null;
  74         }
  75     }
  76 
  77     /**
  78      * @see org.apache.xerces.dom3.DOMStringList#getLength()
  79      */
  80     public int getLength() {
  81         return fStrings.size();
  82     }
  83 
  84     /**
  85      * @see org.apache.xerces.dom3.DOMStringList#contains(String)
  86      */
  87     public boolean contains(String param) {
  88         return fStrings.contains(param) ;
  89     }
  90 
  91     /**
  92      * DOM Internal:
  93      * Add a <code>DOMString</code> to the list.
  94      *
  95      * @param domString A string to add to the list
  96      */
  97     public void add(String param) {
  98         fStrings.add(param);
  99     }
 100 
 101 }