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}