001/*
002 * Copyright (c) 2016-2017 Chris K Wensel <chris@wensel.net>. All Rights Reserved.
003 * Copyright (c) 2007-2017 Xplenty, Inc. All Rights Reserved.
004 *
005 * Project and contact information: http://www.cascading.org/
006 *
007 * This file is part of the Cascading project.
008 *
009 * Licensed under the Apache License, Version 2.0 (the "License");
010 * you may not use this file except in compliance with the License.
011 * You may obtain a copy of the License at
012 *
013 *     http://www.apache.org/licenses/LICENSE-2.0
014 *
015 * Unless required by applicable law or agreed to in writing, software
016 * distributed under the License is distributed on an "AS IS" BASIS,
017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
018 * See the License for the specific language governing permissions and
019 * limitations under the License.
020 */
021
022package cascading.flow;
023
024import java.io.IOException;
025import java.util.Collection;
026import java.util.Map;
027
028import cascading.tap.Tap;
029import cascading.tuple.TupleEntryCollector;
030import cascading.tuple.TupleEntryIterator;
031
032/**
033 *
034 */
035public class FlowProcessWrapper<Config> extends FlowProcess<Config>
036  {
037  final FlowProcess<Config> delegate;
038
039  public static FlowProcess undelegate( FlowProcess flowProcess )
040    {
041    if( flowProcess instanceof FlowProcessWrapper )
042      return ( (FlowProcessWrapper) flowProcess ).getDelegate();
043
044    return flowProcess;
045    }
046
047  public FlowProcessWrapper( FlowProcess delegate )
048    {
049    this.delegate = delegate;
050    }
051
052  public FlowProcess getDelegate()
053    {
054    return delegate;
055    }
056
057  @Override
058  public FlowProcessContext getFlowProcessContext()
059    {
060    return delegate.getFlowProcessContext();
061    }
062
063  @Override
064  public FlowProcess copyWith( Config object )
065    {
066    return delegate.copyWith( object );
067    }
068
069  @Override
070  public String getID()
071    {
072    return delegate.getID();
073    }
074
075  @Override
076  public FlowSession getCurrentSession()
077    {
078    return delegate.getCurrentSession();
079    }
080
081  @Override
082  public void setCurrentSession( FlowSession currentSession )
083    {
084    delegate.setCurrentSession( currentSession );
085    }
086
087  @Override
088  public int getNumProcessSlices()
089    {
090    return delegate.getNumProcessSlices();
091    }
092
093  @Override
094  public int getCurrentSliceNum()
095    {
096    return delegate.getCurrentSliceNum();
097    }
098
099  @Override
100  public Object getProperty( String key )
101    {
102    return delegate.getProperty( key );
103    }
104
105  @Override
106  public Collection<String> getPropertyKeys()
107    {
108    return delegate.getPropertyKeys();
109    }
110
111  @Override
112  public Object newInstance( String className )
113    {
114    return delegate.newInstance( className );
115    }
116
117  @Override
118  public void keepAlive()
119    {
120    delegate.keepAlive();
121    }
122
123  @Override
124  public void increment( Enum counter, long amount )
125    {
126    delegate.increment( counter, amount );
127    }
128
129  @Override
130  public void increment( String group, String counter, long amount )
131    {
132    delegate.increment( group, counter, amount );
133    }
134
135  @Override
136  public long getCounterValue( Enum counter )
137    {
138    return delegate.getCounterValue( counter );
139    }
140
141  @Override
142  public long getCounterValue( String group, String counter )
143    {
144    return delegate.getCounterValue( group, counter );
145    }
146
147  @Override
148  public void setStatus( String status )
149    {
150    delegate.setStatus( status );
151    }
152
153  @Override
154  public boolean isCounterStatusInitialized()
155    {
156    return delegate.isCounterStatusInitialized();
157    }
158
159  @Override
160  public TupleEntryIterator openTapForRead( Tap tap ) throws IOException
161    {
162    return delegate.openTapForRead( tap );
163    }
164
165  @Override
166  public TupleEntryCollector openTapForWrite( Tap tap ) throws IOException
167    {
168    return delegate.openTapForWrite( tap );
169    }
170
171  @Override
172  public TupleEntryCollector openTrapForWrite( Tap trap ) throws IOException
173    {
174    return delegate.openTrapForWrite( trap );
175    }
176
177  @Override
178  public TupleEntryCollector openSystemIntermediateForWrite() throws IOException
179    {
180    return delegate.openSystemIntermediateForWrite();
181    }
182
183  @Override
184  public Config getConfig()
185    {
186    return delegate.getConfig();
187    }
188
189  @Override
190  public Config getConfigCopy()
191    {
192    return delegate.getConfigCopy();
193    }
194
195  @Override
196  public <C> C copyConfig( C jobConf )
197    {
198    return delegate.copyConfig( jobConf );
199    }
200
201  @Override
202  public <C> Map<String, String> diffConfigIntoMap( C defaultConfig, C updatedConfig )
203    {
204    return delegate.diffConfigIntoMap( defaultConfig, updatedConfig );
205    }
206
207  @Override
208  public Config mergeMapIntoConfig( Config defaultConfig, Map<String, String> map )
209    {
210    return delegate.mergeMapIntoConfig( defaultConfig, map );
211    }
212
213  @Override
214  public TupleEntryCollector getTrapCollectorFor( Tap trap )
215    {
216    return delegate.getTrapCollectorFor( trap );
217    }
218
219  @Override
220  public synchronized void closeTrapCollectors()
221    {
222    delegate.closeTrapCollectors();
223    }
224  }