public PersonState update(Person person, StateTransitionOption... options) { if (getLink(Rel.CONCLUSIONS) != null && (person.getNames() != null || person.getFacts() != null || person.getGender() != null)) { updateConclusions(person); } if (getLink(Rel.EVIDENCE_REFERENCES) != null && person.getEvidence() != null) { updateEvidenceReferences(person); } if (getLink(Rel.MEDIA_REFERENCES) != null && person.getMedia() != null) { updateMediaReferences(person); } if (getLink(Rel.SOURCE_REFERENCES) != null && person.getSources() != null) { updateSourceReferences(person); } if (getLink(Rel.NOTES) != null && person.getNotes() != null) { updateNotes(person); } Gedcomx gx = new Gedcomx(); gx.setPersons(Arrays.asList(person)); ClientRequest request = createAuthenticatedGedcomxRequest().entity(gx).build(getSelfUri(), HttpMethod.POST); return this.stateFactory.newPersonState(request, invoke(request, options), this.accessToken); }