-
Notifications
You must be signed in to change notification settings - Fork 33
/
DestinationElement.java
112 lines (99 loc) · 4.67 KB
/
DestinationElement.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
/*
* Copyright (c) 2000, 2017 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2021, 2022 Contributors to the Eclipse Foundation
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* This Source Code may also be made available under the following Secondary
* Licenses when the conditions for such availability set forth in the
* Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
* version 2 with the GNU Classpath Exception, which is available at
* https://www.gnu.org/software/classpath/license.html.
*
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
*/
package com.sun.messaging.bridge.service.jms.xml;
import java.util.*;
import com.sun.messaging.bridge.service.jms.JMSBridge;
import com.sun.messaging.bridge.service.jms.resources.JMSBridgeResources;
/**
*
* @author amyk
*/
public class DestinationElement {
private Properties _attrs = null;
private Properties _props = null;
private String _type = null;
/** @throws IllegalArgumentException */
public void setAttributes(Properties a) {
if (a != null) {
String refname = a.getProperty(JMSBridgeXMLConstant.Common.REFNAME);
if (refname.equals(DMQElement.BUILTIN_DMQ_DESTNAME) || refname.equals(DMQElement.BUILTIN_DMQ_NAME)
|| refname.equals(JMSBridgeXMLConstant.Target.DESTINATIONREF_AS_SOURCE)) {
throw new IllegalArgumentException(JMSBridge.getJMSBridgeResources().getKString(JMSBridgeResources.X_XML_IS_RESERVED,
JMSBridgeXMLConstant.Destination.REFNAME + "=" + refname));
}
if (a.getProperty(JMSBridgeXMLConstant.Destination.LOOKUPNAME) == null) {
String name = a.getProperty(JMSBridgeXMLConstant.Destination.NAME);
if (name == null) {
String[] params = { JMSBridgeXMLConstant.Destination.LOOKUPNAME, JMSBridgeXMLConstant.Destination.NAME,
JMSBridgeXMLConstant.Element.DESTINATION };
throw new IllegalArgumentException(
JMSBridge.getJMSBridgeResources().getKString(JMSBridgeResources.X_XML_NO_LOOKUP_NO_NAME_ELEMENT, params));
}
if (name.equals(DMQElement.BUILTIN_DMQ_DESTNAME)) {
throw new IllegalArgumentException(JMSBridge.getJMSBridgeResources().getKString(JMSBridgeResources.X_XML_IS_RESERVED,
JMSBridgeXMLConstant.Destination.NAME + "=" + name));
}
}
}
_attrs = a;
}
public void setProperties(Properties a) {
_props = a;
}
public Properties getAttributes() {
return _attrs;
}
public Properties getProperties() {
return _props;
}
public String getName() throws Exception {
String name = _attrs.getProperty(JMSBridgeXMLConstant.Destination.NAME);
String lookup = _attrs.getProperty(JMSBridgeXMLConstant.Destination.LOOKUPNAME);
if (lookup != null) {
throw new UnsupportedOperationException("Called when " + JMSBridgeXMLConstant.Destination.LOOKUPNAME + " is specified");
}
if (name == null) {
throw new IllegalArgumentException(JMSBridge.getJMSBridgeResources().getKString(JMSBridgeResources.X_XML_ATTR_NOT_SPECIFIED,
JMSBridgeXMLConstant.Destination.NAME, JMSBridgeXMLConstant.Element.DESTINATION));
}
return name;
}
public String getLookupName() {
return _attrs.getProperty(JMSBridgeXMLConstant.Destination.LOOKUPNAME);
}
public String getRefName() {
return _attrs.getProperty(JMSBridgeXMLConstant.Destination.REFNAME);
}
public boolean isQueue() throws Exception {
if (_type == null) {
_type = _attrs.getProperty(JMSBridgeXMLConstant.Destination.TYPE);
}
if (getLookupName() != null) {
throw new UnsupportedOperationException("Called when " + JMSBridgeXMLConstant.Destination.LOOKUPNAME + " is specified");
}
if (_type == null) {
throw new IllegalArgumentException(JMSBridge.getJMSBridgeResources().getKString(JMSBridgeResources.X_XML_ATTR_NOT_SPECIFIED,
JMSBridgeXMLConstant.Destination.TYPE, JMSBridgeXMLConstant.Element.DESTINATION));
}
_type = _type.trim().toLowerCase();
return !_type.equals(JMSBridgeXMLConstant.Destination.TOPIC);
}
@Override
public String toString() {
return JMSBridgeXMLConstant.Element.DESTINATION + "[" + getRefName() + "]";
}
}