public synchronized String obtainSpecificFormat()

in impl/src/main/java/org/apache/tuscany/sdo/helper/DataHelperImpl.java [196:265]


  public synchronized String obtainSpecificFormat(String dateString)
  {
    StringBuffer formatBuffer = new StringBuffer();
    int colonIndex = dateString.indexOf(':');
    int hyphenIndex = dateString.indexOf('-');
      
    if (dateString.startsWith("--"))
    {
      if (dateString.charAt(2) == '-') // starts with ---
        formatBuffer.append("'---'dd"); 
      else if (dateString.substring(2).indexOf('-') == -1)
        formatBuffer.append("'--'MM");
      else
        formatBuffer.append("'--'MM'-'dd");     
    }
    
    else if (colonIndex == 1 || colonIndex == 2)
    {
      if (dateString.indexOf('.') != -1)
        formatBuffer.append("HH:mm:ss'.'S");
      else if (dateString.substring(colonIndex + 1).indexOf(':') != -1)
        formatBuffer.append("HH:mm:ss");
      else
        formatBuffer.append("HH:mm");  
    }
    
    else if (hyphenIndex != -1)
    {
      if (dateString.substring(hyphenIndex + 1).indexOf('-') == -1)    
        formatBuffer.append("yyyy-MM");
      else if (colonIndex != -1)
      {
        if (dateString.indexOf('.') != -1)
          formatBuffer.append("yyyy-MM-dd'T'HH:mm:ss'.'S");
        else if (dateString.substring(colonIndex + 1).indexOf(':') != -1)
          formatBuffer.append("yyyy-MM-dd'T'HH:mm:ss");
        else
          formatBuffer.append("yyyy-MM-dd'T'HH:mm"); 
      }
      else
        formatBuffer.append ("yyyy-MM-dd");
    }
    else if (colonIndex == -1)  // indexOf('-') == -1
    {
      formatBuffer.append("yyyy");
    }
    else
      return null;
    
    // Determine if a Time Zone is included and needs to be parsed.
    // ---------------------------------
    // The only letter allowed in the above formats is 'T'.
    // All times zones include at least one letter other than 'T'.

    int i = 0;
    boolean letterFound = false;
    char currentChar;
    while (i < dateString.length() && !letterFound)
    {
      currentChar = dateString.charAt(i);
      if (Character.isLetter(currentChar) && currentChar != 'T')
        letterFound = true;;  
      i++;
    }
    
    if (letterFound)
      formatBuffer.append(" z");
        
    return formatBuffer.toString();
  }