public String toString() { return id.toString(); } }
@Id public ID getId() { return ID.uriRef(OWL.NS, this.name()); }
public void export(Session session, File targetFolder) throws IOException { List<EntityType> entityTypes = new ArrayList<EntityType>(); // collect entity types for (OWLClass owlClass : session.findInstances(OWLClass.class)) { if (owlClass.getId().isURI()) { EntityType entityType; if (oneOfAsEnum && !owlClass.getOneOf().isEmpty()) { entityType = createEnumType(owlClass); } else { entityType = createBeanType(owlClass); } entityTypes.add(entityType); } } // serialize BeanSerializer beanSerializer = new BeanSerializer(); beanSerializer.setPrintSupertype(true); for (EntityType entityType : entityTypes) { File folder = new File(targetFolder, entityType.getPackageName().replace('.', '/')); folder.mkdirs(); File javaFile = new File(folder, entityType.getSimpleName() + ".java"); javaFile.createNewFile(); Writer writer = new OutputStreamWriter(new FileOutputStream(javaFile), "UTF-8"); try { beanSerializer.serialize(entityType, SimpleSerializerConfig.DEFAULT, new JavaWriter(writer)); } finally { writer.close(); } } }
private Property createProperty(EntityType entityType, UID entityId, RDFProperty rdfProperty, @Nullable RDFSClass<?> range) { UID propertyId = rdfProperty.getId().asURI(); Type propertyType = getPropertyType(rdfProperty, range); String propertyName = getPropertyName(propertyId); Property property = new Property(entityType, propertyName, propertyType); if (propertyId.getNamespace().equals(entityId.getNamespace())) { if (propertyName.equals(propertyId.getLocalName())) { property.addAnnotation(new PredicateImpl("", "", "", false)); } else { property.addAnnotation(new PredicateImpl("", "", propertyId.getLocalName(), false)); } } else { property.addAnnotation(new PredicateImpl("", propertyId, false)); } return property; }
@Nullable private <T> T getMappedObject(MappedClass mappedClass, ID subject, Class<T> requiredClass, PropertiesMap properties, boolean polymorphic, UID context, boolean bind) { T instance = null; if (polymorphic) { Collection<ID> mappedTypes = findMappedTypes(subject, context, properties.getDirect()); if (!mappedTypes.isEmpty()) { instance = createInstance(subject, requiredClass, mappedTypes, properties); } else if (properties.getDirect().containsKey(RDF.rest)) { Map<String, NODE> values = new HashMap<String, NODE>(); values.put(RDF.rest.ln(), properties.getDirect().get(RDF.rest).iterator().next().getObject()); if (properties.getDirect().containsKey(RDF.first)) { values.put(RDF.first.ln(), properties.getDirect().get(RDF.first).iterator().next().getObject()); } listCache.put(subject, values); } else { logger.error("got no type for " + subject.getId()); } } else { instance = createInstance(subject, requiredClass, Collections.<ID> emptyList(), properties); } if (instance != null) { put(subject, instance); if (bind) { bind(mappedClass, subject, instance, properties); } } return instance; }
EntityType createBeanType(RDFSClass<?> rdfType) { UID id = rdfType.getId().asURI(); String pkgName = getPackage(id); String simpleName = getClassName(id); if (rdfProperty.getId().isURI()) { if (!properties.containsKey(rdfProperty)) { RDFSClass<?> range = null; } else if (superType.getId().isURI()) { UID superTypeId = (UID) superType.getId(); entityType.addSupertype(new Supertype(getJavaType(superTypeId)));
if (restriction.getAllValuesFrom() != null && restriction.getAllValuesFrom().getId().isURI()) { RDFSClass<?> range = restriction.getAllValuesFrom(); if (properties.containsKey(rdfProperty)) {
private EntityType createEnumType(RDFSClass<?> rdfType) { // EnumType enumType = new EnumType(classId, getPackage(classId), // getClassName(classId)); // for (Object object : rdfType.getOneOf()){ // if (object instanceof MappedResourceBase && // ((MappedResourceBase)object).getId().isURI()){ // UID id = (UID) ((MappedResourceBase)object).getId(); // enumType.addEnum(id.getLocalName()); // } // } // return enumType; // type UID id = rdfType.getId().asURI(); String pkgName = getPackage(id); String simpleName = getClassName(id); Type type = new SimpleType(TypeCategory.ENTITY, pkgName + "." + simpleName, pkgName, id.getLocalName(), false, false); uidToType.put(id, type); EntityType entityType = new EntityType(type); entityType.addAnnotation(new ClassMappingImpl(id.getNamespace(), "", Object.class)); return entityType; }
public String toString(){ return id.toString(); } }
private Type getPropertyType(RDFProperty rdfProperty, @Nullable RDFSClass<?> range) { Type propertyType = typeMapping.getDefaultType(); if (localizedProperties.contains(rdfProperty.getId())) { propertyType = typeMapping.get(RDF.text); } else if (range != null) { if (typeMapping.containsKey(range.getId())) { propertyType = typeMapping.get(range.getId()); } else if (range.getId().isURI()) { UID id = (UID) range.getId(); String pkgName = getPackage(id); String simpleName = getClassName(id); propertyType = new SimpleType(TypeCategory.SIMPLE, pkgName + "." + simpleName, pkgName, simpleName, false, false); } } if (propertyAsList.contains(rdfProperty.getId())) { propertyType = new SimpleType(Types.LIST, propertyType); } else if (propertyAsSet.contains(rdfProperty.getId())) { propertyType = new SimpleType(Types.LIST, propertyType); } return propertyType; }
UID predicate = toRDF(entry.getKey(), context).asURI(); if (entry.getValue() instanceof Collection) { for (Object value : ((Collection) entry.getValue())) {
@Override public String toString() { return id.toString(); }
if (subject.isURI() && configuration.isRestricted((UID) subject)) { return subject;
identifier = getLID(subject); } else if (idType == IDType.URI) { if (subject.isURI()) { identifier = subject; } else {