Fixed AccessType from type definition. Added Assertion on tests

This commit is contained in:
Luca Frosini 2021-02-11 22:09:02 +01:00
parent 62752a369d
commit 384be462bb
17 changed files with 141 additions and 104 deletions

View File

@ -13,6 +13,7 @@ import org.gcube.com.fasterxml.jackson.annotation.JsonInclude;
import org.gcube.com.fasterxml.jackson.annotation.JsonInclude.Include; import org.gcube.com.fasterxml.jackson.annotation.JsonInclude.Include;
import org.gcube.com.fasterxml.jackson.annotation.JsonProperty; import org.gcube.com.fasterxml.jackson.annotation.JsonProperty;
import org.gcube.com.fasterxml.jackson.annotation.JsonSetter; import org.gcube.com.fasterxml.jackson.annotation.JsonSetter;
import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.base.reference.Element; import org.gcube.informationsystem.base.reference.Element;
import org.gcube.informationsystem.base.reference.entities.EntityElement; import org.gcube.informationsystem.base.reference.entities.EntityElement;
import org.gcube.informationsystem.base.reference.properties.PropertyElement; import org.gcube.informationsystem.base.reference.properties.PropertyElement;
@ -260,5 +261,10 @@ public class TypeImpl implements Type {
public Set<PropertyDefinition> getProperties() { public Set<PropertyDefinition> getProperties() {
return properties; return properties;
} }
@Override
public AccessType getAccessType() {
return null;
}
} }

View File

@ -11,6 +11,8 @@ import org.gcube.informationsystem.model.reference.entities.Resource;
import org.gcube.informationsystem.model.reference.properties.Header; import org.gcube.informationsystem.model.reference.properties.Header;
import org.gcube.informationsystem.types.impl.TypeImpl; import org.gcube.informationsystem.types.impl.TypeImpl;
import org.gcube.informationsystem.types.reference.entities.EntityType; import org.gcube.informationsystem.types.reference.entities.EntityType;
import org.gcube.informationsystem.types.reference.entities.FacetType;
import org.gcube.informationsystem.types.reference.entities.ResourceType;
import org.gcube.informationsystem.utils.ElementMapper; import org.gcube.informationsystem.utils.ElementMapper;
/** /**
@ -106,14 +108,16 @@ public class EntityTypeImpl extends TypeImpl implements EntityType {
return AccessType.CONTEXT; return AccessType.CONTEXT;
} }
if(name.compareTo(EntityType.NAME)==0) {
return AccessType.ENTITY_TYPE;
}
if(name.compareTo(EntityElement.NAME)==0) { if(name.compareTo(EntityElement.NAME)==0) {
return AccessType.ENTITY_ELEMENT; return AccessType.ENTITY_ELEMENT;
} }
if(name.compareTo(EntityType.NAME)==0 ||
name.compareTo(ResourceType.NAME)==0 ||
name.compareTo(FacetType.NAME)==0) {
return AccessType.ENTITY_TYPE;
}
return AccessType.ENTITY; return AccessType.ENTITY;
} }

View File

@ -3,6 +3,7 @@ package org.gcube.informationsystem.types.impl.entities;
import java.util.Set; import java.util.Set;
import org.gcube.com.fasterxml.jackson.annotation.JsonTypeName; import org.gcube.com.fasterxml.jackson.annotation.JsonTypeName;
import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.model.reference.entities.Entity; import org.gcube.informationsystem.model.reference.entities.Entity;
import org.gcube.informationsystem.model.reference.entities.Facet; import org.gcube.informationsystem.model.reference.entities.Facet;
import org.gcube.informationsystem.types.reference.entities.FacetType; import org.gcube.informationsystem.types.reference.entities.FacetType;
@ -36,4 +37,9 @@ public class FacetTypeImpl extends EntityTypeImpl implements FacetType {
return properties; return properties;
} }
@Override
public AccessType getAccessType() {
return AccessType.FACET;
}
} }

View File

@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.gcube.com.fasterxml.jackson.annotation.JsonTypeName; import org.gcube.com.fasterxml.jackson.annotation.JsonTypeName;
import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.model.reference.entities.Entity; import org.gcube.informationsystem.model.reference.entities.Entity;
import org.gcube.informationsystem.model.reference.entities.Resource; import org.gcube.informationsystem.model.reference.entities.Resource;
import org.gcube.informationsystem.types.TypeMapper; import org.gcube.informationsystem.types.TypeMapper;
@ -78,4 +79,9 @@ public class ResourceTypeImpl extends EntityTypeImpl implements ResourceType {
return resources; return resources;
} }
@Override
public AccessType getAccessType() {
return AccessType.RESOURCE;
}
} }

View File

@ -6,6 +6,7 @@ import org.gcube.com.fasterxml.jackson.annotation.JsonTypeName;
import org.gcube.informationsystem.base.reference.AccessType; import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.base.reference.properties.PropertyElement; import org.gcube.informationsystem.base.reference.properties.PropertyElement;
import org.gcube.informationsystem.types.impl.TypeImpl; import org.gcube.informationsystem.types.impl.TypeImpl;
import org.gcube.informationsystem.types.reference.properties.LinkedEntity;
import org.gcube.informationsystem.types.reference.properties.PropertyDefinition; import org.gcube.informationsystem.types.reference.properties.PropertyDefinition;
import org.gcube.informationsystem.types.reference.properties.PropertyType; import org.gcube.informationsystem.types.reference.properties.PropertyType;
@ -43,7 +44,16 @@ public final class PropertyTypeImpl<P extends PropertyElement> extends TypeImpl
@Override @Override
public AccessType getAccessType() { public AccessType getAccessType() {
if(name.compareTo(PropertyElement.NAME)==0) { if(name.compareTo(PropertyType.NAME)==0) {
return AccessType.PROPERTY_TYPE;
}
if(name.compareTo(PropertyDefinition.NAME)==0) {
return AccessType.PROPERTY_DEFINITION;
}
if(name.compareTo(PropertyElement.NAME)==0 ||
name.compareTo(LinkedEntity.NAME)==0) {
return AccessType.PROPERTY_ELEMENT; return AccessType.PROPERTY_ELEMENT;
} }

View File

@ -3,6 +3,7 @@ package org.gcube.informationsystem.types.impl.relations;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import org.gcube.com.fasterxml.jackson.annotation.JsonTypeName; import org.gcube.com.fasterxml.jackson.annotation.JsonTypeName;
import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.model.reference.entities.Facet; import org.gcube.informationsystem.model.reference.entities.Facet;
import org.gcube.informationsystem.model.reference.entities.Resource; import org.gcube.informationsystem.model.reference.entities.Resource;
import org.gcube.informationsystem.model.reference.relations.ConsistsOf; import org.gcube.informationsystem.model.reference.relations.ConsistsOf;
@ -56,4 +57,10 @@ public class ConsistsOfTypeImpl extends RelationTypeImpl<ResourceType, FacetType
this.source = new ResourceTypeImpl((Class<? extends Resource>) sourceClass); this.source = new ResourceTypeImpl((Class<? extends Resource>) sourceClass);
this.target = new FacetTypeImpl((Class<? extends Facet>) targetClass); this.target = new FacetTypeImpl((Class<? extends Facet>) targetClass);
} }
@Override
public AccessType getAccessType() {
return AccessType.CONSISTS_OF;
}
} }

View File

@ -3,6 +3,7 @@ package org.gcube.informationsystem.types.impl.relations;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import org.gcube.com.fasterxml.jackson.annotation.JsonTypeName; import org.gcube.com.fasterxml.jackson.annotation.JsonTypeName;
import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.model.reference.entities.Resource; import org.gcube.informationsystem.model.reference.entities.Resource;
import org.gcube.informationsystem.model.reference.relations.IsRelatedTo; import org.gcube.informationsystem.model.reference.relations.IsRelatedTo;
import org.gcube.informationsystem.model.reference.relations.Relation; import org.gcube.informationsystem.model.reference.relations.Relation;
@ -53,4 +54,10 @@ public class IsRelatedToTypeImpl extends RelationTypeImpl<ResourceType, Resource
this.source = new ResourceTypeImpl((Class<? extends Resource>) sourceClass); this.source = new ResourceTypeImpl((Class<? extends Resource>) sourceClass);
this.target = new ResourceTypeImpl((Class<? extends Resource>) targetClass); this.target = new ResourceTypeImpl((Class<? extends Resource>) targetClass);
} }
@Override
public AccessType getAccessType() {
return AccessType.IS_RELATED_TO;
}
} }

View File

@ -15,6 +15,8 @@ import org.gcube.informationsystem.model.reference.relations.IsRelatedTo;
import org.gcube.informationsystem.types.impl.TypeImpl; import org.gcube.informationsystem.types.impl.TypeImpl;
import org.gcube.informationsystem.types.impl.entities.EntityTypeImpl; import org.gcube.informationsystem.types.impl.entities.EntityTypeImpl;
import org.gcube.informationsystem.types.reference.entities.EntityType; import org.gcube.informationsystem.types.reference.entities.EntityType;
import org.gcube.informationsystem.types.reference.relations.ConsistsOfType;
import org.gcube.informationsystem.types.reference.relations.IsRelatedToType;
import org.gcube.informationsystem.types.reference.relations.RelationType; import org.gcube.informationsystem.types.reference.relations.RelationType;
/** /**
@ -140,14 +142,17 @@ public class RelationTypeImpl<S extends EntityType, T extends EntityType>
return AccessType.IS_PARENT_OF; return AccessType.IS_PARENT_OF;
} }
if(name.compareTo(RelationType.NAME)==0) {
return AccessType.RELATION_TYPE;
}
if(name.compareTo(RelationElement.NAME)==0) { if(name.compareTo(RelationElement.NAME)==0) {
return AccessType.RELATION_ELEMENT; return AccessType.RELATION_ELEMENT;
} }
if(name.compareTo(RelationType.NAME)==0 ||
name.compareTo(IsRelatedToType.NAME)==0 ||
name.compareTo(ConsistsOfType.NAME)==0) {
return AccessType.RELATION_TYPE;
}
return AccessType.RELATION; return AccessType.RELATION;
} }
} }

View File

@ -54,9 +54,6 @@ public interface Type extends IdentifiableElement {
public Set<PropertyDefinition> getProperties(); public Set<PropertyDefinition> getProperties();
@JsonIgnore public AccessType getAccessType();
public default AccessType getAccessType() {
return null;
}
} }

View File

@ -44,9 +44,6 @@ public interface EntityType extends Type, EntityElement {
/* {@link Type} is just a Java useful class. The type is not created in the IS. Hence the fields must be redefined */ /* {@link Type} is just a Java useful class. The type is not created in the IS. Hence the fields must be redefined */
@Override public AccessType getAccessType();
public default AccessType getAccessType() {
return AccessType.ENTITY_ELEMENT;
}
} }

View File

@ -4,7 +4,6 @@ import java.util.Set;
import org.gcube.com.fasterxml.jackson.annotation.JsonIgnoreProperties; import org.gcube.com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize; import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.types.annotations.ISProperty; import org.gcube.informationsystem.types.annotations.ISProperty;
import org.gcube.informationsystem.types.impl.entities.FacetTypeImpl; import org.gcube.informationsystem.types.impl.entities.FacetTypeImpl;
import org.gcube.informationsystem.types.reference.Change; import org.gcube.informationsystem.types.reference.Change;
@ -27,9 +26,4 @@ public interface FacetType extends EntityType {
@ISProperty(name = Type.PROPERTIES_PROPERTY, readonly = false, mandatory = true, nullable = false) @ISProperty(name = Type.PROPERTIES_PROPERTY, readonly = false, mandatory = true, nullable = false)
public Set<PropertyDefinition> getProperties(); public Set<PropertyDefinition> getProperties();
@Override
public default AccessType getAccessType() {
return AccessType.FACET;
}
} }

View File

@ -3,7 +3,6 @@ package org.gcube.informationsystem.types.reference.entities;
import java.util.List; import java.util.List;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize; import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.types.annotations.ISProperty; import org.gcube.informationsystem.types.annotations.ISProperty;
import org.gcube.informationsystem.types.impl.entities.ResourceTypeImpl; import org.gcube.informationsystem.types.impl.entities.ResourceTypeImpl;
import org.gcube.informationsystem.types.reference.Change; import org.gcube.informationsystem.types.reference.Change;
@ -30,9 +29,4 @@ public interface ResourceType extends EntityType {
@ISProperty(name = RESOURCES_PROPERTY, readonly = false, mandatory = true, nullable = false) @ISProperty(name = RESOURCES_PROPERTY, readonly = false, mandatory = true, nullable = false)
public List<LinkedEntity> getResources(); public List<LinkedEntity> getResources();
@Override
public default AccessType getAccessType() {
return AccessType.RESOURCE;
}
} }

View File

@ -4,7 +4,6 @@ import java.util.Set;
import org.gcube.com.fasterxml.jackson.annotation.JsonIgnoreProperties; import org.gcube.com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize; import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.base.reference.IdentifiableElement; import org.gcube.informationsystem.base.reference.IdentifiableElement;
import org.gcube.informationsystem.base.reference.properties.PropertyElement; import org.gcube.informationsystem.base.reference.properties.PropertyElement;
import org.gcube.informationsystem.model.reference.properties.Header; import org.gcube.informationsystem.model.reference.properties.Header;
@ -53,8 +52,5 @@ public interface PropertyType<P extends PropertyElement> extends PropertyElement
public Set<PropertyDefinition> getProperties(); public Set<PropertyDefinition> getProperties();
/* TypeDefinition is just a Java useful class. The type is not created in the IS. Hence the fields must be redefined */ /* TypeDefinition is just a Java useful class. The type is not created in the IS. Hence the fields must be redefined */
@Override
public default AccessType getAccessType() {
return AccessType.PROPERTY_ELEMENT;
}
} }

View File

@ -1,7 +1,6 @@
package org.gcube.informationsystem.types.reference.relations; package org.gcube.informationsystem.types.reference.relations;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize; import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.types.impl.relations.ConsistsOfTypeImpl; import org.gcube.informationsystem.types.impl.relations.ConsistsOfTypeImpl;
import org.gcube.informationsystem.types.reference.Change; import org.gcube.informationsystem.types.reference.Change;
import org.gcube.informationsystem.types.reference.TypeMetadata; import org.gcube.informationsystem.types.reference.TypeMetadata;
@ -19,9 +18,4 @@ public interface ConsistsOfType extends RelationType<ResourceType, FacetType> {
public static final String NAME = "ConsistsOfType"; // ConsistsOfType.class.getSimpleName(); public static final String NAME = "ConsistsOfType"; // ConsistsOfType.class.getSimpleName();
@Override
public default AccessType getAccessType() {
return AccessType.CONSISTS_OF;
}
} }

View File

@ -1,7 +1,6 @@
package org.gcube.informationsystem.types.reference.relations; package org.gcube.informationsystem.types.reference.relations;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize; import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.types.impl.relations.IsRelatedToTypeImpl; import org.gcube.informationsystem.types.impl.relations.IsRelatedToTypeImpl;
import org.gcube.informationsystem.types.reference.Change; import org.gcube.informationsystem.types.reference.Change;
import org.gcube.informationsystem.types.reference.TypeMetadata; import org.gcube.informationsystem.types.reference.TypeMetadata;
@ -18,9 +17,4 @@ public interface IsRelatedToType extends RelationType<ResourceType, ResourceType
public static final String NAME = "IsRelatedToType"; // IsRelatedToType.class.getSimpleName(); public static final String NAME = "IsRelatedToType"; // IsRelatedToType.class.getSimpleName();
@Override
public default AccessType getAccessType() {
return AccessType.IS_RELATED_TO;
}
} }

View File

@ -4,7 +4,6 @@ import java.util.Set;
import org.gcube.com.fasterxml.jackson.annotation.JsonIgnoreProperties; import org.gcube.com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize; import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.base.reference.relations.RelationElement; import org.gcube.informationsystem.base.reference.relations.RelationElement;
import org.gcube.informationsystem.types.annotations.ISProperty; import org.gcube.informationsystem.types.annotations.ISProperty;
import org.gcube.informationsystem.types.impl.relations.RelationTypeImpl; import org.gcube.informationsystem.types.impl.relations.RelationTypeImpl;
@ -62,9 +61,4 @@ public interface RelationType<S extends EntityType, T extends EntityType>
@JsonGetter(value=TARGET_PROPERTY) @JsonGetter(value=TARGET_PROPERTY)
public String getTargetType();*/ public String getTargetType();*/
@Override
public default AccessType getAccessType() {
return AccessType.RELATION_ELEMENT;
}
} }

View File

