+ return( i->second );
+}
+
+// -------------------------------------------------------------------------
+bool cpPlugins::Interface::ProcessObject::
+SetInput( const std::string& id, const OutputProcessObjectPort& port )
+{
+ auto i = this->m_Inputs.find( id );
+ if( i != this->m_Inputs.end( ) )
+ {
+ if( i->second.GetPointer( ) != port.GetPointer( ) )
+ {
+ i->second = port;
+ this->Modified( );
+
+ } // fi
+ return( true );
+ }
+ else
+ return( false );
+}
+
+// -------------------------------------------------------------------------
+void cpPlugins::Interface::ProcessObject::
+DisconnectInputs( )
+{
+ auto i = this->m_Inputs.begin( );
+ for( ; i != this->m_Inputs.end( ); ++i )
+ i->second = NULL;
+ this->Modified( );
+}
+
+// -------------------------------------------------------------------------
+void cpPlugins::Interface::ProcessObject::
+DisconnectOutputs( )
+{
+ auto i = this->m_Outputs.begin( );
+ for( ; i != this->m_Outputs.end( ); ++i )
+ if( i->second.IsValid( ) )
+ i->second->DisconnectFromPipeline( );
+ this->Modified( );
+}
+
+// -------------------------------------------------------------------------
+void cpPlugins::Interface::ProcessObject::
+Disconnect( )
+{
+ this->DisconnectInputs( );
+ this->DisconnectOutputs( );
+}
+
+// -------------------------------------------------------------------------
+itk::ModifiedTimeType cpPlugins::Interface::ProcessObject::
+GetMTime( ) const
+{
+ auto params_time = this->m_Parameters->GetMTime( );
+ auto filter_time = this->Superclass::GetMTime( );
+ return( ( params_time < filter_time )? params_time: filter_time );