1 17 package org.alfresco.jcr.dictionary; 18 19 import java.util.HashMap ; 20 import java.util.Map ; 21 22 import javax.jcr.PropertyType; 23 import javax.jcr.RepositoryException; 24 25 import org.alfresco.error.AlfrescoRuntimeException; 26 import org.alfresco.service.cmr.dictionary.DataTypeDefinition; 27 import org.alfresco.service.namespace.QName; 28 29 30 35 public class DataTypeMap 36 { 37 38 39 private static Map <QName, Integer > dataTypeToPropertyType = new HashMap <QName, Integer >(); 40 static 41 { 42 dataTypeToPropertyType.put(DataTypeDefinition.TEXT, PropertyType.STRING); 43 dataTypeToPropertyType.put(DataTypeDefinition.CONTENT, PropertyType.BINARY); 44 dataTypeToPropertyType.put(DataTypeDefinition.INT, PropertyType.LONG); 45 dataTypeToPropertyType.put(DataTypeDefinition.LONG, PropertyType.LONG); 46 dataTypeToPropertyType.put(DataTypeDefinition.FLOAT, PropertyType.DOUBLE); 47 dataTypeToPropertyType.put(DataTypeDefinition.DOUBLE, PropertyType.DOUBLE); 48 dataTypeToPropertyType.put(DataTypeDefinition.DATE, PropertyType.DATE); 49 dataTypeToPropertyType.put(DataTypeDefinition.DATETIME, PropertyType.DATE); 50 dataTypeToPropertyType.put(DataTypeDefinition.BOOLEAN, PropertyType.BOOLEAN); 51 dataTypeToPropertyType.put(DataTypeDefinition.QNAME, PropertyType.NAME); 52 dataTypeToPropertyType.put(DataTypeDefinition.CATEGORY, PropertyType.STRING); dataTypeToPropertyType.put(DataTypeDefinition.NODE_REF, PropertyType.REFERENCE); 54 dataTypeToPropertyType.put(DataTypeDefinition.PATH, PropertyType.PATH); 55 dataTypeToPropertyType.put(DataTypeDefinition.ANY, PropertyType.UNDEFINED); 56 } 57 58 59 private static Map <Integer , QName> propertyTypeToDataType = new HashMap <Integer , QName>(); 60 static 61 { 62 propertyTypeToDataType.put(PropertyType.STRING, DataTypeDefinition.TEXT); 63 propertyTypeToDataType.put(PropertyType.BINARY, DataTypeDefinition.CONTENT); 64 propertyTypeToDataType.put(PropertyType.LONG, DataTypeDefinition.LONG); 65 propertyTypeToDataType.put(PropertyType.DOUBLE, DataTypeDefinition.DOUBLE); 66 propertyTypeToDataType.put(PropertyType.DATE, DataTypeDefinition.DATETIME); 67 propertyTypeToDataType.put(PropertyType.BOOLEAN, DataTypeDefinition.BOOLEAN); 68 propertyTypeToDataType.put(PropertyType.NAME, DataTypeDefinition.QNAME); 69 propertyTypeToDataType.put(PropertyType.REFERENCE, DataTypeDefinition.NODE_REF); 70 propertyTypeToDataType.put(PropertyType.PATH, DataTypeDefinition.PATH); 71 propertyTypeToDataType.put(PropertyType.UNDEFINED, DataTypeDefinition.ANY); 72 } 73 74 81 public static int convertDataTypeToPropertyType(QName datatype) 82 { 83 Integer propertyType = dataTypeToPropertyType.get(datatype); 84 if (propertyType == null) 85 { 86 throw new AlfrescoRuntimeException("Cannot map Alfresco data type " + datatype + " to JCR property type."); 87 } 88 return propertyType; 89 } 90 91 98 public static QName convertPropertyTypeToDataType(int propertyType) 99 { 100 QName type = propertyTypeToDataType.get(propertyType); 101 if (type == null) 102 { 103 throw new AlfrescoRuntimeException("Cannot map JCR property type " + propertyType + " to Alfresco data type."); 104 } 105 return type; 106 } 107 108 } 109 | Popular Tags |