public Result isValid() { if (!Strings.isValid(getSubject())) { return new Result("Must enter subject"); } if (!Strings.isValid(getBody())) { return new Result("Must enter body"); } if (workflows.isEmpty()) { return new Result("No workflows dropped"); } for (Artifact workflow : workflows) { if (!(workflow instanceof AbstractWorkflowArtifact)) { return new Result( "Only valid for Workflow Artifacts, not [%s]", workflow.getArtifactTypeName()); } } return Result.TrueResult; }