/** * SlingBeans - NetBeans Sling plugin * https://github.com/jkan997/SlingBeans * Licensed under Apache 2.0 license * http://www.apache.org/licenses/LICENSE-2.0 */ package org.jkan997.slingbeans.helper; import java.util.regex.Pattern; /** * * @author jkan997 */ public class JcrTypeHelper { public static final Pattern jsonDate = Pattern.compile("^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\\.[0-9]{3}[-+]{1}[0-9]{2}[:]{0,1}[0-9]{2}(\\.){0,1}[0-9]{0,3}Z{0,1}$"); public static int getType(String name, Object object) { if (object instanceof Double || object instanceof Float) { return PropertyType.DOUBLE; } else if (object instanceof Number) { return PropertyType.LONG; } else if (object instanceof Boolean) { return PropertyType.BOOLEAN; } else if (object instanceof String) { if (name != null) { if (name.startsWith(PropertyType.TYPENAME_REFERENCE)) { return PropertyType.REFERENCE; } if (name.startsWith(PropertyType.TYPENAME_PATH)) { return PropertyType.PATH; } if (name.startsWith(PropertyType.TYPENAME_NAME)) { return PropertyType.NAME; } if (name.startsWith(PropertyType.TYPENAME_URI)) { return PropertyType.URI; } if (name.startsWith(PropertyType.TYPENAME_DATE)) { return PropertyType.DATE; } } if (jsonDate.matcher((String) object).matches()) { return PropertyType.DATE; } return PropertyType.STRING; } return PropertyType.UNDEFINED; } }