blob: 1cf562b28505747b89708e335c12ec964a1efa9e [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2007 Oracle Corporation.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Oracle - initial API and implementation
*
********************************************************************************/
package org.eclipse.jst.jsf.common.metadata.internal.provisional.query;
/**
* Simple class used by {@link SimpleMetaDataQueryVisitorImpl} allowing some control of a metadata query.
* A query visitor can use this to optimize the query results and signal completion.
*/
public class SearchControl {
//scope levels
/**
* Do not recurse.
*/
public static final int SCOPE_CURRENT_LEVEL = 0;
/**
* Allow for one level of children to be visited from initial context
*/
public static final int SCOPE_ONE_LEVEL = 1;
/**
* Allow unlimited recursion of children
*/
public static final int SCOPE_ALL_LEVELS = 2;
/**
* No limit on query results
*/
public static final int COUNT_LIMIT_NONE = -1;
//default settings
private int countLimit = COUNT_LIMIT_NONE;
private int scope = SCOPE_ALL_LEVELS;
/**
* Constructor using defaults of COUNT_LIMIT_NONE and SCOPE_ALL_LEVELS
*/
public SearchControl(){
//use default settings
}
/**
* Constructor
* @param countLimit
* @param scope
*/
public SearchControl(int countLimit, int scope){
this.scope = scope;
this.countLimit = countLimit;
}
/**
* @param query results count limit
*/
public void setCountLimit(int limit){
this.countLimit = limit;
}
/**
* @return query results count limit
*/
public int getCountLimit(){
return countLimit;
}
/**
* @param scope
*/
public void setScope(int scope){
this.scope= scope;
}
/**
* @return scope
*/
public int getScope(){
return scope;
}
}