Package org.openeai.uportal.handlers

Source Code of org.openeai.uportal.handlers.BasicPersonQueryHandler

package org.openeai.uportal.handlers;

import org.openeai.moa.jmsobjects.JmsEnterpriseObject;
import org.openeai.jms.producer.PointToPointProducer;
import com.any_erp_vendor.moa.jmsobjects.person.v1_0.BasicPerson;
import com.any_erp_vendor.moa.objects.resources.v1_0.LightweightPerson;
import com.any_erp_vendor.moa.objects.resources.v1_0.Name;
import com.any_erp_vendor.moa.objects.resources.v1_0.Address;
import org.jasig.portal.services.LogService;

public class BasicPersonQueryHandler extends UportalFormHandlerBase implements UportalFormHandler {
  public BasicPersonQueryHandler() {
  }
 
  public String process() throws UportalFormHandlerException {
    String messageObjectName = getProperties().getProperty(MESSAGE_OBJECT_NAME_PROP);
    String queryObjectName = getProperties().getProperty(QUERY_OBJECT_NAME_PROP);
    String producerName = getProperties().getProperty(PRODUCER_NAME_PROP);
    LogService.log(LogService.INFO, "[basicPersonQueryHandler] producerName is " + producerName);
    String xml = INITIAL_XML;
    String firstName = (String)getChannelStaticData().getPerson().getAttribute("givenName");
    String lastName = (String)getChannelStaticData().getPerson().getAttribute("sn");
    String instId = Integer.toString(getChannelStaticData().getPerson().getID());
    LogService.log(LogService.INFO, "[basicPersonQueryHandler] instId is " + instId);
    LogService.log(LogService.INFO, "[basicPersonQueryHandler] firstName is " + firstName);
    LogService.log(LogService.INFO, "[basicPersonQueryHandler] lastName is " + lastName);
    try {
      LightweightPerson lPerson =
          (LightweightPerson)getAppConfig().getObject(queryObjectName);
      lPerson.getEnterpriseFields().setIgnoreValidation(true);
      LogService.log(LogService.INFO, "[basicPersonQueryHandler] got LightweightPerson...");

      if (instId != null && instId.length() > 0) {
        lPerson.setInstitutionalId(instId);
        LogService.log(LogService.INFO, "[basicPersonQueryHandler] set instid on lightweight person...");

        JmsEnterpriseObject jeo = (JmsEnterpriseObject)getAppConfig().getObject(messageObjectName);
        LogService.log(LogService.INFO, "[basicPersonQueryHandler] got " + messageObjectName + " from AppConfig, performing Query...");

        // todo - use producer pool
        java.util.List returnedJeos =
          jeo.query(lPerson,
            (PointToPointProducer)getAppConfig().getObject(producerName));
        LogService.log(LogService.INFO, "[basicPersonQueryHandler] got " + returnedJeos.size() + " " + messageObjectName + "'s back.");

        for (int i=0; i<returnedJeos.size(); i++) {
          JmsEnterpriseObject j = (JmsEnterpriseObject)returnedJeos.get(i);
          j.getXmlEnterpriseObject().getEnterpriseFields().setIgnoreValidation(true);
          xml += j.getXmlEnterpriseObject().toXmlString();
        }
        if (returnedJeos.size() == 0) {
          // create the BasicPerson using default values from uPortal (givenName, sn)
          LogService.log(LogService.INFO, "[basicPersonQueryHandler] BasicPerson doesn't exist, creating it.");
          BasicPerson bp = (BasicPerson)getAppConfig().getObject(messageObjectName);
          bp.setInstitutionalId(instId);
          Name name = bp.newName();
          name.setFirstName(firstName);
          name.setLastName(lastName);
          bp.setName(name);
          bp.create((PointToPointProducer)getAppConfig().getObject(producerName));
          LogService.log(LogService.INFO, "[basicPersonQueryHandler] BasicPerson was created.");
          xml += bp.getXmlEnterpriseObject().toXmlString();
        }
      }
      else {
        xml += "<LightweightPerson><InstitutionalId></InstitutionalId></LightweightPerson>";
      }
    }
    catch (Exception openeaiExc) {
      LogService.log(LogService.ERROR, openeaiExc);
      openeaiExc.printStackTrace();
      throw new UportalFormHandlerException("Exception rendering XML for display", openeaiExc);
    }
    return xml;
  }
}
TOP

Related Classes of org.openeai.uportal.handlers.BasicPersonQueryHandler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.