Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2005,2009 Ivan SZKIBA
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 package org.ini4j.spi;
 
 
 import java.io.Reader;
 
 import java.net.URL;
 
 
 abstract class AbstractParser
 {
     private final String _comments;
     private Config _config = Config.getGlobal();
     private final String _operators;
 
     protected AbstractParser(String operatorsString comments)
     {
          = operators;
          = comments;
     }
 
     protected Config getConfig()
     {
         return ;
     }
 
     protected void setConfig(Config value)
     {
          = value;
     }
 
     protected void parseError(String lineint lineNumberthrows InvalidFileFormatException
     {
         throw new InvalidFileFormatException("parse error (at line: " + lineNumber + "): " + line);
     }
 
     IniSource newIniSource(InputStream inputHandlerBase handler)
     {
         return new IniSource(inputhandlergetConfig());
     }
 
     IniSource newIniSource(Reader inputHandlerBase handler)
     {
         return new IniSource(inputhandlergetConfig());
     }
 
     IniSource newIniSource(URL inputHandlerBase handlerthrows IOException
     {
         return new IniSource(inputhandlergetConfig());
     }
 
     void parseOptionLine(String lineHandlerBase handlerint lineNumberthrows InvalidFileFormatException
     {
         int idx = indexOfOperator(line);
         String name = null;
         String value = null;
 
         if (idx < 0)
         {
             if (getConfig().isEmptyOption())
             {
                 name = line;
             }
             else
             {
                 parseError(linelineNumber);
             }
         }
         else
         {
             name = unescapeFilter(line.substring(0, idx)).trim();
             value = unescapeFilter(line.substring(idx + 1)).trim();
         }
 
         if (name.length() == 0)
         {
             parseError(linelineNumber);
         }
 
         if (getConfig().isLowerCaseOption())
        {
            name = name.toLowerCase(Locale.getDefault());
        }
        handler.handleOption(namevalue);
    }
    {
        return getConfig().isEscape() ? EscapeTool.getInstance().unescape(line) : line;
    }
    private int indexOfOperator(String line)
    {
        int idx = -1;
        for (char c : .toCharArray())
        {
            int index = line.indexOf(c);
            if ((index >= 0) && ((idx == -1) || (index < idx)))
            {
                idx = index;
            }
        }
        return idx;
    }
New to GrepCode? Check out our FAQ X