if(!erFeatures.contains(ef)) { //the ER does not have this EF... if(validation.isFix()) { if(ef.getEntityFeatureOf() != null) {//it belongs to the other ER String uri = Normalizer.uri(er.getUri() + "_", null, ef.getUri(), ef.getModelInterface()); if(uri.equals(f.getUri())) { newEf = f; break; assert newEf.getEntityFeatureOf() == null : "getEntityFeatureOf of a shallow copy of EF is not null..."; error(validation, thing, "improper.feature.use", validation.isFix(), ef.getUri(), er.getUri());
@Override public void check(SimplePhysicalEntity thing, boolean fix) { EntityReference er = thing.getEntityReference(); Set<EntityFeature> erefs = er.getEntityFeature(), peefs = new HashSet<EntityFeature>(); peefs.addAll(thing.getFeature()); peefs.addAll(thing.getNotFeature()); for(EntityFeature ef: peefs) { if(!erefs.contains(ef)) { if(fix) er.addEntityFeature(ef); error(thing, "improper.feature.use", fix, ef.getRDFId(), er.getRDFId()); } } }
if (featureLocations != null) for (SequenceLocation featureLocation : featureLocations) entityFeature.setFeatureLocation(featureLocation); SequenceRegionVocabulary srv = findOrCreateControlledVocabulary(term, uref, SequenceRegionVocabulary.class); //can be null entityFeature.setFeatureLocationType(srv);
for (EntityFeature entityFeature : entityFeatures) { Map<String, Object> feature = new HashMap<>(); String featureName = entityFeature.getModelInterface().getSimpleName(); feature.put("type", featureName); feature.put("name", entityFeature.toString());
EntityReference efOf = ef.getEntityFeatureOf(); //the last assigned or the only owner ER of this EF String newUri = Normalizer.uri(er.getUri() + "_", null, ef.getUri(), ef.getModelInterface()); EntityFeature newEf = (new ShallowCopy()).copy(ef, newUri); model.add(newEf);