Program: 128254
Project: 128254
Buggy source:
public void initialize(String currentPerspective){
  this.currentPerspective=currentPerspective;
  nodeAndProject=new HashMap<Object,List<Project>>();
  IRepositoryNode curParentNode=null;
  String urlBranch=null;
  if (ProjectManager.getInstance().getCurrentBranchURL(project) != null) {
    urlBranch=showSVNRoot();
  }
  if ("String_Node_Str".equals(urlBranch) || urlBranch == null) {
    curParentNode=this;
  }
 else {
    List<IRepositoryNode> root=getChildren();
    svnRootNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
    svnRootNode.setProperties(EProperties.LABEL,ERepositoryObjectType.SVN_ROOT + "String_Node_Str" + urlBranch+ "String_Node_Str");
    svnRootNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.SVN_ROOT);
    if (root.contains(svnRootNode)) {
      return;
    }
    root.add(svnRootNode);
    curParentNode=svnRootNode;
  }
  List<IRepositoryNode> nodes=curParentNode.getChildren();
  recBinNode=new BinRepositoryNode(this);
  nodes.add(recBinNode);
  businessProcessNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
  businessProcessNode.setProperties(EProperties.LABEL,ERepositoryObjectType.BUSINESS_PROCESS);
  businessProcessNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.BUSINESS_PROCESS);
  nodes.add(businessProcessNode);
  processNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
  processNode.setProperties(EProperties.LABEL,ERepositoryObjectType.PROCESS);
  processNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.PROCESS);
  nodes.add(processNode);
  if (PluginChecker.isJobLetPluginLoaded()) {
    jobletNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
    jobletNode.setProperties(EProperties.LABEL,ERepositoryObjectType.JOBLET);
    jobletNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.JOBLET);
    nodes.add(jobletNode);
  }
  contextNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
  contextNode.setProperties(EProperties.LABEL,ERepositoryObjectType.CONTEXT);
  contextNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.CONTEXT);
  nodes.add(contextNode);
  codeNode=new StableRepositoryNode(this,Messages.getString("String_Node_Str"),ECoreImage.CODE_ICON);
  codeNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.CODE);
  nodes.add(codeNode);
  routineNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
  routineNode.setProperties(EProperties.LABEL,ERepositoryObjectType.ROUTINES);
  routineNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.ROUTINES);
  codeNode.getChildren().add(routineNode);
  if (PluginChecker.isMetalanguagePluginLoaded()) {
    jobscriptsNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
    jobscriptsNode.setProperties(EProperties.LABEL,ERepositoryObjectType.JOB_SCRIPT);
    jobscriptsNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.JOB_SCRIPT);
    codeNode.getChildren().add(jobscriptsNode);
  }
  if (GlobalServiceRegister.getDefault().isServiceRegistered(IHeaderFooterProviderService.class)) {
    IHeaderFooterProviderService service=(IHeaderFooterProviderService)GlobalServiceRegister.getDefault().getService(IHeaderFooterProviderService.class);
    if (service.isVisible()) {
      metadataHeaderFooterConnectionNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
      metadataHeaderFooterConnectionNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_HEADER_FOOTER);
      metadataHeaderFooterConnectionNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_HEADER_FOOTER);
      codeNode.getChildren().add(metadataHeaderFooterConnectionNode);
    }
  }
  sqlPatternNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
  sqlPatternNode.setProperties(EProperties.LABEL,ERepositoryObjectType.SQLPATTERNS);
  sqlPatternNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.SQLPATTERNS);
  nodes.add(sqlPatternNode);
  docNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
  docNode.setProperties(EProperties.LABEL,ERepositoryObjectType.DOCUMENTATION);
  docNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.DOCUMENTATION);
  nodes.add(docNode);
  metadataNode=new RepositoryNode(null,this,ENodeType.STABLE_SYSTEM_FOLDER);
  metadataNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA);
  metadataNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA);
  nodes.add(metadataNode);
  metadataConNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
  metadataConNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_CONNECTIONS);
  metadataConNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_CONNECTIONS);
  metadataNode.getChildren().add(metadataConNode);
  metadataFileNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
  metadataFileNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_FILE_DELIMITED);
  metadataFileNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_FILE_DELIMITED);
  metadataNode.getChildren().add(metadataFileNode);
  metadataFilePositionalNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
  metadataFilePositionalNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_FILE_POSITIONAL);
  metadataFilePositionalNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_FILE_POSITIONAL);
  metadataNode.getChildren().add(metadataFilePositionalNode);
  metadataFileRegexpNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
  metadataFileRegexpNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_FILE_REGEXP);
  metadataFileRegexpNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_FILE_REGEXP);
  metadataNode.getChildren().add(metadataFileRegexpNode);
  metadataFileXmlNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
  metadataFileXmlNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_FILE_XML);
  metadataFileXmlNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_FILE_XML);
  metadataNode.getChildren().add(metadataFileXmlNode);
  metadataFileLdifNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
  metadataFileLdifNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_FILE_LDIF);
  metadataFileLdifNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_FILE_LDIF);
  metadataNode.getChildren().add(metadataFileLdifNode);
  metadataFileExcelNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
  metadataFileExcelNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_FILE_EXCEL);
  metadataFileExcelNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_FILE_EXCEL);
  metadataNode.getChildren().add(metadataFileExcelNode);
  ECodeLanguage codeLanguage=LanguageManager.getCurrentLanguage();
  if (codeLanguage != ECodeLanguage.PERL) {
    metadataLDAPSchemaNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
    metadataLDAPSchemaNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_LDAP_SCHEMA);
    metadataLDAPSchemaNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_LDAP_SCHEMA);
    metadataNode.getChildren().add(metadataLDAPSchemaNode);
  }
  metadataGenericSchemaNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
  metadataGenericSchemaNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_GENERIC_SCHEMA);
  metadataGenericSchemaNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_GENERIC_SCHEMA);
  metadataNode.getChildren().add(metadataGenericSchemaNode);
  metadataWSDLSchemaNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
  metadataWSDLSchemaNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_WSDL_SCHEMA);
  metadataWSDLSchemaNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_WSDL_SCHEMA);
  metadataNode.getChildren().add(metadataWSDLSchemaNode);
  if (codeLanguage != ECodeLanguage.PERL) {
    metadataSalesforceSchemaNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
    metadataSalesforceSchemaNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_SALESFORCE_SCHEMA);
    metadataSalesforceSchemaNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_SALESFORCE_SCHEMA);
    metadataNode.getChildren().add(metadataSalesforceSchemaNode);
  }
  if (PluginChecker.isSAPWizardPluginLoaded() && LanguageManager.getCurrentLanguage() == ECodeLanguage.JAVA) {
    metadataSAPConnectionNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
    metadataSAPConnectionNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_SAPCONNECTIONS);
    metadataSAPConnectionNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_SAPCONNECTIONS);
    metadataNode.getChildren().add(metadataSAPConnectionNode);
  }
  if (PluginChecker.isHL7PluginLoaded()) {
    metadataHL7ConnectionNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
    metadataHL7ConnectionNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_FILE_HL7);
    metadataHL7ConnectionNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_FILE_HL7);
    metadataNode.getChildren().add(metadataHL7ConnectionNode);
  }
  if (PluginChecker.isFTPPluginLoaded()) {
    metadataFTPConnectionNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
    metadataFTPConnectionNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_FILE_FTP);
    metadataFTPConnectionNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_FILE_FTP);
    metadataNode.getChildren().add(metadataFTPConnectionNode);
  }
  if (PluginChecker.isEBCDICPluginLoaded()) {
    metadataEbcdicConnectionNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
    metadataEbcdicConnectionNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_FILE_EBCDIC);
    metadataEbcdicConnectionNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_FILE_EBCDIC);
    metadataNode.getChildren().add(metadataEbcdicConnectionNode);
  }
  if (PluginChecker.isMDMPluginLoaded()) {
    metadataMDMConnectionNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
    metadataMDMConnectionNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_MDMCONNECTION);
    metadataMDMConnectionNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_MDMCONNECTION);
    metadataNode.getChildren().add(metadataMDMConnectionNode);
  }
  if (PluginChecker.isSurvivorshipPluginLoaded() || PluginChecker.isRulesPluginLoaded() || PluginChecker.isBRMSPluginLoaded()) {
    StableRepositoryNode baseRulesNode=new StableRepositoryNode(this,Messages.getString("String_Node_Str"),ECoreImage.METADATA_RULES_ICON);
    baseRulesNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_RULES_MANAGEMENT);
    metadataNode.getChildren().add(baseRulesNode);
    if (PluginChecker.isBRMSPluginLoaded()) {
      metadataBRMSConnectionNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
      metadataBRMSConnectionNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_FILE_BRMS);
      metadataBRMSConnectionNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_FILE_BRMS);
      baseRulesNode.getChildren().add(metadataBRMSConnectionNode);
    }
    if (PluginChecker.isRulesPluginLoaded() && codeLanguage != ECodeLanguage.PERL) {
      metadataRulesNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
      metadataRulesNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_FILE_RULES);
      metadataRulesNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_FILE_RULES);
      baseRulesNode.getChildren().add(metadataRulesNode);
    }
  }
  if (PluginChecker.isValidationrulesPluginLoaded()) {
    metadataValidationRulesNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
    metadataValidationRulesNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_VALIDATION_RULES);
    metadataValidationRulesNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_VALIDATION_RULES);
    metadataNode.getChildren().add(metadataValidationRulesNode);
  }
  if (PluginChecker.isEDIFACTPluginLoaded()) {
    metadataEDIFactConnectionNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
    metadataEDIFactConnectionNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_EDIFACT);
    metadataEDIFactConnectionNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_EDIFACT);
    metadataNode.getChildren().add(metadataEDIFactConnectionNode);
  }
  if (PluginChecker.isRefProjectLoaded() && getParent() != this && project != null && project.getEmfProject().getReferencedProjects().size() > 0) {
    refProject=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
    refProject.setProperties(EProperties.LABEL,ERepositoryObjectType.REFERENCED_PROJECTS);
    refProject.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.REFERENCED_PROJECTS);
    nodes.add(refProject);
  }
  initExtensionRepositoryNodes(curParentNode);
  try {
    hideHiddenNodesDependsUserRight();
  }
 catch (  JSONException e) {
    ExceptionHandler.process(e);
  }
  collectRepositoryNodes(curParentNode);
}

