public SearchArchivedProcessInstancesDescriptor() {
    final SAProcessInstanceBuilderFactory instanceBuilder =
        BuilderFactory.get(SAProcessInstanceBuilderFactory.class);
    final SUserTaskInstanceBuilderFactory sUserTaskInstanceBuilder =
        BuilderFactory.get(SUserTaskInstanceBuilderFactory.class);

    searchEntityKeys = new HashMap<String, FieldDescriptor>(14);
    searchEntityKeys.put(
        ArchivedProcessInstancesSearchDescriptor.NAME,
        new FieldDescriptor(SAProcessInstance.class, instanceBuilder.getNameKey()));
    searchEntityKeys.put(
        ArchivedProcessInstancesSearchDescriptor.PROCESS_DEFINITION_ID,
        new FieldDescriptor(SAProcessInstance.class, instanceBuilder.getProcessDefinitionIdKey()));
    searchEntityKeys.put(
        ArchivedProcessInstancesSearchDescriptor.ID,
        new FieldDescriptor(SAProcessInstance.class, instanceBuilder.getIdKey()));
    searchEntityKeys.put(
        ArchivedProcessInstancesSearchDescriptor.STARTED_BY,
        new FieldDescriptor(SAProcessInstance.class, instanceBuilder.getStartedByKey()));
    searchEntityKeys.put(
        ArchivedProcessInstancesSearchDescriptor.STARTED_BY_DELEGATE,
        new FieldDescriptor(SAProcessInstance.class, instanceBuilder.getStartedByDelegateKey()));
    searchEntityKeys.put(
        ArchivedProcessInstancesSearchDescriptor.START_DATE,
        new FieldDescriptor(SAProcessInstance.class, instanceBuilder.getStartDateKey()));
    searchEntityKeys.put(
        ArchivedProcessInstancesSearchDescriptor.END_DATE,
        new FieldDescriptor(SAProcessInstance.class, instanceBuilder.getEndDateKey()));
    searchEntityKeys.put(
        ArchivedProcessInstancesSearchDescriptor.STATE_ID,
        new FieldDescriptor(SAProcessInstance.class, instanceBuilder.getStateIdKey()));
    searchEntityKeys.put(
        ArchivedProcessInstancesSearchDescriptor.SOURCE_OBJECT_ID,
        new FieldDescriptor(SAProcessInstance.class, instanceBuilder.getSourceObjectIdKey()));
    searchEntityKeys.put(
        ArchivedProcessInstancesSearchDescriptor.LAST_UPDATE,
        new FieldDescriptor(SAProcessInstance.class, instanceBuilder.getLastUpdateKey()));
    searchEntityKeys.put(
        ArchivedProcessInstancesSearchDescriptor.ARCHIVE_DATE,
        new FieldDescriptor(SAProcessInstance.class, instanceBuilder.getArchiveDateKey()));
    searchEntityKeys.put(
        ArchivedProcessInstancesSearchDescriptor.CALLER_ID,
        new FieldDescriptor(SAProcessInstance.class, instanceBuilder.getCallerIdKey()));
    searchEntityKeys.put(
        ArchivedProcessInstancesSearchDescriptor.USER_ID,
        new FieldDescriptor(
            SProcessSupervisor.class,
            BuilderFactory.get(SProcessSupervisorBuilderFactory.class).getUserIdKey()));
    searchEntityKeys.put(
        ArchivedProcessInstancesSearchDescriptor.GROUP_ID,
        new FieldDescriptor(
            SProcessSupervisor.class,
            BuilderFactory.get(SProcessSupervisorBuilderFactory.class).getGroupIdKey()));
    searchEntityKeys.put(
        ArchivedProcessInstancesSearchDescriptor.ROLE_ID,
        new FieldDescriptor(
            SProcessSupervisor.class,
            BuilderFactory.get(SProcessSupervisorBuilderFactory.class).getRoleIdKey()));
    searchEntityKeys.put(
        ArchivedProcessInstancesSearchDescriptor.ASSIGNEE_ID,
        new FieldDescriptor(SUserTaskInstance.class, sUserTaskInstanceBuilder.getAssigneeIdKey()));

    archivedProcessInstanceAllFields =
        new HashMap<Class<? extends PersistentObject>, Set<String>>(1);
    processInstanceFields = new HashSet<String>(1);
    // processInstanceFields.add(instanceBuilder.getStartedByKey());
    processInstanceFields.add(instanceBuilder.getNameKey());
    archivedProcessInstanceAllFields.put(SAProcessInstance.class, processInstanceFields);
  }