You are here

function coder_upgrade_upgrade_call_node_get_types_alter in Coder 7.2

Same name and namespace in other branches
  1. 7 coder_upgrade/conversions/call.inc \coder_upgrade_upgrade_call_node_get_types_alter()

Implements hook_upgrade_call_node_get_types_alter().

File

coder_upgrade/conversions/call.inc, line 1995
Provides conversion routines applied to function calls.

Code

function coder_upgrade_upgrade_call_node_get_types_alter(&$node, &$reader) {

  // DONE
  // Create helper objects.
  $editor = PGPEditor::getInstance();

  // Get the function call object.
  $item =& $node->data;
  if ($item
    ->parameterCount() && !$item
    ->getParameter()
    ->isType(T_CONSTANT_ENCAPSED_STRING)) {

    // Add TODO comment.
    $item
      ->insertStatementBefore($editor
      ->commentToStatement('// TODO Please change this function call to node_type_get_$op based on the value of the $op variable.'));
    return;
  }
  $op = $item
    ->printParameter(0);
  $node2 = $item
    ->printParameter(1);
  $reset = $item
    ->printParameter(2);

  // node_get_types($op) is now node_type_get_$op.
  $op = trim($op, "'\"");
  $op = $op ? $op : 'types';
  $item->parameters
    ->clear();
  switch ($op) {
    case 'module':
      $op = 'base';
    case 'name':
    case 'type':
      $todo = '';
      if (strtoupper($node2) == 'NULL' || $node2 == '') {
        $node2 = $node2 == '' ? '$node' : $node2;
        $todo = ' /* TODO The $node parameter should not be null. Please declare and initialize a $node parameter. */';
      }
      $editor
        ->setParameter($item, 0, $node2 . $todo);
      break;
  }
  $name =& $item->name;
  $name['value'] = 'node_type_get_' . $op;

  // node_type_clear() (to clear the static cache) is now a separate function.
  if ($reset && $reset != 'FALSE') {
    $statement = $editor
      ->textToStatements("node_types_clear();")
      ->getElement(0);
    $item
      ->insertStatementBefore($statement);
  }
}