Recursos derivados

Muitos recursos são criados durante a tradução, compilação, cópia ou outro processamento de ficheiros criados e editados pelo utilizador.  Os recursos derivados são recursos que não são dados originais e que podem ser recriados a partir dos seus ficheiros origem.  É comum que os ficheiros derivados sejam excluídos de certos tipos de processamento.   

Por exemplo, os recursos derivados geralmente não são mantidos num repositório de equipa, dado que enchem o repositório sem necessidade, são alterados regularmente e podem ser recriados a partir dos seus ficheiros origem.  Não é prático para fornecedores de equipas tomar decisões sobre quais os ficheiros derivados.  A API de recurso faculta um mecanismo comum para os plug-ins indicarem os recursos que criaram que sejam derivados.

Os plug-ins poderão utilizar IResource.setDerived(boolean) para indicar que um recurso é derivado de outros. Os recursos recentemente criados não são derivados por predefinição, de modo que este método deve ser usado para marcar explicitamente o recurso como derivado.  Uma utilização comum consiste em marcar uma subpasta do projecto como derivada quando uma pasta de "saída de dados" (como, por exemplo, a pasta "bin" em projectos Java) é criada pelo plug-in.

Os outros plug-ins, geralmente fornecedores de equipas, podem utilizar o IResource.isDerived para determinar se dado recurso deve ou não ser gerido pelo repositório.  As tentativas de marcar projectos ou a raiz do espaço de trabalho como derivados serão ignoradas.

Nota:  O conceito de recursos derivados é facultado para que outros plug-ins (sem ser de equipas) indiquem quais os recursos não apropriados para gestão de repositórios.  Os ficheiros especiais criados pelas implementações de equipas para gerir os seus dados não devem ser marcados como recursos derivados.  Consulte Recursos derivados de equipa para ver uma técnica que marca como ocultos os recursos de implementação relacionados com equipas.