From c63babb96d2f0b91e07b0a54c4e267240c3b4f68 Mon Sep 17 00:00:00 2001 From: Anita Wu Date: Wed, 30 Mar 2016 10:29:41 -0700 Subject: [PATCH 1/4] return certification as list --- .../model/entity/core/standard/CandidateEducation.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/bullhornsdk/data/model/entity/core/standard/CandidateEducation.java b/src/main/java/com/bullhornsdk/data/model/entity/core/standard/CandidateEducation.java index ece3e8c7..61086b49 100644 --- a/src/main/java/com/bullhornsdk/data/model/entity/core/standard/CandidateEducation.java +++ b/src/main/java/com/bullhornsdk/data/model/entity/core/standard/CandidateEducation.java @@ -1,6 +1,7 @@ package com.bullhornsdk.data.model.entity.core.standard; import java.math.BigDecimal; +import java.util.List; import javax.validation.constraints.Size; @@ -31,7 +32,7 @@ public class CandidateEducation extends AbstractEntity implements QueryEntity, U private Candidate candidate; @JsonIgnore - private String certification; + private List certification; @JsonIgnore @Size(max = 40) @@ -149,12 +150,12 @@ public void setCandidate(Candidate candidate) { } @JsonProperty("certification") - public String getCertification() { + public List getCertification() { return certification; } @JsonProperty("certification") - public void setCertification(String certification) { + public void setCertification(List certification) { this.certification = certification; } From 9e5f8b4a696b96e7c403d271574a65158ce74bd7 Mon Sep 17 00:00:00 2001 From: Anita Wu Date: Wed, 6 Apr 2016 00:38:52 -0700 Subject: [PATCH 2/4] BH-38745: adding appointment associations --- .../association/AssociationFactory.java | 14 +++++ .../standard/AppointmentAssociations.java | 61 +++++++++++++++++++ .../entity/core/standard/Appointment.java | 24 ++++++-- .../core/standard/AppointmentAttendee.java | 3 +- 4 files changed, 95 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/bullhornsdk/data/model/entity/association/standard/AppointmentAssociations.java diff --git a/src/main/java/com/bullhornsdk/data/model/entity/association/AssociationFactory.java b/src/main/java/com/bullhornsdk/data/model/entity/association/AssociationFactory.java index 3818301b..81e50caf 100644 --- a/src/main/java/com/bullhornsdk/data/model/entity/association/AssociationFactory.java +++ b/src/main/java/com/bullhornsdk/data/model/entity/association/AssociationFactory.java @@ -25,6 +25,7 @@ public class AssociationFactory { private static final OpportunityAssociations opportunityAssociations = OpportunityAssociations.getInstance(); private static final LeadAssociations leadAssociations = LeadAssociations.getInstance(); private static final TearsheetAssociations tearsheetAssociations = TearsheetAssociations.getInstance(); + private static final AppointmentAssociations appointmentAssociations = AppointmentAssociations.getInstance(); /** * Returns the AssociationField for the passed in entity type (Candiate, ClientContact etc.), with the association name of the @@ -91,6 +92,10 @@ private static EntityAssociations getEntityAsso return (EntityAssociations) tearsheetAssociations; } + if (type == Appointment.class) { + return (EntityAssociations) appointmentAssociations; + } + return null; } @@ -185,4 +190,13 @@ public static TearsheetAssociations tearsheetAssociations() { return tearsheetAssociations; } + /** + * Returns the associations for Appointment + * + * @return + */ + public static AppointmentAssociations appointmentAssociations() { + return appointmentAssociations; + } + } diff --git a/src/main/java/com/bullhornsdk/data/model/entity/association/standard/AppointmentAssociations.java b/src/main/java/com/bullhornsdk/data/model/entity/association/standard/AppointmentAssociations.java new file mode 100644 index 00000000..a1b9c922 --- /dev/null +++ b/src/main/java/com/bullhornsdk/data/model/entity/association/standard/AppointmentAssociations.java @@ -0,0 +1,61 @@ +package com.bullhornsdk.data.model.entity.association.standard; + + +import java.util.ArrayList; +import java.util.List; + +import com.bullhornsdk.data.model.entity.association.AssociationField; +import com.bullhornsdk.data.model.entity.association.EntityAssociations; +import com.bullhornsdk.data.model.entity.core.standard.Appointment; +import com.bullhornsdk.data.model.entity.core.standard.AppointmentAttendee; +import com.bullhornsdk.data.model.entity.core.type.BullhornEntity; + +/** + * Factory class for Appointment Associations. + * + * @author Anita Wu + * + */ +public final class AppointmentAssociations implements EntityAssociations { + + private final AssociationField appointmentAttendees = instantiateAssociationField("appointmentAttendees", AppointmentAttendee.class); + private List> allAssociations; + private static final AppointmentAssociations INSTANCE = new AppointmentAssociations(); + + private AppointmentAssociations() { + super(); + } + + public static AppointmentAssociations getInstance() { + return INSTANCE; + } + + public AssociationField appointmentAttendees() { + return appointmentAttendees; + } + + private AssociationField instantiateAssociationField(String associationName, Class associationType) { + return new StandardAssociationField(associationName, associationType); + } + + @Override + public List> allAssociations() { + if (allAssociations == null) { + allAssociations = new ArrayList>(); + allAssociations.add(appointmentAttendees()); + } + return allAssociations; + } + + @Override + public AssociationField getAssociation(String associationName) { + for (AssociationField associationField : allAssociations()) { + if (associationName.equalsIgnoreCase(associationField.getAssociationFieldName())) { + return associationField; + } + } + + throw new IllegalArgumentException("There is no association on entity Appointment called: " + associationName); + } + +} diff --git a/src/main/java/com/bullhornsdk/data/model/entity/core/standard/Appointment.java b/src/main/java/com/bullhornsdk/data/model/entity/core/standard/Appointment.java index 781dc0cb..f4d2e749 100644 --- a/src/main/java/com/bullhornsdk/data/model/entity/core/standard/Appointment.java +++ b/src/main/java/com/bullhornsdk/data/model/entity/core/standard/Appointment.java @@ -1,14 +1,25 @@ package com.bullhornsdk.data.model.entity.core.standard; -import com.bullhornsdk.data.model.entity.core.type.*; +import javax.validation.constraints.Size; + +import org.joda.time.DateTime; + +import com.bullhornsdk.data.model.entity.core.type.AbstractEntity; +import com.bullhornsdk.data.model.entity.core.type.AssociationEntity; +import com.bullhornsdk.data.model.entity.core.type.CreateEntity; +import com.bullhornsdk.data.model.entity.core.type.DateLastModifiedEntity; +import com.bullhornsdk.data.model.entity.core.type.QueryEntity; +import com.bullhornsdk.data.model.entity.core.type.SoftDeleteEntity; +import com.bullhornsdk.data.model.entity.core.type.UpdateEntity; import com.bullhornsdk.data.model.entity.embedded.LinkedId; import com.bullhornsdk.data.model.entity.embedded.LinkedPerson; import com.bullhornsdk.data.model.entity.embedded.OneToManyLinkedId; import com.bullhornsdk.data.validation.BullhornUUID; -import com.fasterxml.jackson.annotation.*; -import org.joda.time.DateTime; - -import javax.validation.constraints.Size; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.annotation.JsonRootName; @JsonInclude(JsonInclude.Include.NON_NULL) @JsonRootName(value = "data") @@ -17,7 +28,8 @@ "isPrivate", "jobOrder", "lead", "location", "migrateGUID", "notificationMinutes", "opportunity", "owner", "parentAppointment", "placement", "recurrenceDayBits", "recurrenceFrequency", "recurrenceMax", "recurrenceMonthBits", "recurrenceStyle", "recurrenceType", "showTimeAs", "subject", "timeZoneID", "type" }) -public class Appointment extends AbstractEntity implements QueryEntity, UpdateEntity, CreateEntity, SoftDeleteEntity, DateLastModifiedEntity { +public class Appointment extends AbstractEntity implements QueryEntity, UpdateEntity, CreateEntity, SoftDeleteEntity, DateLastModifiedEntity, + AssociationEntity { private Integer id; diff --git a/src/main/java/com/bullhornsdk/data/model/entity/core/standard/AppointmentAttendee.java b/src/main/java/com/bullhornsdk/data/model/entity/core/standard/AppointmentAttendee.java index dc64b89d..4ef7aba1 100644 --- a/src/main/java/com/bullhornsdk/data/model/entity/core/standard/AppointmentAttendee.java +++ b/src/main/java/com/bullhornsdk/data/model/entity/core/standard/AppointmentAttendee.java @@ -1,6 +1,7 @@ package com.bullhornsdk.data.model.entity.core.standard; import com.bullhornsdk.data.model.entity.core.type.AbstractEntity; +import com.bullhornsdk.data.model.entity.core.type.AssociationEntity; import com.bullhornsdk.data.model.entity.core.type.CreateEntity; import com.bullhornsdk.data.model.entity.core.type.QueryEntity; import com.bullhornsdk.data.model.entity.core.type.UpdateEntity; @@ -14,7 +15,7 @@ @JsonInclude(JsonInclude.Include.NON_NULL) @JsonRootName(value = "data") @JsonPropertyOrder({ "id", "acceptanceStatus", "appointment", "attendee", "migrateGUID" }) -public class AppointmentAttendee extends AbstractEntity implements QueryEntity, UpdateEntity, CreateEntity { +public class AppointmentAttendee extends AbstractEntity implements QueryEntity, UpdateEntity, CreateEntity, AssociationEntity { private Integer id; From e5f30d5cf8a3001cb93661af761c530052880f00 Mon Sep 17 00:00:00 2001 From: Anita Wu Date: Wed, 6 Apr 2016 11:53:44 -0700 Subject: [PATCH 3/4] BH-39745: removing association code that isn't needed --- .../association/AssociationFactory.java | 14 ----- .../standard/AppointmentAssociations.java | 61 ------------------- .../core/standard/AppointmentAttendee.java | 3 +- 3 files changed, 1 insertion(+), 77 deletions(-) delete mode 100644 src/main/java/com/bullhornsdk/data/model/entity/association/standard/AppointmentAssociations.java diff --git a/src/main/java/com/bullhornsdk/data/model/entity/association/AssociationFactory.java b/src/main/java/com/bullhornsdk/data/model/entity/association/AssociationFactory.java index 81e50caf..3818301b 100644 --- a/src/main/java/com/bullhornsdk/data/model/entity/association/AssociationFactory.java +++ b/src/main/java/com/bullhornsdk/data/model/entity/association/AssociationFactory.java @@ -25,7 +25,6 @@ public class AssociationFactory { private static final OpportunityAssociations opportunityAssociations = OpportunityAssociations.getInstance(); private static final LeadAssociations leadAssociations = LeadAssociations.getInstance(); private static final TearsheetAssociations tearsheetAssociations = TearsheetAssociations.getInstance(); - private static final AppointmentAssociations appointmentAssociations = AppointmentAssociations.getInstance(); /** * Returns the AssociationField for the passed in entity type (Candiate, ClientContact etc.), with the association name of the @@ -92,10 +91,6 @@ private static EntityAssociations getEntityAsso return (EntityAssociations) tearsheetAssociations; } - if (type == Appointment.class) { - return (EntityAssociations) appointmentAssociations; - } - return null; } @@ -190,13 +185,4 @@ public static TearsheetAssociations tearsheetAssociations() { return tearsheetAssociations; } - /** - * Returns the associations for Appointment - * - * @return - */ - public static AppointmentAssociations appointmentAssociations() { - return appointmentAssociations; - } - } diff --git a/src/main/java/com/bullhornsdk/data/model/entity/association/standard/AppointmentAssociations.java b/src/main/java/com/bullhornsdk/data/model/entity/association/standard/AppointmentAssociations.java deleted file mode 100644 index a1b9c922..00000000 --- a/src/main/java/com/bullhornsdk/data/model/entity/association/standard/AppointmentAssociations.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.bullhornsdk.data.model.entity.association.standard; - - -import java.util.ArrayList; -import java.util.List; - -import com.bullhornsdk.data.model.entity.association.AssociationField; -import com.bullhornsdk.data.model.entity.association.EntityAssociations; -import com.bullhornsdk.data.model.entity.core.standard.Appointment; -import com.bullhornsdk.data.model.entity.core.standard.AppointmentAttendee; -import com.bullhornsdk.data.model.entity.core.type.BullhornEntity; - -/** - * Factory class for Appointment Associations. - * - * @author Anita Wu - * - */ -public final class AppointmentAssociations implements EntityAssociations { - - private final AssociationField appointmentAttendees = instantiateAssociationField("appointmentAttendees", AppointmentAttendee.class); - private List> allAssociations; - private static final AppointmentAssociations INSTANCE = new AppointmentAssociations(); - - private AppointmentAssociations() { - super(); - } - - public static AppointmentAssociations getInstance() { - return INSTANCE; - } - - public AssociationField appointmentAttendees() { - return appointmentAttendees; - } - - private AssociationField instantiateAssociationField(String associationName, Class associationType) { - return new StandardAssociationField(associationName, associationType); - } - - @Override - public List> allAssociations() { - if (allAssociations == null) { - allAssociations = new ArrayList>(); - allAssociations.add(appointmentAttendees()); - } - return allAssociations; - } - - @Override - public AssociationField getAssociation(String associationName) { - for (AssociationField associationField : allAssociations()) { - if (associationName.equalsIgnoreCase(associationField.getAssociationFieldName())) { - return associationField; - } - } - - throw new IllegalArgumentException("There is no association on entity Appointment called: " + associationName); - } - -} diff --git a/src/main/java/com/bullhornsdk/data/model/entity/core/standard/AppointmentAttendee.java b/src/main/java/com/bullhornsdk/data/model/entity/core/standard/AppointmentAttendee.java index 4ef7aba1..dc64b89d 100644 --- a/src/main/java/com/bullhornsdk/data/model/entity/core/standard/AppointmentAttendee.java +++ b/src/main/java/com/bullhornsdk/data/model/entity/core/standard/AppointmentAttendee.java @@ -1,7 +1,6 @@ package com.bullhornsdk.data.model.entity.core.standard; import com.bullhornsdk.data.model.entity.core.type.AbstractEntity; -import com.bullhornsdk.data.model.entity.core.type.AssociationEntity; import com.bullhornsdk.data.model.entity.core.type.CreateEntity; import com.bullhornsdk.data.model.entity.core.type.QueryEntity; import com.bullhornsdk.data.model.entity.core.type.UpdateEntity; @@ -15,7 +14,7 @@ @JsonInclude(JsonInclude.Include.NON_NULL) @JsonRootName(value = "data") @JsonPropertyOrder({ "id", "acceptanceStatus", "appointment", "attendee", "migrateGUID" }) -public class AppointmentAttendee extends AbstractEntity implements QueryEntity, UpdateEntity, CreateEntity, AssociationEntity { +public class AppointmentAttendee extends AbstractEntity implements QueryEntity, UpdateEntity, CreateEntity { private Integer id; From ba0060c072eca0f1026df2da3900fe496239c840 Mon Sep 17 00:00:00 2001 From: Anita Wu Date: Wed, 6 Apr 2016 12:03:42 -0700 Subject: [PATCH 4/4] BH-39745: removing association code that isn't needed --- .../data/model/entity/core/standard/Appointment.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/com/bullhornsdk/data/model/entity/core/standard/Appointment.java b/src/main/java/com/bullhornsdk/data/model/entity/core/standard/Appointment.java index f4d2e749..105b9125 100644 --- a/src/main/java/com/bullhornsdk/data/model/entity/core/standard/Appointment.java +++ b/src/main/java/com/bullhornsdk/data/model/entity/core/standard/Appointment.java @@ -28,8 +28,7 @@ "isPrivate", "jobOrder", "lead", "location", "migrateGUID", "notificationMinutes", "opportunity", "owner", "parentAppointment", "placement", "recurrenceDayBits", "recurrenceFrequency", "recurrenceMax", "recurrenceMonthBits", "recurrenceStyle", "recurrenceType", "showTimeAs", "subject", "timeZoneID", "type" }) -public class Appointment extends AbstractEntity implements QueryEntity, UpdateEntity, CreateEntity, SoftDeleteEntity, DateLastModifiedEntity, - AssociationEntity { +public class Appointment extends AbstractEntity implements QueryEntity, UpdateEntity, CreateEntity, SoftDeleteEntity, DateLastModifiedEntity { private Integer id;