code: @Override
    public void visit(final Visitable visitable) {
      if (visitable instanceof ParameterizedInitable) {
        if (getParameters() != null) {
          ((ParameterizedInitable) visitable).init(getParameters());
        }
        else if (getArguments() != null) {
          ((ParameterizedInitable) visitable).init(getArguments());
        }
        else {
          ((ParameterizedInitable) visitable).init();
        }
      }
      else if (visitable instanceof Initable) {
        ((Initable) visitable).init();
      }
    }
docs: Visits ParameterizedInitable and Initable objects in a graph initializing them with either the arguments
  or parameters supplied to this Visitor before the visitation, or otherwise calls the no-arg init() method
  if no arguments or parameters were supplied or the object is a plain Initable object.
  
  @param visitable the Visitable object visited by this Visitor.
  @see org.cp.elements.lang.Initable#init()
  @see org.cp.elements.lang.ParameterizedInitable#init()
  @see org.cp.elements.lang.ParameterizedInitable#init(Object...)
  @see org.cp.elements.lang.ParameterizedInitable#init(java.util.Map)
  @see org.cp.elements.lang.Visitable