1 /*
2 Copyright (C) 2007 Grid Systems, S.A.
3
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 2.1 of the License, or (at your option) any later version.
8
9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Lesser General Public License for more details.
13
14 You should have received a copy of the GNU Lesser General Public
15 License along with this library; if not, write to the Free Software
16 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 */
18 package com.gridsystems.nextgrid.api.pom;
19
20 import java.net.URI;
21 import java.util.Map;
22
23 import javax.xml.namespace.QName;
24
25 import nextgrid.api.pom.Grounding;
26
27 /**
28 * AbstractGroundingImpl type.
29 *
30 * @author Rodrigo Ruiz
31 */
32 public abstract class AbstractGroundingImpl implements Grounding {
33
34 /**
35 * Grounding type URI.
36 */
37 private final URI type;
38
39 /**
40 * Attribute description map.
41 */
42 private final Map<QName, String> attrs;
43
44 /**
45 * Creates a new instance.
46 *
47 * @param type Grounding type URI
48 * @param attrs Attribute description map
49 */
50 public AbstractGroundingImpl(URI type, Map<QName, String> attrs) {
51 this.type = type;
52 this.attrs = attrs;
53 }
54
55 /**
56 * {@inheritDoc}
57 */
58 public final Map<QName, String> getSupportedAttribs() {
59 return this.attrs;
60 }
61
62
63 /**
64 * {@inheritDoc}
65 */
66 public final URI getType() {
67 return this.type;
68 }
69
70
71 /**
72 * Creates a grounding attribute QName, using NS_GROUNDING as the namespace.
73 *
74 * @param localName The attribute local name
75 * @return The attribute QName
76 */
77 protected static QName attr(String localName) {
78 return new QName(NS_GROUNDING, localName);
79 }
80 }