All Downloads are FREE. Search and download functionalities are using the official Maven repository.

Alachisoft.NCache.Common.DataReader.DistributedGroupedRSEnumerator Maven / Gradle / Ivy

There is a newer version: 5.3.3
Show newest version
package Alachisoft.NCache.Common.DataReader;

import Alachisoft.NCache.Common.Queries.OrderByArgument;

import java.util.ArrayList;
import java.util.HashMap;

//  Copyright (c) 2020 Alachisoft
//  
//  Licensed under the Apache License, Version 2.0 (the "License");
//  you may not use this file except in compliance with the License.
//  You may obtain a copy of the License at
//  
//     http://www.apache.org/licenses/LICENSE-2.0
//  
//  Unless required by applicable law or agreed to in writing, software
//  distributed under the License is distributed on an "AS IS" BASIS,
//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//  See the License for the specific language governing permissions and
//  limitations under the License

public class DistributedGroupedRSEnumerator extends DistributedOrderedRSEnumerator {
    public DistributedGroupedRSEnumerator(ArrayList partitionRecordSets, ArrayList orderByArguments, HashMap> validReaders) {
        super(partitionRecordSets, orderByArguments, validReaders);
    }

    @Override
    public boolean moveNext() {
        if (super.moveNext()) {
            ArrayList emptyRSE = new ArrayList();
            for (RecordSetEnumerator rse : _partitionRecordSets) {
                if (_current.compareOrder(rse.getCurrent(), _orderByArguments) == 0) {
                    _current.merge(rse.getCurrent());
                    if (!rse.moveNext()) {
                        emptyRSE.add(rse);
                    }
                }
            }

            for (RecordSetEnumerator rse : emptyRSE) {
                _partitionRecordSets.remove(rse);
                removeFromValidReaders(rse);
            }

            return true;
        }
        return false;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy