use of eu.esdihumboldt.hale.io.oml.internal.goml.omwg.Property in project hale by halestudio.
the class OmlRdfGenerator method getEntityType.
/**
* converts from IEntity to the Jaxb generated EntityType
*
* @param entity
* @return
*/
private JAXBElement<? extends EntityType> getEntityType(IEntity entity) {
JAXBElement<? extends EntityType> eType = null;
if (entity != null) {
if (entity instanceof Property) {
// instantiate as PropertyType
Property property = (Property) entity;
PropertyType pType = getPropertyType(property);
eType = new JAXBElement<PropertyType>(new QName("http://www.omwg.org/TR/d7/ontology/alignment", "Property"), PropertyType.class, pType);
} else if (entity instanceof FeatureClass) {
// instantiate as ClassType
FeatureClass feature = (FeatureClass) entity;
ClassType cType = getClassType(feature);
eType = new JAXBElement<ClassType>(new QName("http://www.omwg.org/TR/d7/ontology/alignment", "Class"), ClassType.class, cType);
} else if (entity instanceof Relation) {
// instantiate as RelationType
// TODO add implementation, for the next release
} else if (entity instanceof PropertyQualifier) {
// instantiate as PropertyQualifierType
// TODO add implementation, will get the examples from MDV
}
}
return eType;
}
use of eu.esdihumboldt.hale.io.oml.internal.goml.omwg.Property in project hale by halestudio.
the class OmlRdfReader method getEntity.
/**
* Converts from the JAXB generated EntityType to the {@link IEntity}
*
* @param entity
* @return
*/
private IEntity getEntity(JAXBElement<? extends EntityType> jaxbEntity) {
EntityType entityType = jaxbEntity.getValue();
// TODO allow to instantiate entity as Property, FeatureClass, Relation,
// ComposedFeatureClass, ComposedFeatureType, composedRelation
// instantiate entity es property
Entity entity = null;
IAbout about = null;
// TODO add convertion to the RelationType if needed
if (entityType instanceof PropertyType) {
// make decision whether it is ComposedProperty
if (((PropertyType) entityType).getPropertyComposition() != null) {
PropertyCompositionType propCompType = ((PropertyType) entityType).getPropertyComposition();
// instantiate entity as ComposedProperty
if (entityType.getAbout() != null) {
about = new About(entityType.getAbout());
}
entity = new ComposedProperty(getOperator(propCompType.getOperator()), about);
if (propCompType.getCollection() != null && propCompType.getCollection().getItem().size() > 0) {
// set collection
((ComposedProperty) entity).setCollection(getPropertyCollection(propCompType.getCollection()));
} else if (propCompType.getProperty() != null) {
// set Property
((ComposedProperty) entity).getCollection().add(getProperty(propCompType.getProperty()));
} else if (propCompType.getRelation() != null) {
// set Relation
((ComposedProperty) entity).setRelation(getOMLRelation(propCompType.getRelation()));
}
// set ComposedProperty specific members
} else {
// instantiate entity as property
if (entityType.getAbout() != null) {
about = new About(entityType.getAbout());
}
entity = new Property(about);
}
// set property-specific members to the entity
PropertyType propertyType = ((PropertyType) entityType);
// set domainRestriction
if (propertyType.getDomainRestriction() != null) {
((Property) entity).setDomainRestriction(getDomainRestriction(propertyType.getDomainRestriction()));
}
// set typeCondition
if (propertyType.getTypeCondition() != null) {
((Property) entity).setTypeCondition(propertyType.getTypeCondition());
}
// set value conditions
if (propertyType.getValueCondition() != null) {
((Property) entity).setValueCondition(getValueCondition(propertyType.getValueCondition()));
}
} else if (entityType instanceof ClassType) {
// initiates entity as FeatureType
ClassType cType = (ClassType) entityType;
if (entityType.getAbout() != null) {
about = new About(entityType.getAbout());
}
entity = new FeatureClass(about);
// set attribute occurence conditions if exist
if (cType.getAttributeOccurenceCondition() != null) {
((FeatureClass) entity).setAttributeOccurenceCondition(getRestrictions(cType.getAttributeOccurenceCondition()));
}
// set attribute type conditions if exist
if (cType.getAttributeTypeCondition() != null) {
((FeatureClass) entity).setAttributeTypeCondition(getRestrictions(cType.getAttributeTypeCondition()));
}
// set attribute value conditions if exist
if (cType.getAttributeValueCondition() != null) {
((FeatureClass) entity).setAttributeValueCondition(getRestrictions(cType.getAttributeValueCondition()));
}
} else {
throw new IllegalArgumentException("Illegal entity type given");
}
if (entityType.getTransf() != null) {
// set Transformation to Entity
Transformation transformation = getTransformation(entityType.getTransf());
entity.setTransformation(transformation);
}
// set About
About eabout = new About(UUID.randomUUID());
if (entityType.getAbout() != null) {
eabout.setAbout(entityType.getAbout());
}
entity.setAbout(eabout);
// set Labels
if (entityType.getLabel() != null) {
entity.setLabel(entityType.getLabel());
}
return entity;
}
use of eu.esdihumboldt.hale.io.oml.internal.goml.omwg.Property in project hale by halestudio.
the class OmlRdfReader method getPropertyCollection.
/**
* Returns a List of OML Properties for given jaxb-based
* PropertyCollectionType.
*
* @param collection
* @return
*/
private List<Property> getPropertyCollection(PropertyCollectionType collection) {
List<Property> properties = null;
if (collection != null) {
properties = new ArrayList<Property>();
List<Item> collectionItems = collection.getItem();
Iterator<Item> iterator = collectionItems.iterator();
Item item;
Property property;
while (iterator.hasNext()) {
item = iterator.next();
if (item.getProperty() != null) {
property = getProperty(item.getProperty());
properties.add(property);
}
}
}
return properties;
}
Aggregations