use of org.talend.core.model.repository.DynaEnum in project tdi-studio-se by Talend.
the class TosTokenCollector method collectProjectDetails.
private JSONObject collectProjectDetails() throws PersistenceException, JSONException {
JSONObject jObject = new JSONObject();
Project currentProject = ProjectManager.getInstance().getCurrentProject();
final IProxyRepositoryFactory factory = ProxyRepositoryFactory.getInstance();
JSONObject repoStats = new JSONObject();
// metadata
for (DynaEnum type : ERepositoryObjectType.values()) {
if (type instanceof ERepositoryObjectType && ((ERepositoryObjectType) type).isResourceItem()) {
try {
List<IRepositoryViewObject> all = factory.getAll(currentProject, (ERepositoryObjectType) type);
int nb = all.size();
if (ERepositoryObjectType.TDQ_INDICATOR_ELEMENT.equals(type) || ERepositoryObjectType.TDQ_PATTERN_ELEMENT.equals(type) || ERepositoryObjectType.TDQ_RULES.equals(type) || "TDQ_SOURCE_FILE_ELEMENT".equals(type.getType())) {
//$NON-NLS-1$
continue;
}
if (ERepositoryObjectType.ROUTINES.equals(type)) {
nb = 0;
List<IRepositoryViewObject> newList = new ArrayList<IRepositoryViewObject>();
for (IRepositoryViewObject object : all) {
RoutineItem rItem = (RoutineItem) object.getProperty().getItem();
if (!rItem.isBuiltIn()) {
nb++;
newList.add(object);
}
}
all = newList;
}
if (ERepositoryObjectType.SQLPATTERNS.equals(type)) {
nb = 0;
for (IRepositoryViewObject object : all) {
SQLPatternItem spItem = (SQLPatternItem) object.getProperty().getItem();
if (!spItem.isSystem()) {
nb++;
}
}
}
if ("MDM.DataModel".equals(type.getType())) {
//$NON-NLS-1$
nb = 0;
for (IRepositoryViewObject object : all) {
String path = object.getProperty().getItem().getState().getPath();
if (!"System".equals(path)) {
//$NON-NLS-1$
nb++;
}
}
}
if (nb > 0) {
JSONObject typeStats = new JSONObject();
//$NON-NLS-1$
typeStats.put("nb", nb);
if (ERepositoryObjectType.getAllTypesOfProcess().contains(type)) {
JSONObject jobDetails = new JSONObject();
collectJobDetails(all, jobDetails);
//$NON-NLS-1$
typeStats.put("details", jobDetails);
}
if (ERepositoryObjectType.ROUTINES.equals(type) || //$NON-NLS-1$
((ERepositoryObjectType) type).getFolder().startsWith("metadata/") || ERepositoryObjectType.CONTEXT.equals(type) || type.equals(ERepositoryObjectType.JOBLET)) {
int nbUsed = 0;
for (IRepositoryViewObject object : all) {
List<Relation> relations = RelationshipItemBuilder.getInstance().getItemsHaveRelationWith(object.getId());
relations.addAll(RelationshipItemBuilder.getInstance().getItemsHaveRelationWith(object.getLabel()));
if (relations.size() > 0) {
nbUsed++;
}
}
//$NON-NLS-1$
typeStats.put("nb.used", nbUsed);
}
if (ERepositoryObjectType.METADATA_CONNECTIONS.equals(type)) {
JSONObject objects = new JSONObject();
for (IRepositoryViewObject object : all) {
DatabaseConnectionItem item = (DatabaseConnectionItem) object.getProperty().getItem();
String dbType = ((DatabaseConnection) item.getConnection()).getDatabaseType();
int nbDbTypes = 1;
if (objects.has(dbType)) {
nbDbTypes = objects.getInt(dbType);
nbDbTypes++;
}
objects.put(dbType, nbDbTypes);
}
//$NON-NLS-1$
typeStats.put("types", objects);
}
repoStats.put(type.getType(), typeStats);
}
} catch (Exception e) {
ExceptionHandler.process(e);
}
}
}
//$NON-NLS-1$
jObject.put(PROJECTS.getKey(), repoStats);
jObject.put(TYPE.getKey(), ProjectManager.getInstance().getProjectType(currentProject));
int nbRef = ProjectManager.getInstance().getAllReferencedProjects().size();
if (nbRef > 0) {
jObject.put("nb.refProjects", nbRef);
}
return jObject;
}
Aggregations