@SuppressWarnings("unchecked")
	public List<OfficeSpace> seachOfficeSpace(HashMap<String, Object> criteria){
		Criteria c = new Criteria();
		List<OfficeSpace> finalList = new ArrayList<OfficeSpace>();
		
		// Create instance of Criteria object.
		try {
		if(criteria.containsKey("searchCriteria")){
			c.poppulateCriteria((HashMap<String, Object>) criteria.get("searchCriteria"));
		}
		// Use this instance to create query triples.
		c.queryBuilder(c);
		// run these queries against KG
		ArrayList<String> matchingOfficesID = c.processQueryCollection();
		if(matchingOfficesID.size() == 0) throw new BusinessException("No OfficeSpace matches your criteria");
		for(int i=0; i<matchingOfficesID.size(); i++){
			OfficeSpace os = tempGetOfficeByID("abcd1234", matchingOfficesID.get(i));
			if(Booking.checkAvailability(os, c.getStrtDate(), c.getEndDate()))
				finalList.add(os);
		}
		if(finalList.size() == 0) throw new BusinessException("No OfficeSpace available from dates: "+ c.getStrtDate() +" to "+ c.getEndDate());
		
		} catch(BusinessException b){
			System.out.println(b);
		}
		
		return finalList;
	}