ActivityChecker.java

package org.linkedopenactors.rdfpub.domain.commonsrdf;

import java.util.Set;
import java.util.stream.Collectors;

import org.springframework.stereotype.Component;

import lombok.extern.slf4j.Slf4j;

@Slf4j
@Component
public class ActivityChecker {

	/////////////////////////
	// TODO !!!!!!!
	// mus wieder in das aPObject !!!!
	
	private Set<String> supportedActivities;
	
	public ActivityChecker() {
		supportedActivities = Set.of("https://www.w3.org/ns/activitystreams#Follow", "https://www.w3.org/ns/activitystreams#Undo",
				"https://www.w3.org/ns/activitystreams#Create", "https://www.w3.org/ns/activitystreams#Update");
	}
	
	public boolean isActivity(Set<org.apache.commons.rdf.api.IRI> types) {
		return types.stream()
				.map(org.apache.commons.rdf.api.IRI::toString)
				.anyMatch(supportedActivities::contains);
	}
	
//	public boolean isActivity(RdfObject rdfObject) {
//		boolean subclass = rdfObject.isSubClassOf(AS.Create()) ||
//				rdfObject.isSubClassOf(AS.Update());
//		
//		// TODO check, why isSubClassOf is not working!
//		if(!subclass) {
//			Set<String> types = rdfObject.getTypes().stream().map(Object::toString).collect(Collectors.toSet());
//			log.debug("This is of type(s): " + types.stream().collect(Collectors.joining(",")));
//			
//			subclass = types.stream().anyMatch(supportedActivities::contains);
//			
////			if(types.contains("https://www.w3.org/ns/activitystreams#Follow") ||
////					types.contains("https://www.w3.org/ns/activitystreams#Undo") ||
////					types.contains("https://www.w3.org/ns/activitystreams#Create") ||
////					types.contains("https://www.w3.org/ns/activitystreams#Update"))
////			{
////				subclass = true;
////			}
//		}
		
//		return subclass;
//				rdfObject.isSubClassOf(AS.Accept()) ||
//				rdfObject.isSubClassOf(AS.Add()) ||
//				rdfObject.isSubClassOf(AS.Announce()) ||
//				rdfObject.isSubClassOf(AS.Arrive()) ||
//				rdfObject.isSubClassOf(AS.Block()) ||
//				rdfObject.isSubClassOf(AS.Create()) ||
//				rdfObject.isSubClassOf(AS.Delete()) ||
//				rdfObject.isSubClassOf(AS.Dislike()) ||
//				rdfObject.isSubClassOf(AS.Flag()) ||
//				rdfObject.isSubClassOf(AS.Follow()) ||
//				rdfObject.isSubClassOf(AS.Ignore()) ||
//				rdfObject.isSubClassOf(AS.Invite()) ||
//				rdfObject.isSubClassOf(AS.Join()) ||
//				rdfObject.isSubClassOf(AS.Leave()) ||
//				rdfObject.isSubClassOf(AS.Like()) ||
//				rdfObject.isSubClassOf(AS.Listen()) ||
//				rdfObject.isSubClassOf(AS.Move()) ||
//				rdfObject.isSubClassOf(AS.Offer()) ||
//				rdfObject.isSubClassOf(AS.Question()) ||
//				rdfObject.isSubClassOf(AS.Reject()) ||
//				rdfObject.isSubClassOf(AS.Read()) ||
//				rdfObject.isSubClassOf(AS.Remove()) ||
//				rdfObject.isSubClassOf(AS.TentativeReject()) ||
//				rdfObject.isSubClassOf(AS.TentativeAccept()) ||
//				rdfObject.isSubClassOf(AS.Travel()) ||
//				rdfObject.isSubClassOf(AS.Undo()) ||
//				rdfObject.isSubClassOf(AS.Update()) ||
//				rdfObject.isSubClassOf(AS.View());
//	}
}