Assume the existence of an interface, CommDevice, with the following methods: transmit: accepts two string parameters and returns nothing receive: accepts two string parameters and returns a boolean Define a class, Firewall, that implements the above interface, and has the following members: a string instance variable, permittedReceiver a string instance variable, buffer a constructor that accepts a string parameter that is used to initialize the permittedReceiver variable an implementation of the transmit method that assigns the first parameter to the destination instance variable and the second to the buffer variable. It also send to System.out the message “Data scheduled for transmission to dest” where dest is replaced by the actual value of the destination string. an implementation of the receiver method that checks if the first parameter is equal to the permittedReceiver and if so it sets the buffer instance variable to the second parameter and returns true; otherwise it sets the buffer to the empty string, prints the message “Attempted breach of firewall by ” where is replaced by the method’s first parameter, and returns false.

LANGUAGE: JAVA

CHALLENGE:

Assume the existence of an interface, CommDevice, with the following methods:
transmit: accepts two string parameters and returns nothing
receive: accepts two string parameters and returns a boolean
Define a class, Firewall, that implements the above interface, and has the following members:
a string instance variable, permittedReceiver
a string instance variable, buffer
a constructor that accepts a string parameter that is used to initialize the permittedReceiver variable
an implementation of the transmit method that assigns the first parameter to the destination instance variable and the second to the buffer variable. It also send to System.out the message “Data scheduled for transmission to dest” where dest is replaced by the actual value of the destination string.
an implementation of the receiver method that checks if the first parameter is equal to the permittedReceiver and if so it sets the buffer instance variable to the second parameter and returns true; otherwise it sets the buffer to the empty string, prints the message “Attempted breach of firewall by ” where is replaced by the method’s first parameter, and returns false.

SOLUTION:


public class Firewall implements CommDevice{
   private String permittedReceiver;
   private String buffer;
   private String destination;
   public void setPermittedReceiver (String r){
      permittedReceiver = r;
   }

   public void setBuffer(String r){
      buffer = r;
   }

   public Firewall(String receiver){
      permittedReceiver = receiver;
   }

   public void transmit(String first, String second){
      destination = first;
      buffer = second;
      System.out.println("Data scheduled for transmission to " +  destination);
   }

   public boolean receive(String first, String second){
      if(first == permittedReceiver){
         buffer = second;
         return true;
      }else{
         buffer = "";
         System.out.print ("Attempted breach of firewall by " + first);
         return false;
      }
   }
}