OpenSplice Java 5 DCPS  v6.x
OpenSplice Java 5 OpenSplice Data Distribution Service Data-Centric Publish-Subscribe API
QueryConditionImpl.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.sub;
22 
23 import java.util.ArrayList;
24 import java.util.Arrays;
25 import java.util.List;
26 
32 
33 public class QueryConditionImpl<TYPE> extends ReadConditionImpl<TYPE> implements
34  QueryCondition<TYPE>, Condition<DDS.ReadCondition> {
37  String queryExpression, List<String> queryParameters) {
38  super(environment, parent, state, false);
39 
40  this.initCondition(queryExpression, queryParameters);
41  }
42 
45  String queryExpression, List<String> queryParameters) {
46  super(environment, parent, false);
47 
48  this.initCondition(queryExpression, queryParameters);
49  }
50 
51  private void initCondition(String queryExpression, List<String> queryParameters){
52  if (queryParameters != null) {
53  for (String param : queryParameters) {
54  if (param == null) {
56  "Invalid query parameter (null) provided.");
57  }
58  }
59  this.old = parent.getOld()
60  .create_querycondition(
61  this.state.getOldSampleState(),
62  this.state.getOldViewState(),
64  queryExpression,
65  queryParameters.toArray(new String[queryParameters
66  .size()]));
67  } else {
69  "Illegal List of query parameters (null) provided.");
70  }
71  if (this.old == null) {
73  }
74  }
75 
76  @Override
77  public String getQueryExpression() {
78  return ((DDS.QueryCondition) this.old).get_query_expression();
79  }
80 
81  @Override
82  public List<String> getQueryParameters() {
83  DDS.StringSeqHolder holder = new DDS.StringSeqHolder();
84  int rc = ((DDS.QueryCondition) this.old).get_query_parameters(holder);
85 
87  "QueryCondition.getQueryParameters() failed");
88  ArrayList<String> queryParams = new ArrayList<String>();
89 
90  for (String param : holder.value) {
91  queryParams.add(param);
92  }
93  return queryParams;
94  }
95 
96  @Override
97  public void setQueryParameters(List<String> queryParameters) {
98  if (queryParameters == null) {
100  "Invalid queryParameters parameter (null) provided.");
101  }
102  for (String param : queryParameters) {
103  if (param == null) {
105  "Invalid query parameter (null) provided.");
106  }
107  }
108  ((DDS.QueryCondition) this.old).set_query_parameters(queryParameters
109  .toArray(new String[queryParameters.size()]));
110  }
111 
112  @Override
113  public void setQueryParameters(String... queryParameters) {
114  if (queryParameters == null) {
116  "Invalid queryParameters parameter (null) provided.");
117  }
118  for (String param : queryParameters) {
119  if (param == null) {
121  "Invalid query parameter (null) provided.");
122  }
123  }
124  this.setQueryParameters(Arrays.asList(queryParameters));
125  }
126 
127  @Override
128  public DDS.ReadCondition getOldCondition() {
129  return this.old;
130  }
131 
132 }
void setQueryParameters(String... queryParameters)
This operation changes the queryParameters associated with the QueryCondition.
void setQueryParameters(List< String > queryParameters)
This operation changes the queryParameters associated with the QueryCondition.
List< String > getQueryParameters()
This operation returns the queryParameters associated with the QueryCondition.
QueryConditionImpl(OsplServiceEnvironment environment, AbstractDataReader< TYPE > parent, String queryExpression, List< String > queryParameters)
String getQueryExpression()
This operation returns the queryExpression associated with the QueryCondition.
final OsplServiceEnvironment environment
static void checkReturnCode(int retCode, OsplServiceEnvironment environment, String message)
Definition: Utilities.java:33
final AbstractDataReader< TYPE > parent
static void throwLastErrorException(OsplServiceEnvironment environment)
Definition: Utilities.java:182
QueryConditionImpl(OsplServiceEnvironment environment, AbstractDataReader< TYPE > parent, DataStateImpl state, String queryExpression, List< String > queryParameters)
QueryCondition objects are specialized org.omg.dds.sub.ReadCondition objects that allow the applicati...