You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by mk...@apache.org on 2003/04/01 21:45:48 UTC

cvs commit: xml-xalan/java/src/org/apache/xalan/lib/sql DTMDocument.java

mkwan       2003/04/01 11:45:48

  Modified:    java/src/org/apache/xalan/lib ExsltDatetime.java
                        PipeDocument.java Redirect.java
               java/src/org/apache/xalan/lib/sql DTMDocument.java
  Log:
  Merging XSLTC_DTM and common serializer to the head
  
  Changes in org.apache.xalan.lib.
  
  1. Change the return types of some date-time extension functions
  for support in XSLTC.
  
  2. Changes for the new serializer.
  
  Revision  Changes    Path
  1.9       +88 -88    xml-xalan/java/src/org/apache/xalan/lib/ExsltDatetime.java
  
  Index: ExsltDatetime.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/lib/ExsltDatetime.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- ExsltDatetime.java	30 Jan 2003 18:45:42 -0000	1.8
  +++ ExsltDatetime.java	1 Apr 2003 19:45:48 -0000	1.9
  @@ -66,7 +66,6 @@
   import org.apache.xpath.objects.XBoolean;
   import org.apache.xpath.objects.XNumber;
   import org.apache.xpath.objects.XObject;
  -import org.apache.xpath.objects.XString;
   
   /**
    * <meta name="usage" content="general"/>
  @@ -93,6 +92,7 @@
       static final String gm = "--MM--";
       static final String gd = "---dd";
       static final String t = "HH:mm:ss";
  +    static final String EMPTY_STR = "";
   
       /**
        * The date:date-time function returns the current date and time as a date/time string. 
  @@ -107,7 +107,7 @@
        * Universal Time or a + or - followed by the difference between the difference from UTC 
        * represented as hh:mm. 
        */
  -    public static XString dateTime()
  +    public static String dateTime()
       {
         Calendar cal = Calendar.getInstance();
         Date datetime = cal.getTime();
  @@ -131,7 +131,7 @@
           char posneg = hrs < 0? '-': '+';
           buff.append(posneg + formatDigits(hrs) + ':' + formatDigits(min));
         }
  -      return new XString(buff.toString());
  +      return buff.toString();
       }
       
       /**
  @@ -166,7 +166,7 @@
        * is specified and it does not specify a time zone, then the date string format must not include 
        * a time zone. 
        */
  -    public static XString date(String datetimeIn)
  +    public static String date(String datetimeIn)
         throws ParseException
       {
         String[] edz = getEraDatetimeZone(datetimeIn);
  @@ -174,32 +174,32 @@
         String datetime = edz[1];
         String zone = edz[2];
         if (datetime == null || zone == null) 
  -        return new XString("");
  +        return EMPTY_STR;
                       
         String[] formatsIn = {dt, d};
         String formatOut = d;
         Date date = testFormats(datetime, formatsIn);
  -      if (date == null) return new XString("");
  +      if (date == null) return EMPTY_STR;
         
         SimpleDateFormat dateFormat = new SimpleDateFormat(formatOut);
         dateFormat.setLenient(false);
         String dateOut = dateFormat.format(date);      
         if (dateOut.length() == 0)
  -          return new XString("");
  +          return EMPTY_STR;
         else        
  -        return new XString(leader + dateOut + zone);
  +        return (leader + dateOut + zone);
       }
       
       
       /**
        * See above.
        */
  -    public static XString date()
  +    public static String date()
       {
         String datetime = dateTime().toString();
         String date = datetime.substring(0, datetime.indexOf("T"));
         String zone = datetime.substring(getZoneStart(datetime));
  -      return new XString(date + zone);
  +      return (date + zone);
       }
       
       /**
  @@ -224,33 +224,33 @@
        * is specified and it does not specify a time zone, then the time string format must not include 
        * a time zone. 
        */
  -    public static XString time(String timeIn)
  +    public static String time(String timeIn)
         throws ParseException      
       {
         String[] edz = getEraDatetimeZone(timeIn);
         String time = edz[1];
         String zone = edz[2];
         if (time == null || zone == null) 
  -        return new XString("");
  +        return EMPTY_STR;
                       
         String[] formatsIn = {dt, d};
         String formatOut =  t;
         Date date = testFormats(time, formatsIn);
  -      if (date == null) return new XString("");
  +      if (date == null) return EMPTY_STR;
         SimpleDateFormat dateFormat = new SimpleDateFormat(formatOut);
         String out = dateFormat.format(date);
  -      return new XString(out + zone);
  +      return (out + zone);
       }
   
       /**
        * See above.
        */
  -    public static XString time()
  +    public static String time()
       {
         String datetime = dateTime().toString();
         String time = datetime.substring(datetime.indexOf("T")+1);
         String zone = datetime.substring(getZoneStart(datetime));      
  -      return new XString(time + zone);
  +      return (time + zone);
       } 
          
       /**
  @@ -268,30 +268,30 @@
        *   xs:gYear (CCYY) 
        * If the date/time string is not in one of these formats, then NaN is returned. 
        */
  -    public static XNumber year(String datetimeIn)
  +    public static double year(String datetimeIn)
         throws ParseException
       {
         String[] edz = getEraDatetimeZone(datetimeIn);
         boolean ad = edz[0].length() == 0; // AD (Common Era -- empty leader)
         String datetime = edz[1];
         if (datetime == null) 
  -        return new XNumber(Double.NaN);
  +        return Double.NaN;
         
         String[] formats = {dt, d, gym, gy};
         double yr = getNumber(datetime, formats, Calendar.YEAR);
         if (ad || yr == Double.NaN)
  -        return new XNumber(yr);
  +        return yr;
         else
  -        return new XNumber(-yr);
  +        return -yr;
       }
        
       /**
        * See above.
        */
  -    public static XNumber year()
  +    public static double year()
       {
         Calendar cal = Calendar.getInstance();
  -      return new XNumber(cal.get(Calendar.YEAR));
  +      return cal.get(Calendar.YEAR);
       }
       
       /**
  @@ -310,25 +310,25 @@
        *    xs:gMonthDay (--MM-DD)
        * If the date/time string is not in one of these formats, then NaN is returned. 
        */
  -    public static XNumber monthInYear(String datetimeIn)
  +    public static double monthInYear(String datetimeIn)
         throws ParseException
       {
         String[] edz = getEraDatetimeZone(datetimeIn);
         String datetime = edz[1];
         if (datetime == null)
  -        return new XNumber(Double.NaN);      
  +        return Double.NaN;      
         
         String[] formats = {dt, d, gym, gm, gmd};
  -      return new XNumber(getNumber(datetime, formats, Calendar.MONTH));
  +      return getNumber(datetime, formats, Calendar.MONTH);
       }
       
       /**
        * See above.
        */
  -    public static XNumber monthInYear()
  +    public static double monthInYear()
       {      
         Calendar cal = Calendar.getInstance();
  -      return new XNumber(cal.get(Calendar.MONTH));
  +      return cal.get(Calendar.MONTH);
      }
       
       /**
  @@ -344,25 +344,25 @@
        *    xs:date (CCYY-MM-DD) 
        * If the date/time string is not in one of these formats, then NaN is returned. 
        */
  -    public static XNumber weekInYear(String datetimeIn)
  +    public static double weekInYear(String datetimeIn)
         throws ParseException
       {
         String[] edz = getEraDatetimeZone(datetimeIn);
         String datetime = edz[1];
         if (datetime == null) 
  -        return new XNumber(Double.NaN);      
  +        return Double.NaN;      
         
         String[] formats = {dt, d};
  -      return new XNumber(getNumber(datetime, formats, Calendar.WEEK_OF_YEAR));
  +      return getNumber(datetime, formats, Calendar.WEEK_OF_YEAR);
       }
           
       /**
        * See above.
        */
  -    public static XNumber weekInYear()
  +    public static double weekInYear()
       {
          Calendar cal = Calendar.getInstance();
  -      return new XNumber(cal.get(Calendar.WEEK_OF_YEAR));
  +      return cal.get(Calendar.WEEK_OF_YEAR);
      }
   
       /**
  @@ -378,25 +378,25 @@
        *     xs:date (CCYY-MM-DD) 
        * If the date/time string is not in one of these formats, then NaN is returned. 
        */
  -    public static XNumber dayInYear(String datetimeIn)
  +    public static double dayInYear(String datetimeIn)
         throws ParseException
       {
         String[] edz = getEraDatetimeZone(datetimeIn);
         String datetime = edz[1];
         if (datetime == null) 
  -        return new XNumber(Double.NaN);            
  +        return Double.NaN;            
         
         String[] formats = {dt, d};
  -      return new XNumber(getNumber(datetime, formats, Calendar.DAY_OF_YEAR));
  +      return getNumber(datetime, formats, Calendar.DAY_OF_YEAR);
       }
       
       /**
        * See above.
        */
  -    public static XNumber dayInYear()
  +    public static double dayInYear()
       {
          Calendar cal = Calendar.getInstance();
  -      return new XNumber(cal.get(Calendar.DAY_OF_YEAR));
  +      return cal.get(Calendar.DAY_OF_YEAR);
      }
       
   
  @@ -415,23 +415,23 @@
        *      xs:gDay (---DD) 
        * If the date/time string is not in one of these formats, then NaN is returned. 
        */
  -    public static XNumber dayInMonth(String datetimeIn)
  +    public static double dayInMonth(String datetimeIn)
         throws ParseException
       {
         String[] edz = getEraDatetimeZone(datetimeIn);
         String datetime = edz[1];
         String[] formats = {dt, d, gmd, gd};
         double day = getNumber(datetime, formats, Calendar.DAY_OF_MONTH);
  -      return new XNumber(day);
  +      return day;
       }
       
       /**
        * See above.
        */
  -    public static XNumber dayInMonth()
  +    public static double dayInMonth()
       {
         Calendar cal = Calendar.getInstance();
  -      return new XNumber(cal.get(Calendar.DAY_OF_MONTH));
  +      return cal.get(Calendar.DAY_OF_MONTH);
      }
       
       /**
  @@ -448,25 +448,25 @@
        *      xs:date (CCYY-MM-DD) 
        * If the date/time string is not in one of these formats, then NaN is returned. 
        */
  -    public static XNumber dayOfWeekInMonth(String datetimeIn)
  +    public static double dayOfWeekInMonth(String datetimeIn)
         throws ParseException
       {
         String[] edz = getEraDatetimeZone(datetimeIn);
         String datetime = edz[1];
         if (datetime == null) 
  -        return new XNumber(Double.NaN);            
  +        return Double.NaN;            
   
         String[] formats =  {dt, d};
  -      return new XNumber(getNumber(datetime, formats, Calendar.DAY_OF_WEEK_IN_MONTH));
  +      return getNumber(datetime, formats, Calendar.DAY_OF_WEEK_IN_MONTH);
       }
       
       /**
        * See above.
        */
  -    public static XNumber dayOfWeekInMonth()
  +    public static double dayOfWeekInMonth()
       {
          Calendar cal = Calendar.getInstance();
  -      return new XNumber(cal.get(Calendar.DAY_OF_WEEK_IN_MONTH));
  +      return cal.get(Calendar.DAY_OF_WEEK_IN_MONTH);
      }
         
       
  @@ -484,25 +484,25 @@
        * If the date/time string is not in one of these formats, then NaN is returned. 
                               The numbering of days of the week starts at 1 for Sunday, 2 for Monday and so on up to 7 for Saturday.  
        */
  -    public static XNumber dayInWeek(String datetimeIn)
  +    public static double dayInWeek(String datetimeIn)
         throws ParseException
       {
         String[] edz = getEraDatetimeZone(datetimeIn);
         String datetime = edz[1];
         if (datetime == null) 
  -        return new XNumber(Double.NaN);            
  +        return Double.NaN;            
   
         String[] formats = {dt, d};
  -      return new XNumber(getNumber(datetime, formats, Calendar.DAY_OF_WEEK));
  +      return getNumber(datetime, formats, Calendar.DAY_OF_WEEK);
       }
       
       /**
        * See above.
        */
  -    public static XNumber dayInWeek()
  +    public static double dayInWeek()
       {
          Calendar cal = Calendar.getInstance();
  -      return new XNumber(cal.get(Calendar.DAY_OF_WEEK));
  +      return cal.get(Calendar.DAY_OF_WEEK);
      }        
   
       /**
  @@ -518,25 +518,25 @@
        *     xs:time (hh:mm:ss) 
        * If the date/time string is not in one of these formats, then NaN is returned. 
        */
  -    public static XNumber hourInDay(String datetimeIn)
  +    public static double hourInDay(String datetimeIn)
         throws ParseException
       {
         String[] edz = getEraDatetimeZone(datetimeIn);
         String datetime = edz[1];
         if (datetime == null) 
  -        return new XNumber(Double.NaN);            
  +        return Double.NaN;            
         
         String[] formats = {dt, t};
  -      return new XNumber(getNumber(datetime, formats, Calendar.HOUR_OF_DAY));
  +      return getNumber(datetime, formats, Calendar.HOUR_OF_DAY);
       }
       
       /**
        * See above.
        */
  -    public static XNumber hourInDay()
  +    public static double hourInDay()
       {
          Calendar cal = Calendar.getInstance();
  -      return new XNumber(cal.get(Calendar.HOUR_OF_DAY));
  +      return cal.get(Calendar.HOUR_OF_DAY);
      }
       
       /**
  @@ -552,25 +552,25 @@
        *      xs:time (hh:mm:ss) 
        * If the date/time string is not in one of these formats, then NaN is returned. 
        */
  -    public static XNumber minuteInHour(String datetimeIn)
  +    public static double minuteInHour(String datetimeIn)
         throws ParseException
       {
         String[] edz = getEraDatetimeZone(datetimeIn);
         String datetime = edz[1];
         if (datetime == null) 
  -        return new XNumber(Double.NaN);            
  +        return Double.NaN;            
         
         String[] formats = {dt,t};
  -      return new XNumber(getNumber(datetime, formats, Calendar.MINUTE));
  +      return getNumber(datetime, formats, Calendar.MINUTE);
       }    
       
       /**
        * See above.
        */
  -   public static XNumber minuteInHour()
  +   public static double minuteInHour()
       {
          Calendar cal = Calendar.getInstance();
  -      return new XNumber(cal.get(Calendar.MINUTE));
  +      return cal.get(Calendar.MINUTE);
      }    
   
       /**
  @@ -586,25 +586,25 @@
        *      xs:time (hh:mm:ss) 
        * If the date/time string is not in one of these formats, then NaN is returned. 
        */
  -    public static XNumber secondInMinute(String datetimeIn)
  +    public static double secondInMinute(String datetimeIn)
         throws ParseException
       {
         String[] edz = getEraDatetimeZone(datetimeIn);
         String datetime = edz[1];
         if (datetime == null) 
  -        return new XNumber(Double.NaN);            
  +        return Double.NaN;            
         
         String[] formats = {dt, t};
  -      return new XNumber(getNumber(datetime, formats, Calendar.SECOND));
  +      return getNumber(datetime, formats, Calendar.SECOND);
       }
   
       /**
        * See above.
        */
  -    public static XNumber secondInMinute()
  +    public static double secondInMinute()
       {
          Calendar cal = Calendar.getInstance();
  -      return new XNumber(cal.get(Calendar.SECOND));
  +      return cal.get(Calendar.SECOND);
       }
          
       /**
  @@ -641,11 +641,11 @@
       /**
        * See above.
        */
  -    public static XBoolean leapYear()
  +    public static boolean leapYear()
       {
         Calendar cal = Calendar.getInstance();
         int yr = (int)cal.get(Calendar.YEAR);
  -      return new XBoolean(yr % 400 == 0 || (yr % 100 != 0 && yr % 4 == 0));      
  +      return (yr % 400 == 0 || (yr % 100 != 0 && yr % 4 == 0));      
       }    
          
       /**
  @@ -667,27 +667,27 @@
        * 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November' 
        * or 'December'. 
        */
  -    public static XString monthName(String datetimeIn)
  +    public static String monthName(String datetimeIn)
         throws ParseException
       {
         String[] edz = getEraDatetimeZone(datetimeIn);
         String datetime = edz[1];
         if (datetime == null) 
  -        return new XString("");
  +        return EMPTY_STR;
         
         String[] formatsIn = {dt, d, gym, gm};
         String formatOut = "MMMM";
  -      return new XString (getNameOrAbbrev(datetimeIn, formatsIn, formatOut));    
  +      return getNameOrAbbrev(datetimeIn, formatsIn, formatOut);    
       }
       
       /**
        * See above.
        */
  -    public static XString monthName()
  +    public static String monthName()
       {
         Calendar cal = Calendar.getInstance();
         String format = "MMMM";
  -      return new XString(getNameOrAbbrev(format));  
  +      return getNameOrAbbrev(format);  
       }
           
       /**
  @@ -710,26 +710,26 @@
        * An implementation of this extension function in the EXSLT date namespace must conform 
        * to the behaviour described in this document. 
        */
  -    public static XString monthAbbreviation(String datetimeIn)
  +    public static String monthAbbreviation(String datetimeIn)
         throws ParseException
       {
         String[] edz = getEraDatetimeZone(datetimeIn);
         String datetime = edz[1];
         if (datetime == null) 
  -        return new XString("");
  +        return EMPTY_STR;
         
         String[] formatsIn = {dt, d, gym, gm};
         String formatOut = "MMM";
  -      return new XString (getNameOrAbbrev(datetimeIn, formatsIn, formatOut));
  +      return getNameOrAbbrev(datetimeIn, formatsIn, formatOut);
       }
       
       /**
        * See above.
        */
  -    public static XString monthAbbreviation()
  +    public static String monthAbbreviation()
       {
         String format = "MMM";
  -      return new XString(getNameOrAbbrev(format));  
  +      return getNameOrAbbrev(format);  
       }
           
       /**
  @@ -750,26 +750,26 @@
        * An implementation of this extension function in the EXSLT date namespace must conform 
        * to the behaviour described in this document. 
        */
  -    public static XString dayName(String datetimeIn)
  +    public static String dayName(String datetimeIn)
         throws ParseException
       {
         String[] edz = getEraDatetimeZone(datetimeIn);
         String datetime = edz[1];
         if (datetime == null) 
  -        return new XString("");
  +        return EMPTY_STR;
               
         String[] formatsIn = {dt, d};
         String formatOut = "EEEE";
  -      return new XString (getNameOrAbbrev(datetimeIn, formatsIn, formatOut));    
  +      return getNameOrAbbrev(datetimeIn, formatsIn, formatOut);    
       }
       
       /**
        * See above.
        */
  -    public static XString dayName()
  +    public static String dayName()
       {
         String format = "EEEE";
  -      return new XString(getNameOrAbbrev(format));        
  +      return getNameOrAbbrev(format);        
       }    
       
       /**
  @@ -790,26 +790,26 @@
        * An implementation of this extension function in the EXSLT date namespace must conform 
        * to the behaviour described in this document. 
        */
  -    public static XString dayAbbreviation(String datetimeIn)
  +    public static String dayAbbreviation(String datetimeIn)
         throws ParseException
       {
         String[] edz = getEraDatetimeZone(datetimeIn);
         String datetime = edz[1];
         if (datetime == null) 
  -        return new XString("");            
  +        return EMPTY_STR;            
         
         String[] formatsIn = {dt, d};
         String formatOut = "EEE";
  -      return new XString (getNameOrAbbrev(datetimeIn, formatsIn, formatOut));
  +      return getNameOrAbbrev(datetimeIn, formatsIn, formatOut);
       }
       
       /**
        * See above.
        */
  -    public static XString dayAbbreviation()
  +    public static String dayAbbreviation()
       {
         String format = "EEE";
  -      return new XString(getNameOrAbbrev(format));              
  +      return getNameOrAbbrev(format);              
       }
       
       /**
  
  
  
  1.5       +6 -5      xml-xalan/java/src/org/apache/xalan/lib/PipeDocument.java
  
  Index: PipeDocument.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/lib/PipeDocument.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- PipeDocument.java	30 Jan 2003 18:45:42 -0000	1.4
  +++ PipeDocument.java	1 Apr 2003 19:45:48 -0000	1.5
  @@ -73,8 +73,6 @@
   import javax.xml.transform.stream.StreamSource;
   
   import org.apache.xalan.extensions.XSLProcessorContext;
  -import org.apache.xalan.serialize.Serializer;
  -import org.apache.xalan.serialize.SerializerFactory;
   import org.apache.xalan.templates.AVT;
   import org.apache.xalan.templates.ElemExtensionCall;
   import org.apache.xalan.templates.ElemLiteralResult;
  @@ -90,6 +88,9 @@
   import org.xml.sax.SAXNotRecognizedException;
   import org.xml.sax.XMLReader;
   import org.xml.sax.helpers.XMLReaderFactory;
  +// Imported Serializer classes
  +import org.apache.xml.serializer.Serializer;
  +import org.apache.xml.serializer.SerializerFactory;
   
   /**
    * PipeDocument is a Xalan extension element to set stylesheet params and pipes an XML 
  @@ -185,7 +186,7 @@
           for (int i = 0; i < ssNodes.getLength(); i++)
           {
             ssNode = ssNodes.item(i);
  -          if (ssNode.getNodeType() == ssNode.ELEMENT_NODE
  +          if (ssNode.getNodeType() == Node.ELEMENT_NODE
                 && ((Element)ssNode).getTagName().equals("stylesheet")
                 && ssNode instanceof ElemLiteralResult)
             {
  @@ -203,7 +204,7 @@
               for (int j = 0; j < paramNodes.getLength(); j++)
               {
                 paramNode = paramNodes.item(j);
  -              if (paramNode.getNodeType() == paramNode.ELEMENT_NODE 
  +              if (paramNode.getNodeType() == Node.ELEMENT_NODE 
                     && ((Element)paramNode).getTagName().equals("param")
                     && paramNode instanceof ElemLiteralResult)
                 {
  @@ -256,4 +257,4 @@
       reader.parse(source);
     }
    
  -}
  \ No newline at end of file
  +}
  
  
  
  1.20      +4 -3      xml-xalan/java/src/org/apache/xalan/lib/Redirect.java
  
  Index: Redirect.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/lib/Redirect.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- Redirect.java	30 Jan 2003 18:45:42 -0000	1.19
  +++ Redirect.java	1 Apr 2003 19:45:48 -0000	1.20
  @@ -72,7 +72,7 @@
   import org.apache.xalan.transformer.TransformerImpl;
   import org.apache.xpath.XPath;
   import org.apache.xpath.objects.XObject;
  -
  +import org.apache.xml.serializer.SerializationHandler;
   import org.xml.sax.ContentHandler;
   
   /**
  @@ -445,8 +445,9 @@
       
       try
       {
  -      ContentHandler flistener 
  -        = transformer.createResultContentHandler(new StreamResult(ostream), format);
  +      SerializationHandler flistener = 
  +        transformer.createSerializationHandler(new StreamResult(ostream),
  +                                               format);
         try
         {
           flistener.startDocument();
  
  
  
  1.13      +1 -1      xml-xalan/java/src/org/apache/xalan/lib/sql/DTMDocument.java
  
  Index: DTMDocument.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/lib/sql/DTMDocument.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- DTMDocument.java	30 Jan 2003 18:45:43 -0000	1.12
  +++ DTMDocument.java	1 Apr 2003 19:45:48 -0000	1.13
  @@ -169,7 +169,7 @@
       super(mgr, null, ident,
         null, mgr.getXMLStringFactory(), true);
   
  -    m_attribute = new SuballocatedIntVector(m_initialblocksize);
  +    m_attribute = new SuballocatedIntVector(DEFAULT_BLOCKSIZE);
     }
   
     /**
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org