Package pt.webdetails.cdf.dd.reader.factory

Source Code of pt.webdetails.cdf.dd.reader.factory.ResourceLoaderFactory

/*!
* Copyright 2002 - 2014 Webdetails, a Pentaho company.  All rights reserved.
*
* This software was developed by Webdetails and is provided under the terms
* of the Mozilla Public License, Version 2.0, or any later version. You may not use
* this file except in compliance with the license. If you need a copy of the license,
* please go to  http://mozilla.org/MPL/2.0/. The Initial Developer is Webdetails.
*
* Software distributed under the Mozilla Public License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or  implied. Please refer to
* the license for the specific language governing your rights and limitations.
*/

package pt.webdetails.cdf.dd.reader.factory;

import org.apache.commons.lang.StringUtils;
import pt.webdetails.cdf.dd.CdeEngine;
import pt.webdetails.cdf.dd.ICdeEnvironment;
import pt.webdetails.cdf.dd.util.CdeEnvironment;
import pt.webdetails.cpf.repository.api.IContentAccessFactory;

public class ResourceLoaderFactory {

  public ResourceLoaderFactory() {
  }

  public IResourceLoader getResourceLoader( String dashboardPath ) {
    if ( isSystem( dashboardPath ) ) {
      return getSystemResourceLoader( dashboardPath );
    } else {
      return getSolutionResourceLoader( dashboardPath );
    }
  }

  protected boolean isSystem( String path ) {
    if( path.isEmpty() ) {
      return false;
    }
   
    ICdeEnvironment env = getCdeEnvironment();
    IContentAccessFactory factory = getContentAccessFactory( env );

    path = StringUtils.strip( path.toLowerCase(), "/" );

    if ( path.startsWith( getSystemDir( env ) ) ) {
      return true;

    } else if ( path.startsWith( getPluginRepositoryDir( env ) ) ) {
      return false;

    } else {
      if ( isSystemStaticResource( factory, path ) ) {
        return true;

      } else if ( isRepositoryStaticResource( factory, path ) ) {
        return false;

      }
    }
    return false;
  }

  protected SystemResourceLoader getSystemResourceLoader( String path ) {
    return new SystemResourceLoader( path );
  }

  protected SolutionResourceLoader getSolutionResourceLoader( String path ) {
    return new SolutionResourceLoader( path );
  }

  protected ICdeEnvironment getCdeEnvironment() {
    return CdeEngine.getInstance().getEnvironment();
  }

  protected IContentAccessFactory getContentAccessFactory( ICdeEnvironment environment ){
    return environment.getContentAccessFactory();
  }

  protected String getSystemDir( ICdeEnvironment environment ) {
    return environment.getSystemDir() + "/";
  }

  protected String getPluginRepositoryDir( ICdeEnvironment environment ) {
    return environment.getPluginRepositoryDir() + "/";
  }

  protected boolean isSystemStaticResource( IContentAccessFactory factory, String path ) {
    return factory.getPluginSystemReader( null ).fileExists( path );
  }

  protected boolean isRepositoryStaticResource( IContentAccessFactory factory, String path ) {
    return factory.getUserContentAccess( null ).fileExists( path );
  }

}
TOP

Related Classes of pt.webdetails.cdf.dd.reader.factory.ResourceLoaderFactory

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.