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

com.jwebmp.core.base.angular.implementations.AngularJSDynamicScriptRenderer Maven / Gradle / Ivy

package com.jwebmp.core.base.angular.implementations;

import com.jwebmp.core.Page;
import com.jwebmp.core.base.angular.AngularPageConfigurator;
import com.jwebmp.core.base.html.Script;
import com.jwebmp.core.services.IDynamicRenderingServlet;
import com.jwebmp.core.utilities.StaticStrings;
import com.guicedee.guicedinjection.GuiceContext;

public class AngularJSDynamicScriptRenderer
		implements IDynamicRenderingServlet
{
	@Override
	public String getScriptLocation(Page page)
	{
		return StaticStrings.ANGULAR_SCRIPT_LOCATION
				       .replaceAll(StaticStrings.STRING_FORWARD_SLASH, StaticStrings.STRING_EMPTY);
	}

	@Override
	public Script renderScript(Page page)
	{
		if (!AngularPageConfigurator.isRequired())
		{
			return null;
		}
		return getAngularScript(page);
	}

	/**
	 * Method getAngularScript ...
	 *
	 * @return Script
	 */
	private Script getAngularScript(Page page)
	{
		StringBuilder jsAngular = GuiceContext.get(AngularPageConfigurator.class)
		                                      .renderAngularJavascript(page);
		if (!jsAngular.toString()
		              .trim()
		              .isEmpty())
		{
			return newScript(jsAngular.toString());
		}
		return null;
	}

	/**
	 * Default Sort Order Integer.max - 700
	 *
	 * @return Integer.max - 700
	 */
	@Override
	public Integer sortOrder()
	{
		return Integer.MAX_VALUE - 700;
	}

	@Override
	public boolean enabled()
	{
		return AngularPageConfigurator.isEnabled() && AngularPageConfigurator.isRequired();
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy