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

com.dell.doradus.search.query.IdInQuery Maven / Gradle / Ivy

/*
 * Copyright (C) 2014 Dell, Inc.
 * 
 * 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.
 */

package com.dell.doradus.search.query;

import java.util.ArrayList;
import java.util.List;

/**
 * Query of the form _ID IN ('x', 'y', 'z')
 */
public class IdInQuery implements Query {
	// The list of IDs
	public List ids;
	
	public IdInQuery() { }
	
	public IdInQuery(List ids) {
		this.ids = ids;
	}
	
	@Override public String toString() {
		StringBuilder sb = new StringBuilder();
		for(int i=0; i 0) sb.append(',');
			sb.append('\'');
			sb.append(ids.get(i));
			sb.append('\'');
		}
		return String.format("_ID IN (%s)", sb.toString());
	}
	
	public static IdInQuery tryCreate(OrQuery q) {
		List ids = new ArrayList();
		for(Query ch : q.subqueries) {
			if(!(ch instanceof IdQuery)) return null;
			ids.add(((IdQuery)ch).id);
		}
		return new IdInQuery(ids);
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy