OpenSplice Java 5 DCPS  v6.x
OpenSplice Java 5 OpenSplice Data Distribution Service Data-Centric Publish-Subscribe API
SubscriptionKeysImpl.java
Go to the documentation of this file.
1 /*
2  * Vortex OpenSplice
3  *
4  * This software and documentation are Copyright 2006 to 2024 ADLINK
5  * Technology Limited, its affiliated companies and licensors. All rights
6  * reserved.
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  *
20  */
21 package org.opensplice.dds.core.policy;
22 
23 import java.util.Collection;
24 import java.util.Collections;
25 import java.util.HashSet;
26 import java.util.Set;
27 
30 
31 public class SubscriptionKeysImpl extends QosPolicyImpl implements
33  private static final long serialVersionUID = -4815852698195218221L;
34  private final HashSet<String> keyList;
35 
37  String... keyValue) {
38  super(environment);
39  this.keyList = new HashSet<String>();
40 
41  for (String k : keyValue) {
42  this.keyList.add(k);
43  }
44  }
45 
47  Collection<String> keyValue) {
48  super(environment);
49 
50  this.keyList = new HashSet<String>();
51 
52  if (keyValue != null) {
53  for (String k : keyValue) {
54  this.keyList.add(k);
55  }
56  }
57  }
58 
59  @Override
60  public Set<String> getKey() {
61  return Collections.unmodifiableSet(this.keyList);
62  }
63 
64  @Override
65  public SubscriptionKeys withKey(Collection<String> keyList) {
66  return new SubscriptionKeysImpl(this.environment, keyList);
67  }
68 
69  @Override
70  public SubscriptionKeys withKey(String keyList) {
71  return new SubscriptionKeysImpl(this.environment, keyList);
72  }
73 
74  @Override
75  public SubscriptionKeys withKey(String... keyList) {
76  return new SubscriptionKeysImpl(this.environment, keyList);
77  }
78 
79  @Override
80  public Class<? extends QosPolicy> getPolicyClass() {
81  return SubscriptionKeys.class;
82  }
83 
84  @Override
85  public boolean equals(Object other) {
86  if (!(other instanceof SubscriptionKeysImpl)) {
87  return false;
88  }
89  SubscriptionKeysImpl s = (SubscriptionKeysImpl) other;
90 
91  if (s.keyList.size() != this.keyList.size()) {
92  return false;
93  }
94  return s.keyList.containsAll(this.keyList);
95  }
96 
97  @Override
98  public int hashCode() {
99  final int prime = 31;
100  int result = 17;
101 
102  for (String key : this.keyList) {
103  result = prime * result + key.hashCode();
104  }
105  return result;
106  }
107 }
SubscriptionKeys withKey(String keyList)
Copy this policy and override the value of the property.
SubscriptionKeys withKey(Collection< String > keyList)
Copy this policy and override the value of the property.
SubscriptionKeys withKey(String... keyList)
Copy this policy and override the value of the property.
By using the SubscriptionKey QosPolicy, a DataReader can force its own key-list definition on data sa...
This class is the abstract root for all the QoS policies.
Definition: QosPolicy.java:118
SubscriptionKeysImpl(OsplServiceEnvironment environment, String... keyValue)
SubscriptionKeysImpl(OsplServiceEnvironment environment, Collection< String > keyValue)