private int updateEarlyWrapPoint(WrapItem firstItem, bool isArray) 
     {
         for (int i=firstItem.getStartPos()-1;i>=0;i--)
         {
             char ch = mOutputBuffer[i];
             if (!AntlrUtilities.isASWhitespace(ch) && ((isArray && ch!='{') || (!isArray && ch!='[')))
             {
                 firstItem.setAlternateFirstItemWrapPoint(i);
 //              firstItem.setStartPos(i);
 //              firstItem.setNextItemPos(i);
                 break;
             }
         }
     
         int alignmentOffset=1; //always 1 for the [ or {
         for (int i=firstItem.getStartPos()-1;i>=0;i--)
         {
             char ch = mOutputBuffer[i];
             if (!AntlrUtilities.isASWhitespace(ch))
             {
                 int adjustedStartPos=i;
                 if ((isArray && ch=='[') || (!isArray && ch=='{'))
                     adjustedStartPos++;
                 firstItem.setStartPos(adjustedStartPos);
                 firstItem.setNextItemPos(adjustedStartPos);
                 return alignmentOffset;
             }
             alignmentOffset++; //for additional spaces
         }
         return alignmentOffset;
     }