Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * #%L
   * Wikitty :: api
   * %%
   * Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
   * %%
   * This program is free software: you can redistribute it and/or modify
   * it under the terms of the GNU Lesser General Public License as 
   * published by the Free Software Foundation, either version 3 of the 
  * License, or (at your option) any later version.
  * 
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Lesser Public License for more details.
  * 
  * You should have received a copy of the GNU General Lesser Public 
  * License along with this program.  If not, see
  * <http://www.gnu.org/licenses/lgpl-3.0.html>.
  * #L%
  */
 package org.nuiton.wikitty.storage;
 
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
 public class WikittyExtensionStorageInMemory implements WikittyExtensionStorage {

    
key: extName[version], value: extension object
 
     protected Map<StringWikittyExtensionextensions;
 
     public WikittyExtensionStorageInMemory() {
         this. = new HashMap<StringWikittyExtension>();
     }
 
     public Map<StringWikittyExtensiongetExtensions() {
         return ;
     }
 
     public void setExtensions(Map<StringWikittyExtensionextensions) {
         this. = extensions;
     }
     
     @Override
     public WikittyEvent store(WikittyTransaction transactionCollection<WikittyExtensionextsthrows WikittyException {
         WikittyEvent result = new WikittyEvent(this);
         for (WikittyExtension ext : exts) {
             // on ajoute que s'il n'y est pas deja
             if (!.containsKey(ext.getId())) {
                 .put(ext.getId(), ext);
                 result.addExtension(ext);
             }
         }
         return result;
     }
 
     @Override
     public WikittyEvent delete(WikittyTransaction transactionCollection<StringextNames) {
         WikittyEvent result = new WikittyEvent(this);
         Set<StringextToDelete = new HashSet<String>(extNames);
         for (Iterator<Map.Entry<StringWikittyExtension>> i = .entrySet().iterator(); i.hasNext();) {
             Map.Entry<StringWikittyExtensionentry = i.next();
             String name = WikittyExtension.computeName(entry.getKey());
             if (extToDelete.contains(name)) {
                 i.remove();
                 result.addDeletedExtension(name);
             }
         }
         return result;
     }
 
     @Override
     public boolean exists(WikittyTransaction transactionString id) {
         boolean result = .containsKey(id);
         return result;
     }
 
     @Override
     public List<StringgetAllExtensionIds(WikittyTransaction transaction) {
         List<Stringresult = new ArrayList<String>(.keySet());
         return result;
     }
 
     @Override
     public List<StringgetAllExtensionsRequires(WikittyTransaction transactionString extensionName) {
         ArrayList<Stringids = new ArrayList<String>();
         Collection<WikittyExtensionvalues = .values();
         if (values != null) {
            for (WikittyExtension extension : values) {
                if (extension.getRequires().contains(extensionName)) {
                    ids.add(extension.getId());
                }
            }
        }
        return ids;
    }
    @Override
    public String getLastVersion(WikittyTransaction transactionString extName) {
        String result = null;
        Set<StringextensionIds = .keySet();
        for (String extensionId : extensionIds) {
            String extensionVersion = WikittyExtension.computeVersion(extensionId);
            if (extensionId.startsWith(extName) && (result == null || WikittyUtil.versionGreaterThan(extensionVersionresult))) {
                result = extensionVersion;
            }
        }
        return result;
    }
    @Override
    public WikittyExtension restore(WikittyTransaction transactionString nameString versionthrows WikittyException {
        String id = WikittyExtension.computeId(nameversion);
        WikittyExtension result = .get(id);
        if (result == null) {
            throw new WikittyException(String.format("No extension with id '%s'"id));
        }
        return result;
    }
    @Override
    public WikittyEvent clear(WikittyTransaction transaction) {
         = new HashMap<StringWikittyExtension>();
        WikittyEvent result = new WikittyEvent(this);
        return result;
    }
New to GrepCode? Check out our FAQ X