public PropertySource<PredefinedTask> tryGetBuiltInTask(String command) {
   if (command == null) throw new NullPointerException("command");
   PropertySource<PredefinedTask> result = builtInTasks.get(command);
   return result != null
       ? result
       : asConstNullForNull(BuiltInTasks.getDefaultBuiltInTask(command), true);
 }
  public MemProjectProperties() {
    JavaPlatform defaultPlatform = JavaPlatform.getDefault();
    this.sourceLevel =
        new DefaultMutableProperty<String>(
            getSourceLevelFromPlatform(defaultPlatform), true, false);
    this.platform = new DefaultMutableProperty<JavaPlatform>(defaultPlatform, true, false);
    this.sourceEncoding = new DefaultMutableProperty<Charset>(DEFAULT_SOURCE_ENCODING, true, false);
    this.commonTasks =
        new MutableListProperty<PredefinedTask>(Collections.<PredefinedTask>emptyList(), true);

    Set<String> commands = AbstractProjectProperties.getCustomizableCommands();
    this.builtInTasks = new HashMap<String, MutableProperty<PredefinedTask>>(2 * commands.size());
    for (String command : commands) {
      PredefinedTask task = BuiltInTasks.getDefaultBuiltInTask(command);
      this.builtInTasks.put(command, new DefaultMutableProperty<PredefinedTask>(task, true, false));
    }
  }