View Javadoc
1   package org.sentrysoftware.jawk.jrt;
2   
3   /*-
4    * ╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲
5    * Jawk
6    * ჻჻჻჻჻჻
7    * Copyright (C) 2006 - 2023 Sentry Software
8    * ჻჻჻჻჻჻
9    * This program is free software: you can redistribute it and/or modify
10   * it under the terms of the GNU Lesser General Public License as
11   * published by the Free Software Foundation, either version 3 of the
12   * License, or (at your option) any later version.
13   *
14   * This program is distributed in the hope that it will be useful,
15   * but WITHOUT ANY WARRANTY; without even the implied warranty of
16   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17   * GNU General Lesser Public License for more details.
18   *
19   * You should have received a copy of the GNU General Lesser Public
20   * License along with this program.  If not, see
21   * <http://www.gnu.org/licenses/lgpl-3.0.html>.
22   * ╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱
23   */
24  
25  import java.util.ArrayList;
26  import java.util.List;
27  import java.util.Set;
28  
29  /**
30   * Implement the KeyList interface with an ArrayList.
31   *
32   * @author Danny Daglas
33   */
34  //public class KeyListImpl extends ArrayList<Object> implements KeyList
35  public class KeyListImpl implements KeyList {
36  
37  	private List<Object> list;
38  
39  	/**
40  	 * Convert the set to a KeyList.
41  	 * We could have used an ArrayList directly. However, tagging
42  	 * the implementation with a KeyList interface improves type
43  	 * checking within the parsing / semantic analysis phase.
44  	 *
45  	 * @param set a {@link java.util.Set} object
46  	 */
47  	public KeyListImpl(Set<Object> set) {
48  		//super(set);
49  		list = new ArrayList<Object>(set);
50  	}
51  
52  	/** {@inheritDoc} */
53  	@Override
54  	public final Object getFirstAndRemove() {
55  		return list.remove(0);
56  	}
57  
58  	/** {@inheritDoc} */
59  	@Override
60  	public int size() {
61  		return list.size();
62  	}
63  }