001package org.nuxeo.drive.service.impl; 002 003import java.util.HashSet; 004import java.util.LinkedHashMap; 005import java.util.Map; 006import java.util.Set; 007 008import org.apache.commons.lang.StringUtils; 009import org.nuxeo.ecm.core.api.IdRef; 010 011/** 012 * Helper to handle synchronization root definitions. 013 * 014 * @author Antoine Taillefer 015 */ 016public final class RootDefinitionsHelper { 017 018 private RootDefinitionsHelper() { 019 // Utility class 020 } 021 022 /** 023 * Parses the given synchronization root definitions string. 024 */ 025 public static Map<String, Set<IdRef>> parseRootDefinitions(String rootDefinitions) { 026 Map<String, Set<IdRef>> lastActiveRootRefs = new LinkedHashMap<String, Set<IdRef>>(); 027 if (rootDefinitions != null) { 028 String[] rootDefinitionComponents = StringUtils.split(rootDefinitions, ","); 029 for (String rootDefinition : rootDefinitionComponents) { 030 String[] rootComponents = StringUtils.split(rootDefinition, ":"); 031 String repoName = rootComponents[0].trim(); 032 Set<IdRef> refs = lastActiveRootRefs.get(repoName); 033 if (refs == null) { 034 refs = new HashSet<IdRef>(); 035 lastActiveRootRefs.put(repoName, refs); 036 } 037 refs.add(new IdRef(rootComponents[1].trim())); 038 } 039 } 040 return lastActiveRootRefs; 041 } 042 043}