001package edu.pdx.cs.joy.grader;
002
003import com.google.common.annotations.VisibleForTesting;
004import jakarta.mail.MessagingException;
005
006import java.io.File;
007import java.io.IOException;
008import java.time.LocalDateTime;
009import java.util.Set;
010
011public class SubmitAndroidProject extends Submit {
012
013  private SubmitAndroidProject() {
014    this(LocalDateTime::now);
015  }
016
017  @VisibleForTesting
018  SubmitAndroidProject(CurrentTimeProvider currentTimeProvider) {
019    super(currentTimeProvider);
020  }
021
022  @Override
023  protected boolean canBeSubmitted(File file) {
024    return fileExists(file) && getZipEntryNameFor(file) != null;
025  }
026
027  @Override
028  protected void warnIfMainProjectClassIsNotSubmitted(Set<File> sourceFiles) {
029
030  }
031
032  @Override
033  protected void warnIfTestClassesAreNotSubmitted(Set<File> sourceFiles) {
034
035  }
036
037  @Override
038  protected String getZipEntryNameFor(File file) {
039    return AndroidZipFixer.getFixedEntryName(file.getAbsolutePath());
040  }
041
042  public static void main(String[] args) throws IOException, MessagingException {
043    SubmitAndroidProject submit = new SubmitAndroidProject();
044    submit.parseCommandLineAndSubmit(args);
045  }
046
047}