![JAR search and dependency download from the Maven repository](/logo.png)
de.tsl2.nano.h5.configuration.ExpressionDescriptor Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of tsl2.nano.h5 Show documentation
Show all versions of tsl2.nano.h5 Show documentation
TSL2 Framework Html5 Extensions (WebServer, Html5Presentation, RuleCover, BeanConfigurator, LogicTable-Sheet, Expression-Descriptors for Actions, Rules, URLs, Queries)
/*
* File: $HeadURL$
* Id : $Id$
*
* created by: Tom, Thomas Schneider
* created on: 06.07.2016
*
* Copyright: (c) Thomas Schneider 2016, all rights reserved
*/
package de.tsl2.nano.h5.configuration;
import de.tsl2.nano.bean.BeanUtil;
import de.tsl2.nano.bean.def.AbstractExpression;
import de.tsl2.nano.core.cls.BeanClass;
import de.tsl2.nano.core.util.FileUtil;
import de.tsl2.nano.core.util.NetUtil;
import de.tsl2.nano.core.util.StringUtil;
import de.tsl2.nano.core.util.Util;
/**
* describes an expression through its expression-pattern. tries to identifiy the type of expression and creates an
* instance of {@link AbstractExpression} through {@link #toInstance()}. provides some helpers to identify a string
* value (see {@link #isHtml(String)}, {@link #isURL(String)}, {@link #isJSON(String)}.
*
* @author Tom, Thomas Schneider
* @version $Revision$
*/
public class ExpressionDescriptor extends AbstractExpression {
public ExpressionDescriptor() {
}
public ExpressionDescriptor(Class declaringClass) {
this(declaringClass, null);
}
/**
* constructor
*/
public ExpressionDescriptor(Class declaringClass, String expression) {
this.declaringClass = declaringClass;
this.expression = expression;
}
@Override
public String getExpressionPattern() {
return null;
}
public static String getName(String expression) {
if (expression.matches(AbstractExpression.createRegExpOnAllRegistered()))
expression = expression.substring(1);
return FileUtil.getValidFileName(!Util.isEmpty(expression) ? StringUtil.substring(expression, "://", "/") : "[undefined]");
}
@Override
public String getName() {
if (name == null && expression != null) {
name = getName(super.getName());
}
return name;
}
@Override
public T getValue(Object instance) {
return null;
}
@Override
public void setValue(Object instance, T value) {
}
@SuppressWarnings("rawtypes")
AbstractExpression toInstance() {
Class extends AbstractExpression> impl = AbstractExpression.getImplementation(getExpression());
if (impl == null)
throw new IllegalStateException("no implementation found for pattern: " + getExpression());
return BeanUtil.copyValues(this, BeanClass.createInstance(impl));
}
public static boolean isHtml(String response) {
return response != null && response.contains("
© 2015 - 2025 Weber Informatics LLC | Privacy Policy