001/* 002 * (C) Copyright 2006-2012 Nuxeo SA (http://nuxeo.com/) and others. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 * 016 * Contributors: 017 * Nuxeo - initial API and implementation 018 * 019 */ 020package org.nuxeo.ecm.platform.audit.api.document; 021 022import org.nuxeo.ecm.core.api.CoreSession; 023import org.nuxeo.ecm.core.api.DocumentModel; 024import org.nuxeo.ecm.core.api.IdRef; 025import org.nuxeo.ecm.core.api.UnrestrictedSessionRunner; 026 027/** 028 * Simple helper to fetch the target Audited document 029 * 030 * @author <a href="mailto:[email protected]">Tiry</a> 031 */ 032public class SourceDocumentResolver extends UnrestrictedSessionRunner { 033 034 public DocumentModel sourceDocument; 035 036 protected final DocumentModel document; 037 038 SourceDocumentResolver(CoreSession session, DocumentModel doc) { 039 super(session); 040 this.document = doc; 041 } 042 043 @Override 044 public void run() { 045 DocumentModel version = null; 046 if (document.isProxy()) { 047 version = session.getSourceDocument(document.getRef()); 048 } else { 049 version = document; 050 } 051 if (version != null) { 052 if (version.getSourceId() != null && session.exists(new IdRef(version.getSourceId()))) { 053 sourceDocument = session.getSourceDocument(version.getRef()); 054 } 055 } 056 } 057 058}