1 package org.argeo.people; 2 3 import javax.jcr.Node; 4 import javax.jcr.RepositoryException; 5 6 /** 7 * Provides method interfaces to manage persons and organisations in a people 8 * repository. Implementing applications should extend and/or override the 9 * canonical implementation in order to provide business specific behaviours. 10 * 11 * The correct instance of this interface is usually acquired through the 12 * peopleService. 13 * */ 14 public interface PersonService { 15 16 /** Simply returns the display name of the given person or organisation */ 17 public String getDefaultDisplayName(Node person); 18 19 /** 20 * Try to save and optionally commit a person or an organisation after applying 21 * context specific rules and special behaviors (typically cache updates). 22 * 23 * @param entity 24 * @param commit 25 * also commit the corresponding object 26 * @throws PeopleException 27 * If one a the rule defined for this type is not respected. Use 28 * getMessage to display to the user if needed 29 */ 30 public Node saveEntity(Node entity, boolean commit) throws PeopleException, RepositoryException; 31 32 /** 33 * 34 * Creates or update a job of a person in an organisation 35 * 36 * @param oldJob 37 * null if creation 38 * @param person 39 * cannot be null 40 * @param organisation 41 * cannot be null 42 * @param position 43 * can be null 44 * @param department 45 * can be null 46 * @param isPrimary 47 * pass false by default 48 * @return 49 */ 50 public Node createOrUpdateJob(Node oldJob, Node person, Node organisation, 51 String position, String department, boolean isPrimary); 52 53 }