Small refactor for comming converters
This commit is contained in:
parent
75b3d5e0a0
commit
1c308a684a
178 changed files with 5865 additions and 1531 deletions
|
|
@ -16,12 +16,12 @@
|
|||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.m2e.core.maven2Builder</name>
|
||||
<name>org.eclipse.wst.validation.validationbuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.wst.validation.validationbuilder</name>
|
||||
<name>org.eclipse.m2e.core.maven2Builder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
|
|
|
|||
|
|
@ -22,11 +22,12 @@
|
|||
|
||||
package net.forwardfire.vasc.xpql.impl.x4o;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
import net.forwardfire.vasc.xpql.query.QueryParameterValue.QueryParameterType;
|
||||
|
||||
import org.x4o.xml.element.AbstractElementAttributeConverter;
|
||||
import org.x4o.xml.element.Element;
|
||||
import org.x4o.xml.element.ElementAttributeConverterException;
|
||||
import org.x4o.xml.converters.ObjectConverter;
|
||||
import org.x4o.xml.converters.ObjectConverterException;
|
||||
|
||||
|
||||
/**
|
||||
|
|
@ -34,16 +35,21 @@ import org.x4o.xml.element.ElementAttributeConverterException;
|
|||
* @author Willem Cazander
|
||||
* @version 1.0 Jan 21, 2007
|
||||
*/
|
||||
public class ParameterTypeAttributeConverter extends AbstractElementAttributeConverter {
|
||||
public class ParameterTypeObjectConverter implements ObjectConverter {
|
||||
|
||||
public Class<?> getObjectClass() {
|
||||
return QueryParameterType.class;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.x4o.xml.element.AbstractElementClassParameterConverter#doConvertAttribute(org.x4o.xml.element.Element, java.lang.Object)
|
||||
*/
|
||||
public Object doConvertAttribute(Element arg0, Object value) throws ElementAttributeConverterException {
|
||||
public String convertToString(Object obj, Locale locale) {
|
||||
return ((QueryParameterType)obj).name();
|
||||
}
|
||||
|
||||
public Object convertToObject(String str, Locale locale) throws ObjectConverterException {
|
||||
try {
|
||||
return QueryParameterType.valueOf(""+value);
|
||||
return QueryParameterType.valueOf(""+str);
|
||||
} catch (Exception ex) {
|
||||
throw new ElementAttributeConverterException(this,"Could not convert to QueryParameterType value="+value,ex);
|
||||
throw new ObjectConverterException(this,"Could not convert to QueryParameterType value="+str,ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -22,28 +22,33 @@
|
|||
|
||||
package net.forwardfire.vasc.xpql.impl.x4o;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
import net.forwardfire.vasc.xpql.query.Query.QueryType;
|
||||
|
||||
import org.x4o.xml.element.AbstractElementAttributeConverter;
|
||||
import org.x4o.xml.element.Element;
|
||||
import org.x4o.xml.element.ElementAttributeConverterException;
|
||||
|
||||
import org.x4o.xml.converters.ObjectConverter;
|
||||
import org.x4o.xml.converters.ObjectConverterException;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Jan 21, 2007
|
||||
*/
|
||||
public class QueryTypeAttributeConverter extends AbstractElementAttributeConverter {
|
||||
public class QueryTypeObjectConverter implements ObjectConverter {
|
||||
|
||||
public Class<?> getObjectClass() {
|
||||
return QueryType.class;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.x4o.xml.element.AbstractElementClassParameterConverter#doConvertAttribute(org.vasc.x4o.element.Element, java.lang.Object)
|
||||
*/
|
||||
public Object doConvertAttribute(Element arg0, Object value) throws ElementAttributeConverterException {
|
||||
public String convertToString(Object obj, Locale locale) {
|
||||
return ((QueryType)obj).name();
|
||||
}
|
||||
|
||||
public Object convertToObject(String str, Locale locale) throws ObjectConverterException {
|
||||
try {
|
||||
return QueryType.valueOf(""+value);
|
||||
return QueryType.valueOf(""+str);
|
||||
} catch (Exception ex) {
|
||||
throw new ElementAttributeConverterException(this,"Could not convert to QueryType value="+value,ex);
|
||||
}
|
||||
throw new ObjectConverterException(this,"Could not convert to QueryType value="+str,ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
package net.forwardfire.vasc.xpql.x4o;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import net.forwardfire.vasc.xpql.QueryStore;
|
||||
import net.forwardfire.vasc.xpql.XPQLParser;
|
||||
import net.forwardfire.vasc.xpql.query.Query;
|
||||
|
||||
import org.x4o.xml.element.AbstractElement;
|
||||
import org.x4o.xml.element.ElementException;
|
||||
|
||||
public class XpqlLoadQueriesElement extends AbstractElement {
|
||||
|
||||
private Logger logger = Logger.getLogger(XpqlLoadQueriesElement.class.getName());
|
||||
|
||||
@Override
|
||||
public void doElementEnd() throws ElementException {
|
||||
|
||||
// set queries map to element object
|
||||
Map<String,Query> queries = new HashMap<String,Query>(100);
|
||||
setElementObject(queries);
|
||||
|
||||
String resource = getAttributes().get("resource");
|
||||
if (resource==null) {
|
||||
throw new ElementException("No 'resource' attributes defined.");
|
||||
}
|
||||
if (resource.isEmpty()) {
|
||||
throw new ElementException("Empty 'resource' attributes can't load.");
|
||||
}
|
||||
|
||||
// load queries from attributes
|
||||
XPQLParser parser = new XPQLParser();
|
||||
logger.fine("Try loading: "+resource);
|
||||
try {
|
||||
parser.parseResource(resource);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("Could not load xpql resource: "+resource+" error: "+e.getMessage(),e);
|
||||
}
|
||||
QueryStore store = parser.getQueryStore();
|
||||
|
||||
for (String key:store.getQueryNames()) {
|
||||
Query q = store.getQuery(key);
|
||||
queries.put(q.getName(),q);
|
||||
}
|
||||
logger.info("Loaded xpql queries: "+store.getQueryNames().size());
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
|
||||
<properties>
|
||||
<comment>
|
||||
Vasc namespace for the vasc-xpql backend
|
||||
</comment>
|
||||
<entry key="eld.http://vasc.forwardfire.net/eld/vasc-xpql.eld">vasc-xpql.eld</entry>
|
||||
</properties>
|
||||
4
vasc-xpql/src/main/resources/META-INF/vasc/vasc-xpql.eld
Normal file
4
vasc-xpql/src/main/resources/META-INF/vasc/vasc-xpql.eld
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<eld:root xmlns:eld="http://eld.x4o.org/eld/eld-lang.eld">
|
||||
<eld:elementClass tag="xpqlLoadQueries" elementClassName="net.forwardfire.vasc.xpql.x4o.XpqlLoadQueriesElement"/>
|
||||
</eld:root>
|
||||
|
|
@ -6,8 +6,9 @@
|
|||
<eld:elementClass tag="xpql" objectClassName="java.lang.Object"/>
|
||||
|
||||
<eld:elementClass tag="query" objectClassName="net.forwardfire.vasc.xpql.impl.DefaultQuery">
|
||||
<eld:elementClassAttributeConverter attributeName="type" bean.class="net.forwardfire.vasc.xpql.impl.x4o.QueryTypeAttributeConverter"/>
|
||||
<eld:elementObjectDefaultValue attributeName="type" value="sql"/>
|
||||
<eld:elementClassAttribute attributeName="type" defaultValue="sql">
|
||||
<eld:attributeBeanConverter bean.class="net.forwardfire.vasc.xpql.impl.x4o.QueryTypeObjectConverter"/>
|
||||
</eld:elementClassAttribute>
|
||||
<eld:elementConfigurator configAction="true" bean.class="net.forwardfire.vasc.xpql.impl.x4o.QueryElementConfigurator"/>
|
||||
</eld:elementClass>
|
||||
<eld:elementClass tag="sql" elementClassName="net.forwardfire.vasc.xpql.impl.x4o.SQLElement"/>
|
||||
|
|
@ -15,9 +16,12 @@
|
|||
<eld:elementClass tag="include" objectClassName="net.forwardfire.vasc.xpql.impl.QueryInclude" elementClassName="net.forwardfire.vasc.xpql.impl.x4o.QueryIncludeElement"/>
|
||||
<eld:elementClass tag="comment" elementClassName="net.forwardfire.vasc.xpql.impl.x4o.CommentElement"/>
|
||||
<eld:elementClass tag="parameterValue" objectClassName="net.forwardfire.vasc.xpql.impl.DefaultQueryParameterValue">
|
||||
<eld:elementClassAttributeConverter attributeName="type" bean.class="net.forwardfire.vasc.xpql.impl.x4o.ParameterTypeAttributeConverter"/>
|
||||
<eld:elementObjectDefaultValue attributeName="type" value="parameter"/>
|
||||
<eld:elementClassAttributeConverter attributeName="valueType" bean.class="org.x4o.xml.impl.lang.ClassConverter"/>
|
||||
<eld:elementClassAttribute attributeName="type" defaultValue="parameter">
|
||||
<eld:attributeBeanConverter bean.class="net.forwardfire.vasc.xpql.impl.x4o.ParameterTypeObjectConverter"/>
|
||||
</eld:elementClassAttribute>
|
||||
<eld:elementClassAttribute attributeName="valueType">
|
||||
<eld:attributeClassConverter/>
|
||||
</eld:elementClassAttribute>
|
||||
</eld:elementClass>
|
||||
</eld:root>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xtes xmlns="http://xpql.vasc.forwardfire.net/eld/xpql-lang.eld"
|
||||
<xpql xmlns="http://xpql.vasc.forwardfire.net/eld/xpql-lang.eld"
|
||||
xmlns:x4o="http://eld.x4o.org/eld/x4o-lang.eld"
|
||||
>
|
||||
<query name="limit">
|
||||
|
|
@ -84,4 +84,4 @@
|
|||
<parameterValue name="limit" value="15"/>
|
||||
<parameterValue name="offset" value="25"/>
|
||||
</query>
|
||||
</xtes>
|
||||
</xpql>
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
<xtes xmlns:meta="iets" xmlns="iets1">
|
||||
<xpql xmlns:meta="iets" xmlns="iets1">
|
||||
<meta:query>
|
||||
<meta:fromItem data="schema.table['products']" alias="p"/>
|
||||
<meta:select data="schema.table['products'].column['product_type']"/>
|
||||
|
|
@ -9,4 +9,4 @@
|
|||
<meta:where />
|
||||
<meta:orderBy />
|
||||
</meta:query>
|
||||
</xtes>
|
||||
</xpql>
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xtes xmlns="http://xpql.vasc.forwardfire.net/eld/xpql-lang.eld"
|
||||
<xpql xmlns="http://xpql.vasc.forwardfire.net/eld/xpql-lang.eld"
|
||||
xmlns:x4o="http://eld.x4o.org/eld/x4o-lang.eld"
|
||||
>
|
||||
<query name="limit">
|
||||
|
|
@ -44,4 +44,4 @@
|
|||
<parameterValue name="limit" value="15"/>
|
||||
<parameterValue name="offset" value="25"/>
|
||||
</query>
|
||||
</xtes>
|
||||
</xpql>
|
||||
Loading…
Add table
Add a link
Reference in a new issue