Questions
In your Solutions to Pinters a Book of Abstract Algebra Chapter 8 Exercise H3 i can...

In your Solutions to Pinters a Book of Abstract Algebra Chapter 8 Exercise H3 i can not understand in step 5 you get (ab)(cd)=(dac)(abd). Can you show me in some detail how to get that result please?

In: Advanced Math

C++ Programming 1) What is the feature that makes a base class an abstract class? 2)...

C++ Programming

1) What is the feature that makes a base class an abstract class?

2) When designing a class hierarchy involving classes A and B, what are the two questions that must be asked to determine whether class B should be derived from class A?

In: Computer Science

Using the linked list abstract data type “Queue ADT”, write a menu dirven user interfece to...

Using the linked list abstract data type “Queue ADT”, write a menu dirven user interfece to teach each of the operations in the ADT. Any errors discovered during the processing should be printed as a part of the test result. Please Use C++ language.

In: Computer Science

I am about to start my undergraduate thesis, I need an interesting topic related to Marketing....

I am about to start my undergraduate thesis, I need an interesting topic related to Marketing. Due to coronavirus I have not many resources. Describe how the content and abstract would be. And how will be the research method to accomplish? and some recommendations if it is porssible

In: Operations Management

java programming You will be given two interfaces and two abstract classes, FileTextReader, FileTextWriter, AbstractFileMonitor, and...

java programming

You will be given two interfaces and two abstract classes, FileTextReader, FileTextWriter, AbstractFileMonitor, and AbstractDictionary. Your job is to create two classes the first class should be named FileManager, the second class should be named Dictionary. The FileManager will implement the interfaces FileTextReader and FileTextWriter and extend the clas AbstractFileMonitor. Your class signature would look something like the following:

