Ive finished my program which I can run to where I write a D

I\'ve finished my program (which I can run) to where I write a DomainName class that encapsulates the concept of a domain name, assuming the name of the domain has a single attribute. such as the link (i.e. www.yahoo.com (Links to an external site.)) Below is a list of things I should include in my program.

1. Constructor: accepts the domain name as an argument.

2. getDomain: an accessor method for the domain name field.

3. setDomain: a mutator method for the domain name field.

4. prefix: a method returning whether or not the domain name starts with www.

5. extension: a method returning the extension of the domain name (i.e. the letters after teh last dot, like com, gov, or edu; if there is no dot in the domain name, then you should return \"unknown\")

6. name: a method returning the name itself (which will be the characters between www and the extension; for instance, yahoo if the domain is www.yahoo.com --if there are fewer than two dots in the domain name, then your method should return \"unknown\").

//Can you check my work and provide feedback after you are done? Thank you.

public class LeavinesDomainName
{
   //instance variables
   private String domain_name;
  
   //default constructor that initializes domain name with empty name
   public LeavinesDomainName()
   {
       domain_name = \"\";
   }
  
   //parameterized constructor
   public LeavinesDomainName(String name)
   {
       domain_name = name;
   }
  
   //setter
   public void SetDomain(String name)
   {
       domain_name = name;
   }
  
   //getter
   public String GetDomain()
   {
       return domain_name;
   }
  
   //to String
   public String toString()
   {
       return domain_name;
   }
  
   //equal method that compare two Domain Name Object
   public boolean equals(LeavinesDomainName D)
   {
       return domain_name.equalsIgnoreCase(D.GetDomain());
   }
  
   //function to check whether domain name starts with \"www\"
   public boolean is_domain_starts_with_www()
   {
       return domain_name.startsWith(\"www\");
   }
  
   //function to return extension
   public String get_extension_of_domain_name()
   {
       int index= domain_name.lastIndexOf(\'.\');
       if(index>0)
       return domain_name.substring(index+1);
       return \"unknown\";
   }
  
   //String name for the domain
   public String name_of_domain()
   {
       int first_index= domain_name.indexOf(\'.\');
       int last_index= domain_name.indexOf(\'.\');
       if(first_index== -1 || last_index== -1 || first_index==last_index)
       return \"unknown\";
       return domain_name.substring(first_index=1+1, last_index);
   }

   //Output for the program
   public static void main(String[] args)
   {
       LeavinesDomainName yahoo_D = new LeavinesDomainName(\"www.yahoo.com\");
       LeavinesDomainName bing_D = new LeavinesDomainName(\"www.bing.com\");
       LeavinesDomainName wrong_D = new LeavinesDomainName(\"ww.com\");
       System.out.println(\"Is Yahoo Domain equal to Bing Domain? \" + yahoo_D.equals(bing_D));;
       System.out.println(\"Does Yahoo Domain start with www? \" + yahoo_D.is_domain_starts_with_www());
       System.out.println(\"Yahoo Domain name is \" + yahoo_D.name_of_domain());;
       System.out.println(\"Wrong Domain extension is \" + wrong_D.get_extension_of_domain_name());;
       System.out.println(\"Wrong Domain name is \" + wrong_D.name_of_domain());
   }
}

Solution

DomainName.java

/**
* DomainName class that encapsulates the concept of a single-attribute domain name.
* The \'DomainName\' class acts as a \"wrapper\" object for a domain name. In this context, a domain
* name is considered to be a URL consisting of an optional \"www\", a name (e.g. \"google\"), and an
* extension (e.g. \"com\" or \"org\"), separated by a \"dot\" (\'.\'). The class also provides member
* functions to access the \'domain\' field (accessor and mutator) as well as three functions to get
* the three components of a domain name, which were listed previously.
*/
public class DomainName {
/** The single member variable of the \'DomainName\' class: \'domain\', a String variable containing
   * the entire domain name */
private String domain;

/**
   * Constructor for the \'DomainName\' class.
   * This is the only constructor for the \'DomainName\' class, as there is no explicitly-defined
   * default constructor. The constructor accepts a single argument: a String variable containing
   * the domain name to be stored in the newly constructed \'DomainName\' instance. The new instance\'s
   * \'domain\' field is set to the value of the argument with which the constructor was called.
   *
   * @param domain_ A String containing the new instance\'s domain name.
   */
public DomainName(String domain_) {
    domain = domain_;
}

/**
   * Accessor method for the \'domain\' field member.
   * This function is a simple accessor method to return the value stored in a class instance\'s
   * private \'domain\' member field. It takes no arguments and returns a String value equivalent
   * to the calling instance\'s \'domain\' field.
   *
   * @return The \'domain\' as a String.
   */
public String getDomain( ) {
    return this.domain;
}

/**
   * Mutator method for the \'domain\' field member.
   * This function is a simple mutator method to set the value of a class instance\'s private
   * \'domain\' member field. It takes a single, String argument, which is the desired value of the
   * calling instance\'s \'domain\' field, and does not return a value.
   *
   * @param domain_ The new \'domain\' String.
   */
public void setDomain(String domain_) {
    this.domain = domain_;
}

/**
   * Method returning whether or not the domain name starts with \"www\".
   * This method returns a boolean value based on the presence of \"www\" as the first element of
   * a class instance\'s \'domain\' member field: \'true\' if the domain name starts with \"www.\";
   * otherwise, \'false\'.
   *
   * @return A boolean value representing the presence of \"www.\" at the start of a domain name.
   */
public boolean hasPrefix( ) {
    return this.domain.startsWith(\"www.\");
}

/**
   * Method returning the domain name\'s extenstion.
   * This method returns a substring of an instance\'s \'domain\' field containing the characters
   * following the final \"dot\" (\'.\'). For example, if an instance\'s \'domain\' field contained
   * \"www.google.com\", then \'instance.extension()\' would return \"com\". If the final \"dot\" cannot be
   * found in an instance\'s \'domain\' field, the method returns \"unknown\".
   *
   * @return A String equivalent to the domain name\'s extension.
   */
public String extension( ) {
    int dotIndex = this.domain.lastIndexOf(\".\");
    if ( dotIndex != -1 && !this.domain.substring(0,dotIndex).equalsIgnoreCase(\"www\") ) {
      return this.domain.substring(dotIndex + 1);
    }
    else {
      return \"unknown\";
    }
}

/**
   * Method returning the domain\'s \"name\" itself.
   * This method returns a substring of an instance\'s \'domain\' field containing the characters
   * between the first and second \"dots\" (\'.\') of the full domain name. For example, if an
   * instance\'s \'domain\' field contained \"www.google.com\", then \'instance.name()\' would return
   * \"google\". If there are fewer than two \"dots\" in the \'domain\' String, then the method returns
   * \"unknown\".
   *
   * @return A String equivalent to the domain\'s \"name\", contained between the two \"dots\".
   */
public String name() {
    /**
     * Uses a regular expression so \'.\' must be \'\\.\' but \'\\\' must also be escaped giving \"\\\\.\"
     * @see java.lang.String#split
     */
    String[] chunks = this.domain.split(\"\\\\.\");
    if (chunks.length == 3) { // Evaluates to \'true\' if the domain name contained exactly 2 \"dots\".
      return chunks[1];        // Returns the substring between the 2 \"dots\", which split the domain.
    }
    else if (chunks.length == 2) { // Evaluates to \'true\' if the domain name contained only one \"dot\".
      /**
       * Since the calling instance has a domain with only one \"dot\", it cannot have both a \"www.\"
       * prefix and an extension. So, if \'this.hasPrefix()\' returns \'true\' then there must be no
       * extension and the function returns \"unknown\". NOTE: because of the validity testing for
       * user input in \'WardDomainName\' this should never cause an \"unknown\" to be output; it is
       * included as a redundancy in case some implementation (like another program) did not
       * validate the domain name given by the user, to prevent unexpected results.
       * If \'this.hasPrefix()\' evaluates to \'false\', the substring of the domain name up to (but not
       * including) the single \"dot\".
       *
       * @see #hasPrefix
       * @see WardDomainName#main
       * @see WardDomainName#isValidDomain
       */
      return this.hasPrefix() ? \"unknown\" : chunks[0];
    } // else
    return \"unknown\"; // default return if neither of the above conditions were satisfied.
}
}

I\'ve finished my program (which I can run) to where I write a DomainName class that encapsulates the concept of a domain name, assuming the name of the domain
I\'ve finished my program (which I can run) to where I write a DomainName class that encapsulates the concept of a domain name, assuming the name of the domain
I\'ve finished my program (which I can run) to where I write a DomainName class that encapsulates the concept of a domain name, assuming the name of the domain
I\'ve finished my program (which I can run) to where I write a DomainName class that encapsulates the concept of a domain name, assuming the name of the domain

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site