Questions
Explain these two Characteristics of sociology in 300 words: 1- The level of inquiry is general...

Explain these two Characteristics of sociology in 300 words:
1- The level of inquiry is general and abstract – we see the general in the particular-- it is not about the features of a certain concrete situation or about the uniqueness of a specific individual.

2- The answers focus on an individual's involvement in group life

In: Economics

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

Mention three (3) uses of business technology which could be used to manage your plan and...

Mention three (3) uses of business technology which could be used to manage your plan and schedule. this is regrding about nurses

In: Economics

5. List and explain the stages of grief. 6. Mention and explain, what are the factors...

5. List and explain the stages of grief.

6. Mention and explain, what are the factors that affect the answers of
people in the face of loss and grief?

In: Nursing

Explain in paragraph format Explain franchising with examples. Mention the advantages and disadvantages associated with franchising....

Explain in paragraph format

Explain franchising with examples. Mention the advantages and disadvantages associated with franchising. How is franchising different from licensing?

In: Accounting