Skip to content

Commit

Permalink
PS-40584: Adding ClientCorporationRateAgreementCard and JobCode entit…
Browse files Browse the repository at this point in the history
…y models. (#446)

* PS-40584: Adding ClientCorporationRateAgreementCard and JobCode entity models.

* PS-40584: Fixing compilation errors with inheritance

* PS-40584: Adding ClientCorporationRateAgreementCard and JobCode to BullhornEntityInfo

* PS-40584: Adding test data. Fixes necessary for test passing

* PS-40584: Adding delombok plugin to fix javadoc errors

* PS-40584: Abstracting RestOneToManySerializer to support any generic argument. Adding that to ClientCorporationRateAgreementCard entities

* PS-40584: Removing now unnecessary methods

* PS-40584: Removing wrong RestOneToManySerializer usage

---------

Co-authored-by: Trevor Swartz <[email protected]>
  • Loading branch information
scriptom and taswartz authored Jan 25, 2024
1 parent 63d279f commit 135366b
Show file tree
Hide file tree
Showing 29 changed files with 15,270 additions and 8 deletions.
47 changes: 46 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

<groupId>com.bullhorn</groupId>
<artifactId>sdk-rest</artifactId>
<version>2.3.0</version>
<version>2.3.1</version>
<packaging>jar</packaging>

<name>Bullhorn REST SDK</name>
Expand Down Expand Up @@ -44,6 +44,7 @@
<coveralls-version>4.2.0</coveralls-version>
<jacoco-version>0.8.8</jacoco-version>
<maven.compiler.release>17</maven.compiler.release>
<lombok.version>1.18.26</lombok.version>
</properties>

<dependencies>
Expand Down Expand Up @@ -229,6 +230,12 @@
<artifactId>jakarta.xml.bind-api</artifactId>
<version>2.3.2</version>
</dependency>

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
</dependencies>

<distributionManagement>
Expand Down Expand Up @@ -288,7 +295,20 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>

<compilerId>groovy-eclipse-compiler</compilerId>
<compilerArguments>
<javaAgentClass>lombok.launch.Agent</javaAgentClass>
</compilerArguments>
<!-- Without this Lombok compilation fails -->
<fork>true</fork>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
<executions>
<execution>
Expand Down Expand Up @@ -327,6 +347,11 @@
<artifactId>groovy-eclipse-batch</artifactId>
<version>3.0.9-03</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
Expand Down Expand Up @@ -368,10 +393,30 @@
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-maven-plugin</artifactId>
<version>1.18.20.0</version>
<configuration>
<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
<addOutputDirectory>false</addOutputDirectory>
</configuration>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>delombok</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.3</version>
<configuration>
<sourcepath>${project.build.directory}/generated-sources/delombok</sourcepath>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,20 @@
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;

public class RestOneToManySerializer extends JsonSerializer<OneToMany<CustomObjectInstance>> {
public class RestOneToManySerializer extends JsonSerializer<OneToMany<?>> {

public RestOneToManySerializer() {
}

@Override
public void serialize(OneToMany<CustomObjectInstance> value, JsonGenerator jgen, SerializerProvider provider)
public void serialize(OneToMany<?> value, JsonGenerator jgen, SerializerProvider provider)
throws IOException, JsonProcessingException {
jgen.writeStartArray();
for(CustomObjectInstance customObjectInstance : value.getData()) {
jgen.writeObject(customObjectInstance);

for(Object object : value.getData()) {
jgen.writeObject(object);
}

jgen.writeEndArray();
}

Expand Down
13 changes: 13 additions & 0 deletions src/main/java/com/bullhornsdk/data/api/mock/MockDataLoader.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import com.bullhornsdk.data.model.entity.core.onboarding365.forms.LocalTaxForm
import com.bullhornsdk.data.model.entity.core.onboarding365.forms.StateTaxForm
import com.bullhornsdk.data.model.entity.core.paybill.BillingProfile
import com.bullhornsdk.data.model.entity.core.paybill.CanvasReport
import com.bullhornsdk.data.model.entity.core.paybill.JobCode
import com.bullhornsdk.data.model.entity.core.paybill.Location
import com.bullhornsdk.data.model.entity.core.paybill.charge.BillableCharge
import com.bullhornsdk.data.model.entity.core.paybill.charge.PayExportBatch
Expand Down Expand Up @@ -572,6 +573,12 @@ public class MockDataLoader {
entityFiles.put(UnbilledRevenueDistribution.class, "paybill/unbilledrevenuedistribution-data.txt");
entityFiles.put(UnbilledRevenueDistributionBatch.class, "paybill/unbilledrevenuedistributionbatch-data.txt");
entityFiles.put(UnbilledRevenueGeneralLedgerExportStatusLookup.class, "paybill/unbilledrevenuegeneralledgerexportstatuslookup-data.txt");
entityFiles.put(JobCode.class, "paybill/jobcode-data.txt");

entityFiles.put(ClientCorporationRateAgreementCard.class, "paybill/rate/clientcorporationrateagreementcard-data.txt");
entityFiles.put(ClientCorporationRateAgreementCardLine.class, "paybill/rate/clientcorporationrateagreementcardline-data.txt");
entityFiles.put(ClientCorporationRateAgreementCardLineGroup.class, "paybill/rate/clientcorporationrateagreementcardlinegroup-data.txt");
entityFiles.put(ClientCorporationRateAgreementCardVersion.class, "paybill/rate/clientcorporationrateagreementcardversion-data.txt");

entityFiles.put(CandidateCertificationRequirement.class, "candidatecertificationrequirement-data.txt");
entityFiles.put(CertificationRequirement.class, "certificationrequirement-data.txt");
Expand Down Expand Up @@ -778,12 +785,18 @@ public class MockDataLoader {
entityMetaFiles.put(JobOrderRateCardLine.class, "meta/paybill/rate/joborderratecardline-meta-data.txt");
entityMetaFiles.put(JobOrderRateCardLineGroup.class, "meta/paybill/rate/joborderratecardlinegroup-meta-data.txt");
entityMetaFiles.put(JobOrderRateCardVersion.class, "meta/paybill/rate/joborderratecardversion-meta-data.txt");
entityMetaFiles.put(JobCode.class, "meta/paybill/jobcode-meta-data.txt");

entityMetaFiles.put(PlacementRateCard.class, "meta/paybill/rate/placementratecard-meta-data.txt");
entityMetaFiles.put(PlacementRateCardLine.class, "meta/paybill/rate/placementratecardline-meta-data.txt");
entityMetaFiles.put(PlacementRateCardLineGroup.class, "meta/paybill/rate/placementratecardlinegroup-meta-data.txt");
entityMetaFiles.put(PlacementRateCardVersion.class, "meta/paybill/rate/placementratecardversion-meta-data.txt");

entityMetaFiles.put(ClientCorporationRateAgreementCard.class, "meta/paybill/rate/clientcorporationrateagreementcard-meta-data.txt");
entityMetaFiles.put(ClientCorporationRateAgreementCardLine.class, "meta/paybill/rate/clientcorporationrateagreementcardline-meta-data.txt");
entityMetaFiles.put(ClientCorporationRateAgreementCardLineGroup.class, "meta/paybill/rate/clientcorporationrateagreementcardlinegroup-meta-data.txt");
entityMetaFiles.put(ClientCorporationRateAgreementCardVersion.class, "meta/paybill/rate/clientcorporationrateagreementcardversion-meta-data.txt");

entityMetaFiles.put(PlacementTimeAndExpense.class, "meta/placementtimeandexpense-meta-data.txt");

entityMetaFiles.put(BillMasterDiscountRate.class, "meta/billmasterdiscountrate-meta-data.txt");
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
package com.bullhornsdk.data.model.entity.core.paybill;

import com.bullhornsdk.data.api.helper.json.DynamicNullValueFilter;
import com.bullhornsdk.data.model.entity.core.standard.BusinessSector;
import com.bullhornsdk.data.model.entity.core.standard.Category;
import com.bullhornsdk.data.model.entity.core.standard.CorporateUser;
import com.bullhornsdk.data.model.entity.core.standard.CorporationDepartment;
import com.bullhornsdk.data.model.entity.core.type.*;
import com.bullhornsdk.data.model.entity.embedded.OneToMany;
import com.fasterxml.jackson.annotation.JsonFilter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import org.joda.time.DateTime;

import java.math.BigDecimal;

@Data
@JsonFilter(DynamicNullValueFilter.FILTER_NAME)
@EqualsAndHashCode(callSuper = false)
public class JobCode extends AbstractEntity implements QueryEntity, UpdateEntity, CreateEntity, EditHistoryEntity, DateLastModifiedEntity, SoftDeleteEntity {
Integer id;
OneToMany<BusinessSector> businessSectors;
OneToMany<Category> categories;
DateTime customDate1;
DateTime customDate2;
DateTime customDate3;
BigDecimal customFloat1;
BigDecimal customFloat2;
BigDecimal customFloat3;
Integer customInt1;
Integer customInt2;
Integer customInt3;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customText1;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customText2;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customText3;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customText4;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customText5;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customText6;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customText7;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customText8;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customText9;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customText10;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customText11;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customText12;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customText13;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customText14;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customText15;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customText16;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customText17;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customText18;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customText19;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customText20;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customTextBlock1;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customTextBlock2;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customTextBlock3;
DateTime dateAdded;
DateTime dateLastModified;
OneToMany<CorporationDepartment> corporationDepartments;
String description;
String externalID;
Boolean isDeleted;
CorporateUser owner;
String status;
String title;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
package com.bullhornsdk.data.model.entity.core.paybill.rate;

import com.bullhornsdk.data.api.helper.RestOneToManySerializer;
import com.bullhornsdk.data.api.helper.json.DynamicNullValueFilter;
import com.bullhornsdk.data.model.entity.core.paybill.JobCode;
import com.bullhornsdk.data.model.entity.core.paybill.Location;
import com.bullhornsdk.data.model.entity.core.paybill.optionslookup.SimplifiedOptionsLookup;
import com.bullhornsdk.data.model.entity.core.standard.Category;
import com.bullhornsdk.data.model.entity.core.standard.ClientCorporation;
import com.bullhornsdk.data.model.entity.core.standard.Specialty;
import com.bullhornsdk.data.model.entity.core.type.*;
import com.bullhornsdk.data.model.entity.embedded.OneToMany;
import com.fasterxml.jackson.annotation.JsonFilter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import org.joda.time.DateTime;

import java.math.BigDecimal;
import java.math.BigInteger;

@Data
@JsonFilter(DynamicNullValueFilter.FILTER_NAME)
@EqualsAndHashCode(callSuper = false)
public class ClientCorporationRateAgreementCard extends AbstractEntity implements QueryEntity, UpdateEntity, CreateEntity, EditHistoryEntity, DateLastModifiedEntity,
SoftDeleteEntity, EffectiveDateEntity, AssociationEntity {
Integer id;
OneToMany<Category> categories;
ClientCorporation clientCorporation;
@JsonSerialize(using = RestOneToManySerializer.class)
OneToMany<ClientCorporationRateAgreementCardLineGroup> clientCorporationRateAgreementCardLineGroups;
DateTime customDate1;
DateTime customDate2;
DateTime customDate3;
BigDecimal customFloat1;
BigDecimal customFloat2;
BigDecimal customFloat3;
BigInteger customInt1;
BigInteger customInt2;
BigInteger customInt3;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customText1;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customText2;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customText3;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customText4;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customText5;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customText6;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customText7;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customText8;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customText9;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String customText10;
DateTime dateAdded;
DateTime dateLastModified;
String effectiveDate;
String effectiveEndDate;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String employmentTypes;
Boolean isDeleted;
OneToMany<JobCode> jobCodes;
OneToMany<Location> locations;
String name;
String rootExternalID;
String rootMigrateGUID;
OneToMany<Specialty> specialties;
@JsonIgnore
@Getter(onMethod_ = {@JsonProperty})
String states;
SimplifiedOptionsLookup statusLookup;
Integer versionID;
OneToMany<ClientCorporationRateAgreementCardVersion> versions;
}
Loading

0 comments on commit 135366b

Please sign in to comment.