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.Map;
 
 public class CommonMultiMap<K, V> extends BasicMultiMap<K, V> implements CommentedMap<K, V>
 {
     private static final long serialVersionUID = 3012579878005541746L;
     private static final String SEPARATOR = ";#;";
     private static final String FIRST_CATEGORY = "";
     private static final String LAST_CATEGORY = "zzzzzzzzzzzzzzzzzzzzzz";
     private static final String META_COMMENT = "comment";
     private SortedMap<StringObject_meta;
 
     @Override public String getComment(Object key)
     {
         return (StringgetMeta(key);
     }
 
     @Override public void clear()
     {
         super.clear();
         if ( != null)
         {
             .clear();
         }
     }
 
     @SuppressWarnings("unchecked")
     @Override public void putAll(Map<? extends K, ? extends V> map)
     {
         super.putAll(map);
         if (map instanceof CommonMultiMap)
         {
             Map<StringStringmeta = ((CommonMultiMapmap).;
 
             if (meta != null)
             {
                 meta().putAll(meta);
             }
         }
     }
 
     @Override public String putComment(K keyString comment)
     {
         return (StringputMeta(keycomment);
     }
 
     @Override public V remove(Object key)
     {
         V ret = super.remove(key);
 
         removeMeta(key);
 
         return ret;
     }
 
     @Override public V remove(Object keyint index)
     {
         V ret = super.remove(keyindex);
 
         if (length(key) == 0)
         {
             removeMeta(key);
         }
 
         return ret;
     }
 
     @Override public String removeComment(Object key)
     {
         return (StringremoveMeta(key);
     }
 
     Object getMeta(String categoryObject key)
     {
         return ( == null) ? null : .get(makeKey(categorykey));
     }
 
     Object putMeta(String category, K keyObject value)
     {
         return meta().put(makeKey(categorykey), value);
     }
    void removeMeta(Object key)
    {
        if ( != null)
        {
            .subMap(makeKey(key), makeKey(key)).clear();
        }
    }
    Object removeMeta(String categoryObject key)
    {
        return ( == null) ? null : .remove(makeKey(categorykey));
    }
    private String makeKey(String categoryObject key)
    {
        StringBuilder buff = new StringBuilder();
        buff.append(String.valueOf(key));
        buff.append();
        buff.append(category);
        return buff.toString();
    }
    private Map<StringObjectmeta()
    {
        if ( == null)
        {
             = new TreeMap<StringObject>();
        }
        return ;
    }
New to GrepCode? Check out our FAQ X