Migrating code
This commit is contained in:
parent
50ff2fa19a
commit
972b8469e1
|
@ -1091,7 +1091,7 @@ public abstract class ElementManagement<El extends Document, T extends Type> {
|
||||||
JsonNode elementOfArray = arrayElement.next();
|
JsonNode elementOfArray = arrayElement.next();
|
||||||
Object object = null;
|
Object object = null;
|
||||||
|
|
||||||
if(property.getLinkedType()!=null) {
|
if(property.getType()!=null) {
|
||||||
object = getObjectFromJsonNode(elementOfArray);
|
object = getObjectFromJsonNode(elementOfArray);
|
||||||
}else {
|
}else {
|
||||||
object = PropertyElementManagement.getPropertyDocument(elementOfArray);
|
object = PropertyElementManagement.getPropertyDocument(elementOfArray);
|
||||||
|
@ -1101,30 +1101,13 @@ public abstract class ElementManagement<El extends Document, T extends Type> {
|
||||||
((MutableDocument) element).set(key, list, com.arcadedb.schema.Type.LIST);
|
((MutableDocument) element).set(key, list, com.arcadedb.schema.Type.LIST);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SET:
|
|
||||||
Set<Object> set = new HashSet<Object>();
|
|
||||||
Iterator<JsonNode> setElement = value.elements();
|
|
||||||
while(setElement.hasNext()) {
|
|
||||||
JsonNode elementOfSet = setElement.next();
|
|
||||||
Object object = null;
|
|
||||||
|
|
||||||
if(property.getLinkedType()!=null) {
|
|
||||||
object = getObjectFromJsonNode(elementOfSet);
|
|
||||||
}else {
|
|
||||||
object = PropertyElementManagement.getPropertyDocument(elementOfSet);
|
|
||||||
}
|
|
||||||
set.add(object);
|
|
||||||
}
|
|
||||||
element.setProperty(key, set, OType.EMBEDDEDSET);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case MAP:
|
case MAP:
|
||||||
Map<String, Object> map = new HashMap<>();
|
Map<String, Object> map = new HashMap<>();
|
||||||
Iterator<String> fieldNames = value.fieldNames();
|
Iterator<String> fieldNames = value.fieldNames();
|
||||||
while(fieldNames.hasNext()) {
|
while(fieldNames.hasNext()) {
|
||||||
String fieldKey = fieldNames.next();
|
String fieldKey = fieldNames.next();
|
||||||
Object object = null;
|
Object object = null;
|
||||||
if(property.getLinkedType()!=null) {
|
if(property.getType()!=null) {
|
||||||
object = getObjectFromJsonNode(value.get(fieldKey));
|
object = getObjectFromJsonNode(value.get(fieldKey));
|
||||||
}else {
|
}else {
|
||||||
object = PropertyElementManagement.getPropertyDocument(value.get(fieldKey));
|
object = PropertyElementManagement.getPropertyDocument(value.get(fieldKey));
|
||||||
|
@ -1146,7 +1129,7 @@ public abstract class ElementManagement<El extends Document, T extends Type> {
|
||||||
default:
|
default:
|
||||||
Object obj = getObjectFromJsonNode(value);
|
Object obj = getObjectFromJsonNode(value);
|
||||||
if(obj != null) {
|
if(obj != null) {
|
||||||
element.set(key, obj);
|
((MutableDocument) element).set(key, obj);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1172,9 +1155,9 @@ public abstract class ElementManagement<El extends Document, T extends Type> {
|
||||||
try {
|
try {
|
||||||
JsonNode value = properties.get(key);
|
JsonNode value = properties.get(key);
|
||||||
|
|
||||||
OProperty oProperty = type.getProperty(key);
|
Property property = type.getProperty(key);
|
||||||
|
|
||||||
if(oProperty==null) {
|
if(property==null) {
|
||||||
Object object = getObjectFromJsonNode(value);
|
Object object = getObjectFromJsonNode(value);
|
||||||
if(object != null) {
|
if(object != null) {
|
||||||
if(object instanceof Document) {
|
if(object instanceof Document) {
|
||||||
|
@ -1190,7 +1173,7 @@ public abstract class ElementManagement<El extends Document, T extends Type> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}else {
|
}else {
|
||||||
setProperty(oProperty, key, value);
|
setProperty(property, key, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch(Exception e) {
|
} catch(Exception e) {
|
||||||
|
@ -1214,7 +1197,7 @@ public abstract class ElementManagement<El extends Document, T extends Type> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
element.removeProperty(key);
|
((MutableDocument) element).remove(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
return element;
|
return element;
|
||||||
|
@ -1237,7 +1220,7 @@ public abstract class ElementManagement<El extends Document, T extends Type> {
|
||||||
|
|
||||||
if(key.compareTo(IdentifiableElement.METADATA_PROPERTY) == 0) {
|
if(key.compareTo(IdentifiableElement.METADATA_PROPERTY) == 0) {
|
||||||
// Keeping the metadata
|
// Keeping the metadata
|
||||||
MetadataOrient metadataOrient = MetadataUtility.getMetadataOrient((ODocument) object);
|
MetadataOrient metadataOrient = MetadataUtility.getMetadataOrient((Document) object);
|
||||||
ObjectNode metadataJson = (ObjectNode) DBUtility.toJsonNode(metadataOrient);
|
ObjectNode metadataJson = (ObjectNode) DBUtility.toJsonNode(metadataOrient);
|
||||||
|
|
||||||
if(!isUserAllowedToGetPrivacyMeta()) {
|
if(!isUserAllowedToGetPrivacyMeta()) {
|
||||||
|
@ -1248,7 +1231,7 @@ public abstract class ElementManagement<El extends Document, T extends Type> {
|
||||||
// TODO check a solution for supertypes
|
// TODO check a solution for supertypes
|
||||||
TypesCache typesCache = TypesCache.getInstance();
|
TypesCache typesCache = TypesCache.getInstance();
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
CachedType<PropertyType<Property>> metadataType = (CachedType<PropertyType<Property>>) typesCache.getCachedType(Metadata.NAME);
|
CachedType<PropertyType<org.gcube.informationsystem.model.reference.properties.Property>> metadataType = (CachedType<PropertyType<org.gcube.informationsystem.model.reference.properties.Property>>) typesCache.getCachedType(Metadata.NAME);
|
||||||
ObjectMapper objectMapper = new ObjectMapper();
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
Collection<String> superClasses = metadataType.getSuperTypes();
|
Collection<String> superClasses = metadataType.getSuperTypes();
|
||||||
ArrayNode arrayNode = objectMapper.valueToTree(superClasses);
|
ArrayNode arrayNode = objectMapper.valueToTree(superClasses);
|
||||||
|
@ -1277,10 +1260,10 @@ public abstract class ElementManagement<El extends Document, T extends Type> {
|
||||||
}
|
}
|
||||||
|
|
||||||
if(object instanceof Date) {
|
if(object instanceof Date) {
|
||||||
OProperty oProperty = getDocumentType().getProperty(key);
|
Property property = getDocumentType().getProperty(key);
|
||||||
OType oType = oProperty.getType();
|
com.arcadedb.schema.Type type = property.getType();
|
||||||
DateFormat dateFormat = ODateHelper.getDateTimeFormatInstance();
|
DateFormat dateFormat = ODateHelper.getDateTimeFormatInstance();
|
||||||
switch(oType) {
|
switch(type) {
|
||||||
case DATE:
|
case DATE:
|
||||||
dateFormat = ODateHelper.getDateFormatInstance();
|
dateFormat = ODateHelper.getDateFormatInstance();
|
||||||
break;
|
break;
|
||||||
|
@ -1425,7 +1408,7 @@ public abstract class ElementManagement<El extends Document, T extends Type> {
|
||||||
if(propertyDefinition.isNotnull()) {
|
if(propertyDefinition.isNotnull()) {
|
||||||
// If the field is mandatory but null value is accepted I add the
|
// If the field is mandatory but null value is accepted I add the
|
||||||
// field as null value
|
// field as null value
|
||||||
element.set(fieldName, null);
|
((MutableDocument) element).set(fieldName, null);
|
||||||
} else {
|
} else {
|
||||||
throw new SchemaViolationException(getMandatoryErrorMessage(fieldName));
|
throw new SchemaViolationException(getMandatoryErrorMessage(fieldName));
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
package org.gcube.informationsystem.resourceregistry.queries.templates;
|
package org.gcube.informationsystem.resourceregistry.queries.templates;
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
|
|
||||||
import org.gcube.com.fasterxml.jackson.core.JsonProcessingException;
|
import org.gcube.com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import org.gcube.com.fasterxml.jackson.databind.JsonNode;
|
import org.gcube.com.fasterxml.jackson.databind.JsonNode;
|
||||||
import org.gcube.com.fasterxml.jackson.databind.ObjectMapper;
|
import org.gcube.com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
@ -25,11 +23,11 @@ import org.gcube.informationsystem.types.reference.entities.EntityType;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import com.orientechnologies.orient.core.db.document.ODatabaseDocument;
|
import com.arcadedb.database.Document;
|
||||||
import com.orientechnologies.orient.core.record.OVertex;
|
import com.arcadedb.graph.Vertex;
|
||||||
import com.orientechnologies.orient.core.record.impl.ODocument;
|
import com.arcadedb.query.sql.executor.Result;
|
||||||
import com.orientechnologies.orient.core.sql.executor.OResult;
|
import com.arcadedb.query.sql.executor.ResultSet;
|
||||||
import com.orientechnologies.orient.core.sql.executor.OResultSet;
|
import com.arcadedb.remote.RemoteDatabase;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Luca Frosini (ISTI - CNR)
|
* @author Luca Frosini (ISTI - CNR)
|
||||||
|
@ -46,9 +44,9 @@ public class QueryTemplateManagement extends EntityElementManagement<QueryTempla
|
||||||
this.typeName = QueryTemplate.NAME;
|
this.typeName = QueryTemplate.NAME;
|
||||||
}
|
}
|
||||||
|
|
||||||
public QueryTemplateManagement(ODatabaseDocument oDatabaseDocument) throws ResourceRegistryException {
|
public QueryTemplateManagement(RemoteDatabase database) throws ResourceRegistryException {
|
||||||
this();
|
this();
|
||||||
this.oDatabaseDocument = oDatabaseDocument;
|
this.database = database;
|
||||||
getWorkingContext();
|
getWorkingContext();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -85,7 +83,7 @@ public class QueryTemplateManagement extends EntityElementManagement<QueryTempla
|
||||||
name = jsonNode.get(QueryTemplate.NAME_PROPERTY).asText();
|
name = jsonNode.get(QueryTemplate.NAME_PROPERTY).asText();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
name = element.getProperty(QueryTemplate.NAME_PROPERTY);
|
name = element.getString(QueryTemplate.NAME_PROPERTY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return name;
|
return name;
|
||||||
|
@ -104,7 +102,7 @@ public class QueryTemplateManagement extends EntityElementManagement<QueryTempla
|
||||||
try {
|
try {
|
||||||
JsonNode queryTemplate = serializeSelfAsJsonNode();
|
JsonNode queryTemplate = serializeSelfAsJsonNode();
|
||||||
ObjectMapper objectMapper = new ObjectMapper();
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
String templateString = element.getProperty(QueryTemplate.TEMPLATE_PROPERTY);
|
String templateString = element.getString(QueryTemplate.TEMPLATE_PROPERTY);
|
||||||
JsonNode templateJsonNode = objectMapper.readTree(templateString);
|
JsonNode templateJsonNode = objectMapper.readTree(templateString);
|
||||||
((ObjectNode) queryTemplate).replace(QueryTemplate.TEMPLATE_PROPERTY, templateJsonNode);
|
((ObjectNode) queryTemplate).replace(QueryTemplate.TEMPLATE_PROPERTY, templateJsonNode);
|
||||||
return queryTemplate;
|
return queryTemplate;
|
||||||
|
@ -141,7 +139,7 @@ public class QueryTemplateManagement extends EntityElementManagement<QueryTempla
|
||||||
|
|
||||||
logger.trace("Checking if {} -> {}", errorMessage, select);
|
logger.trace("Checking if {} -> {}", errorMessage, select);
|
||||||
|
|
||||||
OResultSet resultSet = oDatabaseDocument.command(select.toString(), new HashMap<>());
|
ResultSet resultSet = database.command("sql", select.toString());
|
||||||
|
|
||||||
if (resultSet != null) {
|
if (resultSet != null) {
|
||||||
try {
|
try {
|
||||||
|
@ -170,10 +168,10 @@ public class QueryTemplateManagement extends EntityElementManagement<QueryTempla
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public OVertex retrieveElement() throws NotFoundException, ResourceRegistryException {
|
public Vertex retrieveElement() throws NotFoundException, ResourceRegistryException {
|
||||||
try {
|
try {
|
||||||
StringBuffer select = getSelectQuery();
|
StringBuffer select = getSelectQuery();
|
||||||
OResultSet resultSet = oDatabaseDocument.query(select.toString(), new HashMap<>());
|
ResultSet resultSet = database.query("sql", select.toString());
|
||||||
|
|
||||||
if(resultSet == null || !resultSet.hasNext()) {
|
if(resultSet == null || !resultSet.hasNext()) {
|
||||||
if(resultSet!=null) {
|
if(resultSet!=null) {
|
||||||
|
@ -182,8 +180,8 @@ public class QueryTemplateManagement extends EntityElementManagement<QueryTempla
|
||||||
throw new NotFoundException("Error retrieving " + QueryTemplate.NAME + " with name " + getName());
|
throw new NotFoundException("Error retrieving " + QueryTemplate.NAME + " with name " + getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
OResult oResult = resultSet.next();
|
Result result = resultSet.next();
|
||||||
OVertex queryTemplate = ElementManagementUtility.getElementFromOptional(oResult.getVertex());
|
Vertex queryTemplate = ElementManagementUtility.getElementFromOptional(result.getVertex());
|
||||||
|
|
||||||
logger.trace("{} representing vertex is {}", QueryTemplate.NAME, DBUtility.getAsStringForLogging(queryTemplate));
|
logger.trace("{} representing vertex is {}", QueryTemplate.NAME, DBUtility.getAsStringForLogging(queryTemplate));
|
||||||
|
|
||||||
|
@ -204,7 +202,7 @@ public class QueryTemplateManagement extends EntityElementManagement<QueryTempla
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected OVertex reallyCreate() throws AlreadyPresentException, InvalidQueryException, ResourceRegistryException {
|
protected Vertex reallyCreate() throws AlreadyPresentException, InvalidQueryException, ResourceRegistryException {
|
||||||
try {
|
try {
|
||||||
checkIfNameAlreadyExists();
|
checkIfNameAlreadyExists();
|
||||||
tryTemplate();
|
tryTemplate();
|
||||||
|
@ -213,23 +211,23 @@ public class QueryTemplateManagement extends EntityElementManagement<QueryTempla
|
||||||
} catch(ResourceRegistryException e) {
|
} catch(ResourceRegistryException e) {
|
||||||
throw e;
|
throw e;
|
||||||
} catch(Exception e) {
|
} catch(Exception e) {
|
||||||
logger.trace("Error while creating {} for {} ({}) using {}", OVertex.class.getSimpleName(),
|
logger.trace("Error while creating {} for {} ({}) using {}", Vertex.class.getSimpleName(),
|
||||||
accessType.getName(), typeName, jsonNode, e);
|
accessType.getName(), typeName, jsonNode, e);
|
||||||
throw new ResourceRegistryException("Error Creating " + typeName + " with " + jsonNode, e.getCause());
|
throw new ResourceRegistryException("Error Creating " + typeName + " with " + jsonNode, e.getCause());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected OVertex reallyUpdate() throws NotFoundException, ResourceRegistryException {
|
protected Vertex reallyUpdate() throws NotFoundException, ResourceRegistryException {
|
||||||
try {
|
try {
|
||||||
tryTemplate();
|
tryTemplate();
|
||||||
OVertex queryTemplate = getElement();
|
Vertex queryTemplate = getElement();
|
||||||
queryTemplate = (OVertex) updateProperties(oClass, queryTemplate, jsonNode, ignoreKeys, ignoreStartWithKeys);
|
queryTemplate = (Vertex) updateProperties(documentType, queryTemplate, jsonNode, ignoreKeys, ignoreStartWithKeys);
|
||||||
return getElement();
|
return getElement();
|
||||||
} catch(ResourceRegistryException e) {
|
} catch(ResourceRegistryException e) {
|
||||||
throw e;
|
throw e;
|
||||||
} catch(Exception e) {
|
} catch(Exception e) {
|
||||||
logger.trace("Error while creating {} for {} ({}) using {}", OVertex.class.getSimpleName(),
|
logger.trace("Error while creating {} for {} ({}) using {}", Vertex.class.getSimpleName(),
|
||||||
accessType.getName(), typeName, jsonNode, e);
|
accessType.getName(), typeName, jsonNode, e);
|
||||||
throw new ResourceRegistryException("Error Creating " + typeName + " with " + jsonNode, e.getCause());
|
throw new ResourceRegistryException("Error Creating " + typeName + " with " + jsonNode, e.getCause());
|
||||||
}
|
}
|
||||||
|
@ -255,10 +253,10 @@ public class QueryTemplateManagement extends EntityElementManagement<QueryTempla
|
||||||
public String reallyGetAll(boolean polymorphic) throws ResourceRegistryException {
|
public String reallyGetAll(boolean polymorphic) throws ResourceRegistryException {
|
||||||
ObjectMapper objectMapper = new ObjectMapper();
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
ArrayNode arrayNode = objectMapper.createArrayNode();
|
ArrayNode arrayNode = objectMapper.createArrayNode();
|
||||||
Iterable<ODocument> iterable = oDatabaseDocument.browseClass(typeName, polymorphic);
|
Iterable<Document> iterable = database.browseClass(typeName, polymorphic);
|
||||||
for (ODocument vertex : iterable) {
|
for (Document vertex : iterable) {
|
||||||
QueryTemplateManagement queryTemplateManagement = new QueryTemplateManagement();
|
QueryTemplateManagement queryTemplateManagement = new QueryTemplateManagement();
|
||||||
queryTemplateManagement.setElement((OVertex) vertex);
|
queryTemplateManagement.setElement((Vertex) vertex);
|
||||||
try {
|
try {
|
||||||
JsonNode jsonObject = queryTemplateManagement.serializeAsJsonNode();
|
JsonNode jsonObject = queryTemplateManagement.serializeAsJsonNode();
|
||||||
arrayNode.add(jsonObject);
|
arrayNode.add(jsonObject);
|
||||||
|
|
|
@ -45,7 +45,7 @@ import org.gcube.informationsystem.resourceregistry.types.TypeManagement;
|
||||||
import org.gcube.informationsystem.types.TypeMapper;
|
import org.gcube.informationsystem.types.TypeMapper;
|
||||||
import org.gcube.informationsystem.types.reference.Type;
|
import org.gcube.informationsystem.types.reference.Type;
|
||||||
|
|
||||||
import com.orientechnologies.orient.core.record.ODirection;
|
import com.arcadedb.graph.Vertex.DIRECTION;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Luca Frosini (ISTI - CNR)
|
* @author Luca Frosini (ISTI - CNR)
|
||||||
|
@ -372,7 +372,7 @@ public class Access extends BaseRest {
|
||||||
|
|
||||||
if(erManagement instanceof ResourceManagement) {
|
if(erManagement instanceof ResourceManagement) {
|
||||||
UUID refereceUUID = null;
|
UUID refereceUUID = null;
|
||||||
ODirection directionEnum = ODirection.OUT;
|
DIRECTION directionEnum = DIRECTION.OUT;
|
||||||
|
|
||||||
Map<String,String> constraint = new HashMap<>();
|
Map<String,String> constraint = new HashMap<>();
|
||||||
|
|
||||||
|
@ -414,9 +414,9 @@ public class Access extends BaseRest {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
directionEnum = ODirection.valueOf(direction.toUpperCase());
|
directionEnum = DIRECTION.valueOf(direction.toUpperCase());
|
||||||
} catch(Exception e) {
|
} catch(Exception e) {
|
||||||
String error = String.format("%s is not a valid. Allowed values are %s", direction, ODirection.values());
|
String error = String.format("%s is not a valid. Allowed values are %s", direction, DIRECTION.values());
|
||||||
throw new InvalidQueryException(error);
|
throw new InvalidQueryException(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,57 +0,0 @@
|
||||||
package org.gcube.informationsystem.resourceregistry.types;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import org.gcube.informationsystem.types.PropertyTypeName.BaseType;
|
|
||||||
|
|
||||||
import com.orientechnologies.orient.core.metadata.schema.OType;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Luca Frosini (ISTI - CNR)
|
|
||||||
*
|
|
||||||
* Create a mapping between OrientDB {@link OType}
|
|
||||||
* https://orientdb.gitbooks.io/orientdb-manual/content/orientdb.wiki/Types.html
|
|
||||||
* and {@link BaseType}
|
|
||||||
*/
|
|
||||||
public class OrientDBTypeMapping {
|
|
||||||
|
|
||||||
protected static final Map<BaseType,OType> BASE_TYPE_TO_OTYPE;
|
|
||||||
|
|
||||||
protected static final Map<OType,BaseType> OTYPE_TO_BASE_TYPE;
|
|
||||||
|
|
||||||
|
|
||||||
static {
|
|
||||||
BASE_TYPE_TO_OTYPE = new HashMap<>();
|
|
||||||
|
|
||||||
BASE_TYPE_TO_OTYPE.put(BaseType.BOOLEAN, OType.BOOLEAN);
|
|
||||||
BASE_TYPE_TO_OTYPE.put(BaseType.INTEGER, OType.INTEGER);
|
|
||||||
BASE_TYPE_TO_OTYPE.put(BaseType.SHORT, OType.SHORT);
|
|
||||||
BASE_TYPE_TO_OTYPE.put(BaseType.LONG, OType.LONG);
|
|
||||||
BASE_TYPE_TO_OTYPE.put(BaseType.FLOAT, OType.FLOAT);
|
|
||||||
BASE_TYPE_TO_OTYPE.put(BaseType.DOUBLE, OType.DOUBLE);
|
|
||||||
BASE_TYPE_TO_OTYPE.put(BaseType.DATE, OType.DATETIME);
|
|
||||||
BASE_TYPE_TO_OTYPE.put(BaseType.STRING, OType.STRING);
|
|
||||||
BASE_TYPE_TO_OTYPE.put(BaseType.BINARY, OType.BINARY);
|
|
||||||
BASE_TYPE_TO_OTYPE.put(BaseType.BYTE, OType.BYTE);
|
|
||||||
BASE_TYPE_TO_OTYPE.put(BaseType.PROPERTY, OType.EMBEDDED);
|
|
||||||
BASE_TYPE_TO_OTYPE.put(BaseType.LIST, OType.EMBEDDEDLIST);
|
|
||||||
BASE_TYPE_TO_OTYPE.put(BaseType.SET, OType.EMBEDDEDSET);
|
|
||||||
BASE_TYPE_TO_OTYPE.put(BaseType.MAP, OType.EMBEDDEDMAP);
|
|
||||||
|
|
||||||
OTYPE_TO_BASE_TYPE = new HashMap<>();
|
|
||||||
for(BaseType baseType : BASE_TYPE_TO_OTYPE.keySet()) {
|
|
||||||
OTYPE_TO_BASE_TYPE.put(BASE_TYPE_TO_OTYPE.get(baseType), baseType);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static OType getOTypeByBaseType(final BaseType baseType) {
|
|
||||||
return BASE_TYPE_TO_OTYPE.get(baseType);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static BaseType getBaseTypeByOType(final OType oType) {
|
|
||||||
return OTYPE_TO_BASE_TYPE.get(oType);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -368,7 +368,7 @@ public class TypeManagement {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
com.arcadedb.schema.Type oType = OrientDBTypeMapping.getOTypeByBaseType(propertyTypeName.getBaseType());
|
com.arcadedb.schema.Type oType = DBTypeMapping.getDBType(propertyTypeName.getBaseType());
|
||||||
|
|
||||||
com.arcadedb.schema.Property op = documentType.createProperty(propertyDefinition.getName(), oType);
|
com.arcadedb.schema.Property op = documentType.createProperty(propertyDefinition.getName(), oType);
|
||||||
op.setDescription(propertyDefinition.getDescription());
|
op.setDescription(propertyDefinition.getDescription());
|
||||||
|
@ -404,8 +404,8 @@ public class TypeManagement {
|
||||||
|
|
||||||
op.setLinkedClass(linkedClass);
|
op.setLinkedClass(linkedClass);
|
||||||
} else {
|
} else {
|
||||||
OType linkedOType = OrientDBTypeMapping
|
OType linkedOType = DBTypeMapping
|
||||||
.getOTypeByBaseType(propertyTypeName.getGenericBaseType());
|
.getDBType(propertyTypeName.getGenericBaseType());
|
||||||
op.setLinkedType(OType.getById(Integer.valueOf(linkedOType.ordinal()).byteValue()));
|
op.setLinkedType(OType.getById(Integer.valueOf(linkedOType.ordinal()).byteValue()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -542,7 +542,7 @@ public class TypeManagement {
|
||||||
}
|
}
|
||||||
|
|
||||||
PropertyTypeName newPropertyTypeName = ((PropertyDefinitionImpl) newPropertyDefinition).getPropertyTypeName();
|
PropertyTypeName newPropertyTypeName = ((PropertyDefinitionImpl) newPropertyDefinition).getPropertyTypeName();
|
||||||
com.arcadedb.schema.Type dbType = OrientDBTypeMapping.getOTypeByBaseType(newPropertyTypeName.getBaseType());
|
com.arcadedb.schema.Type dbType = DBTypeMapping.getDBType(newPropertyTypeName.getBaseType());
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Excluding EMBEDDEDLIST and EMBEDDEDSET
|
* Excluding EMBEDDEDLIST and EMBEDDEDSET
|
||||||
|
@ -603,7 +603,7 @@ public class TypeManagement {
|
||||||
|
|
||||||
dbProperty.setLinkedClass(linkedClass);
|
dbProperty.setLinkedClass(linkedClass);
|
||||||
} else {
|
} else {
|
||||||
com.arcadedb.schema.Type linkedOType = OrientDBTypeMapping.getOTypeByBaseType(newPropertyTypeName.getGenericBaseType());
|
com.arcadedb.schema.Type linkedOType = DBTypeMapping.getDBType(newPropertyTypeName.getGenericBaseType());
|
||||||
dbProperty.setLinkedType(Type.getById(Integer.valueOf(linkedOType.ordinal()).byteValue()));
|
dbProperty.setLinkedType(Type.getById(Integer.valueOf(linkedOType.ordinal()).byteValue()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,6 @@ import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.apache.lucene.document.Document;
|
|
||||||
import org.gcube.common.encryption.encrypter.StringEncrypter;
|
import org.gcube.common.encryption.encrypter.StringEncrypter;
|
||||||
import org.gcube.informationsystem.base.reference.properties.PropertyElement;
|
import org.gcube.informationsystem.base.reference.properties.PropertyElement;
|
||||||
import org.gcube.informationsystem.model.reference.properties.Encrypted;
|
import org.gcube.informationsystem.model.reference.properties.Encrypted;
|
||||||
|
@ -16,10 +15,12 @@ import org.gcube.informationsystem.resourceregistry.types.TypesCache;
|
||||||
import org.gcube.informationsystem.types.reference.properties.PropertyType;
|
import org.gcube.informationsystem.types.reference.properties.PropertyType;
|
||||||
import org.gcube.informationsystem.utils.TypeUtility;
|
import org.gcube.informationsystem.utils.TypeUtility;
|
||||||
|
|
||||||
|
import com.arcadedb.database.MutableDocument;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Luca Frosini (ISTI - CNR)
|
* @author Luca Frosini (ISTI - CNR)
|
||||||
*/
|
*/
|
||||||
public class EncryptedOrient extends Document implements Encrypted {
|
public class EncryptedOrient extends MutableDocument implements Encrypted {
|
||||||
|
|
||||||
public static final String NAME = "Encrypted";
|
public static final String NAME = "Encrypted";
|
||||||
public static final String VALUE = "value";
|
public static final String VALUE = "value";
|
||||||
|
@ -61,11 +62,11 @@ public class EncryptedOrient extends Document implements Encrypted {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getEncryptedValue() {
|
public String getEncryptedValue() {
|
||||||
return this.field(EncryptedOrient.VALUE);
|
return this.getString(EncryptedOrient.VALUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setEncryptedValue(String encryptedValue) {
|
public void setEncryptedValue(String encryptedValue) {
|
||||||
this.field(EncryptedOrient.VALUE, encryptedValue);
|
this.set(EncryptedOrient.VALUE, encryptedValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getDecryptedValue() {
|
public String getDecryptedValue() {
|
||||||
|
|
|
@ -12,12 +12,12 @@ import org.gcube.informationsystem.resourceregistry.types.TypesCache;
|
||||||
import org.gcube.informationsystem.types.reference.properties.PropertyType;
|
import org.gcube.informationsystem.types.reference.properties.PropertyType;
|
||||||
import org.gcube.informationsystem.utils.TypeUtility;
|
import org.gcube.informationsystem.utils.TypeUtility;
|
||||||
|
|
||||||
import com.orientechnologies.orient.core.record.impl.ODocument;
|
import com.arcadedb.database.MutableDocument;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Luca Frosini (ISTI - CNR)
|
* @author Luca Frosini (ISTI - CNR)
|
||||||
*/
|
*/
|
||||||
public class PropagationConstraintOrient extends ODocument implements PropagationConstraint {
|
public class PropagationConstraintOrient extends MutableDocument implements PropagationConstraint {
|
||||||
|
|
||||||
public PropagationConstraintOrient() {
|
public PropagationConstraintOrient() {
|
||||||
super(PropagationConstraint.NAME);
|
super(PropagationConstraint.NAME);
|
||||||
|
|
Loading…
Reference in New Issue