# Project Configurator

###### Identifier:

org.eclipse.ui.ide.projectConfigurator

###### Since:

3.12

###### Description:

This extension point allow contributors to add an import strategy.

###### Configuration Markup:

<!ELEMENT extension (projectConfigurator)+>

<!ATTLIST extension

point CDATA #REQUIRED

id CDATA #IMPLIED

name CDATA #IMPLIED>

<!ELEMENT projectConfigurator (activeWhen?)>

<!ATTLIST projectConfigurator

class CDATA #REQUIRED

label CDATA #REQUIRED>

- class - class defining the import strategy contribution. This class is responsible for 3 things:
  - Detecting and deciding whether a given folder is meant to be an Eclipse project in workspace, generally depending on the existence of particular files, pattern or text
  - Whether it applies on an existing Eclipse project, generally depending on the existence of particular files, pattern or text
  - Apply configuration for new or existing Eclipse project in workspace
- label - label of the configurator, presented to user.

<!ELEMENT activeWhen (not | or | and | instanceof | test | systemTest | equals | count | with | resolve | adapt | iterate | reference | hasFile | hasFileRecursively | hasFileWithSuffixRecursively)?>

A core Expression that controls the enablement of the Project Configuration. Will be checked before loading Project Configuration

<!ELEMENT hasFile EMPTY>

<!ATTLIST hasFile

path CDATA #REQUIRED>

- path - File is this expression looking for. This is a relative path to the container on which expression will apply.

<!ELEMENT hasFileRecursively EMPTY>

<!ATTLIST hasFileRecursively

filename CDATA #REQUIRED>

- filename - File name the expression will recursively look for, in the contextual container.

<!ELEMENT hasFileWithSuffixRecursively EMPTY>

<!ATTLIST hasFileWithSuffixRecursively

suffix CDATA #REQUIRED>

- suffix - Suffix for a file. Expression will recursively look for files with this suffix in the contextual container.

###### Examples:

See in same plugin, contribution of the EclipseProjectConfigurator.

###### API Information:

API is currently instable. Feature is in incubation.