X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.api%2Fsrc%2Forg%2Fargeo%2Fslc%2FCategorizedNameVersion.java;h=b890340cda6bfc01d4b15238c580bbfea652cb77;hb=3ff90591a4e64b7459372afe4129f84fb959bbe0;hp=fd7d56d78eff0269fbd6c74fcd9b247fa1cafbef;hpb=d154e9f68017e8c5a8edac15475b2d79aea3e9d4;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc.api/src/org/argeo/slc/CategorizedNameVersion.java b/org.argeo.slc.api/src/org/argeo/slc/CategorizedNameVersion.java index fd7d56d78..b890340cd 100644 --- a/org.argeo.slc.api/src/org/argeo/slc/CategorizedNameVersion.java +++ b/org.argeo.slc.api/src/org/argeo/slc/CategorizedNameVersion.java @@ -6,5 +6,20 @@ package org.argeo.slc; */ public interface CategorizedNameVersion extends NameVersion { /** The category of the component. */ - public String getCategory(); + String getCategory(); + + static CategorizedNameVersion parseCategoryNameVersion(String str) { + if (str == null || "".equals(str.trim())) + throw new IllegalArgumentException("At least one character required."); + String[] arr = str.trim().split(":"); + if (arr.length > 3) + throw new IllegalArgumentException(str + " does not respect the [category]:[name]:[version] pattern"); + DefaultCategorizedNameVersion res = new DefaultCategorizedNameVersion(); + res.setCategory(arr[0]); + if (arr.length > 1) + res.setName(arr[1]); + if (arr.length > 2) + res.setVersion(arr[2]); + return res; + } }