extensions/no.uib.cbu.base.magetabexport/trunk/src/main/java/no/uib/cbu/base/magetabexport/IDFCreator.java

Code
Comments
Other
Rev Date Author Line
1474 29 Nov 11 pawels 1 /*******************************************************************************
1474 29 Nov 11 pawels 2  * Copyright (c) 2011 The Norwegian Microarray Consortium.
1474 29 Nov 11 pawels 3  * All rights reserved. This program and the accompanying materials
1474 29 Nov 11 pawels 4  * are made available under the terms of the GNU Public License v3.0
1474 29 Nov 11 pawels 5  * which accompanies this distribution, and is available at
1474 29 Nov 11 pawels 6  * http://www.gnu.org/licenses/gpl-3.0.html
1474 29 Nov 11 pawels 7  * 
1474 29 Nov 11 pawels 8  * Contributors:
1474 29 Nov 11 pawels 9  *     The Norwegian Microarray Consortium - initial API and implementation
1474 29 Nov 11 pawels 10  ******************************************************************************/
1474 29 Nov 11 pawels 11 package no.uib.cbu.base.magetabexport;
1474 29 Nov 11 pawels 12
1474 29 Nov 11 pawels 13 import java.util.ArrayList;
1474 29 Nov 11 pawels 14 import java.util.List;
1474 29 Nov 11 pawels 15 import java.util.regex.Matcher;
1474 29 Nov 11 pawels 16 import java.util.regex.Pattern;
1474 29 Nov 11 pawels 17
1474 29 Nov 11 pawels 18 import net.sf.basedb.core.Experiment;
1474 29 Nov 11 pawels 19 import net.sf.basedb.core.User;
1474 29 Nov 11 pawels 20
1474 29 Nov 11 pawels 21 public class IDFCreator {
1474 29 Nov 11 pawels 22   
1474 29 Nov 11 pawels 23   private Experiment experiment;
1474 29 Nov 11 pawels 24   
1474 29 Nov 11 pawels 25   private List<String> protocolNames, protocolTypes, protocolDescriptions,
1474 29 Nov 11 pawels 26               protocolParameters,  protocolTermSrcRefs;
1474 29 Nov 11 pawels 27   private List<String> factorNames, factorTypes, factorSrcTerms;
1474 29 Nov 11 pawels 28   private List<String> termSrcNames, termSrcFiles, termSrcVersions;
1474 29 Nov 11 pawels 29
1474 29 Nov 11 pawels 30   
1474 29 Nov 11 pawels 31   /** MGED Ontology terms used in IDFCreator */ 
1474 29 Nov 11 pawels 32   private final String MGED_ONTOLOGY_TERM_INVESTIGATOR = "investigator";
1474 29 Nov 11 pawels 33   private final String MGED_ONTOLOGY_TERM_SUBMITTER = "submitter";
1474 29 Nov 11 pawels 34
1474 29 Nov 11 pawels 35   
1474 29 Nov 11 pawels 36   public IDFCreator(Experiment exp) {
1474 29 Nov 11 pawels 37     experiment = exp;
1474 29 Nov 11 pawels 38   }
1474 29 Nov 11 pawels 39   
1474 29 Nov 11 pawels 40   public IDF getIDFForExperiment(SDRF sdrf) {
1474 29 Nov 11 pawels 41         
1474 29 Nov 11 pawels 42     IDF idf = new IDF();
1474 29 Nov 11 pawels 43     
1474 29 Nov 11 pawels 44     // experiment details
1474 29 Nov 11 pawels 45     idf.setFieldContent(IDF.INVESTIGATION_TITLE, experiment.getName());
1474 29 Nov 11 pawels 46     idf.setFieldContent(IDF.EXPERIMENTAL_DESIGN, experiment.getExperimentDesign());
1474 29 Nov 11 pawels 47     idf.setFieldContent(IDF.QUALITY_CONTROL_TYPE, experiment.getExperimentType());
1474 29 Nov 11 pawels 48     idf.setFieldContent(IDF.QUALITY_CONTROL_TERM_SOURCE_REF, TermSources.MGED_ONTOLOGY_TERM_SOURCE_REF);
1474 29 Nov 11 pawels 49     idf.setFieldContent(IDF.REPLICATE_TYPE, experiment.getExperimentType());
1474 29 Nov 11 pawels 50     idf.setFieldContent(IDF.REPLICATE_TERM_SOURCE_REF, TermSources.MGED_ONTOLOGY_TERM_SOURCE_REF);
1474 29 Nov 11 pawels 51     if (experiment.getEntryDate() != null) {
1474 29 Nov 11 pawels 52       idf.setFieldContent(IDF.DATE_OF_EXPERIMENT, experiment.getEntryDate().toString());
1474 29 Nov 11 pawels 53     } else {
1474 29 Nov 11 pawels 54       idf.setFieldContent(IDF.DATE_OF_EXPERIMENT, (String)null);
1474 29 Nov 11 pawels 55     }
1474 29 Nov 11 pawels 56     // public release date is set outside, in the plugin
1474 29 Nov 11 pawels 57     /*
1474 29 Nov 11 pawels 58     if (experiment.getPublicationDate() != null) {
1474 29 Nov 11 pawels 59       idf.setFieldContent(IDF.PUBLIC_RELEASE_DATE, experiment.getPublicationDate().toString());
1474 29 Nov 11 pawels 60     } else {
1474 29 Nov 11 pawels 61       idf.setFieldContent(IDF.PUBLIC_RELEASE_DATE, (String)null);
1474 29 Nov 11 pawels 62     }
1474 29 Nov 11 pawels 63     */
1474 29 Nov 11 pawels 64     idf.setFieldContent(IDF.PUBMED_ID, experiment.getPubMedId());
1474 29 Nov 11 pawels 65     idf.setFieldContent(IDF.EXPERIMENT_DESCRIPTION, experiment.getDescription());
1474 29 Nov 11 pawels 66
1474 29 Nov 11 pawels 67     // experimental factors
1474 29 Nov 11 pawels 68     populateFactors(sdrf);
1474 29 Nov 11 pawels 69     idf.setFieldContent(IDF.EXPERIMENTAL_FACTOR_NAME, factorNames);
1474 29 Nov 11 pawels 70     idf.setFieldContent(IDF.EXPERIMENTAL_FACTOR_TYPE, factorTypes);
1474 29 Nov 11 pawels 71     idf.setFieldContent(IDF.EXPERIMENTAL_FACTOR_TERM_SOURCE_REF, factorSrcTerms);
1474 29 Nov 11 pawels 72
1474 29 Nov 11 pawels 73     
1474 29 Nov 11 pawels 74     // include information on submitter and authors 
1474 29 Nov 11 pawels 75     List<PersonInformation> persons = new ArrayList<PersonInformation>();
1474 29 Nov 11 pawels 76     persons.add(getSubmitterInformation());
1474 29 Nov 11 pawels 77     String[] allAffiliationsList = parseAffiliations();
1474 29 Nov 11 pawels 78     persons.addAll(parseAuthorInformation(allAffiliationsList));
1474 29 Nov 11 pawels 79
1474 29 Nov 11 pawels 80     List<String> tmp = new ArrayList<String>();
1474 29 Nov 11 pawels 81     for (PersonInformation a : persons) { tmp.add(a.getLastName());  }
1474 29 Nov 11 pawels 82     idf.setFieldContent(IDF.PERSON_LAST_NAME, tmp);
1474 29 Nov 11 pawels 83     tmp = new ArrayList<String>();
1474 29 Nov 11 pawels 84     for (PersonInformation a : persons) { tmp.add(a.getFirstName()); }
1474 29 Nov 11 pawels 85     idf.setFieldContent(IDF.PERSON_FIRST_NAME, tmp);
1474 29 Nov 11 pawels 86     tmp = new ArrayList<String>();
1474 29 Nov 11 pawels 87     for (PersonInformation a : persons) { tmp.add(a.getMidInitials()); }
1474 29 Nov 11 pawels 88     idf.setFieldContent(IDF.PERSON_MID_INITIALS, tmp);
1474 29 Nov 11 pawels 89     tmp = new ArrayList<String>();
1474 29 Nov 11 pawels 90     for (PersonInformation a : persons) { tmp.add(a.getEmail()); }
1474 29 Nov 11 pawels 91     idf.setFieldContent(IDF.PERSON_EMAIL, tmp);
1474 29 Nov 11 pawels 92     tmp = new ArrayList<String>();
1474 29 Nov 11 pawels 93     for (PersonInformation a : persons) { tmp.add(a.getPhone()); }
1474 29 Nov 11 pawels 94     idf.setFieldContent(IDF.PERSON_PHONE, tmp);
1474 29 Nov 11 pawels 95     tmp = new ArrayList<String>();
1474 29 Nov 11 pawels 96     for (PersonInformation a : persons) { tmp.add(a.getAddress()); }
1474 29 Nov 11 pawels 97     idf.setFieldContent(IDF.PERSON_ADDRESS, tmp);
1474 29 Nov 11 pawels 98     tmp = new ArrayList<String>();
1474 29 Nov 11 pawels 99     for (PersonInformation a : persons) { tmp.add(a.getAffiliations()); }
1474 29 Nov 11 pawels 100     idf.setFieldContent(IDF.PERSON_AFFILIATION, tmp);
1474 29 Nov 11 pawels 101     tmp = new ArrayList<String>();
1474 29 Nov 11 pawels 102     for (PersonInformation a : persons) { tmp.add(a.getRoles()); }
1474 29 Nov 11 pawels 103     idf.setFieldContent(IDF.PERSON_ROLES, tmp);
1474 29 Nov 11 pawels 104     tmp = new ArrayList<String>();
1474 29 Nov 11 pawels 105     for (PersonInformation a : persons) { tmp.add(a.getRoles()!=null ? TermSources.MGED_ONTOLOGY_TERM_SOURCE_REF : null); }
1474 29 Nov 11 pawels 106     idf.setFieldContent(IDF.PERSON_ROLES_TERM_SOURCE_REF, tmp);
1474 29 Nov 11 pawels 107
1474 29 Nov 11 pawels 108     // protocol definitions
1474 29 Nov 11 pawels 109     populateProtocols(sdrf);
1474 29 Nov 11 pawels 110     idf.setFieldContent(IDF.PROTOCOL_NAME, protocolNames);
1474 29 Nov 11 pawels 111     idf.setFieldContent(IDF.PROTOCOL_TYPE, protocolTypes);
1474 29 Nov 11 pawels 112     idf.setFieldContent(IDF.PROTOCOL_DESCRIPTION, protocolDescriptions);
1474 29 Nov 11 pawels 113     idf.setFieldContent(IDF.PROTOCOL_PARAMETERS, protocolParameters);
1474 29 Nov 11 pawels 114     idf.setFieldContent(IDF.PROTOCOL_TERM_SOURCE_REF, protocolTermSrcRefs);
1474 29 Nov 11 pawels 115
1474 29 Nov 11 pawels 116     // term source (ontology) definitions    
1474 29 Nov 11 pawels 117     populateTermSources();
1474 29 Nov 11 pawels 118     idf.setFieldContent(IDF.TERM_SOURCE_NAME, termSrcNames);
1474 29 Nov 11 pawels 119     idf.setFieldContent(IDF.TERM_SOURCE_FILE, termSrcFiles);
1474 29 Nov 11 pawels 120     idf.setFieldContent(IDF.TERM_SOURCE_VERSION, termSrcVersions);
1474 29 Nov 11 pawels 121
1474 29 Nov 11 pawels 122     // sdrf file name
1474 29 Nov 11 pawels 123     //idf.setFieldContent(IDF.SDRF_FILE, sdrfFileName);
1474 29 Nov 11 pawels 124
1474 29 Nov 11 pawels 125     return idf;    
1474 29 Nov 11 pawels 126   }
1474 29 Nov 11 pawels 127
1474 29 Nov 11 pawels 128   /**
1474 29 Nov 11 pawels 129    * Create lists of protocol names, types, descriptions and parameters
1474 29 Nov 11 pawels 130    * @param sdrf - SDRF containing the protocol information
1474 29 Nov 11 pawels 131    */
1474 29 Nov 11 pawels 132   private void populateProtocols(SDRF sdrf) {
1474 29 Nov 11 pawels 133     
1474 29 Nov 11 pawels 134     protocolNames = new ArrayList<String>();
1474 29 Nov 11 pawels 135     protocolTypes = new ArrayList<String>();
1474 29 Nov 11 pawels 136     protocolDescriptions = new ArrayList<String>();
1474 29 Nov 11 pawels 137     protocolParameters = new ArrayList<String>();
1474 29 Nov 11 pawels 138     protocolTermSrcRefs = new ArrayList<String>();
1474 29 Nov 11 pawels 139     
1474 29 Nov 11 pawels 140     for (ProtocolInfo pi : sdrf.getReferencedProtocols()) {
1474 29 Nov 11 pawels 141       
1474 29 Nov 11 pawels 142       if (pi.getProtocolRef() == null) { continue; }
1474 29 Nov 11 pawels 143       
1474 29 Nov 11 pawels 144       protocolNames.add(pi.getProtocolRef());
1474 29 Nov 11 pawels 145       protocolTypes.add(pi.getType().name());
1474 29 Nov 11 pawels 146       protocolDescriptions.add(pi.getDescription()==null?"":pi.getDescription());
1474 29 Nov 11 pawels 147       
1474 29 Nov 11 pawels 148       String protocolParams = "";
1474 29 Nov 11 pawels 149       for (String param : pi.getAllParameterNames()) {
1474 29 Nov 11 pawels 150         protocolParams += param + "; ";
1474 29 Nov 11 pawels 151       }
1474 29 Nov 11 pawels 152       protocolParameters.add(Utils.removeTrailingString(protocolParams, "; "));
1474 29 Nov 11 pawels 153       protocolTermSrcRefs.add(TermSources.BASE_TERM_SOURCE_REF);
1474 29 Nov 11 pawels 154     }
1474 29 Nov 11 pawels 155   }
1474 29 Nov 11 pawels 156
1474 29 Nov 11 pawels 157   private void populateFactors(SDRF sdrf) {
1474 29 Nov 11 pawels 158     factorNames = new ArrayList<String>();
1474 29 Nov 11 pawels 159     factorTypes = new ArrayList<String>();
1474 29 Nov 11 pawels 160     factorSrcTerms = new ArrayList<String>();
1474 29 Nov 11 pawels 161     for (String f : sdrf.getExperimentFactors()) {
1474 29 Nov 11 pawels 162       factorNames.add(f);
1474 29 Nov 11 pawels 163       
1474 29 Nov 11 pawels 164       // where should these come from? annotation category?
1474 29 Nov 11 pawels 165       factorTypes.add(null);
1474 29 Nov 11 pawels 166       factorSrcTerms.add(null);
1474 29 Nov 11 pawels 167     }
1474 29 Nov 11 pawels 168   }
1474 29 Nov 11 pawels 169
1474 29 Nov 11 pawels 170   private void populateTermSources() {
1474 29 Nov 11 pawels 171     
1474 29 Nov 11 pawels 172     /*
1474 29 Nov 11 pawels 173      * TODO should all of these always be added? 
1474 29 Nov 11 pawels 174      * should they be inferred from sdrf?
1474 29 Nov 11 pawels 175      */
1474 29 Nov 11 pawels 176     
1474 29 Nov 11 pawels 177     
1474 29 Nov 11 pawels 178     termSrcNames = new ArrayList<String>();
1474 29 Nov 11 pawels 179     termSrcNames.add(TermSources.ARRAY_EXPRESS_TERM_SOURCE_REF);
1474 29 Nov 11 pawels 180     termSrcNames.add(TermSources.MGED_ONTOLOGY_TERM_SOURCE_REF);
1474 29 Nov 11 pawels 181     termSrcNames.add(TermSources.BASE_TERM_SOURCE_REF);
1474 29 Nov 11 pawels 182     
1474 29 Nov 11 pawels 183     termSrcFiles = new ArrayList<String>();
1474 29 Nov 11 pawels 184     termSrcFiles.add(TermSources.ARRAY_EXPRESS_TERM_SOURCE_FILE);
1474 29 Nov 11 pawels 185     termSrcFiles.add(TermSources.MGED_ONTOLOGY_TERM_SOURCE_FILE);
1474 29 Nov 11 pawels 186     termSrcFiles.add(TermSources.BASE_TERM_SOURCE_FILE);
1474 29 Nov 11 pawels 187     
1474 29 Nov 11 pawels 188     termSrcVersions = new ArrayList<String>();
1474 29 Nov 11 pawels 189     termSrcVersions.add("");
1474 29 Nov 11 pawels 190     termSrcVersions.add("");
1474 29 Nov 11 pawels 191     termSrcVersions.add("");
1474 29 Nov 11 pawels 192   }
1474 29 Nov 11 pawels 193
1474 29 Nov 11 pawels 194   
1474 29 Nov 11 pawels 195   private PersonInformation getSubmitterInformation() {
1474 29 Nov 11 pawels 196     User submitter = experiment.getOwner();
1474 29 Nov 11 pawels 197     PersonInformation submitterInfo = new PersonInformation();
1474 29 Nov 11 pawels 198     
1474 29 Nov 11 pawels 199     String[] names = splitNamesOfOnePerson(submitter.getName());
1474 29 Nov 11 pawels 200     submitterInfo.setFirstName(names[0]);
1474 29 Nov 11 pawels 201     submitterInfo.setMidInitials(names[1]);
1474 29 Nov 11 pawels 202     submitterInfo.setLastName(names[2]);
1474 29 Nov 11 pawels 203     submitterInfo.setAffiliations(submitter.getOrganisation());
1474 29 Nov 11 pawels 204     submitterInfo.setAddress(submitter.getAddress());
1474 29 Nov 11 pawels 205     submitterInfo.setPhone(submitter.getPhone());
1474 29 Nov 11 pawels 206     submitterInfo.setEmail(submitter.getEmail());
1474 29 Nov 11 pawels 207     submitterInfo.setRoles(MGED_ONTOLOGY_TERM_SUBMITTER);
1474 29 Nov 11 pawels 208     
1474 29 Nov 11 pawels 209     return submitterInfo;
1474 29 Nov 11 pawels 210   }
1474 29 Nov 11 pawels 211   
1474 29 Nov 11 pawels 212   private String[] parseAffiliations() {
1474 29 Nov 11 pawels 213     String affList = experiment.getAffiliations();
1474 29 Nov 11 pawels 214     if (affList != null && !affList.equals("")) {
1474 29 Nov 11 pawels 215       List<String> affiliations = new ArrayList<String>();
1474 29 Nov 11 pawels 216       String[] affs = affList.split("[\\n|\\r]");
1474 29 Nov 11 pawels 217       for (String a : affs) {
1474 29 Nov 11 pawels 218         if (!a.equals("")) { affiliations.add(a); }
1474 29 Nov 11 pawels 219       }
1474 29 Nov 11 pawels 220       return affiliations.toArray(new String[affiliations.size()]);
1474 29 Nov 11 pawels 221     }
1474 29 Nov 11 pawels 222     return null;
1474 29 Nov 11 pawels 223   }
1474 29 Nov 11 pawels 224   
1474 29 Nov 11 pawels 225   private List<PersonInformation> parseAuthorInformation(String[] allAffiliationsList) {
1474 29 Nov 11 pawels 226     
1474 29 Nov 11 pawels 227     List<PersonInformation> personInfoList = new ArrayList<PersonInformation>();
1474 29 Nov 11 pawels 228       
1474 29 Nov 11 pawels 229     // get authors/investigators
1474 29 Nov 11 pawels 230     String authorsList = experiment.getAuthors();
1474 29 Nov 11 pawels 231     if (authorsList != null && !authorsList.equals("")) {
1474 29 Nov 11 pawels 232       String[] authors = authorsList.split(", ");
1474 29 Nov 11 pawels 233       for (String a : authors) {
1474 29 Nov 11 pawels 234         PersonInformation pi = new PersonInformation();
1474 29 Nov 11 pawels 235         
1474 29 Nov 11 pawels 236         String[] names = splitNamesOfOnePerson(a);
1474 29 Nov 11 pawels 237         pi.setFirstName(names[0]);
1474 29 Nov 11 pawels 238         pi.setMidInitials(names[1]);
1474 29 Nov 11 pawels 239         pi.setLastName(names[2]);
1474 29 Nov 11 pawels 240         
1474 29 Nov 11 pawels 241         if (allAffiliationsList != null) {
1474 29 Nov 11 pawels 242           int[] affNumbers = retrieveAffiliationNumbers(pi.getLastName());
1474 29 Nov 11 pawels 243           if (affNumbers != null && affNumbers.length > 0) {
1474 29 Nov 11 pawels 244             String affiliations = "";
1474 29 Nov 11 pawels 245             for (int affNum : affNumbers) {
1474 29 Nov 11 pawels 246               if (affNum > 0 && affNum <= allAffiliationsList.length) {
1474 29 Nov 11 pawels 247                 affiliations += allAffiliationsList[affNum-1]+"; ";
1474 29 Nov 11 pawels 248               }
1474 29 Nov 11 pawels 249             }
1474 29 Nov 11 pawels 250             pi.setAffiliations(Utils.removeTrailingString(affiliations,"; "));
1474 29 Nov 11 pawels 251           }
1474 29 Nov 11 pawels 252         }
1474 29 Nov 11 pawels 253         //pi.setAddress(null);
1474 29 Nov 11 pawels 254         //pi.setPhone(null);
1474 29 Nov 11 pawels 255         //pi.setEmail(null);
1474 29 Nov 11 pawels 256         
1474 29 Nov 11 pawels 257         pi.setRoles(MGED_ONTOLOGY_TERM_INVESTIGATOR);
1474 29 Nov 11 pawels 258         personInfoList.add(pi);
1474 29 Nov 11 pawels 259       }
1474 29 Nov 11 pawels 260     }
1474 29 Nov 11 pawels 261       
1474 29 Nov 11 pawels 262     return personInfoList;
1474 29 Nov 11 pawels 263   }
1474 29 Nov 11 pawels 264   
1474 29 Nov 11 pawels 265   public int[] retrieveAffiliationNumbers(String lastName) {
1474 29 Nov 11 pawels 266     Pattern p = Pattern.compile("(\\d,)*\\d");
1474 29 Nov 11 pawels 267     Matcher m = p.matcher(lastName);
1474 29 Nov 11 pawels 268     if (m.find() && m.end() == lastName.length()) {
1474 29 Nov 11 pawels 269       String affiliations = lastName.substring(m.start());
1474 29 Nov 11 pawels 270       String[] affs = affiliations.split(",");
1474 29 Nov 11 pawels 271       int[] affNumbers = new int[affs.length];
1474 29 Nov 11 pawels 272       for (int i = 0; i<affs.length; i++) {
1474 29 Nov 11 pawels 273         affNumbers[i] = Integer.parseInt(affs[i]);
1474 29 Nov 11 pawels 274       }
1474 29 Nov 11 pawels 275       return affNumbers;
1474 29 Nov 11 pawels 276     }
1474 29 Nov 11 pawels 277     return null;
1474 29 Nov 11 pawels 278   }
1474 29 Nov 11 pawels 279   
1474 29 Nov 11 pawels 280   
1474 29 Nov 11 pawels 281   private String[] splitNamesOfOnePerson(String names) {
1474 29 Nov 11 pawels 282     String[] splitNames = new String[3];
1474 29 Nov 11 pawels 283     String[] tmp = names.split(" ");
1474 29 Nov 11 pawels 284     if (tmp.length >= 2) {
1474 29 Nov 11 pawels 285       splitNames[0] = tmp[0].trim();
1474 29 Nov 11 pawels 286       splitNames[2] = tmp[tmp.length - 1].trim();
1474 29 Nov 11 pawels 287       String mid = "";
1474 29 Nov 11 pawels 288       for (int i=1; i<tmp.length-1; i++) {
1474 29 Nov 11 pawels 289         mid += tmp[i]+" ";
1474 29 Nov 11 pawels 290       }
1474 29 Nov 11 pawels 291       splitNames[1] = mid.trim();
1474 29 Nov 11 pawels 292     } else {
1474 29 Nov 11 pawels 293       splitNames[2] = names.trim();
1474 29 Nov 11 pawels 294     }
1474 29 Nov 11 pawels 295     return splitNames;
1474 29 Nov 11 pawels 296   }
1474 29 Nov 11 pawels 297   
1474 29 Nov 11 pawels 298
1474 29 Nov 11 pawels 299 class PersonInformation {
1474 29 Nov 11 pawels 300   private String firstName, midInitials, lastName;
1474 29 Nov 11 pawels 301   private String affiliations, address, phone, email;
1474 29 Nov 11 pawels 302   private String roles;
1474 29 Nov 11 pawels 303   
1474 29 Nov 11 pawels 304   public String getFirstName() {
1474 29 Nov 11 pawels 305     return firstName;
1474 29 Nov 11 pawels 306   }
1474 29 Nov 11 pawels 307   public void setFirstName(String firstName) {
1474 29 Nov 11 pawels 308     this.firstName = firstName;
1474 29 Nov 11 pawels 309   }
1474 29 Nov 11 pawels 310   public String getMidInitials() {
1474 29 Nov 11 pawels 311     return midInitials;
1474 29 Nov 11 pawels 312   }
1474 29 Nov 11 pawels 313   public void setMidInitials(String midInitials) {
1474 29 Nov 11 pawels 314     this.midInitials = midInitials;
1474 29 Nov 11 pawels 315   }
1474 29 Nov 11 pawels 316   public String getLastName() {
1474 29 Nov 11 pawels 317     return lastName;
1474 29 Nov 11 pawels 318   }
1474 29 Nov 11 pawels 319   public void setLastName(String lastName) {
1474 29 Nov 11 pawels 320     this.lastName = lastName;
1474 29 Nov 11 pawels 321   }
1474 29 Nov 11 pawels 322   public String getAffiliations() {
1474 29 Nov 11 pawels 323     return affiliations;
1474 29 Nov 11 pawels 324   }
1474 29 Nov 11 pawels 325   public void setAffiliations(String affiliation) {
1474 29 Nov 11 pawels 326     this.affiliations = affiliation;
1474 29 Nov 11 pawels 327   }
1474 29 Nov 11 pawels 328   public String getAddress() {
1474 29 Nov 11 pawels 329     return address;
1474 29 Nov 11 pawels 330   }
1474 29 Nov 11 pawels 331   public void setAddress(String address) {
1474 29 Nov 11 pawels 332     this.address = address;
1474 29 Nov 11 pawels 333   }
1474 29 Nov 11 pawels 334   public String getPhone() {
1474 29 Nov 11 pawels 335     return phone;
1474 29 Nov 11 pawels 336   }
1474 29 Nov 11 pawels 337   public void setPhone(String phone) {
1474 29 Nov 11 pawels 338     this.phone = phone;
1474 29 Nov 11 pawels 339   }
1474 29 Nov 11 pawels 340   public String getEmail() {
1474 29 Nov 11 pawels 341     return email;
1474 29 Nov 11 pawels 342   }
1474 29 Nov 11 pawels 343   public void setEmail(String email) {
1474 29 Nov 11 pawels 344     this.email = email;
1474 29 Nov 11 pawels 345   }
1474 29 Nov 11 pawels 346   public String getRoles() {
1474 29 Nov 11 pawels 347     return roles;
1474 29 Nov 11 pawels 348   }
1474 29 Nov 11 pawels 349   public void setRoles(String roles) {
1474 29 Nov 11 pawels 350     this.roles = roles;
1474 29 Nov 11 pawels 351   }
1474 29 Nov 11 pawels 352   
1474 29 Nov 11 pawels 353   
1474 29 Nov 11 pawels 354 }