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;
 
 
 public class IniParser extends AbstractParser
 {
     private static final String COMMENTS = ";#";
     private static final String OPERATORS = ":=";
     static final char SECTION_BEGIN = '[';
     static final char SECTION_END = ']';
 
     public IniParser()
     {
         super();
     }
 
     public static IniParser newInstance()
     {
         return ServiceFinder.findService(IniParser.class);
     }
 
     public static IniParser newInstance(Config config)
     {
         IniParser instance = newInstance();
 
         instance.setConfig(config);
 
         return instance;
     }
 
     public void parse(InputStream inputIniHandler handlerthrows IOExceptionInvalidFileFormatException
     {
         parse(newIniSource(inputhandler), handler);
     }
 
     public void parse(Reader inputIniHandler handlerthrows IOExceptionInvalidFileFormatException
     {
         parse(newIniSource(inputhandler), handler);
     }
 
     public void parse(URL inputIniHandler handlerthrows IOExceptionInvalidFileFormatException
     {
         parse(newIniSource(inputhandler), handler);
     }
 
     private void parse(IniSource sourceIniHandler handlerthrows IOExceptionInvalidFileFormatException
     {
         handler.startIni();
         String sectionName = null;
 
         for (String line = source.readLine(); line != nullline = source.readLine())
         {
             if (line.charAt(0) == )
             {
                 if (sectionName != null)
                 {
                     handler.endSection();
                 }
 
                 sectionName = parseSectionLine(linesourcehandler);
             }
             else
             {
                 if (sectionName == null)
                 {
                     if (getConfig().isGlobalSection())
                     {
                         sectionName = getConfig().getGlobalSectionName();
                         handler.startSection(sectionName);
                     }
                     else
                     {
                         parseError(linesource.getLineNumber());
                     }
                 }
                parseOptionLine(linehandlersource.getLineNumber());
            }
        }
        if (sectionName != null)
        {
            handler.endSection();
        }
        handler.endIni();
    }
    private String parseSectionLine(String lineIniSource sourceIniHandler handlerthrows InvalidFileFormatException
    {
        String sectionName;
        if (line.charAt(line.length() - 1) != )
        {
            parseError(linesource.getLineNumber());
        }
        sectionName = unescapeFilter(line.substring(1, line.length() - 1).trim());
        if ((sectionName.length() == 0) && !getConfig().isUnnamedSection())
        {
            parseError(linesource.getLineNumber());
        }
        if (getConfig().isLowerCaseSection())
        {
            sectionName = sectionName.toLowerCase(Locale.getDefault());
        }
        handler.startSection(sectionName);
        return sectionName;
    }
New to GrepCode? Check out our FAQ X