1 /*
2  * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * This code is free software; you can redistribute it and/or modify it
6  * under the terms of the GNU General Public License version 2 only, as
7  * published by the Free Software Foundation.  Oracle designates this
8  * particular file as subject to the "Classpath" exception as provided
9  * by Oracle in the LICENSE file that accompanied this code.
10  *
11  * This code is distributed in the hope that it will be useful, but WITHOUT
12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14  * version 2 for more details (a copy is included in the LICENSE file that
15  * accompanied this code).
16  *
17  * You should have received a copy of the GNU General Public License version
18  * 2 along with this work; if not, write to the Free Software Foundation,
19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20  *
21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22  * or visit www.oracle.com if you need additional information or have any
23  * questions.
24  */
25 
26 package sun.awt.X11;
27 
28 import java.util.HashMap;
29 import java.util.Iterator;
30 import java.util.Map;
31 
32 @SuppressWarnings("serial") // JDK-implementation class
33 public class XCreateWindowParams extends HashMap<Object, Object> {
XCreateWindowParams()34     public XCreateWindowParams() {
35     }
XCreateWindowParams(Object[] map)36     public XCreateWindowParams(Object[] map) {
37         init(map);
38     }
init(Object[] map)39     private void init(Object[] map) {
40         if (map.length % 2 != 0) {
41             throw new IllegalArgumentException("Map size should be devisible by two");
42         }
43         for (int i = 0; i < map.length; i += 2) {
44             put(map[i], map[i+1]);
45         }
46     }
47 
putIfNull(Object key, Object value)48     public XCreateWindowParams putIfNull(Object key, Object value) {
49         if (!containsKey(key)) {
50             put(key, value);
51         }
52         return this;
53     }
putIfNull(Object key, int value)54     public XCreateWindowParams putIfNull(Object key, int value) {
55         if (!containsKey(key)) {
56             put(key, Integer.valueOf(value));
57         }
58         return this;
59     }
putIfNull(Object key, long value)60     public XCreateWindowParams putIfNull(Object key, long value) {
61         if (!containsKey(key)) {
62             put(key, Long.valueOf(value));
63         }
64         return this;
65     }
66 
add(Object key, Object value)67     public XCreateWindowParams add(Object key, Object value) {
68         put(key, value);
69         return this;
70     }
add(Object key, int value)71     public XCreateWindowParams add(Object key, int value) {
72         put(key, Integer.valueOf(value));
73         return this;
74     }
add(Object key, long value)75     public XCreateWindowParams add(Object key, long value) {
76         put(key, Long.valueOf(value));
77         return this;
78     }
delete(Object key)79     public XCreateWindowParams delete(Object key) {
80         remove(key);
81         return this;
82     }
toString()83     public String toString() {
84         StringBuffer buf = new StringBuffer();
85         Iterator<Map.Entry<Object, Object>> eIter = entrySet().iterator();
86         while (eIter.hasNext()) {
87             Map.Entry<Object, Object> entry = eIter.next();
88             buf.append(entry.getKey() + ": " + entry.getValue() + "\n");
89         }
90         return buf.toString();
91     }
92 
93 }
94