Package edu.isi.karma.metadata

Source Code of edu.isi.karma.metadata.KarmaMetadataManager

package edu.isi.karma.metadata;

import java.io.File;
import java.util.HashMap;
import java.util.Map;

import edu.isi.karma.controller.update.UpdateContainer;
import edu.isi.karma.webserver.KarmaException;
import edu.isi.karma.webserver.ServletContextParameterMap;
import edu.isi.karma.webserver.ServletContextParameterMap.ContextParameter;

public class KarmaMetadataManager {

  private Map<KarmaMetadataType, KarmaMetadata> metadataTypes;
  public KarmaMetadataManager() throws KarmaException
  {
    createDirectoryForMetadata();
    metadataTypes = new HashMap<KarmaMetadataType, KarmaMetadata>();
   
  }
  private void createDirectoryForMetadata() throws KarmaException {
    String userDirPath = ServletContextParameterMap.getParameterValue(ContextParameter.USER_DIRECTORY_PATH);
   
    File userDir = new File(userDirPath);
    if(userDir.exists() && !userDir.isDirectory())
    {
      throw new KarmaException("Directory provided for user preferences is actually a file!");
    }
    if(!userDir.exists())
    {
      if(!userDir.mkdirs())
      {
        throw new KarmaException("Unable to create directory for KARMA_WORK_HOME.  Please define the environment variable KARMA_WORK_HOME to save preferences and Karma's learning");
      }
    }
  }
  public void register(KarmaMetadata metadata, UpdateContainer uc) throws KarmaException
  {
    metadata.setup(uc);
    metadataTypes.put(metadata.getType(), metadata);
  }
 
  public boolean isMetadataSupported(KarmaMetadataType type)
  {
    return metadataTypes.containsKey(type);
  }

}
TOP

Related Classes of edu.isi.karma.metadata.KarmaMetadataManager

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.