[xgws-dev] CVS Update: codes/xsul/java/modules/lead/xsul/lead

Aleksander Andrzej Slominski xgws-dev_at_extreme.indiana.edu
Wed Nov 1 11:29:03 2006


aslom       06/11/01 11:27:57

  Modified:    xsul/java/modules/lead/xsul/lead LeadContextHeader.java
  Added:       xsul/java/modules/lead/xsul/lead BaseXmlElementAdapter.java
                        xml-name-value-list.xsdconfig
  Log:
  moved common functionality to abstract base class
  
  Revision  Changes    Path
  1.20      +28 -74    codes/xsul/java/modules/lead/xsul/lead/LeadContextHeader.java
  
  Index: LeadContextHeader.java
  ===================================================================
  RCS file: /l/extreme/cvs/codes/xsul/java/modules/lead/xsul/lead/LeadContextHeader.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -b -t -w -r1.19 -r1.20
  --- LeadContextHeader.java	1 Nov 2006 16:11:08 -0000	1.19
  +++ LeadContextHeader.java	1 Nov 2006 16:27:57 -0000	1.20
  @@ -1,7 +1,7 @@
   /* -*- mode: Java; c-basic-offset: 4; indent-tabs-mode: nil; -*-  //------100-columns-wide------>|*/
   /* Copyright (c) 2002-2005 Extreme! Lab, Indiana University. All rights reserved.
    * This software is open source. See the bottom of this file for the licence.
  - * $Id: LeadContextHeader.java,v 1.19 2006/11/01 16:11:08 aslom Exp $ */
  + * $Id: LeadContextHeader.java,v 1.20 2006/11/01 16:27:57 aslom Exp $ */
   package xsul.lead;
   
   import javax.xml.namespace.QName;
  @@ -16,7 +16,7 @@
   /**
    * Represents SOAP Header with context information for LEAD workflows/services.
    */
  -public class LeadContextHeader extends XmlElementAdapter {
  +public class LeadContextHeader extends BaseXmlElementAdapter {
       private final static MLogger logger = MLogger.getLogger();
       private final static XmlInfosetBuilder builder = XmlConstants.BUILDER;
       
  @@ -54,54 +54,31 @@
           super(target);
       }
       
  -    protected void setStringAppend(String name, String value) {
  -        XmlElement el = element(NS, name, true);
  -        el.replaceChildrenWithText(value);
  -    }
  -    
  -    protected void setStringSecondEl(String name, String value) {
  -        XmlElement el = element(NS, name);
  -        if(el == null) {
  -            // make sure element are inserted after experiment Id
  -            el = newElement(NS, name);
  -            addChild(1, el);
  -            el.setParent(this);
  -        }
  -        el.replaceChildrenWithText(value);
  -    }
  -    
  -    protected String getString(String name) {
  -        XmlElement el = element(NS, name);
  -        if(el == null) {
  -            return null;
  -        }
  -        return el.requiredTextContent();
  -    }
  -    
  -    public void setExperimentId(String experimentId) { setStringAppend(EXPERIMENT_ID, experimentId); }
  -    public String getExperimentId() { return getString(EXPERIMENT_ID); }
  -    public void setWorkflowId(String workflowId) { setStringSecondEl(WORKFLOW_INSTANCE_ID, workflowId); }
  -    public String getWorkflowId() { return getString(WORKFLOW_INSTANCE_ID); }
  -    public void setNodeId(String nodeId) { setStringSecondEl(NODE_ID, nodeId); }
  -    public String getNodeId() { return getString(NODE_ID); }
  -    public void setTimeStep(String timeStep) { setStringSecondEl(TIME_STEP, timeStep); }
  -    public String getTimeStep() { return getString(TIME_STEP); }
  -    public void setServiceId(String serviceId) { setStringSecondEl(SERVICE_INSTANCE_ID, serviceId); }
  -    public String getServiceId() { return getString(SERVICE_INSTANCE_ID); }
  -    public void setGfacUrl(String url) { setStringSecondEl(GFAC_URL, url); }
  -    public String getGfacUrl() { return getString(GFAC_URL); }
  -    public void setDscUrl(String url) { setStringSecondEl(DSC_URL, url); }
  -    public String getDscUrl() { return getString(DSC_URL); }
  +    
  +    public void setExperimentId(String experimentId) { setStringAppend(NS, EXPERIMENT_ID, experimentId); }
  +    public String getExperimentId() { return getString(NS, EXPERIMENT_ID); }
  +    public void setWorkflowId(String workflowId) { setStringSecondEl(NS, WORKFLOW_INSTANCE_ID, workflowId); }
  +    public String getWorkflowId() { return getString(NS, WORKFLOW_INSTANCE_ID); }
  +    public void setNodeId(String nodeId) { setStringSecondEl(NS, NODE_ID, nodeId); }
  +    public String getNodeId() { return getString(NS, NODE_ID); }
  +    public void setTimeStep(String timeStep) { setStringSecondEl(NS, TIME_STEP, timeStep); }
  +    public String getTimeStep() { return getString(NS, TIME_STEP); }
  +    public void setServiceId(String serviceId) { setStringSecondEl(NS, SERVICE_INSTANCE_ID, serviceId); }
  +    public String getServiceId() { return getString(NS, SERVICE_INSTANCE_ID); }
  +    public void setGfacUrl(String url) { setStringSecondEl(NS, GFAC_URL, url); }
  +    public String getGfacUrl() { return getString(NS, GFAC_URL); }
  +    public void setDscUrl(String url) { setStringSecondEl(NS, DSC_URL, url); }
  +    public String getDscUrl() { return getString(NS, DSC_URL); }
       //    public void setPropertiesFileUrl(String url) { setStringSecondEl(PROPERTIES_FILE_URL, url); }
       //    public String getPropertiesFileUrl() { return getString(PROPERTIES_FILE_URL); }
  -    public void setResourceCatalogUrl(String url) { setStringSecondEl(RESOURCE_CATALOG_URL, url); }
  -    public String getResourceCatalogUrl() { return getString(RESOURCE_CATALOG_URL); }
  -    public void setResourceBrokerUrl(String url) { setStringSecondEl(RESOURCE_BROKER_URL, url); }
  -    public String getResourceBrokerUrl() { return getString(RESOURCE_BROKER_URL); }
  -    public void setResourceSchedular(String url) { setStringSecondEl(RESOURCE_SCHEDULAR, url); }
  -    public String getResourceSchedular() { return getString(RESOURCE_SCHEDULAR); }
  -    public void setUserDn(String userDn) { setStringSecondEl(USER_DN, userDn); }
  -    public String getUserDn() { return getString(USER_DN); }
  +    public void setResourceCatalogUrl(String url) { setStringSecondEl(NS, RESOURCE_CATALOG_URL, url); }
  +    public String getResourceCatalogUrl() { return getString(NS, RESOURCE_CATALOG_URL); }
  +    public void setResourceBrokerUrl(String url) { setStringSecondEl(NS, RESOURCE_BROKER_URL, url); }
  +    public String getResourceBrokerUrl() { return getString(NS, RESOURCE_BROKER_URL); }
  +    public void setResourceSchedular(String url) { setStringSecondEl(NS, RESOURCE_SCHEDULAR, url); }
  +    public String getResourceSchedular() { return getString(NS, RESOURCE_SCHEDULAR); }
  +    public void setUserDn(String userDn) { setStringSecondEl(NS, USER_DN, userDn); }
  +    public String getUserDn() { return getString(NS, USER_DN); }
       
       public LeadResourceMappingList getResourceMappingList() {
           XmlElement el = element(LeadResourceMappingList.NS, LeadResourceMappingList.TYPE.getLocalPart());
  @@ -115,36 +92,12 @@
           addElement(rml);
       }
   
  -    private void setEpr(WsaEndpointReference epr, XmlNamespace ns, String name) {
  -        //epr.setNamespace(builder.newNamespace(XmlElement.NO_NAMESPACE)); //CHECKME
  -        epr.setNamespace(ns);
  -        epr.setName(name);
  -        XmlElement el = element(ns, name);
  -        if(el != null) {
  -            replaceChild(epr, el);
  -        } else {
  -            addChild(1, epr); //addChild(epr);
  -        }
  -    }
  -    
  -    private WsaEndpointReference getEpr(XmlNamespace ns, String name) {
  -        XmlElement el = element(ns, name);
  -        if(el == null) {
  -            return null;
  -        }
  -        if(el instanceof WsaEndpointReference) {
  -            return (WsaEndpointReference) el;
  -        } else {
  -            return new WsaEndpointReference(el);
  -        }
  -    }
  -
       public void setEventSink(WsaEndpointReference epr) {
           setEpr(epr, NS, EVENT_SINK_EPR);
       }
       
       public WsaEndpointReference getEventSink() {
  -        return getEpr(NS, EVENT_SINK_EPR);
  +        return lookupEpr(NS, EVENT_SINK_EPR);
       }
   
       public void setErrorSink(WsaEndpointReference epr) {
  @@ -152,7 +105,7 @@
       }
       
       public WsaEndpointReference getErrorSink() {
  -        return getEpr(NS, ERROR_SINK_EPR);
  +        return lookupEpr(NS, ERROR_SINK_EPR);
       }
   
   }
  @@ -219,3 +172,4 @@
   
   
   
  +
  
  
  
  1.1                  codes/xsul/java/modules/lead/xsul/lead/BaseXmlElementAdapter.java
  
  Index: BaseXmlElementAdapter.java
  ===================================================================
  /* -*- mode: Java; c-basic-offset: 4; indent-tabs-mode: nil; -*-  //------100-columns-wide------>|*/
  /* Copyright (c) 2006 Extreme! Lab, Indiana University. All rights reserved.
   * This software is open source. See the bottom of this file for the licence.
   * $Id: BaseXmlElementAdapter.java,v 1.1 2006/11/01 16:27:57 aslom Exp $ */
  package xsul.lead;
  
  import java.net.URI;
  import javax.xml.namespace.QName;
  import org.xmlpull.v1.builder.XmlElement;
  import org.xmlpull.v1.builder.XmlInfosetBuilder;
  import org.xmlpull.v1.builder.XmlNamespace;
  import org.xmlpull.v1.builder.adapter.XmlElementAdapter;
  import xsul.MLogger;
  import xsul.XmlConstants;
  import xsul.ws_addressing.WsaEndpointReference;
  
  /**
   * Base class with utilitymethods to manipulate XML.
   */
  public abstract class BaseXmlElementAdapter extends XmlElementAdapter {
      private final static MLogger logger = MLogger.getLogger();
      private final static XmlInfosetBuilder builder = XmlConstants.BUILDER;
      
      public BaseXmlElementAdapter(XmlElement target) {
          super(target);
      }
      
      
      protected void setStringAppend(XmlNamespace NS, String name, String value) {
          XmlElement el = element(NS, name, true);
          el.replaceChildrenWithText(value);
      }
      
      protected void setStringSecondEl(XmlNamespace NS, String name, String value) {
          XmlElement el = element(NS, name);
          if(el == null) {
              // make sure element are inserted after experiment Id
              el = newElement(NS, name);
              addChild(1, el);
              el.setParent(this);
          }
          el.replaceChildrenWithText(value);
      }
      
      protected String getString(XmlNamespace NS, String name) {
          XmlElement el = element(NS, name);
          if(el == null) {
              return null;
          }
          return el.requiredTextContent();
      }
      
      protected void setStringValue(XmlNamespace NS, String name, String value) {
          XmlElement el = element(NS, name, true);
          el.replaceChildrenWithText(value);
      }
      
      protected String lookupStringValue(XmlNamespace NS, String name) {
          XmlElement el = element(NS, name);
          if(el == null) {
              return null;
          }
          return el.requiredTextContent();
      }
      
      protected void setUriValue(XmlNamespace NS, String name, URI value) {
          String s = value.toASCIIString();
          setStringValue(NS, name, s);
      }
      
      protected URI lookupUriValue(XmlNamespace NS, String name) {
          String svalue = lookupStringValue(NS, name);
          if(name == null) return null;
          URI uri = URI.create(svalue);
          return uri;
      }
      
      protected void setEpr(WsaEndpointReference epr, XmlNamespace ns, String name) {
          //epr.setNamespace(builder.newNamespace(XmlElement.NO_NAMESPACE)); //CHECKME
          epr.setNamespace(ns);
          epr.setName(name);
          XmlElement el = element(ns, name);
          if(el != null) {
              replaceChild(epr, el);
          } else {
              addChild(1, epr); //addChild(epr);
          }
      }
      
      protected  WsaEndpointReference lookupEpr(XmlNamespace ns, String name) {
          XmlElement el = element(ns, name);
          if(el == null) {
              return null;
          }
          if(el instanceof WsaEndpointReference) {
              return (WsaEndpointReference) el;
          } else {
              return new WsaEndpointReference(el);
          }
      }
  }
  
  /*
   * Indiana University Extreme! Lab Software License, Version 1.2
   *
   * Copyright (c) 2006 The Trustees of Indiana University.
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
   * met:
   *
   * 1) All redistributions of source code must retain the above
   *    copyright notice, the list of authors in the original source
   *    code, this list of conditions and the disclaimer listed in this
   *    license;
   *
   * 2) All redistributions in binary form must reproduce the above
   *    copyright notice, this list of conditions and the disclaimer
   *    listed in this license in the documentation and/or other
   *    materials provided with the distribution;
   *
   * 3) Any documentation included with all redistributions must include
   *    the following acknowledgement:
   *
   *      "This product includes software developed by the Indiana
   *      University Extreme! Lab.  For further information please visit
   *      http://www.extreme.indiana.edu/"
   *
   *    Alternatively, this acknowledgment may appear in the software
   *    itself, and wherever such third-party acknowledgments normally
   *    appear.
   *
   * 4) The name "Indiana University" or "Indiana University
   *    Extreme! Lab" shall not be used to endorse or promote
   *    products derived from this software without prior written
   *    permission from Indiana University.  For written permission,
   *    please contact http://www.extreme.indiana.edu/.
   *
   * 5) Products derived from this software may not use "Indiana
   *    University" name nor may "Indiana University" appear in their name,
   *    without prior written permission of the Indiana University.
   *
   * Indiana University provides no reassurances that the source code
   * provided does not infringe the patent or any other intellectual
   * property rights of any other entity.  Indiana University disclaims any
   * liability to any recipient for claims brought by any other entity
   * based on infringement of intellectual property rights or otherwise.
   *
   * LICENSEE UNDERSTANDS THAT SOFTWARE IS PROVIDED "AS IS" FOR WHICH
   * NO WARRANTIES AS TO CAPABILITIES OR ACCURACY ARE MADE. INDIANA
   * UNIVERSITY GIVES NO WARRANTIES AND MAKES NO REPRESENTATION THAT
   * SOFTWARE IS FREE OF INFRINGEMENT OF THIRD PARTY PATENT, COPYRIGHT, OR
   * OTHER PROPRIETARY RIGHTS.  INDIANA UNIVERSITY MAKES NO WARRANTIES THAT
   * SOFTWARE IS FREE FROM "BUGS", "VIRUSES", "TROJAN HORSES", "TRAP
   * DOORS", "WORMS", OR OTHER HARMFUL CODE.  LICENSEE ASSUMES THE ENTIRE
   * RISK AS TO THE PERFORMANCE OF SOFTWARE AND/OR ASSOCIATED MATERIALS,
   * AND TO THE PERFORMANCE AND VALIDITY OF INFORMATION GENERATED USING
   * SOFTWARE.
   */
  
  
  
  
  
  
  1.1                  codes/xsul/java/modules/lead/xsul/lead/xml-name-value-list.xsdconfig
  
  Index: xml-name-value-list.xsdconfig
  ===================================================================
  <!-- An xsdconfig file must begin with a "config" element in the
          http://www.bea.com/2002/09/xbean/config namespace. Also, be sure
          to declare any namespaces used to qualify types in your schema (here,
          the namespace corresponding to the pol prefix. -->
  <xb:config  xmlns:xb="http://www.bea.com/2002/09/xbean/config">
  
      <!-- Use the "namespace" element to map a namespace to the Java package
          name that should be generated. -->
      <xb:namespace uri="http://lead.extreme.indiana.edu/namespaces/2006/06/xml-name-value-list/">
          <xb:package>xsul.lead.types.nvl</xb:package>
      </xb:namespace>
      
  </xb:config>