resource-registry/src/main/java/org/gcube/informationsystem/resourceregistry/types/DBTypeMapping.java

58 lines
1.9 KiB
Java

package org.gcube.informationsystem.resourceregistry.types;
import java.util.HashMap;
import java.util.Map;
import org.gcube.informationsystem.types.PropertyTypeName.BaseType;
import com.arcadedb.schema.Type;
/**
* @author Luca Frosini (ISTI - CNR)
*
* Create a mapping between OrientDB {@link Type}
* https://orientdb.gitbooks.io/orientdb-manual/content/orientdb.wiki/Types.html
* and {@link BaseType}
*/
public class DBTypeMapping {
protected static final Map<BaseType,Type> IS_BASE_TYPE_TO_DB_TYPE;
protected static final Map<Type,BaseType> DB_TYPE_TO_IS_BASE_TYPE;
static {
IS_BASE_TYPE_TO_DB_TYPE = new HashMap<>();
IS_BASE_TYPE_TO_DB_TYPE.put(BaseType.BOOLEAN, Type.BOOLEAN);
IS_BASE_TYPE_TO_DB_TYPE.put(BaseType.INTEGER, Type.INTEGER);
IS_BASE_TYPE_TO_DB_TYPE.put(BaseType.SHORT, Type.SHORT);
IS_BASE_TYPE_TO_DB_TYPE.put(BaseType.LONG, Type.LONG);
IS_BASE_TYPE_TO_DB_TYPE.put(BaseType.FLOAT, Type.FLOAT);
IS_BASE_TYPE_TO_DB_TYPE.put(BaseType.DOUBLE, Type.DOUBLE);
IS_BASE_TYPE_TO_DB_TYPE.put(BaseType.DATE, Type.DATETIME);
IS_BASE_TYPE_TO_DB_TYPE.put(BaseType.STRING, Type.STRING);
IS_BASE_TYPE_TO_DB_TYPE.put(BaseType.BINARY, Type.BINARY);
IS_BASE_TYPE_TO_DB_TYPE.put(BaseType.BYTE, Type.BYTE);
IS_BASE_TYPE_TO_DB_TYPE.put(BaseType.PROPERTY, Type.EMBEDDED);
IS_BASE_TYPE_TO_DB_TYPE.put(BaseType.LIST, Type.LIST);
IS_BASE_TYPE_TO_DB_TYPE.put(BaseType.SET, Type.LIST);
IS_BASE_TYPE_TO_DB_TYPE.put(BaseType.MAP, Type.MAP);
DB_TYPE_TO_IS_BASE_TYPE = new HashMap<>();
for(BaseType baseType : IS_BASE_TYPE_TO_DB_TYPE.keySet()) {
DB_TYPE_TO_IS_BASE_TYPE.put(IS_BASE_TYPE_TO_DB_TYPE.get(baseType), baseType);
}
}
public static Type getDBType(final BaseType baseType) {
return IS_BASE_TYPE_TO_DB_TYPE.get(baseType);
}
public static BaseType getISBaseType(final Type oType) {
return DB_TYPE_TO_IS_BASE_TYPE.get(oType);
}
}