Message.java

/**
* Copyright 2010,2021 Nikolas S Boyd.
Permission is granted to copy this work provided this copyright statement is retained in all copies.

*/
package Hoot.Behaviors;

import Hoot.Runtime.Functions.*;
import Hoot.Runtime.Faces.*;
import Hoot.Runtime.Values.*;
import Hoot.Runtime.Blocks.*;
import Smalltalk.Core.*;
import Smalltalk.Blocks.*;
import Smalltalk.Magnitudes.*;
import Hoot.Magnitudes.*;
import Hoot.Magnitudes.Integer;
import Hoot.Magnitudes.Character;
import Hoot.Magnitudes.Float;
import Hoot.Magnitudes.Double;
import Hoot.Collections.*;
import Hoot.Collections.String;
import java.util.Arrays;
import Smalltalk.Core.Subject;
import Smalltalk.Core.SentMessage;
import Smalltalk.Collections.CollectedSequentially;

public class Message extends Object implements SentMessage
{

  protected Selector selector;
  protected Subject [] arguments;

  /**
   * @return 
   */
  public   Selector selector()
  {
    java.lang.String exitID = "Message>>selector";
    Frame f0 = new Frame(exitID);
    return (Selector)selector;
  }

  /**
   * @return 
   */
  protected   java.util.List argumentList()
  {
    java.lang.String exitID = "Message>>argumentList";
    Frame f0 = new Frame(exitID);
    return (java.util.List)Arrays.asList(arguments);
  }

  /**
   * @return 
   */
  protected   int argumentCount()
  {
    java.lang.String exitID = "Message>>argumentCount";
    Frame f0 = new Frame(exitID);
    return (int)this.argumentList().size();
  }

  /**
   * 
   */
  public    Message(final Selector methodSelector, final Subject ... methodArguments)
  {
    java.lang.String exitID = "Message>>Message";
    Frame f0 = new Frame(exitID);
     selector = methodSelector;

     arguments = methodArguments;
  }

  /**
   * @return 
   */
  public   CollectedSequentially arguments()
  {
    java.lang.String exitID = "Message>>arguments";
    Frame f0 = new Frame(exitID);
    return (CollectedSequentially)OrderedCollection.type().from(this.argumentList());
  }
}