/**
 * Copyright 2008-2009 DRIVER PROJECT (Bielefeld University)
 * Original author: Marek Imialek <marek.imialek at uni-bielefeld.de>
 *
 * 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 eu.dnetlib.data.sts.das.lls;


import eu.dnetlib.data.sts.das.DataAccessServiceException;

/**
 * The Interface ILLSAccessFacade.
 * 
 * @author <a href="mailto:marek.imialek at uni-bielefeld.de">Marek Imialek</a>
 */
public interface ILLSAccessFacade {

	/**
	 * Search objects.
	 * 
	 * @param storeDataStructureId the store data structure id
	 * @param structureSubtype the structure subtype
	 * @param startPosition collect results from position
	 * @param initialPageSize the initial page size
	 * 
	 * @return LLSLookUpResponse
	 * 
	 * @throws DataAccessServiceException the data access service exception
	 */
	public LLSLookUpResponse searchObjects (String storeDataStructureId,
			String structureSubtype, int startPosition,
			int initialPageSize, boolean returnUris) 
			throws DataAccessServiceException;
	
	
	/**
	 * Search objects by tags.
	 * 
	 * @param searchedTags the searched tags
	 * @param startPosition collect results from position
	 * @param initialpageSize the initialpage size
	 * @param returnUris the return uris
	 * 
	 * @return LLSLookUpResponse
	 * 
	 * @throws DataAccessServiceException the data access service exception
	 */
	public LLSLookUpResponse searchObjectsByTags (String[] searchedTags,
			int startPosition, int initialpageSize, boolean returnUris) 
			throws DataAccessServiceException;
	
	/**
	 * Gets the object url.
	 * 
	 * @param objectId the object id
	 * @param storeDataStructId the store data struct id
	 * 
	 * @return the object url
	 * 
	 * @throws DataAccessServiceException the data access service exception
	 */
	public String getObjectUrl (String objectId, String storeDataStructId) 
			throws DataAccessServiceException;
	
	/**
	 * Gets the object sdo.
	 * 
	 * @param objectId the object id
	 * @param storeDataStructId the store data struct id
	 * 
	 * @return the object sdo
	 * 
	 * @throws DataAccessServiceException the data access service exception
	 */
	public String getObjectSDO (String objectId, String storeDataStructId) 
			throws DataAccessServiceException;
	
}
