/* * Copyright (c) 2006-2011 Nuxeo SA (http://nuxeo.com/) and others. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Nuxeo - initial API and implementation * * $Id$ */ package org.eclipse.ecr.core.event.impl; import java.io.Serializable; import java.util.Collection; import java.util.Map; import java.util.Set; import org.eclipse.ecr.core.api.ClientException; import org.eclipse.ecr.core.api.CoreSession; import org.eclipse.ecr.core.api.DataModel; import org.eclipse.ecr.core.api.DataModelMap; import org.eclipse.ecr.core.api.DocumentException; import org.eclipse.ecr.core.api.DocumentModel; import org.eclipse.ecr.core.api.DocumentRef; import org.eclipse.ecr.core.api.IdRef; import org.eclipse.ecr.core.api.Lock; import org.eclipse.ecr.core.api.PathRef; import org.eclipse.ecr.core.api.VersioningOption; import org.eclipse.ecr.core.api.model.DocumentPart; import org.eclipse.ecr.core.api.model.Property; import org.eclipse.ecr.core.api.model.PropertyException; import org.eclipse.ecr.core.api.security.ACP; import org.eclipse.ecr.core.event.Event; import org.eclipse.ecr.core.event.EventBundle; import org.eclipse.ecr.core.schema.DocumentType; import org.nuxeo.common.collections.ScopeType; import org.nuxeo.common.collections.ScopedMap; import org.nuxeo.common.utils.Path; /** * Light weight {@link DocumentModel} implementation Only holds * {@link DocumentRef}, RepositoryName, name and path. Used to reduce memory * footprint of {@link Event} stacked in {@link EventBundle}. * * @author Thierry Delprat */ public class ShallowDocumentModel implements DocumentModel { private static final long serialVersionUID = 1L; private final String id; private final String repoName; private final String name; private final Path path; private final String type; private final boolean isFolder; private final boolean isVersion; public ShallowDocumentModel(DocumentModel doc) { id = doc.getId(); repoName = doc.getRepositoryName(); name = doc.getName(); path = doc.getPath(); type = doc.getType(); isFolder = doc.isFolder(); isVersion = doc.isVersion(); } @Override public String getId() { return id; } @Override public DocumentRef getRef() { return id == null ? null : new IdRef(id); } @Override public String getRepositoryName() { return repoName; } @Override public String getName() { return name; } @Override public Path getPath() { return path; } @Override public String getPathAsString() { if (path != null) { return path.toString(); } return null; } @Override public DocumentRef getParentRef() { if (path != null) { return new PathRef(path.removeLastSegments(1).toString()); } return null; } @Override public String getType() { return type; } @Override public boolean isFolder() { return isFolder; } @Override public boolean isVersion() { return isVersion; } @Override public void copyContent(DocumentModel sourceDoc) throws ClientException { throw new UnsupportedOperationException(); } @Override public void copyContextData(DocumentModel otherDocument) { throw new UnsupportedOperationException(); } @Override public boolean followTransition(String transition) throws ClientException { throw new UnsupportedOperationException(); } @Override public ACP getACP() throws ClientException { throw new UnsupportedOperationException(); } @Override public <T> T getAdapter(Class<T> itf) { throw new UnsupportedOperationException(); } @Override public <T> T getAdapter(Class<T> itf, boolean refreshCache) { throw new UnsupportedOperationException(); } @Override public Collection<String> getAllowedStateTransitions() throws ClientException { throw new UnsupportedOperationException(); } @Override public String getCacheKey() throws ClientException { throw new UnsupportedOperationException(); } @Override public ScopedMap getContextData() { throw new UnsupportedOperationException(); } @Override public Serializable getContextData(ScopeType scope, String key) { throw new UnsupportedOperationException(); } @Override public CoreSession getCoreSession() { throw new UnsupportedOperationException(); } @Override public String getCurrentLifeCycleState() throws ClientException { throw new UnsupportedOperationException(); } @Override public DataModel getDataModel(String schema) throws ClientException { throw new UnsupportedOperationException(); } @Override public DataModelMap getDataModels() { throw new UnsupportedOperationException(); } @Override public Collection<DataModel> getDataModelsCollection() { throw new UnsupportedOperationException(); } @Override public Set<String> getFacets() { throw new UnsupportedOperationException(); } @Override public Set<String> getDeclaredFacets() { throw new UnsupportedOperationException(); } @Override public String[] getSchemas() { throw new UnsupportedOperationException(); } @Override public String[] getDeclaredSchemas() { throw new UnsupportedOperationException(); } @Override public DocumentType getDocumentType() { throw new UnsupportedOperationException(); } @Override public long getFlags() { throw new UnsupportedOperationException(); } @Override public String getLifeCyclePolicy() throws ClientException { throw new UnsupportedOperationException(); } @Override public String getLock() { throw new UnsupportedOperationException(); } @Override public DocumentPart getPart(String schema) throws ClientException { throw new UnsupportedOperationException(); } @Override public DocumentPart[] getParts() throws ClientException { throw new UnsupportedOperationException(); } @Override public Map<String, Serializable> getPrefetch() { throw new UnsupportedOperationException(); } @Override public Map<String, Object> getProperties(String schemaName) throws ClientException { throw new UnsupportedOperationException(); } @Override public Property getProperty(String xpath) throws PropertyException, ClientException { throw new UnsupportedOperationException(); } @Override public Object getProperty(String schemaName, String name) throws ClientException { throw new UnsupportedOperationException(); } @Override public Serializable getPropertyValue(String xpath) throws PropertyException, ClientException { throw new UnsupportedOperationException(); } @Override public String getSessionId() { throw new UnsupportedOperationException(); } @Override public String getSourceId() { throw new UnsupportedOperationException(); } @Override public <T extends Serializable> T getSystemProp(String systemProperty, Class<T> type) throws ClientException, DocumentException { throw new UnsupportedOperationException(); } @Override public String getTitle() throws ClientException { throw new UnsupportedOperationException(); } @Override public String getVersionLabel() { throw new UnsupportedOperationException(); } @Override public String getCheckinComment() { throw new UnsupportedOperationException(); } @Override public boolean hasFacet(String facet) { throw new UnsupportedOperationException(); } @Override public boolean hasSchema(String schema) { throw new UnsupportedOperationException(); } @Override public boolean addFacet(String facet) { throw new UnsupportedOperationException(); } @Override public boolean removeFacet(String facet) { throw new UnsupportedOperationException(); } @Override public boolean isDownloadable() throws ClientException { throw new UnsupportedOperationException(); } @Override public boolean isLifeCycleLoaded() { throw new UnsupportedOperationException(); } @Override public boolean isLocked() { throw new UnsupportedOperationException(); } @Override public boolean isProxy() { throw new UnsupportedOperationException(); } @Override public boolean isImmutable() { throw new UnsupportedOperationException(); } @Override public boolean isVersionable() { throw new UnsupportedOperationException(); } @Override public void prefetchCurrentLifecycleState(String lifecycle) { throw new UnsupportedOperationException(); } @Override public void prefetchLifeCyclePolicy(String lifeCyclePolicy) { throw new UnsupportedOperationException(); } @Override public void prefetchProperty(String id, Object value) { throw new UnsupportedOperationException(); } @Override public void putContextData(String key, Serializable value) { throw new UnsupportedOperationException(); } @Override public void putContextData(ScopeType scope, String key, Serializable value) { throw new UnsupportedOperationException(); } @Override public void refresh() throws ClientException { throw new UnsupportedOperationException(); } @Override public void refresh(int refreshFlags, String[] schemas) throws ClientException { throw new UnsupportedOperationException(); } @Override public void reset() { throw new UnsupportedOperationException(); } @Override public void setACP(ACP acp, boolean overwrite) throws ClientException { throw new UnsupportedOperationException(); } @Override public void setLock(String key) throws ClientException { throw new UnsupportedOperationException(); } @Override public Lock setLock() throws ClientException { throw new UnsupportedOperationException(); } @Override public Lock getLockInfo() throws ClientException { throw new UnsupportedOperationException(); } @Override public Lock removeLock() throws ClientException { throw new UnsupportedOperationException(); } @Override public void setPathInfo(String parentPath, String name) { throw new UnsupportedOperationException(); } @Override public void setProperties(String schemaName, Map<String, Object> data) throws ClientException { throw new UnsupportedOperationException(); } @Override public void setProperty(String schemaName, String name, Object value) throws ClientException { throw new UnsupportedOperationException(); } @Override public void setPropertyValue(String xpath, Serializable value) { throw new UnsupportedOperationException(); } @Override public void unlock() throws ClientException { throw new UnsupportedOperationException(); } @Override public DocumentModel clone() throws CloneNotSupportedException { throw new CloneNotSupportedException(); } @Override public Serializable getContextData(String key) { throw new UnsupportedOperationException(); } @Override public boolean isCheckedOut() throws ClientException { throw new UnsupportedOperationException(); } @Override public void checkOut() throws ClientException { throw new UnsupportedOperationException(); } @Override public DocumentRef checkIn(VersioningOption option, String checkinComment) throws ClientException { throw new UnsupportedOperationException(); } @Override public String getVersionSeriesId() throws ClientException { throw new UnsupportedOperationException(); } @Override public boolean isLatestVersion() throws ClientException { return false; } @Override public boolean isMajorVersion() throws ClientException { return false; } @Override public boolean isLatestMajorVersion() throws ClientException { return false; } @Override public boolean isVersionSeriesCheckedOut() throws ClientException { return true; } }