package com.emc.ecs.sync.util; import com.emc.ecs.sync.model.ObjectAcl; import com.emc.ecs.sync.model.ObjectMetadata; import com.emc.ecs.sync.model.SyncObject; import com.emc.ecs.sync.storage.SyncStorage; import java.io.InputStream; import java.util.Map; public abstract class DelegatingSyncObject extends SyncObject { protected SyncObject delegate; public DelegatingSyncObject(SyncObject delegate) { super(delegate.getSource(), delegate.getRelativePath(), delegate.getMetadata()); this.delegate = delegate; } @Override public SyncStorage getSource() { return delegate.getSource(); } @Override public String getRelativePath() { return delegate.getRelativePath(); } @Override public ObjectMetadata getMetadata() { return delegate.getMetadata(); } @Override public void setMetadata(ObjectMetadata metadata) { delegate.setMetadata(metadata); } @Override public InputStream getDataStream() { return delegate.getDataStream(); } @Override public void setDataStream(InputStream dataStream) { delegate.setDataStream(dataStream); } @Override public ObjectAcl getAcl() { return delegate.getAcl(); } @Override public void setAcl(ObjectAcl acl) { delegate.setAcl(acl); } @Override public boolean isPostStreamUpdateRequired() { return delegate.isPostStreamUpdateRequired(); } @Override public void setPostStreamUpdateRequired(boolean postStreamUpdateRequired) { delegate.setPostStreamUpdateRequired(postStreamUpdateRequired); } @Override public Map<String, Object> getProperties() { return delegate.getProperties(); } @Override public void setProperties(Map<String, Object> properties) { delegate.setProperties(properties); } @Override public Object getProperty(String name) { return delegate.getProperty(name); } @Override public void setProperty(String name, Object value) { delegate.setProperty(name, value); } @Override public void removeProperty(String name) { delegate.removeProperty(name); } @Override public long getBytesRead() { return delegate.getBytesRead(); } @Override public String getMd5Hex(boolean forceRead) { return delegate.getMd5Hex(forceRead); } @Override public void close() throws Exception { delegate.close(); } }