final OtherMetaView otherMetaView = ioService.getFileAttributeView( path, OtherMetaView.class );
final VersionAttributeView versionAttributeView = ioService.getFileAttributeView( path, VersionAttributeView.class );
return MetadataBuilder.newMetadata()
.withPath( Paths.convert( path.toRealPath() ) )
.withCheckinComment( versionAttributeView.readAttributes().history().records().size() > 0 ? versionAttributeView.readAttributes().history().records().get( versionAttributeView.readAttributes().history().records().size() - 1 ).comment() : null )
.withLastContributor( versionAttributeView.readAttributes().history().records().size() > 0 ? versionAttributeView.readAttributes().history().records().get( versionAttributeView.readAttributes().history().records().size() - 1 ).author() : null )
.withCreator( versionAttributeView.readAttributes().history().records().size() > 0 ? versionAttributeView.readAttributes().history().records().get( 0 ).author() : null )
.withLastModified( new Date( versionAttributeView.readAttributes().lastModifiedTime().toMillis() ) )
.withDateCreated( new Date( versionAttributeView.readAttributes().creationTime().toMillis() ) )
.withSubject( dcoreView.readAttributes().subjects().size() > 0 ? dcoreView.readAttributes().subjects().get( 0 ) : null )