Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package com.splout.db.hazelcast;
  
  /*
   * #%L
   * Splout SQL Server
   * %%
   * Copyright (C) 2012 Datasalt Systems S.L.
   * %%
   * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as published by
  * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
  * 
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  * 
  * You should have received a copy of the GNU Affero General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  * #L%
  */
 
 import java.io.File;
 import java.util.Map;
 import java.util.Set;
 
 
A Hazelcast MapLoader and MapStore that saves each map key/value in a file named "key" that contains "value" as a string (JSON). Saves data for CoordinationStructures.VERSIONS_BEING_SERVED
 
 public class TablespaceVersionStore implements MapLoader<StringMap<StringLong>>, MapStore<StringMap<StringLong>> {
 
 	private final static Log log = LogFactory.getLog(TablespaceVersionStore.class);
 	
 	private File folder;
 	private final static Charset UTF8 = Charset.forName("UTF-8");
 	
 	public TablespaceVersionStore(String baseFolder) {
 		File folder = new File(baseFolder);
 		if(!folder.exists()) {
 			folder.mkdirs();
 		}
 		this. = folder;
 	}
 	
   public void delete(String key) {
 		File file = getKeyFile(key);
 		if(file.exists()) {
 			file.delete();
 		}
   }
 
   public void deleteAll(Collection<Stringkeys) {
 		for(String keykeys) {
 			delete(key);
 		}
   }
 
   public void store(String keyMap<StringLongvalue) {
 		.info("Store: " + key + " value: " + value);
 		try {
Save value as UTF8 String in a File
 
 	    Files.write(JSONSerDe.ser(value).getBytes(), getKeyFile(key));
     } catch(IOException e) {
 	    throw new RuntimeException(e);
     } catch(JSONSerDeException e) {
 	    throw new RuntimeException(e);
     }
   }
 
   public void storeAll(Map<StringMap<StringLong>> keyValues) {
 		for(Map.Entry<StringMap<StringLong>> keyValuekeyValues.entrySet()) {
 			store(keyValue.getKey(), keyValue.getValue());
 		}
   }
 
  public Map<StringLongload(String key) {
//		log.info("Load: " + key);
	  try {
  
Load value from a String in a File
	  	Map<StringLongmap = readValues(getKeyFile(key));
//			log.info("Load to return: " + map);
	    return map;
    } catch(IOException e) {
	    throw new RuntimeException(e);
    } catch(JSONSerDeException e) {
	    throw new RuntimeException(e);
    }
  }
  public Map<StringMap<StringLong>> loadAll(Collection<Stringkeys) {
//  	log.info("Load all: " + keys);
		Map<StringMap<StringLong>> toReturn = new HashMap<StringMap<StringLong>>();
		for(String keykeys) {
			Map<StringLongresult = load(key);
			toReturn.put(keyresult);
		}
//  	log.info("Load all to return: " + toReturn);
		return toReturn;
  }
  public Set<StringloadAllKeys() {
//		log.info("Load all keys:");
	  File[] files = .listFiles();
	  if(files == null) {
	  	return null;
	  }
	  Set<Stringkeys = new HashSet<String>();
	  for(File filefiles) {
	  	keys.add(file.getName());
	  }
//  	log.info("Load all keys to return: " + keys);
	  return keys;
  }
	// --------------------------------- //
	protected File getKeyFile(String key) {
		return new File(key);
	}
	public final static TypeReference<Map<StringLong>> MAP_STRING_LONG_TYPE_REF = new TypeReference<Map<StringLong>>() {
	};
	protected Map<StringLongreadValues(File filethrows JSONSerDeExceptionIOException {
		if(file.exists()) {
			return JSONSerDe.deSer(Files.toString(file), );
else {
			return null;
		}
	}
New to GrepCode? Check out our FAQ X