@ -1,5 +1,6 @@
package org.gcube.informationsystem.types; package org.gcube.informationsystem.types;
import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.base.reference.entities.EntityElement; import org.gcube.informationsystem.base.reference.entities.EntityElement;
import org.gcube.informationsystem.base.reference.properties.PropertyElement; import org.gcube.informationsystem.base.reference.properties.PropertyElement;
import org.gcube.informationsystem.context.reference.entities.Context; import org.gcube.informationsystem.context.reference.entities.Context;
@ -25,6 +26,7 @@ import org.gcube.informationsystem.types.reference.relations.IsRelatedToType;
import org.gcube.informationsystem.types.reference.relations.RelationType; import org.gcube.informationsystem.types.reference.relations.RelationType;
import org.gcube.informationsystem.utils.ElementMapper; import org.gcube.informationsystem.utils.ElementMapper;
import org.gcube.informationsystem.utils.TypeVersion; import org.gcube.informationsystem.utils.TypeVersion;
import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -57,91 +59,115 @@ public class SerializationTest {
@Test @Test
public void testPropertyTypeDefinition() throws Exception{ public void testPropertyTypeDefinition() throws Exception{
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
PropertyType<PropertyElement> basePropertyTypeDefinition = (PropertyType<PropertyElement>) TypeMapper.createTypeDefinition(PropertyElement.class); PropertyType<PropertyElement> propertyElement = (PropertyType<PropertyElement>) TypeMapper.createTypeDefinition(PropertyElement.class);
logger.info(ElementMapper.marshal(basePropertyTypeDefinition)); Assert.assertTrue(propertyElement.getAccessType()==AccessType.PROPERTY_ELEMENT);
logger.info(ElementMapper.marshal(propertyElement));
@SuppressWarnings("unchecked")
PropertyType<Property> propertyTypeDefinition = (PropertyType<Property>) TypeMapper.createTypeDefinition(Property.class);
logger.info(ElementMapper.marshal(propertyTypeDefinition));
@SuppressWarnings("unchecked")
PropertyType<Header> headerTypeDefinition = (PropertyType<Header>) TypeMapper.createTypeDefinition(Header.class);
logger.info(ElementMapper.marshal(headerTypeDefinition));
@SuppressWarnings("unchecked")
PropertyType<PropagationConstraint> propagationConstraintDefinition = (PropertyType<PropagationConstraint>) TypeMapper.createTypeDefinition(PropagationConstraint.class);
logger.info(ElementMapper.marshal(propagationConstraintDefinition));
@SuppressWarnings("unchecked")
PropertyType<Encrypted> encryptedTypeDefinition = (PropertyType<Encrypted>) TypeMapper.createTypeDefinition(Encrypted.class);
logger.info(ElementMapper.marshal(encryptedTypeDefinition));
@SuppressWarnings({ "unchecked", "rawtypes" })
PropertyType<PropertyType> propertyType = (PropertyType<PropertyType>) TypeMapper.createTypeDefinition(PropertyType.class);
Assert.assertTrue(propertyType.getAccessType()==AccessType.PROPERTY_TYPE);
logger.info(ElementMapper.marshal(propertyType));
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
PropertyType<PropertyDefinition> propertyDefinition = (PropertyType<PropertyDefinition>) TypeMapper.createTypeDefinition(PropertyDefinition.class); PropertyType<PropertyDefinition> propertyDefinition = (PropertyType<PropertyDefinition>) TypeMapper.createTypeDefinition(PropertyDefinition.class);
Assert.assertTrue(propertyDefinition.getAccessType()==AccessType.PROPERTY_DEFINITION);
logger.info(ElementMapper.marshal(propertyDefinition)); logger.info(ElementMapper.marshal(propertyDefinition));
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
PropertyType<LinkedEntity> resourceEntryDefinition = (PropertyType<LinkedEntity>) TypeMapper.createTypeDefinition(LinkedEntity.class); PropertyType<LinkedEntity> linkedEntity = (PropertyType<LinkedEntity>) TypeMapper.createTypeDefinition(LinkedEntity.class);
logger.info(ElementMapper.marshal(resourceEntryDefinition)); Assert.assertTrue(linkedEntity.getAccessType()==AccessType.PROPERTY_ELEMENT);
logger.info(ElementMapper.marshal(linkedEntity));
@SuppressWarnings("unchecked")
PropertyType<Property> property = (PropertyType<Property>) TypeMapper.createTypeDefinition(Property.class);
Assert.assertTrue(property.getAccessType()==AccessType.PROPERTY);
logger.info(ElementMapper.marshal(property));
@SuppressWarnings("unchecked")
PropertyType<Header> header = (PropertyType<Header>) TypeMapper.createTypeDefinition(Header.class);
Assert.assertTrue(header.getAccessType()==AccessType.PROPERTY);
logger.info(ElementMapper.marshal(header));
@SuppressWarnings("unchecked")
PropertyType<PropagationConstraint> propagationConstraint = (PropertyType<PropagationConstraint>) TypeMapper.createTypeDefinition(PropagationConstraint.class);
Assert.assertTrue(propagationConstraint.getAccessType()==AccessType.PROPERTY);
logger.info(ElementMapper.marshal(propagationConstraint));
@SuppressWarnings("unchecked")
PropertyType<Encrypted> encrypted = (PropertyType<Encrypted>) TypeMapper.createTypeDefinition(Encrypted.class);
Assert.assertTrue(encrypted.getAccessType()==AccessType.PROPERTY);
logger.info(ElementMapper.marshal(encrypted));
} }
@Test @Test
public void testEntityTypeDefinition() throws Exception{ public void testEntityTypeDefinition() throws Exception{
EntityType baseEntityTypeDefinition = (EntityType) TypeMapper.createTypeDefinition(EntityElement.class); EntityType entityElement = (EntityType) TypeMapper.createTypeDefinition(EntityElement.class);
logger.info(ElementMapper.marshal(baseEntityTypeDefinition)); Assert.assertTrue(entityElement.getAccessType()==AccessType.ENTITY_ELEMENT);
logger.info(ElementMapper.marshal(entityElement));
EntityType entityTypeDefinition = (EntityType) TypeMapper.createTypeDefinition(Entity.class); EntityType entity = (EntityType) TypeMapper.createTypeDefinition(Entity.class);
logger.info(ElementMapper.marshal(entityTypeDefinition)); Assert.assertTrue(entity.getAccessType()==AccessType.ENTITY);
logger.info(ElementMapper.marshal(entity));
ResourceType resourceTypeDefinition = (ResourceType) TypeMapper.createTypeDefinition(Resource.class); ResourceType resource = (ResourceType) TypeMapper.createTypeDefinition(Resource.class);
logger.info(ElementMapper.marshal(resourceTypeDefinition)); Assert.assertTrue(resource.getAccessType()==AccessType.RESOURCE);
logger.info(ElementMapper.marshal(resource));
FacetType facetTypeDefinition = (FacetType) TypeMapper.createTypeDefinition(Facet.class); FacetType facet = (FacetType) TypeMapper.createTypeDefinition(Facet.class);
logger.info(ElementMapper.marshal(facetTypeDefinition)); Assert.assertTrue(facet.getAccessType()==AccessType.FACET);
logger.info(ElementMapper.marshal(facet));
EntityType contextTypeDefinition = (EntityType) TypeMapper.createTypeDefinition(Context.class); EntityType context = (EntityType) TypeMapper.createTypeDefinition(Context.class);
logger.info(ElementMapper.marshal(contextTypeDefinition)); Assert.assertTrue(context.getAccessType()==AccessType.CONTEXT);
logger.info(ElementMapper.marshal(context));
EntityType entityTypeDefinitionSelf = (EntityType) TypeMapper.createTypeDefinition(EntityType.class); EntityType entityType = (EntityType) TypeMapper.createTypeDefinition(EntityType.class);
logger.info(ElementMapper.marshal(entityTypeDefinitionSelf)); Assert.assertTrue(entityType.getAccessType()==AccessType.ENTITY_TYPE);
logger.info(ElementMapper.marshal(entityType));
EntityType resourceTypeDefinitionSelf = (EntityType) TypeMapper.createTypeDefinition(ResourceType.class); EntityType resourceType = (EntityType) TypeMapper.createTypeDefinition(ResourceType.class);
logger.info(ElementMapper.marshal(resourceTypeDefinitionSelf)); Assert.assertTrue(resourceType.getAccessType()==AccessType.ENTITY_TYPE);
logger.info(ElementMapper.marshal(resourceType));
EntityType facetTypeDefinitionSelf = (EntityType) TypeMapper.createTypeDefinition(FacetType.class); EntityType facetType = (EntityType) TypeMapper.createTypeDefinition(FacetType.class);
logger.info(ElementMapper.marshal(facetTypeDefinitionSelf)); Assert.assertTrue(facetType.getAccessType()==AccessType.ENTITY_TYPE);
logger.info(ElementMapper.marshal(facetType));
} }
@Test @Test
public void testRelationTypeDefinition() throws Exception{ public void testRelationTypeDefinition() throws Exception{
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
RelationType<EntityType,EntityType> relationTypeDefinition = (RelationType<EntityType,EntityType>) TypeMapper.createTypeDefinition(Relation.class); RelationType<EntityType,EntityType> relation = (RelationType<EntityType,EntityType>) TypeMapper.createTypeDefinition(Relation.class);
logger.info(ElementMapper.marshal(relationTypeDefinition)); Assert.assertTrue(relation.getAccessType()==AccessType.RELATION);
logger.info(ElementMapper.marshal(relation));
IsRelatedToType isRelatedToTypeDefinition = (IsRelatedToType) TypeMapper.createTypeDefinition(IsRelatedTo.class); IsRelatedToType isRelatedTo = (IsRelatedToType) TypeMapper.createTypeDefinition(IsRelatedTo.class);
logger.info(ElementMapper.marshal(isRelatedToTypeDefinition)); Assert.assertTrue(isRelatedTo.getAccessType()==AccessType.IS_RELATED_TO);
logger.info(ElementMapper.marshal(isRelatedTo));
ConsistsOfType consistsOfTypeDefinition = (ConsistsOfType) TypeMapper.createTypeDefinition(ConsistsOf.class); ConsistsOfType consistsOf = (ConsistsOfType) TypeMapper.createTypeDefinition(ConsistsOf.class);
logger.info(ElementMapper.marshal(consistsOfTypeDefinition)); Assert.assertTrue(consistsOf.getAccessType()==AccessType.CONSISTS_OF);
logger.info(ElementMapper.marshal(consistsOf));
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
RelationType<EntityType,EntityType> isParentOfTypeDefinition = (RelationType<EntityType,EntityType>) TypeMapper.createTypeDefinition(IsParentOf.class); RelationType<EntityType,EntityType> isParentOf = (RelationType<EntityType,EntityType>) TypeMapper.createTypeDefinition(IsParentOf.class);
logger.info(ElementMapper.marshal(isParentOfTypeDefinition)); Assert.assertTrue(isParentOf.getAccessType()==AccessType.IS_PARENT_OF);
logger.info(ElementMapper.marshal(isParentOf));
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
RelationType<EntityType,EntityType> rtdSelf = (RelationType<EntityType,EntityType>) TypeMapper.createTypeDefinition(RelationType.class); RelationType<EntityType,EntityType> relationType = (RelationType<EntityType,EntityType>) TypeMapper.createTypeDefinition(RelationType.class);
logger.info(ElementMapper.marshal(rtdSelf)); Assert.assertTrue(relationType.getAccessType()==AccessType.RELATION_TYPE);
logger.info(ElementMapper.marshal(relationType));
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
RelationType<EntityType,EntityType> isRelatedToTypeDefinitionSelf = (RelationType<EntityType,EntityType>) TypeMapper.createTypeDefinition(IsRelatedToType.class); RelationType<EntityType,EntityType> isRelatedToType = (RelationType<EntityType,EntityType>) TypeMapper.createTypeDefinition(IsRelatedToType.class);
logger.info(ElementMapper.marshal(isRelatedToTypeDefinitionSelf)); Assert.assertTrue(isRelatedToType.getAccessType()==AccessType.RELATION_TYPE);
logger.info(ElementMapper.marshal(isRelatedToType));
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
RelationType<EntityType,EntityType> consistsOfTypeDefinitionSelf = (RelationType<EntityType,EntityType>) TypeMapper.createTypeDefinition(ConsistsOfType.class); RelationType<EntityType,EntityType> consistsOfType = (RelationType<EntityType,EntityType>) TypeMapper.createTypeDefinition(ConsistsOfType.class);
logger.info(ElementMapper.marshal(consistsOfTypeDefinitionSelf)); Assert.assertTrue(consistsOfType.getAccessType()==AccessType.RELATION_TYPE);
logger.info(ElementMapper.marshal(consistsOfType));
} }
@Test @Test