@Override
 public VariableDeclaration clone() {
   Expression expression = initialization();
   Expression clonedExpression = null;
   if (expression != null) {
     clonedExpression = expression.clone();
   }
   return new VariableDeclaration(signature().clone(), clonedExpression);
 }
 public V variable() {
   Expression init = initialization();
   Expression initClone = (init == null ? null : init.clone());
   V result =
       (V) ((VariableDeclarator<?, V>) parent()).createVariable(signature().clone(), initClone);
   result.setUniParent(parent());
   result.setOrigin(this);
   transform(result);
   return result;
 }