public class FileManager extends AbstractFileMonitor implements FileTextReader, FileTextWriter{...

The constructor signature of the FileManager should look like the following:

public FileManager(String filePath){...

The Dictionary will extend the abstract class AbstractDictionary. Your class signature would look something like the following:

public class Dictionary extends AbstractDictionary {...

The constructor signature of the Dictionary should look like the following:

public Dictionary(String path, FileManager fileManager) throws IOException {...

Please read the programmatic documentation of the two interfaces and abstract classes to gain an understanding of what each function should do. This assignment will test your knowledge of reading and writing to a text file, implementing interfaces, extending abstract classes, throwing exceptions and working with collections specifically sets.

This project is accompanied by two test classes, ManagerTest, and DictionaryTest. They will test the functionality of the functions in the interfaces and the abstract methods of classes. Its recommended that you implement the FileManager before working on the AbstractDictionary.

Abstract Dictionary

package homework;

import java.io.IOException;
import java.util.Objects;
import java.util.Set;


* A class that holds a collection of words read from a text file. The collection of words is used in the methods of this class
* methods provided in this class.


public abstract class AbstractDictionary {
  
   private final FileTextReader FILE_READER;
   private final Set ALL_WORDS;
  

   /**
   * Creates an abstract dictionary of words using the text file at the specified path.
   * @param path a path to a text file containing a dictionary of words
   * @param dictionaryFileReader the FileReader used to read from the text file at the specified path
   * @throws IOException thrown if there is a problem reading the file at the path
   */
  

public AbstractDictionary(String path, FileTextReader dictionaryFileReader) throws IOException {
       Objects.requireNonNull(dictionaryFileReader, "The File reader can not be null");
       Objects.requireNonNull(path, "The path can not be null");

      FILE_READER = dictionaryFileReader;

       ALL_WORDS = FILE_READER.getAllLines(path);
   }

  
   /**
   * Returns a set of all the words contained in the dictionary text file.
   * @return a set containing all the words in the dictionary file.
   */
  

public Set getAllWords(){
       return ALL_WORDS;
   }

   /**
   * Counts the number of words in this Dictionary that start with the specified prefix and have a length that is equal or greater
   * than the specified size. If size the specified size is less than 1 then word size is not taken into account.
   * @param prefix the prefix to be found
   * @param size the length that the word must equal or be greater than. If a value less than 1 is specified, all words regardless of their
   * characters size should be considered. In other words if the size parameter is < 1 word size is disregarded in the calculations.
   * @param ignoreCase if true this will ignore case differences when matching the strings. If false this considers
   * case differences when matching the strings
   * @return The number of words that start with the specified prefix
   * @throws IllegalArgumentException if the specified string is null or empty (Meaning contains no characters or only white space or blank)
   */

public abstract int countWordsThatStartWith(String prefix, int size, boolean ignoreCase) throws IllegalArgumentException;

   /**
   * Tests if this Dictionary contains at least one word with a length equal to or greater than the specified size that starts with the specified prefix.
   * If size the specified size is less than 1 then word size is not taken into account.
   * @param prefix the prefix to be found
   * @param size the length that the word must equal or be greater than. If a value less than 1 is specified, all words regardless of their
   * characters size should be considered. In other words if the size parameter is < 1 word size is disregarded in the calculations.
   * @param ignoreCase if true this will ignore case differences when matching the strings. If false this considers
   * case differences when matching the strings
   * @return The number of words that start with the specified prefix
   * @throws IllegalArgumentException if the specified string is null or empty (Meaning contains no characters or only white space)
   */
  

public abstract boolean containsWordsThatStartWith(String prefix, int size, boolean ignoreCase) throws IllegalArgumentException;
   * Returns a set of all the words within in this Dictionary that start with the specified prefix and have a length that is equal or greater
   * than the specified size. If size the specified size is less than 1 then word size is not taken into account.
   * @param prefix the prefix to be found
   * @param size the length that the word must equal or be greater than. If a value less than 1 is specified, all words regardless of their
   * characters size should be considered. In other words if the size parameter is < 1 word size is disregarded in the calculations.
   * @param ignoreCase if true this will ignore case differences when matching the strings. If false this considers
   * case differences when matching the strings
   * @return A list of all strings that start with the specified prefix
   * @throws IllegalArgumentException if the specified string is null or empty (Meaning contains no characters or only white space)

   public abstract Set getWordsThatStartWith(String prefix, int size, boolean ignoreCase) throws IllegalArgumentException;
}

AbstractFileMonitor

package homework;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.security.DigestInputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
* A class with methods to monitor a text file.

public abstract class AbstractFileMonitor {

   private MessageDigest messageDigest;
   private int currentCheckSum;
   private boolean hasChanged = false;
   private long nextUpateTime = 0;
  
   public AbstractFileMonitor(String path){
setFilePath(path);
}

   * Updates the variables that correspond to the file being monitored
   * This function has been throttled such that it will only update values every 250 ms. In other words successive calls to this
   * function in time intervals that are less than 250 ms will yield no change.
   * @throws IOException Thrown if any type of I/O exception occurs while writing to the file
   * @throws IllegalStateException If the {@link #setFile(String)} method in not invoked with a proper file prior to invocation of this
   * @throws NoSuchAlgorithmException If the computer's OS is missing the SHA-256 hashing algorithm
   * method. In other words if no file is currently set to be monitored.

   public void update() throws IOException, IllegalStateException, NoSuchAlgorithmException {

      if(messageDigest == null){
           messageDigest = MessageDigest.getInstance("SHA-256");
       }
      
       if(nextUpateTime > System.currentTimeMillis()) {
           hasChanged = false;

          
          return;
       }

      
      nextUpateTime = System.currentTimeMillis() + 250;
      
       File file = new File(getFilePath());
      
       if(!file.exists()) return;

      
try (DigestInputStream dis = new DigestInputStream(new FileInputStream(getFilePath()), messageDigest)) {
while (dis.read() != -1) ;
messageDigest = dis.getMessageDigest();
}

StringBuilder result = new StringBuilder();
for (byte b : messageDigest.digest()) {
result.append(String.format("%02x", b));
}
  

hasChanged = currentCheckSum != result.toString().hashCode();
  
currentCheckSum = result.toString().hashCode();

   }
   * Tests if the file being monitored has changed since the last time {@link #update()} was invoked
   public boolean hasChanged(){
       return hasChanged;
}
   public abstract void setFilePath(String path);
   public abstract String getFilePath() throws IllegalStateException;
}

FileTextReader

package homework;

import java.io.IOException;
import java.util.Collection;
import java.util.List;
import java.util.Set;


public interface FileTextReader{
   public String readText(String path) throws IOException;

   * @throws IOException Thrown if any type of I/O exception occurs while writing to the file

public Set getAllLines(String path) throws IOException;
   * @throws IOException Thrown if any type of I/O exception occurs while writing to the file
public String getLastLine(String path) throws IOException;
}

FileTextWriter

package homework;

import java.io.IOException;


public interface FileTextWriter {
   * @throws IOException Thrown if any type of I/O exception occurs while writing to the file
   * @throws IllegalArgumentException if the specified string is null or empty (Meaning contains no characters or only white space)
   public void writeToFile(String string, String path) throws IOException, IllegalArgumentException;
}

In: Advanced Math

java programming You will be given two interfaces and two abstract classes, FileTextReader, FileTextWriter, AbstractFileMonitor, and...

java programming

You will be given two interfaces and two abstract classes, FileTextReader, FileTextWriter, AbstractFileMonitor, and AbstractDictionary. Your job is to create two classes the first class should be named FileManager, the second class should be named Dictionary. The FileManager will implement the interfaces FileTextReader and FileTextWriter and extend the clas AbstractFileMonitor. Your class signature would look something like the following:

public class FileManager extends AbstractFileMonitor implements FileTextReader, FileTextWriter{...

The constructor signature of the FileManager should look like the following:

public FileManager(String filePath){...

The Dictionary will extend the abstract class AbstractDictionary. Your class signature would look something like the following:

public class Dictionary extends AbstractDictionary {...

The constructor signature of the Dictionary should look like the following:

public Dictionary(String path, FileManager fileManager) throws IOException {...

Please read the programmatic documentation of the two interfaces and abstract classes to gain an understanding of what each function should do. This assignment will test your knowledge of reading and writing to a text file, implementing interfaces, extending abstract classes, throwing exceptions and working with collections specifically sets.

This project is accompanied by two test classes, ManagerTest, and DictionaryTest. They will test the functionality of the functions in the interfaces and the abstract methods of classes. Its recommended that you implement the FileManager before working on the AbstractDictionary.

Abstract Dictionary

package homework;

import java.io.IOException;
import java.util.Objects;
import java.util.Set;


* A class that holds a collection of words read from a text file. The collection of words is used in the methods of this class
* methods provided in this class.


public abstract class AbstractDictionary {
  
   private final FileTextReader FILE_READER;
   private final Set ALL_WORDS;
  

   /**
   * Creates an abstract dictionary of words using the text file at the specified path.
   * @param path a path to a text file containing a dictionary of words
   * @param dictionaryFileReader the FileReader used to read from the text file at the specified path
   * @throws IOException thrown if there is a problem reading the file at the path
   */
  

public AbstractDictionary(String path, FileTextReader dictionaryFileReader) throws IOException {
       Objects.requireNonNull(dictionaryFileReader, "The File reader can not be null");
       Objects.requireNonNull(path, "The path can not be null");

      FILE_READER = dictionaryFileReader;

       ALL_WORDS = FILE_READER.getAllLines(path);
   }

  
   /**
   * Returns a set of all the words contained in the dictionary text file.
   * @return a set containing all the words in the dictionary file.
   */
  

public Set getAllWords(){
       return ALL_WORDS;
   }

   /**
   * Counts the number of words in this Dictionary that start with the specified prefix and have a length that is equal or greater
   * than the specified size. If size the specified size is less than 1 then word size is not taken into account.
   * @param prefix the prefix to be found
   * @param size the length that the word must equal or be greater than. If a value less than 1 is specified, all words regardless of their
   * characters size should be considered. In other words if the size parameter is < 1 word size is disregarded in the calculations.
   * @param ignoreCase if true this will ignore case differences when matching the strings. If false this considers
   * case differences when matching the strings
   * @return The number of words that start with the specified prefix
   * @throws IllegalArgumentException if the specified string is null or empty (Meaning contains no characters or only white space or blank)
   */

public abstract int countWordsThatStartWith(String prefix, int size, boolean ignoreCase) throws IllegalArgumentException;

   /**
   * Tests if this Dictionary contains at least one word with a length equal to or greater than the specified size that starts with the specified prefix.
   * If size the specified size is less than 1 then word size is not taken into account.
   * @param prefix the prefix to be found
   * @param size the length that the word must equal or be greater than. If a value less than 1 is specified, all words regardless of their
   * characters size should be considered. In other words if the size parameter is < 1 word size is disregarded in the calculations.
   * @param ignoreCase if true this will ignore case differences when matching the strings. If false this considers
   * case differences when matching the strings
   * @return The number of words that start with the specified prefix
   * @throws IllegalArgumentException if the specified string is null or empty (Meaning contains no characters or only white space)
   */
  

public abstract boolean containsWordsThatStartWith(String prefix, int size, boolean ignoreCase) throws IllegalArgumentException;
   * Returns a set of all the words within in this Dictionary that start with the specified prefix and have a length that is equal or greater
   * than the specified size. If size the specified size is less than 1 then word size is not taken into account.
   * @param prefix the prefix to be found
   * @param size the length that the word must equal or be greater than. If a value less than 1 is specified, all words regardless of their
   * characters size should be considered. In other words if the size parameter is < 1 word size is disregarded in the calculations.
   * @param ignoreCase if true this will ignore case differences when matching the strings. If false this considers
   * case differences when matching the strings
   * @return A list of all strings that start with the specified prefix
   * @throws IllegalArgumentException if the specified string is null or empty (Meaning contains no characters or only white space)

   public abstract Set getWordsThatStartWith(String prefix, int size, boolean ignoreCase) throws IllegalArgumentException;
}

AbstractFileMonitor

package homework;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.security.DigestInputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
* A class with methods to monitor a text file.

public abstract class AbstractFileMonitor {

   private MessageDigest messageDigest;
   private int currentCheckSum;
   private boolean hasChanged = false;
   private long nextUpateTime = 0;
  
   public AbstractFileMonitor(String path){
setFilePath(path);
}

   * Updates the variables that correspond to the file being monitored
   * This function has been throttled such that it will only update values every 250 ms. In other words successive calls to this
   * function in time intervals that are less than 250 ms will yield no change.
   * @throws IOException Thrown if any type of I/O exception occurs while writing to the file
   * @throws IllegalStateException If the {@link #setFile(String)} method in not invoked with a proper file prior to invocation of this
   * @throws NoSuchAlgorithmException If the computer's OS is missing the SHA-256 hashing algorithm
   * method. In other words if no file is currently set to be monitored.

   public void update() throws IOException, IllegalStateException, NoSuchAlgorithmException {

      if(messageDigest == null){
           messageDigest = MessageDigest.getInstance("SHA-256");
       }
      
       if(nextUpateTime > System.currentTimeMillis()) {
           hasChanged = false;

          
          return;
       }

      
      nextUpateTime = System.currentTimeMillis() + 250;
      
       File file = new File(getFilePath());
      
       if(!file.exists()) return;

      
try (DigestInputStream dis = new DigestInputStream(new FileInputStream(getFilePath()), messageDigest)) {
while (dis.read() != -1) ;
messageDigest = dis.getMessageDigest();
}

StringBuilder result = new StringBuilder();
for (byte b : messageDigest.digest()) {
result.append(String.format("%02x", b));
}
  

hasChanged = currentCheckSum != result.toString().hashCode();
  
currentCheckSum = result.toString().hashCode();

   }
   * Tests if the file being monitored has changed since the last time {@link #update()} was invoked
   public boolean hasChanged(){
       return hasChanged;
}
   public abstract void setFilePath(String path);
   public abstract String getFilePath() throws IllegalStateException;
}

FileTextReader

package homework;

import java.io.IOException;
import java.util.Collection;
import java.util.List;
import java.util.Set;


public interface FileTextReader{
   public String readText(String path) throws IOException;

   * @throws IOException Thrown if any type of I/O exception occurs while writing to the file

public Set getAllLines(String path) throws IOException;
   * @throws IOException Thrown if any type of I/O exception occurs while writing to the file
public String getLastLine(String path) throws IOException;
}

FileTextWriter

package homework;

import java.io.IOException;


public interface FileTextWriter {
   * @throws IOException Thrown if any type of I/O exception occurs while writing to the file
   * @throws IllegalArgumentException if the specified string is null or empty (Meaning contains no characters or only white space)
   public void writeToFile(String string, String path) throws IOException, IllegalArgumentException;
}

We need to create that two classes.

In: Computer Science

what is the Symbolic Learning? what is advantage and disadvantage for Symbolic Learning? and what is...

what is the Symbolic Learning? what is advantage and disadvantage for Symbolic Learning? and what is advantage and disadvantage for Symbolic Learning in python? where we can use it? why we use it ? provide abstract and conclusion on symbolic learning? and provide three example on symbolic learning in Python.

In: Computer Science

write a Case study about Metro Dubai. Include the sustainable / eco-friendly transportation system. Report must...

write a Case study about Metro Dubai.

Include the sustainable / eco-friendly transportation system.

Report must include:

Abstract, Introduction and objectives.

History and project details.

Impact of the sustainable / Eco-friendly approach ( advantages and disadvantages )

Conclusion and your opinion on such practice.

In: Civil Engineering

I am about to start my undergraduate thesis, I need an interesting topic related to business...

I am about to start my undergraduate thesis, I need an interesting topic related to business Administration. I would like to have any recommendation, preferably something with Marketing, Describe how the content and abstract would be. And how will be the research method to accomplish?

In: Economics

#3 A collection represents a group of objects, known as its elements. Some collections allow duplicate...

#3 A collection represents a group of objects, known as its elements. Some collections allow duplicate elements and others do not. Some are ordered and others unordered. Create an Interface MyCollection which is maximum general (abstract) collection possible. (java oop)-> laboratory work

In: Computer Science