package org.flowerplatform.codesync.code.javascript.config;
import java.util.List;
import org.flowerplatform.codesync.remote.CodeSyncOperationsService;
import com.crispico.flower.mp.model.codesync.CodeSyncElement;
import com.crispico.flower.mp.model.codesync.CodeSyncRoot;
public class Utils {
/**
* @param ignoreTypes - creates path without adding the {@link CodeSyncElement}s with type in this list
* @param ignoreInitialElement - doesn't add initial element to path
*
* @author Cristian Spiescu
* @author Cristina Constantinescu
*/
public static String getQualifiedPath(CodeSyncElement element, boolean ignoreInitialElement, List<String> ignoreTypes) {
if (ignoreInitialElement) {
return getQualifiedPath(element.eContainer() instanceof CodeSyncElement ? (CodeSyncElement) element.eContainer() : null, false, ignoreTypes);
}
StringBuffer sb = new StringBuffer();
while (element != null) {
if (element instanceof CodeSyncRoot) {
break;
}
if (ignoreTypes != null && ignoreTypes.contains(element.getType())) {
} else {
if (sb.length() != 0) {
sb.insert(0, '/');
}
String currentName = (String) CodeSyncOperationsService.getInstance().getKeyFeatureValue(element);
sb.insert(0, currentName);
}
element = element.eContainer() instanceof CodeSyncElement ? (CodeSyncElement) element.eContainer() : null;
}
return sb.toString();
}
}