Fixing TypeBinder for resource serialization
git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/private/luca.frosini/information-system-model@129863 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
26ac73ac91
commit
2eeb056a59
|
@ -11,6 +11,9 @@ import org.gcube.informationsystem.model.embedded.Embedded;
|
||||||
import org.gcube.informationsystem.model.entity.Entity;
|
import org.gcube.informationsystem.model.entity.Entity;
|
||||||
import org.gcube.informationsystem.model.entity.Facet;
|
import org.gcube.informationsystem.model.entity.Facet;
|
||||||
import org.gcube.informationsystem.model.entity.Resource;
|
import org.gcube.informationsystem.model.entity.Resource;
|
||||||
|
import org.gcube.informationsystem.model.relation.ConsistOf;
|
||||||
|
import org.gcube.informationsystem.model.relation.RelatedTo;
|
||||||
|
import org.gcube.informationsystem.model.relation.Relation;
|
||||||
import org.gcube.informationsystem.types.Type.OType;
|
import org.gcube.informationsystem.types.Type.OType;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
@ -53,20 +56,32 @@ public class TypeBinder {
|
||||||
typeDefinition.abstractType = true;
|
typeDefinition.abstractType = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(Entity.class.isAssignableFrom(type)) {
|
||||||
if(Resource.class.isAssignableFrom(type)){
|
if(Resource.class.isAssignableFrom(type)){
|
||||||
typeDefinition.superclasses = retrieveSuperClasses(type, Resource.class, Entity.class.getSimpleName());
|
typeDefinition.superclasses = retrieveSuperClasses(type, Resource.class, Entity.class.getSimpleName());
|
||||||
}else{
|
}else{
|
||||||
typeDefinition.properties = retrieveListOfProperties(type);
|
if(Facet.class.isAssignableFrom(type)){
|
||||||
|
typeDefinition.superclasses = retrieveSuperClasses(type, Facet.class, Entity.class.getSimpleName());
|
||||||
if(Facet.class.isAssignableFrom(type)){
|
} else {
|
||||||
typeDefinition.superclasses = retrieveSuperClasses(type, Facet.class, Entity.class.getSimpleName());
|
typeDefinition.superclasses = retrieveSuperClasses(type, Entity.class, "V");
|
||||||
}else if(Embedded.class.isAssignableFrom(type)){
|
}
|
||||||
typeDefinition.superclasses = retrieveSuperClasses(type, Embedded.class, null);
|
|
||||||
} else if(Entity.class.isAssignableFrom(type)){
|
|
||||||
typeDefinition.superclasses = retrieveSuperClasses(type, Entity.class, "V");
|
|
||||||
}
|
}
|
||||||
|
} else if(Relation.class.isAssignableFrom(type)){
|
||||||
|
if(RelatedTo.class.isAssignableFrom(type)){
|
||||||
|
typeDefinition.superclasses = retrieveSuperClasses(type, RelatedTo.class, Relation.class.getSimpleName());
|
||||||
|
} else if(ConsistOf.class.isAssignableFrom(type)) {
|
||||||
|
typeDefinition.superclasses = retrieveSuperClasses(type, ConsistOf.class, Relation.class.getSimpleName());
|
||||||
|
} else {
|
||||||
|
typeDefinition.superclasses = retrieveSuperClasses(type, Relation.class, "E");
|
||||||
|
}
|
||||||
|
} else if(Embedded.class.isAssignableFrom(type)){
|
||||||
|
typeDefinition.superclasses = retrieveSuperClasses(type, Embedded.class, null);
|
||||||
|
} else {
|
||||||
|
throw new RuntimeException("Serialization required");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!Resource.class.isAssignableFrom(type)){
|
||||||
|
typeDefinition.properties = retrieveListOfProperties(type);
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.trace("{} TypeDefinition {} ", type, typeDefinition);
|
logger.trace("{} TypeDefinition {} ", type, typeDefinition);
|
||||||
|
|
Loading…
Reference in New Issue