public boolean hasTags( String... aTags ) { for( String tag : aTags ) { if( !hasTag( tag ) ) { return false; } } return true; } }
@Override public boolean satisfiedBy( ServiceReference<?> service ) { ServiceTags serviceTags = service.metaInfo( ServiceTags.class ); return serviceTags != null && serviceTags.hasTags( tags ); } };
private <C, V extends Identity> V readConfig( UnitOfWork uow, Class<C> compositeType, Class<V> configType, String identity, String format, String extension ) { for( ServiceReference<ValueSerialization> serializerRef : valueSerialization ) { ServiceTags serviceTags = serializerRef.metaInfo( ServiceTags.class ); if( serviceTags.hasTag( format ) ) { String resourceName = identity + extension; InputStream asStream = getResource( compositeType, resourceName ); if( asStream != null ) { V configObject = serializerRef.get().deserialize( configType, asStream ); return uow.toEntity( configType, configObject ); } } } return null; } }