Improve XJC-binding (Issue 73) #74

Merged
ansv7779 merged 9 commits from 73-improve-xjc-binding into develop 2025-01-16 13:55:39 +01:00
7 changed files with 114 additions and 26 deletions
Showing only changes of commit 85ac5976db - Show all commits

View File

@ -6,7 +6,27 @@ import java.util.Date;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import se.su.dsv.scipro.io.dto.*;
import se.su.dsv.scipro.io.dto.AddThesisAuthor;
import se.su.dsv.scipro.io.dto.AuthorProjectParticipant;
import se.su.dsv.scipro.io.dto.CourseRegistration;
import se.su.dsv.scipro.io.dto.Employee;
import se.su.dsv.scipro.io.dto.Person;
import se.su.dsv.scipro.io.dto.Program;
import se.su.dsv.scipro.io.dto.ProgramAdmission;
import se.su.dsv.scipro.io.dto.ProjectParticipant;
import se.su.dsv.scipro.io.dto.PublishingConsent;
import se.su.dsv.scipro.io.dto.PublishingConsentLevel;
import se.su.dsv.scipro.io.dto.ResearchArea;
import se.su.dsv.scipro.io.dto.ResearchSubject;
import se.su.dsv.scipro.io.dto.StudentProgramAdmission;
import se.su.dsv.scipro.io.dto.Thesis;
import se.su.dsv.scipro.io.dto.ThesisPublication;
import se.su.dsv.scipro.io.dto.ThesisRejection;
import se.su.dsv.scipro.io.dto.ThesisToBeCreated;
import se.su.dsv.scipro.io.dto.ThesisToBeUpdated;
import se.su.dsv.scipro.io.dto.Unit;
import se.su.dsv.scipro.io.dto.UserName;
public interface DaisyAPI {
Set<ProjectParticipant> getContributors(Integer projectId);

View File

@ -16,9 +16,34 @@ import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.Response;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import org.glassfish.jersey.client.authentication.HttpAuthenticationFeature;
import se.su.dsv.scipro.io.dto.*;
import se.su.dsv.scipro.io.dto.AddThesisAuthor;
import se.su.dsv.scipro.io.dto.AuthorProjectParticipant;
import se.su.dsv.scipro.io.dto.CourseRegistration;
import se.su.dsv.scipro.io.dto.Employee;
import se.su.dsv.scipro.io.dto.ObjectFactory;
import se.su.dsv.scipro.io.dto.Person;
import se.su.dsv.scipro.io.dto.Program;
import se.su.dsv.scipro.io.dto.ProgramAdmission;
import se.su.dsv.scipro.io.dto.ProjectParticipant;
import se.su.dsv.scipro.io.dto.PublishingConsent;
import se.su.dsv.scipro.io.dto.PublishingConsentLevel;
import se.su.dsv.scipro.io.dto.ResearchArea;
import se.su.dsv.scipro.io.dto.ResearchSubject;
import se.su.dsv.scipro.io.dto.StudentProgramAdmission;
import se.su.dsv.scipro.io.dto.Thesis;
import se.su.dsv.scipro.io.dto.ThesisPublication;
import se.su.dsv.scipro.io.dto.ThesisRejection;
import se.su.dsv.scipro.io.dto.ThesisToBeCreated;
import se.su.dsv.scipro.io.dto.ThesisToBeUpdated;
import se.su.dsv.scipro.io.dto.Unit;
import se.su.dsv.scipro.io.dto.UserName;
public class DaisyAPIImpl implements DaisyAPI {
@ -364,8 +389,7 @@ public class DaisyAPIImpl implements DaisyAPI {
@Override
public OrganisationalUnit orgunit(final int unitId) {
return () ->
target()
.path("orgunit")
units()
.path(Integer.toString(unitId))
.path("researchAreas")
.request(MediaType.APPLICATION_XML_TYPE)

View File

@ -1,7 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema version="1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="addThesisAuthor" type="addThesisAuthor"/>
<xs:element name="courseRegistrationForCourse" type="courseRegistrationGet"/>
@ -62,6 +60,7 @@
<xs:element name="degree" type="degree"/>
<xs:element name="programAdmission" type="programAdmission"/>
<xs:element name="student" type="student"/>
<xs:complexType name="addThesisAuthor">
<xs:sequence>
<xs:element name="student" type="AddThesisAuthorStudent" minOccurs="1">

View File

@ -4,22 +4,43 @@ import jakarta.inject.Inject;
import jakarta.inject.Named;
import jakarta.transaction.Transactional;
import jakarta.ws.rs.core.Response;
import java.util.*;
import java.util.stream.Stream;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import se.su.dsv.scipro.daisyExternal.ImporterTransactions;
import se.su.dsv.scipro.daisyExternal.http.DaisyAPI;
import se.su.dsv.scipro.io.dto.*;
import se.su.dsv.scipro.io.dto.AuthorProjectParticipant;
import se.su.dsv.scipro.io.dto.Course;
import se.su.dsv.scipro.io.dto.CourseRegistration;
import se.su.dsv.scipro.io.dto.EducationalLevel;
import se.su.dsv.scipro.io.dto.Person;
import se.su.dsv.scipro.io.dto.ProgramType;
import se.su.dsv.scipro.io.dto.ResearchArea;
import se.su.dsv.scipro.io.dto.StudentProgramAdmission;
import se.su.dsv.scipro.io.dto.Thesis;
import se.su.dsv.scipro.io.dto.UserName;
import se.su.dsv.scipro.match.ProgramService;
import se.su.dsv.scipro.project.Project;
import se.su.dsv.scipro.project.ProjectService;
import se.su.dsv.scipro.security.auth.roles.Roles;
import se.su.dsv.scipro.system.*;
import se.su.dsv.scipro.system.DegreeType;
import se.su.dsv.scipro.system.Language;
import se.su.dsv.scipro.system.Program;
import se.su.dsv.scipro.system.ResearchAreaService;
import se.su.dsv.scipro.system.User;
import se.su.dsv.scipro.system.UserNameService;
import se.su.dsv.scipro.system.UserService;
import se.su.dsv.scipro.system.Username;
import se.su.dsv.scipro.util.Pair;
import java.util.Comparator;
import java.util.EnumSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Stream;
@Named
public class ImporterTransactionsImpl implements ImporterTransactions {

View File

@ -1,19 +1,8 @@
package se.su.dsv.scipro.integration.daisy.workers;
import static com.querydsl.core.types.dsl.Expressions.anyOf;
import jakarta.inject.Inject;
import jakarta.inject.Named;
import jakarta.ws.rs.core.Response;
import java.time.Instant;
import java.time.Period;
import java.util.Calendar;
import java.util.Date;
import java.util.Optional;
import java.util.Set;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Stream;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import se.su.dsv.scipro.daisyExternal.http.DaisyAPI;
@ -23,7 +12,15 @@ import se.su.dsv.scipro.finalseminar.FinalSeminarService;
import se.su.dsv.scipro.finalthesis.FinalThesis;
import se.su.dsv.scipro.finalthesis.FinalThesisService;
import se.su.dsv.scipro.io.ExternalExporter;
import se.su.dsv.scipro.io.dto.*;
import se.su.dsv.scipro.io.dto.AuthorProjectParticipant;
import se.su.dsv.scipro.io.dto.Person;
import se.su.dsv.scipro.io.dto.ProjectParticipant;
import se.su.dsv.scipro.io.dto.ResearchAreaWithID;
import se.su.dsv.scipro.io.dto.ResearchAreas;
import se.su.dsv.scipro.io.dto.Role;
import se.su.dsv.scipro.io.dto.Thesis;
import se.su.dsv.scipro.io.dto.ThesisToBeUpdated;
import se.su.dsv.scipro.io.dto.UnitWithID;
import se.su.dsv.scipro.io.exceptions.ExternalExportException;
import se.su.dsv.scipro.io.facade.ExporterFacade;
import se.su.dsv.scipro.project.Project;
@ -35,6 +32,18 @@ import se.su.dsv.scipro.system.DegreeType;
import se.su.dsv.scipro.system.User;
import se.su.dsv.scipro.workerthreads.AbstractWorker;
import java.time.Instant;
import java.time.Period;
import java.util.Calendar;
import java.util.Date;
import java.util.Optional;
import java.util.Set;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Stream;
import static com.querydsl.core.types.dsl.Expressions.anyOf;
@Named
public class ProjectExporter extends AbstractWorker {

View File

@ -9,7 +9,17 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import se.su.dsv.scipro.daisyExternal.http.DaisyAPI;
import se.su.dsv.scipro.io.ExternalExporter;
import se.su.dsv.scipro.io.dto.*;
import se.su.dsv.scipro.io.dto.AddThesisAuthor;
import se.su.dsv.scipro.io.dto.AddThesisAuthorCourse;
import se.su.dsv.scipro.io.dto.AddThesisAuthorStudent;
import se.su.dsv.scipro.io.dto.EducationalLevel;
import se.su.dsv.scipro.io.dto.Person;
import se.su.dsv.scipro.io.dto.ProjectParticipant;
import se.su.dsv.scipro.io.dto.ResearchAreaWithID;
import se.su.dsv.scipro.io.dto.ResearchAreas;
import se.su.dsv.scipro.io.dto.Role;
import se.su.dsv.scipro.io.dto.ThesisToBeCreated;
import se.su.dsv.scipro.io.dto.UnitWithID;
import se.su.dsv.scipro.io.exceptions.ExternalExportException;
import se.su.dsv.scipro.project.Project;
import se.su.dsv.scipro.reusable.SciProUtilities;

View File

@ -18,7 +18,12 @@ import se.su.dsv.scipro.daisyExternal.http.DaisyAPI;
import se.su.dsv.scipro.finalseminar.FinalSeminarService;
import se.su.dsv.scipro.finalthesis.FinalThesisService;
import se.su.dsv.scipro.io.ExternalExporter;
import se.su.dsv.scipro.io.dto.*;
import se.su.dsv.scipro.io.dto.AuthorProjectParticipant;
import se.su.dsv.scipro.io.dto.Person;
import se.su.dsv.scipro.io.dto.ProjectParticipant;
import se.su.dsv.scipro.io.dto.Role;
import se.su.dsv.scipro.io.dto.Thesis;
import se.su.dsv.scipro.io.dto.ThesisToBeUpdated;
import se.su.dsv.scipro.io.facade.ExporterFacade;
import se.su.dsv.scipro.project.Project;
import se.su.dsv.scipro.project.ProjectRepo;