All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jnario.doc.HtmlAssets Maven / Gradle / Ivy

The newest version!
/**
 * Copyright (c) 2012 BMW Car IT and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 */
package org.jnario.doc;

import com.google.inject.Singleton;
import java.io.InputStream;
import java.util.List;
import java.util.Map;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.resource.URIConverter;
import org.eclipse.xtend.lib.Data;
import org.eclipse.xtext.generator.IFileSystemAccess;
import org.eclipse.xtext.generator.IFileSystemAccessExtension2;
import org.eclipse.xtext.xbase.lib.CollectionLiterals;
import org.eclipse.xtext.xbase.lib.Functions.Function1;
import org.eclipse.xtext.xbase.lib.IterableExtensions;
import org.eclipse.xtext.xbase.lib.ListExtensions;
import org.eclipse.xtext.xbase.lib.util.ToStringHelper;
import org.jnario.doc.DocOutputConfigurationProvider;
import org.jnario.util.Strings;

@Data
@Singleton
@SuppressWarnings("all")
public class HtmlAssets {
  private final List _cssFiles = ListExtensions.map(CollectionLiterals.newArrayList(
    "bootstrap.min.css", 
    "bootstrap-responsive.min.css", 
    "custom.css", 
    "prettify.css"), new Function1() {
    public String apply(final String it) {
      return ("css/" + it);
    }
  });
  
  public List getCssFiles() {
    return this._cssFiles;
  }
  
  private final List _jsFiles = ListExtensions.map(CollectionLiterals.newArrayList(
    "prettify.js", 
    "lang-jnario.js", 
    "jquery.js", 
    "bootstrap-tab.js"), new Function1() {
    public String apply(final String it) {
      return ("js/" + it);
    }
  });
  
  public List getJsFiles() {
    return this._jsFiles;
  }
  
  public void generate(final IFileSystemAccess fsa) {
    List _cssFiles = this.getCssFiles();
    this.copy(fsa, _cssFiles);
    List _jsFiles = this.getJsFiles();
    this.copy(fsa, _jsFiles);
  }
  
  private void copy(final IFileSystemAccess fsa, final Iterable files) {
    final Function1 _function = new Function1() {
      public Boolean apply(final String it) {
        boolean _exists = HtmlAssets.this.exists(fsa, it);
        return Boolean.valueOf((!_exists));
      }
    };
    Iterable _filter = IterableExtensions.filter(files, _function);
    for (final String file : _filter) {
      String _load = this.load(file);
      fsa.generateFile(file, DocOutputConfigurationProvider.ASSET_OUTPUT, _load);
    }
  }
  
  private boolean exists(final IFileSystemAccess fsa, final String file) {
    if ((!(fsa instanceof IFileSystemAccessExtension2))) {
      return false;
    }
    final IFileSystemAccessExtension2 fsa2 = ((IFileSystemAccessExtension2) fsa);
    final URI uri = fsa2.getURI(file, DocOutputConfigurationProvider.ASSET_OUTPUT);
    Map _emptyMap = CollectionLiterals.emptyMap();
    return URIConverter.INSTANCE.exists(uri, _emptyMap);
  }
  
  private String load(final String file) {
    Class _class = this.getClass();
    final InputStream inputStream = _class.getResourceAsStream(file);
    return Strings.convertStreamToString(inputStream);
  }
  
  public HtmlAssets() {
    super();
  }
  
  @Override
  public int hashCode() {
    final int prime = 31;
    int result = 1;
    result = prime * result + ((this._cssFiles== null) ? 0 : this._cssFiles.hashCode());
    result = prime * result + ((this._jsFiles== null) ? 0 : this._jsFiles.hashCode());
    return result;
  }
  
  @Override
  public boolean equals(final Object obj) {
    if (this == obj)
      return true;
    if (obj == null)
      return false;
    if (getClass() != obj.getClass())
      return false;
    HtmlAssets other = (HtmlAssets) obj;
    if (this._cssFiles == null) {
      if (other._cssFiles != null)
        return false;
    } else if (!this._cssFiles.equals(other._cssFiles))
      return false;
    if (this._jsFiles == null) {
      if (other._jsFiles != null)
        return false;
    } else if (!this._jsFiles.equals(other._jsFiles))
      return false;
    return true;
  }
  
  @Override
  public String toString() {
    String result = new ToStringHelper().toString(this);
    return result;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy