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;
 
 import java.util.List;
 
 class BasicProfileSection extends BasicOptionMap implements Profile.Section
 {
     private static final long serialVersionUID = 985800697957194374L;
     private static final String[] EMPTY_STRING_ARRAY = {};
     private static final char REGEXP_ESCAPE_CHAR = '\\';
     private final Pattern _childPattern;
     private final String _name;
     private final BasicProfile _profile;
 
     protected BasicProfileSection(BasicProfile profileString name)
     {
          = profile;
          = name;
          = newChildPattern(name);
     }
 
     @Override public Profile.Section getChild(String key)
     {
         return .get(childName(key));
     }
 
     @Override public String getName()
     {
         return ;
     }
 
     @Override public Profile.Section getParent()
     {
         Profile.Section ret = null;
         int idx = .lastIndexOf(.getPathSeparator());
 
         if (idx >= 0)
         {
             String name = .substring(0, idx);
 
             ret = .get(name);
         }
 
         return ret;
     }
 
     @Override public String getSimpleName()
     {
         int idx = .lastIndexOf(.getPathSeparator());
 
         return (idx < 0) ?  : .substring(idx + 1);
     }
 
     @Override public Profile.Section addChild(String key)
     {
         String name = childName(key);
 
         return .add(name);
     }
 
     @Override public String[] childrenNames()
     {
         List<Stringnames = new ArrayList<String>();
 
         for (String key : .keySet())
         {
             if (.matcher(key).matches())
             {
                 names.add(key.substring(.length() + 1));
             }
         }
 
         return names.toArray();
     }
 
     @Override public Profile.Section lookup(String... parts)
     {
         StringBuilder buff = new StringBuilder();
 
         for (String part : parts)
         {
             if (buff.length() != 0)
             {
                buff.append(.getPathSeparator());
            }
            buff.append(part);
        }
        return .get(childName(buff.toString()));
    }
    @Override public void removeChild(String key)
    {
        String name = childName(key);
        .remove(name);
    }
    @Override boolean isPropertyFirstUpper()
    {
        return .isPropertyFirstUpper();
    }
    @Override void resolve(StringBuilder buffer)
    {
        .resolve(bufferthis);
    }
    private String childName(String key)
    {
        StringBuilder buff = new StringBuilder();
        buff.append(.getPathSeparator());
        buff.append(key);
        return buff.toString();
    }
    private Pattern newChildPattern(String name)
    {
        StringBuilder buff = new StringBuilder();
        buff.append('^');
        buff.append(Pattern.quote(name));
        buff.append();
        buff.append(.getPathSeparator());
        buff.append("[^");
        buff.append();
        buff.append(.getPathSeparator());
        buff.append("]+$");
        return Pattern.compile(buff.toString());
    }
New to GrepCode? Check out our FAQ X