// ============================================================================
//
// Copyright (C) 2006-2012 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.repository.model;
import org.talend.core.model.repository.ERepositoryObjectType;
/**
* Defines some constants relative to repository such as file patterns.<br/>
*
* $Id: RepositoryConstants.java 8 2006-10-02 09:09:23 +0000 (鏄熸湡涓� 02 �?鏈�2006) mhirt $
*
*/
public class RepositoryConstants {
public static final String TABLE = "TABLE"; //$NON-NLS-1$
public static final String TEMP_DIRECTORY = "temp"; //$NON-NLS-1$
public static final String IMG_DIRECTORY = "images"; //$NON-NLS-1$
public static final String IMG_DIRECTORY_OF_JOB_OUTLINE = "images/job_outlines"; //$NON-NLS-1$
public static final String IMG_DIRECTORY_OF_JOBLET_OUTLINE = "images/joblet_outlines"; //$NON-NLS-1$
public static final String JOB_DOCUMENTATION_PATH = "documentations/generated/jobs"; //$NON-NLS-1$
public static final String JOBLET_DOCUMENTATION_PATH = "documentations/generated/joblets"; //$NON-NLS-1$
public static final String SYSTEM_DIRECTORY = "system"; //$NON-NLS-1$
public static final String USER_DEFINED = "UserDefined"; //$NON-NLS-1$
public static final String CONTEXT_AND_VARIABLE_PATTERN = "^[a-zA-Z]+[a-zA-Z0-9\\_]*$"; //$NON-NLS-1$
public static final String PROJECT_PATTERN = "^[a-zA-Z]+[a-zA-Z0-9 \\-_]*$"; //$NON-NLS-1$
public static final String CODE_ITEM_PATTERN = "^[a-zA-Z]+[a-zA-Z0-9\\_]*$"; //$NON-NLS-1$
public static final String ROUTINES_ITEM_PATTERN = "^[a-zA-Z\\_]+[a-zA-Z0-9\\_]*$"; //$NON-NLS-1$
// public static final String SCHEMA_NAME_PATTERN = "^[a-zA-Z0-9\\_]*$";; //$NON-NLS-1$
public static final String COLUMN_NAME_PATTERN = "^[a-zA-Z_][a-zA-Z_0-9]*$"; //$NON-NLS-1$
// public static final String REPOSITORY_SCHEMA_PATTERN = "^[a-zA-Z0-9\\_]+$"; //$NON-NLS-1$
public static final String SIMPLE_FOLDER_PATTERN = "[a-zA-Z0-9\\_-]+$"; //$NON-NLS-1$ //this added for xml metadata folder
public static final String FOLDER_PATTERN = "^[a-zA-Z]+[a-zA-Z0-9\\_]*$"; //$NON-NLS-1$
public static final String REPOSITORY_ITEM_PATTERN_INTERN = "a-zA-Z0-9\\.\\-\\_\\ \\(\\)\\[\\]="; //$NON-NLS-1$
public static final String REPOSITORY_ITEM_PATTERN = "^[" + REPOSITORY_ITEM_PATTERN_INTERN + "]+$"; //$NON-NLS-1$ //$NON-NLS-2$
public static final String REPOSITORY_ITEM_WILDCARD = "^[" + REPOSITORY_ITEM_PATTERN_INTERN + "\\*\\?]+$"; //$NON-NLS-1$ //$NON-NLS-2$
public static final String PATH_WILDCARD = "^[a-zA-Z\\*\\?/]+[a-zA-Z0-9\\_\\*\\?/]*$"; //$NON-NLS-1$
public static final String PORT_ITEM_PATTERN = "^[0-9]"; //$NON-NLS-1$
public static final String MAIL_PATTERN = "^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*(\\.[_A-Za-z0-9-]+)"; //$NON-NLS-1$
public static final String NOT_SET_STATUS = "not_set_status";
public static final String REPOSITORY_LOCAL_ID = "local"; //$NON-NLS-1$
public static final String REPOSITORY_REMOTE_ID = "remote"; //$NON-NLS-1$
public static final String REPOSITORY_URL = "url"; //$NON-NLS-1$
public static final String TDQ_ALL_ITEM_PATTERN = ".*"; //$NON-NLS-1$
// GLIU: add for TESB-3837
public static final String SERVICES_NAME_PATTERN = "[a-zA-Z_][a-zA-Z0-9\\.\\-_]*";
public static final String MDM_ITEM_PATTERN = ".*"; //$NON-NLS-1$
public static String getPattern(ERepositoryObjectType type) {
if (type == ERepositoryObjectType.FOLDER) {
return FOLDER_PATTERN;
} else if (type == ERepositoryObjectType.PROCESS || type == ERepositoryObjectType.JOBLET) {
return CODE_ITEM_PATTERN;
} else if (type == ERepositoryObjectType.ROUTINES) {
// for bug 10356
return ROUTINES_ITEM_PATTERN;
} else if (type == ERepositoryObjectType.TDQ_JRAXML_ELEMENT || type == ERepositoryObjectType.TDQ_DATA_PROFILING
|| type == ERepositoryObjectType.TDQ_ANALYSIS_ELEMENT || type == ERepositoryObjectType.TDQ_REPORT_ELEMENT
|| type == ERepositoryObjectType.TDQ_LIBRARIES || type == ERepositoryObjectType.TDQ_PATTERN_ELEMENT
|| type == ERepositoryObjectType.TDQ_PATTERN_REGEX || type == ERepositoryObjectType.TDQ_PATTERN_SQL
|| type == ERepositoryObjectType.TDQ_SOURCE_FILE_ELEMENT || type == ERepositoryObjectType.TDQ_RULES
|| type == ERepositoryObjectType.TDQ_RULES_SQL || type == ERepositoryObjectType.TDQ_INDICATOR_ELEMENT) {
return TDQ_ALL_ITEM_PATTERN;
}
// GLIU: add for TESB-3837
else if (type != null && "SERVICES".equals(type.getType())) {
return SERVICES_NAME_PATTERN;
} else if (type != null && "ROUTES".equals(type.getType())) {
return CODE_ITEM_PATTERN;
} else if (type != null && type.getType() != null && type.getType().startsWith("MDM.")) { //$NON-NLS-1$
return MDM_ITEM_PATTERN;
} else {
return TDQ_ALL_ITEM_PATTERN;
}
}
public static boolean isSystemFolder(String label) {
if (label == null) {
return false;
}
return label.equalsIgnoreCase(SYSTEM_DIRECTORY);
}
public static boolean isGeneratedFolder(String label) {
if (label == null) {
return false;
}
return label.equalsIgnoreCase(ERepositoryObjectType.GENERATED.toString());
}
public static boolean isJobsFolder(String label) {
if (label == null) {
return false;
}
return label.equalsIgnoreCase(ERepositoryObjectType.JOBS.toString());
}
/**
* DOC tang Comment method "isJobletsFolder".
*
* @param label
* @return
*/
public static boolean isJobletsFolder(String label) {
if (label == null) {
return false;
}
return label.equalsIgnoreCase(ERepositoryObjectType.JOBLETS.toString());
}
}