/** * clear the property binding in dataset to disable it when run the query * * @param dsHandle * @param dataSetMap * @param dataSourceMap * @throws SemanticException */ public static void clearPropertyBindingMap( DataSetHandle dsHandle, Map dataSetMap, Map dataSourceMap) throws SemanticException { if (dsHandle == null) { return; } if (dsHandle.getExtends() != null) { return; } if (dsHandle instanceof JointDataSetHandle) { Iterator iter = ((JointDataSetHandle) dsHandle).dataSetsIterator(); while (iter.hasNext()) { DataSetHandle ds = (DataSetHandle) iter.next(); if (dsHandle != null) { clearPropertyBindingMap(ds, dataSetMap, dataSourceMap); } } } else if (dsHandle instanceof DerivedDataSetHandle) { List<DataSetHandle> dataSets = ((DerivedDataSetHandle) dsHandle).getInputDataSets(); if (dataSets != null && dataSets.size() != 0) { for (int i = 0; i < dataSets.size(); i++) { DataSetHandle ds = dataSets.get(i); if (dsHandle != null) { clearPropertyBindingMap(ds, dataSetMap, dataSourceMap); } } } } else if (dsHandle instanceof OdaDataSetHandle) { List dataSetBindingList = dsHandle.getPropertyBindings(); List dataSourceBindingList = dsHandle.getDataSource() == null ? new ArrayList() : dsHandle.getDataSource().getPropertyBindings(); if (!dataSetBindingList.isEmpty()) dataSetMap.put(dsHandle.getName(), dataSetBindingList); if (!dataSourceBindingList.isEmpty()) dataSourceMap.put(dsHandle.getDataSource().getName(), dataSourceBindingList); for (int i = 0; i < dataSetBindingList.size(); i++) { PropertyBinding binding = (PropertyBinding) dataSetBindingList.get(i); dsHandle.setPropertyBinding(binding.getName(), (Expression) null); } for (int i = 0; i < dataSourceBindingList.size(); i++) { PropertyBinding binding = (PropertyBinding) dataSourceBindingList.get(i); dsHandle.getDataSource().setPropertyBinding(binding.getName(), (Expression) null); } } }