protected Map<String, Object> getArguments() {
   Map<String, Object> values = new LinkedHashMap<String, Object>();
   int column = 0;
   for (String argument : mDescriptor.getArguments(mContext)) {
     values.put(Integer.toString(column), argument);
     column++;
   }
   return values;
 }
 private Map<String, String> getProperties() {
   Map<String, String> values = new HashMap<String, String>();
   values.put(InterpreterPropertyNames.NAME, mDescriptor.getName());
   values.put(InterpreterPropertyNames.NICE_NAME, mDescriptor.getNiceName());
   values.put(InterpreterPropertyNames.EXTENSION, mDescriptor.getExtension());
   values.put(InterpreterPropertyNames.BINARY, mDescriptor.getBinary(mContext).getAbsolutePath());
   values.put(
       InterpreterPropertyNames.INTERACTIVE_COMMAND, mDescriptor.getInteractiveCommand(mContext));
   values.put(InterpreterPropertyNames.SCRIPT_COMMAND, mDescriptor.getScriptCommand(mContext));
   values.put(
       InterpreterPropertyNames.HAS_INTERACTIVE_MODE,
       Boolean.toString(mDescriptor.hasInteractiveMode()));
   return values;
 }