@Nonnull public Finder<Observer> create (final @Nonnull SimpleObservationSet observationSet) { final Set<Observer> observers = new HashSet<Observer>(); for (final Observation observation : observationSet.observations) { for (final Observer observer : observation.findObservers().results()) { observers.add(observer); } } return new SimpleFinderSupport<Observer>(observers); } };
@Nonnull public Finder<Observable> create (final @Nonnull SimpleObservationSet observationSet) { final Set<Observable> observables = new HashSet<Observable>(); for (final Observation observation : observationSet.observations) { for (final ObservationItem observationItem : observation.findObservationItems().results()) { observables.add(observationItem.getObservable()); } } return new SimpleFinderSupport<Observable>(observables); } };
@Override @Nonnull public void marshal (final @Nonnull As entity, final @Nonnull Context context) { super.marshal(entity, context); final ObservationSet observationSet = (ObservationSet)entity; context.addStatement(observationSet, Vocabulary.RDF_TYPE, Vocabulary.OBSERVATION_SET); for (final Observation observation : observationSet.find(Observation.class).results()) { context.addStatement(observationSet, Vocabulary.SKOS_NARROWER, observation); } } }
/******************************************************************************************************************* * * ******************************************************************************************************************/ @Nonnull public <T extends Listener> T visit (final @Nonnull T listener) { listener.begin(observationSet); for (final Observation observation : observationSet.find(Observation).results()) { listener.beginVisit(observation); for (final ObservationItem item : observation.findObservationItems().results()) { listener.visit(item); } listener.endVisit(observation); } listener.end(observationSet); return listener; } }
/******************************************************************************************************************* * * ******************************************************************************************************************/ protected SimpleObservationChangeBuilder (final @Nonnull SimpleObservationSet observationSet, final @Nonnull Observation originalObservation) { super(observationSet); this.originalObservation = originalObservation; at(originalObservation.getDate()); at(originalObservation.getLocation()); for (final Observer observer : originalObservation.findObservers().results()) { by(observer); } for (final ObservationItem observationItem : originalObservation.findObservationItems().results()) { of(observationItem.getObservable(), observationItem.getCardinality()); } }
@Override @Nonnull public void marshal (final @Nonnull As entity, final @Nonnull Context context) { super.marshal(entity, context); final Observation observation = (Observation)entity; context.addStatement(observation, Vocabulary.RDF_TYPE, Vocabulary.OBSERVATION); context.addStatement(observation, Vocabulary.DC_DATE, observation.getDate()); context.addStatement(observation, Vocabulary.MADE_AT, observation.getLocation()); context.addStatement(observation, Vocabulary.DC_PUBLISHER, observation.getSource()); for (final Observer observer : observation.findObservers().results()) { context.addStatement(observation, Vocabulary.DC_CREATOR, observer); } for (final ObservationItem observationItem : observation.findObservationItems().results()) { context.addStatement(observation, Vocabulary.SKOS_NARROWER, observationItem); } try { context.addStatement(observation.as(Media.class), Vocabulary.FOAF_TOPIC, observation); } catch (AsException e) { // ok, no attachment } } }