Fixed version (ground truth):
public void initialize(String currentPerspective){
  this.currentPerspective=currentPerspective;
  nodeAndProject=new HashMap<Object,List<Project>>();
  IRepositoryNode curParentNode=null;
  String urlBranch=null;
  if (ProjectManager.getInstance().getCurrentBranchURL(project) != null) {
    urlBranch=showSVNRoot();
  }
  if ("String_Node_Str".equals(urlBranch) || urlBranch == null) {
    curParentNode=this;
  }
 else {
    List<IRepositoryNode> root=getChildren();
    svnRootNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
    svnRootNode.setProperties(EProperties.LABEL,ERepositoryObjectType.SVN_ROOT + "String_Node_Str" + urlBranch+ "String_Node_Str");
    svnRootNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.SVN_ROOT);
    if (root.contains(svnRootNode)) {
      return;
    }
    root.add(svnRootNode);
    curParentNode=svnRootNode;
  }
  List<IRepositoryNode> nodes=curParentNode.getChildren();
  recBinNode=new BinRepositoryNode(this);
  nodes.add(recBinNode);
  businessProcessNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
  businessProcessNode.setProperties(EProperties.LABEL,ERepositoryObjectType.BUSINESS_PROCESS);
  businessProcessNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.BUSINESS_PROCESS);
  nodes.add(businessProcessNode);
  processNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
  processNode.setProperties(EProperties.LABEL,ERepositoryObjectType.PROCESS);
  processNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.PROCESS);
  nodes.add(processNode);
  if (PluginChecker.isJobLetPluginLoaded()) {
    jobletNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
    jobletNode.setProperties(EProperties.LABEL,ERepositoryObjectType.JOBLET);
    jobletNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.JOBLET);
    nodes.add(jobletNode);
  }
  contextNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
  contextNode.setProperties(EProperties.LABEL,ERepositoryObjectType.CONTEXT);
  contextNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.CONTEXT);
  nodes.add(contextNode);
  codeNode=new StableRepositoryNode(this,Messages.getString("String_Node_Str"),ECoreImage.CODE_ICON);
  codeNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.CODE);
  nodes.add(codeNode);
  routineNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
  routineNode.setProperties(EProperties.LABEL,ERepositoryObjectType.ROUTINES);
  routineNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.ROUTINES);
  codeNode.getChildren().add(routineNode);
  if (PluginChecker.isMetalanguagePluginLoaded()) {
    jobscriptsNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
    jobscriptsNode.setProperties(EProperties.LABEL,ERepositoryObjectType.JOB_SCRIPT);
    jobscriptsNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.JOB_SCRIPT);
    codeNode.getChildren().add(jobscriptsNode);
  }
  if (GlobalServiceRegister.getDefault().isServiceRegistered(IHeaderFooterProviderService.class)) {
    IHeaderFooterProviderService service=(IHeaderFooterProviderService)GlobalServiceRegister.getDefault().getService(IHeaderFooterProviderService.class);
    if (service.isVisible()) {
      metadataHeaderFooterConnectionNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
      metadataHeaderFooterConnectionNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_HEADER_FOOTER);
      metadataHeaderFooterConnectionNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_HEADER_FOOTER);
      codeNode.getChildren().add(metadataHeaderFooterConnectionNode);
    }
  }
  sqlPatternNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
  sqlPatternNode.setProperties(EProperties.LABEL,ERepositoryObjectType.SQLPATTERNS);
  sqlPatternNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.SQLPATTERNS);
  nodes.add(sqlPatternNode);
  docNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
  docNode.setProperties(EProperties.LABEL,ERepositoryObjectType.DOCUMENTATION);
  docNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.DOCUMENTATION);
  nodes.add(docNode);
  metadataNode=new RepositoryNode(null,this,ENodeType.STABLE_SYSTEM_FOLDER);
  metadataNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA);
  metadataNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA);
  nodes.add(metadataNode);
  metadataConNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
  metadataConNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_CONNECTIONS);
  metadataConNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_CONNECTIONS);
  metadataNode.getChildren().add(metadataConNode);
  metadataFileNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
  metadataFileNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_FILE_DELIMITED);
  metadataFileNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_FILE_DELIMITED);
  metadataNode.getChildren().add(metadataFileNode);
  metadataFilePositionalNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
  metadataFilePositionalNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_FILE_POSITIONAL);
  metadataFilePositionalNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_FILE_POSITIONAL);
  metadataNode.getChildren().add(metadataFilePositionalNode);
  metadataFileRegexpNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
  metadataFileRegexpNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_FILE_REGEXP);
  metadataFileRegexpNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_FILE_REGEXP);
  metadataNode.getChildren().add(metadataFileRegexpNode);
  metadataFileXmlNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
  metadataFileXmlNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_FILE_XML);
  metadataFileXmlNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_FILE_XML);
  metadataNode.getChildren().add(metadataFileXmlNode);
  metadataFileLdifNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
  metadataFileLdifNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_FILE_LDIF);
  metadataFileLdifNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_FILE_LDIF);
  metadataNode.getChildren().add(metadataFileLdifNode);
  metadataFileExcelNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
  metadataFileExcelNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_FILE_EXCEL);
  metadataFileExcelNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_FILE_EXCEL);
  metadataNode.getChildren().add(metadataFileExcelNode);
  ECodeLanguage codeLanguage=LanguageManager.getCurrentLanguage();
  if (codeLanguage != ECodeLanguage.PERL) {
    metadataLDAPSchemaNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
    metadataLDAPSchemaNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_LDAP_SCHEMA);
    metadataLDAPSchemaNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_LDAP_SCHEMA);
    metadataNode.getChildren().add(metadataLDAPSchemaNode);
  }
  metadataGenericSchemaNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
  metadataGenericSchemaNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_GENERIC_SCHEMA);
  metadataGenericSchemaNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_GENERIC_SCHEMA);
  metadataNode.getChildren().add(metadataGenericSchemaNode);
  metadataWSDLSchemaNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
  metadataWSDLSchemaNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_WSDL_SCHEMA);
  metadataWSDLSchemaNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_WSDL_SCHEMA);
  metadataNode.getChildren().add(metadataWSDLSchemaNode);
  if (codeLanguage != ECodeLanguage.PERL) {
    metadataSalesforceSchemaNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
    metadataSalesforceSchemaNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_SALESFORCE_SCHEMA);
    metadataSalesforceSchemaNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_SALESFORCE_SCHEMA);
    metadataNode.getChildren().add(metadataSalesforceSchemaNode);
  }
  if (PluginChecker.isSAPWizardPluginLoaded() && LanguageManager.getCurrentLanguage() == ECodeLanguage.JAVA) {
    metadataSAPConnectionNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
    metadataSAPConnectionNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_SAPCONNECTIONS);
    metadataSAPConnectionNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_SAPCONNECTIONS);
    metadataNode.getChildren().add(metadataSAPConnectionNode);
  }
  if (PluginChecker.isHL7PluginLoaded()) {
    metadataHL7ConnectionNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
    metadataHL7ConnectionNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_FILE_HL7);
    metadataHL7ConnectionNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_FILE_HL7);
    metadataNode.getChildren().add(metadataHL7ConnectionNode);
  }
  if (PluginChecker.isFTPPluginLoaded()) {
    metadataFTPConnectionNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
    metadataFTPConnectionNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_FILE_FTP);
    metadataFTPConnectionNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_FILE_FTP);
    metadataNode.getChildren().add(metadataFTPConnectionNode);
  }
  if (PluginChecker.isEBCDICPluginLoaded()) {
    metadataEbcdicConnectionNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
    metadataEbcdicConnectionNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_FILE_EBCDIC);
    metadataEbcdicConnectionNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_FILE_EBCDIC);
    metadataNode.getChildren().add(metadataEbcdicConnectionNode);
  }
  if (PluginChecker.isMDMPluginLoaded()) {
    metadataMDMConnectionNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
    metadataMDMConnectionNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_MDMCONNECTION);
    metadataMDMConnectionNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_MDMCONNECTION);
    metadataNode.getChildren().add(metadataMDMConnectionNode);
  }
  if (PluginChecker.isSurvivorshipPluginLoaded() || PluginChecker.isRulesPluginLoaded() || PluginChecker.isBRMSPluginLoaded()) {
    StableRepositoryNode baseRulesNode=new StableRepositoryNode(this,Messages.getString("String_Node_Str"),ECoreImage.METADATA_RULES_ICON);
    baseRulesNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_RULES_MANAGEMENT);
    metadataNode.getChildren().add(baseRulesNode);
    if (PluginChecker.isBRMSPluginLoaded()) {
      metadataBRMSConnectionNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
      metadataBRMSConnectionNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_FILE_BRMS);
      metadataBRMSConnectionNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_FILE_BRMS);
      baseRulesNode.getChildren().add(metadataBRMSConnectionNode);
    }
    if (PluginChecker.isRulesPluginLoaded() && codeLanguage != ECodeLanguage.PERL) {
      metadataRulesNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
      metadataRulesNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_FILE_RULES);
      metadataRulesNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_FILE_RULES);
      baseRulesNode.getChildren().add(metadataRulesNode);
    }
  }
  if (PluginChecker.isValidationrulesPluginLoaded()) {
    metadataValidationRulesNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
    metadataValidationRulesNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_VALIDATION_RULES);
    metadataValidationRulesNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_VALIDATION_RULES);
    metadataNode.getChildren().add(metadataValidationRulesNode);
  }
  if (PluginChecker.isEDIFACTPluginLoaded()) {
    metadataEDIFactConnectionNode=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
    metadataEDIFactConnectionNode.setProperties(EProperties.LABEL,ERepositoryObjectType.METADATA_EDIFACT);
    metadataEDIFactConnectionNode.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.METADATA_EDIFACT);
    metadataNode.getChildren().add(metadataEDIFactConnectionNode);
  }
  if (PluginChecker.isRefProjectLoaded() && getParent() != this && project != null && project.getEmfProject().getReferencedProjects().size() > 0) {
    refProject=new RepositoryNode(null,this,ENodeType.SYSTEM_FOLDER);
    refProject.setProperties(EProperties.LABEL,ERepositoryObjectType.REFERENCED_PROJECTS);
    refProject.setProperties(EProperties.CONTENT_TYPE,ERepositoryObjectType.REFERENCED_PROJECTS);
    nodes.add(refProject);
  }
  deleteHiddenNodes(nodes);
  initExtensionRepositoryNodes(curParentNode);
  try {
    hideHiddenNodesDependsUserRight();
  }
 catch (  JSONException e) {
    ExceptionHandler.process(e);
  }
  collectRepositoryNodes(curParentNode);
}