package com.senseidb.clue.commands; import java.io.PrintStream; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import org.apache.lucene.index.IndexWriter; import com.senseidb.clue.ClueContext; public class SaveUserCommitData extends ClueCommand { public SaveUserCommitData(ClueContext ctx) { super(ctx); } @Override public String getName() { return "savecommitdata"; } @Override public String help() { return "Save user commit data"; } @Override public void execute(String[] args, PrintStream out) throws Exception { IndexWriter writer = ctx.getIndexWriter(); if (writer != null) { if (args.length != 2) { throw new IllegalArgumentException("expected 2 arguments indicating key and value"); } Map<String, String> commitData = writer.getCommitData(); if (commitData == null) { commitData= new HashMap<String, String>(); } commitData.put(args[0], args[1]); writer.setCommitData(commitData); writer.commit(); ctx.refreshReader(); out.println("commit data: " + Arrays.toString(args) +" saved."); } else { out.println("unable to open writer, index is in readonly mode"); } } }