JOGL v2.6.0-rc-20250722
JOGL, High-Performance Graphics Binding for Java™ (public API).
OrderedProperties.java
Go to the documentation of this file.
1/**
2 * Copyright 2012-2025 JogAmp Community. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without modification, are
5 * permitted provided that the following conditions are met:
6 *
7 * 1. Redistributions of source code must retain the above copyright notice, this list of
8 * conditions and the following disclaimer.
9 *
10 * 2. Redistributions in binary form must reproduce the above copyright notice, this list
11 * of conditions and the following disclaimer in the documentation and/or other materials
12 * provided with the distribution.
13 *
14 * THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED
15 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
16 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
19 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
20 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
21 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
22 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 *
24 * The views and conclusions contained in the software and documentation are those of the
25 * authors and should not be interpreted as representing official policies, either expressed
26 * or implied, of JogAmp Community.
27 */
28package com.jogamp.opengl.demos.androidfat;
29
30import java.util.ArrayList;
31import java.util.HashMap;
32import java.util.Iterator;
33import java.util.List;
34import java.util.Map;
35
36public class OrderedProperties {
37 HashMap<String, String> map = new HashMap<String, String>();
38 ArrayList<String> keyList = new ArrayList<String>();
39
40 public final void setProperty(final String key, final String value) {
41 final String oval = map.put(key, value);
42 if(null != oval) {
43 map.put(key, oval); // restore
44 throw new IllegalArgumentException("Property overwriting not allowed: "+key+": "+oval+" -> "+value);
45 }
46 keyList.add(key); // new key
47 }
48
49 public final void addAll(final OrderedProperties props) {
50 final Iterator<String> argKeys = props.keyList.iterator();
51 while(argKeys.hasNext()) {
52 final String key = argKeys.next();
53 setProperty(key, props.map.get(key));
54 }
55 }
56
57 public final void setSystemProperties() {
58 final Iterator<String> argKeys = keyList.iterator();
59 while(argKeys.hasNext()) {
60 final String key = argKeys.next();
61 System.setProperty(key, map.get(key));
62 }
63 }
64 public final void clearSystemProperties() {
65 final Iterator<String> argKeys = keyList.iterator();
66 while(argKeys.hasNext()) {
67 System.clearProperty(argKeys.next());
68 }
69 }
70
71 public final String getProperty(final String key) { return map.get(key); }
72 public final Map<String, String> getProperties() { return map; }
73
74 /** Returns the list of property keys in the order, as they were added. */
75 public final List<String> getPropertyKeys() { return keyList; }
76
77}
final void setProperty(final String key, final String value)
final List< String > getPropertyKeys()
Returns the list of property keys in the order, as they were added.
final void setProperty(final String key, final String value)
final void addAll(final OrderedProperties props)