}
}
if ( model.metadataList != null ) {
clone.metadataList = new RuleMetadata[ model.metadataList.length ];
for ( int i = 0; i < model.metadataList.length; i++ ) {
RuleMetadata md = model.metadataList[ i ];
clone.metadataList[ i ] = (RuleMetadata) visit( md );
}
}
if ( model.lhs != null ) {
clone.lhs = new IPattern[ model.lhs.length ];